- 签证留学 |
- 笔译 |
- 口译
- 求职 |
- 日/韩语 |
- 德语
在例子中的这个点上,我们使用快速匹配的办法,从下面的可能单词中选出一个子集合,并且给每个选出的单词打分。我们还没有讲怎样来精确地计算分数。大致来说,对于给定的声学输入,这个分数应该是所假定的句子的概率的一个组成部分P(WIA),它本身是由语言模型的概率P(W)和声学似然度P(AIW)构成的。
图3 搜索句子If music be the food of love 开始时的搜索空间。在这个开始阶段,Alice是最可能的假设(与其他假设相比,它的分数最高)
图4 说明了搜索的下一个阶段。我们把结点Alice向前延伸,这意味着Alice不再处于队列中,但是它的后继单词进入了队列。注意,这时标记为if的结点成为了分数最高的结点,所得的分数比Alice的所有后继结点都高。
图4 搜索句子If music be the food of love 的下一个阶段。现在我们延伸结点Alice,并且把它的三个分数比较高的后继(was,wants和walls)加入队列中,注意,现在分数最高的结点是START if,顺着START Alice的这条路径已经不存在了
图5 说明了在延伸了结点if之后的搜索状态,这时if被移走,队列中增加了if music, if muscle 和if messy。
前面提到,给一个假设打分的标准与其概率有关。我们现在来具体说明这个问题。对于给定的声学符号串,单词串的分数似乎应该等于先验概率和似然度的乘积:
遗憾的是,这样计算出来的概率不能作为打分的分数,因为如果这样计算,越长的路径概率会越小,而越短的路径概率会越大。这是出于概率和子符号串的简单事实;这样,符号串的任何前面的部分将会比符号串本身具有更大的概率,例如P(START the .….)将会大于P(START the book)。在这种情况下,如果我们采用这个概率作为分数,在遇到单个词的假设时,A*解码算法将会停滞不前,束手无策。
图5 我们现在延伸结点if,这时START if music这个假设的分数最高
我们不采用上面的办法,而是采用A*评估函数来计算。A*评估函数(Nilsson,1980;pearl,1984)称为f*(p),对于给定的局部路径p,有:
f*(p)=g(p)+h*(p)
f*(p)是从部分路径p开始的最佳完全路径(完全句子)的估计分数。换言之,对于给定的部分路径p,f*(p)能够估计出,如果继续通过这个句子,这条路径的好坏程度。A*算法使用两个部分来进行这样的估计:
● g(p) 是从语段的起点到部分路径终点的分数。可以通过对于前面给定的声学符号串p的概率来很好地估计函数g,也就是对于构成p的单词串W的P(AIW)P(W)。
● h*(p) 是从部分路径延伸到语段终点的最佳分数的估计。
如何很好地估计h*还是一个没有解决的问题,也是一个很有意思的问题。有一种方法是根据在句子中剩下的单词数来估计h*的值(Paul,1991);进一步的讨论可参阅Jelinek(1997)。
前面讲过,无论是A*解码算法还是其他两阶段解码算法,都要求使用快速匹配,以便很快地找出词表中哪些单词可以作为与声学输入中的某个部分相匹配的最佳候选。很多快速匹配算法都基于使用一种树结构词表(tree-structured lexicon),在词表中存储所有单词的发音,存储方式要使得在向前方推进计算概率时,能够与相同音子开头的单词共享,做到前后勾连。树结构词表是首先由Klovstad and Mondshein(1975)提出的;Gupta et al.(1988)把树结构词表用于快速匹配中;Bahl et al.(1992)在A*解码算法中,Ney et al.(1992)和Nguyen and Schwartz(1999)在Viterbi算法中,都使用过树结构词表。图7.18是在Sphinx-II的语音识别系统中使用的树结构词表的一个例子(Ravishankar, 1996)。每个树的根表示所有单词开头的第一个音子,单词开头的上下文与音子有关(音子上下文可以穿过单词的边界,也可以不穿过单词的边界),每个叶子与一个单词相关联。
还有很多其他种类的多阶段搜索算法,例如,不要把向前-向后搜索算法与HMM置参数的向前-向后算法相混淆(Austin et al.,1991),前者的向前搜索比较简单,但紧接着的向后搜索(即时间反演)很细致。
图6 在Sphinx-Ⅱ的语音识别系统中使用的一个树结构词表(Ravishankar,1996)。每个结点对应于一个特定的三音子,三音子符号的记录方式基本上按照ARPAbet,只做了很小的修改,因此,EY(B,KD)表示前面为B后面以K结尾的音子EY
责任编辑:admin