刘 超,庄圣贤
(西南交通大学 信息科学与技术学院,四川 成都610031)
语音端点检测就是从带有背景噪声的一段输入语音中识别出真实语音段的端点,有效地识别语音端点不仅可以减少语音信号后续处理的计算量,而且还可以提高语音识别的正确率。有研究发现[1],人们说话过程中,有效语音片段持续时间大约只占整个说话时间的40%。在无音片段中主要以噪声为主,说话人的主要语音信息在有音片段,所以屏蔽各种噪声的干扰,检测出真实的语音段在现代语音信号处理中显得尤为重要。
现代语音端点检测技术,主要包括[2]短时平均过零率、短时平均能量值、短时能频值、双门限法[3]及最近大热的小波变换及小波熵端点检测[4],这些检测方法能在一定的噪声环境中较为准确地检测出有效的语音段,但在面对短时高能量的噪声的干扰时,会出现错误的检测。文中介绍一种改进式的双门限,即通过双门限加上时间门限对高能量的噪声进行检测并对其屏蔽。
根据汉语发音的特点,汉语每个字都是单音节,每个音节又都是由声母和韵母拼音而成。汉语音节末尾都是浊音,用短时能量就可以较好地判断一个词语的末尾。汉语音节声母多是以清辅音开始,受到噪声干扰时,容易被噪声干扰。
语音端点检测方法可以分为时域分析和频域分析,前边提到的短时平均过零率、短时平均能量值、短时能频值、双门限法都属于时域分析。基本思想是在时间轴上设置一个门限值,让语音信号与此门限值进行比较,看其是否超出。而小波变换及小波熵端点检测出属于频域分析,通过在频域上提取语音的特征值进行判断。语音信号处理主要受噪声影响有普通的背景噪声,而高脉冲噪声又属于背景噪声的一种。根据以上介绍的端点检测方法能有效解决背景噪声问题。本文通过改进式双门限法,针对高脉冲噪声设置了一个最短时间门限,正确地识别了有效语音段的起始。
由于其他[5]方法可以有效的解决部分普通噪声对语音端点检测的影响,所以本文针只对高脉冲噪声提出解决方案。
由于语音能量随时间变化,清音和浊音之间的能量差别较明显。通常识别汉语音节的末尾发音。定义n时刻某语音信号的短时平均能量En为
式中,N为窗长,每个窗长代表一帧,可见短时能量为一帧样点值的加权平方和。
图1所示为100~200之间的高脉冲噪声,短时能量检测法无法有效屏蔽。
图1 短时能量端点检测
过零分析属于语音时域分析,是端点检测中较简单的一种,是指每帧内信号过零值的次数。采用短时平均过零分析可以在一定程度上反映其频谱特性,由此可获得谱特性的一种粗略估计。短时平均过零率定义为
图2所示说明,面对采样点100~200之间的高脉冲噪声,短时过零率还是不能有效地被判断和屏蔽。
将语音信号经过分帧、加窗,按帧间50%的重叠求FFT变换,得到其某频率分量fi的能量谱为Ym(fi),则每个频率分量归一化谱概率密度(pdf)函数定义为
其中,pi为某一频率的分量i对应的概率密度;N为FFT变换长度;m为分析某一帧语音。语音的能量频率主要集中在250~45 000 Hz,为增强pdf区分语音和非语音段的能力,对式(4)引入约束条件Y(fi)=0,fi<250 Hz或fi>4 500 Hz。考虑上述约束条件后,每个分析语音帧的短时谱熵定义为
利用短时能量、短时平均过零率及最短时间门限相互配合,可以实现较可靠的各种噪声种类中语音端点检测。短时能量和短时平均过零率设置的双门限,一个是比较低的门限,其数值较小,对信号变化较敏感,容易被超过。另一个是较高的门限,数值较大,信号必须达到一定的强度,该门限才可能被超过。根据这个特性,低门限被超过不一定是语音的开始,有可能是背景噪声引起的。高门限被超过也不一定是语音的开始,有可能是短时高能量的噪声。这时再设置一个最短时间门限,其数值几乎小于所有说话人发出语音的时长,如果超过这个门限则可以确定是由于语音信号引起的。
基于Matlab程序实现改进式双门限法语音端点检测算法步骤如下:
(1)对录入语音信号进行预加重、分帧处理,每一帧记为n=1,2,3,…,N,n为离散语音信号时间序列,N为帧长。(2)用式(1)计算每一帧语音的短时能量得到语音的每帧能量。(3)用式(3)计算每一帧语音的过零率,得到短时过零率。(4)首先对短时能量值设置一个较高的门限M1以确定是有效语音段,再利用背景噪声设置一个较低的门限M2以确定有效语音段的浊音段S1开始,完成第一级的起点判断。再次,在门限M2对应语音点处S1对过零率设置一个门限M3,如果S1处过零率超过了门限M3这说明有效语音的清音段在S1前面,就需要向前查找,当找到未超过门限M3的点S2时,S2后面的一帧就是有效的语音端点起始点。(5)用同样的方法找到语音的终点S3。(6)最后在时域上设置一个最短时间门限T,如果S3-S2<T则说明所检测出的这个语音段为高脉冲噪声,对其进行屏蔽,继续下一个语音段的检测。
门限值选择对语音端点检测的影响较大,本实验的门限值都是通过查阅资料[6]和大量实验得到的经验值。
图3是用改进式双门限确定语音起始端点的示意图。
图3 检测过程示意图
图中M2为正确的语音起点。
分别采用短时能量值、短时过零率、能频值、双门限、语音谱熵和改进双门限的端点检测技术对语音信号在各种环境下进行实验,并给出了实验结果。
在改进双门限端点检测下,由于用时间门限对高脉冲噪声进行了检测、屏蔽,所以当端点信号大于所设置的阈值时,说明检测到了准确的语音信号的端点。
利用Windows自带的录音机录制语音文件,声卡完成了语音波形的A/D转换,获得WAVE文件。实验设置录制的语音信号采样频率为11.025 kHz,16位的单声道语音信号。短时高脉冲噪声是用鼓掌得到。
通过实验可以得出,用双门限检测可以较为准确地检测出在高脉冲噪声环境中语音段的起始点。图4的最后一列给出了带有短时高能量的噪声的“西南交通大学”这段语音的各种端点检测方法的比较。图4(a)是原始语音;图4(b)是短时平均能量;图4(c)是短时平均过零率;图4(d)是短时能频值;图4(e)是改进式双门限;图4(f)是语音谱熵。
通过对图4的观测,其他4种本文用到的语音检测方法对高脉冲噪声都不能有效地识别和屏蔽。最后设置了最短时间门限的双门限法可以准确地检测出语音起点。通过对实验室人员采取语音信号进行试验,正确率达到93%。
图4 多种端点检测方法比较
语音端点检测是语音信号处理的一个基本步骤,准确地检测语音端点才能更有效、更快速地进行语音后续处理。本文针对短时高能量的干扰噪声,将双门限法进行改进,有效地消除了短时高能量噪声的干扰。通过仿真实验验证得到了较满意的结果。
[1] 刘晓明,覃胜,刘宗行,等.语音端点检测的仿真研究[J].系统仿真学报,2005,17(8):1974-1976.
[2]HE Qiang,ZHANG Youwei.On prefiltering and endpoint detection of speech signal[C].1998 Fourth International Conference on Signal Processing Proceedings,ICSP'98,1998,1:749-752.
[3] 路青起,白燕燕.基于双门限两级判决的语音端点检测方法[J].电子科技,2012,25(1):13-15.
[4] 邱文武,蒋建中,郭军利.基于小波能量熵的语音端点检测算法[J].计算机应用与软件,2011,28(2):227-228.
[5] 韩韬.基于强背景噪声下的语音端点检测算法及实现[D].长沙:湖南大学,2007.
[6] 刘永红.说话人识别系统的研究[D].成都:西南交通大学,2003.