首先讨论了回声消除中的双端发声问题,指出传统的双端发声检测方法用于回声消除时,其不可避免的误 检会导致回声消除系统性能严重恶化,使系统不稳定。本文提出一种使用双滤波器的回声消除算法。该算法使用 自适应滤波器跟踪回声信道,使用一个辅助滤波器和自适应滤波器一起完成回声消除。实验结果表明,该算法与 传统算法相比,运算量相当; 但在双端发声期间,该算法稳定性更高,回音往返损耗增强( Echo retur n lo ss enha ncement, ERLE)有明显的改善。
利用speex消除回声,vs2015可编译通过,并提供PCM文件测试。个人感觉效果比webrtc要好。
算法原理:
Speex的AEC是以NLMS(Normalized Least Mean Square)为基础,用MDF(multidelay block frequency domain)频域实现,最终推导出最优步长估计:残余回声与误差之比。最优步长等于残余回声方差与误差信号方差之比。 只有改与泄露系数相关部分的代码,才是对效果影响最大的地方,因为根据泄露系数,最终会估计出滤波器的最优