本文简明讲述GMM-HMM在语音识别上的原理,建模和测试过程。这篇blog只回答三个问题:
1. 什么是Hidden Markov Model?
2. GMM是神马?怎样用GMM求某一音素(phoneme)的概率?
3. GMM+HMM大法解决语音识别
首先声明我是做视觉的不是做语音的,迫于**需要24小时速成语音。上网查GMM-HMM资料中文几乎为零,英文也大多是paper。苦苦追寻终于貌似搞懂了GMM-HMM,本文结合最简明的概括还有自己一些理解应运而生,如有错误望批评指正。
====================================================================
1. 什么是Hidden Markov Model?
ANS:一个有隐节点(unobservable)和可见节点(visible)的马尔科夫过程(见详解)。
隐节点表示状态,可见节点表示我们听到的语音或者看到的时序信号。
最开始时,我们指定这个HMM的结构,训练HMM模型时:给定n个时序信号y1...yT(训练样本), 用MLE(typically implemented in EM) 估计参数:
1. N个状态的初始概率
2. 状态转移概率a
3. 输出概率b
--------------
---------------------------------------------------------------------
2. GMM是神马?怎样用GMM求某一音素(phoneme)的概率?
2.1 简单理解混合高斯模型就是几个高斯的叠加。。。e.g. k=3
2.2 GMM for state sequence
每个state有一个GMM,包含k个高斯模型参数。如”hi“(k=3):
PS:sil表示silence(静音)
其中,每个GMM有一些参数,就是我们要train的输出概率参数
只要已知了这些参数,我们就可以在predict(识别)时在给定input sequence的情况下,计算出一串状态转移的概率。如上图要计算的state sequence 1->2->2概率:
3. GMM+HMM大法解决语音识别
我们获得observation是语音waveform, 以下是一个词识别全过程:
1. 将waveform切成等长frames,对每个frame提取特征(e.g. MFCC),
2.对每个frame的特征跑GMM,得到每个frame(o_i)属于每个状态的概率b_state(o_i)
3. 根据每个单词的HMM状态转移概率a计算属于该词的概率(如上图最后一行);那个词的HMM跑出来概率最大,就判断这段语音属于该词
宏观图:
(from Encyclopedia of Information Systems, 2002)
本文太过简略,只为科普。欢迎关注Rachel____Zhang
简明GMM-HMM语音识别模型,布布扣,bubuko.com
原文地址:http://blog.csdn.net/abcjennifer/article/details/27346787