音频数据引擎 (AudioDE) 是一种功耗极低、可合成的数据引擎内核,可对其进行编程以支持跨所有终端设备目标的各种音频和语音编解码器。AudioDE 在其数据路径中有许多功能单元,可以有效地执行音频算法。这些特定于音频的资源、通用资源和总线基础设施的组合提供了一个数据引擎,能够针对各种算法,同时在音频处理方面特别高效。
回声消除就是一种这样的算法,它可以在 AudioDE 上实现,以利用 AudioDE 的音频处理架构的固有优势。在无线耳机、免提车载套件或移动语音终端等通信设备中,声学回声消除是必要的。
通过描述自适应回声消除算法在 AudioDE 上的实现,本应用笔记提供了 AudioDE 代码开发流程的“入门”示例以及一些重要的系统注意事项。
回声消除
回声是由远端扬声器和麦克风之间存在反馈路径引起的(图 1)。如果没有声学回声消除,对着麦克风说话的人会在说话几毫秒后听到他/她的声音回声。由于反馈路径随时间变化,因此需要一种自适应滤波方法来估计回声,然后可以从传入的语音信号中减去回声。
可以在多个位置设置反馈路径。在免提车载电话系统中,从远处扬声器发出的声音可以从挡风玻璃、侧窗和车顶等坚硬表面反射回来。在无线耳机中,可以通过将麦克风和听筒固定在一起的硬质材料来设置反馈路径。在每个应用中,反馈路径的特性是不同的。反馈路径的一个重要特性是引入了多少延迟——大于 16ms 的延迟使得扬声器可以检测到回声;延迟越大,回声越明显。回声的尾部长度代表所有回声路径引入的最大延迟长度,它决定了自适应滤波器(时域处理)的抽头大小,以实现有效的回声消除。在汽车环境中,例如,典型的尾部长度为 32 毫秒。对于以 8 kHz 采样的语音,自适应滤波器的抽头大小将为 256 (8000 x 0.032)。
今天的数字通信系统对回声消除提出了额外的挑战,因为语音编码方案会在回声路径中引入 100 毫秒量级的额外延迟。270ms 的尾部长度是这种回声路径的典型数字,它需要一个抽头大小为 2048 的自适应滤波器!由于无线终端的价格压力,一些回声消除负担会输出到手机之外。
更复杂的频域处理允许更有效地抑制大抽头尺寸的回声。它还具有允许更好地抑制非线性系统(模拟组件)产生的噪声的优点。但是对于本应用笔记示例,我们将坚持使用时域处理,并说明如何在 AudioDE 上实现最小均方 (LMS) 自适应滤波器以消除回声。