В этом примере показано, как извлечь источник звука из стереомикса на основе его коэффициента панорамирования. Этот пример иллюстрирует реализации MATLAB ® и Simulink ®.
Панорамирование - это методика, используемая для распространения моно- или стереофонического звукового сигнала на новый стереофонический или многоканальный звуковой сигнал. Панорамирование может моделировать пространственную перспективу слушателя путем изменения амплитуды или уровня мощности исходного источника по новым аудиоканалам.
Панорамирование является важным компонентом звукорежиссуры и стереосмешения. В студийных стереозаписях различные источники или треки (соответствующие разным музыкальным инструментам, голосам и другим источникам звука) часто записываются отдельно и затем смешиваются в стереосигнал. Панорамирование обычно управляется физической или виртуальной управляющей ручкой, которая может быть размещена в любом месте от «жесткого левого» положения (обычно называемого 8 часов) до жесткого правого положения (4 часов). При панорамировании сигнала в положение 8 часов звук появляется только в левом канале (или динамике). И наоборот, когда сигнал разворачивается в положение 4 часов, звук появляется только в правом динамике. В позиции 12 часов звук равномерно распределяется по двум динамикам. Искусственное положение или направление относительно слушателя может быть сгенерировано путем изменения уровня панорамирования.
Разделение источников состоит из идентификации и извлечения отдельных источников звука из записи стереомикра. Разделение источников имеет множество применений, таких как усиление речи, выборка музыкальных звуков для композиции электронной музыки и разделение речи в реальном времени. Он также играет роль в стерео-многоканальном (например, 5.1 или 7.1) восходящем миксе, где различные извлеченные источники могут быть распределены по каналам новой смеси.
В этом примере показан алгоритм разделения источников, применяемый к звуковому стереосигналу. Стереосигнал представляет собой смесь двух независимо панорамированных источников звука: Первый источник - это человек, насчитывающий от одного до десяти, а второй источник - свист игрушечного поезда.
В примере используется метод частотной области, основанный на кратковременном анализе БПФ, для идентификации и разделения источников на основе их различных коэффициентов панорамирования.
Модель audiosourceseparation реализует пример разделения панорамированных источников звука.

Стереосигнал смешивается в подсистеме Panned Source. Стереосигнал формируется из двух панорамных сигналов, как показано ниже.

Источник свистка поезда панорамирован с постоянным коэффициентом панорамирования 0,2. Можно изменить коэффициент панорамирования источника речи, дважды щелкнув подсистему панорамирования источника и изменив положение кнопки «Индекс панорамирования».
Алгоритм разделения источников реализован в подсистеме «Вычислительная индексная функция панорамирования». Алгоритм основан на сравнении кратковременных преобразований Фурье правого и левого каналов стереосмеси. На основе перекрестных корреляций левой и правой пары БПФ вычисляют изменяющуюся во времени индексную функцию [1] панорамирования в частотной области. Существует зависимость «один к одному» между коэффициентом панорамирования источников и производным индексом панорамирования. Гистограмма рабочего окна реализуется в подсистеме гистограммы индекса панорамирования для идентификации доминирующих индексов панорамирования в смеси. Затем требуемый источник размешивается путем применения маскирующей функции, смоделированной с использованием гауссова окна, центрированного по целевому индексу панорамирования. Наконец, несмешанный извлеченный источник получают путем применения кратковременного IFFT.
Смешанный сигнал и извлеченный речевой сигнал визуализируются с использованием объема. Расчетный коэффициент панорамирования отображается в блоке Display. Вы можете прослушивать либо смешанный стерео, либо несмешанный источник речи, переворачивая ручной переключатель на входе блока записи аудиоустройств. Алгоритм потоковой передачи может адаптироваться к изменению значения коэффициента панорамирования. Например, можно изменить коэффициент панорамирования с 0,4 до 0,6 и убедиться, что отображаемое значение коэффициента панорамирования обновлено с правильным значением.

HelperAudioSourceSeparationSim - это реализация MATLAB в примере планового разделения источников. Он создает экземпляры, инициализирует и выполняет шаги по объектам, формирующим алгоритм.
audioSourceSeparationApp функция обтекает HelperAudioSourceSeparationSim и итеративно называет его. Он отображает смешанные звуковые и несмешанные речевые сигналы с использованием области. Также открывается пользовательский интерфейс, предназначенный для взаимодействия с моделированием. Пользовательский интерфейс позволяет настраивать коэффициент панорамирования источника речи. Можно также переключаться между прослушиванием смешанного сигнала (свист + речь) или несмешанного речевого сигнала, изменяя значение раскрывающегося окна «Audio Output» в интерфейсе пользователя. На пользовательском интерфейсе также имеется три кнопки: кнопка «Reset» (сброс) приведет к сбросу внутреннего состояния моделирования в исходное состояние, а кнопка «Pause Simulation» (приостановка моделирования) удержит моделирование до тех пор, пока вы не нажмете на него снова. Моделирование может быть прекращено либо путем закрытия пользовательского интерфейса, либо нажатием кнопки «Stop simulation».
Выполнить audioSourceSeparationApp для выполнения моделирования и построения графика результатов. Обратите внимание, что моделирование выполняется до тех пор, пока оно не будет явно остановлено.
MATLAB Coder™ может использоваться для генерации кода C для HelperAudioSourceSeparationSim функция. Чтобы создать MEX-файл для вашей платформы, выполните команду HelperSourceSeparationCodeGeneration из папки с разрешением на запись.
Путем вызова функции оболочки audioSourceSeparationApp с 'true' в качестве аргумента можно использовать сгенерированный MEX-файл вместо HelperAudioSourceSeparationSim для моделирования. В этом сценарии пользовательский интерфейс все еще выполняется в среде MATLAB, но основной алгоритм обработки выполняется MEX-файлом. Производительность улучшается в этом режиме без ущерба для возможности настройки параметров.
[1] «Подход частотной области к многоканальному Upmix», Advendano, Carlos; Jot, Jean-Marc, JAES Том 52 Выпуск 7/8 стр. 740-749; Июль 2004 г.