隐马尔可夫模型基本概念(1)
最近抽空学习下Kaldi下语音识别系统,参考西工大谢磊老师硕士论文与其他博客对Kaldi下语音识别算法进行学习研究。隐马尔科夫模型(Hidden Markov Model,HMM)本质上是一种统计模型,将HMM应用与语音识别解决三大问题,后续奉上理论推导(本人前期博客手推过一个版本)。一、HMM定义1.1 状态定义研究HMM首先得知道其定义并能对其定义进行准确的描述,...
最近抽空学习下Kaldi下语音识别系统,参考西工大谢磊老师硕士论文与其他博客对Kaldi下语音识别算法进行学习研究。
隐马尔科夫模型(Hidden Markov Model,HMM)本质上是一种统计模型,将HMM应用与语音识别解决三大问题,后续奉上理论推导(本人前期博客手推过一个版本)。
一、HMM定义
1.1 状态定义
研究HMM首先得知道其定义并能对其定义进行准确的描述,李航所著《统计学习方法》更偏向于HMM的广泛应用,对于学习ASR有一定的作用,余栋《语音识别实战》感觉对于HMM描述还是太大,笔者更推荐谢磊老师的硕士论文,其中对于HMM描述更为贴近语音,其具体定义如下:
不知读者对于上述公式理解如何,上式对HMM的定义更加贴合于基于HMM构建的语音识别系统,本人对上式理解如下:
(1)HMM可以有一阶、二阶甚至多阶,ASR中常用即为一阶;
(2)上式对HMM的状态描述非常到位,以单音素为例,一个HMM即对一个音素进行建模,状态是音素更细化表示(ASR常用三状态),其可对音素进行更细化的描述、建模,故以状态建模更具有合理性和优越性;
(3)目前端到端(E2E)语音识别系统很少使用状态建模,大多在音素、音节以及字等建模,其建模单元相较于状态过于粗糙,故E2E系统在建模单元选择上比HMM系统存在不足;
(4)必须指出的是:HMM模型具有无后效性,即当前状态仅与之前状态有关(HMM阶数决定)。
1.2 转移概率定义
HMM中转移概率如下定义:
很多博客均阐述过HMM中转移概率的变化对于ASR最后的识别效果影响不大,但是笔者对比存在不一样的看法:熟知Kaldi的朋友应该了解过,kaldi中计算转移概率采用一种“软”计算的方法,即假设当前状态在对其后对应10帧语音,则状态自转概率则为0.9,转到下一时刻概率则为0.1。
笔者认为上述做法一定程度上可以简化转移概率计算过程,且语音解码速度均很快,但从具体识别率上将,本人认为还是有失妥当的,应该采用前向-后向算法对状态转移概率与发射概率进行计算,即“硬”计算状态转移概率,个人认为ASR中采用上述计算方式更为妥当、合理。
1.3 发射概率定义
HMM中发射概率及双重随机过程如下定义:
对应的HMM结构图如下所示:
综上所述:
(1)一个HMM包含若干个状态、状态转移概率以及发射概率;
(2)HMM是双重随机过程,即隐藏序列与观测序列。ASR中观测序列即为语音特征序列,隐藏序列即为状态序列,其对应语音建模单元(ASR中采用音素作为建模单元,一个音素用一个HMM对其建模,一个HMM中包含若干个状态)。
1.4 HMM中参数定义
基于上述,一个HMM应包含以下参数:
对上述参数笔者个人见解如下:
(1)HMM中隐状态数目为什么与可见状态数目不一致?在ASR中,单音素训练阶段,其尚未对状态进行聚类操作,故在该阶段隐藏状态数目应与可见状态数目一致;但三音素训练阶段,为了防止建模状态数目过多,采用一系列状态聚类操作(后续介绍),因此,HMM中隐藏状态与可见状态数目不一致;
(2)观测序列长度即为提取的语音特征序列,后续博客对语音识别中对其操作进行理论推导与讲解。
1.5 HMM展开过程
定义了一个HMM的状态数目、转移概率、发射概率以及初始概率参数,下面则将多个HMM进行链式合并,其合并过程如下:
上面五个步骤展示了由一个HMM合并为一个HMM状态链过程,即为识别语音识别序列的过程,至此,一个HMM可以表示为:
至此,HMM后续将对HMM中三个问题进行计算推导。
更多推荐
所有评论(0)