一种孤立词语音识别的实现方法及改进

时间:2022-07-31 03:06:43

一种孤立词语音识别的实现方法及改进

摘 要:通过对特征提取模块2个重要部分:端点检测和线性预测倒谱(LPCC)相关原理的介绍分析,阐述了一种以线性预测倒谱(LPCC)为基础,进行特征提取的孤立词语音识别的具体实现方法,并对该方法所描述的系统进行了软件建模。通过分析研究,给出了提高识别率的具体改进方案。最后使用Matlab软件对相关方法及结论进行了验证,表明该方法确实在传统方法的基础上提高了识别率,且速度较快,具有实用性和良好的硬件可移植性,并讨论了它在一些关键环节的未来实现及改进方向。关键词:语音识别; 特征提取; LPCC; Matlab

中图分类号:TN912.3-34文献标识码:A

文章编号:1004-373X(2010)16-0109-04

Realization and Improvement of Isolated Word Phonetic Recognition

LIU Li-yuan, YAN Jia-ming

(School of Electronic Information, Northwestern Polytechnical University, Xi’an 710129, China)

Abstract: An implementation method of the isolated word speech recognition with feature extraction based on the linear prediction cepstrum (LPCC) is elaborated by the analysis of the relevant principles of two important parts (the endpoint detection and LPCC) of the feature extraction module. The software modeling of the system which is described by the method is carried out. A specific improvement program to improve the recognition rate is given through the analysis. carried on the confirmation for the relevant method and conclusion are demonstrated with Matlab software. The demonstration shows that the method can raise the recognition rate indeed based on the traditional method, and has the characteristics of high-speed recognition, good practicability and hardware portability. The direction of the future implementation and improvement in some key links is discussed for the method.Keywords: phonetic recognization; feature extraction; LPCC; Matlab

收稿日期:2010-03-30

语音识别是机器通过识别和理解过程把语音信号转变为相应的文本文件或命令的技术,而特征提取阶段是其至关重要的一步。特征参数值选取的适当与否,提取时筛选的合适与否,直接影响识别正确率的高低。此阶段主要包括2个方面:端点检测和特征参数提取。

1 端点检测

在语音识别系统中,语音信号是由语音、静音和背景噪音混合而成的,在其中提取语音,准确地确定语音的起始点被称之为端点检测。端点检测的作用有以下父霆方面[1]:检测每帧信号是语音,还是背景噪声;减少识别器的数据处理量;许多噪声中的语音识别算法需要估计噪声的频谱特性。

当前方法中实用且普遍的应属双门限检测。双门限端点检测法是在短时能量检测方法的基础上,加上短时平均过零率,利用两者作为特征来进行检测。首先为短时能量和过零率分别确定2个门限:一个是较低的门限,数值较小,对信号的变化比较敏感,很容易超过;┝硪桓霆是比较高的门限,数值较大。低门限被超过未必是语音的开始,有可能是很短的噪声引起的,高门限被超过,并且接下来的时间段内语音超过低门限,意味着信号开始[2-3]。

本文所采用的方法是该方法的简易化,先算出背景噪声能量与过零率的统计特性,确定能量高低门限、短时过零率门限,分别利用能量门限和过零率门限来提取出语音信息段,然后将两者所筛选出的语段整合作为选择出的语音段。该方法虽然简单,但对于基于本实验中较高信噪比的前提假设,仍能达到满意效果。

2 特征参数提取算法

当前,最常用的2种特征参数是线性预测倒谱系数(LPCC)和Mel倒谱系数(MFCC)。研究结果表明,这2种方法对语音识别的性能而有所提高[4]。其中,最常用的方法之一是线性预测分析(LPC)法,这是因为它有效地解决了短时平稳信号的模型化问题[5],可把语音信号看成是由全极点模型产生的;能很好地逼近共振峰,提供谱估计;提供的语音信号模型参数简洁而准确,计算量较小,便于实时处理;可用于低频率传输的环境。

2.1 线性预测分析原理[6-7]

