HMM孤立词识别简单介绍.doc_第1页
HMM孤立词识别简单介绍.doc_第2页
HMM孤立词识别简单介绍.doc_第3页
HMM孤立词识别简单介绍.doc_第4页
HMM孤立词识别简单介绍.doc_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于HMM的孤立词语音识别系统及HTK实验的简单介绍刘振智深圳大学 信息工程学院电子信息工程专业 广东 深圳 508060摘要:隐马尔可夫模型作为语音信号的一种统计模型,在语音处理各个领域中获得了广泛的应用。本文主要介绍HMM的基本理论和基本思想,以及简单介绍HMM在孤立词语音识别系统中的应用等。关键词:隐马尔可夫模型;孤立词识别;语音识别0 引言语音识别是机器通过识别和理解过程把人来的语音信号转变为相应的文本或命令的技术。其根本目的是研究出一种具有听觉功能的机器,这种机器能直接接受人的语言,理解人的意图,并做出相应的反应。从技术上看,它属于多维模式识别和智能接口的范畴。语音识别技术是一项集声学、语音学、计算机、信息处理、人工智能等于一身的综合技术,可广泛应用在信息处理、通信与电子系统、自动控制等领域。就语音识别而言,可以按词汇量大小、发音方式、说话人和语音识别方法等方法分类。按词汇量大小分,可分为小词汇量、中词汇量和大词汇量;按发音方式分,语音识别可以分为孤立词识别、连接词识别、连续语音识别以及关键词检出等;按说话人分,可分为特定说话人和非特定说话人两种;从语音识别的方法分,有模板匹配法、随机模型法和概率语法分析法。语音识别中,最简单的是特定人、小词汇量、孤立词的语音识别,最复杂最难解决的是非特定人、大词汇量、连续语音识别。无论是哪一种语音识别,当今采用的主流算法仍然是隐马尔科模型方法(HMM方法)。本论文主要简述基于HMM的孤立词语音识别系统以及HTK实验过程。1 孤立词语音识别系统语音识别系统本质上是一种模式识别系统,它的基本框图如下图所示。语音识别的原理框图在孤立词识别中,机器只是识别一个个孤立的音节、词或短语等,并给出具体识别结果。虽然孤立词语音识别的应用范围有限,并且研究策略会受到人的主动合作因素的影响,但对它进行研究能涉及到语音识别模式的最本质的问题,而且还是研究更复杂的连续语音识别问题的基础。2 隐马尔科夫模型2.1 基本概念。隐马尔可夫模型是马尔可夫链的一种,它的状态不能直接观察到,但能通过观测向量序列观察到,每个观测向量都是通过某些概率密度分布表现为各种状态,每一个观测向量是由一个具有相应概率密度分布的状态序列产生。所以,隐马尔可夫模型是一个双重随机过程-具有一定状态数的隐马尔可夫链和显示随机函数集。隐马尔可夫模型(HMM)可以用五个元素来描述,包括2个状态集合和3个概率矩阵:1. 隐含状态 S这些状态之间满足马尔可夫性质,是马尔可夫模型中实际所隐含的状态。这些状态通常无法通过直接观测而得到。(例如S1、S2、S3等等)2. 可观测状态 O在模型中与隐含状态相关联,可通过直接观测而得到。(例如O1、O2、O3等等,可观测状态的数目不一定要和隐含状态的数目一致。)3. 初始状态概率矩阵 表示隐含状态在初始时刻t=1的概率矩阵,(例如t=1时,P(S1)=p1、P(S2)=P3、P(S3)=p3,则初始状态概率矩阵 = p1 p2 p3 .4. 隐含状态转移概率矩阵 A。描述了HMM模型中各个状态之间的转移概率。其中aij = P( Sj | Si ),1i,jN.表示在 t 时刻、状态为 Si 的条件下,在 t+1 时刻状态是 Sj 的概率。5. 观测状态转移概率矩阵 B。令N代表隐含状态数目,M代表可观测状态数目,则:bjk = P( Ok| Sj ), 1iM,1jN.表示在 t 时刻、隐含状态是 Sj 条件下,观察状态为 Ok 的概率。总结:一般的,可以用=(A,B,)三元组来简洁的表示一个隐马尔可夫模型。隐马尔可夫模型实际上是标准马尔可夫模型的扩展,添加了可观测状态集合和这些状态与隐含状态之间的概率关系2.2 HMM基本算法2.1.1 前向-后向算法前向算法定义前向变量为:t(i) = P(o1,o2,ot,qt=i|)初始化:对1=i=N,有1(i) = ibi(o1)递推:对1=t=T-1,1=j=N,有t+1(i) =t(i)aijbj(ot+1)终止:P(O|)= T(i)后向算法定义后向变量为:t(i)=P(ot+1,ot+2,oT|qt=I,)初始化:对1=i=N,有T(i)=1递推:对t=T-1,T-2,1,1=i=N,有t(i)= aijbj(ot+1)t+1(j)终止:P(O|)= 1(i)2.2.2 Viterbi算法这个算法解决给定一个观察值序列O=o1,o2,oT和一个模型=(,A,B),如何确定一个最佳状态序列Q*=q1*,q2*,qT*的问题。定义t(i)为时刻t时沿一条路径q1,q2,qt,且qt=i,产生出o1,o2,oT的最大概率,即有t(i)=max P(q1,q2,qt,且qt=i,o1,o2,ot|)那么,求取最佳状态序列Q*的过程为初始化:对1=i=N,有1(i)= ibi(o1)1(i)=0递推:对2=t=T,1=j=N,有t(j)=max t-1(i)aijbj(ot)t (i)=arg maxt-1(i) aij终止:P*= max T(i)qt*=arg maxT(i)路径回溯,确定最佳状态序列:qt*=t(qt+1*),t=T-1,T-2,12.2.3 Baum-Welch算法这个算法用于解决HMM训练问题,即HMM参数估计问题。可描述为:给定一个观察值序列O=o1,o2,oT,确定一个=(,A,B),使P(O|)最大。根据上面定义的前向变量和后向变量,有P(O|)= t(i)aijbj(ot+1)t+1(j),1=t P(O|),即由重估公式得到的比在表示观察值序列O方面要好,那么重复这个过程,逐步改进模型参数,直到P(O|)收敛,即不再明显增大,此时的即为所求值模型。3 基于HMM的孤立词识别系统3.1 HMM语音识别工作过程3.1.1 工作过程假设产生一个单词时,状态转移与输出可图(1)表示。图中表示时间是从左到右进行得,并且假定每一个状态都各有不同的输出。由于输出是不确知的,任何一个具体输出与任何一个具体状态之间不存在一一对应的关系。并不能确切知道是由哪一个过程得到的输出,图(2)把各种可能性都表示出来,格形中的每一条路径都是模型的可能路径。图(1) HMM工作过程HMM工作路径示意图3.1.2 基本思想假设每个孤立词Wi,都对应一个语音观察序列O=O1,O2,.,OTT,那么孤立词语音识别的问题可以理解为在已知O的条件下,寻找最可能与之匹配的Wi,计算: arg maxP(Wi|O),由于概率P(Wi|O)不能直接计算,必须利用贝叶斯公式对它进行转换,找到等价的可以计算的概率,即:P(Wi|O)=P(O|Wi)*P(Wi) / P(O)对于孤立词语音识别问题来说,概率P(Wi)和P(O)都容易事先指定,于是最可能匹配的词就由等价概率P(O|Wi)的大小决定。如果假设孤立词Wi,对应的HMM模型为i,则: P(O|Wi)=P(O|i),因此求解最佳匹配单词的问题就转化为:arg maxP(Wi|O)=arg maxP(O|Wi)=arg maxP(O|i)对于一个给定的状态序列Q=(q1,q2,qt),观察矢量O出现的概率为:P(O,Q|i)= q1bqt(Ot)aqtqt+1由于直接计算上式计算量非常大,一般通过前向概率和后向概率来间接求得所要结果。3.2 HMM模型训练算法HMM模型训练是一个参数重估问题,给定一个观察序列:O=O1,O2,OTT,经过训练确定一个=(,A,B),使P(O|)最大。HMM模型训练的主要如下:(1)初始化,对HMM模型=(,A,B)各部分参数舒适化,不同的初始模型将产生不同的训练结果。(2)利用训练样本计算向前概率和向后概率以及其他参数。(3)由重估公式得到HMM模型的一组新参数=(,A,B)。(4)计算概率P(O|),如果P(O|)和P(O|)距离太大返回步骤(2),反复迭代运算知道HMM模型参数不再发生明显的变化为止。上述HMM模型参数训练的方法就是Baum-Welch算法,它实际上是极大似然准则的一个应用,采用了一种多次迭代的优化算法,构造一个目标函数Q,其中包含了所有HMM参数作为变量。Q(, )=P(O,S) P(O,S|) / P(O|)其中为原来的模型,为新求取的模型。然后求Q对各变量的偏导数,推导出Q达到极点时新的HMM参数相对于旧的模型参数之间的关系,从而得到HMM各参数的估计。这里不讨论观察矢量是连续值的情况,对于观察矢量是离散值的情形,可用Baum-Welch算法实现。4 实验仿真HTK是英国剑桥大学开发的一套基于C语言的隐马尔科夫模型工具箱,主要应用于语音识别、语音合成的研究,也被用在其他领域,如字符识别和DNA排序等。HTK是重量级的HMM版本。下面利用HTK工具箱实现HMM特定人孤立词语音识别的实验。一个语音识别系统的建设可以分为以下三个过程:系统定义、训练和识别。(1)系统定义1、根据系统应用范围定义词汇库(或者叫字典dictionary),如下格式定义,然后保存名为“dict”的文件。 last s1 nexts2pauses3plays4stops52、生成一个hmmlist文件,里面的每一行是一个HMM 模型的名字:s1s2s3s4s53、准备一个语法规则 gram 文件,该文件规定了这个语音识别的系统所允许的遣词造句形式。由于我们建设的是一个孤立词的系统,也就是说我们只允许说前面所述的dict 文件里定义的词汇中的一个或若干个,而且每个词汇之间没有什么语义和语法上的限制,可以是这些词汇的任意组合。接下来就要从语法规则文件gram生成一个词汇网络文件wdnet,这个词汇网络文件实际上就是根据gram中规定的语法来具体描述所有的词汇间可能的连接方式。wdnet文件的产生可以用以下命令:HParse gram wdnet4、 一个HMM模型的初始化文件HMMProto,这个附件定义了你所将要训练的HMM的格式。操作截图:(2)HMM模型训练1、数据的采集:根据系统具体要求进行相应的录音.一般来说,每个词汇应该录100个以上。我录了last,next,pause,play,stop五个单词,各为100次,保存在E:asswavbaolast等相应的文件目录下。2、特征提取:将所录的语音文件转换为特征参数文件,供训练建模。首先生成mfcclist.scp文件,这个文件里面的每一行是类似如下的文字:E:asswavbaolastlast_1.wav E:asswavbaolastlast_1.mfcE:asswavbaolastlast_2.wav E:asswavbaolastlast_2.mfc上面每行的第1列就是你所录的语音文件的名称,第2列就是你将要存储的相应的MFCC特征文件的名称。然后你可以进行特征提取了,用如下命令HCopy -C mfcconfig -S mfcclist.scp3、准备一个包含了所有用于训练的MFCC文件名的脚本文件trainlist.scp文件,里面放了所有的用于训练的MFCC特征文件,例如:E:asswavbaolastlast_1.mfcE:asswavbaolastlast_2.mfc4、准备一个与trainlist.scp相应的标注文件trainlist.mlf,例如:#!MLF!# E:asswavbaolastlast_1.labs1s1. E:asswavbaolastlast_2.labS1S1.其中第一行是必须的,第二行中的E:asswavbaolastlast_1.lab与trainlist.scp中的 E:asswavbaolastlast_1.mfc相对应,接下来20行都是s1表示E:asswavbaolastlast_1.wav这个录音文件中总共说了20次的last(其对应的HMM模型名为s1)。5、准备为好上述文件后,你就可以运行如下命令进行训练了 hmm_training trainlist.scp trainlist.mlf hmmlist HMMProto根据你训练数据的大小以及计算机的性能,训练时间可能需要几分钟甚至几十分钟(实际上,在大规模的语音识别系统中,经常需要许多高性能的计算机并行运算几十个小时甚至几天作训练)。程序运行结束后,在你的目录下应该生成了一个HMM文件 HMM_words。训练截图:(3) 识别1、首先同样录一段语音,里面说的是你所定义的词汇中的一个或若干个的任意组合、任意次序。2、特征提取。录一段语音,文件名为 test.wav,运行如下命令进行MFCC特征提取。HCopy -C mfcconfig test.wav test.mfc3、识别:运行如下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论