《实验报告_基于GMM-HMM的语音识别.docx》由会员分享,可在线阅读,更多相关《实验报告_基于GMM-HMM的语音识别.docx(13页珍藏版)》请在第一文库网上搜索。
1、*必3才乡苧多媒体技术实验报告基于GMM-HMM的语音识别姓名:学号:2015年5月24日目录基于GMM-HMM的语音识别1一、 马尔科夫初步概念理解3(一)两个重要的图3(二)问题:马尔科夫的开始状态如何确定?4二、 马尔科夫的三种问题,以及解法4(一)解码,4解法一:最大似然路径4解法二:Viterbia1gorithm4(-)已知A,B,根据骰子掷出的结果,求出掷出这个结果的概率(模型检验)6解法一:穷举6解法二:前向算法6(三)知道骰子状态有几种,不知道A,知道B,观察到很多次投骰子的结果(可见状态链),我想反推出A。6三、 HMM算法使用条件6(一)隐性状态的转移必须满足马尔可夫性6
2、(二)隐性状态必须能够大概被估计。6四、 EM算法GMM(高斯混合模型)o7(一)单高斯分布模型GSM8(三)样本分类已知情况下的GMM9(四)样本分类未知情况下的GMM9五、 HMM-GMM模型在语音识别中的应用11(-)语言识别的过程11(二)其中HMM与GMM的作用12六、实验结果12(一)代码阅读以及注释12(二)实验结果对比12(三)与DTW结果对比13(四)实验感想与收获错误!未定义书签。(五)困难与改进错误!未定义书签。一、马尔科夫初步概念理解(一)两个重要的图HMM(HiddenMarkovMode1),也称隐性马尔可夫模型,是一个廨模型,用来描述一个系统隐性状态的转移和隐性状
3、态的港暇率.系统的隐性状态指的就是一些外界不便观察(或观察不到)的状态.比如在当前的例子里面,系统的状态指的是大叔使用骰子的状态,即正常骰子,作弊骰子1作弊骰子2,隐性状态的表现也就是.可以观察到的,由隐性状态产生的外在表现特点。这里就是说,骰子掷出的点数.(1,2,3,4,5.6HMM模型将会描述,系统隐性状态的转移概率.也就是大叔切换骰子的摄率.下图是一个例子,这时候大叔切换骰子的可能性被描述得淋漓尽致.隐性状态转移概率(大叔切换般子的概率)0.150.450.4A=0.250.350.40.100.550.35当然同时也会有,隐性状态表现转移概率.也就是骰子K现各点的概率分布,(eg作弊
4、能子1爰有90%的机每倒六,作弊骰子2有85%的机例到小)给个图如下,隐性状态表现概率(般子点数分布概率)隐性状态的表现分布器率也可以用矩阵表示出来,0.160.160.160.1G0.160.16B=0.020.020.020.020.020.900.40.200.250.050.050.05把这两个东西启礴来,就是整个HMM模型.(二)问题:马尔科夫的开始状态如何确定?二、马尔科夫的三种问题,以及解法(一)解码,已知A,B(隐含状态的数量以及转换概率以及B),根据掷骰子掷出的结果(可见状态链),想知道每次掷出来的都是哪种骰子(隐含状态链)解法一:最大似然路径基本思想:求一串骰子序列,这串骰
5、子序列产生观测结果的概率最大算法:穷举解法二:Viterbia1gorithm,求出每次掷出的骰子分别是某种骰子的概率基本思想:首先,如果我们只掷一次骰子:看到结果为1.对应的最大概率骰子序列就是D4,因为D4产生1的概率是1/4,高于1/6和1/&把这个情况拓展,我们掷两次骰子:结果为1,6.这时问题变得复杂起来,我们要计算三个值,分别是第二个骰子是D6,D4,D8的最大概率.显然,要取到最大概率,第一个骰子必须为D4.这时,第二个骰子取到D6的最大概率是P2(D6)=P(D4)*P(D41)*P(D406)*P(D66)I111*3436同样的,我们可以计算第二个骰子是D4或D8时的最大龌
6、.我们发现,第二个骰子取到D6的概率最大.而使这个概率最大时,第一个般子为D4.所以最大概率骰子序列就是D4D6.继续拓展,我们掷三次骰子:IOOO同样,我们计算第三个骰子分别是D6,D4,D8的最大概率C我“福次发现,要取到最大概率,第二个骰子必须为D6.这时,第三个骰子取到D4的最大幅是P3(04)=P2(D6)P(D6D4)P(D43)111*21634同上,我们可以计算第三个骰子是D6或D8时的最大概率.我们发现,第三个骰子取到D4的概率最大.而使这个概率最大时,第二个骰子为D6,第一个骰子为D4.所以最大概率箴子序列就是D4D6D4.算法:类似于动态规划;:(二)已知A,B,根据骰子
7、掷出的结果,求出掷出这个结果的概率(模型检验)解法一:穷举思想:穷举所有骰子序列O,计算每个骰子序列对应的概率,然后把这些概率相加算法:呵呵解法二:前向算法基本思想:结果递推,有点像动态规划,就是一步一步往后算,通过前向算法,算出概率加和,其中要用到A和B看到结果为1,6,3.产生这个结果的总概率可以按照如下计算,总概率为0.03:P1P2P3D611一今一36P1(D6)P1(D4);P1(D8)z3Q3o3DP2(D6)P2(D4).P2(D8).763636D411*一34P1(M)0P1(M)0P1(D)0P2(D6)g二+PZ(ZM)二:P2(D8)743434D81138P1(D6
8、)4P1(D4)VS*Pi(M).1.5SbJOJOP2(D6).I;P2(D4)P2(D8);.:ITota1I0.180.050.03J()知道骰子状态有几种,不知道A,知道B,观察到很多次投骰子的结果(可见状态链),我想反推出Ao三、HMM算法使用条件但是使用HMM进行建模的问题,必须满足以下条件.(一)隐性状态的转移必须满足马尔可夫性。(状态转移的马尔可夫性:一个状态只与前一个状态有关)(二)隐性状态必须能够大概被估计。在满足条件的情况下,确定问题中的隐性状态是什么,隐性状态的表现可能又有哪些.HMM适用于的问题在于,真正的状态(隐态)难以被估计,而状态与状态之间又存在联系。四、EM算
9、法GMM(高斯混合模型)。聚类的方法有很多种,k-means要数最简单的一种聚类方法了,其大致思想就是把数据分为多个堆,每个堆就是一类。每个堆都有一个聚类中心(学习的结果就是获得这k个聚类中心),这个中心就是这个类中所有数据的均值,而这个堆中所有的点到该类的聚类中心都小于到其他类的聚类中心(分类的过程就是将未知数据对这k个聚类中心进行比较的过程,离谁近就是谁)。其实k-means算的上最直观、最方便理解的一种聚类方式了,原则就是把最像的数据分在一起,而“像”这个定义由我们来完成,比如说欧式距离的最小,等等。想对k-means的具体算法过程了解的话,请看这里。而在这篇博文里,我要介绍的是另外一种
10、比较流行的聚类方法-GMM(GaussianMixtureMode1)。GMM和kmeans其实是十分相似的,区别仅仅在于对GMM来说,我们引入了概率。说到这里,我想先补充一点东西。统计学习的模型有两种,一种是概率模型,一种是非概率模型。所谓概率模型,就是指我们要学习的模型的形式是P(Y1X),这样在分类的过程中,我们通过未知数据X可以获得Y取值的一个概率分布,也就是训练后模型得到的输出不是一个具体的值,而是一系列值的概率(对应于分类问题来说,就是对应于各个不同的类的概率),然后我们可以选取概率最大的那个类作为判决对象(算软分类SoftaSSignment)。而非概率模型,就是指我们学习的模型
11、是一个决策函数Y=f(X),输入数据X是多少就可以投影得到唯一的一个Y,就是判决结果(竟硬分类hardassignment)。回至IJGMM,学习的过程就是训练出几个概率分布,所谓混合高斯模型就是指对样本的概率密度分布进行估计,而估计的模型是几个高斯模型加权之和(具体是几个要在模型训练前建立好)。每个高斯模型就代表了一个类(一个C1USter)。对样本中的数据分别在几个高斯模型上投影,就会分别得到在各个类上的概率。然后我们可以选取概率最大的类所为判决结果。得到概率有什么好处呢?我们知道人很聪明,就是在于我们会用各种不同的模型对观察到的事物和现象做判决和分析。当你在路上发现一条狗的时候,你可能光
12、看外形好像邻居家的狗,又更像一点点女朋友家的狗,你很难判断,所以从外形上看,用软分类的方法,是女朋友家的狗概率51%,是邻居家的狗的概率是49%,属于一个易混淆的区域内,这时你可以再用其它办法进行区分到底是谁家的狗。而如果是硬分类的话,你所判断的就是女朋友家的狗,没有“多像”这个概念,所以不方便多模型的融合。(一)单高斯分布模型GSM多维变量X服从高斯分布时,它的概率密度函数PDF为:111MKNz)=-,exp(x-w)7(x-u)(1)22X是维度为d的列向量,u是模型期望,是模型方差。在实际应用中U通常用样本均值来代替,通常用样本方差来代替。很容易判断一个样X本是否属于类别C。因为每个类
13、别都有自己的U和,把X代入(1)式,当概率大于一定阈值时我们就认为X属于C类。从几何上讲,单高斯分布模型在二维空间应该近似于椭圆,在三维空间上近似于椭球。遗憾的是在很多分类问题中,属于同一类别的样本点并不满足椭圆分布的特性。这就引入了高斯混合模型。(二)高斯混合模型GMMGMM认为数据是从几个GSM中生成出来的,混合高斯模型的定义为:KP(X)=Z须P(XIk)其中K为模型的个数,JIk为第k个高斯的权重,则为第k个高斯的概率密度函数,其均值为uk,方差为。匕我们对此概率密度的估计就是要求兀k、Uk和。k各个变量。当求出的表达式后,求和式的各项的结果就分别代表样本X属于各个类的概率。K需要事先
14、确定好,就像K-means中的K一样。nk是权值因子,表示在所有样本中,k类占的权重。其中的任意一个高斯分布N(x;Uk,Zk)叫作这个模型的一个Componento这里有个问题,为什么我们要假设数据是由若干个高斯分布组合而成的,而不假设是其他分布呢?实际上不管是什么分布,只K取得足够大,这个XXMixtureMode1就会变得足够复杂,就可以用来逼近任意连续的概率密度分布。只是因为高斯函数具有良好的计算性能,所GMM被广泛地应用。GMM是一种聚类算法,每个COmPOnent就是一个聚类中心。即在只有样本点,不知道样本分类(含有隐含变量)的情况下,计算出模型参数(n,U和)-这显然可以用EM算法来求解。再用训练好的模型去差别样本所属的分类,方法是:SteP1随机选择K个COmPonent中的一个(被选中的概率是nk);step2把样本代入刚选好的COmPOnent,判断是否属于这个类别,如果不属于则回到Step1o()样本分类已知情况下的GMM当每个样本所属分类已知时,GMM的参数非常好确定,直接利用Maximum1ike1ihood0设样本容量为N,属于K个分类的样本数量分别是Ni,N2,.,Nk,属于第k个分类的样本集合是1(k)oNk=(3)N1v-iUk=Nxkx1(k)I、Ek=K2(XTa)(X-以),NkXW1(k)(四)样本分类未知情况下的GMM