高准确率声学模型基于决策树的状态聚类

本文是对《Tree-Based State Tying For High Accuracy Acoustic Modelling》S.J.Young 的部分翻译,主要目的是为了促进个人对HMM状态绑定算法的理解。如有不妥或者有误的地方,欢迎指出,谢谢!


Abstract

本文介绍了一种使用因素决策树创建状态绑定连续语音识别系统的方法,这种基于树的聚类方法和早期的数据驱动的方法识别性能相似,主要的优势是可以提供对为观测到的三音素(unseen triphone)的映射。


Introduction

前人的研究中,提出了HMM估计的方法,这一方法包含了状态集的参数绑定,而不是模型级的参数绑定。HMM估计方法嘉定使用连续魔都混合高斯分布,避免了第一次训练单高斯模型的后验平滑,然后使用成团的数据驱动过程,最后将每一个聚类状态转换成一个混合高斯,这对仅有词内部triphone模型的系统效果很好,因此对于这样的系统,很容易找到每一个triphone对应的数据。然而,从上面给出的数据可以推断出,使用词间triphone的系统,需要具有大量triphone的数据,而实际上,这些triphone大多在训练数据中是没有出现过的。

本文进一步提出了一种可以适应存在unseen triphone的系统架构的状态绑定方法,这种新的系统是基于对因素决策树的使用的,因素决策树被用来决定HMM状态的上下文等效集。为了能够处理大量的训练数据,决策树的构建仅仅基于每一个HMM状态统计量的编码,而对最原始的数据没有直接的引用。这种基于决策树的聚类与使用数据驱动的方法有相同的模型正确率,但对unseen triphone可以提供有效的映射。同时,状态绑定的方法性能优于传统的模型绑定的方法。

      本文的结构主要如下:

第2部分重温了状态绑定方法在HMM系统构建中的应用,第3部分描述了基于决策树的状态绑定方法,第四部分使用HTK语音识别系统进行实验,第5部分对本文的工作进行总结。

Tied-State HMM SYSTEM

构建一个状态绑定的HMM系统的目的是,确保有足够的训练数据可以很鲁棒地估算每一个状态集的输出分布参数,同时保留每一个phone类别中重要的上下文相关的声学区分性。在此使用连续密度混合高斯分布有两个原因: 首先,连续密度模型由于不需要对输入特征空间进行量化,比离散系统更准确。为了获得特征空间的足够范围,离散系统必须将导数看成是统计独立的,因此当使用导数特征时,连续密度更准确的特性非常重要。在连续密度系统中,离散特征很简单地追加的静态参数中。尽管这通常需要作一个对角协方差假设,但特征集通过普通的混合权重集就可以保持连续。

连续密度系统的另一个重要的好处是,对于任何一种特定分布的模型准确率,可以通过增加或减少混合组件的数据平滑地进行调整。这就允许在数据量非常不平衡的时候可以使用一个简单的高斯分布模型来构建一个初始的非绑定模型集。那么一旦进行绑定,每一个状态就有了足够的训练数据,就可以估算更加复杂的混合高斯分布以获得更高的准确率。

 

图1 显示了一个状态绑定的HMM系统的构建过程,主要包括如下4步:

1. 用单高斯输出概率密度函数创建和训练一个初始化的3状态从左到右的单音素模型的集合;

2.然后,克隆这些单音素的状态输出分布函数来初始化非绑定的上下文相关的triphone模型,转移矩阵不进行克隆,但要保留每个phone的所有triphone之间的绑定。

3.对于从相同的单音素得到的triphone的集合,对相应的状态进行聚类,对每一个结果类中,选择一个典型的状态作为样例,然后这一类的其他所有成员都聚到这个状态。

4.增加一个状态的混合高斯组建并对模型进行重估,直到在验证集上性能达到峰值或者混合高斯组建的数量达到预期。

以上所有的参数估计都是用Baum-Welch重估,因此,需要每一条训练语句的标注。由于通常字典里每一个词不只一个发音,通过用monophone的厨师引导程序对每条训练语句进行强制识别。标注是从已知的拼音得到的。由于这些模型的性能会非常差,因此需要用第一次产生的模型重新标注训练数据,重复进行构建过程。

