首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

基于能量和频带方差结合的语音端点检测方法

2020-06-04 来源:华拓网
基于能量和频带方差结合的语音端点检测方法

陈昊泽; 张志杰

【期刊名称】《《科学技术与工程》》

【年(卷),期】2019(019)026

【总页数】6页(P249-254)

【关键词】端点检测; 低信噪比; 谱减法; 能量; 频带方差

【作 者】陈昊泽; 张志杰

【作者单位】中北大学仪器科学与动态测试教育部重点实验室 太原 030051

【正文语种】中 文

【中图分类】TN912.3

在语音识别过程中,端点检测是非常重要的部分。语音的端点检测是指从包含语音的信号中确定有话段的起止点。在语音识别,关键词检测,语音编码和语音增强等方面广泛应用。准确的端点检测可以为后续语音识别中特征的提取减少很大的运算量,也使声学模型的建模更加准确,从而提高语音识别的识别率。

短时能量和短时过零率是语音端点检测常用的方法。但噪声环境下语音识别性能下降,很大程度上是由于语音端点检测出现误检测,将噪声误检测成有效语音或将有效语音误检测成噪声。低信噪比(signal-noise ratio, SNR)时,传统的基于短时能量和短时过零率的端点检测方法等效果很差。对于SNR的带噪语音,学者们提出了不同的解决方案,如基于能零比的端点检测方法,基于频带方差的端点检测方法和改进的能量谱熵端点检测方法[1]等。

本文先介绍了基于能零比的端点检测方法和基于频带方差的端点检测方法,通过实验验证在低SNR时,两种端点检测方法及文献[1]算法效果不佳;在两种方法的基础上做了改进,提出了一种基于能量和方差结合的语音端点检测方法。

1 基于能零比的端点检测方法

基于能零比端点检测方法是双门限法的一种形式,带噪语音信号的噪声段的短时能量较低,短时过零率较高;而在有话段,短时能量相对较高,短时过零率则较低,所以噪声段的能量和过零率的比值明显小于有话段的比值,利用语音信号的能量与过零率的比值,更容易检测出语音信号的起止点。在对带噪语音进行端点检测中有着广泛的应用。其具体步骤[2]如下。

(1) 信号分帧加窗。设x(n)为采样后的语音时域信号,由于语音信号是一个非稳态、时变的信号,需要对其进行分帧,xi(n)为分帧加窗后第i帧语音信号,加窗函数为ω(n),一般采用汉明窗,定义为

xi(n)=ω(n)x[(i-1)inc+n],

1≤n≤L,1≤i≤N

(1)

式(1)中:L为帧长;inc为帧移;N为语音分帧总数。

(2)计算第i帧语音能量。设第i帧语音能量为AMPi。xi(n)为第i帧的语音信号,所以第i帧信号能量为

(2)

(3)中心截幅处理。为了保证过零率计算稳定,排除信号可能会有一些微小的零漂移,所以当输入加窗分帧后的语音信号xi(n)时,做中心截幅处理,得:

(3)

式(3)中:δ为微小漂移量。

(4)计算过零率。设第i帧语音过零率为ZCRi,中心截幅处理后计算第i帧语音信号的过零率:

(4)

式(4)中:sign[]为符号函数,表达式为

(5)

(5)通过能量和过零率计算第i帧的能零比:

EZRi=AMPi/(ZCRi+b)

(6)

式(6)中:为了防止过零率为0出现溢出的情况,b为一个较小的常数。

对带噪语音端点检测时,能零比值大说明该时间处于有话段,否则处于噪声段。

2 频带方差端点检测法

有话段和噪声段的频谱特性差异很大,一般有话短的能量随频带有较大的变化,在共振峰处有较大的峰值,而在其他频段能量就很小;而噪声段能量数值相对较小,且在频带内分布较为均匀,也就是变化较为平缓。根据这一特征可将其用来区分有话段和噪声段,有学者就提出基于“频带方差”进行端点检测的方法[3]。由于语音是时变信号,在实际的计算中采用的是短时频带方差,所以实际计算的是短时频带方差。将这种以短时频带方差作为参数检测语音段起止端点的方法称为频带方差检测法。频带方差检测法的具体步骤如下。

