基于奇异谱分析和维纳滤波的语音去噪算法

时间:2022-03-02 02:09:57

基于奇异谱分析和维纳滤波的语音去噪算法

摘要:针对维纳滤波算法对非平稳语音信号去噪存在的信号失真、信噪比(SNR)不高的问题,提出了一种奇异谱分析(SSA)和维纳滤波(WF)相结合的语音去噪算法SSAWF。通过奇异谱分析将非线性、非平稳的语音信号初步去噪,提高含噪语音的信噪比以获取尽可能平稳的语音,并将其作为维纳滤波的输入,以剔除其中仍存在的高频噪声,最终获取纯净的去噪语音。在不同强度的背景噪声下进行仿真实验,结果表明SSAWF算法在SNR和均方根误差(RMSE)等方面都要优于传统的语音去噪算法,能够有效去除背景噪声,降低有用信号的失真,适用于非线性、非平稳语音信号的去噪。

关键词:奇异谱分析;维纳滤波;语音信号;去噪;强噪声

中图分类号: TN912.3

文献标志码:A

Speech denoising algorithm based on singular spectrum analysis and Wiener filtering

JIN Liyan1, CHEN Li1*, FAN Taiting2, GAO Jing1

1.School of Information Science and Technology, Northwest University, Xian Shaanxi 710127, China

2.Xian Productivity Promotion Center, Xian Shaanxi 710048, China

Abstract:

Concerning that the Wiener filtering algorithm leads signal distortion with low SignaltoNoise Ratio (SNR) when dealing with the noise of nonstationary speech signal, a new speech denoising algorithm named SSAWF was proposed combining with Singular Spectrum Analysis (SSA) and Wiener Filtering (WF). To obtain the speech signal as smooth as possible, SSA was used to denoise the nonlinear and nonstationary speech signal to improve the SNR of the noisy speech. Then the processed signal was put into WF to further eliminate the high frequency noise that still existed in the speech signal. The simulation results from different intensity of background noise show that the proposed algorithm is superior to the traditional methods in SNR and RootMeanSquare Error (RMSE). The results also demonstrate that the new algorithm can not only remove the background noise efficiently, but also reserve the details of the original signal, it is suitable for the denoising of nonlinear and nonstationary speech signal.

英文关键词Key words:

Singular Spectrum Analysis (SSA); Wiener Filtering (WF); speech signal; denoising; strong noise

0引言

在实际的信号采集和处理过程中,语音信号不可避免地被噪声所污染,获得比较纯净的有用信号是进行信号后续处理的基础和关键[1]。语音去噪技术是信号处理领域的一个重要研究分支,该技术在提高语音质量和可懂度等方面发挥着重要的作用。同时,去噪效果的优劣还会影响到语音识别系统的识别率。

由于语音信号的非线性和非平稳性,一些传统的语音去噪算法需要知道噪声的一些统计特征,以致单一的时域或频域处理无法获得很好的去噪效果。小波阈值[2-3]作为近年来的主流去噪算法被广泛应用,但是阈值去噪需要综合考虑阈值和阈值函数等因素才能达到令人满意的去噪效果,同时还存在着选取最优小波基的困难[4]。随着噪声强度的增加,小波阈值的去噪能力也会逐渐变差。维纳滤波(Wiener Filtering, WF)[5-7]作为一种经典的去噪算法,具有实现简单、去噪效果好等优点,但是要求处理的信号为平稳信号,而且适用于低噪声强度下的语音去噪。文献[8]提出使用迭代维纳滤波来有效去除背景噪声,但需根据实际需要在帧与帧之间改变参数的估计,在算法的实现上更加复杂。文献[9]提出自适应维纳滤波的计算方法,但是该算法依赖于语音信号的局部统计特性。

总结这些研究可知,维纳滤波算法在高信噪比(SignaltoNoise Ratio, SNR)下的适用性没有被很好地解决。

奇异谱分析(Singular Spectrum Analysis, SSA)[10-12]是基于协方差矩阵的一种线性相关方法,可以处理非平稳信号,算法通过提取信号主成分来提高信号信噪比,使维纳滤波适用于较高信噪比条件下的语音去噪。

