菊风音视频引擎(Multi-Media Engine–MME)是针对IP实时音视频应用所涉及的视频、语音、网络和设备管理的专业开发包。在音视频引擎中,声学回声问题处理的好坏,会直接影响到用户的体验效果。多年来,菊风致力于为客户提供最好的体验,在处理声学回声问题上不断深化研究,有了一些独到的解决方法。
声学回声消除的挑战
声学回声(Acoustic Echo-AE)是由于在免提或者会议应用中,扬声器的声音多次反馈到麦克风引起的(麦克风采集了近端声音的同时也采集了扬声器发出来的声音)。
声学回声消除模块(Acoustic Echo Cancelation – AEC)是解决声学回声问题常用的方法。AEC在实际应用中面临着诸多难题。在AEC处理前,需确保远端参考信号和回声的延时同步,否则无法消除回声。但由于不同手机、iPad、PC机上的延时是不一样的,有的系统延时相对固定,有的是会变化的。因此系统差异性是我们面临的一个巨大挑战,延时估计是AEC模块能否正常工作的核心算法之一。
当调用Engine接口时,如果操作系统给出的延时估算不准确,则无法正常工作;当调用FDE-Formant Delay Estimate, SDE-Spectru Delay Estimate接口时,初始化需要2-5秒,之后才能正常工作,偶尔会出现回声(1%以内),但能很快恢复;当调用OS接口时,每个机型测试过后才能使用。
菊风声学回声解决方法
菊风MME为了达到良好的声学回声消除效果,同时对输出和输入两个方向的语音信号进行了处理。在AEC算法上,菊风MME主要采用以下三种方式:第一种是Engine,即依赖于操作系统给出的声卡缓冲大小计算延时,主要应用于iPad、iPod、touch和普通PC机;第二种是FDE(Formant Delay Estimate),即基于共振峰估计延时及SDE(Spectrum Delay Estimate),即频域延时估计,主要应用于Android 设备、PC 虚拟机和普通PC机等,如果手机不带AEC功能,一般使用Sde算法比较多,效果好;第三种是OS,