webrtc音频QOS方法三(回声的产生及抑制)

一、回声的产生

无论是实际环境还是语音通话中,回声总是存在的。但是需要满足如下两个条件,我们才能感觉到回声的存在:

1、回波通路延时足够长

回波通路延时 效果
小于30ms 不易察觉
小于50ms 有感知
大于50ms 影响严重,需要干预


2、回波信号能量足够强

也就是说,返回的回波信号必须足够强到,能让用户能够听见。

在实时音频会议通话中,产生回声的主要来源有两点:电学回声、声学回声。回波消除的算法也有两种:EC、AEC。一般EC是电学回波消除,部署在PSTN网关或接入设备上。AEC指的是声学回波消除,用于终端设备。

二、回声的种类及抑制

1、电学回声

目前大家可能很少听说电学回声,过去使用固定座机电话时,会有电学回声问题。它的产生原理如下:

在几乎所有的通信网络中,信号的传递都是采用4线传输,也就是在接收和发送两个方向上,各使用两条线传输信号,其中一条是参考地,另一条是信号线。但是电话用户使用的话机都是通过2线传输的方式接入本地交换机,一条线是参考地,另一条信号线上同时传输收发双向的信号。所以需要在本地交换机中采用2/4线转换(hybrid)实现这两种传输方式之间的转换。

由于实际使用的2/4线变换器中混合线圈不可能做到理想状况,总是存在一定的阻抗不匹配,不能做到将发送端和接收端完全隔离,所以从4线一侧接收的信号总有一部分没有完全转换到2线一侧,部分泄露到了4线一侧的发送端,因此产生回波。

电学回声的时延一般都比较小100ms以内,一般在近电话接入网关侧开启软件EC功能,就能比较好的解决这类问题。

2、声学回声

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

远端讲话者A-->麦克风A-->电话A-->电话B---->扬声器B--->麦克风B-->电话B-->电话A-->扬声器A--->麦克风A--->.........就这样无限循环。 

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

  • 1)直接回声

近端扬声器B将语音信号播放出来后,近端麦克风B直接将其采集后得到的回声。直接回声不受环境的影响,与扬声器到麦克风的距离及位置有很大的关系,因此直接回声是一种线性信号。直接回声在音频会议中容易形成啸叫,这类回声的处理方法分为两大类:前向抑制、反馈抵消

  • 2)间接回声

近端扬声器B将语音信号播放出来后,语音信号经过复杂多变的墙面反射后由近端麦克风B将其拾取。间接回声的大小与房间环境、物品摆放以及墙面吸引系数等等因素有关,因此间接回声是一种非线性信号。

  • 3)回声抑制

回声抑制方法主要有三方面:

1、物理降噪

墙壁、天花板换成吸音材料,有效的较少声音的反射,可以较为直接的抑制间接噪声,但是直接噪声无法抑制;

使用耳机代替音响外放,可以阻断回波路径。

2、硬件降噪

硬件结构化设计,有麦克和音响摆放的角度,声音回路设计。麦克风beamforming阵列,频移器,均衡器,反馈抑制器等等。

3、软件降噪

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

3、webrtc的实现

webrtc创建链接的时候,会检测操作系统类型,iOS、安卓、Windows都使用的是系统内置的AEC。这些内置的AEC都对硬件结构化设计都要求,若不满足他们的要求,降噪效果不是很理想。

若是实际测试时,发现降噪效果差,建议使用webrtc_M74版本后的自带的AEC3功能,实测效果比较好。

三、参考

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

https://www.infoq.cn/article/FkolDeUHgahsxXcbsLXJ

《麦克风阵列信号处理技术》:https://www.sohu.com/a/223797137_99991918

《自适应滤波器在反馈啸叫抑制中的应用研究》

猜你喜欢

转载自blog.csdn.net/CrystalShaw/article/details/107929280