程序员新人。我想编写一个程序,用麦克风输入语音,经过处理(比如提高基频)以后,实时输出。主要是声卡驱动的问题,我希望使输出的延时越小越好。之前试过使用wavein,waveout但效果非常不理想。现在考虑使用portaudio,不知道行不行。请大家给点建议,能给出声卡实时录入输出的代码更好(不限于portaudio)。谢谢~
只有硬件级才能实现零延迟,所有诸如DirectSound,waveIn/waveOut等都会有延迟的。其原理就是读取声卡一段时间录制的声音播放出来。要想降低延时,就提高对缓冲区读取频率和减少缓冲区录制时间。
硬件级也不可能实现零延迟!
延时想小一些,只能使用 DirectX 技术。
或者,直接从驱动一级处理,但这个要求的技术就更高:自己开发声卡驱动,直接从驱动中取出数据进行处理。
用portaudio比自己去写方便的多,建议采用portaudio