首页> 中国专利> 一种基于混淆网络的语音解码方法

一种基于混淆网络的语音解码方法

摘要

本发明属于语音识别领域,具体的说,涉及一种基于混淆网络的语音解码方法,包括步骤:1)对语音特征进行深度优先帧同步Viterbi-Beam搜索,输出N-Best句子或者词格;2)将N-Best句子或者词格按照时间相似度算法和音素相似度算法进行两级聚类生成混淆网络;3)在混淆网络上以后验概率最大为准则匹配搜索出最优结果。与现有的多遍解码方法相比,本发明在第二遍解码时,不需要更精细复杂的声学模型和语言模型,有效的缩减了网络,提高了解码速率;同时本发明还克服了现有多遍解码系统中解码失误无法修复的缺点。

著录项

  • 公开/公告号CN1773606A

    专利类型发明专利

  • 公开/公告日2006-05-17

    原文格式PDF

  • 申请/专利号CN200410090801.8

  • 发明设计人 吕萍;颜永红;潘接林;韩疆;

    申请日2004-11-12

  • 分类号G10L15/26(20060101);G10L15/00(20060101);G10L15/02(20060101);G10L15/08(20060101);

  • 代理机构11280 北京泛华伟业知识产权代理有限公司;

  • 代理人王凤华

  • 地址 100080 北京市海淀区北四环西路21号

  • 入库时间 2023-12-17 17:16:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2008-11-05

    授权

    授权

  • 2006-07-12

    实质审查的生效

    实质审查的生效

  • 2006-05-17

    公开

    公开

说明书

技术领域

本发明属于语音识别领域,具体的说,涉及到一种基于混淆网络的语音解码方法。

背景技术

解码过程,也就是通常所说的识别过程,是语音识别系统的重要组成部分。它的功能是:在给定声学模型和语言模型的条件下,对于输入的声学特征矢量序列,从一定的搜索空间中自动搜寻出最优的匹配词串,最终将语音信号转换成了文字信息。

图1是一种公知的语音识别系统结构图。如图所示,特征提取模块对输入语音信号进行分帧处理,通常帧长为20ms,帧移为10ms;常用的特征有MFCC特征、LPC特征和PLP特征。经特征提取后,语音信号转换成了特征矢量序列。利用声学模型和语言模型,解码模块对特征矢量序列构成的搜索空间进行匹配搜索,得到识别结果。常用的搜索算法有:深度优先的帧同步Viterbi-Beam搜索算法和宽度优先的A*搜索算法。解码模块所用的声学模型是对发音单元建模后统计得到的,它描述了发音的物理特性。三音子模型是目前常用的声学模型。音素是发音的基本构成单元。而三音子(TRIPHONE)是一种上下文相关的音素。与单个音素(单音子)相比,它可以描述上下文不同时音素的发音变异情况。语言模型是从含有大量文本的语料库中统计得到的,体现了语言的统计特性。N元文法模型(N=2或3)是目前最常用的语言模型。

在图1所示的识别系统中,采用的是一遍解码(One-Pass)。为了进一步提高语音识别系统的识别性能,一些系统采用多遍解码(Multi-Pass)的识别策略。公知的语音识别多遍解码系统结构图如图2所示,它的基本思想是:首先用较简单的信息排除最不可能的情况,缩小搜索空间;然后逐步利用复杂的信息进行精确搜索。后一遍解码在前一遍解码后的搜索空间上,利用更多的信息源(例如更精细的声学模型和语言模型)和更精密的搜索策略,得到更优的识别结果。如果在一遍解码系统中,将所有信息源都加入到解码过程中,那么巨大的搜索空间和计算量将使得计算机无法承受该搜索任务。多遍解码策略即充分利用了多种信息源,又使得实际操作可行。

所谓多遍解码的中间结果,指的是前一遍解码的输出,同时它也是后一遍解码的输入。该中间结果构成了后一遍解码的搜索空间。中间结果按类型一般可分为:1)前N个概率得分最高的句子(N-Best lists);2)词格(Word Lattice)。词格是一种有向图,也称为词图。词格中的节点为可能的词,词间的连接关系构成节点间的连线。实际上,N-Best句子本身也是从词格中产生的。相对N-Best句子而言,词格对于信息的组织更为有效,由词格生成的搜索空间大,包含的潜在句子数目更多。

