exponenta event banner

Развертывание аудиоприложений с помощью компилятора MATLAB

В этом примере показано, как использовать MATLAB Compiler™ для создания автономного приложения из функции MATLAB. Функция реализует алгоритм обработки звука и воспроизводит результат через устройство вывода звука.

Введение

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

Алгоритм реверберации

Алгоритм реверберации реализуется с помощью объекта System reverberator. Он позволяет добавить эффект реверберации к звуковому входу моно- или стереоканала. Объект имеет шесть свойств, управляющих характером реверберации. Каждый из них можно настроить во время выполнения моделирования.

Моделирование MATLAB

Функция audioReverberationCompilerExampleApp является оберткой вокруг reverberator. Проверка поведения audioReverberationCompilerExampleApp, запустите функцию в MATLAB. Для воспроизведения звука требуется дополнительный ввод в секундах. Значение по умолчанию - 60.

audioReverberationCompilerExampleApp

Функция audioReverberationCompilerExampleApp использует getAudioDevices способ audioDeviceWriter список устройств вывода звука, доступных на текущем компьютере, чтобы вы могли воспроизводить реверберный звук через звуковую карту по своему выбору. Это особенно полезно в развернутых приложениях, поскольку авторы функций редко знают, какое устройство будет подключено к целевой машине.

audioReverberationCompilerExampleApp также отображает настраиваемые свойства reverberator к пользовательскому интерфейсу, чтобы их можно было легко настроить во время выполнения моделирования и мгновенно наблюдать за его эффектом. Например, переместите ползунок «Диффузия» вправо во время моделирования. Вы услышите эффект увеличения плотности отражений. Для приостановки или остановки моделирования можно использовать кнопки пользовательского интерфейса.

Создание временного каталога для компиляции

После проверки моделирования MATLAB можно выполнить компиляцию функции. Перед компиляцией создайте временный каталог с разрешениями на запись. Скопируйте основную функцию MATLAB и связанные вспомогательные файлы в этот временный каталог.

compilerDir = fullfile(tempdir,'compilerDir'); %Name of temporary directory
if ~exist(compilerDir,'dir')
    mkdir(compilerDir); % Create temporary directory
end
curDir = cd(compilerDir);
copyfile(which('audioReverberationCompilerExampleApp'));
copyfile(which('HelperAudioReverberation'));
copyfile(which('FunkyDrums-44p1-stereo-25secs.mp3'))
copyfile(which('HelperCreateParamTuningUI'));
copyfile(which('HelperUnpackUIData'));

Компиляция функции MATLAB в автономное приложение

Используйте mcc (Компилятор MATLAB) функция из компилятора MATLAB для компиляции audioReverberationCompilerExampleApp в автономное приложение. Он будет сохранен в текущем каталоге. Укажите параметр «» -m «» для создания автономного приложения, параметр «» -N «» для включения только каталогов в путь, указанный с помощью параметра «» -p «».

mcc('-mN','audioReverberationCompilerExampleApp', ...
    '-p',fullfile(matlabroot,'toolbox','dsp'), ...
    '-p',fullfile(matlabroot,'toolbox','audio'));

Выполнение этого шага занимает несколько минут.

Запуск созданного приложения

Используйте system для запуска созданного автономного приложения. Обратите внимание, что при запуске автономного приложения с помощью системной команды используется текущая среда MATLAB и все файлы библиотеки, необходимые для данной установки MATLAB. Сведения о развертывании этого приложения на компьютере, на котором не установлен MATLAB, см. в разделе Сведения о среде выполнения MATLAB (компилятор MATLAB).

if ismac
    status = system(fullfile('audioReverberationCompilerExampleApp.app', ...
        'Contents','MacOS','audioReverberationCompilerExampleApp'));
else
    status = system(fullfile(pwd,'audioReverberationCompilerExampleApp'));
end

Как и при моделировании MATLAB, при запуске этого развернутого приложения сначала будет предложено выбрать звуковое устройство, которое необходимо использовать для воспроизведения звука. Затем запускается пользовательский интерфейс (UI) для взаимодействия с алгоритмом реверберации во время выполнения моделирования.

Очистка созданных файлов

После создания и развертывания исполняемого файла можно очистить временный каталог, выполнив следующие действия в командной строке MATLAB:

cd(curDir);
rmdir(compilerDir,'s');