葛艳 白艳萍 胡红萍
【摘 要】随着语音技术的发展,语音识别技术应用到各个领域,而端点检测是语音识别系统中至关重要的一个环节,语音端点检测的精确度直接影响语音识别的准确度.在噪声环境下,语音端点检测很困难,信噪比下降,本文就基于短时能量过零率和基于功率谱熵对所采集的音频文件进行端点检测,然后对处理后的音频进行频谱分析、对比,得出基于功率谱熵的端点检测的鲁棒性比较好,识别效果比较好。
【关键词】短时能量过零率 功率谱熵 端点检测 鲁棒性
一、引言
语音端点检测是指从含噪语音中找到语音段的起始点,端点检测对孤立词识别非常关键,语音识别一半以上的错误是由错误的端点检测导致的.准确的端点检测还可以降低后续处理时间和存储空间,使语音识别系统性能达到最佳.
目前,基于能量的方法是目前语音端点检测广泛使用的方法,它在高信噪比条件下效果很好,但是当信噪比很低时,纯粹的能量参数效果不再令人满意。本文就基于短时能量过零率和基于功率谱熵对所采集的音频文件进行端点检测,分析对比证实了基于功率谱熵对语音识别有比较好的识别性。
二、理论概述
(一)基于短时能量和过零率的端点检测
1、短时能量
由于语音信号的短时性,因此对数字化后的语音信号一般进行分帧处理,并认为1帧内信号的频谱特征和某些物理特征参量近似看做不变。1帧内的信号能量称为短时能量。
语音和噪声的区别可以体现在它们的能量上,语音段的能量比噪声段能量大,语音段的能量是噪声段能量叠加语音声波能量的和。在信噪比很高时,那么只要计算输入信号的短时能量或短时平均幅度就能够把语音段和噪声背景区分开。
设第n帧语音信号的短时能量用En表示,则信号的短时能量定义为: 式中,N为信号帧长。
2、过零率
短时过零表示一帧语音信号波形穿过横轴(零电平)的次数。过零分析是语音时域分析中最简单的一种。对于连续语音信号,过零意味着时域波形通过时间轴;而对于离散信号,如果相邻的取样值的改变符号称为过零。过零率就是样本改变符号次数。
定义信号的短时平均过零率Zn为:
式中,为符号函数,即:
3、过零率的修正
为尽可能减少低频的干扰,在实际应用中往往对过零率做出简单的修正,修正的方法是对上面的定义做一些修改,即设定一个门限T,将过零率的定义修改为穿越该门限的次数。
于是,有定义:
(二)基于熵函数的语音端点检测
ShenJ L 首先将熵的概念引入到语音信号处理中,利用幅度谱熵在語音段与非语音段上频谱的差异达到检测语音端点的目的。在信息论中,用熵来表征信源输出的平均信息量,假设信源发出有限个符号 ,它们组成的输出序列前后符号之间相互统计独立, 分别为 n个符号出现的概率,其定义式如下:
信源熵是概率分布的函数,而且概率分布越平坦熵值就越大。熵函数语音端点检测就是通过检测语音频谱的平坦程度来实现的。对于非语音段,其能量比较平稳的分布在各个频率,因而其频谱熵比较大。而对于语音段,声音的能量主要集中在某几个频段上,因而其频谱熵比较小。于是可以根据语音段和非语音段在谱熵上的差异来实现语音端点的检测本文中采用功率谱熵的方法,功率谱熵函数的构造构成如下:
首先对语音进行分帧加汉明窗,帧成为256,帧移128,对每帧语音信号计算其短时自相关序列,对得到的序列进行傅里叶变换即可得到功率谱密度。各频率分量的归一化功率谱密度函数可表示为:
式中表示信号经过FFT变换后的频谱分量:表示某个频率分量i所对应的概率密度函数;N表示FFT变换的长度(本文取256点)。考虑到语音信号类似于功率信号,同时根据功率谱密度的对称性,只取FFT一半的点来构造以减少计算量。所以实际运用中采用下式来计算归一化功率谱密度函数
对应的每一帧语音信号的信息熵定义为
H=
由以上功率谱熵函数的构造过程可以看到熵的大小由功率谱的方差来决定而不是信号的幅度,幅度的大小不会影响归一化功率谱密度函数,语音信号的谱熵特征分析都是通过检测谱的平坦程度,从而达到语音端点检测的目的。对于无声段,它的能量在各频率的分布比较平稳,反映到信息量上,认为其所含的平均信息量即谱熵较大;而对于语音段,它的能量集中于某几个频段,起伏突变大,那么它所含的平均信息量即谱熵较小,于是可以利用两者谱熵的差异,进行语音段和无声段的划分。并且理论上,如果谱的分布保持不变,信号幅值的大小不会影响.。因而,功率谱熵对噪声有一定的稳健性。
三、MATLAB对采集到的音频进行端点检测实验
在本论文所采集的音频信号中,拨号音相当于语音段(有声段),其他的为静音段(噪声段),拨号音段平均能量最高,静音段平均能量相对较低,整个端点检测可分为四段:静音段、过渡段、拨号段、结束。使用一个变量表示当前状态。静音段,如果能量或过零率超过低门限,就开始标记起始点,进入过渡段。过渡段当两个参数值都回落到低门限以下,就将当前状态恢复到静音状态。而如果过渡段中两个参数中的任一个超过高门限,即被认为进入拨号段。处于拨号段时,如果两参数降低到门限以下,而且总的计时长度小于最短时间门限,则认为是一段噪音,继续扫描以后的拨号音数据,直至标记结束点。从而达到分离出单个拨号音的效果。
低噪音音频875417基于短时能量过零率端点检测 低噪音音频875417基于功率谱熵的端点检测。
四、总结
本文分别利用短时能量过零率和功率谱熵对银行卡密码,手机号,银行卡号所采集的音频数据进行端点检测实验,此实验是在适当低噪音下采集的,结果显示功率谱熵的检测效果会好点,而且鲁棒性比较好,但如果噪声再高点,功率谱熵的结果也不好,故本文有待于进一步研究。
参考文献:
[1]Dean J,Krusienski.Nvestigations Into Using Matlab For Acoustical Adaptive Filtering[J]. REU PENN STATE Annual Research, 2003, 1: 45-53.
[2]陈亚勇.MATLAB 信号处理详解[M]. 北京:人民邮电出版社,2000.
[3]程佩青.数字信号处理.第三版[M]. 北京:清华大学出版社,2008.
[4]Navarro-Mesa, J.An improved speech endpoint detection system in noisy environments by means of third-order spectra[J]. IEEE Signal Processing Letters, 1999, 6(9): 224-226.
基金项目:
国家自然基金(61275120)
作者简介:
葛艳(1987—),女,山西吕梁,硕士,研究生,研究方向:语音端点检测。