语音识别基础讲义05Word文档格式.docx

上传人:b****5 文档编号:16784937 上传时间:2022-11-26 格式:DOCX 页数:21 大小:137.43KB
下载 相关 举报
语音识别基础讲义05Word文档格式.docx_第1页
第1页 / 共21页
语音识别基础讲义05Word文档格式.docx_第2页
第2页 / 共21页
语音识别基础讲义05Word文档格式.docx_第3页
第3页 / 共21页
语音识别基础讲义05Word文档格式.docx_第4页
第4页 / 共21页
语音识别基础讲义05Word文档格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

语音识别基础讲义05Word文档格式.docx

《语音识别基础讲义05Word文档格式.docx》由会员分享,可在线阅读,更多相关《语音识别基础讲义05Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。

语音识别基础讲义05Word文档格式.docx

P(W(n)|T)=max{P(W(n)|T)}

=max{P(T|W(n))P(W(n))}

式中,W(n)表示使P(W(n)|T)成为最大的单词;

P(T|W(n))称为声学模型,即P(T|W(n))

的值可通过描述语音(单词)发声过程的统计模型,如采用隐马尔柯夫模型(HMM)来获取;

P(W(n))称为语言模型,常用的语言统计模型有N-gram等。

表5.1给出了基于模式匹配与统计模型的两种单词语音识别方式的特点。

表5.1基于模式匹配和统计模型的单词语音识别方式的特点

5.2隐马尔柯夫模型(HMM)的概念

5.2.1马尔柯夫过程

在建立语言统计模型时,通常希望得到继几个文字(或单词)C1C2C3…Ct之后,出现文字(或单词)Ct+1的概率,即求Ct+1的条件概率P(Ct+1|C1C2C3…Ct)。

当我们已知观察序列C1C2C3…Ct时,而Ct+1的条件概率若用下式来表示时,我们就把这种概率过程称之为n阶马尔柯夫过程。

P(Ct+1|C1C2C3…Ct)=P(Ct+1|Ct-n+1,Ct-n+2,Ct-n+3,…,Ct)

式5.9与式5.10分别表示一阶和二阶马尔柯夫过程的条件概率。

(5.9)

P(Ct+1|C1C2C3…Ct)=P(Ct+1|Ct)

(5.8)

P(Ct+1|C1C2C3…Ct)=P(Ct+1|Ct,Ct-1)

如图5.1所示,当我们知道某一个系统的概率

过程可用一阶马尔柯夫过程来描述时,再根据贝叶

斯(Bayes)定理,Ci和Cj的联合概率P(Ci,Cj)就可用

下式来表示:

(5.10)

P(Ci,Cj)=P(Ci)P(Cj|Ci)

同样,若想知道Ci,Cj和Ck的联合概率P(Ci,Cj,Ck),则可由下式来求得。

(5.12)

P(Ci,Cj,Ck)=P(Ci,Ci)P(Ck|Ci,Cj)

(5.11)

=P(Ci)P(Cj|Ci)P(Ck|Cj)

图5.2给出了一个描述天气情况的马尔柯夫模型λ。

设每天观测天气一次(如在中午),天气状况为

“雨天”、“多云”和“晴天”三种状态中的一种。

若问连续8天的天气为“晴,晴,晴,雨,雨,晴,

多云,晴”的概率是多少,此问题的解答为如下所示:

观察日期:

12345678

观察序列(O):

晴,晴,晴,雨,雨,晴,多云,晴

状态转移序列:

33311323

状态输出概率P(O|λ):

P(O|λ)=P(3,3,3,1,1,3,2,3|λ)

=P(3)P(3|3)P(3|3)P(1|3)P(1|1)P(3|1)P(2|3)P(3|2)

=1.0x0.8x0.8x0.1x0.4x0.3x0.1x0.2

=1.536x10-4

连续8天的天气为“晴,晴,晴,雨,雨,晴,多云,晴”的概率是1.536x10-4。

5.2.2隐马尔柯夫模型的概念

对马尔柯夫模型而言,每个状态都是决定性地对应于一个可观察的物理事件,所以其状态的输出是有规律的。

然而,这种模型的限制条件过于严格,在许多实际问题中无法应用。

于是,人们就将这种模型加以推广,提出了隐马尔柯夫模型(HMM)。

隐马尔柯夫过程是一种双重随机过程。

