Звуковая Toolbox™ оптимизирована для обработки звука в реальном времени. audioDeviceReader, audioDeviceWriter, audioPlayerRecorder, dsp.AudioFileReader, и dsp.AudioFileWriter предназначены для потоковой многоканальной передачи звука и предоставляют необходимые параметры, позволяющие обменяться пропускной способностью и задержками.
Сведения об обработке в режиме реального времени и советы по оптимизации алгоритма см. в разделе Аудио операции ввода-вывода: буферизация, задержка и пропускная способность.
В этом руководстве описывается, как можно реализовать обработку аудиопотоков в MATLAB ®. В нем описывается рабочий процесс для создания тестового стенда разработки и приводятся примеры для каждого этапа рабочего процесса.
В этом учебном пособии создается испытательный стенд разработки, состоящий из четырех этапов:
Создайте объекты для ввода и вывода звука с тестового стенда.
Создайте цикл аудиопотока, который обрабатывает ваш аудиопоток за кадром.
Добавьте область для визуализации ввода и вывода цикла аудиопотока.
Добавьте алгоритм обработки для цикла аудиопотока.
В этом учебном пособии также рассматриваются инструменты для визуализации и настройки алгоритма обработки в режиме реального времени.

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

Код завершенного испытательного стенда
Цикл аудиопотока может считываться с устройства или файла и записываться на устройство или файл. В этом примере создается цикл аудиопотока, который считывает аудиопотоки из файла и записывает аудиопотоки в устройство. Альтернативные конфигурации ввода/вывода см. в кратких примерах.
Создать dsp.AudioFileReader object™ системы и укажите файл. Чтобы сократить задержки, установите SamplesPerFrame имущества dsp.AudioFileReader Системный объект небольшого размера.
Далее создайте audioDeviceWriter Системный объект и укажите его частоту дискретизации как частоту дискретизации модуля чтения файлов.
Дополнительные сведения об использовании системных объектов см. в разделе Что такое системные объекты?
Цикл аудиопотока итеративно обрабатывает аудиопотоки. Она делает это путем:
Считывание кадра звукового сигнала
Обработка этого кадра аудиосигнала
Запись этого кадра аудиосигнала в устройство или файл
Переход к следующему кадру
В этом учебном пособии вход в цикл аудиопотока считывается из файла. Выходные данные записываются в устройство.
Чтобы прочитать аудиофайл покадрово, вызовите dsp.AudioFileReader в цикле аудиопотока и не содержать аргументов. Для покадровой записи аудиосигнала вызовите audioDeviceWriter в цикле аудиопотока с аудиосигналом в качестве аргумента.
Все системные объекты имеют release функция. Рекомендуется выпускать системные объекты после их использования, особенно если эти системные объекты взаимодействуют с аппаратными устройствами, такими как звуковые платы.
Доступно несколько областей. Двумя общими областями являются timescope и dsp.SpectrumAnalyzer. В данном учебном пособии используются timescope для визуализации звукового сигнала.
timescope Системный объект отображает звуковой сигнал во временной области. Создайте объект System. Чтобы облегчить визуализацию, укажите значения для TimeSpan, BufferLength, и YLimits свойства. Для покадровой визуализации аудиосигнала вызовите timescope Системный объект в цикле аудиопотока с аудиосигналом в качестве аргумента.
В большинстве приложений требуется обработать аудиосигнал в контуре аудиопотока. Стадия обработки может быть:
Блок кода MATLAB в цикле аудиопотока
Отдельная функция, вызываемая в цикле аудиопотока
Системный объект, вызываемый в цикле аудиопотока
В этом учебном пособии вызывается reverberator для обработки сигнала в контуре аудиопотока.
Создать reverberator Системный объект и укажите SampleRate как частота выборки модуля чтения файлов. Чтобы настроить эффект реверберации, укажите значения для PreDelay и WetDryMix свойства. Чтобы применить эффект реверберации к покадровому аудиосигналу, вызовите reverberator в цикле аудиопотока с аудиосигналом в качестве аргумента.
Пользователь Audio Toolbox имеет несколько опций для добавления настройки алгоритма обработки в реальном времени. Чтобы добавить возможность настройки в цикл аудиопотока, можно использовать:
Стенд аудиотестирования - упражнения на основе пользовательского интерфейса для audioPlugin классы и большинство объектов системы Audio Toolbox.
Встроенные функции - функции в Audio Toolbox для визуализации ключевых аспектов алгоритмов обработки.
Пользовательский пользовательский интерфейс - См. раздел Настройка параметров в реальном времени для учебного пособия.
Контроллер MIDI - многие объекты системы Audio Toolbox включают функции, поддерживающие элементы управления MIDI. Вы можете использовать функции в configureMIDIreverberator Системный объект для синхронизации свойств системного объекта с элементами управления MIDI. Использование элементов управления MIDI с системными объектами, не имеющими configureMIDI см. раздел Интерфейс управляющей поверхности MIDI.
Протокол пользовательских дейтаграмм (UDP) - можно использовать UDP в MATLAB для передачи без установления соединения. Можно также использовать UDP для приема или передачи датаграмм между средами. Возможные приложения включают использование инструментов MATLAB для настройки алгоритма обработки звука при воспроизведении и визуализации звука в сторонней среде. Пример применения связи UDP см. в разделе Взаимодействие между DAW и MATLAB с использованием UDP.
Аудиопоток с устройства на устройство