求第i帧语音信号频谱Xi(k)。设xi(n)为分帧加窗后第i帧的语音信号,L为帧长。对其进行离散傅里叶变换(DFT)可得频谱:

(7)

令Xi={Xi(1),Xi(2),…,Xi(L)},此时第i帧语音信号频带方差:

(8)

式(8)中:为第i帧语音信号的均值。

频带方差可以有效地反映出一帧信号中各频带之间的起伏程度和离散程度;同时也可以反映出一帧语音信号的短时能量的大小。一帧信号的能量与其起伏离散程度成正比,能量越大,起伏程度越剧烈,Di值越大,这正是语音信号的特点;反之,对于噪声信号,能量越小,波动起伏越平稳,Di越小。

3 改进算法

结合传统基于能零比和基于频带方差的端点检测算法,提出了基于能量和频带方差结合的语音端点检测方法。由于噪声段的能量比有话段小;而噪声段波动起伏较小,频带方差值较小,而有话段则相反。所以将能量与频带方差相乘,可以最大化区分噪声段与有话段。实验表明在SNR为-10 dB甚至更低的情况下,可以较为准确地检测出有话段的起止点。其具体过程如下[4]:

(1)对语音信号的分帧加窗。语音信号x(n),分帧加窗后得到第i帧语音信号xi(n)。

(2)谱减法降噪处理。L为帧长,将第i帧语音进行DFT为

(9)

Xi(k)的相角为

(10)

式(10)中:Im[Xi(k)]和Re[Xi(k)]分别为DFT后频域语音信号的虚部和实部。

噪声段的平均能量:

(11)

式(11)中:NIS为前导无话段对应帧数。

谱减算法为

(12)

式(12)中:a和b为常数;a为过减因子;b为增益补偿因子。

将第(1)步所求与谱减后的语音序列幅值通过快速傅里叶逆变换,求出谱减后的语音序列利用人耳对语音信号相位不敏感的特点,把谱减前的相位角信息直接用到谱减后的信号中。谱减算法的原理如图1所示。

图1 谱减算法原理图Fig.1 Schematic of spectral subtraction algorithm

(3)计算对数能量LEi。这里对语音信号能量做了进一步的优化,为了提升短时线性能量的性能,避免造成幅值较小的辅音和静音的混淆,将第i帧的能量以对数的形式表示,记作:

LEi=lg(1+AMPi/a)

(13)

式(13)中:AMPi为按照式(2)计算出的第i帧能量。当a取较大的数值时,AMPi幅值如果有较大剧烈的变化将在LEi中得到缓和[5]。

(4)计算频带方差。根据式(8)求得第i帧语音信号的频带方差:

(14)

(5)根据步骤(1)~(4),可求得第i帧能量方差积:

LEDi=LEiDi=

(15)

(6)平滑处理。对步骤(5)求得LEDi进行多次中值滤波处理。设LEDi(n)为输入,LEDo(n)为输出。采用一滑动窗,在n0处的输出为LEDo(n0),就把滑动窗的中移到n0处,LEDo(n0)是取窗内输入样点中值。中值平滑的优点是既可以有效地去除少量野点,又不会破坏数据在两个平滑段之间的阶跃型变化[6]。

(7)两级判决。将整段语音信号的能量方差乘积记作LED。第一级判决:在LED上选取一个较高阈值T2,与LED进行一次粗判,高于此阈值的就一定是有声段;二级判决:在LED上确定一个较低的阈值T1,T2与LED的左右交点分别向左右搜索至T1与LED的交点,即为改进方法所确定的有话段的起止点。图2为两级判决的示意图,T1与LED的交点的上部分即为有话段语音,否则为噪声段[7]。

图2 基于LED的两级判决Fig.2 Two-stage decision mechanism based on LED

