我使用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以减少实时音频延迟?
编辑:使用具有音频系统工具箱的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驱动程序?
另外,面临的另一个问题是我的讲话有回声,这不是故意的。
答案 0 :(得分:0)
了解所用的Matlab版本以及是否具有音频系统工具箱可能会有所帮助。然后,我可以建议这个示例说明如何测量低延迟: https://www.mathworks.com/help/audio/examples/measure-audio-latency.html