与小波阈值去噪相比,奇异谱分析还适用于处理噪声频谱与信号频谱相似的含噪信号[13],目前多用于混沌信号[14]、心音信号[15]、气候诊断等领域。奇异谱分析根据语音能量与噪声能量之间的差异性和处理非平稳信号的优越性,可以用于语音信号的去噪。但是奇异谱分析在提取纯净信息的同时,也会将部分奇异值较大的噪声点作为信息点保留下来。本文综合考虑奇异谱分析处理非平稳信号的优势以及维纳滤波方法降噪的高效性,提出一种奇异谱分析和维纳滤波相结合的语音去噪算法SSAWF。通过奇异谱分析将非线性、非平稳的语音信号初步去噪,获取尽可能平稳的语音信号,进而作为维纳滤波的输入,剔除其中仍然存在的高频噪声。通过仿真实验,对不同强度的含噪语音进行去噪处理,结果表明本文的SSAWF算法是有效、可行的。

1基本原理

1.1奇异谱分析算法

奇异谱分析算法是一种主成分分析方法,此算法先对矩阵进行奇异值分解,然后根据信号和噪声奇异值点的差异性来提取信号主成分,具有实时性强、计算简单的优点,经常用于混沌信号的去噪。

设采样信号的一维时间序列为x(i)(i=1,2,…,N),若嵌入维数为M(M

X=x1x2…xN-M+1

x2x3…xN-M+2

xMxM+1…xN

(1)

令S为时滞矩阵的M×M维协方差矩阵,则:

S=s(0)s(1)…s(M-1)

s(1)s(0)…s(M-2)

s(M-1)s(M-2)…s(0)

(2)

对协方差矩阵S进行特征值分解,得到M个奇异值λi(i=1,2,…,M),将其按降序排列λ1>λ2>…>λM≥0构造信号的奇异谱图,奇异值的大小代表了信号和噪声在奇异谱图中能量大小的相对关系。通常情况下奇异值较大的点代表有用的信息点,而奇异值较小的点代表信号中的噪声点。λk对应的特征向量Ek被称作经验正交函数,采样信号x(i)在向量Ek上的正交投影系数就是第k个主分量:

aki=∑Mj=1xi+jEkj; 0≤i≤N-M

(3)

如果已知各主分量与经验正交函数,反求原始信号序列的过程如下:

xi+j=∑Mk=1akiEkj; 1≤j≤M

(4)

1.2维纳滤波算法

在传统的去噪算法中,维纳滤波因其操作简单、去噪效果好,被公认为一种经典的去噪算法。语音信号在时域的表示为:yi(t)=si(t)+ni(t),其中si(t)、ni(t)和yi(t)分别是第i帧原始语音信号、噪声和被噪声污染的语音信号。维纳滤波原理是寻求一个线性滤波器H(n),使含噪语音yi(t)经过线性滤波器后的估计值i(t)=yi(t)Hi(n)与si(t)之间的均方误差最小,进而从噪声ni(t)干扰的含噪语音中分离出原纯净语音的理论。在si(t)和ni(t)都是平稳信号而且不相关的情况下,维纳滤波器在频域的最优估计函数为:

H(w)=ps(w)/[ps(w)+pn(w)]

(5)

其中ps(w)和pn(w)分别是原始信号的功率谱和噪声的功率谱,则第i帧信号滤波后有用信号的谱估计为:

i(w)=Hi(w)・Yi(w)

i(w)的相位谱由Yi(w)的相位谱近似代替,再经由逆傅里叶变换就能得到该帧的时域信号。由式(5)中的估计函数显示可知,当pn(w)=0时最优维纳滤波器的幅值为1;当ps(w)=0时最优维纳滤波器的幅值为0;除去这两个极值,最优维纳滤波器的幅值由ps(w)和pn(w)的大小共同决定,比值越大,滤波器幅值就越趋近于1。实际上由于噪声和语音信号的非平稳性,随着时间的变化,两者的功率谱会发生相应的变化,因此理想状态是对每一帧语音信号采取时变的维纳滤波器进行去噪。但由于维纳滤波器在相邻帧之间的变化会很快,导致起伏而残存噪声。

2SSAWF去噪算法

针对语音信号的宽频特性、噪声与语音的频谱可能存在部分或者全部重叠,在采用传统算法去除噪声的过程中,与噪声频谱重叠的部分语音信息也会被去除,从而导致语音能量的亏损。为了有效地从强噪声水平的含噪语音中提取纯净的语音信息,考虑到语音信号与噪声间能量的差异性,以及使用奇异谱分析处理非平稳信号的优越性,本文采用奇异谱分析来进行语音去噪。但在奇异谱分析提取语音主成分的过程中,部分奇异值较大的噪声点会被当作信息点提取出来,导致噪声点的保留。维纳滤波方法作为一种经典的去噪算法,具有实现简单、去噪效果好等优点,但是要求处理的信号为平稳信号。故综合考虑奇异谱分析处理非平稳信号的优势和维纳滤波算法去噪的优势,将二者结合用于强噪声下的语音去噪。

奇异谱分析去噪的过程中,重构信号时阶次p的选择是一个重要环节。采用文献[14]中的方法来提取信号主成分。图1为语音信号的奇异谱图(SNR=-5dB),图中奇异值较大的点代表信号的特征点,奇异值较小的点主要是噪声点。因此,选择前面几个较大的奇异值点重构即可得到较为纯净的语音信息。选取一个较小的p值,根据式(4)重构噪声信号np和np-1,若p选取得合适,则np反映了信号的噪声成分,np-1反映信号中的有用信息。np构造的噪声谱图应该是平滑的,np-1构造的噪声谱图应该有比较明显的下降趋势。

从图2的奇异谱图上看,p=2时重构噪声的奇异谱下降趋势比较陡峭,p=3时重构噪声的奇异谱下降趋势比较平缓,因此p=2时重构的信号主要包含信号的有用信息。在定量分析上采用相似系数和信噪比作为度量指标,来评价两次分离的效果,结果如表1所示。

由表1可知,无论是相似系数的比较还是信噪比的比较,p=2时即选择前两个主分量重构要比选择前三个主分量重构效果好,第三个主分量主要增加了语音信息中的噪声成分。因此,根据奇异谱合理选择重构数目也是实现分离效果的一个重要环节。

奇异谱分析初步去噪的过程如下:

步骤1确定最小嵌入维数,构造时滞矩阵X。用Cao方法[16]确定最小嵌入维数M,最小嵌入维数M=30。

步骤2构造矩阵X的M维协方差矩阵S,对其进行特征值分解,得到M个奇异值λi(i=1,2,…,M)。

步骤3构造信号的奇异谱图,将奇异值按降序排列λ1>λ2>λ3>…>λM≥0确定信号的奇异谱图(如图1)。

步骤4重构原始信号,选择前面有限个奇异值较大的点重构作为主分量,重构原始语音信号。

采用奇异谱分析可以有效提取强噪声下的语音信息,得到近于平稳的语音信号,但同时也会将一些奇异值较大的噪声点视为语音信号,造成高频噪声的保留。为了提高含噪语音的信噪比,去除语音信号中的高频噪声,采用维纳滤波进行语音的再去噪。

本文提出的结合奇异谱分析和维纳滤波的SSAWF算法操作步骤如下:

步骤1获取纯净语音和白噪声,将不同幅度的白噪声与语音相叠加,形成不同噪声强度的含噪语音,作为下一步含噪语音的输入;

步骤2使用奇异谱分析对含噪语音进行预处理,提高含噪语音的信噪比,使信号尽可能地平稳;

步骤3使用快速傅里叶变换求取预处理信号的频谱Y,采用前三帧无声段估计信号的噪声功率谱Pn;

步骤4计算维纳滤波的增益函数H,通过增益函数H和带噪语音的频谱Y估计纯净语音信号的频谱;

步骤5采用带噪语音的相位,根据上一步骤估计的纯净频谱合成最后去噪后的语音。

算法实现伪代码如下所示:

SSAWF算法的时间耗费主要集中在计算时滞矩阵X以及构造原始信号这两个步骤,1)中计算时滞矩阵X的时间复杂度为O(N),6)中构造原始信号的时间复杂度为O(N),其他环节上的时间复杂度皆低于这两个步骤,故SSAWF算法的计算复杂度为O(N)。

