首页> 中国专利> 一种融合用户反馈的汉语语音识别方法及系统

一种融合用户反馈的汉语语音识别方法及系统

摘要

本发明公开了融合用户反馈的汉语语音识别方法及系统,涉及语音识别领域,包括步骤1,获取输入语音,根据所述输入语音,生成词网格,并将所述词网格转换为字的候选列表;步骤2,获取用户对所述候选列表中的所述用户反馈,所述用户反馈包括:所述用户选择所述候选列表中与所述输入语音相对应的正确字,或输入与所述输入语音相对应的所述正确字;步骤3,将所述正确字以及所述正确字对应的候选列之前的各候选列的第一个候选字作为已确定文字,并以所述已确定文字为约束和指导,调整未确定文字对应的所述候选列表,生成新的候选列表;步骤4,重复所述步骤2、3,直到正确识别所述输入语音或所述用户输入新输入语音,以完成语音识别。

著录项

  • 公开/公告号CN104538032A

    专利类型发明专利

  • 公开/公告日2015-04-22

    原文格式PDF

  • 申请/专利权人 中国科学院计算技术研究所;

    申请/专利号CN201410806233.0

  • 发明设计人 王向东;杨阳;钱跃良;刘宏;

    申请日2014-12-19

  • 分类号G10L15/26(20060101);G10L15/28(20130101);

  • 代理机构11006 北京律诚同业知识产权代理有限公司;

  • 代理人祁建国;梁挥

  • 地址 100190 北京市海淀区中关村科学院南路6号

  • 入库时间 2023-12-18 08:20:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-02-06

    授权

    授权

  • 2015-05-20

    实质审查的生效 IPC(主分类):G10L15/26 申请日:20141219

    实质审查的生效

  • 2015-04-22

    公开

    公开

说明书

技术领域

本发明涉及语音识别技术领域,特别涉及一种融合用户反馈的汉语语音识 别方法及系统。

背景技术

近年来,计算机自动语音识别技术取得了长足的进展,涌现出了一批代表 性的应用,但是,由于当前语音识别技术自身的限制,识别错误仍然不可避免, 而很多情况下少数几个错字就能改变整个句子的语义,因而大大影响了用户的 体验和对语音识别技术的热情。

为解决当前语音识别技术与实际应用需求之间的矛盾,一些研究者将语音 识别和人机交互技术相结合,提出了融合用户反馈的语音识别错误修正方法, 其主要特点是提供便捷的交互界面辅助用户对识别结果进行反馈和修正,以得 到高准确率的识别文本。这些反馈方式包括结合键盘输入、语音重新输入 (re-speaking)、手写输入等的多通道输入和候选选择。近年来,以词为单位 的候选选择受到了研究者的重视,该方式下系统不仅显示每句话的识别结果, 而且为识别结果中的每个词同时提供多个候选,当第一候选识别错误时,用户 可通过选择其它候选词来纠正识别错误,这种方法可将相当一部分错误修正工 作以点击或触摸的形式实现,用户界面友好、操作效率较高,但是,当识别错 误较多时,用户需要查看各候选列并进行选择,还需要采用键盘等设备输入不 在候选列表中的字词,人工操作负担仍然相对较重,因此,提高语音识别结果 的正确率,减少所需的修正操作,特别是键盘输入操作,仍然是当前研究的重 点,而在提高语音识别正确率方面,除了提高通用识别引擎的性能外,针对用 户正在输入的语音,自动学习用户反馈中的包含的隐含信息,快速调整识别结 果,对于提高识别性能、提升用户体验,也具有重要作用。

发明内容

针对现有技术的不足,本发明提出一种融合用户反馈的汉语语音识别方法 及系统。

本发明提出一种融合用户反馈的汉语语音识别方法,包括:

步骤1,获取输入语音,根据所述输入语音,生成词网格,并将所述词网 格转换为字的候选列表;

步骤2,获取用户对所述候选列表中的所述用户反馈,所述用户反馈包括: 所述用户选择所述候选列表中与所述输入语音相对应的正确字,或输入与所述 输入语音相对应的所述正确字;

步骤3,,将所述正确字以及所述正确字对应的候选列之前的各候选列的 第一个候选字作为已确定文字,并以所述已确定文字为约束和指导,调整未确 定文字对应的所述候选列表,生成新的候选列表;

步骤4,重复所述步骤2、3,直到正确识别所述输入语音或所述用户输入 新输入语音,以完成语音识别。

所述的融合用户反馈的汉语语音识别方法,所述步骤3包括:

步骤31,对于所述已确定文字,创建只包括正确字/词的精简词网格;

步骤32,将未确定文字对应的所述候选列表进行词网格扩充,生成与未 确定文字对应的所述候选列表中候选列中字/词发音相近的字/词,并创建对应 的词网格节点;

步骤33,将所述精简词网格与所述用户反馈前的所述词网格中对应未确 定文字的部分相连,并将所述词网格节点加入所述词网格,生成新词网格;

步骤34,对所述新词网格进行概率重估,计算所述新词网格中各路径的 概率;

步骤35,根据所述新词网格与所述概率,生成新候选列表。