观察事件是依存于状态的概率函数,这是在HMM中的一个基本随机过程,另一个随机过程为状态转移随机过程,但这一过程是隐藏着的,不能直接观察到,而只有通过生成观察序列的另外一个概率过程才能间接地观察到。

为说明问题简便起见,我们再举一个例子。

设想有这样一个场景:

有一个房间,中间隔着一块不透明的屏障,一个人(甲)站在一边,另一边有一个人(乙)正在做投掷硬币的实验。

乙不告诉甲他具体是怎么做的,但他会向甲报告每次投掷的结果,即是每次投掷硬币的结果是正面还是反面。

甲得到的观测序列为:

O={o1,o2,…,oT}={H,H,…,T}

其中,o1,o2,…,oT表示第1、第2、…、

第T次观测符号,H表示正面,T表示反面。

假设有两枚“有偏”硬币,第一枚硬币

表示状态1,第二枚硬币表示状态2。

某一次

投掷选择哪一枚硬币是由另一枚有偏硬币或

其它随机事件决定的。

在这种情况下,你只

知道观测的结果是正面还是反面,但对每次

投掷结果是由哪一个状态即哪一枚硬币产生

的一无所知,这就叫做隐过程。

它可以看作是最简单的一个隐马尔柯夫模型。

图5.3给出了描述这一硬币投掷试验过程的隐马尔柯夫模型。

图中,a11、a22为状态转移概率分布,两侧的概率分别表示两枚硬币的观察符号概率分布,即共有四个概率分布参数。

5.2.3HMM的要素及其模型描述

由此可见,一个HMM模型(离散)主要由下列参数来决定:

(1)N:

模型中的状态数目。

尽管在实际应用中,隐马尔柯夫过程中的状态是隐藏着的,但是模型的状态或状

态的集合,一般都被赋予一定的物理意义,如在投掷硬币实验中,每个状态对应于一

个特定的有偏硬币。

另外,一般所有状态都与其它可到达的状态相连接,即构成一种

称为遍历性的连接模型(ergodic),但在语音识别方面,通常采用一种称为“由左至右(left

toright)”的非遍历性的连接模型。

这里,对状态集合用S={S1,S2,…,SN}来表示,而

时刻t的状态则用qt来表示。

(2)M:

每个状态可能输出的观察符号的数目。

观察符号与模型化的系统的物理输出相对应,如在投掷硬币实验中,物理输出即

为正面与反面。

这里,对符号集合用来V={v1,v2,…,vM}表示。

(3)T:

观察符号序列的长度。

这里,对观察符号序列用O=o1o2…oT来表示。

对时刻t的观察值ot而言,其值

取符号集V中的某一符号。

(4)A={aij}:

状态转移概率分布。

这里,

aij=P[qj+1=sj|qt=si],i,j=1,2,…,N

即:

aij表示时刻t的状态为si,而在时刻t+1状态转移到sj的概率分布。

(5)B={bj(k)}:

观察符号的概率分布集。

这里,

bj(k)=P[ot=vk|qt=sj],k=1,2,…,M

bj(k)表示在状态sj(j=1,2…,N)时,输出观察符号为vk的概率。

(6)π={πi}:

初始状态概率分布。

πi=P[q1=si],i=1,2,…,N

πi表示初始状态q1为si的概率。

如上所述,为了完整描述HMM,应指定两个模型参数,即N和M,再加上三个概率分布参数,即A、B和π。

一般,当A、B确定后,也就意味着N和M也已指定,所以常将HMM及其参数表示为:

λ(A,B,π)。

在这三个模型参数中,π(初始状态概率分布)最不重要;

B(某状态下事件的概率分布)最为重要,因为它就是外界观察到的事件符号的概率;

A(状态转移概率分布)也是重要的,但在孤立词识别的情况下,重要性则要差些。

5.2.4基于HMM的观察符号序列的生成方式

当给定模型λ(A,B,π)后,就可将该模型看成一个符号生成器(或称信号源),由它生成观察序列O=o1o2…oT。

其生成过程(也称HMM过程)是:

(1)按初始状态概率分布π,随机选择一个初始状态q1=Si;

(2)置t=1;

(3)按状态Si的符号概率分布bi(k),随机产生一个输出符号ot=Vk;

(4)按状态Si的状态转移概率分布aij,随机转移至一个新的状态qt+1=Sj;