3仿真实验

实验中选择的纯净语音信号为一段英文语音,长度为5s,频率为44100Hz,采样点数为265000个,噪声来源为Noisex92,选取对语音信号影响最大的白噪声进行实验仿真。通过将不同幅度的白噪声与语音信号相叠加,来模拟不同噪声强度下的含噪语音信号。为了证明本文算法的可行性,选择小波软阈值、维纳滤波和奇异谱分析与SSAWF算法进行大量的对比实验,通过信噪比(SNR)和均方根误差(RootMeanSquare Error, RMSE)这两个参数指标的比较来评判去噪性能的好坏。

3.1不同噪声强度下的SSAWF实验效果

由表2和图3显示可知,在不同噪声水平下,SSAWF算法对于信号去噪中常用的两个参数指标信噪比和均方根误差都有很明显的改善效果。在噪声水平较低时,本文算法对信号信噪比提高的幅度较小;但在噪声水平较高时,信噪比提高的幅度比较大,证实了随着噪声水平的逐渐提高,SSAWF算法的去噪能力也逐渐变强。

3.2同类算法对比

为了说明本文算法的有效性,在不同的噪声强度下将本文算法与小波软阈值、奇异谱分析和维纳滤波进行了实验对比,其中小波软阈值选取的小波基为coif5,分解层数为4,阈值为无偏似然估计阈值。