所述的融合用户反馈的汉语语音识别方法,所述步骤31包括:将所述已 确定文字切分为新词,为每个新词建立词网格节点,并在相邻新词之间创建弧 进行连接。

所述的融合用户反馈的汉语语音识别方法,所述步骤32包括:生成所述 用户反馈的候选列的下一候选列中的候选字的混淆音字;生成第一候选字与所 述正确字相同,第二候选字与所述下一候选列中的候选字发音相近的混淆音 词。

本发明还提出一种融合用户反馈的汉语语音识别系统,包括:

自动语音识别模块,用于获取输入语音,根据所述输入语音,生成词网格, 并将所述词网格转换为字的候选列表;

获取用户反馈模块,用于获取用户对所述候选列表中的所述用户反馈,所 述用户反馈包括:所述用户选择所述候选列表中与所述输入语音相对应的正确 字,或输入与所述输入语音相对应的所述正确字;

调整候选列表模块,用于将所述正确字以及所述正确字对应的候选列之前 的各候选列的第一个候选字作为已确定文字,并以所述已确定文字为约束和指 导,调整未确定文字对应的所述候选列表,生成新的候选列表;

识别模块,用于重复运行所述获取用户反馈模块、所述调整候选列表模块, 直到正确识别所述输入语音或所述用户输入新输入语音,以完成语音识别。

所述的融合用户反馈的汉语语音识别系统,所述调整候选列表模块包括: 精简模块,用于对于所述已确定文字,创建只包括正确字/词的精简词网格;

扩充模块,用于将未确定文字对应的所述候选列表进行词网格扩充,生成 与未确定文字对应的所述候选列表中候选列中字/词发音相近的字/词,并创建 对应的词网格节点;

词网格连接模块,用于将所述精简词网格与所述用户反馈前的所述词网格 中对应未确定文字的部分相连,并将所述词网格节点加入所述词网格,生成新 词网格;

词网格重估模块,对所述新词网格进行概率重估,计算所述新词网格中各 路径的概率;

新候选列表生成模块,根据所述新词网格与所述概率,生成新候选列表。

所述的融合用户反馈的汉语语音识别系统,所述精简模块包括,用于将所 述已确定文字切分为新词,为每个新词建立词网格节点,并在相邻新词之间创 建弧进行连接。

所述的融合用户反馈的汉语语音识别系统,所述扩充模块包括:用于生成 所述用户反馈的候选列的下一候选列中的候选字的混淆音字;生成第一候选字 与所述正确字相同,第二候选字与所述下一候选列中的候选字发音相近的混淆 音词。

由以上方案可知,本发明的优点在于:

本发明不同于已有的融合用户反馈的语音识别系统只能被动地接收用户 修正,本发明提供的融合用户反馈的汉语语音识别方法及系统,可以利用用户 反馈的信息动态调整候选列表,使得每当用户反馈后,都能自动提高后续候选 列表的准确率,从而可以减少用户的修正操作,从而节省人力。

附图说明

图1为融合用户反馈的汉语语音识别方法的流程和步骤图;

图2为词网格示例图;

图3为候选列表示例图;

图4为显示候选列表和获取用户反馈的界面图;

图5为基于用户反馈的候选列表动态调整示例图;

图6为基于词网格增减和重估的候选列表调整方法的流程和步骤图;

图7为精简词网格示例图;

图8为词网格连接示例图。

具体实施方式

本发明的目的是解决上述现有的融入用户反馈的语音识别系统只能被动 接收用户修正,需要耗费大量的人力才能得到正确语音识别结果,无法利用用 户反馈提高候选列表的准确率的问题。本发明提供了一种融合用户反馈的汉语 语音识别方法和系统。该方法和系统将语音识别结果表示为以汉字为单位的候 选列表显示在屏幕上,然后接收用户以候选选择和输入方式进行的修正反馈操 作,每次反馈后,自动调整候选列表,以提高用户尚未反馈的候选列表的正确 率。

如图1所示,以下为本发明的流程和步骤:

步骤1,采用自动语音识别模块,对输入语音进行自动识别。对于每一句 语音,保存其中间识别结果N-best词网格,并将词网格转换为以汉字为单位 的候选列表,显示在屏幕上。词网格(word lattice)是语音识别领域常用的 数据结构,也称为词图,本质上是一个有向无环图,词网格中的每个结点对应 一个词,每条弧为从一个结点指向另一个结点的有向连接。如果词网格中存在 从结点N1到结点N2的弧,则称N1为N2的前驱结点,N2为N1的后继结点,语音 识别本质上是在词网格上寻找一条概率最高的路径的过程,N-best词网格为 概率最高的前N条识别结果对应的结点和弧构成的词网格;所述候选列表包含 若干列,每列中的字为具有竞争关系的候选字,所有列的第一个字组成的句子 为语音识别系统的默认识别结果。汉字候选列表的生成可采用当前已有方法, 如采用专利ZL201010269306.9(一种交互式语音识别系统和方法)中的“候 选生成与错误修正模块”从词网格生成候选列表;

