目录
一. 回声产生的原因
如上图,回声简单的描述即 A端的麦克风接收到A端扬声器播出的来自B端的信号,回传给了B端。
当A端麦克风将 A端的人声与 回声混在一起后会显著降低语音的可懂度。需要使用AEC将回声消除后,只保留A端的音源声音发给B端。
二. 回声消除的基本原理
参考信号:
在近端收到的远端的声音信号叫做参考信号。
回声路径的传递函数:
经过扬声器播放、空气传播、房间墙体反射、麦克风采集后,参考信号不可避免的产生很多变换。 这个变换用数学的方式来表达叫做回声路径的传递函数。
如上图,近端信号除了回声还有近端语音。 echo(n)表示回声,y(n)表示近端声音。
z(n)=echo(n)+y(n)
回声消除的目的是通过算法估计出回声路径的传递函数. f' 。如果估计的传递函数 f' 与真实的传递函数f是一致的。那么回声就可以完美消除了。
z’(n) = z(n) − f’(x(n)) 公式 3
z’(n) = f(x(n)) − f' (x(n)) + y(n) 公式 4
z’(n) 表示近端信号, f' (x(n))估计出的传递函数,f(x(n))为真实的传递函数。
三. 自适应滤波器
采用实时更新的滤波器系数来模拟真实场景的回声路径。(回声路径建模)
3.1 自适应滤波器适用的场景:
复杂的声学场景:
实际AEC要面临复杂的、时变的声学环境。比如
- 扬声器和麦克风说播放失真、采集失真会给声学信号带来很多非线性的变化。
- 设备、系统调度的不稳定性可能造成回声和远端接受信号的延迟抖动。
- 房间的混响、设备所处的位置的变化,都会带来回声路径的变化。
因此AEC必须快速的自适应算出这些回声路径的变化。如果估计不准,可能会导致回声泄漏或近端声音被压制,甚至造成丢字、卡顿等现象,严重影响实时音频互动的质量。
3.2 解决方案:
针对以上问题,经过半个多世纪的发展,摸索出一套以自适应滤波为基础的回声消除方法。
自适应滤波的核心思想:用实时更新的滤波器系数模拟真实场景的回声路径,然后结合远端信号估计出回声信号