HMM(Hidden Markov Models)

在语音识别问题中,隐马尔科夫模型(HMM)是如何支持特征在时间轴上的扭曲的?
HMM(Hidden Markov Models)
一个HMM有两部分:
  1. 状态(state)/状态的转移(transition):描述了HMM的基本骨架,即一个HMM有多少个states,以及states之间的转移关系。
  2. 每一个state的概率分布(probability distributions):可再分为两部分,①带有概率的Markov链,即由某一状态去往下一个状态的转移概率;②每一个state的data probability distributions,语音识别中通常用混合高斯模型(Gaussian Mixture Model)来描述。

Bakis topology
Bakis topology就是语音的HMM,与上面的HMM最大不同就是,一个state的转移只有三种可能性①跳回自己;②跳到下一个state;③跳到下下个state。
首先,state表示的直观理解如下图,它们其实由某一类语音特征向量(可以为一个单词的特征向量,也可以为音素的特征向量)的分割:

其次,一个state的转移只有三种可能性的原因是:
  1. 语音是从左到右的,不存在状态跳回去的可能,所以状态只能向前跳。
  2. HMM为输入语音的抽象,一个状态是由许许多多相同的特征向量训练出来的。某个HMM在识别它对应的单词的时候,HMM的某个state,如上图中的‘s’,一定对应了输入语音的多个特征向量。所以有自环,表示输入语音的当前的特征向量对应到‘s’,下一个特征向量还是对应到‘s’。
  3. 某些音节可能会被省略掉,所以会跳到下下个。

Viterbi Search
Viterbi search就是作用在Bakis topology HMM上的DTW。它通过计算输入语音的每一个特征向量在给定HMM每一个state上的观测概率,结合state之间的转移概率,找出输入语音在HMM上的最优跳转的路径。如下图,其中,横轴为输入语音、向右箭头为state的自环、右上方22.5°的箭头为跳到下一个state、右上方45°为跳到下下个state:
横轴为时间,纵轴为所有的状态集合,应该是这么理解的!结合PPT《基于HMM的孤立词语音识别》

可以看出,HMM的Viterbi search其实就是DTW算法。

HMM如何支持特征在时间轴上的扭曲
HMM模型中, state的自环就是在“支持特征在时间轴上的扭曲”。语速慢,每一个state的自环就多,Vettibe search示意图中向右 (我觉得这里指的是统一水平线向右) 的箭头就多;语速快,每一个state的自环就少,Vertibe search示意图中向右的箭头就少;语速时快时慢,读得快的那个音节对应的state自环就少,读得慢的那个音节对应的state自环就多......

关于DTW(Dynamic Time Warping)
个人感觉题主理解DTW可能局限了,所以多说几句。
输入语音的特征向量与Template的特征向量做对比,示意图如下:

输入语音的特征向量与HMM做对比,示意图如下:

HMM在做Vertibe search的时候用的也是DTW的算法,只不过从 计算template的某个特征向量与输入语音的某个特征向量的距离 变成了 计算输入语音的某个特征向量在HMM某个state上的观测概率
(HMM与DTW)
这样做的好处是显而易见的,即节省了保存多个template的特征向量的空间(只需保存HMM的参数),做best alignment的时候也更快,而且,HMM通过许许多多的templates(训练数据)训练出来,识别效果也好。

所有图片引用自JIE J1799d课程的课件http://jie.sysu.edu.cn/~mli/j1799d.htm

猜你喜欢

转载自blog.csdn.net/yifen4234/article/details/80146858
今日推荐