线性预测分析的基本模型是建立在语音产生的数字模型基础之上的。其基本原理在此不再赘述。最终在最小均方误差意义上计算一组最佳预测系数,定义短时预测均方误差为:

En=∑ne2(n)=∑n[S(n)-∑Pi=1aiS(n-i)]2(1)

经过一系列数学推导可得:

∑pi=1aiφ(k,i)=φ(k,0),k=1,2,…,p(2)

求解式(2)就可得到线性预测系数估值1,2,…,p及最小预测均方误差n。

2.2 线性预测分析的求解方法

欲解式(2),首先必须计算Е(k,i)。其中φ(k,i)定义为φ(k,i)=∑nx(n-k)x(n-i),这是一个模糊的定义,式中n的求和范围没有具体化。因此,当采用不同计算方法时,会存在不同的解法。最经典的2种解法为:自相关法和协方差法。在这2种方法中,其方程组系数矩阵[φ(k,i)]都具有特殊的性质,可用高效的方法来计算方程组的解。

本文采用自相关法[6-7]:定义n的求和范围是┮恢知较直接的方法,认为语音段外的数据为零,只计算范围n以内(0≤ n ≤N)的语音数据,这相当于将语音加窗后再进行处理。此时,φ(k,i)Э杀硎疚:

φ(k,i)=∑N-1+pn=0xω(n-k)xω(n-i)(3)

式中:k=1,2,…,p;i=0,1,2,…,p;x│ (n)为加窗后的语音数据。由于假定窗外的语音数据为零,显然存在着误差。加窗后的自相关函数可以表示为:

Rn(k)=∑n+N-k-1n=0xω(m)xω(m+k)(4)

式中:Rn(k)为短时自相关函数,且Rn(k-i)仅与(k,i)的相对值有关。因此,φ(k,i)Э杀硎疚:

φ(k,i)=Rn(k-i)=Rn(|k-i|)(5)

于是式(2)转化为自相关方程组,将其转换成矩阵形式:

Rn(0)Rn(1)…Rn(p-1)

Rn(1)Rn(0)…Rn(p-2)

Rn(2)Rn(1)…Rn(p-3)

螃 鳓

Rn(p-1)Rn(p-2)…Rn(0)1

2

3

p=Rn(1)

Rn(2)

Rn(3)

Rn(p)(6)

式(6)为Yule-walker方程,其系数矩阵被称为托布里兹(toeplitz)矩阵。对于这种方程组可用特殊的递推算法来求解。其指导思想为:第i阶方程组的解可以用第i-1阶方程组的解来表示;第i-1阶方程组的解又可以用第i-2阶方程组的解来表示,依此类推。因此只要解出一阶方程的解,就可以通过逐步递推来解出任意方程组的解。

2.3 LPCC线性预测倒谱分析

LPCC参数是线性预测系数在倒谱域中的表示。标准的倒谱系数计算流程运算比较复杂。在实际计算中,基于LPC分析的倒谱,在获得线性预测系数后,可以利用预测系数an及其复倒谱系数C(n)У牡萃乒叵道醇蚧计算,或由LPC得到[7]:

CLPCC(n)=CLPC(n)+∑n-1k=1n-knCLPCC(n-k)CLPC(k)(7)

式中:C(n)为倒谱系数;an为预测系数;n为倒谱系数阶数(n为l~p);p为预测系数的阶数。

2.4 改进方案

2.4.1 提高阶次

由分析可知,对语音信号进行线性预测分析的基本思想是:一个语音的采样能够用过去若干个语音采样的线性组合来逼近。为使模型能够很好地符合语音产生的模型,需要考虑如下2个因素:模型阶数p的选择。阶数p应与共振峰的个数相吻合,通常一对极点对应一个共振峰。因此当共振峰数为5时,应取10。此外,当语音为鼻音和摩擦音时,声道传递函数并不符合全极点模型的假定,而是一个既有极点又有零点的模型。但由于可以用多个极点来近似一个零点,所以仍然可以采用全极点模型的假定,但要求有足够高的阶数。通过预加重对高频部分的提升。