(5)令t=t+1,若t≤T,则返回步骤(3),否则结束过程。

5.3HMM的三个基本问题及其解法

5.3.1HMM三个基本问题

为了将HMM应用于实际,必须解决如下三个基本问题:

(1)模型的评估问题

已知观察序列O=o1o2…oT和模型λ=(A,B,π),如何有效地计算在给定模型

λ条件下产生观察序列O的条件概率P(O|λ)。

(2)最佳路径问题

已知观察序列O=o1o2…oT和模型λ=(A,B,π),如何选择相应的在某种意义

上为最佳的(最好地解释观察序列的)状态序列。

(3)模型训练问题

如何调整模型参数(A,B,π)以便使P(O|λ)为最大。

5.3.2模型评估问题的解法

当给定模型λ以及观察序列O=o1o2…oT时,计算该模型λ对于观察序列O的概率P(O|λ)的思路是:

对长度为T(观察序列的长度)的所有可能的状态转移序列Qj=qj1qj2…qjT(j=1,…,J;

J为所有可能的状态序列数),分别计算Qj与观察序列O的联合概率P(O,Qj|λ),然后取各联合概率的和,即P(O|λ)=∑{P(O,Qj|λ)}(j=1,…,J)。

·

P(O|λ)的一般算法:

P(O,Qj|λ)=P(Qj|λ)P(O|Qj,λ)(根据Bayes定理)

(5.13)

P(Qj|λ)=P(qj1)P(qj2|qj1)P(qj3|qj2)…P(qjT|qjT-1)(一介马尔柯夫过程条件)

(5.15)

=a0,1a1,2a2,3a3,4…aT-1,T(用状态转移概率表示)

(5.14)

P(Q|Qj,λ)=P(o1|qj1)P(o2|qj1)P(o3|qj2)…P(oT|qjT)(各状态输出相互独立)

=b1(o1)b2(o2)b3(o3)b4(o4)…bT(oT)

(5.17)

 P(O,Qj|λ)=a0,1b1(o1)a1,2b2(o2)a2,3b3(o3)a3,4…aT-1,TbT(oT)

all

(5.16)

P(O|λ)=∑{P(O,Qj|λ)}

j=1

allT

=∑{at-1,tbt(ot)}

j=1 t=1

以上解法的问题点在于计算量太大,其计算次数的数量级大约为2TNT。

如设观察序列的长度为T,状态数为N的话,则对于遍历型(ergodic)模型而言,其状态序列可以有NT个存在。

图5.4给出了一个NT=8的遍历型模型的例子。

这样,在计算式(5.17)时,需做(2T-1)NT次的乘法和NT-1次的加法,其计算次数的数量级可近似看作为是2TNT。

例如,N=5(状态),T=100(观察数)时,其计算次数的数量级大约为2x100x5100≈1072。

因此,为了使问题

(1)的解法变为现实,还必须寻求更有效的算法。

所谓前向-后向算法就是这样一种更有效算法。

·

前向算法:

首先要定义一个如式(5.18)所示的前向变量αt(i)。

即前向变量αt(i)指在给定模型λ的条件下,产生t以前的部分观察符号序列(包括ot在内){o1,o2,…,ot},且时刻t又处于状态Si的概率。

αt(i)=P(o1,o2,…,ot;

qt=Si|λ)

前向变量αt(i)可按下列步骤进行迭代计算:

(1)初始化α1(i)=πibi(o1),1≤i≤N

N

(2)迭代计算αt+1(j)=[∑αt(i)aij]bj(ot+1),1≤t≤T-1

(5.18)

(5.19)

i=11≤j≤N

(5.20)

(5.21)

N

(3)最后计算P(O|λ)=∑αT(i)

i=1

第1步是把前向变量初始化为状态Si和初始观察符号o1的联合概率。

在语音识别中,通常只设一个初始状态S1,即一般将πi设成:

π1=1.0,πj=0.0(j≠1)。

第2步迭代计算是前向算法的核心部分,该迭代计算是对t=1,2,…,T-1进行的,而且对任一给定t都要对所有状态Sj(1≤j≤N)进行计算。

αt(i)aij表示观察符号序列{o1,o2,…,ot},而且由时刻t的状态Si转移到时刻t+1的状态Sj这一联合事件发生的概率。

将这些乘积对t时刻所有N个可能状态求和,便可得出观察符号序列{o1,o2,…,ot}且在t+1时刻处于状态Sj的概率。