从上述计算步骤可以看出,噪声段与有声段的LED数值相差大,使得有声段和噪声段相对容易地被检测出来。这里对本文基于能量和频带方差的结合方法称为LED端点检测方法。

4 实验与分析

实验语音数据均采用德州仪器、麻省理工学院和SRI Internationa合作构建的声学-音素连续语音语料TIMIT库中的语音。随机抽取语音作为实验语音。实验时帧长采用200帧,帧移为80帧,采样率为16 kHz。采用Hamming窗作为窗函数。

4.1 不同端点检测算法效果比较

文献[1]中提出了一种改进的能量谱熵端点检测算法,主要思路是将模糊C均值聚类算法和贝叶斯信息准则结合对改进的能量谱熵特征门限进行估计,最后采用双门限算法进行端点检测。对纯净语音叠加高斯随机噪声,信噪比分别为0 dB和-5 dB,采用传统能零比检测方法、频带方差检测法、文献[1]中提出的算法和本文的基于LED的端点检测方法对叠加噪声的连续语音进行端点检测,图3和图4为仿真效果图。此次实验中语音为TIMIT中test文件下dr2中fcmr0的sa2.wav语音文件,语音为“Don’t ask me to carry an oily rag like that”。

图3 SNR=0 dB时四种端点检测算法的仿真结果Fig.3 Simulation results of four endpoint detection methods in SNR=0 dB

图3和图4中实线表示有话段起始时间,虚线表示有话段截止时间。当SNR=0 dB时,3种检测方法均有较好的检测效果;SNR=-5 dB时,传统检测方法没有把语音 “like”和“that”被检测出来。本文的断点检测方法可以完整的检测出语音中所有单词。

4.2 基于LED方法对低信噪比语音信号验证

随机抽取TIMIT数据集中纯净语音按SNR=-5 dB、SNR=-10 dB、SNR=-15 dB叠加NOISEX92噪声库中的factory噪声和volvo噪声,利用本文的LED端点检测算法进行端点检测,结果如图5和图6所示,可以看出在SNR=-15 dB时仍有较高的检测率。

为了检测提出的端点检测算法的准确性,将改进方法与4.1节中提到的两种传统端点

检测算法和文献[1]算法进行比较。在TIMIT数据集中随机抽取400条语音,其中200条叠加NOISEX92噪声库中的factory噪声,另外200条叠加volvo噪声进行实验,每种端点检测方法进行400实验,若语音起始帧和终止帧位置相差在10帧以内,则认为语音端点检测结果正确。以端点检测的正确率作为参数进行评定检测效果,其定义如下[8]:错误帧数=噪声帧错判为语音帧数+语音帧错判为噪声帧数;正确率=(总帧数-错误帧数)/总帧数。表1为3种端点检测方法准确率的比较结果。

从表1的实验分析结果可知,在低信噪比低于0 dB情况下,传统端点检测方法正确率出现明显下降,并且文献[1]的算法在信噪比为-10 dB和-15 dB时检测效果也不理想;而本文的改进方法在信噪比高于-10 dB时正确率在70%以上,检测效果比较稳定,正确率明显高于其他3种方法[9]。

图4 SNR=-5 dB时四种端点检测算法的仿真结果Fig.4 Simulation results of four endpoint detection methods in SNR=-5 dB

图5 factory噪声下本文检测方法的仿真结果Fig.5 Simulation results of the detection method in this paper superimposed factory noise

图6 volvo噪声下本文检测方法仿真结果Fig.6 Simulation results of the detection method in this paper superimposed volvo noise表1 三种端点检测方法的比较Table 1 Comparison of three endpoint detection methods

方法正确率/%20 dB10 dB5 dB0 dB-5 dB-10 dB能零比法

85.573.665.260.111.310.8频带方差法88.379.872.963.050.645.3文献[1]方法90.083.881.278.373.655.6本文方法90.285.583.980.777.670.9

5 结论

