speex与webrtc回声消除小结
回声消除AEC包含: 延时估计对齐+线性自适应滤波器+NLP(双讲检测、处理)+舒适噪声CNG
一、speex aec
1、没有NLP
2、只考虑实时DSP系统,即是没有延时对齐等
3、自适应滤波(MDF)使用双滤波器结构,自适应滤波器因子自动更新
二、webrtc aec
1、双讲检测没有,双讲时远端的声音会消没了
2、PBFDAF,固定自适应因子 0.6
3、抑制是使用相关性技术,近端误差,近端远端,由低频段相关性参数求出gain值
对于aec,webrtc主要依赖NLP,speex主要是自适应滤波器(双滤波器)
三、实际效果对比:如果样本非线性不严重,两者的效果都不错;对于非线性speex效果就很差了,webrtc的效果好;双讲时,webrtc出来的音质就很差,有吃音现象。
至于webrtc的aecm音质差,单讲会有吱吱声。
四、优化点:对webrtc的aec加入双讲检测,双讲处理。
五、由于mic与扬声器对非线性影响比较大,自已硬件产品可以考虑使用比较好的mci与扬声器,极大减少nlp的抑制程度。对于dsp而言,实时性比较好,延时估计对齐可以不要。最后推荐使用webrtc aec。