1.本技术涉及语音识别领域,特别涉及一种语音识别方法及系统。
背景技术:
2.语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。语音识别技术主要包括特征提取技术、模式匹配准则及模型训练技术三个方面。
3.目前,热词被广泛应用于语音识别技术中。尤其是在中文环境下,同音不同字的情况较多,而地方性语言习惯又较为复杂,热词的引入可以在一定程度上解决这一问题,用户通过上传自定义热词,可以使得热词在语音识别中被识别的概率增大,进而提高语音识别的准确率。
4.针对用户上传的自定义热词,如何进行更准确的音素匹配成为了业界重点关注的问题。
技术实现要素:
5.本技术提供了一种语音识别方法及系统,可以提升热词的识别精读。
6.本技术的第一方面提供了一种语音识别方法,该方法应用于语音识别系统,该语音识别方法包括:语音识别系统接收上传的自定义热词和相似度配置后,将该自定义热词转换成自定义音素序列,并将该自定义热词音素序列作为第一音素序列。根据基于聚类算法获得的扩展规则对该第一音素序列进行扩展后,得到扩展后的第一音素序列。语音识别系统接收上传的音频数据后,将该音频数据转换为音频数据音素序列,并将该音频数据音素序列作为第二音素序列。然后计算该扩展后的第一音素序列与该第二音素序列之间的相似度,根据该相似度与相似度配置的关系,确定音频数据的语音识别结果。
7.该语音识别方法基于聚类算法模型扩展自定义热词,其中聚类算法模型的建立综合考虑了语种、方言等语言特征,扩展了例如人名、地名或专有名词等词语的匹配音素序列,有效提升了语音识别结果的精确度。
8.该语音识别系统可以通过同一指令接收自定义热词、相似度配置和音频数据,也可以通过不同指令接收自定义热词、相似度配置和音频数据。
9.在一些可能的设计中,该聚类算法模型包括二叉决策树模型。
10.在一些可能的设计中,该方法还包括:将音素集合输入该二叉决策树模型,该音素集合中包括多个音素。该音素集合可以是由语言学家根据语种、方言等因素构建的音素的集合。可选的,该音素集合还可以是需要定制的训练语料中音频数据对应的音素的集合。将该音素集合中的各个音素划分入该二叉决策树模型的叶子节点后,确定该音素集合中各个音素之间的距离。该各个音素之间的距离指示两个音素被划分入的叶子节点在该二叉决策树内的距离。然后根据该音素集合中各个音素之间的距离,获得该扩展规则。该扩展规则包括该音素集合中各个音素和各个音素的扩展音素的对应关系。
11.在一些可能的设计中,该扩展规则的获得可以在接收自定义热词和相似度配置之前,也可以在接收需要定制的训练语料之后。
12.在一些可能的设计中,根据一个音素所在的叶子节点到另一个音素所在叶子节点的路径中包含的分支节点数量,计算两个音素被划分入的叶子节点在该二叉决策树内的距离。比较该距离与距离阈值的关系,若该距离不超过距离阈值,将所述第二音素作为所述第一音素的扩展音素写入所述扩展规则。
13.在一些可能的设计中,将该扩展后的第一音素序列中的音素拟合为模型;将该第二音素序列中的音素拟合为模型。计算该扩展后的第一音素序列中的音素拟合出的模型和该第二音素序列中的音素拟合出的模型之间的模型距离。根据该模型距离,获得所述扩展后的第一音素序列中的音素和所述第二音素序列中的音素之间的相似度。
14.该方法通过将音素拟合为模型并精确计算模型距离后,根据模型距离获得了两个音素序列之间的相似度,进一步提高了语音识别结果的精确度。
15.本技术的第二方面提供了一种语音识别系统,该系统用于执行第一方面提供的方法。具体的,该系统包括交互模块、处理模块和存储模块。该交互模块用于接收上传的自定义热词、相似度配置和音频数据。该存储模块用于储存该自定义热词、该相似度配置和该音频数据。该处理模块用于根据基于聚类算法模型获得扩展规则,对该第一音素序列进行扩展,获得扩展后的第一音素序列。将该音频数据转换为音频数据音素序列,该音频数据音素序列为第二音素序列。计算该扩展后的第一音素序列与该第二音素序列之间的相似度。根据该相似度配置和该相似度,确定该音频数据的语音识别结果。该交互模块,还用于返回该音频数据的语音识别结果。
16.该语音识别系统可以部署在一个或多个服务器上,或者该语音识别系统可以一部分部署在服务器上一部分部署在终端设备上。
17.在一些可能的设计中,该聚类算法模型包括二叉决策树。
18.在一些可能的设计中,该处理模块还用于将该音素集合输入该二叉决策树,该音素集合中包括多个音素。将该音素集合中各个音素划分入该二叉决策树的叶子节点。确定该音素集合中各个音素的距离,其中,该音素集合中两个音素的距离指示该两个音素被划分入的叶子节点在该二叉决策树内的距离。根据该音素集合中各个音素之间的距离,获得该扩展规则,其中,该扩展规则包括该音素集合中各个音素和各个音素的扩展音素的对应关系。
19.在一些可能的设计中,该处理模块还用于根据该第一音素所在的叶子节点到该第二音素所在叶子节点的路径中包含的分支节点数量,获得该第一音素与该第二音素之间的距离。若该第一音素与该第二音素之间的距离不超过距离阈值,将该第二音素作为该第一音素的扩展音素写入所述扩展规则。
20.本技术的第三方面提供了一种计算设备集群,该集群包括至少一个计算设备,每个计算设备包括处理器和存储器。该至少一个计算设备的处理器用于执行该存储器中存储的指令,以使得该计算设备集群执行如第一方面或第一方面的任一种实现方式所述的方法。
21.本技术的第四方面提供了一种计算机可读存储介质,该计算机可读存储介质包括计算机程序指令,当该计算机程序指令由计算设备集群执行时,该计算设备集群执行如第
一方面或第一方面的任一种实现方式所述的方法。
22.本技术的第五方面提供了一种包含指令的计算机程序产品,当该指令在计算机设备集群上运行时,使得该计算机设备集群执行上述第一方面或第一方面的任一种实现方式所述的方法。
附图说明
23.为了更清楚地说明本技术实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
24.图1为本技术实施例提供的一种语音识别系统的架构图;
25.图2a为本技术实施例提供的一种语音识别系统的应用场景示意图;
26.图2b为本技术实施例提供的另一种语音识别系统的应用场景示意图;
27.图3为本技术实施例提供的一种语音识别方法的流程图;
28.图4为本技术实施例提供的一种客户端的交互界面示意图;
29.图5为本技术实施例提供的一种客户端的交互界面示意图;
30.图6为本技术实施例提供的一种二叉决策树模型的结构示意图;
31.图7为本技术实施例提供的一种扩展规则的示意图;
32.图8为本技术实施例提供的又一种语音识别系统的架构图;
33.图9为本技术实施例提供的又一种语音识别系统的架构图;
34.图10为本技术实施例提供的一种计算设备的结构示意图。
具体实施方式
35.本技术实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
36.首先对本技术实施例中所涉及到的一些技术术语进行介绍。
37.音素(phone),是根据语音的自然属性划分出来的最小语音单位,依据音节里的发音动作来分析,一个动作构成一个音素。例如,英语国际音标共有48个音素,其中元音音素20个、辅音音素28个,标准汉语中音素为130余个。
38.热词(hot word),是指用户在语言表达中常用的词语。例如,在金融领域,热词可以是利率、离岸金融和头寸等词语。而针对个人用户而言,热词可以是家人或朋友的姓名以及常去的地名等词语。热词词表可以包含一类或是多类热词的集合,例如人名、地名或专有名词中的一类或多类词语的集合。
39.语音交互技术随着移动通信和人工智能的发展逐渐深入人们的生活,语音识别作为基础能力成为其中保证业务可靠和提高用户体验的重要一环。尽管使用深度学习声学模型构建的识别系统已经在某些公开数据集上取得超越人类的表现,然而通用领域的声学模型在识别特定领域语音的效果还不尽人意。使用特定领域语料训练领域声学模型是一个解决办法,但是其缺点也非常明显,领域模型训练上线周期长,需耗费大量的人力物力收集和标注领域语料数据。由此,自定义热词识别方案也成为研究重点之一,支持用户上传热词,在识别过程中或之后根据用户词信息修改识别结果,以提高识别准确率。
40.更具体地,一方面,通常使用查询发音词典或g2p(grapheme-to-phoneme)模型实现自定义热词的音素转换及标注。另一方面,对终端设备语音输入的数据进行编码和解码的步骤后,生成如解码词格一类的含有n-best路径的音素序列集合。再使用自定义热词对应的音素序列与终端设备音频识别结果转换得到的音素序列进行匹配,修改解码词格或直接修改识别结果。目前常用的匹配方式有完全匹配、规则匹配和编辑距离匹配。其中,完全匹配是将自定义热词音素序列与识别结果转换的音素序列按照字符完全查找,存在即为匹配,否则不匹配。规则匹配是对自定义热词转换后的音素中部分声韵母音素通过正则表达式或逻辑规则进行扩展,匹配更多相近或相似音。例如,枚举由方言引起的规律性发音偏差。编辑距离匹配是一种较为准确度量相似程度的方法,是将待匹配热词转换后的音素序列和识别词语结果对应的音素序列视为文本序列,计算两者差异,统计删除、替换、添加的字符个数,通过配置确定是否匹配。值得注意的是,音素序列本身是文本信号,而不是其背后表征的声音信号。例如:“s i1(思)”与“c i1(此)”、“p i1(披)”之间音素序列均相差一个字符,可以发现“s i1”和“c i1”发音较为相似,但“s i1”和“p i1”发音则相差较大。此外,解码词格中的自定义热词权重固定,导致整体灵活性差,容易产生误激励。针对用户上传的自定义热词,如何进行更准确的音素匹配成为了业界重点关注的问题。
41.有鉴于此,本技术实施例提供了一种可实现更准确音素匹配的语音识别方法。该方法可以由语音识别系统执行。具体地,针对用户上传的自定义热词,基于音素绑定的二叉决策树对自定义热词进行扩展。度量扩展后的自定义热词转换后的音素序列与语音识别解码得到的音素序列之间的相似度,根据相似度与配置的大小关系添加带有动态权重的解码路径,然后向终端设备返回语音识别结果。
42.一方面,该方法可以自主发现与自定义热词音素序列相近的音素,提高了相近音的命中率,解决了由于方言发音偏差或语音质量引起的音素推理错误。另一方面,该方法可以准确计算两组音素序列之间的相似度,并使用配置控制匹配结果,实现了解码路径代价的动态修改,进一步提高了语音识别的准确度。
43.为了使得本技术的技术方案更加清楚、易于理解,下面结合附图对本技术实施例提供的语音识别方法的系统架构进行介绍。
44.图1示出了一种语音识别系统的示例性架构图。如图1所示,语音识别系统1000与服务设备集群1100和终端设备集群1200之间均建立有通信通路。语音识别系统1000用于根据服务设备或终端设备上传的自定义热词等数据,对终端设备输入的音频数据进行语音识别。
45.服务设备集群1100可以包含一个或多个服务设备。其中,多个服务设备可以是同一类服务设备中的不同部分,例如同一应用软件中的不同接口。也可以是不同类的服务设备,例如不同的应用软件。每个服务设备都可以分别向语音识别系统1000上传自定义热词词表。因为各个服务设备所处的领域可能不同,因此多个服务设备上传的热词词表之间可能具有一定的差异性。终端设备集群1200也可以包含一个或多个终端设备。其中,终端设备可以是多媒体设备,例如手机、电脑或智能音箱等。
46.如图1所示,语音识别系统1000连接着终端设备集群1200,包含有一个或多个终端设备,这一个或多个终端设备可以分为m类。在一些实现方式中,一个服务设备可以对应一类或多类终端设备。例如,图1中终端设备1200_1_1至终端设备1200_1_n这n个终端设备对
应服务设备1100_1,终端设备1200_2_1至终端设备1200_2_n这n个终端设备对应服务设备1100_2,以此类推。每一个或一类服务设备对应的终端设备的数量可以相同也可以不同。每个终端设备可以对应一个或多个服务设备,因此不同类的终端设备可能对应同一服务设备。
47.语音识别系统1000可以接受多个服务设备上传具有差异性的自定义热词词表,每个服务设备上传的自定义热词词表独立,也即每个服务设备上传的热词词表仅用于该服务设备对应的终端设备上传的音频数据的解码和音素转换等处理。具体地,在语音识别系统1000中利用通用语音识别模型,对终端设备上传的经过编码的语音序列进行解码。通过求解自定义热词与语音识别结果对应的音素序列之间的相似度,修改解码路径并输出最终识别结果。例如服务设备1100_1的自定义热词词表可以提供给终端设备1200_1_1至终端设备1200_1_n这n个终端设备,服务设备1100_2的自定义热词词表可以提供给终端设备1200_2_1至终端设备1200_2_n这n个终端设备,以此类推。
48.在一些实现方式中,服务设备集群1100包含多个服务设备,这多个服务设备共用一个自定义热词词表。该自定义热词词表可以影响终端设备集群1200中各终端设备上传的音频数据的解码及音素转换过程。进一步地,在这一架构下可以根据服务设备提供的需要定制的领域或方言训练语料,提取对应的语音数据特征,实现对语音识别系统1000的定制。具体地,语音识别系统1000的定制包括音素扩展模型和特征分布模型的定制。音素扩展模型指的是利用二叉决策树对音素进行聚类。其中,分裂因素也就是语音数据特征,是根据服务设备提供的训练语料提取得来。特征分布模型指的是利用混合高斯模型(gaussian mixture model,gmm)或者深度神经网络模型拟合每一个音素对应的特征分布。其中,特征分布模型的参数是可以根据服务设备提供的训练语料进行更新。
49.在一些实现方式中,服务设备和终端设备可以是同一设备。具体地,这一类设备既向语音识别系统1000发送自定义热词,又向系统1000发送音频数据并接收语音识别结果。
50.接下来对本技术中的语音识别系统1000的应用场景进行介绍。
51.语音识别系统1000中的模块可以部署在相同设备上,也可以部署在不同设备上。
52.在一些实现方式中,语音识别系统1000中的模块均部署在服务器上。如图2a所示,语音识别系统1000可以部署在本地的一个或多个服务器上,也可以部署在云端的一个或多个云服务器上。
53.在一些实现方式中,语音识别系统1000包括运行在服务器上的子语音识别系统1000_a和运行在终端设备上的子语音识别系统1000_b。如图2b所示,语音识别系统1000中的子语音识别系统1000_a部署在服务器侧,子语音识别系统1000_b部署在终端设备侧。其中,服务器可以是一个或多个云服务器,也可以是一个或多个本地服务器。
54.接下来,从语音识别系统1000的角度,对本技术实施例提供的语音识别方法进行详细介绍。
55.参见图3所示的语音识别方法的流程图,该方法包括:
56.s2002:语音识别系统1000接收设备上传的信息。
57.在一些实现方式中,如图2a所示的应用场景下,语音识别系统1000(具体可以是交互模块1002)可以通过服务设备侧的客户端收集信息。具体地,服务设备侧上传的信息包括相似度配置和自定义热词词表。可选的,服务设备侧上传的信息还可以包括需要定制的训
练语料。所述需要定制的训练语料包括音频数据和对应的标注文本信息。
58.接下来将介绍服务设备如何上传信息至语音识别系统1000。例如,图4提供了一种服务设备侧客户端的交互界面示意图,该客户端运行在服务设备侧。如图4所示,交互界面3000中有用于设置及上传的控件。具体地,交互界面3000包括下述控件中的一种或多种:文件选择控件3002、上传控件3004、相似度设置控件3008以及确定控件3010。选择文件控件3002可以让服务设备侧用户提供自定义热词文件进行上传。进一步地,自定义热词文件在上传时需要符合相应的数量以及格式要求,包括文件的文本排版格式和文件编码方式,以便于进行后续步骤。在需要时,用户还可以通过选择文件控件3002上传需要定制的领域或方言训练语料。在选择了需要上传的文件后,具体的文件路径或文件名会显示在选择文件控件3002上方的空白方框中。经过服务设备侧用户确认所选文件无误后,通过触发上传控件3004完成文件的初步上传。
59.服务设备侧用户可以通过相似度设置控件3008设置相似度配置。相似度配置可以包括多种相似度级别,和/或自定义相似度参数。不同的相似度级别代表了不同的相似度参数,用户也可以输入自定义的相似度参数。一般而言,相似度参数越高,代表着用户对于匹配精度要求越高。例如,相似度设置控件3008提供3种相似度级别(高、中、低),这3种相似度级别对应的相似度参数依次递减。通过相似度设置控件3008向用户提供相似度配置,用户可以控制热词加权激励的强弱程度。用户可以根据所在领域以及使用场景设置合理的相似度配置,避免热词匹配过于宽松或过于严格的问题,从而进一步提高语音识别正确率。服务设备侧用户可以通过点击确定控件3010,确定上述文件或数据的传输路径,并触发对前述信息的上传。
60.在上述客户端中的文件选择、上传和相似度配置的选择、上传操作,由图2a中的语音识别系统1000执行。服务设备侧用户上传的文件和相似度配置,将被储存至语音识别系统1000中。
61.需要说明的是,在服务设备侧,相似度配置、自定义热词词表和需要定制的训练语料这三类信息的上传操作可以是由同一指令控制,也可以由不同指令控制。
62.在一些实现方式中,如图2b所示的应用场景下,语音识别系统1000(具体可以是交互模块1002)可以分别通过服务设备侧和终端设备侧的客户端收集信息。具体地,服务设备侧上传的信息包括相似度配置。可选的,服务设备侧上传的信息还可以包括自定义热词词表和需要定制的训练语料中的一种或多种。服务设备侧用户上传信息的具体操作与在如图2a的应用场景下的操作类似。终端设备侧上传的信息包括私有自定义热词词表。所述私有自定义热词词表可以是用户出于隐私保护或个人意愿等原因,选择上传至终端设备侧的子语音识别系统1000_b,而不上传至其他设备的自定义热词词表。具体地,可以是终端设备侧用户在与服务设备侧服务提供商或语音识别系统侧服务提供商签署相关协议后,选择不开放其通讯录或地图应用中的常用地址等信息的读取权限给其他设备。例如,通讯录中的人名和常用地址中的地名等信息,可以作为私有自定义热词词表。需要说明的是,所述其他设备包括除终端设备以外的服务器,还包括其他终端设备。因此,任何一位用户的私有自定义热词词表也不会共享给终端设备集群1200中的其他终端设备。
63.终端设备侧的子语音识别系统1000_b可以读取或调用终端侧用户上传的私有自定义热词词表。考虑到私有自定义热词词表不可上传至其他设备,需要将语音识别系统
1000中的一部分模块部署在终端设备侧。值得注意的是,将自定义热词词表储存在终端设备上,并进行相关计算,可能会影响到终端设备的内存以及运行内存的分配,进而影响终端设备的运行速度。
64.接下来将介绍终端设备如何上传信息至语音识别系统1000。例如,图5提供了一种终端设备侧客户端的交互界面示意图,该客户端运行在终端设备侧。如图5所示,交互界面4000中有用于设置及上传的控件。具体地,交互界面4000至少包括权限开放控件4004和确定控件4006。
65.用户可以通过权限开放控件4004选择开放权限的文件范围。具体地,开放权限的文件可以包括应用软件中的文件。例如,在用户在权限开放控件4004中勾选通讯录这一项,并点击确定控件4006完成上传后。子语音识别系统1000_b即可读取或调用通讯录中的人名列表这一私有自定义热词词表。
66.上述的权限开放和上传操作可以由图2b中的子语音识别系统1000_b执行,用户提供的私有自定义热词词表将被储存至子语音识别系统1000_b中。
67.s2004:语音识别系统1000根据聚类算法模型建立扩展规则。将音素集合输入聚类算法模型,可以获得训练后的聚类算法模型。所述音素集合可以是由语言学家根据语种、方言等因素构建的音素的集合。可选的,所述音素集合还可以是需要定制的训练语料中音频数据对应的音素的集合。在本技术实施例中,聚类算法模型可以是二叉决策树或均值漂移聚类等模型。
68.接下来将以聚类算法模型为二叉决策树模型为例,介绍扩展规则的建立方法。
69.图6示出了一种二叉决策树模型。二叉决策树模型中的结点分为两类,一类是出度为零的叶子节点,例如节点5010和5012。一类是出度不为零的分支节点,例如节点5000和5002。其中,节点5000是分支节点中特殊的一个,因为没有父节点,又被称为根节点。将音素集合输入所述二叉决策树模型中的节点5000,将音素集合中的每个音素,根据所述二叉决策树模型划分至一个叶子节点中。其中,每一个分支节点上均设置有划分条件。每一个进入父节点音素都会根据划分结果,进入对应的子节点中。在利用二叉决策树模型对音素集合进行聚类后,可以得到一个具有一定数量叶子节点和一定深度的二叉决策树模型。在本技术实施例中,每一个叶子节点至少包含一个音素。
70.在将音素集合输入二叉决策树模型,并得到叶子节点中包含一个或多个音素的二叉决策树模型后,确定所述二叉决策树模型中每两个音素之间的距离。所述距离可以是两个音素被划分入的叶子节点在所述二叉决策树内的距离。具体地,是从一个音素所在的叶子节点到另一个音素所在叶子节点的最短路径中包含的分支节点数量。例如,在分别处于同一父节点(5006)下的两个叶子节点(5010和5012)上的音素之间的距离为1。其中,距离1表示在节点5010上的一个音素与在节点5012上的另一个音素之间的最短路径中,包含了一个分支节点(5006)。在本技术实施例中,根据预设的距离阈值,如果两个音素之间的距离不超过所述距离阈值,则认为这两个音素可以相互扩展。对于每个音素,通过在用户预设的距离阈值范围内遍历所有叶子节点上的音素,将每个音素与在距离阈值范围内的音素进行配对,可以获得扩展规则。扩展规则中包括了每个音素对应的,可以被扩展到的其他音素的集合。每个音素和其扩展音素的在所述二叉决策树内的距离不超过距离阈值。在一些实现方式中,在二叉决策树模型中,分支节点上的划分条件可以是语言学家总结的划分条件,还可
以是以梅尔倒谱系数(mel-scale frequency cepstral coefficients,mfcc)等语音特征作为划分条件。
71.需要说明的是,在这一类实现方式下,聚类算法模型和扩展规则的构建可以发生在步骤s2002中所述信息上传之前。具体地,所述信息包括相似度配置和自定义热词词表。可选的,所述信息还可以包括需要定制的训练语料。其中,所述需要定制的训练语料包括音频数据和对应的标注文本信息。换言之,在这一类实现方式下,步骤s2004不一定要在步骤s2002之后执行。
72.在一些实现方式中,服务设备可以上传需要定制的训练语料。根据所述训练语料,利用人工智能模型可以得到定制化的聚类算法模型。其中,人工智能模型可以是基于神经网络或机器学习这一类人工智能算法构建的模型。例如,以二叉决策树模型为例。以训练语料中的音频数据作为输入量,对应的标注文本信息作为输出量,可以获得针对这一训练语料的定制化二叉决策树模型。其中,各分支节点的划分条件均是利用人工智能模型生成。
73.在这一类实现方式下,上述的定制化二叉决策树模型的构建和训练,由图2a中的语音识别系统1000或图2b中的子语音识别系统1000_a执行。在这一类实现方式下,聚类算法模型和扩展规则的构建应当发生在用户信息上传之后。即步骤s2004需要在步骤s2002之后执行。
74.上述两种实现方式在构建二叉决策树模型后,根据设置的距离阈值,可以获得扩展规则。其中,距离阈值可以由服务设备侧用户进行设置。例如,如图4所示,服务设备侧用户可以通过距离阈值控件3006设置距离阈值。可选的,服务侧用户也可以不加操作的使用默认的距离阈值,即在距离阈值控件3006的文本框中初始化的距离阈值。通过比较音素集合中两个音素之间的距离和距离阈值的关系,可以确定扩展规则。具体地,所述两个音素之间的距离不超过距离阈值时,认为这两个音素可以相互扩展。
75.图7给出了一种扩展规则的示例。如图7所示,将音素集合z输入二叉决策树模型。其中,音素集合包含音素a以音素a、b、c、d、e等多个音素。以音素a为例,根据图6中划分完成的二叉决策树,可以获得音素a的扩展音素。其中,图6中的叶子节点5010包括音素a和b,节点5012包括音素c,节点5014包括音素d和e,而节点5016包括音素f和g。在本技术实施例中,距离阈值设置为3。因此,音素a的扩展音素包括音素b、c、d、e、f和g。音素a可以与其扩展音素中的任一音素相互扩展。例如,音素b的扩展音素中包含音素a,音素c的扩展音素中也包含音素a,以此类推。音素a与其扩展音素b、c、d、e、f和g之间的对应关系是一种扩展规则,也是音素集合z的扩展规则的一部分。
76.所述扩展规则将被储存在图2a中的语音识别系统1000或图2b中的子语音识别系统1000_a中。s2006:语音识别系统1000根据扩展规则扩展自定义热词音素序列。具体地,在查询发音词典或使用g2p模型完成自定义热词到音素序列的转换后,根据s2004中确定的扩展规则,可以实现自定义热词音素序列的扩展。
77.首先,通过查询发音词典或使用g2p模型,可以将自定义热词词表转换成自定义热词音素序列。考虑到前后音素连读可能对相邻音素的影响,还需要对音素的位置信息进行标注。具体地,需要首先通过查询发音词典的方式对自定义热词进行音素转换。如果未能查询到对应的音素,再利用g2p模型进行音素转换,并完成对音素的位置信息的标注。然后,根据s2004中获得的扩展规则,以音素为单位,对自定义热词转换得到的音素序列进行扩展,
获得扩展后的自定义热词音素序列。具体地,在步骤s2004中获得的扩展规则中寻找一个音素对应的扩展音素。并利用扩展音素中的音素,以替换的方式获得新的音素序列,以达到扩展自定义热词音素的目的。其中,音素序列可以包括一个或多个音素。以图7所示的扩展规则为例,对于音素序列“xxxaxx”,可以被扩展为“xxxbxx”和“xxxcxx”,以此类推。因此,扩展后的音素序列将至少包含“xxxaxx”,“xxxbxx”和“xxxcxx”等7种不同的音素序列。
78.在一些实现方式中,如图2a所示,服务设备上传的自定义热词被储存在语音识别系统1000中。上述的从自定义热词到音素序列的转换和自定义热词音素序列的扩展操作,均由语音识别系统1000执行,并且将获得的扩展后的自定义热词音素序列储存到语音识别系统1000中。
79.在一些实现方式中,如图2b所示,终端设备上传至子语音识别系统1000_b的私有自定义热词被储存在子语音识别系统1000_b中。上述的自定义热词到音素序列的转换和自定义热词音素序列的扩展操作,均由子语音识别系统1000_b执行,并且将获得的扩展后的私有自定义热词音素序列储存到子语音识别系统1000_b中。在这一类实现方式中,服务设备也可以上传自定义热词。服务设备上传的自定义热词被储存在子语音识别系统1000_a中。上述的自定义热词到音素序列的转换和自定义热词音素序列的扩展操作,均由处理模块子语音识别系统1000_a执行,并且将获得的扩展后的自定义热词音素序列储存到子语音识别系统1000_a中。
80.s2008:语音识别系统1000接收终端设备上传的音频数据。
81.如图5所示,交互界面4000中有用于上传的控件。具体地,交互界面4000至少包括音频输入控件4002和确定控件4006。
82.终端设备侧用户可以通过音频输入控件4002输入音频数据。具体地,用户可以点击音频输入控件4002中的开始录制按钮和结束录制按钮完成一段音频数据的输入。通过点击确定控件4006,可以完成音频数据的上传。然后通过调用识别接口,对已经编码过的音频数据进行解码。得到的包含解码结果的词格中包含有n-best路径,获得并记录这些解码路径对应的音素序列。
83.在一些实现方式中,如图2a所示,通过终端设备侧客户端上传的音频数据,在进入语音识别系统1000后,经过音频数据到音素序列的转换后,所述音素序列将被储存在语音识别系统1000中。
84.在一些实现方式中,如图2b所示,通过终端设备侧客户端上传的音频数据,在进入子语音识别系统1000_b后,经过音频数据到音素序列的转换后,所述音素序列将被储存在子语音识别系统1000_b中。
85.需要说明的是,步骤s2006不一定要在步骤s2008之前执行。具体地,根据扩展规则扩展自定义热词音素序列这一操作,可以先于将音频数据转换成音素序列这一操作被执行。可选的,根据扩展规则扩展自定义热词音素序列这一操作,还可以与将音频数据转换成音素序列这一操作同时进行。
86.s2010:语音识别系统1000计算音素之间的相似度。具体地,计算音频数据对应的音素序列和扩展后的自定义热词对应的音素序列之间的相似度。
87.在一些实现方式中,可以将音频数据对应的音素序列和扩展后的自定义热词对应的音素序列视为文本序列,计算两者差异。具体地,对比音频数据对应的音素序列和扩展后
的自定义热词对应的音素序列,统计删除、替换和添加的字符个数。根据所述字符变化个数,基于一定的计算规则,可以获得两个音素序列之间的相似度。
88.在一些实现方式中,可以以音素为单位建立模型,将每一个音素拟合为一个模型。具体地,该模型可以是gmm特征分布模型或者深度神经网络模型。然后计算音频数据对应的音素序列拟合的模型和扩展后的自定义热词对应的音素序列拟合的模型之间的相似度。首先,为步骤s2008中音频数据对应的音素序列和步骤s2006中获得扩展后的自定义热词音素序列的每个音素为单位建立模型。具体地,当采用gmm特征分布模型的情况下,将每个音素通过gmm特征分布模型映射成一条特征分布曲线。当采用深度神经网络模型的情况下,将每个音素通过深度神经网络模型映射成一个矩阵。深度神经网络是机器学习(machine learning,ml)领域中一种技术,可以通过设置网络参数以及输入输出量对模型进行训练。在本技术实施例中,可以训练一种以音素为输入,以矩阵为输出的深度神经网络模型。
89.其次,当采用gmm特征分布模型的情况下,在对音频数据对应的音素序列与自定义热词对应的音素序列对应的特征分布模型进行拟合后,以滑动匹配的方式将扩展后的自定义热词音素与语音识别结果转换得到的音素序列进行配对计算。以扩展后的自定义热词音素的长度为滑动的窗口长度,以一个音素的长度为一次滑动的长度。从音频数据对应的音素序列的第一个音素滑动至最后一个音素,每一次滑动窗口内的计算方式是计算对应音素之间的相对熵(kullback-leibler divergence,kl散度),这表示的是两个概率分布差异的非对称性度量。进一步地,对应音素是指扩展后的自定义热词音素中的第一个音素与滑动窗口内的第一个音素对应,扩展后的自定义热词音素中的第二个音素与滑动窗口内的第二个音素对应,以此类推。获得对应音素对应的特征分布函数gmm之间的kl散度后,计算当前窗口内每一对音素kl散度的平均值,并以此作为该扩展后的自定义热词音素序列与当前窗口内音频数据对应的音素序列之间的相似度。
90.当采用深度神经网络模型的情况下,可以通过计算不同音素对应的矩阵之间的超空间距离度量两个音素之间的相似度。具体的计算方式也是按照滑动匹配的方法进行的,以扩展后的自定义热词音素的长度为滑动的窗口长度,以一个音素的长度为一次滑动的长度。从音频数据对应的音素序列的第一个音素滑动至最后一个音素,每一次滑动窗口内的计算方式是计算对应音素之间的超空间距离。计算当前窗口内所有元素对的超空间距离的平均值,并以此作为该扩展后的自定义热词音素序列与当前窗口内音频数据对应的音素序列之间的相似度。
91.接下来对上述两种实现方式的动作执行者进行介绍。
92.在一些实现方式中,如图2a所示,语音识别系统1000用于执行上述的将音素序列转换成文本序列或每个音素拟合成一个模型的操作。上述扩展后的自定义热词音素序列与音频数据对应的音素序列之间的相似度的计算也由语音识别系统1000执行。获得的由音素序列转换而来的文本序列或音素模型均储存在语音识别系统1000中,相似度计算结果也将储存在语音识别系统1000中。
93.在一些实现方式中,如图2b所示,子语音识别系统1000_b用于执行上述的将音素序列转换成文本序列或每个音素拟合成一个模型的操作。上述扩展后的自定义热词音素序列与音频数据对应的音素序列之间的相似度的计算也由子语音识别系统1000_b执行。获得的由音素序列转换而来的文本序列或音素模型均储存在子语音识别系统1000_b中。相似度
计算结果也将储存在子语音识别系统1000_b中。其中,所述扩展后的自定义热词音素序列包括储存在子语音识别系统1000_b中的扩展后的私有自定义热词音素序列。可选的,还可以包括储存在子语音识别系统1000_a中的扩展后的自定义热词音素序列。s2012:语音识别系统1000根据相似度匹配自定义热词,确定语音识别结果并返回。
94.通过比较步骤s2002中服务设备侧用户设置的相似度配置对应的相似度参数,以及步骤s2010中计算得到的相似度对解码词格进行更新。
95.具体地,若相似度满足相似度配置的要求,则将相应的自定义热词作为一条新路径添加至解码词格。若相似度未满足相似度配置的要求,则不对现有解码词格进行修改。
96.进一步地,修改的方式是将自定义热词添加为一条新路径,其语言模型的值为其语言模型原值乘以权值。其中,权值等于相似度。最后,根据语音识别系统1000对语音识别结果的要求,确定一条或多条解码路径。对该路径上的解码词格进行解码操作,并通过图2a中的交互模块1002或图2b中的交互模块1002_b,将语音识别结果返回给终端设备。在返回语音识别结果时,可以只以编码的形式返回,便于参与下一步的数据处理。也可以显示的方式,在如图5中的显示控件4008中展示语音识别结果。
97.接下来对本技术中的语音识别系统1000的两种架构进行介绍。
98.图8示出了语音识别系统1000的一种架构。其中,语音识别系统1000中的模块均部署在服务器上。具体地,语音识别系统1000包括交互模块1002、存储模块1004和处理模块1006。
99.交互模块1002,用于接收s2002中用户上传的相似度配置和自定义热词词表。可选的,交互模块1002还用于接收s2002中上传的需要定制的训练语料。服务设备集群1100可以通过应用程序接口(application programming interface,api)或如图4所示的客户端,与交互模块1002建立通信。
100.交互模块1002还用于接收s2008中上传的音频数据。交互模块1002还用于返回s2012中的语音识别结果,返回的方式包括下述的一种或多种:以编码的形式和显示的方式返回语音识别结果。
101.存储模块1004用于存储交互模块1002接收的信息,所述信息包括相似度配置、自定义热词词表和音频数据。可选的,还包括需要定制的训练语料。还用于存储s2004中获得的扩展规则。存储模块1004还用于存储s2006中获得的扩展后的自定义热词音素序列。在s2008中,音频数据对应的音素序列被存储至存储模块1004中。在s2010中,获得的由音素序列转换而来的文本序列或音素模型均储存在存储模块1004中。
102.在一些实现方式中,存储模块1004可以包含多个子存储模块。具体地,当一个服务设备可以对应一类或多类终端设备时,这一个的服务设备以及对应的终端设备集群共用一个子存储模块。例如,在图1的示例中,服务设备1以及其对应的终端设备1_1至终端设备1_n可共用一个子存储模块,以此类推。在这一架构下,由于每个服务设备可以对应多类终端设备,不同类的终端设备之间的子存储模块可以复用。
103.处理模块1006用于执行s2004中的聚类算法模型的构建和训练,以及扩展规则的获得操作。处理模块1006还用于在s2006中根据扩展规则执行自定义热词的音素扩展的操作。在s2008中,处理模块1006用于将音频数据转换成音素序列。处理模块1006用于执行s2010中所述的将音素序列转换成文本序列或每个音素拟合成一个模型的操作。s2010中扩
展后的自定义热词音素序列与音频数据对应的音素序列之间的相似度的计算,也由处理模块1006执行。处理模块1006还用于在s2012中根据相似度配置更新解码词格,以及确定语音识别结果。
104.图9示出了语音识别系统1000的又一种架构。其中,语音识别系统1000中的模块部分部署在服务器上,部分部署在终端设备上。具体地,语音识别系统1000包括子语音识别系统1000_a和子语音识别系统1000_b。其中,子语音识别系统1000_a包括交互模块1002_a、存储模块1004_a和处理模块1006_a。子语音识别系统1000_b包括交互模块1002_b、存储模块1004_b和处理模块1006_b。
105.图8中的交互模块1002可以包括交互模块1002_a和交互模块1002_b。存储模块1004可以包括存储模块1004_a和1004_b。处理模块1006可以包括处理模块1006_a和处理模块1006_b。
106.交互模块1002_a用于接收s2002中用户上传的相似度配置。可选的,交互模块1002_a还用于接收s2002中用户上传的需要定制的训练语料和自定义热词词表。
107.交互模块1002_b用于接收s2002中用户上传的私有自定义热词词表。交互模块1002_b还用于接收s2008中上传的音频数据。交互模块1002_b还用于返回s2012中的语音识别结果,返回的方式包括下述的一种或多种:以编码的形式和显示的方式返回语音识别结果。
108.存储模块1004_a用于存储交互模块1004_a接收的相似度配置。可选的,还包括需要定制的训练语料和自定义热词词表。还用于存储s2004中获得的扩展规则。存储模块1004_a还用于存储s2006中获得的扩展后的自定义热词音素序列。在s2010中,获得的由扩展后的自定义热词音素序列转换而来的文本序列或音素模型,均储存在存储模块1004_a中。
109.存储模块1004_b用于存储交互模块1004_b接收的私有自定义热词词表和音频数据,还用于存储私有自定义热词音素序列和音频数据音素序列。还用于存储s2006中获得的扩展后的私有自定义热词音素序列。在s2008中,音频数据对应的音素序列被存储至存储模块1004_b中。在s2010中,获得的由私有自定义热词音素序列和音频数据转换而来的文本序列或音素模型,均储存在存储模块1004_b中。
110.处理模块1006_a用于执行s2004中的聚类算法模型的构建和训练,以及扩展规则的获得操作。处理模块1006_a还用于在s2006中根据扩展规则执行自定义热词的音素扩展操作。处理模块1006_a还用于执行s2010中所述的将扩展后的自定义热词音素序列转换成文本序列或每个音素拟合成一个模型的操作。
111.处理模块1006_b,用于在s2008中将音频数据转换成音素序列。处理模块1006_a还用于执行s2010中所述的将私有自定义热词音素序列和音频数据,分别转换成文本序列或每个音素拟合成一个模型的操作。s2010中扩展后的自定义热词音素序列与音频数据对应的音素序列之间的相似度的计算,也由处理模块1006_b执行。其中,自定义热词音素序列包括存储在存储模块1004_a中的自定义热词音素序列,和存储在1004_b中的私有自定义热词音素序列。处理模块1006_b还用于在s2012中根据相似度配置更新解码词格,以及确定语音识别结果。
112.图10提供了一种计算设备6000的结构示意图。如图10所示,计算设备6000包括:总
线6002、处理器6004和存储器6006。处理器6004和存储器6006之间通过总线6002通信。计算设备6000可以是服务器或终端设备。
113.总线6002可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
114.处理器6004可以为中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)、微处理器(micro processor,mp)或者数字信号处理器(digital signal processor,dsp)等处理器中的任意一种或多种。
115.存储器6006可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,ram)。存储器6004还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom),快闪存储器,机械硬盘(hard disk drive,hdd)或固态硬盘(solid state drive,ssd)。存储器6006中存储有可执行的程序代码,处理器6004执行该可执行的程序代码以实现前述语音识别系统1000的功能,或者执行前述实施例描述的语音识别方法。
116.本技术实施例还提供了一种计算设备集群。所述计算设备集群包括至少一个计算设备6000。该计算设备集群中包括的计算设备6000可以是服务器,也可以部分是服务器部分是终端设备。
117.该计算设备集群中包括的计算设备6000为服务器的情况下,每个计算设备6000运行了语音识别系统1000的一个或多个模块(如图8所示)。该计算设备集群中包括的计算设备6000部分是服务器部分是终端设备的情况下,为服务器的计算设备6000运行了子语音识别系统1000_a的一个或多个模块,为终端设备的计算设备6000运行了子语音识别系统1000_b的一个或多个模块(如图9所示)。
118.本技术实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述应用于语音识别系统1000的语音识别方法。
119.本技术实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算机设备上运行时,使得至少一个计算机设备执行上述应用于语音识别系统1000的语音识别方法。
120.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
技术特征:
1.一种语音识别方法,其特征在于,所述方法应用于语音识别系统,所述方法包括:接收上传的自定义热词和相似度配置;将所述自定义热词转换成自定义热词音素序列,所述自定义热词音素序列为第一音素序列;根据基于聚类算法模型获得的扩展规则对所述第一音素序列进行扩展,获得扩展后的第一音素序列;接收上传的音频数据;将所述音频数据转换为音频数据音素序列,所述音频数据音素序列为第二音素序列;计算所述扩展后的第一音素序列与所述第二音素序列之间的相似度;根据所述相似度配置和所述相似度,确定所述音频数据的语音识别结果。2.如权利要求1所述的方法,其特征在于,所述聚类算法模型包括二叉决策树。3.如权利要求2所述的方法,其特征在于,所述方法还包括:将音素集合输入所述二叉决策树,所述音素集合中包括多个音素;将所述音素集合中各个音素划分入所述二叉决策树的叶子节点;确定所述音素集合中各个音素的距离,其中,所述音素集合中两个音素的距离指示所述两个音素被划分入的叶子节点在所述二叉决策树内的距离;根据所述音素集合中各个音素之间的距离,获得所述扩展规则,其中,所述扩展规则包括所述音素集合中各个音素和各个音素的扩展音素的对应关系。4.如权利要求3所述的方法,其特征在于,根据所述音素集合中各个音素之间的距离,获得所述扩展规则包括:根据第一音素所在的叶子节点到第二音素所在叶子节点的路径中包含的分支节点数量,获得所述第一音素与所述第二音素之间的距离;若所述第一音素与所述第二音素之间的距离不超过距离阈值,将所述第二音素作为所述第一音素的扩展音素写入所述扩展规则。5.如权利要求1至4任一所述的方法,其特征在于,计算所述扩展后的第一音素序列与所述第二音素序列之间的相似度,包括:将所述扩展后的第一音素序列中的音素拟合为模型;将所述第二音素序列中的音素拟合为模型;计算所述扩展后的第一音素序列中的音素拟合出的模型和所述第二音素序列中的音素拟合出的模型之间的模型距离;根据所述模型距离,获得所述扩展后的第一音素序列中的音素和所述第二音素序列中的音素之间的相似度。6.一种语音识别系统,其特征在于,所述系统包括交互模块、处理模块和存储模块:所述交互模块,用于接收上传的自定义热词、相似度配置和音频数据;所述存储模块,用于储存所述自定义热词、所述相似度配置和所述音频数据;所述处理模块,用于根据基于聚类算法模型获得的扩展规则,对所述第一音素序列进行扩展,获得扩展后的第一音素序列;将所述音频数据转换为音频数据音素序列,所述音频数据音素序列为第二音素序列;计算所述扩展后的第一音素序列与所述第二音素序列之间的相似度;根据所述相似度配置和所述相似度,确定所述音频数据的语音识别结果;
所述交互模块,还用于返回所述音频数据的语音识别结果。7.如权利要求6所述的系统,其特征在于,所述聚类算法模型包括二叉决策树。8.如权利要求7所述的系统,其特征在于,所述处理模块还用于:将所述音素集合输入所述二叉决策树,所述音素集合中包括多个音素;将所述音素集合中各个音素划分入所述二叉决策树的叶子节点;确定所述音素集合中各个音素的距离,其中,所述音素集合中两个音素的距离指示所述两个音素被划分入的叶子节点在所述二叉决策树内的距离;根据所述音素集合中各个音素之间的距离,获得所述扩展规则,其中,所述扩展规则包括所述音素集合中各个音素和各个音素的扩展音素的对应关系。9.如权利要求7或8所述的系统,其特征在于,所述处理模块还用于:根据所述第一音素所在的叶子节点到所述第二音素所在叶子节点的路径中包含的分支节点数量,获得所述第一音素与所述第二音素之间的距离;若所述第一音素与所述第二音素之间的距离不超过距离阈值,将所述第二音素作为所述第一音素的扩展音素写入所述扩展规则。10.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1至5中任一项所述的方法。11.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至5中任一项所述的方法。12.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算机设备集群运行时,使得所述计算机设备集群执行如权利要求的1-5中任一项所述的方法。
技术总结
本申请提供了一种语音识别方法及系统。该方法接收上传的自定义热词和相似度配置后,将所述自定义热词转换成第一音素序列,根据基于聚类算法模型获得的扩展规则对所述第一音素序列进行扩展,获得扩展后的第一音素序列,再将接收到的音频数据转换为第二音素序列,通过计算所述扩展后的第一音素序列与所述第二音素序列之间的相似度,根据所述相似度配置和所述相似度,确定所述音频数据的语音识别结果。所述语音识别方法通过基于聚类算法模型扩展了所述自定义热词,更有效的利用了上传的自定义热词,从而提升了语音识别结果的精确度。从而提升了语音识别结果的精确度。从而提升了语音识别结果的精确度。
技术研发人员:王凯 李标 刘杰
受保护的技术使用者:华为云计算技术有限公司
技术研发日:2020.11.04
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-25882.html