如图2 所示,通过加入静音检测算法( VAD) 对输入信号的状态进行判断,不仅可以减轻实际的运算量,也可降低噪音对自适应滤波器的干扰,在一定程度上避免了滤波器发散的情况。同时加入MMSE Short t imeSpect ral Amplitude Estimator替代了传统的非线性处理器( NLP) 算法。在频域内对参与回声的频谱能量进行估计,计算增益,最后达到相对平滑的残余回声和噪音的处理。
图2 一种结合噪音消除的回声消除原理图
通过对滤波器状态参数的跟踪,根据滤波器当前是否正常收敛,残余回声估计模块的输出结果会自动调节估计值的大小,避免在滤波器正常收敛的情况下,抑制残余回声导致处理后正常信号损失过多的问题。
图2 中采用的静音检测算法( VAD) 采用了同时检测短时能量与过零率的方法,保证了判断的可靠性。
在远端语音不存在的时候,没有必要进行回声消除,只需要进行本地的噪音消除,若本地语音不存在则不需要做任何处理。
结合VAD 系统更有效地减少了对噪音和回音估计的误差范围,通过对滤波器系数更新的学习和调整功能使得在双方通话过程中音频信号具备更好的信噪比。
通过非线性信号检测模块加强了整体消除回音的能力。
2 基于DSP 的音频处理系统实现
2. 1 硬件平台
DSP 的选型需要考虑运算速度、成本、硬件资源以及程序的可移植性等多个问题。由于算法的浮点特性,本文采用了美国德州仪器( T I) 的TMS320C6713B 浮点DSP 作为核心处理器,通过使用JT EG 标准测试接口、EDMA 控制器、GIPO 通用输入输出端口以及多通道音频缓冲串口( McASP) 等主要片外设备来完成系统的设计。
TMS320C6713B 可以工作在225 MHz 主频上,片内有8 个并行处理单元,分为相同的两组,其体系结构采用甚长指令字( V LIW) 结构,单指令字长为32 b,8 个指令组成一个指令包,总字长为256 b。L1 支持4 KB的程序缓存以及4 KB 的数据缓存,L2 支持64 KB 的缓存。32 b 的外部存储器接口( EMIF) 。与SDRAM 等无缝连接,可以寻址256 MB。
由于系统运行过程中需要实现的算法较多,仅依靠TMS320C6713B 的192 KB片内RAM 来执行程序是很困难的。本文使用了EMIF 的接口扩展了SDRAM 作为算法和数据的存储区域。采用TLV320AIC23B 实现音频输入和输出,AIC23 支持48 kHz 带宽、96 kHz 采样率的双声道立体声A/ D,D/ A,音频输入包括了*输入和线路输入。
系统的硬件平台如图3 所示。
图3 硬件平台结构图