解决音频AEC效果差的问题

AEC简介

Acoustic Echo Cancellation(AEC), 是声学回声消除的意思。音频算法领域中使用这项技术达到正确拾音的效果。

项目背景

项目中,我需要送入8路PCM数据到算法接口实现语音识别的功能,但实际在设备播放大音量音乐时语音唤醒的效果很差,俗称音频AEC效果差。

如下图是设备播放大音量音乐时8路音频数据的情况:

其中前4路是麦克风数据,第5,6路为空数据,第7,8路为功放的回路数据。
解决音频AEC效果差的问题
原因定位为麦克风回路的数据失真了。 项目采用的麦克风是模拟麦克风,经过AD采集得到PCM数据。 AD模块可以设置增益,对于算法要求默认增益为0即可。
实际检查驱动代码发现AD的增益不为0。

修改后PCM数据情况如下:
解决音频AEC效果差的问题
参考了AD数据手册,设置增益为0,完美解决问题,80dB情况下90%以上实现语音唤醒。