本文主要是介绍回声消除的原理和应用场景,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原址
摘要:如今,随着芯片技术和高带宽通讯的发展,开发人员能够在更加优越的语音通话体验上做文章,同时市场上对免提通话的需求也越来越高。然而免提通话系统往往需要能够应对各种干扰的考验。其中不可忽视的一种的干扰是扬声器回声麦克风场(Loudspeaker EchoMicphone System)中的声学回声。本文探讨通话过程中声学回声(Acoustic Echo)的产生原因,以及其基本声学回声消除(Acoustic Echo Cancellation)应用场景。
声学回声产生的原因:
一个VOIP通话的结构图如下:
当远端Far-end有说话者讲话时,声音会传到近端(Near-end)的扬声器,然后声音通过空间延时和传输延时重新回到了远端。这样就造成了声学回声。近端到远端的流程也有同样声学回声,在此仅仅描述近端的流程。
为了抑制声学回声,首先可以从空间传播路径做文章,包括近端用户使用耳麦和声场范围比较小或者定向的扬声器,通过物理的方式阻断回声的传播录音。另外一种方法就是在近端麦克风输入信号中采用AEC模块或者AES模块来抑制回声。如果要使用在免提的通话场景,第二种方式是必须的。当然最近还遇到了一些耳机麦克风比较灵敏的情况也需要AEC处理。
回声消除模块的基本原理就是使用Far-end的信号做相应的估计,在近端的时候找出这部分信号然后像美化照片中的抠图一样将它抠掉——这是我能想到最简单易懂的解释。另外回声消除的效果会受到噪声和近端语音的影响,可以吧噪声近端语音看成是污染源,干扰了”抠图“效果。
下面抽象一下上图,有:
以后的关于AEC算法的分析研究如无特殊说明,将使用该图画定义的符号。主要符号意义:
:远端信号;
:远端信号;
:噪声信号;
:物理回声信号;
:时间点数;
:近端信号;
:误差信号;
:物理回声信道;
:估计回声信道。
一般而言建模时假设物理回声信道是线性的,那么回声产生的公式为:
, (1)
近端信号为:
。 (2)
那么AEC的目的就是1)使用估计回声信道模拟出物理信道,然后获得相应的回声:
。 (3)
2)将回声从近端信号减去获得没有回声的误差信号:
(4)。
本文不做实际程序和算法的分析,仅仅介绍AEC的使用场景和原理。以后的文章将深入分析AEC算法及其表现。
这篇关于回声消除的原理和应用场景的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!