联系人:徐经理
手机:13609715026(技术咨询)
电话:020-39985615
Email:184049149@qq.com
Q Q :2397159370
网址:www.gxdsp.com
地址: 广州市番禺区洛浦街沿沙路51号瑞方医疗产业园A3栋203广州市番禺区洛浦鑫联音技术服务中心
回声消除是语音信号处理领域常见的处理方法,基于自适应预测的回声消除是基础之一。然而,在许多博客中,一些细节没有解释清楚,这让读者感到困惑。这里有一个详细的总结。回声分为线路回声和声学回声。本文重点关注声学回声。
产生和消除回声的机制:回声是由扬声器和麦克风之间的声波反射和声学耦合引起的,在电话会议系统中,近端麦克风接收了扬声器的输出信号,这些信号是由房间内的墙壁、地板等物体定向反射后产生的远端语音信号,导致回声被送回远端。因为回声的存在干扰了正常的通信,所以人们希望通过消除回声来更好地进行通信。一般的回声消除算法包括以下步骤:
一、估计房间回声路径的特点
二、复制人工生成回声信号
三、接着从麦克风信号中减去回声
通过上述三个步骤,可以达到消除回声的目的。基于自适应滤波的回声消除,在这一点上,对应于上一节的一般回声消除算法,采用自适应预测的回声消除步骤如下:
一、估计回声路径特性,我们训练自适应滤波器,使滤波器的声学特性接近近端房间的声学特性
二、通过我们训练的自适应滤波器,产生回声。
三、减去我们从麦克风信号中产生的回声。
这里需要注意的是,我们训练自适应滤波器来获得房间的声学特性,许多博客介绍自适应滤波器的目的是直接输出纯语音。我们单独提取自适应滤波部分,研究如下图所示。这是一个FIR维纳滤波器,旨在最大限度地减少输出信号和预期信号之间的误差。如果用LMS来衡量这个误差,那就是基于LMS的自适应滤波器。假定滤波器的权重为w,阶数为p,期望信号为d。那滤波输出就是输入信号x(n)以及滤波器权重w的卷积:
那LMS误差如下:
我们的目的是最大限度地减少这个误差,所以我们需要更新滤波器的权重。自适应滤波器的训练采用梯度下降法,这是神经网络的梯度下降。推送过程不会展开,权重更新公式直接给出如下:
其中μ对于迭代步长,相当于神经网络中的学习速度。上述是基于LMS的自适应滤波器训练过程。
事实上,完整的回声消除过程,包括双向通话检测、自适应滤波和非线性处理。双向通话检测是为了保证回声消除的正常工作。毕竟,如果你继续在没有通话的情况下消除回声,你肯定会犯错误。非线性处理是在没有近端语音信号的情况下完全或部分消除残留信号。具体来说,NLP单元慢慢消除回声,增加舒适的噪音,让语音听起来不那么突兀。
实现回声消除算法:AEC在真实工程中比较复杂(可以参考开源AEC算法,如WebRTC/Speex等)