本文简明讲述GMM-HMM在语音识别上的原理,建模和测试过程。
1. 什么是Hidden Markov Model?
HMM要解决的三个问题:
1) Likelihood
2) Decoding
3) Training
2. GMM是什么?怎样用GMM求某一音素(phoneme)的概率?
3. GMM+HMM大法解决语音识别
3.1 识别
3.2 训练
3.2.1 Training the params of GMM
3.2.2 Training the params of HMM
====================================================================
1. 什么是Hidden Markov Model?
ANS:一个有隐节点(unobservable)和可见节点(visible)的马尔科夫过程(见详解)。
隐节点表示状态,可见节点表示我们听到的语音或者看到的时序信号。
最开始时,我们指定这个HMM的结构,训练HMM模型时:给定n个时序信号y1...yT(训练样本), 用MLE(typically implemented in EM) 估计参数:
1. N个状态的初始概率
2. 状态转移概率a
3. 输出概率b
--------------
在语音处理中,一个word由若干phoneme(音素)组成;
每个HMM对应于一个word或者音素(phoneme)
一个word表示成若干states,每个state表示为一个音素
用HMM需要解决3个问题:
1) Likelihood: 一个HMM生成一串observaTIon序列x的概率< the Forward algorithm>
其中,αt(sj)表示HMM在时刻t处于状态j,且observaTIon = {x1,。。.,xt}的概率
,
aij是状态i到状态j的转移概率,
bj(xt)表示在状态j的时候生成xt的概率,
2)Decoding: 给定一串observaTIon序列x,找出最可能从属的HMM状态序列< the Viterbi algorithm>
在实际计算中会做剪枝,不是计算每个可能state序列的probability,而是用Viterbi approximaTIon:
从时刻1:t,只记录转移概率最大的state和概率。
记Vt(si)为从时刻t-1的所有状态转移到时刻t时状态为j的最大概率:
记为:从时刻t-1的哪个状态转移到时刻t时状态为j的概率最大;
进行Viterbi approximation过程如下:
然后根据记录的最可能转移状态序列进行回溯:
3)Training: 给定一个observation序列x,训练出HMM参数λ = {aij, bij} the EM (Forward-Backward) algorithm
这部分我们放到“3. GMM+HMM大法解决语音识别”中和GMM的training一起讲
---------------------------------------------------------------------
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)