汉语数码语音识别分析毕业设计第四章_第1页
汉语数码语音识别分析毕业设计第四章_第2页
汉语数码语音识别分析毕业设计第四章_第3页
汉语数码语音识别分析毕业设计第四章_第4页
汉语数码语音识别分析毕业设计第四章_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章 汉语数码串语音分析第四章 汉语数码串语音识别分析§4.1 声学模型4.1.1 语音特征参数采用MFCC参数为语音特征参数,MFCC参数的提取步骤已在第二章中详细给出,这里不再叙述。4.1.2 基于整词模型的上下文无关连续HMM本文的语音模型一共有13个,其中包括11个数字(“1”有 yi 和 yao 两种念法),一个静音模型和一个词间暂停模型。隐含马尔科夫模型(Hidden Markov Model,HMM)是语音识别中描述语音的最常用的模型,大部分的语音识别系统都是基于HMM的。 因此本文也采用HMM描述语音。根据描述的语音单位的大小,HMM可分为:² 基于整词模

2、型的HMM(Word based HMM)。其优点为可以很好地描述词内音素协同发音的特点,建模过程也较为简单。因此很多小词汇量语音识别系统均采用整词模型HMM。但在大词汇量语音识别中由于所需建立的模型太多而无法使用。² 基于子词模型的HMM(Sub Word based HMM)。该类HMM描述的语音单位比词小,如英语语音识别中的基本音素,汉语语音识别中的半音节等。其优点为模型总数少,所以在大词汇量语音识别中得到了广泛的应用。其缺点在于其描述词内协同发音的能力劣于整词模型,但由于子词模型已经得到了非常充分的研究,所以近年来在很多小词表应用识别系统中也用了子词模型。本文采用较为简单的整

3、词模型HMM。根据是否考虑上下文的影响,HMM可以分为:² 上下文无关(Context Independent,CI)HMM。CI-HMM不考虑上下文的影响,其优点在于所需建立的模型少,易于获得较多的训练语音,缺点在于没有考虑上下文协同发音的影响,会对识别性能有所影响。² 上下文相关(Context Dependent,CD)HMM。CD-HMM需要考虑上下文的影响,需要建立的模型远多于CI-HMM,因此无法对每一个模型获得足够多的训练语音,需要利用聚类技术(如决策树算法等)合并相近的模型。故CD-HMM的建模37第四章 汉语数码串语音分析需要很大的工作量,但一套训练很好的

4、CD-HMM的识别性能会明显优于CI-HMM。本文采用了CI-HMM。根据输出概率分布的不同,HMM可分为:² 离散HMM(Discrete HMM, DHMM)。其输出概率是基于一套码本的离散概率分布,其优点在于由于实现了存储量和计算量都较小,所需的训练语音也较少,但其矢量量化的过程会造成性能的损失。目前IBM公司的Via Voice系统采用的是DHMM。² 连续HMM(Continuous Density HMM, CDHMM)。其输出概率是连续概率密度函数(一般是高斯混合密度函数)。其所需的训练语音较多,模型参数存储量和计算量都较大,在训练语音足够时,其性能优于DHM

5、M。目前英国剑桥大学和美国Bell实验室的识别系统均基于CDHMM。² 半连续HMM(Semi Continuous HMM, SCHMM)。SCHMM是DHMM和CDHMM的折衷,与DHMM相似,其输出为一套码本,但每个码字均为一个连续概率密度分布函数,这一点与CDHMM相近。其性能和所需的训练语音等均介于DHMM和CDHMM之间。美国Carnegie Mellon大学的著名的SPHINX系统即基于SCHMM。本文采用CDHMM为语音模型。综上所述,本文采用的语音模型为基于整词模型的上下文无关连续HMM,状态输出概率分布为混合高斯密度函数。其各分量计算如式(4.1)所示:1v

6、33;1vvmTm-1vvmùexp bsm(x)=nê-2(x-us)Ss(x-us)ú (4.1)m1/2ëû(2p)2|S|s总的概率输出即为各分量的加权和:Mvv bs(x)=åcsmbsm(x) (4.2) ()m=1vs表示当前状态,M为混合分量数,m、S、c分别为各混合分量的均值矢量、协方差矩阵和混合分量系数。4.1.3 HMM的训练HMM的训练过程包括对模型的初始化和迭代估值的过程:² 初始化。我们直接将训练语音串按状态等分后,获得每个状态所属的语音帧,各高斯分量的参数从该状态所属的语音帧中随机抽出一部分统计

