APP下载

低信噪比下语音端点检测算法改进设计

2018-03-06谢俊仪

中国刑警学院学报 2018年1期
关键词:波包端点高阶

姜 囡 谢俊仪

(中国刑事警察学院声像资料检验技术系 辽宁 沈阳 110035)

1 引言

近年来,随着语音信号的端点检测技术的发展成熟,常用的方法也多种多样。小波分析(Wavelet Analysis,WA)在时域和频域都能够很好的表现信号的局部特征,且时频分辨率是可变的,能够满足语音信号提取特征量的需求,但是在信号的高频段分辨率较差,利用小波变换去噪的关键就是阈值的选取,阈值过小则重构信号中仍有噪声存在或信号中有效部分滤掉即信号失真[1-4]。小波包变换(Wavelet Packet Transform)突破了小波分析对信号频带划分的局限性,不仅对低通子带进行分析,也对高通分量进行分解,可以将频带进行多层次的划分,是一种更加精细的分析方法,但是在最优层级的选取上存在困难[5-8]。高阶累积量(Higherorder Cumulant)的一个重要特征是服从高斯分布信号的高阶累积量恒等于零,而非高斯信号的高阶累积量不为零,利用这一特点将非高斯的语音信号从高斯噪声中提取出来,但在实际应用中,也常会遇到非高斯的加性噪声,仅靠高阶累积量来提取语音信号会导致准确率下降[9-12]。

本文通过提出基于小波包和高阶累积量的语音端点检测技术,帮助提高语音端点检测的准确率。改进的算法通过结合小波包变换和高阶累积量,避免了小波变换在时间和频率方面对信号分析不全面以及高阶累积量在复杂噪声环境下只考虑高斯噪声的局限性。实验表明基于小波包和高阶积累的语音端点检测技术更具有优越性,在法庭科学实践领域具有重要的意义[13]。

2 基于小波变换的语音端点检测

小波变换(Wavelet Transform,WT)是一种时频分析的数学方法,它能够表征时间和频率的局部变换,具有振幅正负相间的振荡形式。小波变换在时间和频率两个方面都有很好的表达信号局部特征的能力。在语音信号的高频部分有很好的时间分辨率,在语音信号的低频部分则有很好的频率分辨率,窗函数的宽度能随着频率的变化而变化。它能够提供一个随频率改变的“时间-频率”窗口,使用长宽大小不一的长方形时频分析网格。适用于分析具有固定比例带宽的非平稳信号,并能够从原始信号中提取出有价值的部分信号,是进行信号时频分析和处理的理想工具。综合利用小波变换在时间和频率上表达信息的特征,以及在语音信号中含有有用信息的信号与背景音信号的频谱存在的显著差异的特点,来进行语音信号的端点检测。

利用小波变换进行语音端点检测的基本流程如下:

(1)将原始语音信号以一定的帧长进行预处理,即分帧处理;

(2)对分帧后的数据及端点检测的门限值进行小波变换处理;

(3)计算小波变换后数据的均值和方差;

(4)若某一帧的方差大于门限值,则说明在这一帧之后的语音信号中包含有效信息,那么这一帧即为起始帧,而在前面存在起始帧的情况下,若某一帧方差小于门限值则这一帧即为结束帧。

小波变换在高频段的频率分辨率和低频段的时间分辨率较差的缺点,利用小波变换不能够准确、全面地进行端点检测。本文在小波变换的基础上提出了小波包变换。小波包变换提高了信号的时频分辨率,是一种更精细的信号分析方法。

3 高阶累积量理论在语音端点检测中的应用

高阶累积量是一种常用的高阶统计量(Higher-order Statistics),主要应用于信号处理和系统理论领域。

设{x(n)}为零均值k阶平稳随机过程,则该过程的k阶累积量ck,x(m1,m2,…,mk-1)定义为随机变量{x(n),x(n+m1),…,x(n+mk-1)}的k阶联合累积量,即:

由于{x(n)}是k阶平稳的,故{x(n)}的k阶累积量仅仅是时延m1,m2,…,mk-1的函数,而与时刻n无关,其二阶、三阶和四阶累积量分别为:

可以看出,{x(n)}的二阶累积量正好就是其自相关函数,三阶累积量也正好等于其三阶矩。而对于{x(n)}的进行归一化处理后的峰度(Kurtosis)K为:

高斯过程的高阶累积量恒等于零,而非高斯信号的高阶累积量不为零。也就是说含有加性高斯噪声的非高斯信号的高阶累积量理论上等于信号本身的累计量。因此,可以借助高阶累积量抑制高斯噪声,建立非高斯信号模型,从而将非高斯信号从高斯噪声中提取出来。