而将求和后的结果再乘以bj(ot+1),则可得到产生t+1以前的部分观察符号序列(包括ot+1在内){o1,o2,…,ot+1},且时刻t+1又处于状态Sj的概率,即αt+1(j)。

图5.5给出了前向变量计算的示意图。

第3步是将最后一次迭代计算的结果αT(i)对i求和,便得到P(O|λ)。

在语音识别中,通常只设一个终止状态SN,所以,P(O|λ)=αT(N)。

计算量:

对每个j计算∑αt(i)aij需用N次乘法和(N-1)次加法,乘以bj(ot+1)又需1次乘法,因而对于j取N个值来说,共需乘法次数为N(N+1),而加法次数为N(N-1);

再考虑到t从1取到T-1,所以计算αt(i)所需总乘法数为N(N+1)(T-1),总加法数为N(N-1)(T-1)。

可以近似认为计算αt(i)所需的计算量约为N2T。

例如,N=5(状态),T=100(观察数)时,其计算次数的数量约为52x100=2500。

后向算法:

首先要定义一个如式(5.22)所示的后向变量βt(i)。

即后向变量βt(i)指在给定模型M和t时刻处于状态Si的条件下,产生部分观察符号序列{ot+1,ot+2,…,oT}的概率。

ai3

aiN

ai1

tt+1

βt(i)βt+1(j)

Si

S1

S2

S3

.

SN

βt(i)=P(o1,o2,…,ot|qt=Si,M)(5.22)

后向变量βt(i)可按下列步骤进行迭代计算:

(1)初始化βT(i)=1,1≤i≤N(5.23)

(2)迭代计算βt(i)=∑aijbj(ot+1)βt+1(j),1≤i≤N

j=1

t=T-1,T-2,…,1(5.24)

(4)

图5.6后向变量计算示意图

最后计算P(O|λ)=∑β1(i)(5.25)

第1步,任意定义βT(i)等于1(对所有i)。

第2步,迭代计算可以用图5.6来说明。

为了在时间t能处于状态Si,同时为了解释从时间t+1开始以后的观察序列的出现,必须考虑在时间t+1可能处在所有N个可能状态,这样就出现了aij(从状态Si转移到状态Sj)和bj(ot+1)(在状态Si观察到输出符号ot+1)以及βt+1(j)(从状态Si以后,保持后面一部分观察序列)。

βt(i)的计算(1≤t≤T,1≤i≤N)要求数量级的运算量。

前向和后向算法统称前向-后向算法,它对于求解问题

(2)和问题(3)也有帮助。

5.3.3最佳路径问题的解法

当给定模型λ以及观察序列O=o1o2…oT时,关于如何选择相应的在某种意义上为最佳的(能最好地解释观察序列的)状态序列Q*=q*1q*2…q*T的问题,根据选择的判据的不同,该问题的解法可以有许多种。

最广泛应用的判据是寻找单个最佳状态序列Q*(路径),亦即使P(Q*|O,λ)最大,这等效于使P(Q*,O|λ)最大。

Viterbi算法:

对于给定的观察序列,为了找到单个最佳状态序列,需要定义一个量δt(i):

(5.26)

δt(i)=max{P[q1,q2,…,qt=Si,o1,o2,…,ot|λ]}

q1,q2,…,qt-1

δt(i)是沿着一条路径在t时刻的最好得分(最高概率),它说明产生头t个观察符号且终止于状态Si。

δt(i)可用迭代法进行计算:

δt+1(j)=[max{δt(i)}aij]bj(ot+1)

1≤i≤N

为了实际找到这个状态序列,需要跟踪使式(5.26)最大的参数变化的轨迹(对每个t和j值)。

可以借助于矩阵ψt(j)来实现这一点。

寻找最佳状态序列的完整过程如下所示:

(5.29)

(5.27)

(1)初始化δ1(i)=πibi(o1),ψ1(i)=0,1≤i≤N

(5.28)

(2)迭代计算δt(j)=[max{δt-1(i)}aij]bj(ot),2≤t≤T,1≤j≤N

  1≤i≤N

         ψt(j)=argmax[δt-1(i)}aij],2≤t≤T,1≤j≤N

(5.31)

(3)最后计算P*=max{δT(i)}

(5.32)

q*T=argmax{δT(i)}