正如在引言中提到的,前人的状态绑定共做使用数据驱动的结块聚类进程,在这种方法中,距离机制取决于通过状态方差调整的状态均值之间的欧几里德距离。这很好,但是不能提供解决 unseen triphone 的方法,下一节将介绍客服这一困难的聚类过程。

Tree-based Clustering 

语音学的决策树是一颗二叉树,在这颗二叉树中,每一个节点附有一个问题,在此描述的系统中,每个问题与语音语境的左或者右相关。例如:在图2 中,问题是“当前因素左边的因素是鼻音吗?”是与树的根节点相关的。对每个因素的每个状态构建一颗树来对所有有关联的triphone的所有相关的状态进行聚类。



比如,图2所示的这颗树将它的状态分成6个终止节点相关的子集,每个子集中的状态绑定成一个状态,树的拓扑结构以及问题的选择是为了在给定这些绑定状态时,最大化训练数据的似然值,同时确保每个绑定的状态有足够的训练数据来估计混合高斯PDF的参数。一旦所有的这些树都构建好了,通过 unseen triphone 的语境找到合适的终止树节点来将这些 unseen triphone 进行综合,然后用与这些节点相关的绑定状态来构建triphone。

所有的问题有如下的结构:“左边或者右边的因素在X集合里吗?“,X集合的范围包括从比较广泛的因素类别如鼻音、摩擦音以及元音等,到一个单独的集合如{l},{m}等。每一棵树通过自上而下的时序优化进行构件,最初的时候,所有的状态都被聚类到树的根节点,然后对数似然值通过假设所有的状态都绑定到这一节点来计算。然后通过找到问题将父节点中的状态进行分割以获得最大的对数思染纸提升,从而将此节点分成两个,重复这一划分节点的过程以获得最大的对数似然提升,直到提升幅度小于一个阀值。为了确保所有的终止节点有足够的相关的训练数据,使用了最小的占有count。

S是HMM状态的集合,L(S)是假设S中所有状态绑定的前提下,训练帧F集合产生S的对数似然值,例如:这些绑定的状态共享相同的均值和方差。转移概率可以忽略,然后假设绑定的状态并没有改变帧/状态的alignment. 则L(S)一个合理的估计为:


其中,是状态S产生观测特征的后验概率,如果输出概率密度函数(PDFs)是高斯分布,那么


其中,n是数据的维度,因此,整个数据集的对数似然值仅依赖于池中状态方差和池中总的状态占有,前者可以通过池中状态的均值和方差得到,状态的occupancy counts 在Baum-Welch重估中得到。给定状态S的节点,它被问题q 分成两个子集,使用问题q*来进行分割,最大化


使得总的池状态的 occupation counts超过相应的阀值。

最后一阶段,对数似染值得降低是通过合并不同父节点的终止节点来计算的,任何一对节点的对数似然值的减少量低于门限值时停止分裂并合并这两个节点。实际中,这种做法降低了10-20%的状态数量,但性能并不会下降。

为了增强对问题使用的印象,表1显示为了为WSJ任务构建的一个典型系统,前面最有用的6个问题是针对所有模型的所有状态的、所有模型的entry状态以及所有辅音的exit状态计算的。给出的评估师相应问题获得的总的对数似然值提升。正如所看到的,后接原因的情况是最重要的上下文相关的影响,一共有202个问题供选择,在195,182,15这三个问题中,实际上分别至少使用了一种决策树。

Experiment

(略)

Conclusion

本文介绍了一种有效的基于音素决策树的状态聚类算法,在HTK的状态绑定识别系统中展示了它的作用。实验证明,状态绑定的性能要优于模型绑定的性能,音素决策树聚类和数据驱动方法聚类的相关是一致的,但有一个重要的好处是可以提供unseen triphone 的映射。

RM和WSJ任务上总的实验结果表明,本文提出的方法可以达到目前最有的识别性能,但构造比较简洁且容易实现,这种方法关键取决于连续密度HMMs的使用,这是由于连续密度HMM提供了一种简单的控制复杂度的方法。初始时,一些triphone的数据是稀疏的,单高斯分布的简单使用仍然可以得到合理的参数估计,初始阶段单高斯的使用同样使得树的构建非常有效。这是由于需要的似然目标函数不需要参考训练数据就可以得到。然而,一旦状态绑定程序中每个状态数据量增大,单高斯通过分割组建很容易转换成混合高斯,并进行重估。模型的复杂度可以很平滑地增加,直到达到最优性能。










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章