В этом примере показов, как создать аудио испытательного стенда и применить обработку в реальном времени.
Приложение Audio Test Bench позволяет вам графически настроить вход и вывод аудио, обработку аудио и открыть общие инструменты анализа, такие как timescope
и dsp.SpectrumAnalyzer
. Щелкните, чтобы считать из файла и записать в динамик.
audioTestBench
Нажмите и, чтобы проанализировать аудиосигнал во временных и частотных диапазонах.
Чтобы применить динамическое сжатие области значений к аудио, сначала щелкните, чтобы остановить аудио ввода-вывода, затем введите compressor
в поле редактирования «Объект в процессе тестирования». Настраиваемые свойства compressor
объект доступен. Вы можете настроить эти свойства во время испытательного стенда.
Чтобы сгенерировать тестовый скрипт стенда, сначала щелкните, чтобы остановить аудио ввод-вывод, затем нажмите. Audio Test Bench генерирует код в новом скрипте без названия. Код, сгенерированный испытательным стендом в этом примере, показан ниже.
% Test bench script for 'compressor'. % Generated by Audio Test Bench on 27-May-2020 15:34:48 -0400. % Create test bench input and output fileReader = dsp.AudioFileReader('Filename','RockGuitar-16-44p1-stereo-72secs.wav'); deviceWriter = audioDeviceWriter('SampleRate',fileReader.SampleRate); % Create scopes timeScope = dsp.TimeScope('SampleRate',fileReader.SampleRate, ... 'TimeSpan',1, ... 'TimeSpanOverrunAction','Scroll', ... 'AxesScaling','Manual', ... 'BufferLength',4*fileReader.SampleRate, ... 'ShowLegend',true, ... 'ChannelNames',{'Input channel 1','Output channel 1'}, ... 'ShowGrid',true, ... 'YLimits',[-1 1]); specScope = dsp.SpectrumAnalyzer('SampleRate',fileReader.SampleRate, ... 'PlotAsTwoSidedSpectrum',false, ... 'FrequencyScale','Log', ... 'ShowLegend',true, ... 'ChannelNames',{'Input channel 1','Output channel 1'}, ... 'YLimits',[-137.68466894418421 21.786707286754297]); % Set up the system under test sut = compressor; sut.SampleRate = fileReader.SampleRate; % Uncomment to open visualizer: % visualize(sut); % Open parameterTuner for interactive tuning during simulation tuner = parameterTuner(sut); drawnow % Stream processing loop nUnderruns = 0; while ~isDone(fileReader) % Read from input, process, and write to output in = fileReader(); out = sut(in); nUnderruns = nUnderruns + deviceWriter(out); % Visualize input and output data in scopes timeScope([in(:,1),out(:,1)]); specScope([in(:,1),out(:,1)]); % Process parameterTuner callbacks drawnow limitrate end % Clean up release(sut) release(fileReader) release(deviceWriter) release(timeScope) release(specScope)
В скрипт можно добавить дополнительные шаги обработки, возможностей и инструменты анализа. Если вы запускаете сгенерированный скрипт, parameterTuner
открывает и позволяет вам настройкам параметров во время обработки потока.
Audio Test Bench | audioDeviceReader
| audioDeviceWriter
| audioPlayerRecorder
| dsp.AudioFileReader
| dsp.AudioFileWriter
| parameterTuner