未来智讯 > 人脸语音识别论文 > 基于HMM模型的语音识别系统研究

基于HMM模型的语音识别系统研究

发布时间:2018-06-22 08:11:28 文章来源:未来智讯    
    关键词:HMM模型;语音系统
    一、HMM模型的基本原理
    一个HMM模型由若干个状态组成,随着时间的变化,各个状态之间可以发生转移,也可以在一个状态内驻留。每个观察向量对不同的状态都有相应的输出频率。以一个包含四个状态[S1~S4]为例,状态之间或状态自身的转移概率用[a0]表示,输入观察序列为[o1,o2,…,oT]。每个观察序列是一帧MFCC参数。在这个模型中,序列[o1,o2,…,oT]是可观测的输入序列,称为观察序列,而每一时刻所处的状态却是隐含的。
    权系数[cjl]满足
    [lMcjl=1,1≤j≤N]
    这种连续混合高斯HMM通常简称为CHMM。对于每一个状态,都用若干个正态高斯概率密度函数(简称为pdf)的线性组合来表示,每个pdf有各自的均值矢量和协方差矩阵,这些都是通过对大量的MFCC参数进行统计得到的。
    二、HMM模型进行语音识别的步骤
    基于统计的语音识别模型常用的就是HMM模型λ(N,M,π,A ,B),涉及到HMM模型的相关理论包括模型的结构选取、模型的初始化、模型参数的重估以及相应的识别算法等。具体如下:
    (1)模型的结构包括状态数N的确定,每个状态对应的观测事件数M(有些文献假定观测矢量是在经历各非空转移时产生的输出),还有Markov链形状的确定,这主要由π,A两组参数决定。根据L. Rabiner的实验研究以及国内一些学者的研究经验表明目前Markov链状态数为6比较理想,超过6个状态的模型计算量太大而且识别准确率增加并不明显。
    隐马尔可夫模型的结构主要有两种,一种是各态历经的,另一种是从左到右的。状态的转移又可分为吸收的和不吸收的,不吸收是指状态可以从一个任意状态转移到下一个任意状态,吸收的是指状态只能转移到下标等于或大于当前状态下标的那种转移,而且下标小的状态将优先于下标更大的状态,而极少或几乎没有返回到以前状态的可能性。根据语音信号的特性,目前比较常用“左-右”吸收转移模型。
    (2)观测序列概率(B);观测序列概率描述在某状态时观察序列的概率分布。根据对观测序列概率的不同描述HMM方法可分为离散的HMM和连续的HMM,以及半连续的HMM。
    对于离散HMM(DHMM),B就是一个概率矩阵;对于连续HMM(CHMM)来说,B是每个状态对应于一个观测概率密度函数,函数是对数凹对称连续分布函数如高斯密度或高斯自回归密度函数,后来推广到椭球对称密度的连续分布函数。这样所需的存储的参数是不同的,在DHMM中,B中直接存储每个状态产生的某个观测事件的概率bj(ot),识别时直接使用viterbi等算法即可求出P(O/λ);在CHMM中,存储的参数为:每个状态j的Mj个Cjm权值,用来表[jm][μjm]示高斯概率密度函数的Mj个均值 和方差 ,识别时计算下式然后使用viterbi算法。
    [bj(ot)=m=1MjcjmN(ot;μjm;jm)][1≤j≤N]
    可见CHMM不需要矢量量化,通过特征提取后的特征向量求出均值和方差后使用上式计算观测概率。
    由于DHMM存在量化畸变问题影响识别率,而CHMM由于每个状态都有不同的概率密度函数从而训练和识别时计算量比较大,所以Juang Bim Huang提出了半连续HMM(SCHMM),该方法结合离散和连续HMM的优点,值得注意的是所有模型的所有状态共享M个高斯概率密度函数,M等于1时,就变成了DHMM;B矩阵同在DHMM中一样直接存储每个状态产生的某个观测事件的概率bj(ot),同时还要存储M个高斯概率密度函数的均值和方差, 识别时,先进行矢量量化,找出较大的M个bj(ot)作为权值,然后象上式一样求出bj(o),最后使用viterbi算法求出P(O/λ)。
    (3)一般认为起始状态概率(π) 、状态转移概率(A)的初值的选取对模型参数重估的影响不大,所以常采用均匀分布;而观测序列概率(B)对参数重估影响较大,当设置不恰当时,使用重估算法时收敛所需次数太多,并且算法可能收敛于局部最优解而不是全局最优解。所以B的初值设置除了均匀分布外,可根据“初值估计原则”[13]进行估计,还有把初值的设置与训练过程结合,使用viterbi算法来重新确定初值的方法 [5],对于CHMM也可采用分段k平均值法。一般倾向采取较为复杂的初值选取方法。
    (4)模型参数的重估是统计模式识别中最重要的环节,重估性能的好与坏直接影响到识别的准确率。目前还没有一个最佳的方法来估计模型,主要采用递归的思想来进行重估,即经典的Baum-Welch算法,该算法通过递归使P(O/λ)局部极大,作为基于爬山的算法,它有两个优点,一是收敛迅速,二是每一步迭代后似然概率都增大。然而这种方法一个很大的缺点是它只是用预先标识好属于一个模型的数据来训练该模型,使其似然概率趋于局部最大,从而不能保证这一似然概率比其它模型对应数据的似然概率更大,一旦出现这种情况,很容易导致误识。
    三、两种算法的介绍
    1.前向后向算法
    前向算法
    首先定义HMM的前向概率为:
    [αt(i)=P(o1o2…ot,qt=i|λ)]
    表示给定HMM模型参数[λ],部分观察序列[{o1o2…ot}]在t时刻处于状态[i]的概率。那么有:
    初始化:
    [α1(i)=πibi(o1),1≤i≤N]
    递归:
    [at+1(j)=[i=1Nat(i)aij]bj(Ot+1),1≤t≤T-1,1≤j≤N]
    终结:
    [P(O|λ)=i=1NαT(i)]
    与前向概率相对应,还有后向概率。定义后向概率为:
    [βt(i)=P(ot-1ot-2…ot,qt=i|λ)]
    表示HMM模型参数[λ],观察序列在t时刻处于状态i,系统输出部分观察序列[{ot+1ot+2…oT}]的概率。
    后向算法
    后向概率[βt(i)]也有类似的递推公式计算:
    初始化:
    [βT(i)=1,1≤i≤N]……………………………4.10
    递归:
    [βt(i)=i=1Naijbj(Ot+1)βt+1(j),1≤t≤T-1,1≤j≤N]………….4.11
    终结:
    前向概率和后向概率的递推关系由下图说明:
    
转载请注明来源。原文地址:https://www.7428.cn/page/2018/0622/20013/
 与本篇相关的热门内容: