GMM和HMM
虽然都是MM,但这两个MM其实没啥关系。
GMM(Gaussian Mixture Model)混合高斯模型,就是一堆不同分布的高斯模型按一定比例组合在一起,用来对特征进行分类;
HMM(Hidden Markov Model)是隐马尔可夫模型,用来对序列进行建模,从一个观测序列,推出对应的状态序列,也就是“由果找因”。这里的“因”一般是隐藏的,无法简单的看出来的(除非你有透视眼),所以叫Hidden,潜变量、隐变量也都是这个意思。
训练和解码
以孤立词为例(单独的one,two这种),不涉及上下文。训练是干嘛?建模型啊。先来一堆已经配对好的CP(训练数据),用它来建立模型(HMM-GMM模型)。参数定下来以后,收到未知的音频,扔到刚才这个模型里面,算算算,最后就吐出来一个结果“two”,这就是解码。这就是一个迷你的语音识别的系统,简单吧?
单音素和三音素
理解了孤立词训练和解码,我们再稍微加点难度。世界上有那么多词,一个个训练,那模型该有多大啊,肯定不实用。小时候我们是怎么学语文英语的?对了,先学拼音和音标啊,学好了发音才能准啊。这时候音素就派上用场了。比如one,分成W--AA--N,这样每个音素(Phone)再去单独建模,就更好用了。训练好了模型,丢进去解码,和上面孤立词也是类似的。
但是发音不是这么简单的一个字一个字吐的,还和上下文(Context)有关系,每个音素要考虑前一个和后一个的影响,所以就有了三音素(Triphone)。DNN-HMM
上面提到分类,那我们自然就想到DNN(Deep Neural Networks)深度神经网络。它也是一个功能十分强大的分类神器,我们完全可以用它来替换前面用来分类的GMM。于是就有了DNN-HMM。看起来也没有那么难,对吧?
整理一下