Основанное на задержке устройство изменения высоты тона

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

Алгоритм

Фигура ниже иллюстрирует алгоритм сдвига подачи.

Алгоритм основан на плавном микшировании между двумя каналами с изменяющимися во времени задержками и усилениями. Этот метод использует в своих интересах эффект Доплера сдвига подачи, который происходит, когда задержка сигнала увеличена или уменьшена.

Фигура ниже иллюстрирует изменение задержек канала и усилений для восходящего сценария сдвига подачи: задержка канала 1 уменьшение по фиксированной процентной ставке от ее максимального значения (в этом примере, 30 мс). Поскольку усиление канала 2 первоначально равно нулю, это не способствует выходу. Как задержка канала 1 нуль подходов, задержка канала 2 начинает уменьшаться по сравнению с 30 мс. В этой области плавного микширования усиления двух каналов настроены, чтобы сохранить уровень выходной мощности. Канал 1 полностью постепенно исчезается к тому времени, когда его задержка достигает нуля. Процесс затем повторяется, идя назад и вперед между двумя каналами.

Для нисходящего эффекта подачи задержки увеличены от нуля до максимального значения.

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

Плагин аудио устройства изменения высоты тона

audiopluginexample. PitchShifter является аудио объектом плагина, который реализует основанный на задержке алгоритм сдвига подачи. Сменные параметры являются сдвигом подачи (полутонами), и выгорающий фактор (который управляет перекрытием между двумя ветвями задержки). Можно включить объект в симуляцию MATLAB или использовать его, чтобы сгенерировать аудио плагин с помощью generateAudioPlugin.

В дополнение к выходному звуковому сигналу объект возвращает два дополнительных выходных параметра, соответствуя задержкам и усилениям двух каналов, соответственно.

Можно открыть испытательный стенд для audiopluginexample.PitchShifter при помощи Audio Test Bench. Испытательный стенд обеспечивает пользовательский интерфейс (UI), чтобы помочь вам протестировать свой аудио плагин в MATLAB. Можно настроить сменные параметры, когда испытательный стенд выполняется. Можно также открыть dsp.TimeScope и dsp.SpectrumAnalyzer просмотреть и сравнить сигналы ввода и вывода во временном и частотном диапазоне, соответственно.

Можно также использовать audiopluginexample.PitchShifter в MATLAB так же, как вы использовали бы любой другой объект MATLAB. Можно использовать configureMIDI команда, чтобы позволить настроить объект через MIDI-устройство. Это особенно полезно, если объект является частью потоковой передачи симуляция MATLAB, где командное окно не свободно.

runPitchShift простая функция, которая может использоваться, чтобы выполнить подачу, переключающую как часть большей симуляции MATLAB. Функция инстанцирует audiopluginexample.PitchShifter плагин и использование setSampleRate метод, чтобы установить его частоту дискретизации на входной параметр Fs. Параметр плагина настраивается путем устанавливания их значений к подаче входных параметров и перекрытию, соответственно. Обратите внимание на то, что также возможно сгенерировать файл MEX от этой функции с помощью codegen команды. Производительность улучшается в этом режиме, не ставя под угрозу способность к настройкам параметров.

Симуляция MATLAB

audioPitchShifterExampleApp реализует приложение сдвига подачи в реальном времени.

Выполните audioPitchShifterExampleApp открыть приложение. В дополнение к проигрыванию переключенного подачей выходного аудио приложение строит изменяющиеся во времени задержки канала и усиления, а также сигналы ввода и вывода.

audioPitchShifterExampleApp открывает пользовательский интерфейс, спроектированный, чтобы взаимодействовать с симуляцией. Пользовательский интерфейс позволяет вам настраивать параметры алгоритма сдвига подачи, и результаты отражаются в симуляции немедленно. Графики отражают ваши изменения, когда вы настраиваете эти параметры. Для получения дополнительной информации о пользовательском интерфейсе вызовите help HelperCreateParamTuningUI.

audioPitchShifterExampleApp переносит HelperPitchShifterSim и итеративно вызовы это. HelperPitchShifterSim инстанцирует, инициализирует и продвигается через объекты, формирующие алгоритм.

MATLAB Coder может использоваться, чтобы сгенерировать код С для HelperPitchShifterSim. Для того, чтобы сгенерировать файл MEX для вашей платформы, выполните HelperPitchShifterCodeGeneration от папки с полномочиями записи.

Путем вызова audioPitchShifterExampleApp с 'true' в качестве аргумента, сгенерированный файл MEX HelperPitchShifterSimMEX может использоваться вместо HelperPitchShifterSim для симуляции. В этом сценарии пользовательский интерфейс все еще запускается в среде MATLAB, но основной алгоритм обработки выполняется файлом MEX. Производительность улучшается в этом режиме, не ставя под угрозу способность к настройкам параметров.

Вызовите audioPitchShifterExampleApp с 'true' в качестве аргумента, чтобы использовать файл MEX для симуляции. Снова, запуски симуляции, пока пользователь явным образом не останавливает его от пользовательского интерфейса.

Ссылки

[1] 'Используя несколько процессоров для звуковых эффектов в реальном времени', Bogdanowicz, K.; платок, R; AES - май 1989.

[2] 'Детальный анализ временного интервала откорректированный формантой переключающий подачу алгоритм', Бристоу-Джонсон, R.; AES - октябрь 1993.