在低信噪比的环境下,能零比法、频带方差法和文献[1]中提出的算法等不能对语音信号进行有效的端点检测。针对低信噪比下端点检测方法的不足,提出能量和频带方差相结合的新端点检测方法,通过对带噪音的增强,再将能量与频带方差相结合[10]。实验证明,无论是在低信噪比的高斯白噪声还是有色噪声环境下,均可有较好的检测效果。而且文献[1]的算法由于在双门限判决时采用模糊C均值聚类算法和贝叶斯信息准则结合,本文改进方法与文献[1]的算法相比,复杂度更低[11]。

参考文献

【相关文献】

1 董 胡, 钱盛友. 改进的能量谱熵端点检测算法[J]. 测控技术, 2016,35(6): 26-29

Dong Hu, Qian Shengyou. Improved endpoint detection algorithm based on energy spectral entropy[J]. Measurement & Control Technology, 2016,35(6): 26-29

2 宋知用. Matlab语音信号分析与合成[M]. 第2版. 北京: 北京航空航天大学出版社,2017:159-161

Song Zhiyong. The application of Matlab in speech signal analysis and synthesis applications[M]. 2nd ed. Beijing: Beihang University Press, 2017: 159-161

3 王 威, 胡桂明, 杨 丽, 等. 基于谱减法和均匀子带频带方差法的端点检测[J]. 电声技术, 2016,40(5): 40-43, 66

Wang Wei,Hu Guiming, Yang Li,et al.Research of endpoint detection based on spectral subtraction and uniform sub-band spectrum variance[J]. Audio Engineering, 2016,40(5): 40-43, 66

4 陈莹莹, 毕春艳, 龙建忠. 低信噪比下的语音端点检测算法研究[J]. 电视技术, 2018,42(6): 9-12, 27

Chen Yingying, Bi Chunyan, Long Jianzhong. The research of voice endpoint detection algorithm under low SNR[J]. Video Engineering, 2018,42(6):9-12, 27

5 李祖鹏,姚佩阳. 一种语音段起止端点检测新方法[J]. 电讯技术, 2000(3): 68-70

Li Zupeng, Yao Peiyang. A new method for detecting the start and end of speech segment[J]. Telecommunication Engineering, 2000(3):68-70

6 陈华华, 徐 萍. 基于谱减法和短时能量的声音端点检测方法[J]. 机械制造与自动化, 2016,45(3):191-192, 209

Chen Huahua, Xu Ping. A sound endpoint detection method based on spectral subtraction and short-term energy[J]. Machine Building & Automation, 2016,45(3): 191-192, 209

7 孙一鸣, 吴杨扬,李 平. 基于改进双门限法的语音端点检测研究[J]. 长春理工大学学报(自然科学版), 2016,39(1): 92-95

Sun Yiming, Wu Yangyang, Li Ping. Research on speech endpoint detection based on the improved dual-threshold[J]. Journal of Changchun University of Science and Technology (Natural Science Edition), 2016,39(1): 92-95

8 赵 力. 语音信号处理[M]. 北京: 机械工业出版社,2010:159-161

Zhao Li. Speech signal processing[M]. Beijing: China Machine Press, 2010: 159-161

9 Zhang C, Dong M. An improved speech endpoint detection based on adaptive sub-band selection spectral variance[C]//Proceedings of The 35th Chinese Control Conference. Chengdu: Chinese Association of Automation, 2016: 5033-5037

10 何蓉蓉. 低信噪比环境下语音信号端点检测算法[D].济南:山东大学, 2018

He Rongrong. Endpoint detection algorithm for speech signal in low SNR

environment[D]. Jinan: Shandong University, 2018

11 王 月, 屈百达, 李金宝, 等. 一种改进的基于频带方差的端点检测算法[C]//2007中国控制与决策学术年会论文集.无锡:江南大学,2007:301-303

Wang Yue, Qu Baida, Li Jinbao, et al. Modified endpoint detection algorithm based on spectrum variance[C]//2007 Proceedings of China Academic Conference on Control and Decision Making. Wuxi:Jiangnan University, 2007:301-303

因篇幅问题不能全部显示,请点此查看更多更全内容