方臻成
【摘要】 在语音信号处理中,端点检测是十分重要的一项内容。端点检测,可以在有噪声的背景中确定语音信号的起始点和终止点,为后续处理做必要的准备。而由于背景噪声的存在,光从波形上判断始终点会有一定困难。本文针对端点检测,介绍短时能量法与过零率法两种方法,并对这两种方法进行讨论。
【关键词】 语音信号处理 端点检测
一、背景
在录制语音时,除了将说话人的语音录进计算机外,还不可避免地将外界噪声也录入计算机。因此,在说话者没有说话的时候,也会有信号出现在录制好的文件中。在这种情况下,就给判断语音信号从哪开始,在哪结束带来困难。在这种情况下,对信号进行端点检测,来判断语音的始点与终点是有必要的。下面介绍的是两种常用方法:短时能量法与过零率法。
二、语音的分类
从发音特点来分,语音可以分成很多种。最基本的两种是元音与辅音。当我们发元音时,声带发出的声音气流从喉腔、咽腔进入口腔从唇腔出去时,这些声腔完全开放,气流顺利通过,如汉语拼音的a、o、e。当我们发辅音时,呼出的声流,由于通路的某一部分封闭起来或受到阻碍,气流被阻,与发声器官发生摩擦从而发出声音,如汉语拼音的s、t。
三、短时能量法
将语音信号数字化后,信号x(n)短时能量定义如下:
其中w(n)是窗函数。由于语音信号的短时能量一般会比噪声的要大,因此可以通过短时能量对语音信号的起点与终点进行判断。
四、短时过零率法
如果将时间作为横轴,声音的振幅作为纵轴,那么就可以在坐标上记录声音的波形图。过零率就是单位时间内波形穿越时间轴的次数。一般来说,噪声都是频率高,振幅小的信号,因此噪声的过零率极高。为了屏蔽噪声的过零率,我们设置一个阈值。比如说,假设噪声的幅度一般不超过a(a是一个比较小的数),那么我们就把正负a作为一个阈值,只有波形穿越了正负a这一区间,才算一次穿越横轴。这样,噪声就在正负a区间震动,并不会提高过零率。这样,就可以通过过零率判断语音的始终点。信号{x(n)}的短时平均过零率定义为:
其中sgn是符号函数:
五、两种方法的比较
录取“一、二、三”三个字节的音频,将音频数字化后进行分帧,帧长为160点。以160点为帧长,80为帧移,分别计算其短时能量与过零率。图1由上至下三个图分别是语音数字化后的波形图、短时能量与过零率。
在三个图中,用竖线划分出来的部分就是元音部分。从这三个图中可以看到,对于元音,不管用短时能量还是过零率,都能较好地看出元音地起点与终点。但对于辅音,情况就有点复杂。以音节“三”为例,“三”包含一个辅音“s”和一个元音“an”,从图中可看出,发“s”时,语音的短时能量非常低,而过零率却非常高,这证明,辅音的幅度很小(但比噪音大),而辅音的频率比元音大得多。因此,如果光用短时能量,很难判断出辅音的出现。而对元音方面,虽然用两种方法都能判断元音的始终点,但从音节“三”看出,元音的过零率比辅音要低,因此光靠过零率来识别元音,会有误差。
因此,从图1可知,辅音过零率高而短时能量小,元音过零率低而短时能量大。光靠一种方法来判断语音的始终会有误差的,应该将两者结合起来看。总的来说,在噪声比较小的时候,用短时能量判断会比较准确,而在噪声比较大时,用过零率来判断会比较准确。
参 考 文 献
[1] 赵力. 语音信号处理[M].机械工业出版社