在实际语音信号检测中,背景噪声很复杂,高斯噪声假设难以成立。在这种情况下,仅利用高阶累积量进行语音端点检验不够准确。为了提高语音端点检测的效率,提出了基于小波包和高阶积累的语音端点检测方法。

4 基于小波包和高阶累积量的语音端点检测

本文提出了一种基于小波包变换和高阶累积量的检测算法。该方法利用小波包的正交性和完备性,提高语音信号高频段的分辨率;同时结合基于高阶累积量的高斯判别准则,用于在小波包域进行高斯性检验,最终得到了语音端点的精确检测。

4.1 一维离散小波包变换

小波包(Wavelet Packet)是由Coifman、Meyer、Quaker和Wickerhauser(1989)提出的,小波包分解是一种相对精细的分解方法,它不仅能分解信号的低频部分,并且还能对高频部分进行分解。

一维小波包分解公式:

小波包对一维时间序列的分解特性[14]示意图如下:

图1 小波包对时间序列的分解

4.2 基于峰度的高斯判别准则

由于高斯性的判断并不依赖于每个频带的信号能量大小,所以选择峰度作为一个归一化的四阶统计量。理论上,判断信号是否服从高斯分布就是让信号的峰度值与0相比。如果等于0,就是高斯性噪声,反之就是非高斯性噪声。但由于在实际中存在误差,信号的峰度是通过与一个置信区间进行检验的,如果峰度在这个区间了,则认为信号是服从高斯性分布的高斯性噪声,否则认为非是高斯性的。这里采用了一种基于概率统计理论中经典的切比雪夫不等式(Tchebychev Inequality)的高斯判别准则。

利用切比雪夫不等式,通过随机变量X的期望和方差,对X的概率分布进行估计。

设随机变量X有数学期望E(X),方差D(X),则对任意实数ε>0,切比雪夫不等式为:

将式(15)代入式(14),可得:

由此可得高斯判别准则:

4.3 基于小波包和高阶累积量的语音端点检测算法设计

利用确定的高斯判别准则对小波包分解系数进行高斯性检验。将原始语音信号进行小波包分解,由于高阶累积量是一种基于统计学的概念,在处理离散信号时,采集的信号越长,统计的质量也就越高,这里通过自下而上的合并准则将相邻的4个具有同一节点高斯性频带合并;合并后,利用基于高阶累积量的高斯判别准则计算新的系数,并将高斯性系数剔除即置为零,同时将分解后最低频带上的小波包系数置为零。这样去除噪声之后保留非高斯性系数重建目标。其中,频带合并准则为:

算法流程图如下:

图2 基于小波包和高阶累积量的语音端点检测算法流程图

由图2可以看出,改进的算法是对小波包分解后所有频带分析高斯特性,并实施系数滤波的。其中,选择小波包分解层数时,可结合以下方法:选择一段没有信号的时段,分析噪声在子空间上的小波包变换的峰度与偏差,若不满足高斯分布要求则继续分解,直到满足高斯分布,并以该层数作为小波包分解层数。

5 实验分析

为了验证本文提出的语音端点检测算法的可行性和有效性,在MATLAB环境下对算法进行实验分析[15-16],实验的语音样本来源为全国普通话水平考试指导用光盘中的语音材料,截取不同发音情况的30段语音。噪声使用MATLAB生成的高斯白噪声、随机噪声,以及 Noise - 92 数据库中的 Pink 噪声与语音信号叠加为不同的信噪比(-5、0、5、10、15 dB)的带噪语音。分别以基于小波变换的语音端点检测方法和基于小波包和高阶累积量的语音端点检测方法对语音进行端点检测。

图3分别给出了小波算法和本算法分别在信噪比为0dB的条件下,原始语音为“蓝天、白云、碧绿的大海”的纯净语音分别叠加白噪声和 Pink 噪声后语音端点检测的实验结果(实线代表语音起点,虚线代表语音终点)。从结果可以看出,在信噪比为0dB的恶劣条件下,基于小波包和高阶累积量的语音端点检测算法可以有效地检测出每一段语音的起点和终点,且在多种噪声条件下都能有效地工作,具有一定的抗噪鲁棒性。

图3 分别叠加不同噪声的端点检测结果

由图3可见,在信噪比极低的情况下,原始语音信号中幅度小的部分完全被噪声覆盖,尤其体现在一个语音段的起始和结束部分。小波变换方法很容易将处于这种状态下的语音信号误读,或是连同噪声部分一起被认定为语音段,或是连同语音部分一起被认定为噪声段。且由于阈值选取上的困难,在小波变换中将噪声段中幅度较小的部分也误读成语音段保留在重构语音中,可见小波变换的结果受阈值影响较大,而小波包则改进了这一方面的局限性。