2.4.2 还原解法自身相关性

由分析知,对LPC使用自相关法,不仅计算方便简单,容易实现,而且能满足求解方程组的要求。但是从解法自身不难发现,由于其需要加窗截取才能进行计算,而分帧这一操作又破坏了其本身所依赖的相关性,所以经仿真证明,其效果并不理想,而且受噪音的影响较大。经过反复试验证明,在实际应用中,当N和p相当接近时,自相关法的误差较大。所以人为地使N>>p,这时自相关法不但可以克服其误差大的缺点,得到较好的识别率,而且具有高效递推算法的优势也非常明显了。

所以在传统的LPCC识别方法上,可以进行如下改进:一般传统的LPCC方法经过最初的分帧,断点检测等一系列操作直接进行特征提取,而在本文仿真中虽在端点检测之前对原始的语音信号进行了分帧加窗的处理,但此处理仅仅是为了提高端点检测和整体语音识别的正确率所加的处理过程。当进行LPCC特征参数提取时,本文将经过端点检测后确定的语音段的各帧还原为原始的连续语音序列向量后,再进行特征提取。这样大大提高了识别的正确率。

3 软件建模结果及分析

本文讨论的是孤立词、小词汇量识别。按照识别原理模型,设计的整体结构框架如图1所示。

图1 语音识别总体结构框架设计图

在试验中,在建立模板库时,选取了8条英语语句,进行模板训练。本文基于Matlab R2007a的环境,下面对仿真主要模块及代码进行简介:

(1) 语音输入与输出实现。在此采用软件编写函数直接输入的方式,其实现代码如下[8]:

y = wavrecord(n*fs, fs, type);%录语音

wavplay(y);%播放指令

其中:n为录音时间长度;fs为设定的采样频率;type为所指定的采样精度。

(2) 语音段检测。语音段检测在本文实验中包括2部分:一是对输入的语音采样序列进行分帧加窗,进行初步的分割便于以后处理操作;二是对分帧处理后的语音序列进行端点检测,截取出有效语音段,为减少计算量,提高识别率服务。

① 语音的分帧、加窗处理。在Matlab环境下对信号进行分帧处理,可以使用voice box工具箱中的enframe函数:

y=enframe(x,FrameLen,Framelnc)

其中:x为原始信号;FrameLen为指定帧长;Framelnc为指定帧移;y为分帧后形成的二维数组。本文使用哈明窗,窗宽设定为256,帧移设定为80。

② 端点检测。采用双门限算法,在开始进行端点检测之前。其中,门限的确定是通过对相应环境下的无语音噪声进行与语音段相同的采集处理,计算其每帧的能量与过零率,根据经验公式[9],计算出高门限Hig,低门限Low和过零率门限ZT。其相关实现代码如下:

i1=min (0.03*(max (b)-min (b)) +c, 4*c);

i2=5*i1;Low=i1;Hig=i2;

整合满足2种门限的语音采样序列,从而实现门限检测功能。对语音样本进行端点检测后的仿真图像如图2所示。图2(a)是原始信号波形图,图2(b),(c)分别为筛选后的各帧短时能量和短时过零率图。这便排除掉那些不必要的语音段,减少运算量,使识别更加准确、可靠,也缩短了运行时间。

图2 语音样本端点检测图

③ 特征参数提取。基于LPCC方法对所提及的3种方式分别进行了仿真对比:

传统方式 直接进行特征提取及以后操作。

提高阶次 分别将p值设定为8,10,12,14进行对比。

还原方法 虽在端点检测之前对原始的语音信号进行了分帧加窗处理,当进行LPCC特征参数提取时,将经过端点检测后确定的语音段的各帧还原为原始的连续语音序列向量后,再按照前文所述特征提取算法进行特征提取。

3种方式均可根据式(7)计算LPCC系数。