7、获得,38第四章 汉语数码串语音分析各高斯分量的权重系数均设置为相同的数。数码语音的HMM状态数设为7,静音模型和暂停模型的状态数设为1.² 迭代估值。训练HMM常用的方法包括分段k-均值(Segmental k-Means)算法和Baum-Welch算法。两者的区别在于前者仅考虑最优状态路径,而后者考虑所有可能的路径。两个算法的最终识别性能基本没有区别,因此本文采用了Baum-Welch算法实现HMM的训练。4.1.4 段长信息模型由于HMM是一个人为的模型,因此其对语音的描述是有一定缺陷的。其中一个主要的缺陷是HMM对语音段(包括状态和词)持续时间的不合理描述。设某一状态跳回自身

8、的概率为Aii,则其持续时间d的概率分布为:t-1P(d=t)=Aii(1-Aii) (4.3)呈几何分布,随持续时间的上升而单调下降。这与实际是不符合的。图4.1给出了数字”4”的第一个状态的持续时间分布。由图可0.20.15见,该分布与几何分布完全不符合,所以HMM对段长的描述是很不合理的。概率0.10.050157911131517持续时间(帧)HMM对段长的描述的不合理之处在于传统HMM中状态跳转概率与当前状态已持续时间无关。 因此我们可以采用与状态持续时间相关的状态跳转概率,即估计Aii(d=t),其主要过程为:图4.1 数字”4”的第一状态的持续时间分布1. 估计段长的概率分布。目

9、前主要文献中描述段长概率分布可以用g分布,高斯分布或直接的直方图描述。考虑到前两者的概率分布形式均为人为的假设,而存储直方图所需的存储量与输出概率分布参数的存储量相比是很小的。因此本文采用直方图描述。其估计过程只需用Viterbi算法将训练语音完成对各状态的对准,获得各状态和各词的起点和终点以计算语音段的长度,然后统计各状态持续时间的分布即可。39第四章 汉语数码串语音分析2. 在获得段长概率分布后,按式(4.4)计算出持续时间为d的状态跳转概率: ìPi(d=t),若>eïït-1Aii(d=t)=í1-åPi(d=j) (4.4)j=

10、1ïï若<eîe,其中e为一个很小的数,可设为10-20。实验证明考虑段长分布后,识别性能会有明显的提高。§4.2 搜索算法4.2.1 搜索算法的选择由于在识别数字串时,我们不知道每个数字的分界点在什么地方,所以我们需要用搜索算法来获得识别的最佳词串。目前的搜索算法主要可以分为两类,即基于动态规划和基于堆栈译码的搜索算法。后者虽然在理论上可以实现最优搜索,但其实现过程很复杂,而且难以实现帧同步的搜索,对系统的实时性带来了很大的限制,所以在小词表语音识别中,搜索算法基本上都是基于动态规划的。目前常见的在基于动态规划的搜索算法包括:² 分层构

11、筑(Level-Building)算法。该算法是由Bell实验室的Rabiner等人在研究英语数字识别中提出的。该算法的优点是容易纳入串长信息,缺点是不能实现帧同步,而且计算量也较大。² Viterbi译码算法。该算法利用Viterbi译码的过程进行帧同步的搜索,易于实时实现,也容易纳入语法信息。目前的大词汇量语音识别系统基本上都基于该搜索算法,小词表连续语音识别也大都利用了该算法。本文采用Viterbi译码作为系统的搜索算法。4.2.2 搜索网络结构的设置图4.2给出了不定长数字串的搜索网络。其中灰色的节点代表语法节点,即词条的端点,黑色的节点代表声学节点,即词条的各个状态。语法节

12、点的作用为传递前一个声学节点的路径信息,并在路径信息中加入前一个声学节点所40第四章 汉语数码串语音分析属的词条信息,而声学节点的作用是计算输入语音特征矢量与当前状态的匹配分数,并传递路径信息。节点间的箭头表示路径信息的传递途径,值得注意的是从语法节点到语法节点的路径信息是需要立即传送的,其他的路径信息是延迟一帧传送的。以下给出声学节点和语法节点的结构定义:struct ACSNODE / 声学节点结构;struct GRMNODE / 语法节点结构;41 int WordModel; / 本声学节点属于哪一个词条 int StateIndex; / 本声学节点属于哪一个状态 int Pred

