07|如何通过算法自动快速地消除回声?
冯建元
![](https://static001.geekbang.org/resource/image/51/ff/519bae027d9e3f0c9d3bb8706320faff.jpg)
你好,我是建元。
前面几节课,我们讲了实时音频前处理中的降噪算法。从这节课开始,我们将会看看语音交互或者说音频通信领域的另一项不可或缺的技术:声学回声消除(Acoustic Echo Cancellation, 简称 AEC)。
回声消除算法在实时音频互动链路中和很多其它模块以及硬件都会有耦合。这节课我们主要看看实时音频互动链路中回声是如何产生的以及回声消除算法的基本原理。
需要注意的是,这节课涉及到的公式比较多。不过不用担心,只要你理解了原理,就很容易能明白公式的含义,从而能够记住公式的定义。
回声产生的原因
回声是如何产生的呢?我们可以通过下面的图来看一下,这是一个出现回声的经典场景。
![](https://static001.geekbang.org/resource/image/0b/9b/0b5122405b7baeef466839555b1a109b.jpg?wh=1280x592)
图1 回声产生的原理
图 1 中 B 端的人在说话,说话的声音会被 B 端的麦克风采集。麦克风采集到的语音信号转为数字信号后经过网络传输到 A 端,在 A 端的扬声器会把收到的语音信号转成声波播放出来,同时 A 端的麦克风又会把扬声器的声音采集回来,通过网络又传回给了 B 端。这时 B 端的人就会听到自己发出去的声音,我们把这个声音就叫做回声。
在音频实时互动的场景里,回声会严重影响通话体验,自己的声音不断被打断,而且对端的声音可能会和回声混在一起,这样会显著降低语音的可懂度。那么相对地,AEC 的任务就是为了消除这个回声。在 AB 端互通的时候,我们需要使用 AEC,在 A 端把麦克风采集到的信号中和 B 端相关的声音去掉,只保留 A 端的音源的声音发给 B 端。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
![](https://static001.geekbang.org/resource/image/d0/e4/d0880927e2a522a038be2d04bf19dfe4.png)
声学回声消除(AEC)算法是实时音频互动领域中的重要环节,本文深入介绍了AEC算法的原理和自适应滤波器的工作方式。文章首先解释了回声产生的原因,以及AEC算法的基本原理,即通过估计回声路径的传递函数来消除回声。随后,介绍了自适应滤波器的原理,包括维纳滤波和梯度下降法的迭代计算过程。自适应滤波器通过实时更新滤波器的系数来模拟真实场景的回声路径,从而实现快速自适应地消除回声。此外,文章还探讨了AEC算法中的挑战和解决方法,包括延迟估计、双讲检测和非线性处理。总体而言,AEC算法在多音源混合的音频中消除特定音源的回声,同时也可用于音源分离。文章内容深入浅出,为读者快速了解声学回声消除技术提供了重要参考。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《搞定音频技术》,新⼈⾸单¥59
《搞定音频技术》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(9)
- 最新
- 精选
- 徐刚带上耳机,耳机扬声器发出的声音;如果是使用耳机自带的mic,一般这种耳机自带回声消除,耳机采集并发送给手机的信号没有回声了;如果没有使用耳机的mic采集语音,耳机使用手机自带的mic采集语音,由于耳机的扬声器的声音很小,不能被手机的mic采集到,自然回声没有被采集到
作者回复: 正解
2021-12-062 - 晓龙有的时候设备或者 App 在使用过程中还是会频繁地出现回声泄漏,但是带上耳机似乎大部分回声问题就可以解决,这背后的原理是什么呢? 之所以会有回声,是因为采集和播放设备的耦合,带上耳机后,播放的声音不会进入到耳机的Mic中,打破了“播放->采集”这个链路,所以就会消除回声。
作者回复: 正解
2021-12-071 - 徐刚能推荐下深度学习做非线性处理的方法,和效果比较好的深度学习开源算法?
作者回复: AEC的比赛这几年比较多比如2021的 AEC challenge上有很多不错的论文和结果:https://www.microsoft.com/en-us/research/academic-program/acoustic-echo-cancellation-challenge-icassp-2021/
2021-12-061 - 功夫熊猫我刚跟老师要了一个用FPGA实现LMS的项目。
作者回复: 加油,往硬件方向这也是很坚实的一步
2021-12-21 - 哈珀朋友这章太专业了,请多贴一些参考文献2021-12-061
- 吴成凯线性回声和非线性回声,老师可以帮忙详细介绍下么? 什么是线性回声,什么是非线性回声,有没有具体案例音频? 非常感谢2022-09-27归属地:北京
- Leo-J老师有个问题哈,回声误差用的e(n)=echo(n)−echo’(n) ,但是这个echo(n)是无法知道的啊,怎么能用来计算呢?2022-06-301
- hh老师请问下 公式10中 W(n+1)=W(n)+μ(n)X(n)e(n) , X(n)是输入信号也就是远端信号,e(n)就是远端信号 - 线性变换后的远端信号,我理解的有误吗?2022-06-27
- 龚长华带上耳机后, 扬声器不再发声。因而远端声音无法进入到麦克,采集的信号就不会存在远端的声音信息。因而没有回声。2022-04-20
收起评论