④ 模式匹配及模板训练。采用DTW算法的模式匹配过程。DTW是孤立词识别系统的主流识别方法。从目前来看基于动态时间归整匹配的DTW算法,可能是一个最为小巧的语音识别算法,系统开销小,识别速度快,在小词汇量的语音命令控制系统中是一个非常有效的算法[10]。

对每一帧语音信号提取LPCC特征参数以后,便得到一组LPCC特征向量。语音识别是将测试语音的特征向量同模板库中的语音特征向量进行模式匹配,寻找最短距离模式作为识别结果。设测试语音特征矢量序列为T={t1,t2,…,tN},参考模板特征矢量序列为R={r1,r2,…,rM}。它们之间的相似度用它们之间的距离D[T,R]来度量,距离越小,相似度越高。DTW就是要寻找一个时间规整函数m=W(n),它将测试矢量的时间轴n非线性地映射到模板的时间轴m上,使w满足[11]:

D=minw(n)∑Ln=1d{Q(n),M[w(n)]} (8)

⑤ 结果对比如下:

提高阶次 LPC阶数对识别率的影响见表1。可见,当阶次到达一定值时,提高阶次,不但识别率提高不明显,而且可影响识别率,如表1所示。

表1 不同阶次的识别率比较

p阶数识别率/%p阶数识别率/%

8阶84.212阶90.9

10阶92.114阶80.6

还原法 经过反复试验总结验证,传统检测方式的识别率为70.6%,而本设计的语音识别程序其识别率能到达92.1%左右,且速度较快。这表明当N和p相当接近时,人为地使N>>p,这时自相关法不但克服其误差大的缺点,得到较好的识别率,而且其高效递推算法的优势就非常明显了。

4 结 语

依据小码本孤立词的语音识别系统模型完成了对LPCC 算法的基本原理仿真验证,并对传统方法给予了改进讨论,验证其有效性,同时为应用系统的硬件实现提供了一定的参考价值。

在设计中,随着对数字信号处理及语音音频处理技术等方面的深入研究不难发现,语音识别的实现有许多选择可作为以后的改进:一是端点检测方面,除本文选择的方法外,还有一些新的方法也能取得较好的识别效果,如:语音的短时能频值;二是特征参数提取方法还有一种比较成熟的算法,如MFCC算法;三是匹配算法,时下比较流行的匹配算法还有隐马尔可夫模型(HMM)和人工神经网络(ANN);四是应用方面随着数字信号处理技术、嵌入式技术、集成电路的迅速发展,将语音识别技术应用到硬件上是必然趋势,也是推动语音识别技术全面走进人类生活的基础。将语音识别更为高效地与硬件结合,将是长期发展的方向。

参考文献

[1]王志强.孤立词语音识别系统关键问题的研究[D].北京:北京邮电大学,2006.

[2]GERVEN S, XIE FEI. A comparative study of speech detection method[C]. EUROSPEECH, Greece, 1997:1015-1020.

[3]夏敏磊.语音端点技术研究[D].江苏:浙江大学,2005.

[4]GU H,TSENG C,LEE L. Isolated-utterance speech recognition using hidden markov models with bounded states durations[J]. IEEE Transaction onSP,l991,39(8):1743-1752.

[5]肖江南.汉语孤立词识别系统开发与研究[D].桂林:广西师范大学,2004.

[6]易出克,田斌,付强.语音信号处理[M].北京:国防工业出版社,2003.

[7]韩纪庆,张磊,郑铁然.语音信号处理[M].北京:清华大学出版社,2004.

[8]韩利竹,王华.Matlab 电子仿真与应用[M].北京:国防工业出版社,2007.

[9]胡光锐.语音处理与识别[M].上海:上海科学技术文献出版社,1994.

[10]SILVERMAN H F, PMORGAN D. The application of dynamic programming to connected speech recognition[J]. IEEE Assp Mag., 1990,17(7): 6-25.

[11]赵力.语音信号处理[M].北京:机械工业出版社,2009.

上一篇:基于XML结构的C语言考试的自动评分系统 下一篇:基于小波分频与直方图均衡的图像增强算法