王羔则
摘要:基本谱减法在在低信噪比下滤波性能不佳,會有大量的噪声残留,本文提出一种基于能量阈值的自适应谱减滤波算法,并进一步引入基于Teager能量算子的语音端点检测,实现低信噪比下的语音降噪。
Abstract: The basic spectral subtraction method has poor filtering performance at low SNR, resulting in a large amount of residual noise. This paper proposes an adaptive spectral subtraction filtering algorithm based on energy threshold. the speech endpoint detection based on Teager energy operator is further introduced to realize speech noise reduction under low SNR.
关键词:语音降噪;能量阈值;Teager
Key words: speech denoising;the energy threshold;Teager
中图分类号:TN912 文献标识码:A 文章编号:1006-4311(2020)25-0222-03
0 引言
语音通信是人们生活中最直接、最有效、最常用的通信方式之一,研究含有噪声的语音信号具有巨大的经济意义。语音降噪是指在带噪语音信号中滤除噪声的过程,常见的语音降噪算法有谱减法[1]、最小均方差法[2]、维纳滤波法。在高信噪比条件这三种算法均能取得明显的滤波效果,但是在低信噪比下,以上算法均无法有效的实现语音降噪。近年来语音减噪算法的改进思路的趋势是各种算法的结合应用,经验模态分解法[3]、小波分析[4]这两种算法经常用来结合降噪算法实现低信噪比下的语音降噪,语音端点检测算法[5]结合语音降噪相对较少,语音端点检测中传统双门限法应用广泛,但在低信噪比下无法准确区分语音的有话段和无话段,文献[5]通过引入中值滤波对双门限法端点检测进行了改进,文献[6]采用Teager能量算子代替传统短时能量对双门限端点检测也进行改进,均实现了低信噪比下语音端点的准确检测,对此本文提出了一种基于能量阈值的自适应谱减法结合语音端点检测的降噪算法,并验证其有效性。
1 基本谱减法原理
谱减法的使用条件是假定噪声和语音相互独立,在条件成立的情况下,通过短时傅立叶变换得到含噪语音的功率谱和幅度谱,进行噪声估计得到估计噪声的噪声普,从含噪语音的功率谱中减去噪声功率谱得到纯净的语音信号,由于人耳具有对语音信号的短时相位不敏感的特性,根据该特性把含噪语音的相位作为原始语音的相位,结合含噪语音的相位谱和降噪后的幅度谱,经过IFFT得到降噪后的语音信号,达到语音降噪的目的。
设原始语音信号为x0(n),对原始语音信号添加高斯白噪声,记加噪后的语音信号为x1(n),对x1(n)分帧加窗,记xi(m)为分帧后的第i帧语音信号,每帧语音的长度为N,步骤如下:
2 基于Teager的语音端点检测
语音端点检测是从语音信号中找出语音的起始点和结束点的位置,双门限法端点检测应用广泛,但传统双门限法无法在低信噪比下实现有效检测。
Teager能量算子是由Kaiser提出的一种非线性算子,采用Teager能量替代传统短时能量进行端点检测更能更能体现纯净语音信号的能量变化,有助于语音端点检测。它具有两个特点。
①对调幅信号的幅包络和调频信号的瞬时频率非常敏感,可以有效提取信号的特征。
②Teager能量算子可以衰减不稳定信号,语音信号有话段是稳定信号或半稳定信号,无话段是不稳定信号,带噪语音信号中无话段经常会有一定的噪声,Teager能量算子可以衰减无话段的噪声。假设语音信号的时间序列为
3 谱减法结合语音端点检测降噪
3.1 基于能量阈值的自适应谱减法
基本普减法在高信噪比时有较好的性能,但是在低信噪比时性能大大下降。该算法对每帧语音数据只进行了一次噪声估计,一次估计并不能准确的估计出噪声信号,本文根据高信噪比下基本谱减法在滤波后语音能量与原始语音能量之差在一定的范围内时,表示达到滤波要求,超出该范围时,表示没有达到滤波要求,记该范围为能量阈值。提出当基本谱减法滤波后语音能量于原始语音能量差值大于能量阈值时,对滤波后的语音信号继续执行谱减滤波,当基本谱减法滤波后语音能量与原始语音能量差值小于该阈值时输出滤波后的语音信号。由于在30-50db下基本谱减法滤波效果明显,本文阈值选取30-50db信噪比下滤波后语音能量与原始语音的差值为能量阈值。设语音信号为x(n),能量阈值的计算如公式(6)所示。
式(6)中Eyu表示能量阈值,E(i)表示第i帧带噪语音信号的短时能量,E′(i)表示滤波后第i帧语音信号的短时能量,fn表示分帧后的总长度。
3.2 谱减法结合端点检测
本文通过语音端点检测,对前导无话段的语音数据先不做处理,对其他无话段的语音数据置零,再结合能量阈值对语音的有话段执行基于能量阈值的自适应谱减法,最后对前导无话段语音数据置零。改进后算法流程如图1所示。
改进后算法的步骤如下:
①用基本谱减法公式(1)、(2)、(3)、(4)初步滤波得到滤波后的语音数据。
②对滤波后的语音数据执行EMD分解流程,得到分解后的各个IMF,EMD的分解流程在文献[6]中已经介绍,这里不再重复,用Teager能量计算公式计算分解后各个IMF的Teager能量,然后相加计算得到的能量。
③由于低信噪比下语音信号穿过横轴的次数要比高信噪比下穿过横轴的次数多,故本文对滤波后的语音数据计算短时过零率时用滑动算数平方法进行滤波,用滤波后的短时过零率代替传统短时过量率。
④根据步骤②、③计算的能量和过零率执行双门限端点检测,前导无话段的语音数据不做改动,除前导无话段外的其他无话段数据置零,得到滤除无话段后的语音数据。
⑤对第四步中滤除无话段的语音数据执行基于能量阈值的自适应谱减法。最后再置零前导无话段的语音数据,得到降噪后的语音信号。
4 仿真实验结果及分析
实验中纯净语音使用“蓝天,白云,碧绿的大海”,帧长和帧移分别设置为200,80,前导无话段设置为0.3秒,短时过零率阈值设置为0.8倍的短时平均过零率值,Teager能量高门限值设置为4倍的Teager能量值,Teager能量的低门限值设置为2倍的Teager能量值。加入0db、1db、2db、3db、4db、5db信噪比的白噪声,分别执行基本谱减法,基于能量的自适应谱减法,谱减法结合端点检测算法,得到信噪比对比图如图5所示,信噪比值如表1所示。加入0db、5db白噪声的滤波时域图如图2、图3、图4所示。
5 结论
本文先对带噪语音进行基于Teager的语音端点检测,对除了前导无话段外的所有无话段语音数据置零处理,然后对处理后的执行基于能量阈值的自适应谱减法,最后对前导无话段语音数据置零。本文提出的算法与基本谱减法相比,信噪比得到了大幅度的提高,通过仿真实验结果证明了本文提出的算法的有效性和可行性。
参考文献:
[1]代龙翔,李冠宇,马宁.基于谱减法语音增强效果研究[J]. 西北民族大学学报:自然科学版,2017,038(002):21-25,87.
[2]柯水霞,李迟生.基于LMS自适应噪声抵消和小波阈值的语音降噪算法研究[J].现代电子技术,2016(003):27-29,34.
[3]侯丽霞,曾以成,熊民权.EMD与自适应滤波相结合的语音增强法[J].计算机工程与应用,2012,48(9):104-107.
[4]朱建華,田岚.基于谱减法和小波阈值的新型语音降噪算法研究[J].煤炭技术,2013,032(001):171-173.
[5]费宇泉,王英健,夏愉乐.语音端点检测算法研究[J].自动化技术与应用,2017,36(8):98-102.
[6]李杰,周萍,杜志然.短时TEO能量在带噪语音端点检测中的应用[J].计算机工程与应用,2013,49(12):144-147.