步骤2,对于当前显示的汉字候选列表,采用用户反馈获取界面获取用户 反馈,所述用户反馈获取界面可支持的反馈方式包括:

候选选择,即用户通过鼠标点击、触摸屏触摸、手写笔点触等方式选择显 示在屏幕上的候选列表中的某个候选字作为修正后的语音识别结果;

输入,即针对候选列表中的某列,用户通过键盘、手写等常用文字输入方 式输入正确的字,以纠正识别结果中的错误。这种方式一般用于候选列表中不 包含正确的字的情形。

步骤3,每当用户反馈后,基于用户反馈进行候选列表动态调整。本发明 通过基于词网格增减和重估对候选列表进行调整,每当用户通过候选选择或输 入修正某个字后,系统将修正后的正确字以及该字之前的各候选列的第一个候 选字连成的汉字串作为已确定的文字,并以已确定的文字为约束和指导,调整 其后未确定文字对应的候选列表,得到准确率更高的结果。把调整后的候选列 表显示在屏幕上,并接收新的反馈。重复步骤2、3直到用户认为修正完成或 切换到下一句语音。

如图6所示,步骤3中通过基于词网格增减和重估对候选列表进行调整的 主要步骤包括:词网格精简,对于系统认为已确定的文字,创建只包含正确字 词的精简词网格;词网格扩充,对于已确定的文字之后的候选列表,由于正确 的字词有可能并不在词网格上,因此对该部分候选列表对应的词网格进行扩 充,生成一批与当前候选列中的字发音相近的字和词并创建对应的词网格结 点;词网格连接,将精简词网格和本次用户反馈前的词网格中对应未确定文字 的部分连接,并将词网格扩充步骤中生成的字、词结点加入词网格中,形成新 的词网格;词网格重估,对新的词网格进行概率重估,即重新计算词网格上各 路径的概率;新候选列表生成,利用新的词网格及概率重估的结果生成新的候 选列表。

词网格精简的方法为:利用已确定的文字重新建立词网格结点和弧,生成 精简词网格,具体步骤为:将已确定的文字采用自动分词系统切分为词,然后 为每个词建立一个词网格结点,并在相邻词之间创建一条弧进行连接。

词网格扩充发生在用户通过选择候选或输入对某一候选列进行修正之后, 主要任务是:生成与当前修正的候选列的下一候选列中的候选字发音相近的字 (称为混淆音字);生成第一字与当前修正的候选列修正后的正确字相同,第 二字与当前修正的候选列的下一候选列中的候选字发音相近的二字词(称为混 淆音词),具体方法如下:

步骤a.对于当前修正的候选列Candi的下一候选列Candi+1,取出其中所有 候选字{Candi+1,1,Candi+1,2,...,Candi+1,k},其中k为该候选列中候选字的个数;对每 一个候选字Candi+1,j(1≤j≤k),取出它的拼音Pinyini+1,j

步骤b.利用预先训练好的音节混淆矩阵,计算每一候选字拼音Pinyini+1,j与 每个汉语音节phone的混淆概率,如果混淆概率大于预先设定的阈值θ,则保 留该音节phone,并称该音节为混淆音节;所述音节混淆矩阵为语音识别领域 常用的模块,为一个n×n的矩阵,其中n为汉语中音节的个数,矩阵中的元 素sij(1≤i,j≤n)给出了音节phonei被语音识别系统识别为phonej的概率;音 节混淆矩阵可通过语音数据及其对应的文本和语音识别结果预先训练得到;

对步骤a中得到的所有候选字拼音按上述方法获取混淆音节后合并、去除 重复音节,可得到一个混淆音节集合ConfPinyinSet={ConfPinyin1, ConfPinyin2,…,ConfPinyinm},其中m为混淆音节的个数;

步骤c.针对混淆音节集合ConfPinyinSet中的每一个混淆音节ConfPinyint(1≤t≤m),可由发音词典得到该音节对应的所有汉字,对于每一个汉字,计 算该字与已确定的文字中最后一个词的二元语法概率,当概率大于预先设定的 阈值δ时,才保留该字,已确定的文字中最后一个词的获取方法为将已确定的 文字采用汉语自动分词系统进行分词,并取分词结果中最后一个词;

对混淆音节集合ConfPinyinSet中的所有音节,进行上述操作,合并其保 留的汉字结果并去除重复汉字,可得到混淆音字的集合 ConfCharSet={ConfChar1,ConfChar2,…,ConfCharq},其中q为混淆音字的 个数;

步骤d.对于本次用户修正后的正确字CorrectChar,取得其拼音 CorrectPinyin,将CorrectPinyin与步骤b中得到的混淆音节集合ConfPinyinSet 中的每一个混淆音节进行组合,即对于任意ConfPinyint∈ConfPinyinSet,得到 CombinedPinyint=CorrectPinyin+ConfPinyint;查找列有所有汉语词及其拼音的词 典,如果CombinedPinyint是某个汉语词的拼音并且该汉语词的第一个字是 CorrectChar,则将该汉语词加入到集合ConfWordSet中。最后可得到一个混淆 音词的集合ConfWordSet={ConfWord1,…,ConfWord2,…,ConfWordr},其中 r为ConfWordSet中汉语词的个数;