另外一种类似多遍解码的方法为ROVER。该方法综合多个识别系统的识别结果,以一种投票表决的方式,从中挑选出最终的结果。ROVER方法虽然不需要严格意义上的多遍解码过程,但是建立多个识别系统也不是一件简单容易的事情。

目前已有的多遍解码语音识别系统,因为在搜索过程中采用了更加复杂和精细的声学模型和语言模型,所以提高了识别性能。但另一方面,获得复杂精细的模型本身并不是一件容易的事情。除此之外,目前已有的多遍解码系统采用的是级联结构,这使得前一遍解码中出现的错误在以后的解码中永远得不到修正。每一遍解码后,都确定了词与词之间的连接关系。因为后面的解码是在前一遍解码生成的搜索空间上进行的,所以相互无连接的词永远也不可能再形成连接关系。然而某些词间的无连接状况,可能是由于Viterbi搜索中由于Beam宽度大小,或声学模型和语言模型的描述不够准确造成的。同时,由于Viterbi-Beam搜索自身的特点,其中间结果中包含了一些的仅仅是起止时间点稍有不同而内容完全相同的词。而语音识别系统所关心的只是识别出的文本信息,时间信息并不在考虑之中。这样的词的存在,并没有为后面的处理增加信息量,却将搜索空间加大了,即在某种程度上增加了搜索负担。

发明内容

本发明的目的是:克服现有技术的不足,在多遍解码的后期,在不利用更多信息的情况下(即不利用更精细复杂的声学模型和语言模型),通过混淆网络聚类技术降低解码错误率,提高解码速率,从而提供一种基于混淆网络的语音解码方法。

为了实现上述目的,本发明提供了一种基于混淆网络的解码方法,包括步骤:

1)对输入语音信号提取特征,得到特征矢量序列,利用声学模型以及语言模型,对语音特征进行深度优先帧同步Viterbi-Beam搜索,输出N-Best句子或者词格;

其特征在于,还包括如下步骤:

2)将N-Best句子或者词格按照时间相似度算法和音素相似度算法进行两级聚类生成混淆网络;

3)在该混淆网络上以后验概率最大为准则匹配搜索出最优结果。

所述步骤2)中生成混淆网络的过程,包括如下子步骤:

21)根据起止时间信息建立初始的混淆类,其中每一混淆类对应的词不仅词号相同而且起止时间也相同;

22)记录各初始混淆类间的连接关系;

23)对没有连接关系且词号相同的类进行时间相似度聚类;

24)对没有连接关系且时间段上有重叠的类进行音素相似度聚类;

25)遍历所有的混淆类,计算每一个词的后验概率,得到最终的混淆网络。

所述步骤23)中进行时间相似度聚类的原则是:遍历所有的混淆类,找出与当前类时间相似度最大的那个混淆类,并与当前类合并为一个新的混淆类。

所述步骤24)中进行音素相似度聚类的原则是:遍历所有的混淆类,找出与当前类音素相似度最大的那个混淆类,并与当前类合并为一个新的混淆类。

所述步骤25)中后验概率的计算采用前向后向算法。

所述步骤25)中,对于本类中所有词的后验概率之和小于1的混淆类,为其增加一个“省略词”,使得每个类中所有词的后验概率之和为1。

所述步骤2)中,首先将步骤1)中的N-Best句子通过合并算法压缩成有向网络结构,然后再根据得到的有向网络生成混淆网络。

与现有的多遍解码方法相比,本发明在第二遍解码时,不需要更精细复杂的声学模型和语言模型,节约了运算时间和内存空间的耗用。同时也减轻了模型训练的任务量。本发明中依据时间相似度和音素相似度,从第一遍解码的中间结果中生成了混淆网络。对于那些由于第一遍解码不够准确而导致的没有连接关系的词,有可能在混淆网络中恢复其连接关系。这就克服了已有多遍解码系统中解码失误无法修复的缺点。本发明在生成混淆网络的过程中,对满足时间相似度条件的词进行了聚类。由于Viterbi-Beam搜索固有的特性,第一遍搜索后产生的中间结果中存在很多起止时间稍有区别而内容相同的词。进行了时间相似度聚类后,这些词便都合成一类了。这样就有效的缩减了网络,提高了解码速率。

附图说明

图1为公知的语音识别系统结构图;

图2为公知的语音识别多遍解码系统结构图;

图3为本发明提供的基于混淆网络的语音解码方法流程图;

图4为本发明中NBest句子压缩成网络结构的流程图;

图5为一般网络示意图;

图6为本发明中初始的混淆类示意图;

