一、概述
本节讨论啸叫抑制算法的主流的解决方案,并对其相关算法进行分析。
二、解决方案
2.1 使用低灵敏度的麦克风
使用低灵敏度的麦克风( 麦克风拾音距离为10厘米),这样可以破坏振幅条件
2.2 麦克风和扬声器处在不同的声场环境
麦克风和扬声器处在不同的声场环境(分别属于两个房间或者距离无限大),这样也是破坏振幅条件
2.3 对麦克风采集到的信号使用频移电路
对麦克风采集到的信号使用频移电路 ,这样是破坏相位条件
2.4 移频法:
提升或降低传入音频信号的频率。当处理过的信号以改变后的频率重新输入系统时,它不会与原始信号频率发生叠加,从而避免可能的干扰。
2.5 陷波法:
通过在特定频率点,即啸叫发生的频率处,减少增益,有效破坏了产生啸叫所需的正反馈条件,以此来抑制啸叫。
2.6 自适应反馈抑制算法:
利用LMS(最小均方)、NLMS(归一化最小均方)等自适应滤波算法,该算法能够从麦克风捕获的信号中剔除二次采集得到的反馈信号,实现对反馈的智能抑制。
三、算法分析
上述2.1-2.3 属于物理和硬件方案,这里不讨论。这里讨论频移法,陷波法及自适应滤波器等的软件方法。
第一种方法是移频法,这种方法通过破坏啸叫发生的相位条件来达到啸叫抑制的目的。这种方法的优点是计算复杂度低,实现简单,主要的系统开销在于解析信号的计算和分数延迟滤波器的实现。然而,它的缺点也是明显的,已有的移频法大概只能提供6dB的最大稳定增益(MSG,maximum stable gain),而且移频法是在前向处理路径实现,这会导致语音质量的下降。另外,据报道在多通道系统中该算法的稳定性会随着通道数目的增加而下降。
第二种方法是陷波器法,这种方法首先寻找可能发生反馈的频率点,然后将信号中这些过强的频率成分衰减掉来达到反馈抑制的目的。在实际系统中,有可能存在多个啸叫点,为了保证系统稳定需要配置多个陷波器,这不可避免的会导致语音质量的下降,实际中陷波器法只能提供5dB~8dB的MSG。啸叫频率点的检测也比较困难,通常需要调节很多参数,而已有的文献中很少有调节这些参数的指导性意见。
第三种方法是自适应滤波器法,其工作原理是用滤波器来模拟声音通过扬声器发出,再从麦克风进来,这个传播通道的传输特性,使得从滤波器出来的信号和实际上从扬声器发出反馈到麦克风的信号一致,然后再从麦克风的输入信号中把该部分信号减掉,达到消除反馈的目的。自适应滤波器法分为不连续反馈抑制和连续反馈抑制两种。不连续反馈抑制的主要缺点是:这种方法需要中断正常输入语音信号,这在助听器中可能是允许的,而在公共扩音系统中这样的做法往往不被接受。连续反馈抑制能够不断地更新滤波器系数,由于近端语音和扬声器的输出信号具有相关性,这导致其滤波器系数的估计是有偏的。反馈抑制一般使用NLMS算法,这主要是由于该算法的鲁棒性和易实现性。自适应算法的步长选择至关重要,对于语音信号一般取μE[0.01,0.05]。由于系统总是处在所谓的双端对讲状态,自适应滤波器的收敛速度比较慢,在反馈路径变化时,由于滤波器系数需要重新收敛会导致短暂的啸叫出现。
综上所述,自适应滤波算法由于其良好性能逐渐成为声反馈抑制的主流算法,由于声反馈系统的输入信号是语音,语音信号不仅具有短时相关性还具有长时相关性,这就导致自适应滤波器的系数估计是有偏的,不能收敛到真实值。因此,如何有效地去除信号的相关性是研究的热点问题。已有的去相关性算法包括在闭环中对扬声器输出信号和麦克风接收到的近端信号去相关和在自适应滤波器端进行去相关两种。目前提出的在闭环中对扬声器输出信号和麦克风接收到的近端信号去相关的算法包括在前向路径信号中注入噪声,采用时变的全通滤波器和非线性处理等,如:欧洲专利EP0415677和中国专利200580004573.0都采用了这样的方法。注入噪声的方法可能可以被听力损伤很严重的助听器的用户接受,但一般不能被公共扩音系统的用户接受;采用时变的全通滤波器,非线性处理等方法必须在语音质量和解相关的程度之间权衡。
四、总结
本节我们讨论了啸叫抑制算法的解决方案并对其相关算法进行了分析,下节将具体记录其算法。