为了验证文中提出的基于小波包和高阶累积量的语音端点检测方法的有效性,将其与基于小波变换的语音端点检测方法进行比较,准确率的计算公式[17]为:

图4和图5分别为在信噪比为-5、0、5、10、15db时,噪声为白噪声和pink噪声的两种算法的端点检测的准确率。

由图4、图5和图6可以清晰地看出本文算法的语音端点检测准确率高于传统的小波算法,尤其是在复杂噪声的干扰下,本文算法仍能够较为准确的进行端点检测。在白噪声条件下,本文算法的准确率远高于小波算法,尤其是在信噪比进一步减低的情况下,小波算法的检测效果下降明显,体现出了高阶累积量在抗白噪声和随机噪声方面突出的准确性。而在pink噪声条件下,本文算法的高准确率则充分说明了改进的算法对不同噪声在低信噪比的干扰下任然具有良好的准确性和鲁棒性。处理后得到的重构语音信号在波形上更加清晰,包络线更加明显。

图4 白噪声下两种算法端点检测准确率

图5 随机噪声下两种算法端点检测准确率

图6 pink噪声下两种算法端点检测准确率

6 结论

本文将小波包与高阶累积量相结合,提出一种改进的基于小波包和高阶累积量的语音端点检测方法,利用小波包对语音信号进行分解,然后利用高阶累量实现语音信号的端点检测。实验结果表明,与基于小波变换的语音端点检测方法相比,该方法能够较准确的检测到语音的起始点和结束点,具有更好的稳定性。改进的方法既结合了小波包能够完全重构信号、提高高频段分辨率以及利用置信区间确定高阶累积量的判别式准则的优点,克服了小波变换只对低频进行递归分解、高频分辨率低以及高阶累积量方法只考虑高斯噪声的缺点,该方法具有更加优越的端点检测性能。

[1]许开宇,等.基于小波分析的汉语语音识别[J].哈尔滨工程大学学报,1996(4):20-26.

[2]黎林,等.基于小波分析与神经网络的语音端点检测研究[J].电子测量与仪器学报,2013(6):528-534.

[3]鲁远耀,等.强噪声环境下改进的语音端点测算法[J].计算机应用,2014(5):1386-1390.

[4]张宇波,等.基于小波分析与PSO-ELM的语音端点检测算法研究[J].中北大学学报(自然科学版),2016(1):33-38.

[5]冯流宝.基于听觉掩蔽效应的小波包语音增强方法研究[J].通信技术,2010(3):139-141.

[6]王钟斐,等.基于小波包的语音谱熵端点检测方法研究[J].计算机与数字工程,2011(4):1-4.

[7]Ben Messaoud M A, Bouzid A, Ellouze N. Speech enhancement based on wavelet packet of an improved principal component analysis[J]. Computer Speech & Language,2016,(C):58-72.

[8]Islam M T, Shahnaz C, Zhu W P, et al. Rayleigh modeling of teager energy operated perceptual wavelet packet coefficients for enhancing noisy speech[J]. Speech Communication,2017,(C):64-74.

[9]王桂琴,王墨林.用高阶累积量提取高斯噪声中信号的研究[J].数据采集与处理,1995(a01):24-27.

[10]陶立,等.基于高阶累积量参数的语音寂声段和语音段检测方法[J].语音、通信及信号处理,2007(4):209-211.

[11]罗雅琴.基于独立分量分析的语音识别系统[D].合肥:安徽大学,2015:7-27.

[12]罗雅琴,等.滑动窗累积量的递推估计算法及其在语音端点检测中的应用[J].声学学报,2015(5):730-738.

[13]张翠玲.法庭说话人识别语音数据的构建[J].中国刑警学院学报,2016(4):61-64.

[14]宋知用.MATLAB在语音信号分析与合成中的应用[M].北京:北京航空航天大学出版社,2013:44-45.

[15]张雪英.数字语音处理以及MATLAB仿真[M].北京:电子工业出版社,2010:22-73.

[16]张贤达.现代信号处理(第3版)[M].北京:清华大学出版社,2015:400-430.

[17]王洋,等.基于时频结合的带噪语音端点检测算法[J].黑龙江大学学报(自然科学版)2016(3):410-415.

猜你喜欢

波包端点高阶
非特征端点条件下PM函数的迭代根
基于支持向量机和小波包变换的EOG信号睡眠分期
有限图上高阶Yamabe型方程的非平凡解
基于小波包分解和K最近邻算法的轴承故障诊断方法
滚动轴承寿命高阶计算与应用
不等式求解过程中端点的确定
基于高阶奇异值分解的LPV鲁棒控制器设计
基丁能虽匹配延拓法LMD端点效应处理
一类高阶非线性泛函差分方程正解的存在性
基于小波包与遗传算法和支持向量机的液压泵故障诊断