图7为本发明中时间相似度聚类后的混淆网络示意图;

图8为本发明中音素相似度聚类后的混淆网络示意图;

图9为本发明中最终的混淆网络示意图。

具体实施方式

下面结合附图与优选实施例对本发明做进一步的描述。

如图3所示,本发明提供的基于混淆网络的语音解码方法包括如下步骤:

步骤101:从输入语音信号中提取特征矢量序列。

步骤102:用Viterbi-Beam搜索算法对语音特征进行第一次解码,输出N-Best句子或词格,同时得出N-Best句子或词格中每个词的声学层概率得分和语言层概率得分。

步骤103:如果步骤102中输出的中间结果为NBest句子,则用合并算法将其压缩成有向网络结构,该合并算法的流程如图4所示,它是一种现有技术,因此这里不再详述。如果步骤102中输出的中间结果为词格,由于词格本身也可看成是一种网络,因此直接进入步骤104。

步骤104:将前面有向网络结构用特定的数据结构表示。即:每一个词存成一个Node节点,该节点包含的信息有:本节点序号,本节点对应的词在词典中的词号,本节点对应的词的起止时间,与该节点相邻的所有后续节点的节点序号。

相邻节点间的连接关系存成一个Link弧,该弧包含的信息有:本弧的序号,本弧对应的起止Node节点序号,本弧对应的词在词典中的词号(与本弧终止节点对应的词号相同),本弧对应的词的声学层概率得分和语言层概率得分。

用上述的Node节点和Link弧就可以表示出整个有向网络。

步骤105:利用Link弧上词的声学层概率得分和语言层概率得分,在步骤104中形成的网络上,用前向后向算法计算每条弧上的词的后验概率,将计算结果储存在相应的弧上。每条弧上的词的后验概率是通过该弧的所有路径的概率之和比上该网络中所有路径概率之和。公式如下:

>>P>>(>w>:>t>∈>[>>t>s>>,>>t>e>>]>|>X>)>>=>>>>Σ>>W>s>>>>Σ>>W>e>>>P>>(>X>|>>W>S>>,>w>,>>W>e>>)>>P>>(>>W>s>>,>w>,>>W>e>>)>>>>P>>(>X>)>>>>>s>

>>=>>>>Σ>>W>s>>>>Σ>>W>e>>>P>>(>X>|>>W>s>>,>w>,>>W>e>>)>>P>>(>>W>s>>,>w>,>>W>e>>)>>>>>Σ>W>>P>>(>X>|>W>)>>P>>(>W>)>>>>->->->>(>1>)>>>s>

>>=>>>>Σ>>W>s>>>>Σ>>W>e>>>P>>(>X>|>>W>s>>,>w>,>>W>e>>)>>P>>(>>W>s>>,>w>,>>W>e>>)>>>>>Σ>w>>>Σ>>W>s>>>>Σ>>W>e>>>P>>(>X>|>>W>s>>,>w>,>>W>e>>)>>P>>(>>W>s>>,>w>,>>W>e>>)>>>>>>s>

其中:X代表语音特征序列:w为起止时间为ts、te的词;WswWe组成网络中一条完整的路径W;Ws为w所有可能的前续词串,而We为w所有可能的后续词串。上式的物理含义为:已知特征序列X的前提下,在[ts,te]时间段产生词w的概率。

前向后向算法为本领域技术人员公知的标准算法,因此本文中不再详述。

步骤106:遍历所有的Link弧,根据起止时间信息建立初始的混淆类(ConfusionCluster)。所谓混淆类就是由解码过程中不容易区分的词组成的类。混淆类中的词称为混淆词。混淆词相互间的鉴别性较差,在解码过程中互为干扰。由这样的混淆类组成的网络便是混淆网络。混淆类为Link弧的一个集合。它所包含的信息有:所含弧的序号,所含词的词号(只记录唯一的词号),最大最小起止时间。初始混淆类由这样一些弧组成:它们对应的词不仅词号相同而且起止时间也相同。在初始的混淆类中,每个类只含有一个词号。

按照起止时间顺序,将所有的初始混淆类进行排序。记录各初始混淆类间的连接关系,保存到二维数组order中。即:若混淆类Ci(即第i个混淆类)的某个Link弧的终止Node节点为混淆类Cj中某个Link弧的起始Node节点,则Ci与Cj是相连的order[i][j]=1。若Ci与Cj间有连接关系,且Cj与Ck相连,则认为Ci与Ck也是相连的,只不过它们不是直接相连。