(4)路径回溯(最佳状态序列生成)

(5.30)

q*t=ψt+1(q*t+1),t=T-1,T-2,…,1

应当注意,在实现方法上,Viterbi算法类似于前向算法(除了多一个回溯步骤外)。

它们的主要区别在于,Viterbi算法用式(5.29)的计算(即对前面的状态求最大值)来代替前向算法中的式(5.20)的求和运算。

5.3.4模型训练问题的解法

关于如何调整模型参数(A,B,π)以使条件概率P(O|λ)最大的问题也是HMM三个问题中最困难的一个问题。

目前尚无解决这个问题的解析方法。

实际上,给定任何有限观察序列作为训练数据的话,没有一种最佳方法能估计模型参数。

但是,可以利用迭代处理方法(如Baum-Welch法,或称期望值修正法即EM法)以使P(O|λ)局部最大。

Baum-Welch法

(5.33)

首先定义变量:

ξt(i,j)=P(qt=Si,qt+1=Sj|O,λ)

它是在给定模型和观察序列的条件下,在时间t处于状态Si,,而在时间t+1处于状态Sj的概率。

根据前向变量和后向变量的定义,其计算公式为:

(5.35)

ξt(i,j)=P(qt=Si,qt+1=Sj,O|λ)/P(O|λ)

=αt(i)aijbj(Ot+1)βt+1(j)/P(O|λ)

(5.36)

(5.34)

再定义变量:

γt(i)=P(qt=Si|O,λ)

它是给定观察序列和模型条件下,在时间t处于的状态Si的概率,因此,

γt(i)=∑ξt(i,j)

j=1

从以上的定义不难看出:

T-1

∑γt(i)=从状态Si转移的数学期望值

(5.37)

t=1

(5.38)

∑ξt(i,j)=从状态Si转移到状态Sj的数学期望值

利用上面的公式可以得到一种重估隐马尔柯夫模型参数的方法。

其计算方法如下:

(5.39)

γ1(i)=πi:

时间t=1时处于状态Si次数的期望值。

(5.40)

(5.42)

(5.41)

从状态Si转移到状态Sj的数学期望

从状态Si转移的数学期望

∑ξt(i,j)

∑γt(i)

         T-1

∑αt(i)aijbj(Ot+1)βt+1(j)

          t=1

     T-1

∑αt(i)βt(i)

在状态Sj观察到符号vk次数的数学期望

处于状态Sj次数的数学期望

T

∑γt(i)

t=1s.t.ot=vk

         T

∑αt(i)βt(i)δ(ot,vk)

          t=1

{

1,ifot=vk

其中:

δ(ot,vk)=

0,otherwise

如果把当前的模型定义为λ=(A,B,π),计算上面各式,并把重估的模型定义为λ=(A,B,π)。

如果不断地迭代,重复上述重估过程,那么就能够改善由模型观测到O的概率,一直到达某个极限点为止。

这一重估过程的最后结果称为隐马尔柯夫模型的最大似然估计。

5.4基于HMM的孤立词语音识别方案

图5.7给出了基于HMM(离散)的孤立词语音识别方案的方框图。

(1)设词汇表由W个单词构成;

用λw(Aw,Bw,πw)表示每个单词的隐马尔柯夫

模型(状态数都为N);

(2)每个单词的语音信号,用矢量量化(VQ)技术表示成M字码本中码矢构成的时

间序列。

因此,每个观察符号就是时间序列中每个码矢的标号。

这样,对于词汇

表中的每个单词,训练序列是由该单词语音(由一个人或多个人发音)的码矢标

号构成的序列的多次重复。

(3)建立每个单词的HMM模型,这是用求解问题(3)来完成的。

即用训练序列调整模型参数(Aw,Bw,πw),使之最佳,这样便能得到每个单词的最佳参数模型λw(Aw,Bw,πw)。

(4)对模型进行细调(例如,增加状态数,改变码本尺寸等),这是用求解问题

(2)来完成的。

(5)利用已训练的模型对未知语音进行识别,这是用求解问题

(2)的Viterbi算法(或用求解问题

(1)的前向算法)来完成的。

即对所有模型,评估它们各自与待识语音序列的接近程度,最后选择得分高的模型所对应的单词作为识别结果。

X:

特征矢量的时间序列

O:

基于VQ的观察符号序列

O

X

识别

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1