以kaldi中的yesno为例谈谈transition

举报
可爱又积极 发表于 2021/09/07 14:35:48 2021/09/07
【摘要】 在基于GMM-HMM的传统语音识别里,比音素(phone)更小的单位是状态(state)。一般每个音素由三个状态组成,特殊的是静音(SIL)由五个状态组成。这里所说的状态就是指HMM里的隐藏的状态,而每帧数据就是指HMM里的观测值。每个状态可以用一个GMM模型表示(这个GMM模型的参数是通过训练得到的)。在识别时把每帧数据对应的特征值放进每个状态的GMM里算概率,概率最大的那个就是这帧对应的...

在基于GMM-HMM的传统语音识别里,比音素(phone)更小的单位是状态(state)。一般每个音素由三个状态组成,特殊的是静音(SIL)由五个状态组成。这里所说的状态就是指HMM里的隐藏的状态,而每帧数据就是指HMM里的观测值。每个状态可以用一个GMM模型表示(这个GMM模型的参数是通过训练得到的)。在识别时把每帧数据对应的特征值放进每个状态的GMM里算概率,概率最大的那个就是这帧对应的状态。再从状态得到音素(HMM负责),从音素得到词(字典模型负责),从词得到句子(语言模型负责),最终完成识别。可以从一个状态转到另一个状态,即状态之间存在转移(transition)。Transitionkaldi里一个非常重要的概念,相关的有transition-statetransition-indextransition-id等,初一看云里雾里不太好理解,其实它们都是根据topo图(/s5/data/lang/topo)得到的。今天就基于yesno的例子对它们做一个讲解。

先看yesno中的topo图(见下图),它有三个音素:SILyesno (yesno均作为一个音素处理)id 分别为123. SIL5个状态,id0—4 5为结束态。yes/no分别有三个状态,id0—2 3为结束态

SIL中状态0—3 分别有4条状态转移路径(或者叫转移弧),以状态0为例,可以自环(self-loop)到0,也可以转移到1或者2或者3. 状态42条状态转移路径,可以自环(self-loop)到4,也可以转移到结束态5. Yes/no中状态0—1均有2条状态转移路径。所以这个topo图中共有30条(4*4+2SIL+ 3*2yes+3*2no= 30)状态转移路径。


再来看transition中相关的几个概念:

Phone:音素,前文已提过,id是从1开始的整数。在yesno中共三个音素(SILyesno),id分别为123

HMM-stateHMM里隐藏的状态。每个音素的HMM-state都是从0开始的整数。在yesnoSILHMM-state分别为01234yes/noHMM-state分别为012

pdf-id:每个state相对应的GMM概率密度函数(pdf: probability density function)的id这个值是全局唯一从0开始的整数。pdf-id分为forward-pdf-idself-loop-pdf-id两种,值一样,即pdf-id = forward-pdf-id = self-loop-pdf-id。在yesnoSIL5个状态,pdf-id分别为012345yes3个状态,pdf-id分别为567no3个状态,pdf-id分别为8910

transition-state:表示一个转移状态,用(phoneHMM-stateforward-pdf-id self-loop-pdf-id)表示。这个概念相对抽象些。

transition-index:表示一个状态的转移路径的index,在每个状态内从0开始的整数。在yesnoSIL的状态04个转移路径,其transition-index分别为0123。其他状态类似。

transition-id: 所有状态转移路径的id,全局唯一从1开始的整数,跟(transition-state transition-index)一一对应。在yesnoSIL的状态04个转移路径,其transition-id分别为1234SIL的状态14个转移路径,其transition-id分别为5678SIL的状态24个转移路径,其transition-id分别为9101112SIL的状态34个转移路径,其transition-id分别为13141516SIL的状态42个转移路径,其transition-id分别为1718yes的状态02个转移路径,其transition-id分别为1920yes的状态12个转移路径,其transition-id分别为2122yes的状态22个转移路径,其transition-id分别为2324no的状态02个转移路径,其transition-id分别为2526no的状态12个转移路径,其transition-id分别为2728no的状202个转移路径,其transition-id分别为2930,所以yesnotransition-id范围是1—30.

下表列出了yesno中这些变量的具体值,它们会被存起来,有一一对应的关系,知道一个值后就可以知道相对应的其他值。比如常用的通过transition-id得到pdf-id

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。