不存在连接关系的初始混淆类是潜在的可以聚类的对象。

步骤107:进行第一级聚类,即对词号相同的类进行时间相似度聚类。

对于每一个混淆类,找出与之没有连接关系且对应的词号相同的所有混淆类。计算这些混淆类与本混淆类间的时间相似度,将相似度最大的那个混淆类与本混淆类合并为一个新的混淆类,并记录新混淆类与其他混淆类间的连接关系。遍历所有的混淆类,完成上面的过程。此时每个混淆类仍然只包含一个词号。

其中时间相似度计算公式为: >>SIM>>(>>C>i>>,>>C>j>>)>>=>>>>max>>>l>1>>∈>>C>i>>>>>>l>2>>∈>>C>j>>>>overlap>>(>>l>1>>,>>l>2>>)>>>>s>

l1,l2分别是混淆类Ci,Cj中的弧,overlap(l1,l2)是弧l1与l2对应的词的起止时间的重叠程度。

步骤108:进行第二级聚类,即音素相似度聚类。

遍历所有的混淆类,对于每一个混淆类,找出与之没有连接关系且时间段上有重叠的所有混淆类。计算该混淆类与所找到的混淆类间的词对应的音素相似度,将该混淆类与相似度最大的混淆类进行合并,生成一个新的混淆类,并记录新混淆类与其他所有混淆类间的连接关系。重复上面的过程,直至没有可以合并的混淆类为止。此时混淆类所包含的词号可能不止一个。

其中两个词间的音素相似度为: >>SIM>>(>>C>i>>,>>C>j>>)>>=>>>max>>>W>1>>∈>>C>i>>>>>>W>2>>∈>>C>j>>>>sim>>(>>W>1>>,>>W>2>>)>>>s>

W1、W2分别为混淆类Ci,Cj中包含的词,通过词号在词典中查找得到。sim(W1,W2)为词W1与W2对应的音素串中相同音素的数目。

步骤109:遍历所有的混淆类,计算每一个词的后验概率。词的后验概率为所有包含该词号的弧的后验概率之和。如果某个混淆类中所有词的后验概率之和小于1,为了保持概率上的统一性完整性,为其增加一个“省略词”(ellipsis),以使得每个类中所有词的后验概率之和为1。“省略词”意味着该混淆类有可能被略过。此时的网络便是最终的混淆网络。

在最终的混淆网络上,进行最大后验概率搜索。即:遍历所有的混淆类,选择其中后验概率最大的那些词组成输出的识别结果,如图9所示。如果挑选出的词为“省略词”,则表明该混淆类中的其它有意义的词没有足够的竞争力,不会出现在识别结果中。

以上是本发明提供的基于混淆网络的语音解码方法的详细步骤。

本发明首先利用三音子声学模型以及三元语言模型,对语音特征进行深度优先帧同步Viterbi-Beam搜索,输出N-Best句子或者词格。与常用的多遍解码方法不同的是,本方法不是在上次解码得到的搜索空间上,用更精细复杂的声学模型和语言模型进行再次解码。本方法并不需要更多的模型,而是重新规划由上次解码结果形成的搜索空间,利用时间相似度算法和音素相似度算法进行聚类,生成混淆网络。最后在混淆网络上用最大后验概率搜索出识别结果。本发明充分利用了前次解码结果中的信息,有效的提高了系统性能。同时,本发明减轻了模型训练的任务量。所谓训练就是用统计的方法得到模型参数的过程。要训练更精细的模型,就需要更多的训练数据和更复杂的训练手段。本发明中依据时间相似度和音素相似度,从第一遍解码的中间结果中生成了混淆网络。对于那些由于第一遍解码不够准确而导致的没有连接关系的词,有可能在混淆网络中恢复其连接关系。这就克服了已有多遍解码系统中解码失误无法修复的缺点。本发明在生成混淆网络的过程中,对满足时间相似度条件的词进行了聚类。由于Viterbi-Beam搜索固有的特性,第一遍搜索后产生的中间结果中存在很多起止时间稍有区别而内容相同的词。进行了时间相似度聚类后,这些词便都合成一类了。这样就有效的缩减了网络,提高了解码速率。

由于不需要更多的精密信息(或模型),本发明能够实时地完成第二遍搜索过程。实验中,通过混淆网络最大后验搜索后,系统的识别错误率可以从19.8%下降到18.6%,错误率绝对下降了1.2%,相对下降了6.0%。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号