基于短时能量的语音信号端点检测

时间:2022-10-23 09:55:30

基于短时能量的语音信号端点检测

摘要:语音信号端点检测是语音信号的预处理,正确的语音信号端点检测结果直接影响语音识别等后续工作的运算量和准确率。本文介绍了时域方法中基于短时能量的语音信号端点检测方法,并用三种不同的短时能量计算方式和五种短时能量阈值进行了端点检测实验。

关键词:短时能量;端点检测;阈值

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)18-20ppp-0c

Speech Signal End Point Detection Based on Short-term Energy

SHI Hai-yan

(Computer Center, Shaoxing University, Shaoxing 312000, China)

Abstract: Speech signal end point detection is the speech signal pre-processing. The correct speech signal end point detection will straightforward affect speech recognitioncomputational and correct rate. This paper introduce the end point detection based on short-term energy of time-domain methods. In our experiments, we use three ways to calculate the short-term energy and five ways to determine the short-term energy threshold. The experiments’ results show the differents short-term energy calculate way and short-term energy threshold produce the differents end point detection.

Key words: short-term energy; end point detection; threshold

1 引言

在语音处理中,端点检测是一个关键问题,端点检测(End Point Detection,简称EPD)的目的是要决定语音信号开始和结束的位置,以去除信号开始和结束时的空白噪声。语音信号的端点检测在语音编码、语音识别、语音增强、说话人识别等中起着非常重要的作用,直接影响语音识别等后续工作的运算量和准确率。通常使用的端点检测方法有能量阈值[1]、基音检测[2]、倒谱分析[3]以及频谱分析等。常见的端点检测方法亦可用分类:时域方法、频域方法[4]。本文着重介绍时域方法中基于短时能量的语音信号端点检测方法。

2 时域分析和短时能量

2.1 时域分析

语音的时域分析采用时域波形图,横坐标是时间,纵坐标是幅值。时域分析方法具有计算简单、运算量小、物理意义明确等优点[6]。语音信号具有时变特性,即在一个短时间范围内其特性相对稳定,因而可以将其看作是一个短时平稳过程。我们对语音信号进行分析时,首先将语音信号切成一帧一帧,每帧大小大约是20~30ms,语音信号特征参数是分帧提取的,每帧特征参数构成一个矢量,所以语音信号特征是一个矢量序列。帧太大就不能得到语音信号随时间变化的特性,帧太小就不能提取出语音信号的特征,每帧语音信号中包含数个语音信号的基本周期。有时希望相邻帧之间的变化不是太大,帧之间就要有重叠,帧叠往往是帧长的1/2或1/3。帧叠大,相应的计算量也大。

短时能量代表声音的尺寸,可由声音信号的振幅来类比。使用短时能量进行端点检测是最简单的方法,计算量少,其中不同的短时能量的计算方式会造成端点检测结果的不同。下面介绍三个短时能量的计算公式。

2.2 短时能量

原语音信号 S(n)加窗后的语音信号Sw(n)(Sw(n)的非零区间为0~N-1)的短时能量计算公式如下:

公式(2)中的δ为一个无穷小量,是为防止对0取对数而加入的,公式(3)中的median为每帧帧向量的中位值。我们往往对语音信号进行加窗后再进行分帧、特征提取等处理,其中窗函数可采用方窗、哈明窗[5]。

3 基于短时能量的端点检测

在端点检测中短时能量作为唯一的语音特征,是最简单的一种方法,我们只需要确定一个能量阈值,任一帧的短时能量只要小于这个被确定的阈值就认为是静音。然而如何确定一个好的阈值并不简单,最好的方法是用已标识端点的语音信号数据作为训练数据集去计算出最好的阈值。

在我们的实验中我们使用以下五种方法计算短时能量阈值:

(1)Threshold1 = 最大短时能量乘上一个比率(0.1);

(2)Threshold2 = 短时能量的中位值乘上一个比率(0.1);

(3)Threshold3 = 最小短时能量乘上一个常量(10);

(4)Threshold4 = 第一帧的短时能量乘上一个常量(6);

(5)Threshold5 = 前三帧的平均短时能量乘上一个常量(6)。

我们对采样频率(fs)为16kHZ的sunday.wav语音信号进行基于短时能量的端点检测,其中每帧大小为256(即每帧包含256个取样点),帧叠为128(即帧叠包含128个取样点)。基于短时能量公式(1),程序执行结果的输出见图1;基于短时能量公式(2),程序执行结果的输出见图2;基于短时能量公式(3),程序执行结果的输出见图3。

从图中可看出其中用短时能量公式(1)时在Threshold1阈值时明显出现不准确的端点检测。用基于短时能量公式(3)进行端点检测时效果较好,语音信号冗余度较大,语音信号衰减下来时的部分信息并不影响我们的识别准确率。

在上述的例子中,我们使用了五种方法去计算短时能量的阈值,这五种方法中的比率和常数是通过已标志端点的训练数据得出的,前三种方法参见参考文献[1]。在高信噪比的语音信号下,用上述五种阈值去进行端点检测效果很好,同时端点检测的效果还跟短时能量的具体计算公式有关,如上在三种短时能量的计算公式中(1)、(3)效果很好。但现实的语音信号往往有太大的噪音,甚至一段信号中有大半以上是静音,为适应这类语音信号,我们可以通过线性组合上述阈值来构造一个新的阈值,也可以通过其它短时能量的计算公式,或甚至换用其它的语音信号特征。

4 结论

本文实现了基于短时能量的语音信号端点检测,它通过选择合适的短时能量阈值来进行端点检测。我们还可以通过过零率、倒谱特征等其它语音信号特征来进行端点检测或通过几类特征组合使用来进行端点检测,以增强对低信噪比语音信号进行端点检测的准确性。这是我们接下来要进行的工作。

参考文献:

[1] Wilpon J G, Rabiner L R, Martin T.An Improved Word-detection Algorithm for Telephone-quality Speech Incorporating Both Syntactic and Semantic Constraints[J].AT&T Bell Labs. Tech,1984(63):479-498.

[2] Chengalvarayan R.Robust Energy Normalization using Speech/nonspeech Discriminator for German connected Digit Recognition[J].Proc.Eurospeech 99,Budapest,Hungary,1999.61-64.

[3] Haigh J A, Mason J S.Robust Voice Activity Detection Using Cepstral Features[J].In Proc. IEEE TENCON, 1993:321-324.

[4] 张智星.音讯处理与辨识[OL].网上在线课程.www.cs.nthu.edu.tw/~jang.

[5] 边肇祺,张学工.模式识别[M].北京:清华大学出版社,2005.

[6] 王炳锡.实用语音识别基础[M].北京:国防工业出版社,2005.

收稿日期:2008-04-16

注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”

上一篇:基于ARM2410 嵌入式Linux内核的编译与移植 下一篇:论在Windows XP下架设Web和FTP服务器的方法