基于改进小波阈值函数的语音增强算法研究
2015-05-29覃爱娜戴亮李飞曹卫华
覃爱娜 戴亮 李飞 曹卫华
摘 要:针对传统的小波阈值去噪算法中的阈值函数不足,提出一种优于非负死区阈值函数的改进的阈值函数.改进阈值函数不仅具有良好的连续性、可导性,并且克服了非负死区阈值函数没有考虑小波变换模值的衰减符合指数规律这一特点.另外在阈值的选取中,考虑了带噪语音信号的不同特性,采用谱平坦度函数修正阈值.仿真实验表明,与传统的非负死区阈值函数去噪算法相比,改进的阈值函数能更有效地消除背景噪声,在提高输出信噪比的同时,更好地保持语音质量和清晰度.
关键词:语音增强;小波变换;阈值去噪
中图分类号:TN912.3 文献标识码:A
语音增强是将尽可能纯净的原始语音从带噪语音信号中提取出来.其主要目的是:消除背景噪音、改进语音质量、提高语音可懂度、使听者乐于接受并且不会感觉到疲劳.目前,在平稳的噪声环境下语音增强效果较好,但在非平稳环境下,尤其在低信噪比情况下对语音增强算法的研究仍是语音信号处理的一个重要方向\[1-3\].
小波变换属于一种信号的时间尺度变换分析方法,可以同时很好地表征出信号在时域和频域的局部特性.小波变换具有多分辨率分析的特点,在信号的低频部分具有较低的时间分辨率和较高的频率分辨率,在信号的高频部分具有较低的频率分辨率和较高的时间分辨率,是一种适应于非平稳环境的信号处理方法\[4\].文献[5]首次提出了基于软硬阈值函数的小波语音增强算法,随后Breiman在Donoho的基础上提出了一种非负死区阈值函数去噪算法\[6\],其语音增强效果要优于传统的软硬阈值函数去噪算法.但通过分析可知:非负死区阈值函数并没有考虑语音信号的小波变换模值的衰减是符合指数规律的这一特点,因此其去噪效果有待进一步提高\[7\].本文对软硬阈值以及非负死区阈值函数进行分析,并在此基础上提出一种改进的阈值函数的小波语音增强算法.改进阈值函数克服了非负死区阈值函数的不足,仿真实验表明,改进阈值函数去噪效果要明显优于非负死区阈值函数,在抑制噪声的同时很好地保持了语音的可懂度.
1 小波去噪原理
信号在某点处出现间断或者其某阶导数不连续的性质称为信号的奇异性,通常采用信号的Lipschitz指数来表征信号的奇异性.文献[8]建立了信号的Lipschitz指数与小波系数的局部模极大值之间的关系.
对信号f(t)来说,假设存在正数T使得不等式(1)成立:
|f(t0+τ)-fn(t0+τ)|≤T|τ|δ ,
n<δ≤n+1(1)
则称δ为信号f(t)在t0处的Lipschitz指数.其中n为正整数,fn(t)为信号f(t0)的n次多项式,τ为一个充分小的量.
设信号f(t)的小波变换系数的模为|Wf(a,b)|.假设存在正数b0∈(b0-τ,b0+τ)使得|Wf(a,b)|≤|Wf(a,b0)|成立.则称b0为f(t)的小波变换的局部极大值点,|Wf(a,b0)|为小波变换的模极大值.在尺度a=2j时,f(t)的Lipschitz指数δ与其小波模极大值W2jf(2j,b0)满足下式:
log 2|W2jf(2j,b0)|≤log 2A+δj. (2)
其中A是与基小波相关的常量.由式(2)可得,当f(t)的Lipschitz指数δ>0时,则信号f(t)的模极大值W2jf(2j,b0)将会随着分解尺度j的增大而增加;反之,当f(t)的Lipschitz指数δ<0时,信号f(t)的模极大值W2jf(2j,b0)将会随着分解尺度j的增大而减少.
由以上信号的分析特性可知,纯净语音信号的Lipschitz指数δ>0,其极大值是随分解尺度j的增大而增加;而噪声信号的Lipschitz指数δ<0,其极大值是随分解尺度j的增大而减少.根据语音信号和噪声信号所具有的这个特性,可以在运用小波系数进行处理时,在不同的分解尺度上设置一个合适的门限阈值,将小于该阈值的极大模值点认为是噪声的小波变换引起的,因而将其置零.大于该阈值的极大模值点则认为是信号小波变换引起的予以保留.然后再通过小波逆变换重构信号,达到增强去噪的目的.
2 小波阈值去噪算法
由小波变换的线性特性可知,带噪语音信号的小波变换系数等于噪声信号的小波变换系数和纯净语音信号的小波变换系数之和.按照这一性质,利用小波变换进行阈值去噪的基本思路是:首先选择合适的基小波函数和分解层数对带噪语音信号进行多尺度小波分解;然后分别对各尺度的高频小波系数采用合适的门限阈值及阈值函数进行处理:最大限度去除噪声信号的小波系数,保留原始纯净信号的小波系数;最后对保留的各层系数进行小波逆变换,重构增强语音信号.图1为小波阈值去噪算法的基本原理框图.
1 小波去噪原理
信号在某点处出现间断或者其某阶导数不连续的性质称为信号的奇异性,通常采用信号的Lipschitz指数来表征信号的奇异性.文献[8]建立了信号的Lipschitz指数与小波系数的局部模极大值之间的关系.
对信号f(t)来说,假设存在正数T使得不等式(1)成立:
|f(t0+τ)-fn(t0+τ)|≤T|τ|δ ,
n<δ≤n+1(1)
则称δ为信号f(t)在t0处的Lipschitz指数.其中n为正整数,fn(t)为信号f(t0)的n次多项式,τ为一个充分小的量.
设信号f(t)的小波变换系数的模为|Wf(a,b)|.假设存在正数b0∈(b0-τ,b0+τ)使得|Wf(a,b)|≤|Wf(a,b0)|成立.则称b0为f(t)的小波变换的局部极大值点,|Wf(a,b0)|为小波变换的模极大值.在尺度a=2j时,f(t)的Lipschitz指数δ与其小波模极大值W2jf(2j,b0)满足下式:
log 2|W2jf(2j,b0)|≤log 2A+δj. (2)
其中A是与基小波相关的常量.由式(2)可得,当f(t)的Lipschitz指数δ>0时,则信号f(t)的模极大值W2jf(2j,b0)将会随着分解尺度j的增大而增加;反之,当f(t)的Lipschitz指数δ<0时,信号f(t)的模极大值W2jf(2j,b0)将会随着分解尺度j的增大而减少.
由以上信号的分析特性可知,纯净语音信号的Lipschitz指数δ>0,其极大值是随分解尺度j的增大而增加;而噪声信号的Lipschitz指数δ<0,其极大值是随分解尺度j的增大而减少.根据语音信号和噪声信号所具有的这个特性,可以在运用小波系数进行处理时,在不同的分解尺度上设置一个合适的门限阈值,将小于该阈值的极大模值点认为是噪声的小波变换引起的,因而将其置零.大于该阈值的极大模值点则认为是信号小波变换引起的予以保留.然后再通过小波逆变换重构信号,达到增强去噪的目的.
2 小波阈值去噪算法
由小波变换的线性特性可知,带噪语音信号的小波变换系数等于噪声信号的小波变换系数和纯净语音信号的小波变换系数之和.按照这一性质,利用小波变换进行阈值去噪的基本思路是:首先选择合适的基小波函数和分解层数对带噪语音信号进行多尺度小波分解;然后分别对各尺度的高频小波系数采用合适的门限阈值及阈值函数进行处理:最大限度去除噪声信号的小波系数,保留原始纯净信号的小波系数;最后对保留的各层系数进行小波逆变换,重构增强语音信号.图1为小波阈值去噪算法的基本原理框图.
2.1 改进阈值函数
根据小波阈值去噪的原理可知,语音信号在经过小波分解后,通过阈值函数处理带噪语音小波系数可以去除噪声.传统的小波系数处理算法有软硬阈值函数和一些改进的阈值函数.
硬阈值函数
j,k=wj,k,|wj,k|≥λ;
0,|wj,k|<λ.(3)
硬阈值函数处理方法能够更多地保留原始语音信号的尖峰特征,但硬阈值函数在阈值±λ处是间断不连续的,从而在重构增强语音信号时会出现一定的振荡现象.
软阈值函数
j,k=sgn (wj,k)(|wj,k|-λ),|wj,k|≥λ;
0,|wj,k|<λ. (4)
软阈值函数处理方法在阈值±λ处连续,对重构信号的小波系数具有更好的平滑作用,进而取得较好的增强效果.但j,k和wj,k之间由于存在恒定误差,会丢失原始语音信号的突变信息,使得重构信号的信噪比较低,均方误差较大.
非负死区阈值函数
j,k=wj,k-λ2wj,k,|wj,k|≥λ;
0,|wj,k|<λ. (5)
非负死区阈值函数考虑到了随着有用信号的小波系数的增大,对噪声信号的削减力度也有所降低的性质,保证了函数在阈值±λ处的连续性,在软硬阈值门限值之间取得了一个很好的折衷.仿真实验证明非负死区阈值函数的去噪效果的确优于软硬阈值函数去噪.但其并没有考虑噪声小波变换模值的衰减是符合指数规律的这个特点,并且在|wj,k|<λ的区间,非负死区阈值函数也只是和软硬阈值一样做置零处理,这样必然会损失部分清音信号信息,造成语音失真\[8\].
考虑到以上因素,本文在非负死区阈值函数的基础上结合指数函数设计了一种改进的更为合理有效的阈值函数.改进阈值函数的定义为:
j,k=
sgn (wj,k)(|wj,k|-λ22|wj,k|e2(λ-|wj,k|)),|wj,k|≥λ;
sgn (wj,k)(λ(e8|wj,k|-e8p)2(e8λ-e8p)),|wj,k|<λ;
p∈(0,λ). (6)
从图2可以看出,所设计的改进阈值函数克服了硬阈值函数在±λ处的不连续性以及软阈值函数存在恒定误差的缺点.在|wj,k|=λ处,改进阈值函数不像硬阈值函数那样存在突变性,从而在重构增强语音信号时不会产生振荡现象;在|wj,k|λ阶段,改进阈值函数和硬阈值更加接近,避免了j,k和wj,k之间出现恒定差值,因此也就不会过多丢失有用语音信号的突变信息;并且相对于非负死区阈值函数,改进阈值函数符合小波变换模值按指数衰减的规律,其去噪效果更佳.
2.2 门限阈值选取
在小波阈值去噪处理算法中,门限阈值λ是一个非常重要的参数,阈值选取的大小将直接影响小波去噪的性能.λ选取过大,则小波去噪中剔除了过多的有用信号,会造成信号的失真;λ选取太小,又会在增强语音中残留有较多的噪声信号,降低算法的去噪效果.
Donoho设计的固定阈值λ=σ2log N,式中σ为小波系数wj,k的方差,N为观测语音的长度.因为对不同的分解尺度j上都采用了相同的阈值进行去噪处理,故其增强效果不理想.文献\[7\]依据随着尺度的增加,噪声的模极大值减小,其阈值也应随着尺度的增加而减小的特点,将固定阈值λ修改为λ=σ2ln N/2j-1ln (j+1).该阈值设计方法可以保证较大程度地保留有用语音信号的信息,不过这种阈值设计并不是适应所有的噪声环境,在非平稳的噪声环境下,其去噪效果有待进一步提高.为了提高在非平稳噪声环境下的小波去噪性能,我们根据带噪语音帧频谱的平坦度,来判断带噪语音信号是噪声特性还是纯净语音特性,然后针对不同的特性采用不同的自适应阈值对带噪语音信号进行去噪处理.其中,谱平坦度γ定义为:γ=10log 10(μg/μa),其中μg=nf1f2…fn为带噪语音信号的小波功率谱密度的几何平均值,μa=1n∑ni=1fi为带噪语音信号小波功率谱密度算术平均值.自适应阈值采用一个谱平坦度函数g(γ)=2/ln (0.05γ)来修正文献\[9\]改进的阈值λ,即自适应阈值函数为:
λ=σ2ln N/2j-1ln (j+1)g(γ) (7)
自适应阈值既考虑了随着尺度j的增大,λ的值逐渐减小,使其与噪声在小波变换各尺度上的传播特性相一致的特性,也考虑了带噪语音的噪声和语音特性,使对门限阈值估计更准确,其去噪效果更佳.
3 实验仿真
实验仿真所采用的纯净语音信号是由Voice Reader软件合成的采样率为8 kHz,采样位数为16 bit的“我爱北京天安门”语音信号.噪声信号则采用在体育馆内录制的采样率为8 kHz,采样位数为16 bit的hubbub噪声.实验在信噪比(SNR=0 dB)下,对添加hubbub噪声的纯净语音分别利用非负死区阈值函数和改进阈值函数进行小波去噪处理.原始语音及添加hubbub噪声的带噪语音如图3所示,采用两种方法的实验仿真结果如图4和图5所示.
由实验结果可以看出,与非负死区阈值去噪法相比,在低信噪比的情况下,采用本文改进阈值函数的方法,有效地抑制了背景噪声,减少了语音的失真度.此外,由于引入了带噪语音帧频谱的平坦度来计算阈值λ,改进阈值去噪算法能有效地消除了因音乐噪声产生的语音失真,很好地保持了语音的自然度和可懂度,主观试听效果要明显优于传统的软硬阈值和非负死区阈值去噪法.
为了进一步评价增强语音的质量,我们采用语音信号的分段信噪比和分段失真来评价增强语音的质量.分段信噪比是以帧为单位先计算信噪比,然后在整个语音段求其平均值作为最终的输出信噪比.其计算公式为\[10\]:
从表中可以看出,无论是在低信噪比还是高信噪比情况下,改进阈值去噪算法的输出信噪比都要大于非负死区阈值去噪算法,而其增强语音失真度都要远远小于非负死区阈值去噪法.说明改进阈值去噪算法在保持增强语音较高的输出信噪比的情况下没有过多地损伤语音的原有信息,更好地保持了语音的可懂度.
4 结 论
针对传统的基于软硬阈值的小波去噪算法的不足,在非负死区阈值函数去噪算法的基础上提出了一种改进阈值函数的小波阈值去噪算法.改进的阈值函数克服了硬阈值存在突变、软阈值存在恒定差值的缺点,另外改进阈值函数考虑了小波变换模值按指数衰减的规律,其增强语音的小波系数获取更接近于原始纯净语音.在阈值λ的选取中,依据带噪语音信号的谱平坦度来加权阈值能获得随语音实时变换的阈值λ.仿真结果表明,改进算法在非平稳的低信噪比的情况下能有效消除背景噪声,减少残留音乐噪声和听觉失真,提高了语音的感知质量和清晰度.
参考文献
[1] KRISHNAMOORTHY P, PRASANNA S R M. Enhancement of noisy speech by temporal and spectral processing \[J\]. Speech Communication,2011, 53(2): 154-174.
\[2\] 赵欢,王纲金,赵丽霞.一种新的对数能量谱熵语音端点检测方法\[J\]. 湖南大学学报:自然科学版, 2010,37(7):72-77.
ZHAO Huan, WANG Gangjin, ZHAO Lixia, An inproved minimum search method for noise estimation\[J\].Journal of Hunan University:Natural Sciences, 2010,37(7):72-77.(In Chinese)
\[3\] 覃爱娜,戴亮,桂卫华. 基于听觉掩蔽效应和最优平滑的语音增强算法\[J\].计算机工程,2013,39(8):27-30.
QIN Aina, DAI Liang, GUI Weihua. Speech enhancement algorithm based on auditory masking effect and optimal smoothing\[J\]. Computer Engineering,2013,39(8):27-30.(In Chinese)
\[4\] 胡昌华,李国华,刘涛,等.基于matlab6.x的系统分析与设计—小波分析\[M\].西安:西安电子科技大学出版社,2004: 5-9.
HU Changhua, LI Guohua, LIU Tao,et al. Analysis and design of the system based on matlab6.x-wavelet analysis\[M\]. Xi'an: Publisher of Xidian University,2004: 5-9.(In Chinese)
\[5\] LEE B,LEE K,ANN S.An EMbase approach for parameter enhancement with all application to speech signals\[J\].Signal Processing,1995,46:1-14.
\[6\] ZHANG Weiqiang,SONG Guoxiang.A translationinvariant wavelet denoising method based on a new thresholding function\[C\]//International Conference on Machine Learning and Cybemetics.2003,2341-2345.
\[7\] BARRI A, DOOMS A, SCHELKENS P. The near shiftinvariance of the dualtree complex wavelet transform tevisited \[J\]. Journal of Mathematical Analysis and Applications,2012,389(2): 1303-1314.
\[8\] 戴亮. 非平稳噪声环境下的语音增强算法研究\[D\]. 长沙:中南大学,2012:32-34.
DAI Liang. Research on speech enhancement algorithms in nonstationary noise environment\[D\]. Changsha:Central South University,2012:32-34.(In Chinese)
\[9\] 董胡,钱盛友.基于小波变换的语音增强方法研究\[J\].计算机工程与应用,2007,43(31) :58-60.
DONG Hu, QIAN Shengyou. Research on speech enhancement based on wavelet transform\[J\].Computer Engineering and Applications,2007,43(31):58-60.(In Chinese)
\[10\]QUACKENBUSH S R, BARNWELL T P,CLEMENTS M A.Objective measures of speech quaintly\[M\].Englewood Cliffs,NJ:Prentice Hall,1988:88-96.
\[11\]卜凡亮, 王为民, 戴启军,等. 基于噪声被掩蔽概率的优化语音增强方法\[J\].电子与信息学报, 2005,27(5):753-757.
BU Fanliang, WANG Weimin, DAI Qijun, et al. Optimizing speech enhancement based on noise masked probability\[J\]. Journal of Electronics & Information Technology, 2005,27(5):753-757.(In Chinese)