步骤e.对于任一个混淆音字ConfCharu∈ConfCharSet,创建以ConfCharu为内 容的词网格结点;对于任一个混淆音词ConfWordv∈ConfWordSet,创建以 ConfWordv为内容的词网格结点。

词网格连接的主要任务是:将词网格精简算法得到的精简词网格与本次用 户反馈前的词网格中对应未确定文字的部分进行连接;将通过词网格扩充算法 创建的混淆音字和混淆音词对应的结点加入到新词网格中,即为这些混淆音字 和混淆音词的结点设置前驱结点和后继结点。

词网格精简算法得到的精简词网格中,各结点顺序连接,设其中最后一个 结点为Nodej,倒数第二个结点为Nodej-1,词网格连接算法的具体步骤如下:

步骤11、对于词网格扩充算法中创建的所有混淆音字结点,将每一个结 点都连接至Nodej之后作为其后继结点;

步骤12、如果Nodej对应的词为单个汉字,则执行下述操作:对于词网格 扩充算法中创建的所有混淆音词结点,将每一个结点都连接至Nodej-1之后作为 其后继结点;如果Nodej对应的词为多个汉字的词,则直接执行步骤13;

步骤13、对于当前修正的候选列Candi的下一候选列Candi+1中的所有候选 字,取得在原始词网格中与这些候选字相对应的结点,并将这些结点分为两类: 一类是结点对应的词以Candi+1中的候选字结尾的(包括结点对应的词为单个候 选字本身),另一类是结点对应的词不以Candi+1中的候选字结尾的;将第一类 结点在词网格中的后继结点放入一个集合Set中;对于第二类结点,为其中每 个结点生成一个顺序连接的结点序列,该结点序列中的每个结点分别对应原结 点对应的词中位于Candi+1中的候选字之后的汉字串经分词之后得到的一个词, 将原结点在本次用户反馈前的词网格中的所有后继结点连接至该结点序列的 最后一个结点,将该结点序列的第一个结点加入集合Set;将Set中的每一个 结点分别连接至每一个混淆音字结点之后;如果Nodej对应的词为单个汉字, 将Set中的每一个结点分别连接至每一个混淆音词结点之后;

步骤14、如果在修正当前候选列Candi时,修正后的正确字CorrectChar存 在于Candi的候选字中,则执行下述步骤,否则直接执行步骤15:取得CorrectChar 在本次用户反馈前的词网格中对应的结点,并将这些结点分为三类:第一类是 CorrectChar作为结点对应的词中的最后一个字(包括结点对应的词为 CorrectChar本身),第二类是结点对应的词为多个字且CorrectChar为其第一个 字,第三类是结点对应的词为三字或三字以上且CorrectChar不是其第一个字和 最后一个字;将第一类结点的后继结点连接至Nodej作为其后继结点;如果 Nodej的结点对应的词为单个汉字,则继续执行下述操作,否则操作结束:将 第二类结点连至Nodej-1作为其后继结点;对于第三类结点,为每个结点生成一 个顺序连接的结点序列,该结点序列中的每个结点分别对应原结点对应的词中 位于CorrectChar之后的汉字串经分词之后得到的一个词,将原结点在本次用户 反馈前的词网格中的所有后继结点连接至该结点序列的最后一个结点,将该结 点序列的第一个结点连接至Nodej作为其后继结点;

步骤15、如果在修正当前候选列Candi时,修正后的正确字CorrectChar不 存在于Candi的候选字中,则:对于当前修正的候选列Candi的所有候选字,取 得在本次用户反馈前的词网格中与这些候选字相对应的结点,并将这些结点分 为两类:一类是结点对应的词以Candi中的候选字的(包括结点对应的词为单 个候选字),另一类是结点对应的词不以Candi中的候选字结尾的;将第一类结 点在用户反馈前的词网格中的后继结点连接至Nodej作为其后继结点;如果 Nodej对应的词为单个汉字,则继续执行下述操作,否则操作结束:对于第二 类结点,为其中每个结点生成一个顺序连接的结点序列,该结点序列中的每个 结点分别对应原结点对应的词中位于Candi中的候选字之后的汉字串经分词之 后得到的一个词,将原结点在本次用户反馈前的词网格中的所有后继结点连接 至该结点序列的最后一个结点,将该结点序列的第一个结点连接至Nodej作为 其后继结点。

词网格重估是指经过对词网格连接得到的新词网格,采用语言模型重新计 算新词网格中所有路径的概率,词网格重估方法可采用语音识别领域当前常用 的各种语言模型和重估方法,如n-gram语言模型及其相应的概率计算方法。 词网格重估时采用的语言模型可以与自动语音识别模块采用的语言模型相同, 也可以不同。

新候选列表生成采用的方法与自动语音识别模块中所用的候选列表生成 方法相同,可采用当前已有的各种方法。

为了使本发明的目的、技术方案及优点更加清楚,以下结合附图及实施例, 对本发明的融合用户反馈的汉语语音识别方法及系统进一步详细说明,应当理 解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明提供了一种融合用户反馈的汉语语音识别方法及系统,融合用户反 馈的汉语语音识别方法的总体流程和步骤如附图1所示:

