隐马尔可夫模型HMM与语音识别ASR
自动语音识别(automatic speech recognition,ASR)研究的目标是建立语言识别系统,将声学信号映射成单词串。本文首先回顾语音识别的总体情况,然后介绍HMM,在介绍言语声学和言语特征,以及高斯模型和多层感知机模型(Multi-layer perceptron model, MLP)在声学概率计算中的应用。
1 语音识别的总体结构
语音识别系统把语音的声学输入看成是源句子的一个噪声“版本”。为了对这个噪声句子进行“解码”,要考虑所有可能的句子。对于每个句子,要计算它生成噪声句子的概率,然后选取概率最大的句子。如下图所示,噪声信道模型。
建立噪声信道模型需要解决两个问题。
第一,为了挑选与噪声输入匹配的最佳句子,需要对“最佳匹配”有一个完全的度量。我们将使用概率作为度量,并且说明如何把不同的概率估计结合起来,以便对给定的候选句子的噪声观察序列的概率得到一个完全的估计。
第二个问题时,因为所有句子的集合特别大,我们需要一个有效的算法,使得不必对所有可能的句子都进行搜索,而只搜索那些有机会与输入匹配的句子,这就是解码问题或搜索问题。
语音识别的概率噪声信道总体结构的目标如下:
“对于给定的声学输入O,在语言f的所有句子中,哪个句子是最可能的句子”
我们个可以把声学输入O作为单个的“符号”或“观察”的序列处理: O = o1, o2,..., ot oi表示在时间上的连续的输入音片(大写字母表示符号的序列,小写字母表示单个的符号) 类似的,我们在表示句子时,就可以用单词符号构成单词串: W = w1, w2, w3, ..., wn
因而前面的目标的概率可以表示为:
利用贝叶斯原理可以将上式转换为:
由于P(O)是不变的,因而上式可以进一步转换为:
总的来说,对于给定的某个观察O,具有最大概率的句子W可以用每个句子的两个概率的乘积来计算,并且选择乘积最大的句子为所求的句子。
P(w)是先验概率,称为语言模型(language model);P(O|W)是观察似然度,称为声学模型(acoustic model)。P(w)可以根据N元语法模型进行估计,P(O|W)也很好估计。
首先,我们将简单的介绍声学输入和特征抽出,所谓特征抽出,就是从输入的声波中提取有意义的特征过程。然后利用这些特征计算音子的概率,有两个标准模型高斯模型和神经网络模型。 然后,通过将声学观察序列转换为音子观察序列,使之成为一个完整句子的观察序列,利用解码算法,计算音子观察序列的似然度,并且给出最可能的句子。
一个语音识别系统分为三个阶段,分别为信号处理阶段、音子阶段和解码阶段。
- 信息处理阶段又称为特征抽取阶段,在这个阶段将声学波形切分为音片框架(通常是10ms,15ms或20ms),将音片框架转换成声谱特征。
- 音子阶段有称为亚词阶段,在这个阶段我们利用高斯模型或神经网络这样的统计技术,尝试识别如p和b这样的单个音子。
- 解码阶段,我们利用单词发音词典和语言模型,采用Viterbi算法或A解码算法对于给定的声学事件最大概率的单词序列。
2 隐马尔科夫模型概述
我们曾经使用加权有限状态自动机或马尔科夫链来模拟单词的发音。自动机包括一个状态序列q=(q0, q1,..., qn),每个状态对应一个音子,状态之间的转移概率的集合为(a01, a12, a13)。我们用节点来表示状态,用结点与结点之间的边来表示转移概率。观察的音子序列O=(o1, o2,..., ot),可以通过自动机和向前算法计算观察的音子序列O的似然度。
然而,上述马尔可夫链的发音模型主要存在两个问题。首先,这些模型假设输入时有符号序列组成(观察序列)。显而易见,这是不对的,语音识别中,输入是有歧义的,输入的为声谱特征。另一方面,在加权自动机中进行了简化, 这种简化假定输入符号恰好对应自动机的状态。
加权自动机或马尔可夫链可以用状态集合Q,转移概率A,定义好初始状态和总结·终结状态、观察似然度集合B来描述。对于马尔可夫链,状态i与观察值ot相比配,则概率bi(ot)为1,否则为0。 与马尔可夫链不同的是,隐马尔可夫链(HMM)要增加两个要求。一是,HMM有一个观察符号的集合O,这个集合不是从状态集合Q的字符中抽取的。二是,观察似然度集合B的值不只是1或0,在HMM中概率bi(ot)可以取0~1的任何值。 下图为HMM示例图,观察序列为声谱特征,输入概率为B。
3 声学概率计算
语音的声学信号经过一系列的信号处理变换,转换成一系列的特征矢量,每个矢量代表语音输入的一个时间片。怎样把声学的特征矢量转换为音子的概率呢。常用的方法为在连续的空间内计算概率强度函数,主要有两种形式:高斯概率强度函数和神经网络。
在高斯概率强度函数中,我们假定观察特征矢量ot的可能值是按照正态分布的,每个状态有一个单独的高斯函数,把观察矢量ot映射为概率。其概率分布的数学公式为:
神经网络的方法有很多种,简单介绍其中一种,称为“混合隐马尔可夫-多层感知机方法(混合HMM-MLP方法)”。