首页 > 乐器声学 专利正文
语音识别方法、装置、设备及存储介质与流程

时间:2022-01-23 阅读: 作者:专利查询

语音识别方法、装置、设备及存储介质与流程

1.本技术涉及语音识别技术领域,具体涉及一种语音识别方法、装置、设备及存储介质。


背景技术:

2.随着移动互联网、人工智能等技术的快速发展,人机交互场景已经大量出现在人们的日常生活生产过程中,而语音识别作为人机交互的重要接口,其应用越来越广泛。
3.当前语音识别最有效的方案就是使用神经网络技术对海量数据进行学习,得到语音识别模型,该模型在通用场景中识别效果非常好。理论上在数据充足,尽可能覆盖任何词汇的情况下,可以达到非常好的识别效果。
4.但是,在涉及垂类关键字的语音识别场景下,比如拨打手机联系人电话、给手机联系人发信息、查询城市天气情况、导航定位等场景下,现有的语音识别效果非常差,通常无法准确识别用户语音,尤其是对于用户语音中的人名、地名等垂类关键字,往往无法识别成功。


技术实现要素:

5.基于上述技术现状,本技术实施例提出一种语音识别方法、装置、设备及存储介质,能够准确识别待识别语音,尤其是能够准确识别涉及垂类关键字的特定场景下的语音,特别是能准确识别语音中的垂类关键字。
6.一种语音识别方法,其特征在于,包括:
7.获取待识别语音的声学状态序列;
8.基于所述待识别语音所属场景下的垂类关键字集合及句式解码网络,构建语音识别解码网络,其中,所述句式解码网络至少通过对所述待识别语音所属场景下的文本语料进行句式归纳处理构建得到;
9.利用所述语音识别解码网络对所述声学状态序列进行解码,得到语音识别结果。
10.一种语音识别方法,其特征在于,包括:
11.获取待识别语音的声学状态序列;
12.利用语音识别解码网络对所述声学状态序列进行解码,得到第一语音识别结果,以及,利用通用语音识别模型对所述声学状态序列进行解码,得到第二语音识别结果;所述语音识别解码网络基于所述待识别语音所属场景下的垂类关键字集合及句式解码网络构建得到;
13.对所述第一语音识别结果进行声学得分激励;
14.至少从激励后的第一语音识别结果以及所述第二语音识别结果中,确定出最终的语音识别结果。
15.一种语音识别装置,其特征在于,包括:
16.声学识别单元,用于获取待识别语音的声学状态序列;
17.网络构建单元,用于基于所述待识别语音所属场景下的垂类关键字集合及句式解码网络,构建语音识别解码网络,其中,所述句式解码网络至少通过对所述待识别语音所属场景下的文本语料进行句式归纳处理构建得到;
18.解码处理单元,用于利用所述语音识别解码网络对所述声学状态序列进行解码,得到语音识别结果。
19.一种语音识别装置,包括:
20.声学识别单元,用于获取待识别语音的声学状态序列;
21.多维解码单元,用于利用语音识别解码网络对所述声学状态序列进行解码,得到第一语音识别结果,以及,利用通用语音识别模型对所述声学状态序列进行解码,得到第二语音识别结果;所述语音识别解码网络基于所述待识别语音所属场景下的垂类关键字集合及句式解码网络构建得到;
22.声学激励单元,用于对所述第一语音识别结果进行声学得分激励;
23.决策处理单元,用于至少从激励后的第一语音识别结果以及所述第二语音识别结果中,确定出最终的语音识别结果。
24.一种语音识别设备,包括:
25.存储器和处理器;
26.所述存储器与所述处理器连接,用于存储程序;
27.所述处理器,用于通过运行所述存储器中存储的程序,实现上述的语音识别方法。
28.一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时,实现上述的语音识别方法。
29.本技术提出的语音识别方法,能够基于待识别语音所属场景下的垂类关键字集合以及预先构建的该场景下的句式解码网络,构建语音识别解码网络。则在该语音识别解码网络中,包含待识别语音所属场景下的各种语音句式信息,同时包含待识别语音所属场景下的各种垂类关键字,利用该语音识别解码网络能够解码待识别语音所属场景下的任意句式、任意垂类关键字构成的语音。因此,通过构建上述的语音识别解码网络,能够准确识别待识别语音,尤其是能够准确识别涉及垂类关键字的特定场景下的语音,特别是能准确识别语音中的垂类关键字。
附图说明
30.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
31.图1是本技术实施例提供的一种语音识别方法的流程示意图;
32.图2是本技术实施例提供的一种词级句式解码网络的示意图;
33.图3是本技术实施例提供的另一种语音识别方法的流程示意图;
34.图4是本技术实施例提供的又一种语音识别方法的流程示意图;
35.图5是本技术实施例提供的又一种语音识别方法的流程示意图;
36.图6是本技术实施例提供的又一种语音识别方法的流程示意图;
37.图7是本技术实施例提供的一种文本句式网络的示意图;
38.图8是本技术实施例提供的一种发音级句式解码网络的示意图;
39.图9是本技术实施例提供的词级人名网络的示意图;
40.图10是本技术实施例提供的与图9所对应的发音级人名网络的示意图;
41.图11是本技术实施例提供的利用第二语音识别结果对第一语音识别结果进行修正的处理流程图;
42.图12是本技术实施例提供的从第一语音识别结果和第二语音识别结果中确定出最终的语音识别结果的处理流程图;
43.图13是本技术实施例提供的语音识别结果的状态网络的示意图;
44.图14是对图13所示的语音识别结果进行路径扩展后的状态网络的示意图;
45.图15是本技术实施例提供的一种语音识别装置的结构示意图;
46.图16是本技术实施例提供的另一种语音识别装置的结构示意图;
47.图17是本技术实施例提供的一种语音识别设备的结构示意图。
具体实施方式
48.本技术实施例技术方案适用于语音识别应用场景,采用本技术实施例技术方案,能够更加准确地识别语音内容,尤其是在涉及垂类关键字的特定业务场景下,能够更加准确地识别语音内容,尤其是能够准确识别语音中的垂类关键字,整体提升语音识别效果。
49.上述的垂类关键字,泛指属于同一类型的不同关键字,比如人名、地名、应用名称等分别构成不同的垂类关键字,具体例如,用户通讯录中的各个不同的人名组成人名垂类关键字,用户所处地域的各个不同的地名则组成地名垂类关键字,用户终端上所安装的各个应用的名称则组成应用名称垂类关键字。
50.上述的涉及垂类关键字的业务场景,是指在相应的交互语音中包含垂类关键字的业务场景,比如语音拨打电话、语音导航等业务场景,由于用户必须要说出打电话的人名或者导航的地名,比如,用户可能会说“给xx打电话”、“导航去yy”,其中的“xx”可能为用户手机通讯录中的任意一个人名,“yy”可能是用户所在地域的某个地名。可见,这些业务场景下的语音中包含垂类关键字(如人名、地名),所以这些业务场景为涉及垂类关键字的业务场景。
51.随着人工智能及智能终端的全面普及,人机交互场景越来越普遍,而语音识别则是人机交互的重要接口。比如,在智能终端上,很多厂商都在终端操作系统中内置了语音助手,使得用户可以通过语音操控终端,比如,用户可以通过语音给通讯里联系人打电话、发短信,或者通过语音查询城市天气,或者通过语音开启或关闭终端应用程序等。这些交互场景相对于普通的语音识别业务场景,属于特定业务场景,在这些场景下的语音多数是涉及垂类关键字(比如通讯录人名、地名、终端应用程序名称)的语音。
52.垂类关键字相对于普通的文本关键字,具有变化频繁、不可预见、用户可自定义的特点,并且垂类关键字在海量的语音识别训练语料中的占比极低,使得常规的通过海量语料训练语音识别模型的语音识别方案,往往无法胜任涉及垂类关键字的语音识别业务。
53.比如,人名相对于常规的文本预料来说,其出现率是很低的,因此即便在海量训练语料中,人名也是很罕见的,这就导致模型无法通过海量语料充分学习到人名特征。而且,
人名属于用户自定义的文本内容,其具有不可穷举、不可预见的特点,完全通过人工生成所有的人名,是不现实的。再者,用户对通讯录里的联系人名称的存储,可能并不是规范的人名,可能是昵称、代号、外号等,甚至用户可能随时修改、增删通讯录联系人,这就使得不同用户的通讯录人名具有高度多样性,根本无法通过统一的方式使得语音识别模型学习到所有的人名特征。
54.因此,常规的通过海量语料训练语音识别模型,利用该语音识别模型实现语音识别功能的技术方案,并不能完全胜任涉及垂类关键字的业务场景下的语音识别任务,尤其是对于语音中的垂类关键字,往往无法成功识别,严重影响用户体验。
55.鉴于上述技术现状,本技术实施例提出一种语音识别方法,该方法能够提高语音识别效果,尤其是能够提高涉及垂类关键字的业务场景下的语音识别效果。
56.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
57.本技术实施例提出一种语音识别方法,参见图1所示,该方法包括:
58.s101、获取待识别语音的声学状态序列。
59.具体的,基于上文介绍的本技术实施例技术方案所适用的应用场景介绍,上述的待识别语音,具体是涉及垂类关键字的业务场景下的语音数据,在该待识别语音中,包含垂类关键字的语音内容。
60.对上述的待识别语音进行端点检测、加窗分帧、特征提取等处理,获取其音频特征,该音频特征可以是梅尔频率倒谱系数mfcc特征,或者是其他任意类型的音频特征。
61.在获取到待识别语音的音频特征后,将该音频特征输入声学模型,进行声学识别,得到每帧音频的声学状态后验得分,即得到声学状态序列。该声学模型主要为神经网络结构,其通过前向计算识别每帧音频对应的声学状态及其后验得分。上述的音频帧对应的声学状态,具体是音频帧对应的发音单元,例如音频帧对应的音素或音素序列。
62.常规的语音识别技术方案是声学模型+语言模型的架构,即,先通过声学模型对待识别语音进行声学识别,实现语音特征向音素序列的映射;然后,通过语言模型对音素序列进行识别,实现音素向文本的映射。
63.按照常规的语音识别方案,上述声学识别得到的待识别语音的声学状态序列,将被输入语言模型进行解码,从而确定与待识别语音对应的文本内容。该语言模型是基于海量的训练语料训练得到的能够实现音素向文本的映射的模型。
64.与常规的语音识别方案不同,本技术实施例不利用上述的基于海量语料训练的语音模型进行声学状态序列解码,而是利用实时构建的解码网络进行解码,具体可见下文内容。
65.s102、基于所述待识别语音所属场景下的垂类关键字集合及句式解码网络,构建语音识别解码网络。
66.具体的,与常规的语言模型不同,本技术实施例在对垂类关键字业务场景下的语音进行识别时,实时地构建语音识别解码网络,用于对待识别语音的声学状态序列进行解码,得到语音识别结果。
67.上述的语音识别解码网络,由待识别语音所属场景下的垂类关键字集合,以及预先构建的该待识别语音所属场景下的句式解码网络构建得到。
68.其中,待识别语音所属场景下的句式解码网络至少通过对待识别语音所属场景下的文本语料进行句式归纳处理构建得到;
69.待识别语音所属场景,具体是指待识别语音所属的业务场景。比如,假设待识别语音为“i want to give xx a call”,则该待识别语音是属于打电话业务的语音,因此该待识别语音所属场景为打电话场景;又如,假设待识别语音为“导航去xx”,则该待识别语音是属于导航业务的语音,因此该待识别语音所属场景为导航场景。
70.本技术发明人经过研究发现,在涉及垂类关键字的业务场景下,用户语音的句式有相当大的部分是固定的句式,比如在打电话或发短信场景下,用户常用句式通常为“i want to give xx a call”或者“senda message to xxfor me”;在语音导航场景下,用户常用句式通常是“去xx(地名)”或者“导航到xx(地名)”。
71.所以,在某种特定的涉及垂类关键字的业务场景下,用户语音的句式是有规律的,或者说是可穷举的,通过对这些句式进行归纳,可以得到与该场景对应的句式网络,本技术实施例将其命名为句式解码网络。可以理解,基于上述方式构建的句式解码网络能够包含对应该场景的句式信息,当对某种场景下的所有句式的文本语料进行归纳得到句式解码网络时,该句式解码网络可以包含该场景下的任意句式。
72.作为优选的实施方式,本技术实施例通过对待识别语音所属场景下的文本语料进行句式归纳和语法槽定义处理构建得到。
73.上述的对句式中的语法槽进行定义,具体是确定句式中的文本槽在语法上的类型。在本技术实施例中,将文本句中的文本槽划分为普通语法槽和替换语法槽,其中,文本句中的非垂类关键字所在的文本槽被定义为普通语法槽,而文本句中的垂类关键字所在的文本槽被定义为替换语法槽。
74.作为一种简单示例,比如在打电话或发短信场景下,对“i want to give xx a call”或者“send a message to xx for me”这些文本语料进行句式归纳和语法槽定义,可以得到如图2所示的句式解码网络。该句式解码网络由节点和连接节点的有向弧组成,其中,有向弧对应普通语法槽和替换语法槽,有向弧上带有标签信息,用于记载槽内文本内容。具体的,将普通语法槽词条进行分词,并通过节点和有向弧串联,两个节点间的有向弧上标注有单词信息,冒号左右分别代表输入和输出信息,此处设定输入输出信息相同,单个词条分词后的多个单词进行串联,同一语法槽的不同词条进行并联,替换语法槽使用占位符“#placeholder#”进行占位,不执行扩展,节点按顺序进行编号,其中具有相同起始节点标识的单词共用一个起始节点,具有相同结束节点标识的单词共用一个结束节点。图2示例了一个比较简单的通讯录词级句式解码网络示意图,替换语法槽之前的普通语法槽包含了“i want to give”、“senda message to”和“give a call”3个词条,替换语法槽之后的普通语法槽包含了“for me”、“a call”及“a callwith her number”3个词条。节点10与节点18之间的连接说明可以直接从节点10走到结束节点,弧上的“《/s》”代表静音。
75.上述的句式解码网络的具体构建过程,可参见后文实施例的详细介绍。
76.上述的待识别语音所属业务场景下的垂类关键字集合,是指由待识别语音所属业务场景下的所有垂类关键字组成的集合。比如,假设待识别语音为语音打电话或语音发短
信场景下的语音,则待识别语音所属业务场景下的垂类关键字集合,具体可以是由用户通讯录人名构成的人名集合;假设待识别语音为语音导航场景下的语音,则待识别语音所属业务场景下的垂类关键字集合,具体可以是用户所处地域内的各个地名构成的地名集合。
77.将待识别语音所属业务场景下的垂类关键字集合中的垂类关键字,添加至句式解码网络的替换语法槽中,即可得到语音识别解码网络。可见,该解码网络中,不仅包含了待识别语音所属业务场景下的所有语音句式,而且包含了该场景下的所有垂类关键词,则,该语音识别解码网络能够识别待识别语音所属业务场景下的语音句式,并且能够识别语音中的垂类关键字,也就是能够识别该业务场景下的语音。
78.上述的语音识别解码网络的具体构建过程,将在后续实施例中详细介绍。
79.需要说明的是,作为一种优选的实施方式,本技术实施例在构建语音识别解码网络时,具体是在服务器构建,即,将待识别语音所属业务场景下的垂类关键字集合传入云端服务器,使云端服务器基于该待识别语音所属业务场景下的垂类关键字集合及预先构建的句式解码网络,构建语音识别解码网络。
80.例如,当用户对手机终端说出打电话语音指令“i want to give xxa call”时,手机终端将本地通讯录(即人名垂类关键字集合)传入云端服务器,云端服务器根据通讯录人名以及打电话场景下的句式解码网络,构建语音识别解码网络。则,在该语音识别解码网络中,包含打电话的各种句式,同时包含本次打电话的通讯录人名,利用该解码网络,能够识别用户向当前通讯录中的任意成员打电话的语音。
81.在常规技术方案中,语音识别解码网络是在用户终端本地构建的,并且不是实时构建的,而是预先构建后反复调用的。由于终端设备计算资源相对较低,导致网络构建速度慢,网络解码速度受限。而且,非实时构建的解码网络在垂类关键字集合更新时无法及时更新,影响语音识别效果。
82.而本技术实施例则是在云端服务器构建语音识别解码网络,并且是在语音识别过程中,通过执行步骤s102实时传入垂类关键字集合,并且构建语音识别解码网络,因此能够保证构建的语音识别解码网络中包含最新的垂类关键字集合,也就是包含本次识别所需的垂类关键字集合,从而能够准确识别垂类关键字。同时,基于云端服务器的强大运算能力,该语音识别解码网络将具备更强的解码性能。
83.而且,基于云端服务器的集中处理能力,不需要为每个终端分别构建语音识别解码网络,只需要云端服务器构建即可。对于与云端服务器连接的任意终端,只要终端将待识别语音信息,以及待识别语音所属业务场景的垂类关键字集合(比如终端本地存储的通讯录)传入云端服务器,云端服务器即可针对本次待识别语音构建合适的语音识别解码网络,并对本次待识别语音进行解码。
84.s103、利用所述语音识别解码网络对所述声学状态序列进行解码,得到语音识别结果。
85.通过上文介绍可见,上述构建的语音识别解码网络中,包含待识别语音所属业务场景下的句式,以及包含待识别语音所属业务场景下的垂类关键字集合。则,利用该语音识别解码网络可以识别待识别语音的语音内容。
86.例如,假设用户终端采集到用户所说的给终端通讯录中的某人打电话的语音信号,则为了识别该语音,按照上述步骤s102的介绍,利用终端本地的通讯录(该通讯录即作
为垂类关键字集合)以及预先构建的与打电话业务场景对应的句式解码网络,构建包含本地通讯录人名的语音识别解码网络,具体可参见图2所示的语音识别解码网络架构。在该语音识别解码网络中,不仅包含了所有的打电话语音句式,而且包含了本地通讯录中的全部人名,则理论上,用户通过语音控制终端向终端通讯录中的任意人员打电话时,用户所说的语句均在该语音识别解码网络中有所包含。
87.示例性的,在上述的语音识别解码网络中,包含多个由不同垂类关键字组成的、相同或不同的句式路径。当某一声学状态序列与该语音识别解码网络中的某一个或某几个句式路径的发音匹配时,即可确定该声学状态序列的文本内容为该句式路径的文本内容。因此,最终解码得到的语音识别结果,可能是该语音识别解码网络中的某一个或某几个路径的文本,即,最终得到的语音识别结果可能是一个,也可能是多个。
88.比如,假设终端采集到的用户语音为“iwant to give john a call”,则当对该语音进行声学识别得到其声学状态序列后,利用终端通讯录构建语音识别解码网络,则该语音识别解码网络中包含“i want to give xx acall”这种句式,而且包含“john”这一人名,同时,在该语音识别解码网络中还包括其他句式和其他人名。基于该语音识别解码网络,将该语音的声学状态序列与该语音识别解码网络中的各个路径进行发音匹配,可以确定该声学状态序列与“i want to give john a call”这一路径的发音相匹配,则可以得到语音识别结果“i want to give john a call”,即实现对用户语音的识别。
89.通过上述介绍可见,本技术实施例提出的语音识别方法,能够基于待识别语音所属业务场景下的垂类关键字集合以及预先构建的该业务场景下的句式解码网络,构建语音识别解码网络。则在该语音识别解码网络中,包含待识别语音所属业务场景下的各种语音句式,同时包含待识别语音所属业务场景下的各种垂类关键字,利用该语音识别解码网络能够解码待识别语音所属业务场景下的任意句式、任意垂类关键字构成的语音。因此,通过构建上述的语音识别解码网络,能够准确识别待识别语音,尤其是能够准确识别涉及垂类关键字的特定场景下的语音,特别是能准确识别语音中的垂类关键字。
90.作为一种优选的实施方式,在利用上述的语音识别解码网络对待识别语音的声学状态序列进行解码的同时,还利用通用语音识别模型对该待识别语音的声学状态序列进行解码。
91.为了便于区分,将利用上述的语音识别解码网络对待识别语音的声学状态序列进行解码得到的结果命名为第一语音识别结果,将利用上述的通用语音识别模型对待识别语音的声学状态序列进行解码得到的结果命名为第二语音识别结果。
92.参见图3所示,当执行步骤s301、获取待识别语音的声学状态序列后,分别执行步骤s302和步骤s303,构建得到语音识别解码网络,并利用该语音识别解码网络对该声学状态序列进行解码,得到第一语音识别结果;以及,执行步骤s304、利用通用语音识别模型对所述声学状态序列进行解码,得到第二语音识别结果。
93.上述的第一语音识别结果和第二语音识别结果分别可以为一个或多个。为了保证语音识别效果,各模型输出的语音识别结果最多保留5个参与最终语音识别结果的确定。
94.其中,上述的通用语音识别模型,即为常规的通过海量语料训练得到的语音识别模型,其通过学习语音的特征而识别语音对应的文本内容,而并非像上述的语音识别解码网络那样具有规范的句式。因此,该通用语音识别模型所能识别的句式更加灵活。利用该通
用语音识别模型对待识别语音的声学状态序列进行解码,能够更加灵活地识别待识别语音内容,而不受待识别语音句式限制。
95.当待识别语音不是上述的语音识别解码网络中的某种句式时,其不能被该语音识别解码网络正确解码,或者得到的第一语音识别结果不准确,但是由于该通用语音识别模型的应用,依然能够对该待识别语音进行识别解码,得到第二语音识别结果。
96.当得到第一语音识别结果和第二语音识别结果后,执行步骤s305、至少从所述第一语音识别结果和所述第二语音识别结果中,确定出最终的语音识别结果。
97.作为一种示例性的实施方式,当得到第一语音识别结果和第二语音识别结果后,根据第一语音识别结果和第二语音识别结果的声学得分,通过声学得分pk,从第一语音识别结果和第二语音识别结果中选出得到最高的一个或多个,作为最终的语音识别结果。
98.其中,上述的第一语音识别结果和第二语音识别结果的声学得分,是指在对待识别语音的声学状态序列进行解码时,根据各个声学状态序列元素的解码得分而确定的整个解码结果的得分。例如,对各个声学状态序列元素的解码得分进行求和,即可作为整个解码结果的得分。声学状态序列元素的解码得分,是指声学状态序列元素(例如音素或音素单元)被解码为某一文本的概率得分,因此整个解码结果的得分,即为整个声学状态序列被解码为某一文本的概率得分。语音识别结果的声学得分,体现了语音被识别为该语音识别结果的得分,该得分能够用于表征语音识别结果的准确度。
99.因此,根据一个或多个第一语音识别结果的声学得分,以及一个或多个第二语音识别结果的声学得分,能够体现出各识别结果的准确度,通过声学得分pk,也就是通过声学得分对比,从这些识别结果中选出得分最高的一个或多个语音识别结果,即可作为最终的语音识别结果。
100.图3所示的方法实施例中的步骤s301~s303分别对应图1所示的方法实施例中的步骤s101~s103,其具体内容请参见对应图1的方法实施例介绍。
101.更进一步的,图4示出了本技术实施例提出的另一种语音识别方法的流程示意图。
102.与图3所述的语音识别方法不同的是,参见图4所示,本技术实施例提出的语音识别方法在利用构建的语音识别解码网络和通用语音识别模型对待识别语音的声学状态序列进行解码得到第一语音识别结果和第二语音识别结果之外,还执行步骤s405、通过预先训练的场景定制模型,对所述声学状态序列进行解码得到第三语音识别结果。
103.在分别得到第一语音识别结果、第二语音识别结果和第三语音识别结果后,执行步骤s406、从所述第一语音识别结果、所述第二语音识别结果和所述第三语音识别结果中,确定出最终的语音识别结果。
104.上述的场景定制模型,是指通过对待识别语音所属场景下的语音进行语音识别训练得到的语音识别模型。该场景定制模型与上述的通用语音识别模型为相同的模型架构,与通用语音识别模型所不同的是,该场景定制模型并非利用海量的通用语料训练得到,而是利用待识别语音所属场景下的语料训练得到,因此,该场景定制模型相对于通用语音识别模型来说,其对待识别语音所属业务场景下的语音具有更高的敏感度和更高的识别率。该场景定制模型能够相对于通用语音识别模型更加准确地识别特定业务场景下的语音,而又不必像上述的语音识别解码网络那样局限于预定的句式。
105.因此,在上述的语音识别解码网络以及上述的通用语音识别模型的基础上,再加
入场景定制模型,使三种模型分别对待识别语音的声学状态序列进行解码,能够通过多种方式更加全面、深入地对待识别语音进行语音识别。
106.对于三种模型分别输出的语音识别结果,可以示例性地参照上述步骤s305的介绍,通过对第一语音识别结果、第二语音识别结果和第三语音识别结果的声学得分进行对比,从中选出声学得分最高或较高的一个或多个语音识别结果,作为最终的语音识别结果。
107.图4所示的方法实施例中的步骤s401~s404分别对应图3所示的方法实施例中的步骤s301~s304,其具体内容请参见图3对应的方法实施例的内容,此处不再赘述。
108.上述的基于多模型解码的语音识别方法的主要思想是通过多模型进行解码,然后再通过声学得分pk从多个识别结果中选出最终的识别结果。在实际应用中发现,当上述的语音识别解码网络输出的第一语音识别结果和通用语音识别模型输出的第二语音识别结果,或者场景定制模型输出的第三语音识别结果的声学得分比较相近时,该第一语音识别结果经常被第二语音识别结果或第三语音识别结果pk掉。
109.而事实上,三种模型输出的语音识别结果的得分相近的情况下,各语音识别结果的句式基本一致,只是在垂类关键字位置会有区别。而第一语音识别结果中包含更准确的垂类关键字信息,如果第一语音识别结果被pk掉,可能造成对垂类关键字识别不准确的后果。因此,当各个模型输出的识别结果的得分相近时,应当使包含准确的垂类关键字的识别结果胜出。
110.但是按照上述各实施例的介绍,并不能使第一语音识别结果胜出。
111.针对上述情况,在进行语音识别结果pk时,可以先对第一语音识别结果中的垂类关键字所在槽位的得分进行激励,使其提高一定比例,也就是对第一语音识别结果进行声学得分激励,这样使得当不同模型输出的句式相同时,第一语音识别结果能够胜出。
112.上述介绍只是概括地提出了声学得分激励的思想和必要,对于具体的声学得分激励处理,可参见后文实施例介绍。
113.在上述的声学得分激励的思想下,本技术实施例提出另一种语音识别方法,参见图5所示,该方法包括:
114.s501、获取待识别语音的声学状态序列。
115.s502、利用语音识别解码网络对所述声学状态序列进行解码,得到第一语音识别结果。以及,s503、利用通用语音识别模型对所述声学状态序列进行解码,得到第二语音识别结果;所述语音识别解码网络基于所述待识别语音所属场景下的垂类关键字集合及句式解码网络构建得到。
116.s504、对所述第一语音识别结果进行声学得分激励。
117.s505、至少从激励后的第一语音识别结果以及所述第二语音识别结果中,确定出最终的语音识别结果。
118.具体的,上述的步骤s501、s502、s503、s505的具体处理内容,均可以参见图1-图4对应的语音识别方法实施例中的相应内容,此处不再重复。
119.其中,上述的语音识别解码网络,基于待识别语音所属场景下的垂类关键字集合,以及预先通过对待识别语音所属场景下的文本语料进行句式归纳和语法槽定义处理得到的句式解码网络,构建得到。该语音识别解码网络的具体内容,可以参见上述实施例介绍,该网络的构建过程,可以参见下文实施例的具体介绍。
120.与上述实施例介绍的语音识别方法所不同的是,本技术实施例提出的语音识别方法,在进行第一语音识别结果和第二语音识别结果的声学得分pk,从而确定最终的语音识别结果之前,本技术实施例先对第一语音识别结果进行声学得分激励。
121.具体的,对第一语音识别结果进行声学得分激励,具体是对第一语音识别结果中的垂类关键字所在槽的声学得分进行激励,即对第一语音识别结果中的垂类关键字所在槽的声学得分按照激励系数进行比例缩放,该激励系数的具体取值则由业务场景以及语音识别结果的实际情况而确定,具体的声学得分激励内容,可参见后文专门介绍声学得分激励的实施例的介绍。
122.通过上述的声学得分激励处理,当第一语音识别结果与第二语音识别结果的得分相近时,也就是句式相同时,可以使第一语音识别结果的声学得分高于第二语音识别结果,从而使第一语音识别结果在声学得分pk中胜出,由此能够使得当第一语音识别结果与第二语音识别结果的得分相近时,保证最终得到的语音识别结果中的垂类关键字是相对更加准确的识别结果。
123.可见,本技术实施例提出的语音识别方法,能够基于待识别语音所属业务场景下的垂类关键字集合以及预先构建的该业务场景下的句式解码网络,构建语音识别解码网络。利用该语音识别解码网络能够解码待识别语音所属业务场景下的任意句式、任意垂类关键字构成的语音。因此,基于上述的语音识别解码网络,能够准确识别待识别语音,尤其是能够准确识别涉及垂类关键字的特定场景下的语音,特别是能准确识别语音中的垂类关键字。
124.同时,本技术实施例提出的语音识别方法,在利用上述语音识别解码网络进行解码识别的同时,还利用通用语音识别模型进行解码识别。通用语音识别模型比上述语音识别解码网络具有更高的句式灵活性,使用多模型分别对待识别语音的声学状态序列进行解码,能够通过多种方式更加全面、深入地对待识别语音进行语音识别。
125.另外,在多模型解码识别的情况下,本技术实施例对语音识别解码网络输出的语音识别结果进行声学得分激励。由于上述的语音识别解码网络相对于通用语音识别模型,对垂类关键字的识别准确度更高,因此,基于上述的声学得分激励处理,使得当语音识别解码网络输出的语音识别结果与通用语音识别模型输出的语音识别结果的得分相近时,使语音识别解码网络输出的语音识别结果能够胜出,从而保证最终的语音识别结果中的垂类关键字识别正确。
126.作为一种优选的实施方式,本技术实施例还提出另一种语音识别方法,该方法相对于图5所示的语音识别方法,增加场景定制模型,用于对待识别语音的声学状态序列进行解码。
127.参见图6所示,在执行步骤s602、利用语音识别解码网络对所述声学状态序列进行解码,得到第一语音识别结果;以及执行步骤s603、利用通用语音识别模型对所述声学状态序列进行解码,得到第二语音识别结果之外,还执行步骤s604、通过预先训练的场景定制模型,对所述声学状态序列进行解码得到第三语音识别结果。
128.其中,上述的场景定制模型通过对待识别语音所属场景下的语音进行语音识别训练得到。
129.具体的,上述的场景定制模型的功能,以及该场景定制模型的加入所带来的有益
效果,均可以参见上述的对应图4所示的语音识别方法的实施例内容,此处不再重复。
130.最后,通过执行步骤s606、从激励后的第一语音识别结果、所述第二语音识别结果和所述第三语音识别结果中,确定出最终的语音识别结果。
131.示例性的,可以按照上述实施例介绍的,通过对第一语音识别结果、第二语音识别结果和第三语音识别结果进行声学得分pk,可以从中选出声学得分较高或最高的多个或一个语音识别结果,作为最终的语音识别结果。具体的处理过程可参见上述实施例中的相应内容的介绍。
132.图6中的步骤s601~s603、s605的具体内容,请参见上述实施例中的相应步骤的具体处理内容,此处不再重复。
133.上述的各语音识别方法,在最终对多个语音识别结果进行pk、决策时,完全是根据语音识别结果的声学得分进行的,这其中完全忽略了语言模型对识别效果的影响,尤其是在上述的语音识别解码网络或场景定制模型中。这种简单直接的pk策略会极大地影响识别效果,严重时会引起误触发问题,影响用户体验。
134.对此,本技术实施例提出,在声学得分pk的基础上,对语音识别结果进行语言模型激励,使语音识别结果中融入语言模型信息,最终,通过语言得分pk选出最终的语音识别结果。
135.作为一种可选的语音识别结果决策选出方式,参见上述实施例介绍,通过语音识别解码网络、通用语音识别模型、场景定制模型分别得到第一语音识别结果、第二语音识别结果和第三语音识别结果,以及对第一语音识别结果进行声学得分激励后,从激励后的第一语音识别结果、所述第二语音识别结果和所述第三语音识别结果中,确定出最终的语音识别结果时,可以按照如下处理执行:
136.首先,根据声学得分激励后的第一语音识别结果的声学得分,以及所述第二语音识别结果的声学得分,从所述第一语音识别结果和所述第二语音识别结果中确定出候选语音识别结果。
137.具体的,本步骤处理,与上文所介绍的声学得分pk相同,通过将声学得分激励后的第一语音识别结果和第二语音识别结果进行声学得分pk,选出声学得分最高的一个或多个语音识别结果,作为候选语音识别结果。
138.然后,对所述候选语音识别结果以及所述第三语音识别结果分别进行语言模型激励。
139.具体的,上述的语言模型激励,具体是指将语音识别结果与待识别语音所属场景下的垂类关键字进行匹配,如果匹配成功,则对语音识别结果进行路径扩展,然后基于聚类的语言模型对扩展后的语音识别结果进行重新打分,完成语音识别结果在语言模型上的激励,具体的语言模型激励的处理过程,将在后文实施例中特别介绍。
140.最后,根据语言模型激励后的所述候选语音识别结果的语言得分,以及语言模型激励后的所述第三语音识别结果的语言得分,从所述候选语音识别结果和所述第三语音识别结果中确定出最终的语音识别结果。
141.具体的,参照上述的声学得分pk的策略,对语言模型激励后的候选语音识别结果和第三语音识别结果,进行语言得分pk,从中选出语言得分最高的一个或多个语音识别结果,作为最终的语音识别结果。具体的语言得分pk处理过程,可参照上述实施例介绍的声学
得分pk的处理过程,此处不再详述。
142.上述的声学得分激励、语言模型激励、候选语音识别结果的选出等步骤的执行顺序,可以在不影响整体功能实现的情况下灵活调整。
143.例如,作为一种可选的语音识别结果决策选出方式,参见上述实施例介绍,通过语音识别解码网络、通用语音识别模型、场景定制模型分别得到第一语音识别结果、第二语音识别结果和第三语音识别结果后,分别对所述第一语音识别结果、所述第二语音识别结果和所述第三语音识别结果进行语言模型激励;然后,根据语言模型激励后的第一语音识别结果、第二语音识别结果和第三语音识别结果的语言得分,通过语言得分pk,从第一语音识别结果、第二语音识别结果和第三语音识别结果中确定出最终的语音识别结果。
144.下面,将以不同的实施例分别对上述的各实施例中介绍的各语音识别方法中的处理步骤进行详细介绍。应当理解的是,由于上述的各种不同的语音识别方法相互之间存在交叉或相同的处理步骤,因此,下文各实施例介绍的处理步骤的具体实施方式,分别适用于上述的各实施例介绍的语音识别方法的相应或相关处理步骤。
145.首先,本技术对于上述的各个语音识别方法实施例中的用于构建语音识别解码网络的句式解码网络的构建过程,进行介绍。以下介绍的句式解码网络的构建过程,只是示例性的较优选的实现方案,在实际应用本技术实施例技术方案时,也可以参照本实施例中所体现的句式解码网络的功能,采用其他方式构建得到。
146.上述各实施例中所记载的待识别语音所属业务场景下的句式解码网络,可以通过执行如下步骤a1-a3构建得到:
147.a1、通过对所述待识别语音所属场景下的语料数据进行句式归纳和语法槽定义处理,构建文本句式网络。
148.待识别语音所属业务场景下的语料数据,是从实际业务场景中搜集的语音的标注数据,例如在用户语音打电话或语音发短信场景下,搜集用户打电话或发短信的指令语音,并对其进行标注,作为打电话或发短信场景下的语料数据。或者,也可以结合经验进行人工扩展,得到符合语法逻辑并且符合业务场景的语料数据。如,“iwant to give john a call”和“senda message to peter for me”分别是两个语料数据用例。因为后续直接根据语料进行句式归纳和语法槽定义,该阶段力求搜集的语料能具备较高的覆盖度,但对垂类关键字的覆盖度无要求。
149.如上文所述,在某种特定的涉及垂类关键字的业务场景下,用户语音的句式通常是有规律的,或者说是可穷举的,通过对这些句式进行归纳以及对句式中的语法槽进行分类和定义,可以得到与该业务场景对应的句式网络,本技术实施例将其命名为文本句式网络。
150.上述的对句式中的语法槽进行定义,具体是确定句式中的文本槽在语法上的类型。在本技术实施例中,将文本句中的文本槽划分为普通语法槽和替换语法槽,其中,对应非垂类关键字的文本槽被定义为普通语法槽,对应垂类关键字的文本槽被定义为替换语法槽。在普通语法槽中,存储文本句中的非垂类关键字内容,在替换语法槽中存储与垂类关键字对应的占位符。按照垂类关键字文本槽在文本中的位置的不同,普通语法槽的数量可以为一个或多个,每个垂类关键字文本槽分别对应一个替换语法槽。
151.按照上述方式构建的文本句式网络包含的元素有网络节点、连接节点的有向弧,
该文本句式网络基于abnf(增强型巴科斯范式)定义。具体可参见图7所示,在文本句式网络的有向弧上带有标签信息,该标签信息对应有向弧所对应的替换语法槽的占位符或者对应有向弧所对应的普通语法槽的文本。
152.图7是根据搜集到的打电话或发短信场景下的语料数据定义的文本句式网络。其中带有“《xxxx》”标签的有向弧称为普通语法槽,普通语法槽至少包含一个词条,而且在文本句式网络定义阶段就要完成全部词条的搜集。图7中包括两个普通语法槽,分别为《phone》和《sth》,其中《phone》对应场景语料用例中通讯录人名前面的文本词条内容,如“i want to give”和“senda message”就是《phone》语法槽的两个词条;《sth》表示用例中通讯录人名后面的文本词条内容,如“a call”和“for me”就是《sth》语法槽的两个词条。带有“xxx”标签的有向弧称为替换语法槽,所述替换语法槽是指句式定义阶段不需要附带实际词条而是只需搭配一个“#placehollder#”占位符即可,实际的词条是在构建语音识别解码网络时动态传入的。图7中的“name”就是一个替换语法槽,后续动态创建的垂类关键字网络将被插入该替换语法槽中以构成完整的语音识别解码网络。最后一种带有
“‑”
标签的有向弧称为虚弧,所述虚弧是指不具备语法槽和词条信息的有向弧,表示路径可选,虚弧必须有对应的语法槽与其对应,用来表示后续的网络构建过程中要同时创建可以跳过该语法槽的解码路径,如图7中节点2和节点4之间以及节点2与节点3之间的虚弧对应的语法槽是《sth》语法槽,表示识别结果可以不走该语法槽,图7的文本句式网络定义了两种句式,分别是《phone》+name和《phone》+name+《sth》,通过该网络得到的语音识别结果必然符合这两种句式之一,比如用例“give a call to john”就只包含普通语法槽《phone》=“give a call to”和替换语法槽name=“john”两个槽。由于真正使用时普通语法槽的词条数据较多,为了解释方便,后续实施例中只使用少量词条来描述相关概念。
153.进一步地,还可以将文本句式网络中的所有语法槽进行id标号,定义为该语法槽的slot_id字段,设置全局唯一性标识。
154.最终,句式网络定义的句式、语法槽以及普通语法槽的词条共同构成了文本句式网络。
155.a2、对所述文本句式网络的普通语法槽中的词条进行分词并按照分词结果进行单词节点扩展,得到词级句式解码网络。
156.具体的,基于上述构建的文本句式网络中的语法槽信息,解析普通语法槽词条,对普通语法槽中的词条进行分词并按照分词结果进行单词节点扩展,构建词级句式解码网络。
157.所述词级句式解码网络包含若干个节点及节点之间的有向弧。在构建词级句式解码网络时,首先对普通语法槽中的每一个词条分别进行分词,得到每个词条对应的各个单词。
158.然后,利用对应同一词条的各个单词进行单词节点扩展,即,将同一词条的分词结果通过节点和有向弧串联,得到与词条对应的单词串。两个节点间的有向弧上标注有分词得到的单词信息,其中,冒号左右分别代表输入和输出信息,此处设定输入输出信息相同。
159.最后,参照上述节点扩展方式,将单个词条分词后的多个单词进行串联,同一普通语法槽的不同词条的对应的单词串进行并联,替换语法槽使用占位符“#placeholder#”进行占位,不执行扩展,将网络节点按顺序进行编号,其中具有相同起始节点标识的单词共用
一个起始节点,具有相同结束节点标识的单词共用一个结束节点,即可得到词级句式解码网络。
160.如图2示例的一个比较简单的通讯录词级句式解码网络示意图,语法槽《phone》包含了“i want to give”、“send a message to”和“give a call”3个词条,语法槽《sth》包含了“for me”、“a call”及“a call with her number”3个词条。节点10与节点18之间的连接说明可以直接从节点10走到结束节点,弧上的“《/s》”代表静音。
161.a3、将所述词级句式解码网络的普通语法槽中的各个单词替换为对应的发音,并按照单词对应的发音进行发音节点扩展,得到发音级句式解码网络,所述发音级句式解码网络作为所述待识别语音所属场景下的句式解码网络。
162.具体的,首先,将所述词级句式解码网络的普通语法槽中的各个单词,分别替换为对应的发音。
163.示例性的,可以通过发音词典查询已有的单词与发音之间的对应关系,从而确定词级句式解码网络的普通语法槽中的每一条有向弧上标注的单词对应的发音。在此基础上,利用单词对应的发音,替换有向弧上标注的单词。
164.然后,对所述词级句式解码网络中的每个发音,分别进行发音单元划分,并利用发音对应的各个发音单元进行发音节点扩展,得到发音级句式解码网络。
165.即,对于词级句式解码网络的每条有向弧上的发音,分别确定其发音单元,并进行发音单元划分,本技术示例性地将发音划分为音素序列。比如单词“i”的发音为单音素“ay”,单词“give”的发音为音素串“g ih v”。
166.在此基础上,按照发音单元的排列顺序和数量对发音进行发音节点扩展串联。示例性的,与上述的单词节点扩展相同的,将同一发音的各个音素按照顺序通过节点和有向弧串联,得到与发音对应的音素串。然后利用发音对应的音素串替换发音,将词级句式解码网络扩展为发音级句式解码网络。在发音节点扩展过程中,替换语法槽仍不进行扩展。该发音级句式解码网络即作为待识别语音所属业务场景下的句式解码网络。
167.图8示出了一种简单的发音级句式解码网络的示意图。
168.另外,为了方便后续的在计算机中的网络结构化存储、子网络动态插入更新以及解码遍历,句式解码网络中的节点按顺序进行编号,且其中具有相同起始节点标识的发音单元共用一个起始节点,具有相同结束节点标识的发音单元共用一个结束节点。网络中的单个节点一共包括id编号、入弧数量和出弧数量3个属性字段,构成节点存储三元组,所述节点入弧是表示指向节点的有向弧,出弧是从节点发出的有向弧。网络中的单条有向弧一共包括左节点编号、右节点编号、弧上发音信息以及所属语法槽标识slot_id共4个属性字段,同时记录网络总的节点个数和弧的总数目。
169.进一步的,还可以记录语法槽在句式解码网络中的左右节点位置信息,如图8所示,普通语法槽《phone》在网络中的左节点位置为0,右节点位置为10,替换语法槽name的左节点位置为10,右节点为11,普通语法槽《sth》的左节点为11,右节点为16。
170.更进一步的,还可以将得到的发音级句式解码网络中符合条件的弧进行合并优化,并删除多余节点,以降低网络的复杂度,具体采用的方法与一般解码网络优化方法相同,不再详述。
171.完成以上步骤后得到的解码网络即是句式解码网络,可作为全局资源加载到云端
语音识别服务中,但是由于替换语法槽还未记录真正通讯录信息,所以还不具备实际解码能力。
172.基于上述构建得到的句式解码网络,结合待识别语音所属业务场景下的垂类关键字集合,能够构建得到真正用于对待识别语音的声学状态序列进行解码的语音识别解码网络。
173.本技术实施例将进一步对语音识别解码网络的构建过程进行示例介绍。
174.作为一种实施方式,本技术实施例通过执行如下步骤b1-b3,构建得到语音识别解码网络:
175.b1、获取预先构建的所述待识别语音所属场景下的句式解码网络。
176.具体的,可以预先按照上文实施例介绍构建得到待识别语音所属业务场景下的句式解码网络,此时,直接调用该句式解码网络即可。或者,可以参照上述实施例介绍,在执行步骤b1时,实时构建句式解码网络。
177.b2、基于待识别语音所属场景下的垂类关键字集合中的垂类关键字,构建垂类关键字网络。
178.具体的,待识别语音所属业务场景下的垂类关键字集合,是指由待识别语音所属业务场景下的所有垂类关键字组成的集合。比如,假设待识别语音为语音打电话或语音发短信场景下的语音,则待识别语音所属业务场景下的垂类关键字集合,具体可以是由用户通讯录人名构成的人名集合;假设待识别语音为语音导航场景下的语音,则待识别语音所属业务场景下的垂类关键字集合,具体可以是用户所处地域内的各个地名构成的地名集合。
179.本技术实施例以通讯录作为垂类关键字集合,以构建通讯里人名网络为例,对构建垂类关键字网络的具体实现过程进行介绍。
180.构建垂类关键字网络,具体可参照上述的构建句式解码网络的过程,不同的是,在构建的垂类关键字网络中不再包含语法槽信息,默认所有的语法槽都属于替换语法槽。
181.首先,基于待识别语音所属业务场景下的垂类关键字集合中的各个垂类关键字,构建词级垂类关键字网络。
182.例如,对于通讯录中的每个人名分别进行分词,得到人名中包含的各个单词,通过节点和有向弧将各个单词进行串联,得到人名对应的单词串;不同的人名对应的单词串进行并联,即构建得到词级人名网络。
183.如图9为“jack alen”、“tom”和“peter”3个联系人词条构建的词级人名网络。
184.然后,将所述词级垂类关键字网络中的各个单词替换为对应的发音,并按照单词对应的发音进行发音节点扩展,得到发音级垂类关键字网络。
185.例如,对于词级人名网络中的各个单词,分别确定其发音,以及确定发音所包含的音素,将各个音素通过节点和有向弧连接,构成音素串,然后利用发音对应的音素串替换发音,即得到发音级人名网络。
186.上述的词级垂类关键字网络的构建,以及发音替换的处理,可参见上述实施例介绍的构建句式解码网络时的相应处理内容。
187.通过上述介绍,得到发音级垂类关键字网络,该网络即为最终构建得到的垂类关键字网络。在该网络中,入弧数为0的节点为网络开始节点,出弧数为0的节点为网络结束节
点。
188.如图10所示为对图9所示的词级人名网络进行发音替换后得到的发音级人名网络。在该网络中,0号节点为网络的开始节点,8号节点为网络的结束节点。
189.b3、将所述垂类关键字网络插入所述句式解码网络,得到语音识别解码网络。
190.通过上述介绍可见,通过构建词级网络、对词级网络进行发音扩展等处理,最终构建得到的句式解码网络和垂类关键字网络,都是由节点和连接节点的有向弧构成的,在节点间的有向弧上存储发音信息或占位符。具体是,在对应句式解码网络的普通语法槽的有向弧上存储槽内文本的发音信息,在对应句式解码网络的替换语法槽的有向弧上存储占位符,在对应垂类关键字网络的各个语法槽的有向弧上存储槽内文本的发音信息。
191.在此基础上,通过有向弧将垂类关键字网络与句式解码网络的替换语法槽的左右节点分别连接,即,利用垂类关键字网络替换句式解码网络中的替换语法槽所在的有向弧,即可构建得到语音识别解码网络。
192.在将垂类关键字网络与句式解码网络的替换语法槽的左右节点分别连接时,为了保证连接后的每对相邻节点间的有向弧上都存储有效的发音信息,本技术实施例通过将垂类关键字网络的开始节点的每条出弧的右节点与替换语法槽的左节点通过有向弧连接,连接的每条有向弧上分别存储垂类关键字网络的开始节点的每条出弧上的发音信息,以及,将垂类关键字网络的结束节点的每条入弧的左节点与替换语法槽的右节点通过有向弧连接,连接的每条有向弧上分别存储垂类关键字网络的结束节点的每条入弧上的发音信息,从而构建得到语音识别解码网络。
193.作为一种更加优选的实施方式,为了能够提高垂类关键字网络插入句式解码网络的效率,本技术实施例在垂类关键字网络中的每个关键字的第一条弧和最后一条弧上分别存储与该关键字对应的唯一标识,该唯一标识可以示例性地被设置为该关键字的哈希码。例如图10所述的发音级人名网络中,节点(0,1)之间的有向弧,以及节点(7,8)之间的有向弧上分别存储与人名“jackalen”对应的哈希码。
194.相应的,本技术实施例还设置已入网关键字信息集合,在该已入网关键字信息集合中,将已插入句式解码网络的关键字的唯一标识,以及该唯一标识所在的有向弧在该句式解码网络中的左右节点编号,对应存储。
195.示例性的,上述的已入网关键字信息集合,可以采用key:value结构的hashmap存储结构,key为上述的垂类关键字对应的哈希码,value为该哈希码所在有向弧的节点编号对集合,初始时hashmap为空,整个识别服务过程中,hashmap唯一性的保存了所有动态传入的垂类关键字词条的哈希码和节点编号对,但是并不记录用户id以及用户id与垂类关键字集合的映射关系。
196.上述的已入网关键字信息集合的设置,可以便于明确已插入句式解码网络的垂类关键字信息,也就是能够明确在语音识别解码网络中已经存在的垂类关键字信息。这样,当每次执行垂类关键字网络插入时,可以通过查询该已入网关键字信息集合,确定垂类关键字是否已插入,当确定要插入的垂类关键字已经存在于语音识别解码网络中,则可以取消对当前垂类关键字的插入,继续执行对其他垂类关键字的插入操作。
197.基于上述思想,在将垂类关键字网络插入句式解码网络时,遍历垂类关键字网络的开始节点的每条出弧,对于遍历到的每一条出弧,根据该出弧上的唯一标识以及已入网
关键字信息集合,确定该唯一标识对应的关键字是否已插入句式解码网络。
198.如果该唯一标识对应的关键字未插入句式解码网络,则将遍历到的该出弧的右节点与所述替换语法槽的左节点通过有向弧连接,在该有向弧上存储遍历到的该出弧上的发音信息,并且更新该有向弧两端节点的入弧或出弧数量。
199.示例性的,在将人名网络插入句式解码网络时,遍历人名网络中的开始节点的每条出弧,对于遍历到的每一条出弧,获取该出弧上的人名哈希码,通过将该哈希码与已入网关键字信息集合中的所有哈希码进行比对,如果该哈希码与已入网关键字信息集合中的任一哈希码相匹配,则说明该哈希码对应的人名已经插入句式解码网络,此时跳过该出弧,执行对下一条出弧的哈希码判断。
200.如果遍历到的出弧的哈希码与已入网关键字信息集合中的所有哈希码均不匹配,则说明该哈希码对应的人名未插入句式解码网络,此时,将遍历到的该出弧的右节点与句式解码网络的替换语法槽的左节点通过有向弧连接,并且在连接的有向弧上存储遍历到的该出弧上的发音信息,并且更新该有向弧两端节点的入弧或出弧数量。
201.上述过程实现了垂类关键字网络的开始节点的每条出弧的右节点与句式解码网络的替换语法槽的左节点的连接。
202.相应的,对于垂类关键字网络的结束节点的每条入弧,依次进行遍历,对于遍历到的每一条入弧,根据该入弧上的唯一标识以及已入网关键字信息集合,确定该唯一标识对应的关键字是否已插入句式解码网络;
203.如果该唯一标识对应的关键字未插入句式解码网络,则将遍历到的该入弧的左节点与所述替换语法槽的右节点通过有向弧连接,在该有向弧上存储遍历到的该入弧上的发音信息。
204.示例性的,在将人名网络插入句式解码网络时,遍历人名网络中的结束节点的每条入弧,对于遍历到的每一条入弧,获取该入弧上的人名哈希码,通过将该哈希码与已入网关键字信息集合中的所有哈希码进行比对,如果该哈希码与已入网关键字信息集合中的任一哈希码相匹配,则说明该哈希码对应的人名已经插入句式解码网络,此时跳过该入弧,执行对下一条入弧的哈希码判断。
205.如果遍历到的入弧的哈希码与已入网关键字信息集合中的所有哈希码均不匹配,则说明该哈希码对应的人名未插入句式解码网络,此时,将遍历到的该入弧的左节点与句式解码网络的替换语法槽的右节点通过有向弧连接,并且在连接的有向弧上存储遍历到的该入弧上的发音信息,并且更新该有向弧两端节点的入弧或出弧数量。
206.上述过程实现了垂类关键字网络的结束节点的每条入弧的左节点与句式解码网络的替换语法槽的右节点的连接。
207.通过上述处理,对于垂类关键字网络中的每一个关键字,都将其插入了句式解码网络。在具体实施时,上述介绍的对垂类关键字网络的开始节点和结束节点的插入的执行顺序,可以灵活安排,例如可以先对垂类关键字网络的开始节点执行插入操作,也可以先对垂类关键字网络的结束节点执行插入操作,或者同时执行。
208.进一步的,当垂类关键字网络中的关键字被插入句式解码网络时,也就是该关键字所在的网络路径的第一条弧的右节点与句式解码网络的替换语法槽的左节点连接,以及该关键字所在网络路径的最后一条弧的左节点与句式解码网络的替换语法槽的右节点连
接完成后,本技术实施例将该关键字的唯一标识,以及该唯一标识所在的有向弧在该句式解码网络中的左右节点编号,对应存储至已入网关键字信息集合中。
209.例如,对于图10所述的发音级人名网络,当人名“jack alen”所在的网络路径的节点1与图8所示的句式解码网络的替换语法槽的左节点10连接,以及“jack alen”所在的网络路径的节点7与图8所示的句式解码网络的替换语法槽的右节点11连接后,以人名“jack alen”的哈希码为key,以该哈希码所在的有向弧的左右节点编号为value,存储至已入网关键字信息集合中。
210.由于本技术实施例是在云端服务器上构建语音识别解码网络,因此,各个用户均可以向云端服务器上传垂类关键字集合,而云端服务器可以基于各用户上传的垂类关键字集合,构建大规模或超大规模的语音识别解码网络,以便能够满足各种用户的调用需求。
211.而已入网关键字信息集合的设置,可以提高垂类关键字插入语音识别解码网络的效率,同时可以便于针对当前用户的语音识别需求,选择特定的解码路径。
212.例如,在用户语音拨打电话的业务场景下,按照上述方案构建的语音识别解码网络中,不但包含当前会话动态传入的通讯录词条信息,也包括其他历史会话的通讯录信息,并统一被以哈希码的形式保存在已入网关键字信息集合中。
213.当对当前会话进行识别时,理应在当前传入的通讯录范围内进行识别,以便能够准确识别用户是想与通讯录中的哪个联系人打电话。此时,需要对语音识别解码网络的路径进行更新,使得解码路径被限定在当前传入的通讯录范围内。
214.具体实现方式为:
215.遍历已入网关键字信息集合中的各个唯一标识;如果遍历到的唯一标识不是所述待识别语音所属业务场景下的垂类关键字集合中的任意关键字的唯一标识,则将该唯一标识对应的左右节点编号之间的有向弧断开。
216.仍以上述的用户语音拨打电话的业务场景为例,为了解码用户语音,利用用户通讯录以及句式解码网络构建语音识别解码网络。当完成当前通讯录插入语音识别解码网络后,遍历已入网关键字信息集合中的各个哈希码,如果遍历到的哈希码属于本次传入的通讯录中的人名哈希码,则不做处理;如果不是本次传入的通讯录中的人名哈希码,则通过查询已入网关键字信息集合,确定该哈希码对应的左右节点编号,并将该左右节点编号之间的有向弧断开。则,真正参与解码的语音识别解码网络,其实只有当前传入的通讯录所在的解码路径是导通的,因此其只能解码到与当前通讯录中的任一人名打电话的语音识别结果,这也符合用户预期。
217.可见,经过上述处理,可以使得对当前语音进行解码时,解码路径被限制在本次传入的垂类关键字集合范围内,有利于缩小路径搜索范围、提高解码效率和降低解码误差。
218.综合上述的各语音识别方法的实施例介绍可知,基于垂类关键字集合以及句式解码网络构建的语音识别解码网络,是实现涉及垂类关键字的语音识别的主要网络。
219.本技术的发明人在研究中发现,该语音识别解码网络存在两方面的不足,一方面是垂类关键字误触发的问题,另一方面是网络覆盖度不够的问题。
220.误触发问题是基于固定句式的语音识别解码网络的语音识别中最常见的问题,也是最难解决的问题。误触发是指一段音频的实际内容并不是固定句式的语音识别解码网络中的句式,但是最终结果却是固定句式的语音识别解码网络中的结果。垂类关键字误触发
是指实际结果中没有垂类关键字或者垂类关键字不在本次传入的垂类关键字集合中,但是最终结果是语音识别解码网络的结果胜出,给出一个错误的垂类关键字。例如,在打电话场景中,实际结果中没有人名或者人名不在本次传入的通讯录中,但是最终结果是语音识别解码网络输出的结果胜出,给出了一个错误的人名。
221.垂类关键字误触发一般分为以下4种:(1)垂类关键字和真实结果发音相同的误触发;(2)垂类关键字和真实结果发音相近的误触发;(3)垂类关键字和真实结果发音差距较大由于激励策略引入的误触发;(4)真实结果中没有垂类关键字,但是语音识别解码网络识别出了垂类关键字的误触发。
222.其中,关于上述的第四种误触发情况,其根本原因可以归结为是由于语音识别解码网络中的句式覆盖度不够导致的。
223.结合该垂类关键字误触发情况,本技术实施例对语音识别解码网络的句式覆盖度不够的问题,提出了相应解决方案。对于其他的误触发情况,将在后续实施例中通过其他方案予以解决和优化。
224.通过前文论述可知,语音识别解码网络是基于句式解码网络构建的,也就是基于句式构建的,这种构建网络方式的优点就是能够精准匹配出语音句式,缺点就是如果句式不在网络中就没有办法识别出来,而构建网络所用的语料,往往不能覆盖所有场景下的所有句式,所以语音识别解码网络就会引入一个问题,那就是句式覆盖度不够高的问题。
225.而通用语音识别模型是基于海量数据训练出来的,而且句式具有扩展性,句式非常丰富。在特定业务场景下,通用语音识别模型的结果错误主要都是垂类关键字识别错误,主要是因为通用语音识别模型包含了语料训练时候的语言分,而语料中往往并不能很好的拟合出垂类关键字的得分。虽然通用语音识别模型识别的垂类关键字是错误的,但是其句式是正确的,主要是因为句式可以通过训练数据拟合出来。
226.总结就是,通用语音识别模型的识别结果的句式信息更加可靠,而语音识别解码网络的识别结果的垂类关键字信息更加可靠。基于这个思路,本案提出基于通用语音识别模型的句式来解决语音识别解码网络句式覆盖度不高的问题。
227.具体方案是,在分别利用按照本技术技术思想构建得到的语音识别解码网络以及通用语音识别模型,对待识别语音的声学状态序列进行解码得到第一语音识别结果和第二语音识别结果的前提下,根据第二语音识别结果,对第一语音识别结果进行修正。
228.结合前文论述可知,相对来说,第一语音识别结果中的垂类关键字内容是更加准确的,而第二语音识别结果中的句式信息更加准确。因此,当利用第二语音识别结果对第一语音识别结果进行修正时,应当是针对第一语音识别结果中的非垂类关键字内容进行修正,使其句式更加准确。
229.因此,本技术实施例将第一语音识别结果中的内容划分为垂类关键字内容和非垂类关键字内容,相应的,按照第二语音识别结果与第一语音识别结果的内容对应关系,将第二语音识别结果中的内容划分为参考文本内容和非参考文本内容,其中,第二语音识别结果中的参考文本内容,是指第二语音识别结果中的、与第一语音识别结果中的非垂类关键字内容相匹配的文本内容。
230.与第一语音识别结果中的非垂类关键字内容相匹配的文本内容,具体可以是与第一语音识别结果中的非垂类关键字内容的字符串最相似,或者相似度大于设定阈值的字符
串内容。
231.基于上述的文本内容划分,上述的根据第二语音识别结果对第一语音识别结果进行修正,具体是利用第二语音识别结果中的参考文本内容,对第一语音识别结果中的非垂类关键字内容进行修正,得到修正后的第一语音识别结果。
232.上述的修正过程,具体可通过执行如下步骤c1-c3实现:
233.c1、从所述第一语音识别结果中确定出垂类关键字内容和非垂类关键字内容,以及,从所述第二语音识别结果中确定出与所述第一语音识别结果中的非垂类关键字内容对应的文本内容,作为参考文本内容。
234.作为一种优选的实施方式,本技术实施例基于编辑距离算法,将第一语音识别结果和第二语音识别结果进行匹配,从第二语音识别结果中确定出参考文本内容。
235.具体而言,首先,根据编辑距离算法确定第一语音识别结果与第二语音识别结果之间的编辑距离矩阵。在该编辑距离矩阵中,包含第一语音识别结果中的各个字符与第二语音识别结果中的各个字符之间的编辑距离。
236.然后,根据该编辑距离矩阵,以及第一语音识别结果中的非垂类关键字内容,从第二语音识别结果中确定出与第一语音识别结果中的非垂类关键字内容对应的文本内容,作为参考文本内容。
237.按照第一语音识别结果中的垂类关键字的位置不同,第一语音识别结果中的非垂类关键字内容,可能分为垂类关键字之前的字符串,和/或,垂类关键字之后的字符串。
238.以垂类关键字之前的字符串为例,根据该部分字符串以及上述的编辑距离矩阵,从第二语音识别结果中选出与该部分字符串的编辑距离最小的字符串,即为与该部分字符串对应的参考文本内容。同理,对于垂类关键字之后的字符串,也可以通过上述方法确定与其对应的参考文本内容。
239.c2、根据所述第二语音识别结果中的参考文本内容,以及所述第一语音识别结果中的非垂类关键字内容,确定修正后的非垂类关键字内容。
240.作为一种可选的实施方式,本技术实施例根据第二语音识别结果中的参考文本内容与第一语音识别结果中的非垂类关键字内容的字符差异,将第二语音识别结果中的目标文本内容或第一语音识别结果中的非垂类关键字内容,确定为修正后的非垂类关键字内容;
241.其中,第二语音识别结果中的目标文本内容,是指第二语音识别结果中的、与第一语音识别结果中的非垂类关键字内容的位置相对应的文本内容。
242.具体的,第二语音识别结果中的目标文本内容在第二语音识别结果中的位置,与第一语音识别结果中的非垂类关键字内容在第一语音识别结果中的位置相同。
243.例如,假设第一语音识别结果中的非垂类关键字内容为位于第一语音识别结果中的垂类关键字之前的文本内容,则第二语音识别结果中的目标文本内容,具体是第一语音识别结果中的垂类关键字的位置映射到第二语音识别结果中的位置之前的文本内容。其中,第一语音识别结果中的垂类关键字的位置相第二语音识别结果的映射,可以基于上述的编辑距离矩阵实现。
244.下面,以打电话场景为例,介绍修正后的非人名内容的确定过程。在下文介绍中,以第一语音识别结果中的人名处于第一语音识别结果的句中位置为例进行说明,重点说明
对于第一语音识别结果中的人名前字符串的修正处理过程。参照下文介绍,对于人名后字符串,也可以进行相应的修正处理。
245.当根据第一语音识别结果与第二语音识别结果之间的编辑距离矩阵,以及第一语音识别结果中的非垂类关键字内容,从第二语音识别结果中确定出参考文本内容后,将第二语音识别结果中的参考文本内容与第一语音识别结果中的非垂类关键字内容进行比对,确定第二语音识别结果中的参考文本内容与第一语音识别结果中的非垂类关键字内容是否相同。
246.如果相同,则将所述第二语音识别结果中的目标文本内容,确定为修正后的非垂类关键字内容;
247.如果不同,则确定所述第二语音识别结果是否比所述第一语音识别结果中的非垂类关键字内容的字符数量多,并且两者的字符数量差异不超过设定阈值;
248.如果所述第二语音识别结果比所述第一语音识别结果中的非垂类关键字内容的字符数量多,并且两者的字符数量差异不超过设定阈值,则将所述第二语音识别结果中的目标文本内容,确定为修正后的非垂类关键字内容;
249.如果所述第二语音识别结果比所述第一语音识别结果中的非垂类关键字内容的字符数量少,和/或两者的字符数量差异超过设定阈值,则将所述第一语音识别结果中的非垂类关键字内容,确定为修正后的非垂类关键字内容。
250.具体而言,参见图11所示的修正处理过程,根据第一语音识别结果与第二语音识别结果之间的编辑距离矩阵,以及第一语音识别结果中的人名前字符串,计算人名前字符串与第二语音识别结果的局部最大子序列,该局部最大子序列即为从第二语音识别结果中确定出的参考文本内容。
251.然后,判断该最大子序列是否为人名前字符串,也就是判断该参考文本内容是否与人名前字符串相同。
252.如果相同,则将第二语音识别结果中的目标文本内容确定为修正后的人名前字符串。此时,第二语音识别结果中的目标文本内容,具体是第一语音识别结果中的人名的位置,根据第一语音识别结果和第二语音识别结果之间的编辑距离矩阵,映射到第二语音识别结果中的位置之前的文本内容。
253.如果不同,则判断该第二语音识别结果是否比该人名前字符串的字符数量多;
254.如果该第二语音识别结果的字符数量不比人名前字符串的字符数量多,则保持第一语音识别结果中的人名前字符串不变,也就是将第一语音识别结果中的人名前字符串确定为修正后的人名前字符串。
255.如果第二语音识别结果的字符数量比人名前字符串的字符数量多,则进一步判断两者的字符串数量差异是否超过设定阈值,具体是判断第二语音识别结果的字符数量比人名前字符串的字符数量多出的数量是否超过人名前字符串字符数量的20%。
256.如果超过该设定阈值,则保持第一语音识别结果中的人名前字符串不变,也就是将第一语音识别结果中的人名前字符串确定为修正后的人名前字符串。
257.如果不超过该设定阈值,则将第二语音识别结果中的目标文本内容确定为修正后的人名前字符串。
258.同理,对于第一语音识别结果中的人名后字符串,也可以参照上述介绍,确定修正
后的人名后字符串。
259.c3、利用所述修正后的非垂类关键字内容,以及所述垂类关键字内容,组合得到修正后的第一语音识别结果。
260.具体的,将修正后的非垂类关键字内容,以及垂类关键字内容,按照原非垂类关键字内容与垂类关键字内容的位置关系进行组合,得到的组合结果,即作为修正后的第一语音识别结果。
261.例如图11所示,将修正后的人名前字符串、人名字符串以及修正后的人名后字符串依次进行拼接组合,即得到修正后的第一语音识别结果。
262.按照上述的处理过程对第一语音识别结果进行修正,可以使得语音识别解码网络的输出结果不仅包含更准确的垂类关键字信息,而且能够融合通用语音识别模型所识别到的准确的句式信息,从而使得语音识别解码网络的识别结果更加准确、句式覆盖度更高,同时能够解决由于语音识别解码网络的句式覆盖度低造成的识别误触发问题。
263.在上文实施例中介绍到,当有多个模型分别对待识别语音的声学状态序列进行解码时,为了使语音识别解码网络的结果能够在最终的pk中胜出,会对语音识别解码网络的结果进行激励,包括声学激励和语言激励。在激励过程中,如果激励不当,或者会造成激励不到位,或者会导致过度激励造成误触发,造成如上文所述的第二种和第三种垂类关键字误触发情况,即:(2)垂类关键字和真实结果发音相近的误触发;(3)垂类关键字和真实结果发音差距较大由于激励策略引入的误触发。
264.为了改善上述问题,以便能够通过合理的激励,既保证语音识别解码网络的结果能够不被其他模型的结果pk掉,又能够尽量避免由于过度激励造成语音识别解码网络的识别误触发,本技术实施例对上述的激励方案进行研究,提出了优选的激励方案。
265.本技术实施例首先提出,当利用语音识别解码网络以及通用语音识别模型对待识别语音的声学状态序列进行解码时,在从语音识别解码网络输出的第一语音识别结果,以及通用语音识别模型输出的第二语音识别结果中确定最终的语音识别结果时,可以参见图12所示的流程,按照如下步骤d1-d3的处理,确定最终的语音识别结果:
266.d1、通过将所述第一语音识别结果和所述第二语音识别结果进行对比,确定所述第一语音识别结果和所述第二语音识别结果的匹配度,并基于所述第一语音识别结果和所述第二语音识别结果的匹配度确定所述第一语音识别结果的置信度。
267.具体的,将第一语音识别结果和第二语音识别结果按照编辑距离算法计算字符编辑距离,从而确定两者的匹配度。
268.在确定第一语音识别结果和第二语音识别结果的匹配度后,以第一语音识别结果和第二语音识别结果的匹配度为基础,进一步确定第一语音识别结果的置信度。
269.示例性的,在确定第一语音识别结果的置信度时,首先判断第一语音识别结果和第二语音识别结果的匹配度是否大于设定的匹配度阈值。该匹配度阈值是由多个测试集合统计出的一个对识别贡献率最大的值。
270.如果大于设定的匹配度阈值,则根据所述第一语音识别结果的各个帧的声学得分,计算确定所述第一语音识别结果的置信度。即,将第一语音识别结果的各帧的声学得分进行累加或加权累加,累加结果作为第一语音识别结果的置信度。
271.如果不大于设定的匹配度阈值,则利用所述第一语音识别结果中的垂类关键字内
容以及所述第二语音识别结果构建得到解码网络,利用该解码网络重新对所述声学状态序列进行解码,并利用解码结果更新所述第一语音识别结果;根据更新后的第一语音识别结果的各个帧的声学得分,计算确定第一语音识别结果的置信度。
272.具体的,如果第一语音识别结果和第二语音识别结果的匹配度不大于设定的匹配度阈值,则利用第一语音识别结果中的垂类关键字,以及第二语音识别结果的句式,也就是第二语音识别结果中的除垂类关键字对应内容之外的内容,构建得到一个微型的解码网络。可知,该微型的解码网络,只有一条解码路径。
273.利用该微型的解码网络重新对上述的待识别语音的声学状态序列进行解码,得到解码结果,并利用该解码结果作为新的第一语音识别结果。然后,利用更新后的第一语音识别结果的各个帧在解码时的声学得分,通过对各帧的声学得分进行累加或加权累加,作为最终确定的第一语音识别结果的置信度。
274.当第一语音识别结果的置信度大于预设的置信度阈值时,执行步骤d2、根据所述第一语音识别结果的声学得分和所述第二语音识别结果的声学得分,从所述第一语音识别结果和所述第二语音识别结果中选出最终的语音识别结果。
275.具体的,上述的置信度阈值,是指通过试验确定的,能够使第一语音识别结果在与其他语音识别结果进行得分pk时能够胜出的得分阈值。
276.第一语音识别结果的置信度大于预设的置信度阈值,则说明第一语音识别结果凭借其自身的置信度,能够在与其他语音识别结果的声学得分pk中,不被轻易pk掉。因此,此时可以直接根据第一语音识别结果的声学得分,以及第二语音识别结果的声学得分,对两者进行声学得分pk,从中选出一个或多个声学得分最高的语音识别结果,作为最终的语音识别结果。
277.当所述第一语音识别结果的置信度不大于预设的置信度阈值时,执行步骤d3、对所述第一语音识别结果进行声学得分激励,并根据激励后的第一语音识别结果的声学得分以及所述第二语音识别结果的声学得分,从所述第一语音识别结果和所述第二语音识别结果中选出最终的语音识别结果。
278.具体的,如果第一语音识别结果的置信度不大于预设的置信度阈值,则说明该第一语音识别结果的置信度较低,也就是其声学得分较低,在与其他语音识别结果进行声学得分pk时,会被其他语音识别结果pk掉,从而使最终选出的语音识别结果中丢失第一语音识别结果中所包含的更准确的垂类关键字信息,可能造成识别错误,尤其是可能造成垂类关键字识别错误。
279.此时,为了保证第一语音识别结果在后续的声学得分pk中不被轻易pk掉,本技术实施例对第一语音识别结果进行声学得分激励,具体是对第一语音识别结果中的垂类关键字所在槽位的声学得分进行激励,使第一语音识别结果中的垂类关键字所在槽位的声学得分提高一定比例,从而使第一语音识别结果的声学得分提高,以保证第一语音识别结果在后续与其他语音识别结果进行声学得分pk时不被轻易pk掉。
280.在对第一语音识别结果进行声学得分激励后,即可根据激励后的第一语音识别结果的声学得分以及第二语音识别结果的声学得分,对两者进行声学得分pk,从中选出一个或多个声学得分最高的语音识别结果,作为最终的语音识别结果。
281.下面,对于上述各实施例中涉及到的对第一语音识别结果进行声学得分激励的具
体实现方案进行介绍。
282.对第一语音识别结果进行声学得分激励,也就是对第一语音识别结果中的垂类关键字所在槽位的声学得分进行激励,具体是将第一语音识别结果中的垂类关键字所在槽位的声学得分乘以一个激励系数,然后再以激励后的垂类关键字声学得分,为基础,重新计算确定第一语音识别结果的声学得分。
283.具体而言,通过执行如下e1-e3的处理,可以实现对第一语音识别结果的声学得分激励:
284.e1、至少根据所述第一语音识别结果中的垂类关键字内容和非垂类关键字内容,确定声学激励系数。
285.声学激励系数,决定了对第一语音识别结果进行声学得分激励的强度,如果激励系数过大,则会造成过度激励,造成如上文所述的识别误触发问题;如果激励系数过小,则达不到激励目的,可能造成第一语音识别结果在得分pk中被其他语音识别结果pk掉。
286.所以,声学激励系数的确定,是解决上述实施例中所提到的垂类关键字误触发问题,以及解决声学pk时丢失重要的垂类关键字信息问题的关键。
287.本技术实施例设定,在确定声学激励系数时,要至少根据第一语音识别结果中的垂类关键字内容和非垂类关键字内容而确定,另外还应当结合实际业务场景、实际业务场景下的经验参数等进行确定。
288.作为一种可选的实施方式,可以根据待识别语音所属业务场景下的声学得分激励先验系数、所述第一语音识别结果中的垂类关键字的字符数量、音素数量,以及所述第一语音识别结果的全部字符数量、全部音素数量,计算确定声学激励系数。
289.具体的,在该实施方式中,按照如下公式计算得到声学激励系数rc:
290.rc=1.0+α*{β*(slotwc/sentwc)+(1-β)*(slotpc/sentpc)}
291.其中,α为场景先验系数,在本技术实施例中,即为待识别语音所属业务场景下的激励先验系数,该系数的值的正负分别代表着正向激励和反向激励两种情况。先验系数α作为一个开放参数,可以根据识别系统的需求,在每次识别会话时进行动态的设置。例如,基于自然语言处理(nlp)的技术,上层系统可以通过用户交互的上下文来预测用户的行为意图,并对该系数进行实时动态的调节,达到满足各类场景下的要求。
292.此外,由于涉及垂类关键字的业务场景下的垂类关键字存在词个数以及词发音音素长度不一致的情况,为了提升声学激励系数的泛化能力以及在不同槽的适应能力,避免出现激励不合理的情况,声学激励系数的设计还充分考虑了垂类关键字所在槽位的词的个数(word count in slot,slotwc)和音素个数(phoneme count in slot,slotpc)(即垂类关键字的字符数量和音素数量),以及考虑了句子中词的个数(word count in sentence,sentwc)和音素个数(phoneme count in sentence,sentpc)(即第一语音识别结果的全部字符数量和全部音素数量)之间的比例关系,并且为字符数量和音素数量分别设置影响权重β,使字符和音素的影响权重之和为1。这种方式限制了声学激励系数的范围,且实现在不同长度句子和关键字下激励的自适应性。在特定场景下,如果计算得到的激励系数rc大于1.0,则会使得识别结果更偏向于语音识别解码网络输出的第一语音识别结果,反之则更倾向于其他模型的输出结果。此外,声学得分激励只针对垂类关键字所在槽位的声学得分进行激励,排除了无关上下文的干扰,从而能够避免激励过大而引起的识别误触发问题。
293.作为另一种可选的实施方式,可以先根据第一语音识别结果中的垂类关键字内容的音素数量和声学得分,以及第一语音数据结果中的非垂类关键字内容的音素数量和声学得分,计算得到第一语音识别结果中的垂类关键字内容的得分置信度;然后,根据第一语音识别结果中的垂类关键字内容的得分置信度,确定声学激励系数。
294.具体的,通过对语音识别结果的声学状态序列进行分析可以发现,识别错误的词语对应的状态序列得分比较低,这也是为何识别正确的结果往往得分是最高的原因。总结来说就是,识别错误的结果的声学序列的平均得分比较低。
295.在涉及垂类关键字的业务场景中,虽然垂类关键字被识别错误,但是整体句式的识别还是正常的。也就是说,整个语音识别结果中,垂类关键字的局部识别效果比整句的非垂类关键字部分的识别效果差。本案基于这个思路提出了通过垂类关键字内容的得分置信度来解决垂类关键字和正式结果发音相近的误触发问题。
296.垂类关键字得分置信度方案就是将语音识别解码网络输出的第一语音识别结果中的垂类关键字和非垂类关键字分开,分别计算出垂类关键字的声学总得分和垂类关键字占用的有效声学建模因子个数比值,以及非垂类关键字部分的声学总得分和非垂类关键字部分占用的有效声学建模因子个数比值,然后将二者进行相除就得到垂类关键字的得分置信度值。
297.上述的垂类关键字的得分置信度sc可以通过如下公式计算得到:
[0298][0299]
其中,第一语音识别结果中的垂类关键字的声学得分记为s
p
,垂类关键字所在槽位所占的有效声学音素个数记为n
p
,非垂类关键字的总声学得分记为sa,非垂类关键字所在槽位所占的有效声学音素个数记为na。
[0300]
在得到第一语音识别结果中的垂类关键字内容的得分置信度后,基于该得分置信度,可以确定用于对该垂类关键字进行激励的声学激励系数。
[0301]
作为一种示例性的实现方式,将第一语音识别结果中的垂类关键字内容的得分置信度与预先设置的置信度阈值进行比对。该置信度阈值,根据声学激励系数造成识别误触发的概率而确定。当第一语音识别结果中的垂类关键字内容的得分置信度大于该置信度阈值时,可以认为该垂类关键字容易引起误触发,在确定对该垂类关键字的声学激励系数时,应当下调声学激励系数;当第一语音识别结果中的垂类关键字内容的得分置信度不大于该置信度阈值时,可以认为该垂类关键字容易被pk掉,在确定对该垂类关键字的声学激励系数时,应当上调声学激励系数。
[0302]
进一步的,在根据第一语音识别结果中的垂类关键字内容的得分置信度确定声学激励系数时,还可以将第一语音识别结果中的垂类关键字内容的得分置信度,以及预先确定的声学激励系数与识别效果和识别误触发之间的关系相结合,共同用于确定声学激励系数。
[0303]
具体的,本技术实施例分析多个测试集合的识别结果,统计声学激励系数的大小对识别效果、识别误触发的影响,确定声学激励系数与识别效果和识别误触发之间的关系。
[0304]
基于声学激励系数与识别效果和识别误触发之间的关系,在确定声学激励系数的具体数值时,选择一个对识别率提升和降低误触发之间比较平衡的数值。选取的原则要保
证误触发数量远小于识别效果提升的数量,本技术实施例选取的声学激励系数,是导致识别误触发的数量是促进识别效果提升的数量的百分之一的激励系数。
[0305]
e2、利用所述声学激励系数,对所述第一语音识别结果中的垂类关键字内容的声学得分进行更新。
[0306]
具体的,利用第一语音识别结果中的垂类关键字内容所在槽位的声学二分,乘以上述步骤确定的声学激励系数,得到更新后的垂类关键字内容的声学得分。
[0307]
e3、根据更新后的所述第一语音识别结果中的垂类关键字内容的声学得分,以及所述第一语音识别结果中的非垂类关键字内容的声学得分,重新计算确定所述第一语音识别结果的声学得分。
[0308]
具体的,利用更新后的垂类关键字内容的声学得分,替换第一语音识别结果中的垂类关键字内容的声学得分,然后重新对第一语音识别结果的各个字符的声学得分进行求和或加权求和,得到更新后的第一语音识别结果的声学得分。
[0309]
下面,对于上述各实施例中涉及到的语言模型激励的具体实现方案进行介绍。在下文实施例中,以对第三语音识别结果进行语言模型激励为例,介绍语言模型激励的具体处理内容。应当理解的是,具体的语言模型激励的处理过程,不受激励对象的限制,该语言模型激励方案也可以适用于对其他语音识别结果的激励,例如,下文实施例介绍的语言模型激励的实现方案,同样适用于对从第一语音识别结果和第二语音识别结果中选出的候选语音识别结果进行语言模型激励。
[0310]
语言模型激励,即为通过语言模型重新对语音识别结果的得分进行计算,从而使语音识别结果的得分中携带语言成分。
[0311]
语言模型激励机制主要通过两方面来实现:其一为聚类class语言模型,其二为基于垂类关键字与语音识别结果发音序列匹配的策略,对语音识别结果的路径进行扩展,并基于扩展路径以及上述的聚类语言模型,确定语音识别结果的语言得分。
[0312]
首先对聚类class模型进行介绍。在打电话、发短信、查询天气、导航等特定的涉及垂类关键字的语音识别业务场景下,通过枚举或者用户提供的方式,可以将各场景下的垂类关键字限制在有限的范围内,而垂类关键字所在的上下文通常也会以特定的句式出现。
[0313]
聚类class语言模型除了采用通用的训练语料外,还针对这类特定句式或者说法进行了特殊的处理。聚类语言模型会为所有特定场景都分别定义一种类,并且每类场景都会采用一个特殊词(class)来进行标记和区分,作为与该场景对应的类别标签。在定义完所有类别标签后,训练语料中的人名、城市名、音视频名等垂类关键字都会被替换为对应的类别标签,形成目标语料,这些目标语料会被添加到原始训练语料中,再次用于对上述的聚类语言模型进行语音识别训练。这种处理方式使得特殊词class代表一类词的概率,因此聚类模型中特殊词class所在的n-gram语言模型概率会显著高于具体的垂类关键字本身的概率。
[0314]
在上述的类别标签的基础上,本技术实施例根据待识别语音所属业务场景下的垂类关键字集合以及与该业务场景对应的类别标签,对第三语音识别结果进行路径扩展。
[0315]
示例性的,首先,将第三语音识别结果中的垂类关键字,与待识别语音所属业务场景下的垂类关键字集合中的垂类关键字分别进行比对。
[0316]
如前文所述,在打电话、查询天气,导航等包含垂类关键字的特定语音识别业务场
景下,垂类关键字都会被圈定在有限的范围内。通过枚举、用户提供等方式,可以将对应业务场景下的所有垂类关键字作为一种静态资源进行使用。利用发音词典资源,分别生成待识别语音所属业务场景下的垂类关键字和第三语音识别结果的发音串信息,通过将第三语音识别结果中的垂类关键字的发音信息与待识别语音所属业务场景下的垂类关键字集合中的垂类关键字的发音信息分别进行对比,以判断第三语音识别结果中的垂类关键字是否与待识别语音所属业务场景下的垂类关键字集合中的任意垂类关键字相匹配。
[0317]
如果第三语音识别结果中的垂类关键字与待识别语音所属业务场景下的垂类关键字集合中的任意垂类关键字相匹配,则在第三语音识别结果中的垂类关键字所在槽位的左右节点之间扩展新路径,并在该新路径上存储与待识别语音所属业务场景对应的类别标签。
[0318]
示例性的,图13所示,为打电话业务场景下的语音识别结果“《s》给张三打电话《/s》”的状态网络(lattice)示意图。
[0319]
对于该语音识别结果中的人名“张三”,当通过发音匹配确认其与用户上传的通讯录中的“张三”相匹配时,在图13所示的状态网络中的“张三”所在槽位的左右节点之间扩展新路径,该新路径与原状态网络中的“张三”共享起始节点和结束节点,并且在该新路径上标注当前业务场景对应的类别标签“class”,具体的,该“class”可以具体为“人名”,路径扩展后的状态网络如图14所示。
[0320]
按照上述处理,在完成对第三语音识别结果的路径扩展后,根据与待识别语音所属业务场景对应的类别标签所对应的聚类语言模型对训练语料的识别结果,分别确定第三语音识别结果以及第三语音识别结果的扩展路径的语言模型得分。
[0321]
具体的,聚类语言模型对训练语料的识别结果中,包含了识别结果中的每个词的n-gram语言模型概率,该概率即为词的语言得分。
[0322]
在完成对第三语音识别结果的路径扩展后,选择与第三语音识别结果对应的聚类语言模型对第三语音识别结果以及第三语音识别结果的扩展路径进行重新查分,分别确定第三语音识别结果以及第三语音识别结果的扩展路径的语言模型得分。
[0323]
在本技术实施例中,由于通用语音识别模型和场景定制模型是基于不同语料进行训练,因而这两类模型分别对应不同的聚类class语言模型,而语音识别解码网络与场景定制模型同属于领域相关模型,所以这两者共享相同的聚类class语言模型。因此,在对语音识别结果进行重新查分时,会根据得出语音识别结果的模型来适配不同的聚类语言模型,用于对语音识别结果进行重新查分。
[0324]
尤其是,当上述的语言模型激励方案用于对从第一语音识别结果和第二语音识别结果中选出的候选语音识别结果进行语言模型激励时,由于候选语音识别可能是语音识别解码网络输出的结果(即第一语音识别结果中的任意一条或多条),也可能是通用语音识别模型输出的结果(即第二语音识别结果中的一条或多条),因此,应当根据候选语音识别结果的来源,选择与其来源相同类型的聚类语言模型,进行重新查分。
[0325]
上述的不同类型的聚类语言模型的模型结构是相同的,不同的是其训练语料不同。比如,与通用语音识别模型相同类型的聚类语言模型,是基于海量语料训练得到的,假设将其命名为模型a;而与场景定制模型相同类型的聚类语言模型,是基于场景语料训练得到的,假设将其命名为模型b;由于模型a和模型b是基于不同类型的训练语料训练得到的,
因此两者属于不同类型的聚类语言模型。而与语音识别解码网络相同类型的聚类语言模型,也是基于场景语料训练得到的,假设将其命名为模型c;由于模型b和模型c是基于相同类型的训练语料训练得到的,因此两者属于相同类型的聚类语言模型。
[0326]
表1示出了对图14中的两条路径进行重新查分的计算方式。
[0327]
表1
[0328][0329]
按照上述介绍,结合表1所示,能够分别确定第三语音识别结果以及第三语音识别结果的扩展路径的语言模型得分scorea和scoreb。
[0330]
最后,根据第三语音识别结果的语言模型得分,以第三语音识别结果的扩展路径的语言模型得分,确定第三语音识别结果的语言模型激励后的语言得分。
[0331]
具体的,将第三语音识别结果的语言模型得分scorea,以及第三语音识别结果的扩展路径的语言模型得分scoreb按照一定比例融合,且两者的融合系数之和为1,得到第三语音识别结果的语言模型激励后的语言得分。
[0332]
例如,可以通过如下公式计算第三语音识别结果的语言模型激励后的语言得分score:
[0333]
score=γ*scorea+(1

γ)*scoreb
[0334]
其中,γ为经验系数,其取值通过测试确定,具体是以能够得到正确的语言得分,进而基于语言得分pk能够从众多的语音识别结果中选出正确的语音识别结果为目标而确定。
[0335]
以上实施例介绍了声学得分激励和语言模型激励的具体实现方案,在上述实现方案中,尤其是在声学得分激励实现方案中,充分考虑了垂类关键字误触发问题,通过合理设置激励系数,能够解决由于激励导致的在垂类关键字和真实结果发音相近时引发的误触发,以及在垂类关键字和真实结果发音差距较大时引入的误触发问题。
[0336]
对于上文实施例中提到的,由于垂类关键字和真实结果发音相同而引起的误触发问题,则无法通过上述的控制激励系数的方案得以解决。原因是本技术实施例构建的语音识别解码网络是一个依赖声学模型的句式网络,其不包含语言信息,所以对于垂类关键字和真实结果发音相同的情况是不能本质上解决的。为了减少此类误触发的影响,本技术实施例采用多候选的形式将结果展示给用户。
[0337]
具体而言,由于通用语音识别模型和语音识别解码网络共用一个声学模型,所以当它们的输出结果发音相同时,它们的声学得分一定是相同的。因此,当语音识别解码网络输出的第一语音识别结果和通用语音识别模型输出的第二语音识别结果的声学得分相同
时,将第一语音识别结果和第二语音识别结果共同作为最终的语音识别结果,也就是第一语音识别结果和第二语音识别结果同时输出,由用户从中选择正确的语音识别结果。其中,第一语音识别结果和第二语音识别结果同时输出时的输出顺序可以灵活调整,优选为采用第一语音识别结果在前、第二语音识别结果在后的顺序输出。
[0338]
需要说明的是,上述的多候选形式输出语音识别结果的思想,同样适用于更多模型的语音识别结果的得分pk。例如上述实施例介绍,当将语音识别解码网络、通用语音识别模型、场景定制模型的输出结果进行得分pk决策最终的语音识别结果时,如果有多个不同的语音识别结果的得分相同,则可以将这些得分相同的语音识别结果同时输出,由用户从中选择正确的语音识别结果。
[0339]
至此,本技术上述各实施例分别对所提出的各语音识别方法的处理过程,尤其是各种语音识别方法中的各个典型处理步骤进行了详细介绍。应当注意的是,为了使说明书简洁,各种语音识别方法中的相同或相应处理步骤的具体实施方式,均可以相互参见,本技术实施例不再一一列举和说明。各语音识别方法中的处理步骤可以相互借鉴、组合,从而形成不超出本技术保护范围的技术方案。
[0340]
此外,与上述的语音识别方法相对应的,本技术实施例还提出一种语音识别装置,参见图15所示,该语音识别装置,包括:
[0341]
声学识别单元001,用于获取待识别语音的声学状态序列;
[0342]
网络构建单元002,用于基于所述待识别语音所属场景下的垂类关键字集合及句式解码网络,构建语音识别解码网络,其中,所述句式解码网络至少通过对所述待识别语音所属场景下的文本语料进行句式归纳处理构建得到;
[0343]
解码处理单元003,用于利用所述语音识别解码网络对所述声学状态序列进行解码,得到语音识别结果。
[0344]
作为一种可选的实施方式,上述的基于所述待识别语音所属业务场景下的垂类关键字集合及句式解码网络,构建语音识别解码网络,包括:
[0345]
将所述待识别语音所属场景下的垂类关键字集合传入云端服务器,以使所述云端服务器基于所述待识别语音所属场景下的垂类关键字集合及句式解码网络,构建语音识别解码网络。
[0346]
作为一种可选的实施方式,所述语音识别结果作为第一语音识别结果;
[0347]
所述解码处理单元003还用于:
[0348]
利用通用语音识别模型对所述声学状态序列进行解码,得到第二语音识别结果;
[0349]
至少从所述第一语音识别结果和所述第二语音识别结果中,确定出最终的语音识别结果。
[0350]
作为一种可选的实施方式,所述解码处理单元003还用于:
[0351]
通过预先训练的场景定制模型,对所述声学状态序列进行解码得到第三语音识别结果;其中,所述场景定制模型,通过对所述待识别语音所属场景下的语音进行语音识别训练得到;
[0352]
所述至少从所述第一语音识别结果和所述第二语音识别结果中,确定出最终的语音识别结果,包括:
[0353]
从所述第一语音识别结果、所述第二语音识别结果和所述第三语音识别结果中,
确定出最终的语音识别结果。
[0354]
作为一种可选的实施方式,从所述第一语音识别结果、所述第二语音识别结果和所述第三语音识别结果中,确定出最终的语音识别结果,包括:
[0355]
分别对所述第一语音识别结果、所述第二语音识别结果和所述第三语音识别结果进行语言模型激励;
[0356]
根据激励后的第一语音识别结果、第二语音识别结果和第三语音识别结果的语言得分,从所述第一语音识别结果、所述第二语音识别结果和所述第三语音识别结果中确定出最终的语音识别结果。
[0357]
作为一种可选的实施方式,从所述第一语音识别结果、所述第二语音识别结果和所述第三语音识别结果中,确定出最终的语音识别结果,包括:
[0358]
对所述第一语音识别结果进行声学得分激励,以及,对所述第三语音识别结果进行语言模型激励;
[0359]
根据声学得分激励后的第一语音识别结果的声学得分,以及所述第二语音识别结果的声学得分,从所述第一语音识别结果和所述第二语音识别结果中确定出候选语音识别结果;
[0360]
对所述候选语音识别结果进行语言模型激励;
[0361]
根据语言模型激励后的所述候选语音识别结果的语言得分,以及语言模型激励后的所述第三语音识别结果的语言得分,从所述候选语音识别结果和所述第三语音识别结果中确定出最终的语音识别结果。
[0362]
本技术另一实施例还提出另一种语音识别装置,参见图16所示,该装置包括:
[0363]
声学识别单元011,用于获取待识别语音的声学状态序列;
[0364]
多维解码单元012,用于利用语音识别解码网络对所述声学状态序列进行解码,得到第一语音识别结果,以及,利用通用语音识别模型对所述声学状态序列进行解码,得到第二语音识别结果;所述语音识别解码网络基于所述待识别语音所属场景下的垂类关键字集合及句式解码网络构建得到;
[0365]
声学激励单元013,用于对所述第一语音识别结果进行声学得分激励;
[0366]
决策处理单元014,用于至少从激励后的第一语音识别结果以及所述第二语音识别结果中,确定出最终的语音识别结果。
[0367]
作为一种可选的实施方式,所述多维解码单元012还用于:
[0368]
通过预先训练的场景定制模型,对所述声学状态序列进行解码得到第三语音识别结果;其中,所述场景定制模型,通过对所述待识别语音所属场景下的语音进行语音识别训练得到;
[0369]
所述至少从激励后的第一语音识别结果以及所述第二语音识别结果中,确定出最终的语音识别结果,包括:
[0370]
从激励后的第一语音识别结果、所述第二语音识别结果和所述第三语音识别结果中,确定出最终的语音识别结果。
[0371]
作为一种可选的实施方式,所述从激励后的第一语音识别结果、所述第二语音识别结果和所述第三语音识别结果中,确定出最终的语音识别结果,包括:
[0372]
根据声学得分激励后的第一语音识别结果的声学得分,以及所述第二语音识别结
果的声学得分,从所述第一语音识别结果和所述第二语音识别结果中确定出候选语音识别结果;
[0373]
对所述候选语音识别结果以及所述第三语音识别结果分别进行语言模型激励;
[0374]
根据语言模型激励后的所述候选语音识别结果的语言得分,以及语言模型激励后的所述第三语音识别结果的语言得分,从所述候选语音识别结果和所述第三语音识别结果中确定出最终的语音识别结果。
[0375]
作为一种可选的实施方式,所述待识别语音所属场景下的句式解码网络通过如下处理构建得到:
[0376]
通过对所述待识别语音所属场景下的语料数据进行句式归纳和语法槽定义处理,构建文本句式网络;其中,所述文本句式网络中包括对应非垂类关键字的普通语法槽和对应垂类关键字的替换语法槽,所述替换语法槽中存储与垂类关键字对应的占位符;
[0377]
对所述文本句式网络的普通语法槽中的词条进行分词并按照分词结果进行单词节点扩展,得到词级句式解码网络;
[0378]
将所述词级句式解码网络的普通语法槽中的各个单词替换为对应的发音,并按照单词对应的发音进行发音节点扩展,得到发音级句式解码网络,所述发音级句式解码网络作为所述待识别语音所属场景下的句式解码网络。
[0379]
作为一种可选的实施方式,对所述文本句式网络的普通语法槽中的词条进行分词并按照分词结果进行单词节点扩展,得到词级句式解码网络,包括:
[0380]
对所述文本句式网络中的普通语法槽中的每一个词条,分别进行分词,得到每个词条对应的各个单词;
[0381]
利用对应同一词条的各个单词进行单词节点扩展,得到对应该词条的单词串;
[0382]
将对应同一普通语法槽的各个词条对应的单词串进行并联,得到词级句式解码网络。
[0383]
作为一种可选的实施方式,将所述词级句式解码网络的普通语法槽中的各个单词替换为对应的发音,并按照单词对应的发音进行发音节点扩展,得到发音级句式解码网络,包括:
[0384]
将所述词级句式解码网络的普通语法槽中的各个单词,分别替换为对应的发音;
[0385]
对所述词级句式解码网络中的每个发音,分别进行发音单元划分,并利用发音对应的各个发音单元进行发音节点扩展,得到发音级句式解码网络。
[0386]
作为一种可选的实施方式,基于所述待识别语音所属场景下的垂类关键字集合及句式解码网络,构建语音识别解码网络,包括:
[0387]
获取预先构建的所述待识别语音所属场景下的句式解码网络;
[0388]
基于待识别语音所属场景下的垂类关键字集合中的垂类关键字,构建垂类关键字网络;
[0389]
将所述垂类关键字网络插入所述句式解码网络,得到语音识别解码网络。
[0390]
作为一种可选的实施方式,所述基于待识别语音所属场景下的垂类关键字集合中的垂类关键字,构建垂类关键字网络,包括:
[0391]
基于待识别语音所属场景下的垂类关键字集合中的各个垂类关键字,构建词级垂类关键字网络;
[0392]
将所述词级垂类关键字网络中的各个单词替换为对应的发音,并按照单词对应的发音进行发音节点扩展,得到发音级垂类关键字网络。
[0393]
作为一种可选的实施方式,所述垂类关键字网络和所述句式解码网络均由节点和连接节点的有向弧构成,在节点间的有向弧上存储发音信息或占位符;
[0394]
将所述垂类关键字网络插入所述句式解码网络,得到语音识别解码网络,包括:
[0395]
通过有向弧将所述垂类关键字网络与所述句式解码网络的替换语法槽的左右节点分别连接,构建得到语音识别解码网络。
[0396]
作为一种可选的实施方式,所述通过有向弧将所述垂类关键字网络与所述句式解码网络的替换语法槽的左右节点分别连接,构建得到语音识别解码网络,包括:
[0397]
通过将所述垂类关键字网络的开始节点的每条出弧的右节点与所述替换语法槽的左节点通过有向弧连接,以及,将所述垂类关键字网络的结束节点的每条入弧的左节点与所述替换语法槽的右节点通过有向弧连接,构建得到语音识别解码网络。
[0398]
作为一种可选的实施方式,所述垂类关键字网络中的每个关键字的第一条弧和最后一条弧上分别存储与该关键字对应的唯一标识;
[0399]
所述通过将所述垂类关键字网络的开始节点的每条出弧的右节点与所述替换语法槽的左节点通过有向弧连接,以及,将所述垂类关键字网络的结束节点的每条入弧的左节点与所述替换语法槽的右节点通过有向弧连接,构建得到语音识别解码网络,包括:
[0400]
遍历所述垂类关键字网络的开始节点的每条出弧,对于遍历到的每一条出弧,根据该出弧上的唯一标识以及已入网关键字信息集合,确定该唯一标识对应的关键字是否已插入句式解码网络;其中,所述已入网关键字信息集合中,对应存储已经插入句式解码网络的关键字的唯一标识,以及该唯一标识所在的有向弧在该句式解码网络中的左右节点编号;
[0401]
如果该唯一标识对应的关键字未插入句式解码网络,则将遍历到的该出弧的右节点与所述替换语法槽的左节点通过有向弧连接,在该有向弧上存储遍历到的该出弧上的发音信息;
[0402]
以及,
[0403]
遍历所述垂类关键字网络的结束节点的每条入弧,对于遍历到的每一条入弧,根据该入弧上的唯一标识以及已入网关键字信息集合,确定该唯一标识对应的关键字是否已插入句式解码网络;
[0404]
如果该唯一标识对应的关键字未插入句式解码网络,则将遍历到的该入弧的左节点与所述替换语法槽的右节点通过有向弧连接,在该有向弧上存储遍历到的该入弧上的发音信息。
[0405]
作为一种可选的实施方式,所述通过将所述垂类关键字网络的开始节点的每条出弧的右节点与所述替换语法槽的左节点通过有向弧连接,以及,将所述垂类关键字网络的结束节点的每条入弧的左节点与所述替换语法槽的右节点通过有向弧连接,构建得到语音识别解码网络,还包括:
[0406]
当所述垂类关键字网络中的关键字被插入所述句式解码网络时,将该关键字的唯一标识,以及该唯一标识所在的有向弧在该句式解码网络中的左右节点编号,对应存储至所述已入网关键字信息集合中。
[0407]
作为一种可选的实施方式,所述通过将所述垂类关键字网络的开始节点的每条出弧的右节点与所述替换语法槽的左节点通过有向弧连接,以及,将所述垂类关键字网络的结束节点的每条入弧的左节点与所述替换语法槽的右节点通过有向弧连接,构建得到语音识别解码网络,还包括:
[0408]
遍历所述已入网关键字信息集合中的各个唯一标识;
[0409]
如果遍历到的唯一标识不是所述待识别语音所属场景下的垂类关键字集合中的任意关键字的唯一标识,则将该唯一标识对应的左右节点编号之间的有向弧断开。
[0410]
作为一种可选的实施方式,上述的语音识别装置还包括:
[0411]
结果修正单元,用于根据所述第二语音识别结果,对所述第一语音识别结果进行修正。
[0412]
作为一种可选的实施方式,根据所述第二语音识别结果,对所述第一语音识别结果进行修正,包括:
[0413]
利用所述第二语音识别结果中的参考文本内容,对所述第一语音识别结果中的非垂类关键字内容进行修正,得到修正后的第一语音识别结果;
[0414]
其中,所述参考文本内容,是所述第二语音识别结果中的、与所述第一语音识别结果中的非垂类关键字内容相匹配的文本内容。
[0415]
作为一种可选的实施方式,利用所述第二语音识别结果中的参考文本内容,对所述第一语音识别结果中的非垂类关键字内容进行修正,得到修正后的第一语音识别结果,包括:
[0416]
从所述第一语音识别结果中确定出垂类关键字内容和非垂类关键字内容,以及,从所述第二语音识别结果中确定出与所述第一语音识别结果中的非垂类关键字内容对应的文本内容,作为参考文本内容;
[0417]
根据所述第二语音识别结果中的参考文本内容,以及所述第一语音识别结果中的非垂类关键字内容,确定修正后的非垂类关键字内容;
[0418]
利用所述修正后的非垂类关键字内容,以及所述垂类关键字内容,组合得到修正后的第一语音识别结果。
[0419]
作为一种可选的实施方式,从所述第二语音识别结果中确定出与所述第一语音识别结果中的非垂类关键字内容对应的文本内容,作为参考文本内容,包括:
[0420]
根据编辑距离算法确定所述第一语音识别结果与所述第二语音识别结果之间的编辑距离矩阵;
[0421]
根据所述编辑距离矩阵,以及所述第一语音识别结果中的非垂类关键字内容,从所述第二语音识别结果中确定出与所述第一语音识别结果中的非垂类关键字内容对应的文本内容,作为参考文本内容。
[0422]
作为一种可选的实施方式,所述根据所述第二语音识别结果中的参考文本内容,以及所述第一语音识别结果中的非垂类关键字内容,确定修正后的非垂类关键字内容,包括:
[0423]
根据所述第二语音识别结果中的参考文本内容与所述第一语音识别结果中的非垂类关键字内容的字符差异,将所述第二语音识别结果中的目标文本内容或所述第一语音识别结果中的非垂类关键字内容,确定为修正后的非垂类关键字内容;
[0424]
其中,所述第二语音识别结果中的目标文本内容,是指所述第二语音识别结果中的、与所述第一语音识别结果中的非垂类关键字内容的位置相对应的文本内容。
[0425]
作为一种可选的实施方式,根据所述第二语音识别结果中的参考文本内容与所述第一语音识别结果中的非垂类关键字内容的字符差异,将所述第二语音识别结果中的目标文本内容或所述第一语音识别结果中的非垂类关键字内容,确定为修正后的非垂类关键字内容,包括:
[0426]
将所述第二语音识别结果中的参考文本内容与所述第一语音识别结果中的非垂类关键字内容进行比对,确定所述第二语音识别结果中的参考文本内容与所述第一语音识别结果中的非垂类关键字内容是否相同;
[0427]
如果相同,则将所述第二语音识别结果中的目标文本内容,确定为修正后的非垂类关键字内容;
[0428]
如果不同,则确定所述第二语音识别结果是否比所述第一语音识别结果中的非垂类关键字内容的字符数量多,并且两者的字符数量差异不超过设定阈值;
[0429]
如果所述第二语音识别结果比所述第一语音识别结果中的非垂类关键字内容的字符数量多,并且两者的字符数量差异不超过设定阈值,则将所述第二语音识别结果中的目标文本内容,确定为修正后的非垂类关键字内容;
[0430]
如果所述第二语音识别结果比所述第一语音识别结果中的非垂类关键字内容的字符数量少,和/或两者的字符数量差异超过设定阈值,则将所述第一语音识别结果中的非垂类关键字内容,确定为修正后的非垂类关键字内容。
[0431]
作为一种可选的实施方式,所述至少从所述第一语音识别结果和所述第二语音识别结果中,确定出最终的语音识别结果,包括:
[0432]
通过将所述第一语音识别结果和所述第二语音识别结果进行对比,确定所述第一语音识别结果和所述第二语音识别结果的匹配度,并基于所述第一语音识别结果和所述第二语音识别结果的匹配度确定所述第一语音识别结果的置信度;
[0433]
当所述第一语音识别结果的置信度大于预设的置信度阈值时,根据所述第一语音识别结果的声学得分和所述第二语音识别结果的声学得分,从所述第一语音识别结果和所述第二语音识别结果中选出最终的语音识别结果;
[0434]
当所述第一语音识别结果的置信度不大于预设的置信度阈值时,对所述第一语音识别结果进行声学得分激励,并根据激励后的第一语音识别结果的声学得分以及所述第二语音识别结果的声学得分,从所述第一语音识别结果和所述第二语音识别结果中选出最终的语音识别结果。
[0435]
作为一种可选的实施方式,所述基于所述第一语音识别结果和所述第二语音识别结果的匹配度确定所述第一语音识别结果的置信度,包括:
[0436]
判断所述第一语音识别结果和所述第二语音识别结果的匹配度是否大于设定的匹配度阈值;
[0437]
如果大于设定的匹配度阈值,则根据所述第一语音识别结果的各个帧的声学得分,计算确定所述第一语音识别结果的置信度;
[0438]
如果不大于设定的匹配度阈值,则利用所述第一语音识别结果中的垂类关键字内容以及所述第二语音识别结果构建得到解码网络,利用该解码网络重新对所述声学状态序
列进行解码,并利用解码结果更新所述第一语音识别结果;
[0439]
根据更新后的第一语音识别结果的各个帧的声学得分,计算确定第一语音识别结果的置信度。
[0440]
作为一种可选的实施方式,当所述第一语音识别结果和所述第二语音识别结果的声学得分相同时,将所述第一语音识别结果和所述第二语音识别结果共同作为最终的语音识别结果。
[0441]
作为一种可选的实施方式,对所述第一语音识别结果进行声学得分激励,包括:
[0442]
至少根据所述第一语音识别结果中的垂类关键字内容和非垂类关键字内容,确定声学激励系数;
[0443]
利用所述声学激励系数,对所述第一语音识别结果中的垂类关键字内容的声学得分进行更新;
[0444]
根据更新后的所述第一语音识别结果中的垂类关键字内容的声学得分,以及所述第一语音识别结果中的非垂类关键字内容的声学得分,重新计算确定所述第一语音识别结果的声学得分。
[0445]
作为一种可选的实施方式,所述至少根据所述第一语音识别结果中的垂类关键字内容和非垂类关键字内容,确定声学激励系数,包括:
[0446]
根据待识别语音所属场景下的声学得分激励先验系数、所述第一语音识别结果中的垂类关键字的字符数量、音素数量,以及所述第一语音识别结果的全部字符数量、全部音素数量,计算确定声学激励系数。
[0447]
作为一种可选的实施方式,所述至少根据所述第一语音识别结果中的垂类关键字内容和非垂类关键字内容,确定声学激励系数,包括:
[0448]
根据所述第一语音识别结果中的垂类关键字内容的音素数量和声学得分,以及所述第一语音数据结果中的非垂类关键字内容的音素数量和声学得分,计算得到所述第一语音识别结果中的垂类关键字内容的得分置信度;
[0449]
至少根据所述第一语音识别结果中的垂类关键字内容的得分置信度,确定声学激励系数。
[0450]
作为一种可选的实施方式,所述至少根据所述第一语音识别结果中的垂类关键字内容的得分置信度,确定声学激励系数,包括:
[0451]
根据所述第一语音识别结果中的垂类关键字内容的得分置信度,以及预先确定的声学激励系数与识别效果和识别误触发之间的关系,确定声学激励系数。
[0452]
作为一种可选的实施方式,对所述第三语音识别结果进行语言模型激励,包括:
[0453]
根据待识别语音所属场景下的垂类关键字集合以及与所述该场景对应的类别标签,对所述第三语音识别结果进行路径扩展;所述类别标签,通过对语音识别场景进行聚类而确定;
[0454]
根据与所述类别标签对应的聚类语言模型对训练语料的识别结果,分别确定所述第三语音识别结果以及所述第三语音识别结果的扩展路径的语言模型得分;其中,所述聚类语言模型通过对目标语料进行语音识别训练得到,所述目标语料中的垂类关键字均被替换为所述类别标签;
[0455]
根据所述第三语音识别结果的语言模型得分,以及所述第三语音识别结果的扩展
路径的语言模型得分,确定所述第三语音识别结果的语言模型激励后的语言得分。
[0456]
作为一种可选的实施方式,所述根据待识别语音所属场景下的垂类关键字集合以及与该场景对应的类别标签,对所述第三语音识别结果进行路径扩展,包括:
[0457]
将所述第三语音识别结果中的垂类关键字,与待识别语音所属场景下的垂类关键字集合中的垂类关键字分别进行比对;
[0458]
如果所述第三语音识别结果中的垂类关键字与所述垂类关键字集合中的任意垂类关键字相匹配,则在所述第三语音识别结果中的垂类关键字所在槽位的左右节点之间扩展新路径,并在该新路径上存储与待识别语音所属场景对应的类别标签。
[0459]
具体的,上述的各语音识别装置的实施例中的各个单元的具体工作内容,请参见上述的语音识别方法的相应步骤的处理内容,此处不再重复。
[0460]
本技术另一实施例还提出一种语音识别设备,参见图17所示,该设备包括:
[0461]
存储器200和处理器210;
[0462]
其中,所述存储器200与所述处理器210连接,用于存储程序;
[0463]
所述处理器210,用于通过运行所述存储器200中存储的程序,实现上述任一实施例公开的语音识别方法。
[0464]
具体的,上述语音识别设备还可以包括:总线、通信接口220、输入设备230和输出设备240。
[0465]
处理器210、存储器200、通信接口220、输入设备230和输出设备240通过总线相互连接。其中:
[0466]
总线可包括一通路,在计算机系统各个部件之间传送信息。
[0467]
处理器210可以是通用处理器,例如通用中央处理器(cpu)、微处理器等,也可以是特定应用集成电路(application-specific integrated circuit,asic),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0468]
处理器210可包括主处理器,还可包括基带芯片、调制解调器等。
[0469]
存储器200中保存有执行本发明技术方案的程序,还可以保存有操作系统和其他关键业务。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。更具体的,存储器200可以包括只读存储器(read-only memory,rom)、可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(random access memory,ram)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、flash等等。
[0470]
输入设备230可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入装置、触摸屏、计步器或重力感应器等。
[0471]
输出设备240可包括允许输出信息给用户的装置,例如显示屏、打印机、扬声器等。
[0472]
通信接口220可包括使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(ran),无线局域网(wlan)等。
[0473]
处理器2102执行存储器200中所存放的程序,以及调用其他设备,可用于实现本技术实施例所提供的语音识别方法的各个步骤。
[0474]
本技术另一实施例还提供了一种存储介质,该存储介质上存储有计算机程序,该
计算机程序被处理器运行时,实现上述任一实施例提供的语音识别方法的各个步骤。
[0475]
具体的,上述的语音识别设备的各个部分的具体工作内容,以及上述的存储介质上的计算机程序被处理器运行时的具体处理内容,均可以参见上述的语音识别方法的各个实施例的内容,此处不再赘述。
[0476]
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
[0477]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0478]
本技术各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,各实施例中记载的技术特征可以进行替换或者组合。
[0479]
本技术各实施例种装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。
[0480]
本技术所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0481]
作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。
[0482]
另外,在本技术各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。
[0483]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0484]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件单元,或者二者的结合来实施。软件单元可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术
领域内所公知的任意其它形式的存储介质中。
[0485]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0486]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。