13、ecNum; / 前续节点数 int Predeccesor40; / 前续节点标号 BOOL PrdPrpty40; / 前续节点性质(是声学节点还是语法节点) int PrecedNum; / 前续节点数 int Predeccesor40; / 前续节点标号 BOOL PrdPrpty40; / 前续节点性质(是声学节点还是语法节点) 图4.2 不定长数字串搜索网络第四章 汉语数码串语音分析图4.3则给出了定长数字串(串长为N)的搜索网络结构.4.2.3 多候选帧同步搜索算法考虑到在很多实用情况下(如语音拨号电话机可以输出多个候选让用户选择,进行识别结果的拒识时也需要多候选),识别系统需

14、要除最优词串外的多候选词串,因此本文采用多候选帧同步搜索算法获得多个识别词串候选。 首先我们定义基本路径信息结构:struct PathInfo /基本路径信息;由于声学节点和语法节点所需传递的信息的不同,所以我们还需定义声学节点上的路径信息和语法节点上的路径信息:42 图4.3 定长数码串的搜索网络 int WordNum; /本路径已有的词数 int WordSeqMAXSTRINGLEN; /本路径已识别出的词序列 int WordSegMAXSTRINGLEN; /本路径已识别出的词的边界 double AccumScore; /本路径积累的识别分数第四章 汉语数码串语音分析struc

15、t GRMPathInfo /语法节点上的路径信息struct ACSPathInfo / 声学节点上的路径信息;搜索步骤如下:1.1.1根据当前识别任务按图4.2或图4.3设置好节点数据。1.2设置初始路径信息:WordNum=0 double LocalScore; / 本状态匹配分数 int WordDuraNBESTNUM; / 整词持续时间 int StateDuraNBESTNUM; / 当前状态持续时间 PathInfo CurrPathNBESTNUM; / 多候选路径信息(按积累分数递减排列) PathInfo CurrPathNBESTNUM; / 多候选路径信息(按积累分

16、数递减排列) ;ì-1050,其他节点 AccumScore =íî0,第一个语法节点WordDurai=0,i=0,1,K,NBESTNUM-1i=0,i=0,1,K,NBESTNUM-1 StateDura2. v设输入语音特征矢量序列为xtt=1,2,K,T,其中T为总的帧数。对于每一帧输入语音,我们分别对声学节点和语法节点作Viterbi搜索:2.1声学节点2.1.1 设置节拍i = 0。2.1.2 对于节点i,设置节拍m0。2.1.3对于节点i的前续节点k = Predeccesorm,设置节拍j = 043第四章 汉语数码串语音分析2.1.4对节点k中

17、的第j选路径的累积分数加上其与状态持续时间相关的跳转概率:' AccumScore=AccumScore+log(A(StateDuraj)2.1.5将路径j与节点i的 CurrPath中已插入的路径相比较:(a) 若与某条路径p相同(即路径的词条序列相同),则比较两条路径积累分数的大小,若路径j分数大于路径p,则将路径p删除,将路径j按分数大小插入CurrPath,否则放弃插入。(b) 若与所有路径都不同,则按分数大小插入CurrPath。(c) 插入路径时,修改状态持续时间和词持续时间。若前续节点不是本节点,则状态持续时间重设为1,否则状态持续时间加1;词持续时间加1。2.1.6

18、若j<NBESTNUM-1, j+, 跳回2.1.4。2.1.7 若m< PredecNum-1,m+,跳回2.1.3。2.1.8 计算本节点与当前语音匹配分数LocalScore,并将其加到各路径积累分数上。2.1.9 若i<总声学节点数-1, i+, 返回2.1.2,否则本帧循环结束。2.2 语法节点2.2.1 初始化语法节点对于各语法节点WordNum=0=-1050 AccumScorej=false, j = 0, 1, 2, , 语法节点数-1 并设置标志位 GNodeFlag2.2.2利用树的遍历算法更新各语法节点,设置节拍j = 0。2.2.3 若GnodeFlagj = true,跳至2.2.9,否则执行2.2.4。2.2.4 对于节点j,设置节拍k = 0。2.2.5 若节点j的前续节点p = Predeccesork为声学节点,则先对于声学节点p的各路径将词间跳转概率加入路径累积分数:AccumScoreq=AccumScoreq+log(A(WordDuraq), q = 0,1, ., NBE

温馨提示

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

评论

0/150

提交评论