自动语音识别,具体步骤如下:

采用自动语音识别模块,对输入语音进行自动识别。对于较长的连续语音, 自动语音识别模块可首先将语音切分为句子;对于每一句语音,依次进行语音 识别,保存其中间识别结果N-best词网格。

自动语音识别模块可采用当前已有技术构建,也可利用第三方提供的网络 语音识别接口。在一个实施例中,自动语音识别模块采用当前已有技术构建: 声学特征为MFCC、短时能量及其一阶、二阶差分,声学模型为带调三音子的 HMM模型,语言模型为3-gram模型,词表规模为120K,解码算法为基于令牌 传递的深度优先搜索算法。

对每一句语音,保存N-best词网格作为识别结果。词网格(word lattice) 是语音识别领域常用的数据结构,也称为词图,本质上是一个有向无环图。词 网格中的每个结点对应一个词,每条弧为从一个结点指向另一个结点的有向连 接。如果词网格中存在从结点N1到结点N2的弧,则称N1为N2的前驱结点,N2为N1的后继结点。语音识别本质上是在词网格上寻找一条概率最高的路径的 过程。N-best词网格为概率最高的前N条识别结果对应的结点和弧构成的词 网格。附图2给出了一个实施例中对内容为“北京欢迎你”的语音进行识别后 得到的N-best词网格中的一部分(完整的N-best词网格较大,无法完全画在 图中),其中<s>和</s>对应两个预先定义的特殊结点,分别表示句子的开始和 结束,词网格中的每条从<s>和</s>的路径都对应一条语音识别结果,如“北 京换映你”、“背景换映你”、“背景欢迎你”、“北京欢迎你”等,词网格上每一 条弧都带有相应的概率值,表示识别结果为该弧所指向的词的概率。通常语音 识别系统的输出结果为概率最大的路径,在本实施例中为“背景欢迎你”;而 本发明则基于词网格生成候选列表,可显示多个候选结果。

候选列表生成,具体步骤如下:

将语音识别的中间结果N-best词网格转换为候选列表。候选列表包含若 干列,每列中的字为具有竞争关系的候选字,所有列的第一个字组成的句子为 语音识别系统的默认识别结果。汉字候选列表的生成可采用当前已有方法,在 一个实施例中,采用专利ZL201010269306.9(一种交互式语音识别系统和方 法)中的“候选生成与错误修正模块”从词网格生成候选列表。附图3给出了 一个实施例中由附图2中的示例词网格生成的候选列表示例。

候选列表显示,具体步骤如下:

设计相应的界面,将汉字候选列表显示在屏幕上。一个实施例中,显示候 选列表的界面如附图4所示。该界面既可用于PC,又可用于手机、平板电脑 等移动终端。该界面中间部分显示的即为候选列表,每列最多显示10个候选 字,如果某列的候选字多于10个,点击候选列下方的↑↓可滚动候选列表。

用户反馈获取,具体步骤如下,:

通过用户反馈界面获取用户反馈,支持的反馈包括候选选择和输入。一个 实施例中,用户反馈界面如附图4所示。在候选列中点击相应的候选字即可进 行候选选择,当正确答案不在候选列中时,可以在每个候选列的上方的文本框 中输入正确的字,如附图4中第4、5列的“接”、“近”。该实施例的界面同时 支持PC和手机、平板电脑等移动终端。在PC时采用鼠标点击选择候选,键盘 输入文字;在移动终端时则采用触摸屏进行选择,采用触摸屏虚拟键盘进行文 字输入。

基于词网格增减和重估的候选列表调整,具体如下所示:

本发明中可利用用户反馈信息,动态调整候选列表,采用的方法为基于词 网格增减和重估的候选列表调整方法。该方法可实时响应用户的修正操作,每 当用户通过候选选择或输入修正某个字后,系统将修正后的正确字以及该字之 前的各候选列的第一个候选字连成的汉字串作为已确定的文字,并以已确定的 文字为约束和指导,调整其后未确定文字对应的候选列表,得到准确率更高的 结果。附图5给出了一个示例:语音对应的正确文本为“再次沉积到汽车”。 在左侧的初始结果中,“沉积到”三个字在第一候选中识别错误。而当用户点 击“沉”进行修正后,系统将自动将候选列表调整后右侧的结果,“积”、“到” 两个字自动出现在第一候选中,避免了用户的选择操作。

基于词网格增减和重估的候选列表调整方法的流程如附图6所示,包括5 个步骤:词网格精简,词网格扩充,词网格连接,词网格重估,新候选列表生 成。

词网格精简,具体步骤如下所示:

词网格精简的方法为:利用已确定的文字重新建立词网格结点和弧,生成 精简词网格。具体步骤为:将已确定的文字采用自动分词系统切分为词,然后 为每个词建立一个词网格结点,并在相邻词之间创建一条弧进行连接。在一个 实施例中,自动分词系统采用第三方提供的ICTCLAS分词系统。