将四种去噪算法分别对不同噪声强度下的含噪语音进行仿真实验,来测验不同算法在不同噪声强度下的去噪效果。由表3、4和图4、5显示可知:SSAWF算法去噪后所得信号的信噪比较高、均方根误差较小,与其他几种算法相比更适合低信噪比情况下的去噪;单纯的奇异谱分析会把奇异值较大的某些噪声点当作信号保留下来,导致对信号的去噪不彻底;而小波软阈值以及维纳滤波在去噪时,无法从含噪语音中充分获取语音成分,丢失了某些有用的语音信息,造成语音能量的亏损(参见表5),致使去噪之后的语音信号信噪比比较低。

为了更加直观地验证本文算法的性能,选取了噪声强度为-5dB进行实验,四种算法去噪后所得信号与原纯净信号的相似系数如表5,截取其中500个采样点,得到去噪后的信号SR(n)和原纯净信号S(n)的结果比对图如图6~9所示。

表格(有表名)

综上所述:经过小波软阈值处理过的语音信号,由于去噪结果过于平滑,丢失了语音信号的突变部分,造成了信号的失真(黑色圆圈处),相似系数仅为79.67%;维纳滤波处理过的语音信号在某些部分会存在小抖动,部分语音信息丢失而且仍含有部分未去除的噪声;经过奇异谱分析和本文SSAWF算法处理过后,从视觉效果和相似性系数上都明显优于前两种算法,本文算法在奇异谱分析的基础上,进一步去除了语音中的一些高频噪声,相似系数达到了82.24%,不仅有效减少了信号的失真,而且提高了语音的信噪比。

4结语

结合奇异谱分析和维纳滤波各自的去噪优势,提出了一种计算简单、实时性强的SSAWF语音去噪算法,以解决传统去噪算法造成的信噪比不高和信号失真等问题。对不同噪声水平的含噪语音进行去噪仿真,结果表明SSAWF算法不仅提高了含噪语音的信噪比,而且有效减少了信号的失真,是有效可行的语音信号去噪算法。

参考文献:

[1]

SUN L, YANG Z. Speech enhancement based on datadriven dictionary and sparse representation [J]. Signal Processing,2012, 27(12): 1793-1800. (孙林慧,杨震.基于数据驱动字典和稀疏表示的语音增强[J].信号处理,2012,27(12):1793-1800.)

