Обработка аудио в реальном времени: не работает AudioDeviceReader «Драйвер» (MATLAB) - PullRequest
0 голосов
/ 29 октября 2018

Я использую аудио интерфейс Fireface UC.

setpref('dsp', 'portaudioHostApi', 3);
deviceReader = audioDeviceReader('Driver', 'ASIO', 'Device', 'ASIO Fireface USB', 'SamplesPerFrame', 1024, 'SampleRate', 48000);
deviceWriter = audioDeviceWriter('Driver', 'ASIO', 'Device', 'ASIO Fireface USB', 'SampleRate', 48000, 'BufferSize', 1024);

когда я включаю драйвер ASIO, например, в приведенном выше коде, звук не выводится. Параметры размера буфера, полученные из asiosettings (deviceWriter.Device), также установлены на 1024.

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

setpref('dsp', 'portaudioHostApi', 3);
deviceReader = audioDeviceReader('Device', 'Analog (1+2) (RME Fireface UC)', 'SamplesPerFrame', 1024, 'SampleRate', 48000);
deviceWriter = audioDeviceWriter('Device', 'Analog (3+4) (RME Fireface UC)', 'SampleRate', 48000, 'BufferSize', 1024);

Как мне успешно включить ASIO, чтобы уменьшить задержку звука в реальном времени ???

edit: используя matlab 2018b, который имеет набор инструментов аудиосистемы. Задержка уменьшается, когда размер буфера уменьшается до 64, что является самым большим, что я могу сделать, прежде чем щелкнуть и щелкнуть.

Однако, это работает, только если я использую ASIO для микрофона и WASAPI для динамика, т.е.

setpref('dsp', 'portaudioHostApi', 3); 
deviceReader = audioDeviceReader('Driver', 'ASIO', 'Device', ASIO Fireface USB', 'SamplesPerFrame', 1024, 'SampleRate', 48000);
deviceWriter = audioDeviceWriter('Driver', 'WASAPI', 'Device', 'Analog (3+4) (RME Fireface UC)', 'SampleRate', 48000, 'BufferSize', 64);

почему это так? почему я не могу включить драйвер ASIO для динамика и микрофона?

Кроме того, еще одна проблема заключается в том, что в моей речи есть эхо, которое не предназначено.

1 Ответ

0 голосов
/ 13 ноября 2018

Может быть полезно узнать, какую версию Matlab вы используете, и есть ли у вас Audio System Toolbox. Тогда, я мог бы предложить этот пример, который показывает, как измерить низкую задержку: https://www.mathworks.com/help/audio/examples/measure-audio-latency.html

...