附图7给出了一个实施例中词网格精简的一个示例:一句语音对应的正确 结果是“中国是一个幅员辽阔的国家”,通过识别引擎得到的初始结果是“中 国是一个幅员辽郭得国家”。用户首先会对从左到右检查识别结果,当用户发 现“郭”这个字不正确时,会将该字修正为正确答案“阔”,这时,可以得到 已确定的文字“中国是一个幅员辽阔”,而剩余部分还未由用户校验,因此作 为未确定的文字。对于已确定的文字“中国是一个幅员辽阔”,采用ICTCLAS 分词系统对该部分进行分词得到“中国/是/一个/幅员/辽阔”,为分词后得到 的每个词创建结点,并用弧将有先后关系的节点连接起来,得到的精简词网格 如附图7所示。其中的<s>是系统定义的特殊结点,表示句子开始。

词网格扩充,具体步骤如下所示:

词网格扩充发生在用户通过选择候选或输入对某一候选列进行修正之后, 主要任务是:生成与当前修正的候选列的下一候选列中的候选字发音相近的字 (称为混淆音字);生成第一字与当前修正的候选列修正后的正确字相同,第 二字与当前修正的候选列的下一候选列中的候选字发音相近的二字词(成为混 淆音词),具体方法如下:

步骤111、对于当前修正的候选列Candi的下一候选列Candi+1,取出其中所 有候选字{Candi+1,1,Candi+1,2,...,Candi+1,k},其中k为该候选列中候选字的个数;对 每一个候选字Candi+1,j(1≤j≤k),取出它的拼音Pinyini+1,j

步骤112、利用预先训练好的音节混淆矩阵,计算每一候选字拼音Pinyini+1,j与每个汉语音节phone的混淆概率,如果混淆概率大于预先设定的阈值θ,则 保留该音节phone,并称该音节为混淆音节;所述音节混淆矩阵为语音识别领 域常用的模块,为一个n×n的矩阵,其中n为汉语中音节的个数,矩阵中的 元素sij(1≤i,j≤n)给出了音节phonei被语音识别系统识别为phonej的概率; 音节混淆矩阵可通过语音数据及其对应的文本和语音识别结果预先训练得到;

对步骤111中得到的所有候选字拼音按上述方法获取混淆音节后合并、去 除重复音节,可得到一个混淆音节集合ConfPinyinSet={ConfPinyin1, ConfPinyin2,…,ConfPinyinm},其中m为混淆音节的个数;

步骤113、针对混淆音节集合ConfPinyinSet中的每一个混淆音节 ConfPinyint(1≤t≤m),可由发音词典得到该音节对应的所有汉字,对于每一个 汉字,计算该字与已确定的文字中最后一个词的二元语法概率,当概率大于预 先设定的阈值δ时,才保留该字。已确定的文字中最后一个词的获取方法为将 已确定的文字采用汉语自动分词系统进行分词,并取分词结果中最后一个词;

对混淆音节集合ConfPinyinSet中的所有音节,进行上述操作,合并其保 留的汉字结果并去除重复汉字,可得到混淆音字的集合 ConfCharSet={ConfChar1,ConfChar2,…,ConfCharq},其中q为混淆音字的 个数;

步骤114、对于本次用户修正后的正确字CorrectChar,取得其拼音 CorrectPinyin,将CorrectPinyin与步骤112中得到的混淆音节集合ConfPinyinSet 中的每一个混淆音节进行组合,即对于任意ConfPinyint∈ConfPinyinSet,得到 CombinedPinyint=CorrectPinyin+ConfPinyint;查找列有所有汉语词及其拼音的词 典,如果CombinedPinyint是某个汉语词的拼音并且该汉语词的第一个字是 CorrectChar,则将该汉语词加入到集合ConfWordSet中。最后可得到一个混淆 音词的集合ConfWordSet={ConfWord1,…,ConfWord2,…,ConfWordr},其中 r为ConfWordSet中汉语词的个数;

步骤115、对于任一个混淆音字ConfCharu∈ConfCharSet,创建以ConfCharu为 内容的词网格结点;对于任一个混淆音词ConfWordv∈ConfWordSet,创建以 ConfWordv为内容的词网格结点。

在一个实施例中,一句语音对应的正确结果是“制定喷漆修复的计划”, 通过识别引擎得到的初始结果是“制定本气修复的计划”。当用户修正到“本” 对应的候选列,发现该列的所有候选都不包含正确字“喷”,因此用户通过输 入将当前列修正为“喷”,此时,算法会查看“本”字的下一列“气”字所处 的列。假设“气”还有其它候选“起、奇”,首先获取“气”这一列所有候选 的拼音{qi},接着利用音节混淆矩阵计算{qi}与各汉语音节的混淆概率,经阈 值(设置为0.6)过滤后得到混淆音节集合{qi,ji}。对拼音“qi”、“ji”查 找所有汉字,通过阈值(设置为0.5)限制保留语言模型得分较高的字,最终 得到了一批混淆音字{其、七、几、记}。另外,取“喷”字的拼音“pen”,与 之前得到的混淆音节{qi,ji}组合,得到两个音节组合{pen qi,pen ji},对 音节组合查找对应的汉字词组,得到{喷漆、喷气、盆亓、喷剂}。由于“盆亓” 的第一个字“盆”不是用户输入的修正字“喷”,因此从集合中删除“盆亓” 这个词,最终得到混淆音词集合{喷漆、喷气、喷剂}。最后,为得到的混淆音 字“其”、“七”、“几”、“记”和混淆音词“喷漆、喷气、喷剂”分别建立词网 格结点。

