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

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

Алгоритм

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

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

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

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

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

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

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

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

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

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

shiftPitch является простой функцией, которая может использоваться, чтобы выполнить подачу, переключающую как часть большей симуляции MATLAB. Функция инстанцирует плагина audiopluginexample.PitchShifter и использует setSampleRate метод, чтобы установить его уровень выборки на Фс входного параметра. Параметр плагина настраивается путем устанавливания их значений к подаче входных параметров и перекрытию, соответственно. Обратите внимание на то, что также возможно сгенерировать файл 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.