[2]

JIA H, REN Y, ZHANG X. An improved wavelet packet threshold function for speech enhancement method [J]. Journal of Information & Computational Science, 2013, 10(3): 941-948.

[3]

WANG H, SHANG C, GAO R, et al. An improvement of wavelet shrinkage denoising via wavelet coefficient transformation [J]. Journal of Vibration and Shock,2011,30(10):165-168. (王宏强,尚春阳,高瑞鹏,等.基于小波系数变换的小波阈值去噪算法改进[J].振动与冲击,2011,30(10):165-168.)

[4]

LI J, AN D, WANG J. Speech denoising method based on the EEMD and ICA approaches [J].Journal of Northwestern University: Natural Science,2011,32(11): 1554-1557. (李晶皎,安冬,王骄.基于EEMD和ICA的语音去噪方法[J].东北大学学报:自然科学版,2011,32(11):1554-1557.)

[5]

MA Y, NISHIHARA A. A modified Wiener filtering method combined with wavelet thresholding multitaper spectrum for speech enhancement [J]. EURASIP Journal on Audio, Speech, and Music Processing, 2014, 2014: 32.

[6]

LYU Z. Study of speech recognition algorithm under noise environment [D]. Hefei: Anhui University, 2011: 35-37. (吕钊.噪声环境下的语音识别算法研究[D].合肥:安徽大学,2011:35-37.)

[7]

LEI J, YANG Z, LIU G, et al. Research on speech enhancement based on shorttime spectrum estimation [J].Computer Engineering and Applications, 2009, 44(32): 6-9. (雷建军,杨震,刘刚,等.基于短时谱估计的语音增强研究[J].计算机工程与应用,2009,44(32):6-9.)

[8]

CHENG C, HUANG L. Research on Speech enhancement based on Wiener filtering [J]. Applied Mechanics and Materials, 2014, (513/514/516/517): 3130-3133.

[9]

ELFATTAH M A A, DESSOUKY M I, ABBAS A M, et al. Speech enhancement with an adaptive Wiener filter [J]. International Journal of Speech Technology, 2014, 17(1): 53-64.

[10]

BROOMHEAD D S, KING G P. Extracting qualitative dynamics from experimental data [J]. Physica D: Nonlinear Phenomena, 1986, 20(2/3): 217-236.

[11]

LI N, DENG S, TANG Q. Speech enhancement algorithm based on combining local characteristicscale decomposition and difference spectrum of singular values [J]. Journal of Multimedia, 2013, 8(3): 233-240.

[12]

MA H, JIANG Q, LIU Z, et al. A novel blind source separation method for singlechannel signal [J].Signal Processing, 2010, 90(12): 3232-3241.

[13]

GUO F. Signal processing methods research in nonstationary nuclear magnetic resonance experiment [D]. Wuhan: Huazhong University of Science and Technology,2012:40-41. (郭峰.非稳态核磁共振实验中的若干信号处理技术研究[D].武汉:华中科技大学,2012:40-41.)

[14]

LIU Y, ZHAO M. Denoising of chaotic time series based on singular spectrum analysis [J].Journal of Shanghai Jiaotong University,2003,37(5): 778-780. (刘元峰, 赵玫. 基于奇异谱分析的混沌序列降噪[J].上海交通大学学报,2003,37(5):778-780.)

[15]

LU D, GUO X. Wavelet packet denoising algorithm for heart sound signal based on singular spectrum analysis [J]. Journal of Vibration and Shock,2013,32(18):63-69. (卢德林,郭兴明.基于奇异谱分析的心音信号小波包去噪算法研究[J].振动与冲击,2013,32(18):63-69.)

[16]

CAO L. Practical method for determining the minimum embedding dimension of a scalar time series [J]. Physica D: Nonlinear Phenomena,1997,110(1/2): 43-50.

上一篇:缩比像真机设计技巧(下) 下一篇:浅谈企业主数据管理及基础实现