AEC是指Acoustic Echo Canceller,即声学回声消除。主要分为两大类:
基于DSP等实时平台的回声消除技术和基于Windows等非实时平台的回声消除技术。
而其中AE是啥呢?
Acoustic Echo(AE)
Acoustic Echo
从已上图可以看出,声学回声指设备的一部分声音信号回馈到同一设备的受话器,分为直接回声和间接回声。
直接回声指扬声器的声音未经任何反射直接进入麦克风,这种 回声延迟最短。
间接回声是指扬声器播放的声音经不同的路径一次或多次反射后进入麦克风所产生的回声集合,
其主要特点是回声路径冲激响应变化范围大,变化快,冲激响应持续时间长,一般在50~300ms。
这使得自适应建模滤波器的阶数很高,因而成为语音通信系统回声的主要难题。
基于Windows平台的回声消除技术
Windows平台是一个非实时的平台,音频的采集和播放对回声消除算法而言,也是非实时的。和DSP平台不一样,DSP平台可以直接控制AD/DA芯片的采集播放,获得实时的音频流(不存在同步问题).
但是Windows平台下,应用程序很难在底层直接控制声卡的采集播放,获得的是非实时的音频流,从而带来了采集和播放音频流的同步问题。
一般的处理思路:
在一般的VoIP软件中,接收对方的声音并传到声卡中播放是在一个线程中进行的,而采集本地的声音并传送到对方又是在另一个线程中进行的,而声学回声消除算法在对采集到的声音进行回声消除的同时,还需要播放线程中的数据作为参考,而要同步这两个线程中的数据是非常重要的,因为稍稍有些不同步,声学回声消除算法中的自适应滤波器就会发散,不但消除不了回音,还会破坏原始采集到的声音,使声音难以分辨。
References:
All You Wanted to Know About Acoustic Echo Cancellation
Author: Puneet Gupta and Anil Kumar, Video Communications Team, Ittiam Systems
http://blog.51cto.com/silversand/166101
参考文献