噪声消除的DSP算法研究
在语音传输的过程中,语音增强方案经常被采用。它使用FEC编码技术(由卷积编码和维特比译码算法组成)进行数据传输,有着大批量的数据运算(包括卷积和译码等算法)和检测,而且都是采用先进的DSP处理器来完成的,其中就包括语音编码和降噪。 1 干扰相减降噪技术研究 为了降低信号在传输过程中的噪声,改善语音传输质量,大多会采用三种通用的语音增强方法。首先是干扰相减法,即通过减掉噪声频谱来抑制噪声;其次是谐波频率抑制法,即利用语音增强的方法来完成减噪,基于噪声的周期性原理,利用谐波噪声的自适应梳状滤波实施基频跟踪来完成降噪;第三是利用声码器再合成法,它利用迭代法,在语音建模的基础上,估计模型参数,用描述语音信号的方法再重新合成无噪声信号。 每种方法都有自己的特点,这里介绍噪声相减法降噪。单通道语音增强系统(图1)必须在无语音期间,也就是在只有背景噪声存在时估计噪声的特性。通过语音启动检测器(VAD)采集有效的语音源和噪音源,然后利用噪声相减算法实现降噪。基于声音语音的周期性,时域自适应噪声抵消法可以通过产生参考信号而加以利用。其中,参考信号是延迟主信号一个周期形成的,需要有复杂的间距估计算法。在语音帧内利用FFT,用估计的噪声幅值频谱相减,并逆变换这个相减后的频谱幅值,再利用原始噪音的相位,求出有噪音短时幅值和相位频谱。增强步骤一帧接一帧地完成。此方法先把污染的语音利用带通滤波器组分解成不同的频率组,随后每个分波段的噪声功率在无语音期间被估计出来。通过利用衰减因子可以获得噪声抑制,其中衰减因子相对应于每个分波段估计噪声功率比上的瞬时信号功率。 2 谱相减降噪技术研究 目前,多数的通信减噪都是使用DSP来完成的,主要是使用FFT降低噪声。其中,频谱相减提供了有效的计算方法,通过从有噪声语音谱中减去噪声频谱,即增强了语音,又降低了噪声。有噪声语音被分段,并且被设置窗口,每个数据窗口的FFT均被执行,并且幅值频谱被计算出来。VAD用来检测输入的语音信号。在非语音段,噪声频谱将会被估计出来,并存入缓存区,再通过算法使得缓冲器内的数据衰减,从而使噪声减小。在非语音期间,有两种方法产生输出:用固定因子衰减输出或设置输出为0。在非语音帧期间具有某种残余噪声(舒适噪声),可输出比较高的语音质量,原因是在语音帧期间,噪声局部地被语音屏蔽,它的幅值将会在非语音段上被存在的相同量值的噪声所平衡。在语音段上设置输出为0,具有放大噪声的效果,因此在非语音期间,最好通过固定因子衰减噪声。幅值与语音段上可觉察的噪声特性,以及噪声段上可觉察的噪声之间必须保持平衡,所以不希望的音响效果,如嗡嗡声、咔嗒声、抖动声、语音信号的模糊不清等,均可以避免。 在描述算法之前,先设置一些参数,并做数据分析。首先假设背景噪声是平稳的,并且在语音段内,使其希望幅值频谱出现在不变的语音段之前。如果环境是变化的,则在语音帧开始之前,有足够的时间去估计背景噪声的新幅值频谱。对于缓慢变化的噪声算法,需要根据VAD参数确定语音是否已经终止,同时估计新的噪声影响,然后利用频谱相减法,就可以使得噪声明显下降。 假设信号s(n)受到干扰信号v(n)的影响而遭到损失,则被污染的有噪声信号可以表示为: 取x(n)的DFT得到: 假设V(n)为零均值,且与S(n)不相关,则S(K)的估计可以表示为: s(k)=|x(k)|-E|V(k)| 式中:E|V(K)|是发生在非语音周期上的期望噪声频谱。 给定估计|s(k)|,则谱估计可以表示为: |s(k)|=|s(k)| ejθx(k) 式中: 式中:θx(k)是被测量的有噪声信号的相位,利用噪声语音相位,可以满足实际目的需要。因此利用短期语音幅值频谱的估计|s(k)|和受到损害的语音相位θx(k)重构处理后的信号,估计器可以表示为: 方程给出的频谱相减算法避开了对相位的计算,在浮点DSP硬件中实现。为了降低噪声得到良好的听觉效果,除了以上算法外还有谱幅值平均法、半波整流法和残余噪声减小法,其目的都是为了得到更好的效果。 3 结 语 无论在通信系统还是其他领域,噪声的消除都是科技飞速发展过程中面临的难题,因此降噪算法显得尤为重要。目前,利用DSP降噪技术也越来越成熟。随着相关技术的不断发展,一定能还社会一个安静和谐的生活环境。
|