1. 引言
高性能的AEC(automatically echo cancellation)算法可以提升智能音箱的语音唤醒准确率。为了充分发挥AEC算法的性能,结构上需要麦克风尽可能少地拾取echo声,因此需要找到音箱麦克风孔的最佳开孔位置。
声学工程师可以通过建模仿真的方式计算出较合适的麦克风开孔位置。工程实践中,仿真阶段的模型往往较实际产品结构缺少细节,仿真结果的准确度则大打折扣。因此,声学工程师需要一套可以快速评测麦克风位置、朝向对AEC效果影响程度的系统。
本文尝试设计一套系统,以满足这样的需求。
2. 系统方案
硬件:PC、扬声器、麦克风
软件:windows 7、matlab(simulink, mex)、speexdsp(包含开源AEC算法)
工作原理:Voice Speaker播放人声的同时,Audio Speaker也在播放音乐。Mic拾取环境音,作为AEC算法的第一个输入,Audio Source File作为算法的第二个输入,算法结果保存在AEC out file。
用户可以将麦克风固定在音箱结构的任意位置,调整麦克风与扬声器的角度,使得AEC算法的计算结果达到最优,从而推断出麦克风孔的最优开孔位置。
3. 总结
方案的难点:
- AEC算法生成mex文件,由simulink调用
- Audio Out输出和Mic In输入的起始时间如何自动对齐
- 如何做到实时数据采集、处理、显示