词网格连接,具体如下所示:

词网格连接的主要任务是:将词网格精简算法得到的精简词网格与本次用 户反馈前的词网格中对应未确定文字的部分进行连接;将通过词网格扩充算法 创建的混淆音字和混淆音词对应的结点加入到词网格中,即为这些混淆音字和 混淆音词的结点设置前驱结点和后继结点。

词网格精简算法得到的精简词网格中,各结点顺序连接,设其中最后一个 结点为Nodej,倒数第二个结点为Nodej-1。词网格连接算法的具体步骤如下:

步骤211、对于词网格扩充算法中创建的所有混淆音字结点,将每一个结 点都连接至Nodej之后作为其后继结点;

步骤212、如果Nodej对应的词为单个汉字,则执行下述操作:对于词网 格扩充算法中创建的所有混淆音词结点,将每一个结点都连接至Nodej-1之后作 为其后继结点;如果Nodej对应的词为多个汉字的词,则直接执行步骤213;

步骤213、对于当前修正的候选列Candi的下一候选列Candi+1中的所有候选 字,取得在原始词网格中与这些候选字相对应的结点,并将这些结点分为两类: 一类是结点对应的词以Candi+1中的候选字结尾的(包括结点对应的词为单个候 选字本身),另一类是结点对应的词不以Candi+1中的候选字结尾的;将第一类 结点在词网格中的后继结点放入一个集合Set中;对于第二类结点,为其中每 个结点生成一个顺序连接的结点序列,该结点序列中的每个结点分别对应原结 点对应的词中位于Candi+1中的候选字之后的汉字串经分词之后得到的一个词, 将原结点在本次用户反馈前的词网格中的所有后继结点连接至该结点序列的 最后一个结点,将该结点序列的第一个结点加入集合Set;将Set中的每一个 结点分别连接至每一个混淆音字结点之后;如果Nodej对应的词为单个汉字, 将Set中的每一个结点分别连接至每一个混淆音词结点之后;

步骤214、如果在修正当前候选列Candi时,修正后的正确字CorrectChar存 在于Candi的候选字中,则执行下述步骤,否则直接执行步骤215:取得 CorrectChar在本次用户反馈前的词网格中对应的结点,并将这些结点分为三 类:第一类是CorrectChar作为结点对应的词中的最后一个字(包括结点对应的 词为CorrectChar本身),第二类是结点对应的词为多个字且CorrectChar为其第一 个字,第三类是结点对应的词为三字或三字以上且CorrectChar不是其第一个字 和最后一个字;将第一类结点的后继结点连接至Nodej作为其后继结点;如果 Nodej的结点对应的词为单个汉字,则继续执行下述操作,否则操作结束:将 第二类结点连至Nodej-1作为其后继结点;对于第三类结点,为每个结点生成一 个顺序连接的结点序列,该结点序列中的每个结点分别对应原结点对应的词中 位于CorrectChar之后的汉字串经分词之后得到的一个词,将原结点在本次用户 反馈前的词网格中的所有后继结点连接至该结点序列的最后一个结点,将该结 点序列的第一个结点连接至Nodej作为其后继结点;

步骤215、如果在修正当前候选列Candi时,修正后的正确字CorrectChar不 存在于Candi的候选字中,则:对于当前修正的候选列Candi的所有候选字,取 得在本次用户反馈前的词网格中与这些候选字相对应的结点,并将这些结点分 为两类:一类是结点对应的词以Candi中的候选字结尾的(包括结点对应的词 为单个候选字本身),另一类是结点对应的词不以Candi中的候选字结尾的;将 第一类结点在用户反馈前的词网格中的后继结点连接至Nodej作为其后继结 点;如果Nodej对应的词为单个汉字,则继续执行下述操作,否则操作结束: 对于第二类结点,为其中每个结点生成一个顺序连接的结点序列,该结点序列 中的每个结点分别对应原结点对应的词中位于Candi中的候选字之后的汉字串 经分词之后得到的一个词,将原结点在本次用户反馈前的词网格中的所有后继 结点连接至该结点序列的最后一个结点,将该结点序列的第一个结点连接至 Nodej作为其后继结点。

下面给出一个实施例,以形象地说明词网格连接算法的步骤,如附图8 所示:

在附图8所示实施例中,用户通过候选选择修正确定了“人”字,从而得 到已确定的文字“中国人”。在词网格精简算法中,通过分词程序得到“中国/ 人”这两个词,然后创建了附图8中最左边框图中的精简词网格。附图8中, 左数第2个框图是候选字“人”在用户反馈前的词网格中对应的节点及其后 续结点。另一方面,通过词网格扩充算法,得到了一个混淆音字结点“铭”和 一个混淆音词结点“人命”,如附图8中左数第3个框图所示。

