Аудио в реальном времени в MATLAB

Audio Toolbox™ оптимизирован для обработки аудиоданных в реальном времени. audioDeviceReader, audioDeviceWriter, audioPlayerRecorder, dsp.AudioFileReader, и dsp.AudioFileWriter спроектированы для потоковой передачи многоканального аудио, и они обеспечивают необходимые параметры так, чтобы можно было обменять между пропускной способностью и задержкой.

Для получения информации об обработке в режиме реального времени и советах о том, как оптимизировать ваш алгоритм, смотрите Аудио ввод-вывод: Буферизация, Задержка и Пропускная способность.

Этот пример описывает, как можно реализовать обработку аудиопотока в MATLAB®. Это обрисовывает в общих чертах рабочий процесс для создания испытательного стенда разработки и обеспечивает примеры для каждого этапа рабочего процесса.

Создайте испытательный стенд разработки

Этот пример создает испытательный стенд разработки на четырех шагах:

  1. Создайте объекты к аудио ввода и вывода от вашего испытательного стенда.

  2. Создайте цикл аудиопотока, который обрабатывает ваше покадровое аудио.

  3. Добавьте осциллограф, чтобы визуализировать обоих ввод и вывод вашего цикла аудиопотока.

  4. Добавьте алгоритм обработки для своего цикла аудиопотока.

Этот пример также обсуждает инструменты для визуализации и настройки вашего алгоритма обработки в режиме реального времени.

Для обзора цикла обработки рассмотрите завершенный испытательный стенд ниже. Можно воссоздать этот испытательный стенд путем обхода постепенный через этот пример.

 Завершенный код испытательного стенда

1. Создайте объекты Системы ввода-вывода

Ваш цикл аудиопотока может читать из устройства или файла, и он может записать в устройство или файл. В этом примере вы создаете цикл аудиопотока, который читает аудио, покадровое из файла, и пишет аудио, покадровое в устройство. Смотрите Примеры Быстрого запуска для альтернативных настроек ввода/вывода.

Создайте dsp.AudioFileReader Система object™ и задает файл. Чтобы уменьшать задержку, установите SamplesPerFrame свойство dsp.AudioFileReader Системный объект к маленькому формату кадра.

Затем создайте audioDeviceWriter Системный объект и задает свою частоту дискретизации как частоту дискретизации средства чтения файлов.

Для получения дополнительной информации о том, как использовать Системные объекты, смотрите то, Что Системные объекты?

 Просмотрите пример кода

2. Создайте цикл аудиопотока

Аудио процессов цикла аудиопотока итеративно. Это делает так:

  • Чтение системы координат звукового сигнала

  • Обработка того кадра звукового сигнала

  • Запись, что система координат звукового сигнала к устройству или файлу

  • Перемещение в следующую систему координат

В этом примере вход к циклу аудиопотока читается из файла. Выход записан в устройство.

Чтобы считать покадровый звуковой файл, вызовите свой dsp.AudioFileReader в вашем цикле аудиопотока, и не обеспечивают аргументов. Чтобы записать покадровый звуковой сигнал, вызовите свой audioDeviceWriter в вашем цикле аудиопотока со звуковым сигналом в качестве аргумента.

 Просмотрите пример кода

Все Системные объекты имеют release функция. Как лучшая практика, выпустите свои Системные объекты после использования, особенно если те Системные объекты связываются с аппаратными устройствами, такими как звуковые карты.

3. Добавьте осциллографы

Существует несколько доступных осциллографов. Двумя общими осциллографами является timescope и dsp.SpectrumAnalyzer. Этот пример использует timescope визуализировать звуковой сигнал.

timescope Системный объект отображает звуковой сигнал во временном интервале. Создайте Системный объект. Чтобы помочь визуализации, задайте значения для TimeSpan, BufferLength, и YLimits свойства. Чтобы визуализировать покадровый звуковой сигнал, вызовите timescope Системный объект в вашем цикле аудиопотока со звуковым сигналом в качестве аргумента.

 Просмотрите пример кода

4. Разработайте алгоритм обработки

В большинстве приложений вы хотите обработать свой звуковой сигнал в вашем цикле аудиопотока. Этап обработки может быть:

  • Блок кода MATLAB в вашем цикле аудиопотока

  • Отдельная функция вызвана в вашем цикле аудиопотока

  • Системный объект называется в вашем цикле аудиопотока

В этом примере вы вызываете reverberator обработать сигнал в вашем цикле аудиопотока.

Создайте reverberator Системный объект, и задает SampleRate свойство как частота дискретизации вашего средства чтения файлов. Чтобы настроить эффект реверберации, задайте значения для PreDelay и WetDryMix свойства. Чтобы применить эффект реверберации к покадровому звуковому сигналу, вызовите reverberator в вашем цикле аудиопотока со звуковым сигналом в качестве аргумента.

 Просмотрите пример кода

Добавьте приспособляемость

У пользователя Audio Toolbox есть несколько опций, чтобы добавить приспособляемость в реальном времени в алгоритм обработки. Чтобы добавить приспособляемость в ваш цикл аудиопотока, можно использовать:

  • Audio Test Bench – основанные на пользовательском интерфейсе упражнения для audioPlugin классы и большинство Системных объектов Audio Toolbox.

  • Встроенные функции – Функции в Audio Toolbox для визуализации ключевых аспектов ваших алгоритмов обработки.

  • Сделанный на заказ пользовательский интерфейс – Видит, что Параметр В реальном времени Настраивается для примера.

  • MIDI-контроллер – Много Системных объектов Audio Toolbox включают функции та поддержка средства управления MIDI. Можно использовать configureMIDI функция в reverberator Системный объект, чтобы синхронизировать ваши свойства Системного объекта со средствами управления MIDI. Использовать средства управления MIDI с Системными объектами, которые не имеют configureMIDI функционируйте, смотрите Интерфейс Поверхности Управления MIDI.

  • Пользовательский дейтаграммный протокол (UDP) – можно использовать UDP в MATLAB для передачи без установления соединения. Можно также использовать UDP, чтобы получить или передать дейтаграммы между средами. Возможные приложения включают средства MATLAB использования, чтобы настроить ваш алгоритм обработки аудиоданных при проигрывании и визуализации аудио в сторонней среде. Для примера приложения коммуникации UDP смотрите, Связываются Между DAW и MATLAB Используя UDP.

Примеры быстрого запуска

 Аудиопоток с устройства на устройство

 Аудиопоток от устройства до файла

 Аудиопоток с файла на устройство

Похожие темы