AEC滤波系统
AEC滤波系统是由软件实现的回声消除(AEC)和噪声抑制(NS)组成。此滤波器是windows XP及后续产品中的标准操作系统组件。通过Microsoft Windows SDK 的文档可得到如何通过DirectSoundCapture实现AEC滤波的信息。
AEC滤波系统的限制条件
一个音频图包含音频采集并应用系统AEC滤波音效,它有如下的限制。
l AEC系统滤波输入接口需要是PCM格式。
l 采集端的采样深度必须是16bit,播放端的采样深度是8bit或者16bit.
l AEC系统滤波内部处理是按16 kHz采样率运行的,采集和播放的采样率也应是这个采样率,如果不同的话会进行采样率变换。
l 在windows XP 系统中,音频的采集和播放必须是相同的采样率。在windows XP SP1, windows Server 2003及以后系统,和AEC相连的采集和播放也必须是相同的采样率,但这相同的采集和播放采样率能被其它接口独立的选择(如下图)。采集的采样率可以是(按执行效率排序)16 kHz, 48 kHz, 44.1 kHz, or 8 kHz。(执行效率基于处理所需时间和语音质量)。播放端的采样率可以是(按执行效率排序)16 kHz, 48 kHz, or 44.1 kHz。注意:播放端是不支持8kHz的采样率的。
AEC滤波系统的接口和连接
l AEC和NS仅支持单声道的麦克输入。如果采集是多声道的(如:立体声双声道),除第一个通道外其它通道音频输入会被忽略(和丢弃),只有单声道的播放能被处理。
l 在windows XP系统,采集和播放的时钟频率必须是相同的。AEC系统是不会匹配设备间的时钟频率。这个限制在作用于AEC运行在独立的采集和播放设备上。在windows XP SP1, windows Server 2003及以后系统,就没有这个限制了。AEC滤波能运行在不同时钟频率的采集和播放设备上并且可以分开使用采集和播放设备。
l 当AEC滤波系统正在使用时,系统的声音设备会关闭硬件混音,采样率转换,3D音效等。所以混音数据是在由软件仿真的KMixer system driver完成。有这个限制,才能确保AEC能在采集端除去所有播放端播出的音频数据。
l 所有进入AEC/NS的采集端和播放端的信号必须保证是线性的时长不变的。如果任意端的输入信号是非线性的或者是时长变化的都会阻止AEC从采集端除去回声。
l 系统音频在使用AEC时不要使用GFX滤波。因为在开启AEC时GFX滤波是不能在采集和播放端正常工作的。
l AEC滤波仅能去除你电脑中AEC系统通道中的回声。当声音的播放路径不经过AEC系统时,回声是不能去掉的。比如,你旁边的电脑播放的声音在办公室产生的回音,你电脑中的AEC是搞不定的。