声学模型(Acoustic model)是语音识别系统中最为重要的部分之一,目前的主流系统多采用隐马尔科夫模型进行建模。隐马尔可夫模型的概念是一个离散时域有限状态自动机,隐马尔可夫模型HMM是指这一马尔可夫模型的内部状态外界不可见,外界只能看到各个时刻的输出值。对语音识别系统,输出值通常就是从各个帧计算而得的声学特征。用HMM刻画语音信号需作出两个假设,一是内部状态的转移只与上一状态有关,另一是输出值只与当前状态(或当前的状态转移)有关,这两个假设大大降低了模型的复杂度。HMM的打分、解码和训练相应的算法是前向算法、维特比算法和前向后向算法。
声学模型的输入是由特征提取模块提取的特征。一般来说,这些特征是多维的向量,并且其取值可以是离散或连续的。早期的声学模型常常采用矢量量化(Vector Quantification)的方法,将信号直接映射到某个码本,根据上下文的不同将其拆分成不同的建模单元。例如,用表示在之后,之前发音的具体实现。上下文的选择方法有很多,最常见的是三音子建模单元,也就是考虑左上文右下文各一个音子,加上中心音子形成三音子对。
上下文相关建模大大提高了建模的准确性,但是同时也使得模型数量急剧膨胀,使得模型的可训练性大大降低。为了解决这一问题,就需要引入某些聚类算法来减少模型中需要训练的参数。
为了解决模型参数过多的问题,可以使用某些聚类方法来减小模型中的参数数量,提高模型的可训练性。聚类可以在模型层次,状态层次乃至混合高斯模型中每个混合的层次进行。可以将半连续隐马模型看作进行高斯混合进行聚类后的连续隐马模型。目前应用最多的方法是对状态聚类的方法。其思路是,根据状态间混合高斯模型概率输出的相似性,将输出概率接近的状态聚合在一起,以便对其的训练更加充分。聚类的方法有基于规则的方法和数据驱动方法两类。
聚类后的状态被称为Senone,每个Senone都是完整独立的高斯混合模型,它也是解码过程中的最基本单元。
传统上,参数估计使用的方法为Baum-Welch算法,属于最大似然准则下的EM算法。目前研究者提出了多种区分性训练方法(仍然属于产生式模型,但使用区分性准则)进行训练,取得了较好的效果。