叶安琪 魏晨琦 邓汝杰 张蓉
摘 要:现实中,一般的语音信号都是带噪的,电子伪装语音也不例外。电子伪装语言的识别,需要提取特征参数。噪音干扰对特征提取影响很大,故应做到信噪分离以恢复原始信号波形[7]。传统基于傅里叶变换的FIR滤波器去噪算法存在保护信号局部性和抑制噪音之间的矛盾,而小波变换具有更好的时频局域化特性,能较好区分高频信号和噪声[3]。本文原始语音采用10s男声语音,加入六种不同强度的噪声后通过MATLAB编程工具计算语音去噪后的信噪比。与传统FIR滤波器去噪的算法得到的信噪比相比,小波变换去噪的算法能更为明显的提高信噪比。因此小波变换去噪的效果较传统傅里叶变换去噪有大幅度提升,可以优化电子伪装音识别效果。
关键词:小波变换;信噪比;语音降噪处理
引言
电子伪装音常常伴随着噪音,在进行伪装检测前,需经过一系列预处理,以提高鉴别率。在预处理中,去噪的效果好坏会直接影响伪装语音的鉴别率[7],所以选择一种信噪比更高的去噪算法,在伪装音识别中是非常重要的。传统傅里叶变换后滤波的去噪方法很难将语音信号与噪声信号分离开。随着语音去噪研究的深入和新思想的引入,产生了很多新的语音去噪方法,如信号子空间分解[5]、人工神经网络、人耳听觉掩蔽[6]和基于小波变换等语音去噪算法。
本文采用了小波变换的方法进行语音去噪处理。波分析的理论是由数学发展而来的,它是数学快速发展产生的新领域,1986年建立的Mallat算法实现了小波分析从数学到技术的转变。由于语言信号的非平稳特性,用传统傅里叶变换的方法不能很好地展现出来,而使用小波变换能很好的体现出信号的相关性,比传统傅里叶变换有更大的优势[3],在语音去噪方面的应用也不例外。电子伪装音伴随着大量的噪声,而传统的基于傅立叶变换的FIR滤波器利用噪声一般集中在高频的特点,去噪只能去除明显的高频噪声,处理低频段的噪声效果却不佳。由于小波变换具有良好的时频局域化性质,在高频部分能很好地区分高频信号与噪声,保留更多的信号细节[4],所以本文使用的基于小波变换的语音降噪算法能够很好地弥补基于傅里叶变换去噪的缺陷。
2 语音去噪算法
2.1 FIR低通濾波器去噪法
数字滤波器去噪法一般利用FIR低通滤波器去噪,通过窗函数的参数设计,将低频信号保留,高频噪声信号滤去,使得信号在频域上趋于平滑,达到语音去噪的效果[9]。窗函数的设计如下:首先,根据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N,在确定窗函数类型以后,根据过渡带宽小于给定指标确定所拟用的窗函数的窗口长度N,设待求滤波器的过渡带宽为Δω,它与窗口长度N近似成反比,根据待求滤波器的理想频率响应求出理想单位脉冲响应hd (n),假设待求滤波器频率应为Hd (ejw),则理想的单位脉冲响应可以用下面的傅里叶反变换式求出:
(1)
一般情况下,hd (n)不能用封闭公式表示,需要采用数值方法表示。
窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼近hd (n)。由于hd (n)往往是无限长序列,而且是非因果的,故用窗函数ω(n)将hd (n)截断,并进行加权处理,得到:
(2)
h(n)就是实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数H(ejw)为
(3)
式中,N为所选窗函数ω(n)的长度。
2.2小波去噪法
小波去噪的本质是将信号和噪声的小波变换在小波域进行有效的分离,在小波域有效信号对应的系数很大,噪声对应的系数很小,高频噪声与信号易区分。小波变换继承和发展了短时傅里叶变换局部化的思想,同时又克服了窗口大小不随频率变化等缺点,能给出一定频率的信号随时间变化的能量分布。
如图1所示,待处理语音被处理为平均信息(低频信息)与细节信息(高频信息),用平均信息可近似的表示原语音信号的压缩结果[2],它保留了信号最基本的信息。丢失的细节信息将不会对最终信号的重构造成大的影响。
小波去噪的算法为以下四个步骤:
(1)小波正交变换:选取合适的小波基进行小波分解,得到各尺度小波系数。小波基函数在处理信号时各有特点,没有任何一种小波基函数可以对所有类型信号都取得最优的去噪效果[10],此文采用Haar与db4两种小波基。
Haar小波是具有紧支撑的正交小波函数,它的支撑域在tε[0,1]范围内的单个矩形波,定义为
db4小波是非对称的正交小波,其相应的滤波器组为共轭正交镜像滤波器组。尺度函数φ(t)的支撑范围在t=0~7,φ(t)的支撑范围在-3~4。
连续小波变换表示为以下式子,其中,τ:位移 α:尺度因子:
(2)对小波系数进行N层小波分解:N取得越大,噪声和信号表现的不同特性越明显,越有利于二者的分离;但分解层数越大,重构到的信号失真也会越大,在一定程度上又会影响最终去噪的效果。
(3)对分解得到的小波系数进行非线性阈值处理:保留所有低频变换系数以保持信号的整体形状不变,对每个小波系数进行阈值处理,如可对小于阈值的收缩或置零,大于阈值的保留。此文采用Matlab全局默认阈值。
(4)小波逆变换重构信号:对经过上述步骤的小波系数做小波逆变换,得到去噪信号。
3 分析及仿真结果
本实验使用的编程工具为美国MathWorks公司出品的数学软件MATLAB R2017a,通过仿真给出具体的实验结果(信噪比)。实验通过不同去噪算法所得去噪语音信噪比如表1所示。
其中,随机高斯噪声由MATLAB中randn()函数生成,噪声babble来自Perception-TNO研究所的NoiseX-92噪声库,内容为100人在食堂说话,房间半径超过2米。将两种噪声分别降低10dB和15dB,对比不同强度噪声下的信噪比。
实验采用的原始语音信号为10s的男声,普通话。
通过实验发现,在同一噪声下,小波去噪算法的信噪比明显高于传统FIR滤波器去噪算法的信噪比。使用db4小波进行去噪处理的信噪比也高于使用haar小波处理后的信噪比。
由去噪前后的时域波形图可看出,db4小波去噪后的语音波形更为平滑,而haar小波的波形图锯齿形明显,因此使用db4小波去噪的失真度较小。
4 结束语
通过实验得到的信噪比表格(表1)可知,与传统FIR滤波器去噪的算法相比, 利用小波变换去噪的算法能更为明显的提高信噪比效果,即对原始语音的降噪的效果更好。小波变换可以针对不同的应用需求,灵活地选择小波基,本文采用了haar和db4两种小波基,由图2可知,db4小波与haar小波相比之下,信号波形更平滑,失真度更小,信噪比也更大[1],是本文采用的三种语言去噪算法中最优的。