回声消除(AEC)原理、算法及实战——AEC背景介绍

回声就是声音信号经过一系列反射之后,又听到了自己讲话的声音,这就是回声。一些回声是必要的,比如剧院里的音乐回声以及延迟时间较短的房间回声;而大多数回声会造成负面影响,比如在有线或者无线通信时重复听到自己讲话的声音(回想那些年我们开黑打游戏时,如果其中有个人开了外放,他的声音就会回荡来回荡去)。因此消除回声的负面影响对通信系统是十分必要的。

针对回声消除(Acoustic Echo Cancellation,AEC )问题,现如今最流行的算法就是基于自适应滤波的回声消除算法。本文从回声信号的两种分类以及 AEC 的基本原理出发,介绍几种经典的 AEC 算法并对其性能进行阐释。

回声分类

  在通信系统中,回声主要分为两类:电路回声声学回声线性回声非线性回声

电路回声

  电路回声通常产生于有线通话中,为了降低电话中心局与电话用户之间电话线的价格,用户间线的连接采用两线制;而电话中心局之间连接采用四线制(上面两条线路用于发送给用户端信号,下面两条线路用于接收用户端信号)。问题就出来了,造成电路回声的根本原因是转换混合器的二线-四线阻抗不能完全匹配(使用的不同型号的电线或者负载线圈没有被使用的原因),导致混合器 接收线路 上的语音信号流失到了 发送线路 ,产生了回声信号,使得另一端的用户在接收信号的同时听到了自己的声音。

在现如今的数字通信网络中,转换混合器与数模转换器融为一体,但无论是模拟电子线路还是数字电子线路,二-四线的转换都会造成阻抗不匹配问题,从而导致其产生电路回声,影响现代通信质量。由于电路回声的线性以及稳定性,用一个简单的线性叠加器就可以实现电路回声消除首先将产生的回声信号在数值上取反,线性地叠加在回声信号上,将产生的回声信号抵消,实现电路回声的初步消除。然而由于技术缺陷,线性叠加器不能完整地将回声信号抹去,因此需要添加一个非线性处理器,其实质是一个阻挡信号的开关,将残余的回声信号经过非线性处理之后,就可以实现电路回声的消除,或者得到噪声很小的静音信号。由于电路回声信号是线性且稳定的,所以比较容易将其消除,而本文主要研究的是如何消除非线性的声学回声。

声学回声

  在麦克风与扬声器互相作用影响的双工通信系统中极易产生声学回声。如下图所示

远端讲话者-->远端麦克风-->通话网络---->近端扬声器--->近端麦克风-->通话网络-->远端扬声器--->远端麦克风--->远端电话-->近端电话---->......就这样无限循环,

详细讲解:远端讲话者的声音被远端麦克风采集并传入通信设备,经过无线或有线传输之后达到近端的通信设备,并通过近端扬声器播放,这个声音又会被近端麦克风采集形成声学回声,经传输又返回到远端的通信设备,并通过远端扬声器播放出来,从而远端讲话者就听到了自己的回声。

详细讲解:远端讲话者的声音被远端麦克风采集并传入通信设备,经过无线或有线传输之后达到近端的通信设备,并通过近端扬声器播放,这个声音又会被近端麦克风采集形成声学回声,经传输又返回到远端的通信设备,并通过远端扬声器播放出来,从而远端讲话者就听到了自己的回声。

远端语音信号:被远端麦克风采集的信号(说话人语音),也等于近端扬声器播放的语音,也称为参考语音

 近端语音信号:近端说话人语音信号

 近端麦克风接收的语音信号:近端扬声器播放的声音+在房间多径反射的语音+近端说话人的语音

远端混合回声信号:整个对话过程中,近端麦克风接收到的信号有近端说话人语音信号和近端扬声器播放的远端说话人语音,这样叠加的语音信号通过传输线路传到远端扬声器播放导致远端人听到自己刚刚检测出的语音信号,即所谓的回声。

声学回声信号根据传输途径的差别可以分别直接回声信号和间接回声信号。

  • 直接回声(线性回声):近端扬声器将语音信号播放出来后,被近端麦克风直接采集后得到的回声;直接回声不受环境的印象,与扬声器到麦克风的距离及位置有很大的关系,因此直接回声是一种线性信号
  • 间接回声(非线性回声):近端扬声器将语音信号播放出来后,语音信号经过复杂多变的墙面反射后由近端麦克风采集;间接回声的大小与房间环境、物品摆放以及墙面吸引系数等等因素有关,因此间接回声是一种非线性信号

回声消除技术主要用于在免提电话、电话会议系统等情形中。

一个完整的回声消除系统,包含以下几个模块:

  1. 时延估计(Time Delay Estimation, TDE) 模块
  2. (线性)回声消除(Linear Acoustic  Echo Cancellation, AEC) 模块
  3. 双讲检测(Double-Talk Detect, DTD) 模块
  4. 非线性残余声学回声抑制(Residual Acoustic Echo Suppression, RAES) 模块

 

AEC的基本原理

回声消除常用方法

  • 声场环境材料处理
    • 墙壁、天花板换成吸音材料,有效的较少声音的反射,
    • 优缺点:可以较为直接的抑制间接噪声,但是直接噪声无法抑制;成本较高
  • 回声抑制器
    • 通过一个电平对比单元 轮流打开和关闭扬声器和麦克风
    • 优缺点:导致功放设备的输出信号不连续,总体效果不好
  • 自适应回声抵消(用的最多)
    • 通过自适应算法来调整滤波器的迭代更新系数,估计出一个期望信号,逼近经过实际回声路径的回声信号,也就是去模拟回声信号,然后从麦克风采集的混合信号中减去这个模拟回声,达到回声抵消的功能

如今解决 AEC 问题最常用的方法,就是

使用自适应滤波算法调整滤波器的权值向量,估计一个近似的回声路径来逼近真实回声路径,从而得到估计的回声信号,并在纯净语音和回声的混合信号中除去此信号来实现回声的消除。

x(n)为远端语音,经过未知的回声路径w(n)得到远端回声语音y(n)=x(n)∗w(n),再加上近端语音s(n),得到期望信号d(n)=y(n)+s(n)。x(n)通过自适应滤波器\hat{w}(n)得到估计的回声信号\hat{y}(n),并与期望信号d(n)相减得到误差信号e(n)=d(n)-\hat{y}(n)误差信号的值越小说明自适应滤波算法所估计的回声路径就越接近实际的回声路径。

滤波器采用特定的自适应算法不停地调整权值向量,使估计的回声路径w^(n)逐渐趋近于真实回声路径w(n)。显然,在 AEC 问题中,自适应滤波器的选择对回声消除的性能好坏起着十分关键的作用。

参考链接:

https://www.cnblogs.com/LXP-Never/p/11703440.html

猜你喜欢

转载自blog.csdn.net/qq_42233059/article/details/131365823