上下文相关音素-状态绑定

    xiaoxiao2021-03-25  141

    在发音过程中,因为协同发音的影响,同一个音素在不同的位置,其发音变化很大,如下图所示:

    同样的元音[eh]在不同的单词中的发音在频域上区分非常明显。

    因为单音素monophone 是上下文独立的(context-independent)

    为了能够表示这种区别,因此提出了triphone的概念,triphone是根据左右音素来确定的,因此是上下文相关的(context-dependent)

    上图中:W对应的是词组;Q对应的是monophone;L对应的就是triphone;P对应聚类或者状态绑定之后的triphone

    接下来本文就要讨论triphone聚类/状态绑定的过程。

    聚类过程有2中,一种是居于数据驱动的聚类过程,第二种是基于决策树的聚类过程,首先讨论基于数据的过程

    当单音素集合中有50个音素的时候,如果展开成[x-phone+y]形式的triphone的个数则有50*50*50=125,000个,假设8变量的高斯分布有44个参数(d+(d+1)*d/2)的话,一个triphone由3状态的hmm表示,那么总triphone集合中共参数个数为:125,000*3*44=16,500,000个参数,参数迅速爆炸了,因此,需要对triphone状态进行绑定,然后进行聚类

    状态绑定的含义就是状态用共同的高斯参数,这样来减少参数爆炸的问题。

    HMM状态绑定过程如下:

    步骤为:

    1)用flat-start方式创建 monophone集合,每个状态的输出概率密度函数为单高斯概率密度,均值,方差为训练数据的全局均值和方差(上图1);

    2)用EM算法迭代3-4次,对高斯参数重新进行估计(上图1);

    3)每个单高斯monophone q被克隆一次,用来初始化那些在训练数据出现的,未被绑定的triphone: x-q+y(上图步骤2);

    4)对这些triphone,用EM算法再次迭代,来高斯参数重新进行,同时状态j的占用数γ被计算出来(上图步骤2);

    5)对每个triphone中的每一个状态,如果来自同一个monophone,则相应的状态被聚类,在每个聚好的类中,选择一个状态作为典型,同类中的状态绑定到这个状态(上图步骤3);

    6)绑定完成之后,对步骤5中的所有triphone的高斯参数再次进行EM迭代同时增加高斯混合模型中的组件(components),直到组件个数达到设定的预期或者性能达到测试预期。(上图步骤4

    上面过程简单总结就是:

    monophone训练->monophone克隆->同样的状态进行绑定->增加混合高斯模型个数到设定值

    状态绑定之后需要对triphone进行聚类,

    聚类方法有两种,一种是基于data-driven的方法,第二种是基于决策树的方法。

    基于data-driven的方法是根据状态的均值和方差进行聚类,这种方法的缺点是训练数据中未出现过的的triphone没有办法处理

    接下来就要讨论第二种方法,triphone决策树聚类。

    转载请注明原文地址: https://ju.6miu.com/read-3367.html

    最新回复(0)