GMM:
模式识别中,一般假设噪声服从高斯分布,0/1信号加上噪声后,接收端会用最大似然概率来识别原始信号。音素识别时,也可以用K个高斯表示K个音素混合,类似聚类的思路。语音识别中是用多个高斯来表示一个音素,因为分帧时会将音素分成很多段,每帧不一定包含了一个完整的音素。解决这个分帧问题的另一种办法就是用多个状态表示一个音素,如用三个状态表示一个音素,第一个状态表示音素前部,第二个状态表示中部,最后一个状态表示音素尾部;用混合高斯还有一个好处就是三音素模型中,因为状态太多,要进行聚类,用混合高斯组合可以更好的表示类别的状态集空间。
如果能将语音信号分帧后,把每一帧对应一个相应的状态,则可以用状态对应的数据帧作为训练集来找GMM最优参数,语音识别中可以用KMeans来找GMM的参数初始值,有了隐状态初值,再计算后验证概率,通过后验概率再更新隐状态,迭代更新。
如何将数据帧对应到状态又叫对齐问题,一般用Viterbi方法,将数据帧作为输出在HMM中找到最优序列,再将数据帧对应到相应时序最优状态上。
HMM:
HMM中的每一个状态,其实是一个GMM。先用前中后三个状态表示一个音素作为单音素模型,构建HMM。得到单音素表示后再使用上下文音素生成三音素模型,此时每个三音素需要9个GMM来表示。
HMM中的状态转移概率可以通过先Viterbi译码再统计状态转移得到。得到转移概率后可再Viterbi译码,多次迭代,不断更新音素对齐。
HMM中发射概率即GMM生成数据之概率。