周正坚
【摘 要】本文利用“隐含马尔可夫模型”(Hidden Markov Model)根据接收到的数字信号来推测说话者想表达的意思来研究语音识别问题。
【关键词】语言识别;隐含马尔可夫模型
一、语言的实质
人们平时在说话时,脑子是一个信息源;人们的喉咙(声带),空气,就是如电线和光缆般的信道;听众耳朵的就是接收端(信宿),而听到的声音就是传送过来的信号;语言在这一过程中充当信息载体的角色,即消息。这就是人类通过语言交流的实质。
二、语音识别
语音识别是指从语音到文本的转换,即让计算机能够把人发出的有意义的话音变成书面子语言。通俗地说就是让机器能够听懂人说的话。所谓听懂,有两层意思,一是指把用户所说的话逐词逐句转换成文本;二是指正确理解语音中所包含的要求,作出正确的应答。
三、HMM原理
隐马尔可夫模型(HMM)可以用五个元素来描述,包括2个状态集合和3个概率矩阵:
1.隐含状态S
是马尔可夫模型中实际所隐含的状态,这些状态之间满足马尔可夫性质。这些状态通常无法通过直接观测而得到。
2.可观测状态O
在模型中与隐含状态相关联,可通过直接观测而得到,可观测状态的数目不一定要和隐含状态的数目一致。
3.初始状态概率矩阵π
表示隐含状态在初始时刻t=1的概率矩阵,(例如t=1时,P(S1)=p1、P(S2)=P2、P(S3)=p3,则初始状态概率矩阵 π=[p1 p2 p3].
4.隐含状态转移概率矩阵A。
描述了HMM模型中各个状态之间的转移概率。其中Aij = P( Sj | Si ),1≤i,,j≤N.
表示在 t 时刻、状态为 Si 的条件下,在 t+1 时刻状态是 Sj 的概率。
5.观测状态转移概率矩阵 B
令N代表隐含状态数目,M代表可观测状态数目,则:
Bij=P(Oi | Sj), 1≤i≤M,1≤j≤N.
表示在 t 时刻、隐含状态是 Sj 条件下,观察状态为Oi的概率。
总结:一般的,可以用λ=(A,B,π)三元组来简洁的表示一个隐马尔可夫模型。隐马尔可夫模型实际上是标准马尔可夫模型的扩展,添加了可观测状态集合和这些状态与隐含状态之间的概率关系。
当人们观测到语音信号o1,o2,o3时,要根据这组信号推测出发送的句子s1,s2,s3。显然,人们应该在所有可能的句子中找最有可能性的一个。用数学语言来描述,就是在已知o1,o2,o3,...的情况下,求使得条件概率:
P(s1,s2,s3,...|o1,o2,o3....)达到最大值的那个句子s1,s2,s3,...。例如,当人们听见(ni shi shui a),按经验、语言环境就能判断出对方所说的是“你是谁啊”的概率最大,而不是其他的句子。
四、HMM基本步骤
对HMM来说,有如下三个重要假设,尽管这些假设是不现实的。
假设1:马尔可夫假设(状态构成一阶马尔可夫链)
P(Xi | Xi-1…X1)=P(Xi | Xi-1)
假设2:不动性假设(状态与具体时间无关)
P(Xi+1 | Xi)=P(Xj+1 | Xj),?坌i,j
假设3:输出独立性假设(输出仅与当前状态有关)
P(O1,…,OT | X1,…,XT)=?装P(Ot | Xt)
隐藏的状态和可观察到的状态之间有一种概率上的关系,也就是说某种隐藏状态H被认为是某个可以观察的状态O1是有概率的,假设为 P(O1 | H)。如果可以观察的状态有3种,那么很显然 P(O1 | H)+P(O2 | H)+ P(O3 | H)=1。
这样,我们也可以得到一个另一个矩阵,称为混淆矩阵 (confusion matrix)。这个矩阵的内容是某个隐藏的状态被分别观察成几种不同的可以观察的状态的概率。
下图明确的表示出模型的演化,其中绿色的圆圈表示隐藏状态,紫色圆圈表示可观察到状态,箭头表示状态之间的依存概率,一个HMM可用一个5元组{N,M,π,A,B}表示,其中N表示隐藏状态的数量,我们要么知道确切的值,要么猜测该值,M表示可观测状态的数量,可以通过训练集获得,π={πi}为初始状态概率,A={aij}为隐藏状态的转移矩阵Pr(xt(i) | xt-1(j)),B={bik}表示某个时刻因隐藏状态而可观察的状态的概率,即混淆矩阵,Pr(ot(i) | xt(j))。在狀态转移矩阵和混淆矩阵中的每个概率都是时间无关的,即当系统演化时,这些矩阵并不随时间改变。对于一个N和M固定的HMM来说,用λ={π,A,B}表示HMM参数。
在正常的马尔可夫模型中,状态对于观察者来说是直接可见的。这样状态的转换概率便是全部的参数。而在隐马尔可夫模型中,状态并不是直接可见的,但受状态影响的某些变量则是可见的。每一个状态在可能输出的符号上都有一概率分布。因此输出符号的序列能够透露出状态序列的一些信息。
五、向前向后算法
下面介绍前向后向算法的参数学习过程,在学习的过程中,不断更新HMM的参数,从而使得P(O | λ)最大。我们假设初始的 HMM 参数为λ={π,A,B},首先计算前向变量?琢和后向变量 ?茁,再根据刚刚介绍的公式计算期望?孜和ζ,最后,根据下面的3个重估计公式更新HMM参数。
参考文献:
[1]张建华.基于深度学习的语音识别应用研究[D].北京邮电大学,2015.
[2]周茉.基于HMM和ANN的汉语数字语音识别算法研究[D].华中师范大学,2006.