Audio Toolbox™ оптимизирован для обработки аудио в реальном времени. audioDeviceReader
, audioDeviceWriter
, audioPlayerRecorder
, dsp.AudioFileReader
, и dsp.AudioFileWriter
предназначены для потоковой передачи многоканального аудио, и они обеспечивают необходимые параметры, так что можно сравнить пропускную способность и задержку.
Для получения информации об обработке в реальном времени и советах по оптимизации алгоритма, смотрите Audio I/O: Буферизация, Задержка и Пропускная способность.
Это руководство описывает, как можно реализовать обработку аудиопотока в MATLAB®. В нем описывается рабочий процесс создания испытательного стенда разработок и приводятся примеры для каждого этапа рабочего процесса.
Это руководство создаёт испытательный стенд разработки в четыре этапа:
Создайте объекты для ввода и вывода аудио с испытательного стенда.
Создайте цикл аудиопотока, который обрабатывает аудиофрейм за кадром.
Добавьте возможности, чтобы визуализировать и вход, и выход вашего цикла аудиопотока.
Добавьте алгоритм обработки для цикла аудиопотока.
В этом руководстве также рассматриваются инструменты для визуализации и настройки алгоритма обработки в режиме реального времени.
Для обзора цикла обработки рассмотрите завершенный испытательный стенд ниже. Вы можете воссоздать этот испытательный стенд, пройдя шаг за шагом через это руководство.
Завершенный код испытательного стенда
Цикл аудиопотока может считываться с устройства или файла, и может записываться на устройство или файл. В этом примере вы создаете цикл аудиопотока, который считывает аудиокадр за кадром из файла и записывает аудиокадр за кадром в устройство. Альтернативные входные/выходные строения см. в примерах Quick Start.
Создайте dsp.AudioFileReader
Система object™ и задает файл. Чтобы уменьшить задержку, установите SamplesPerFrame
свойство dsp.AudioFileReader
Системный объект с небольшим форматом кадра.
Далее создайте audioDeviceWriter
Системный объект и укажите его частоту дискретизации как частоту дискретизации средства чтения файлов.
Дополнительные сведения о том, как использовать системные объекты, см. в разделе Что такое системные объекты?
Цикл аудиопотока обрабатывает аудио итеративно. Она делает это следующим образом:
Чтение системы координат аудиосигнала
Обработка этой системы координат аудиосигнала
Запись этой системы координат аудиосигнала в устройство или файл
Переход к следующей системе координат
В этом руководстве вход в цикл аудиопотока считывается из файла. Выход записывается на устройство.
Чтобы считать аудио файла кадр за кадром, вызовите свою dsp.AudioFileReader
в цикле аудиопотока и не предоставляйте аргументов. Чтобы записать кадр за кадром аудиосигнала, вызовите свою audioDeviceWriter
в цикле аудиопотока с аудиосигналом в качестве аргумента.
Все системные объекты имеют release
функция. В качестве наилучшей практики отпустите Системные объекты после использования, особенно если эти Системные объекты взаимодействуют с такими аппаратными устройствами, как звуковые карты.
Доступно несколько возможности. Двумя общими возможностями являются timescope
и dsp.SpectrumAnalyzer
. В этом руководстве используются timescope
для визуализации аудиосигнала.
The timescope
Системный объект отображает аудиосигнал во временном интервале. Создайте системный объект. Чтобы помочь визуализации, задайте значения для TimeSpan
, BufferLength
, и YLimits
свойства. Чтобы визуализировать кадр за кадром аудиосигнала, вызовите timescope
Системный объект в цикле аудиопотока с аудиосигналом в качестве аргумента.
В большинстве приложений вы хотите обработать аудиосигнал в цикле аудиопотока. Стадия обработки может быть:
Блок кода MATLAB в цикле аудиопотока
Отдельная функция, вызываемая в цикле аудиопотока
Системный объект, вызываемый в цикле аудиопотока
В этом руководстве вы вызываете reverberator
для обработки сигнала в цикле аудиопотока.
Создайте reverberator
Системный объект и задайте SampleRate
свойство как частота дискретизации программы чтения файлов. Чтобы настроить эффект реверберации, задайте значения для PreDelay
и WetDryMix
свойства. Чтобы применить эффект реверберации к кадру за кадром аудиосигнала, вызовите reverberator
в цикле аудиопотока с аудиосигналом в качестве аргумента.
Пользователь Audio Toolbox имеет несколько опций, чтобы добавить настраиваемость в реальном времени к алгоритму обработки. Чтобы добавить настраиваемость в цикл аудиопотока, можно использовать:
The Audio Test Bench - упражнения на основе пользовательского интерфейса для audioPlugin
классы и большинство объектов Audio Toolbox System.
Встроенные функции - Функции в Audio Toolbox для визуализации ключевых аспектов ваших алгоритмов обработки.
Пользовательский интерфейс - Смотрите Настройку Параметра в реальном времени для руководства.
MIDI Controller - Многие объекты Audio Toolbox System включают функции, поддерживающие элементы управления MIDI. Можно использовать
функция в configureMIDI
reverberator
Системный объект для синхронизации свойств системного объекта с элементами управления MIDI. Использование элементов управления MIDI с системными объектами, не имеющими configureMIDI
функция, см. MIDI Control Surface Interface.
Протокол пользовательской датаграммы (UDP) - можно использовать UDP в MATLAB для передачи без соединения. Можно также использовать UDP для приема или передачи датаграмм между окружениями. Возможные приложения включают использование средств MATLAB для настройки алгоритма обработки аудио во время воспроизведения и визуализации аудио в стороннем окружении. Для примера применения связи UDP смотрите Коммуникация между DAW и MATLAB Использование UDP.
Аудиопоток с устройства на устройство