自适应声回声消除

声回声很常见,比如说在打电话的时候,自己说话的时候可以在听筒里听到自己的声音。这是因为远端扬声器的信号可以传播到远端受话器里。并且这种传播路径是不固定的,随着远端设备的位置等条件变化而变化,因此是时变的。这个时候希望在近端找到一个跟传播路径功能相似的函数,来逼近回声信号,这样就可以在近端抵消这种回声。

下图是声回声产生的大致过程:

自适应声回声消除

自适应滤波的过程如下:

自适应声回声消除整个滤波过程抽象为:

自适应声回声消除自适应声回声消除语音通话中一般一人说一人听,因此自适应回声消除算法核心步骤为:

① 当说话端开始说话时候,听话端停止说话,自适应滤波器开始干活, 在不考虑噪声的情况下满足 自适应声回声消除 ; 自适应声回声消除 ; 工作框图为:

自适应声回声消除以 自适应声回声消除 为观测信号,回声信号为期望信号,根据维纳自适应滤波准 则:最小均方误差准则进行自适应滤波求得滤波器权重参数。 并且在听话端开口说话前就要完成权重的训练,因此要求算法收敛速度要快。

② 在听话端开始说话时候,停止自适应滤波权重的更新,工作框图为:

自适应声回声消除这样就可以在听端最大程度得滤除回声。具体的还要在双端添加一个检测模块,用于检查有没有说话,一旦对方说话,那么自己这端便停止滤波器权重更新。

简单的自适应滤波原理与实现可以参考: 时域维纳滤波小结 - 声声不息 - 知乎专栏

后期性能更好更复杂一点的自适应滤波方法,可以在此基础上继续学习,这里就不多介绍了。