在词网格连接算法中:

步骤311、将混淆音字结点“铭”连接至精简词网格的最后一个结点“人” 之后;

步骤312、本例中,精简词网格中最后一个结点对应的词“人”是单个字, 所以还需要把混淆音词结点“人命”连接至精简词网格的倒数第二个结点 “中国”之后;

步骤313、当前修正的候选列的下一候选列中候选字为“是”,“似”,…, “实”,它们在用户修正前的词网格中对应的结点如附图8中左数第二个 框图中所示,全部是单个汉字的结点。因此,“是”,“似”,…,“实”对 应的结点全部连接至混淆音字“铭”和混淆音词“人命”之后;

步骤314、由于修正后的正确字“人”存在于候选列表之中,因此:取得 “人”在用户修正前的词网格中对应的所有结点,从附图8中左数第二个 框图中可以看到,共有3个对应的对点,分别是“大人物”、“人民”和“人”, 正好分别对应词网格连接算法中的3类。第一类是对应的词以“人”结尾 或只包含“人”的结点,在本例中即为“人”字对应的结点。将用户反馈 前的词网格中“人”对应结点的后继结点“名”连接至精简词网格中“人” 对应的结点之后作为其后续结点;第二类是对应的词中“人”字是第一个 字的结点,在本例中为“人民”对应的结点。将此结点连接到精简词网格 中倒数第二个结点,即“中国”对应的结点之后;第三类结点是对应的词 中“人”字既不在第一个字也不在最后一个字的,在本例中为“大人物” 对应的结点。此时,重新生成一个对应“物”的结点,原来“大人物”对 应的后续结点全部改为连接至“物”对应的结点,然后将“物”对应的结 点连接至精简词网格中最后一个结点,即“人”对应的结点之后。

最终得到的连接后的词网格如附图8中最右边框图中所示。

词网格重估,具体步骤如下:

词网格重估是指对词网格连接后得到的新词网格,采用语言模型重新计算 词网格中所有路径的概率。词网格重估方法可采用语音识别领域当前常用的各 种语言模型和重估方法,如n-gram语言模型及其相应的概率计算方法。词网 格重估时采用的语言模型可以与自动语音识别模块采用的语言模型相同,也可 以不同。在一个实施例中,采用比自动语音识别模块中词表规模更大的3-gram 语言模型。该实施例中,自动语音识别模块中词表规模为120K,词网格重估 中词表规模为600K。该实施例中,词网格重估采用公开的工具软件SRILM  Toolkit的lattice-tool工具实现。

新候选列表生成,具体步骤如下:

采用与自动语音识别模块中相同的候选列表生成模块,重新生成候选表。 在一个实施例中,采用专利ZL201010269306.9(一种交互式语音识别系统和 方法)中的“候选生成与错误修正模块”从词网格生成候选列表。

显示新候选列表并再次获取用户反馈

采用与前述步骤中相同的界面显示候选列表并获取用户反馈,直至本句修 正结束。在一个实施例中,采用附图4中所示的界面,获用户点击右上角“校 验完成”按钮,则表示修正完成。否则,将重复进行上述候选列表显示、用户 反馈获取、候选列表调整的步骤。

本发明还提供一种融合用户反馈的汉语语音识别系统,包括:

自动语音识别模块,用于获取输入语音,根据所述输入语音,生成词网格, 并将所述词网格转换为字的候选列表;

获取用户反馈模块,用于获取用户对所述候选列表中的所述用户反馈,所 述用户反馈包括:所述用户选择所述候选列表中与所述输入语音相对应的正确 字,或输入与所述输入语音相对应的所述正确字;

调整候选列表模块,用于将所述正确字以及所述正确字对应的候选列之前 的各候选列的第一个候选字作为已确定文字,并以所述已确定文字为约束和指 导,调整未确定文字对应的所述候选列表,生成新的候选列表;

识别模块,用于重复运行所述获取用户反馈模块、所述调整候选列表模块, 直到正确识别所述输入语音或所述用户输入新输入语音,以完成语音识别。

所述调整候选列表模块包括:精简模块,用于对于所述已确定文字,创建 只包括正确字/词的精简词网格,其中将所述已确定文字切分为新词,为每个 新词建立词网格节点,并在相邻新词之间创建弧进行连接;扩充模块,用于将 未确定文字对应的所述候选列表进行词网格扩充,生成与未确定文字对应的所 述候选列表中候选列中字/词发音相近的字/词,并创建对应的词网格节点,其 中生成所述用户反馈的候选列的下一候选列中的候选字的混淆音字,生成第一 候选字与所述正确字相同,第二候选字与所述下一候选列中的候选字发音相近 的混淆音词;词网格连接模块,用于将所述精简词网格与所述用户反馈前的所 述词网格中对应未确定文字的部分相连,并将所述词网格节点加入所述词网 格,生成新词网格;词网格重估模块,对所述新词网格进行概率重估,计算所 述新词网格中各路径的概率;新候选列表生成模块,根据所述新词网格与所述 概率,生成新候选列表。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号