会员中心 |  会员注册  |  兼职信息发布    浏览手机版!    精选9.9元!    人工翻译    英语IT服务 贫困儿童资助 | 留言板 | 设为首页 | 加入收藏  繁體中文
当前位置:首页 > 机翻技术 > 识别技术 > 正文

A*解码算法应用于语音识别系统

发布时间: 2022-07-18 09:38:02   作者:etogether.net   来源: 网络   浏览次数:
摘要: A*解码算法是对于格(lattice)和树(tree)的一种最佳优先搜索,而格和树隐含地定义了一种语言中可允许单词的序列。



A*解码算法与Viterbi算法不同,它将依靠完全的向前算法而不依靠近似值。另外,A*解码算法还允许我们使用任何语言模型。A*解码算法是对于格(lattice)和树(tree)的一种最佳优先搜索,而格和树隐含地定义了一种语言中可允许单词的序列。考虑图1中的树。这个树的根在左边的START结点上。这个树中的每条路径定义了该语言的一个句子;沿着从START到叶子的路径,把路径中所有的单词毗连起来,就可以形成一个句子。我们这里对于树的表示不很明显,但栈解码算法隐含地使用树作为构造解码搜索的一种手段。


算法从树的根开始向叶子进行搜索,查找概率最大的路径,而概率最大的路径就代表概率最大的句子。当我们从根向叶子进行搜索时,离开给定单词的结点的每个枝所表示的单词,可能跟随在这个当前给定的单词之后。每个这样的枝上都有概率,这个概率表示在我们前面所看到句子给定部分的条件之下,下面一个单词出现的条件概率。此外,我们将使用向前算法给每个单词指派一个产生所观察声学数据的某个部分的似然度。因此,A*解码算法必须找出从根到概率最大的叶子之间的路径(单词序列),而该路径的概率可以由语言模型的先验概率和它与声学数据匹配的似然度的乘积来确定。这可以通过保持部分路径优先队列(priority queue)的办法来实现。这个优先队列也就是句子中带有分数(score)标注的前面部分(prefix of sentence)。在一个优先队列中,每个成分都打了一个分数,上托(pop)操作返回分数高的成分。A*解码算法反复地选择最佳的句子前面部分,对于这个部分,计算它后面所有可能出现的下一个单词,把句子加以延伸,并把这些延伸了的句子加到优先队列中。图2给出了一个完全的算法。


1.png



图1 定义一种语言的可容许单词序列的隐含格的可视表示。一种语言中句子的集合很大,不可能明显地表示出来,但这个格作为一个比喻可以帮助我们探索这些句子的各种子符号串


2.png


图2 A*解码算法(Paul,1991;Jelinek,1997)修改得到。这里没有完全地定义用于计算句子分数的评估函数;可能的评估函数将在下面讨论


我们来研究A*解码算法的一个追求时尚的例子,这个例子处理的波形所对应的正确转写是半句时髦话:“If music be the food of love”(如果音乐是爱情的食粮)。图3说明了解码算法检查了从根开始的第一段长度为1的路径之后的搜索空间的情况。我们使用快速匹配(fast match)的办法来选择下面一个或多个最可能的单词。快速匹配是一种试探性的方法,用于筛选下面可能的单词的数目。在通常的情况下,要计算出前面概率的近似值(参看后面对快速匹配的讨论)。



微信公众号

[1] [2] [下一页] 【欢迎大家踊跃评论】
  • 上一篇:声学概率的计算
  • 下一篇:语音识别的总体结构


  • 《译聚网》倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请30天内提供版权疑问、身份证明、版权证明、联系方式等发邮件至info@qiqee.net,我们将及时沟通与处理。


我来说两句
评分: 1分 2分 3分 4分 5分
评论内容:
验证码:
【网友评论仅供其表达个人看法,并不表明本站同意其观点或证实其描述。】
评论列表
已有 0 条评论(查看更多评论)