1.本发明涉及语音指令识别技术领域,尤其涉及一种语音指令识别方法及装置。
背景技术:
2.语音指令识别,即将一段语音转换为对应指令供计算机执行。
3.如图1所示,现有的语音指令识别步骤一般为:输入的语音通过语音识别转换为文本,将文本进行分词或人工智能语义处理后,与指令库文本进行对比,通过相似度评分算法找出指令库文本中与语音识别文本最相近的条目,并输出给计算机执行。
4.现有技术方案都存在语音识别这一个步骤,也即是将音频转换为文本。此方案主要存在以下两个缺点:一是语音识别步骤容易出错,影响后续步骤的准确度;二是此步骤消耗的计算时间往往比其它步骤要长,程序响应慢。
技术实现要素:
5.本发明提供一种语音指令识别方法及装置,用以解决现有技术中语音指令识别需要进行语音识别,影响语音指令识别的准确性和计算速度的缺陷,实现在语音指令识别过程中不进行语音识别,提高语音指令识别的准确性和计算速度。
6.本发明提供一种语音指令识别方法,包括:
7.将目标音频输入语音子模型中的语音特征提取模型中,输出所述目标音频的特征,将所述目标音频的特征依次输入所述语音子模型中的每层投射嵌入层,输出所述目标音频的嵌入向量;
8.将文本指令库中的每个文本指令输入文本子模型中的文本特征提取模型中,输出每个文本指令的特征,将每个文本指令的特征依次输入所述文本子模型中的每层投射嵌入层,输出每个文本指令的嵌入向量;
9.计算所述目标音频的嵌入向量与每个文本指令的嵌入向量之间的相似度,将相似度最大的文本指令作为所述目标音频的指令识别结果;
10.其中,所述语音子模型中的投射嵌入层和所述文本子模型中的投射嵌入层用于将所述目标音频的特征和每个文本指令的特征映射到同一维度的向量空间;
11.所述语音子模型和所述文本子模型通过以样本语音和所述样本语音对应的样本文本指令为样本,以所述样本语音的嵌入向量和所述样本文本指令的嵌入向量之间的相似度为标签进行训练获取。
12.根据本发明提供的一种语音指令识别方法,所述将所述目标音频的特征依次输入所述语音子模型中的每层投射嵌入层,输出所述目标音频的嵌入向量,包括:
13.将所述目标音频的特征依次输入所述语音子模型中每层投射嵌入层的全连接层、gelu激活层、全连接层、dropout层、相加层和归一化层,输出所述目标音频的嵌入向量;其中所述相加层用于将所述dropout层的输出和所述全连接层的输出进行相加;
14.所述文本子模型中每层投射嵌入层的结构和所述语音子模型中每层投射嵌入层
的结构相同。
15.根据本发明提供的一种语音指令识别方法,将目标音频输入语音子模型中的语音特征提取模型中和将文本指令库中的每个文本指令输入文本子模型中的文本特征提取模型中之前,还包括:
16.将样本语音和所述样本语音对应的样本文本指令作为样本对,将所述样本对分成多组;
17.将每组样本对中的各样本语音输入所述语音子模型中,输出每个样本语音的嵌入向量;
18.将每组样本对中的各样本语音对应的样本文本指令输入所述文本子模型中,输出每个样本文本指令的嵌入向量;
19.计算每组样本对中任一样本语音的嵌入向量和任一样本文本指令的嵌入向量之间的相似度,根据所述相似度计算所述语音子模型的损失函数和所述文本子模型的损失函数;
20.根据所述语音子模型的损失函数和所述文本子模型的损失函数,对所述语音子模型和文本子模型进行训练。
21.根据本发明提供的一种语音指令识别方法,所述计算每组样本对中任一样本语音的嵌入向量和任一样本文本指令的嵌入向量之间的相似度,根据所述相似度计算所述语音子模型的损失函数和所述文本子模型的损失函数,包括:
22.计算每组样本对中任一样本文本指令的嵌入向量和任一样本语音的嵌入向量之间的第一点积相似度;
23.根据每组样本对对应的第一点积相似度,生成每组样本对对应的第一相似度矩阵;
24.将第一单位矩阵与所述第一相似度矩阵之间的交叉熵作为所述文本子模型的损失函数;
25.计算每组样本对中任一样本语音的嵌入向量和任一样本文本指令的嵌入向量之间的第二点积相似度;
26.根据每组样本对对应的第二点积相似度,生成每组样本对对应的第二相似度矩阵;
27.将第二单位矩阵与所述第二相似度矩阵之间的交叉熵作为所述语音子模型的损失函数。
28.根据本发明提供的一种语音指令识别方法,所述语音特征提取模型为vggish模型,所述文本特征提取模型为bert模型。
29.根据本发明提供的一种语音指令识别方法,所述计算所述目标音频的嵌入向量与每个文本指令的嵌入向量之间的相似度,包括:
30.计算所述目标音频的嵌入向量与每个文本指令的嵌入向量之间的点积相似度。
31.本发明还提供一种语音指令识别装置,包括:
32.第一映射模块,用于将目标音频输入语音子模型中的语音特征提取模型中,输出所述目标音频的特征,将所述目标音频的特征依次输入所述语音子模型中的每层投射嵌入层,输出所述目标音频的嵌入向量;
33.第二映射模块,用于将文本指令库中的每个文本指令输入文本子模型中的文本特征提取模型中,输出每个文本指令的特征,将每个文本指令的特征依次输入所述文本子模型中的每层投射嵌入层,输出每个文本指令的嵌入向量;
34.识别模块,用于计算所述目标音频的嵌入向量与每个文本指令的嵌入向量之间的相似度,将相似度最大的文本指令作为所述目标音频的指令识别结果;
35.其中,所述语音子模型中的投射嵌入层和所述文本子模型中的投射嵌入层用于将所述目标音频的特征和每个文本指令的特征映射到同一维度的向量空间;
36.所述语音子模型和所述文本子模型通过以样本语音和所述样本语音对应的样本文本指令为样本,以所述样本语音的嵌入向量和所述样本文本指令的嵌入向量之间的相似度为标签进行训练获取。
37.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述语音指令识别方法的步骤。
38.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述语音指令识别方法的步骤。
39.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述语音指令识别方法的步骤。
40.本发明提供的语音指令识别方法及装置,通过使用语音子模型和文本子模型,将意义相近的音频和文本嵌入到向量空间上相近的位置,语音和文本只需要在语义上意义相近即可,不必完全准确,从语义上提高了语言指令识别的鲁棒性;不需要语音识别过程,提高语音指令识别的准确性和计算速度。
附图说明
41.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1是现有技术提供的语音指令识别方法的流程示意图;
43.图2是本发明提供的语音指令识别方法的流程示意图之一;
44.图3是本发明提供的语音指令识别方法的流程示意图之二;
45.图4是本发明提供的语音指令识别方法中语音指令识别模型的结构示意图;
46.图5是本发明提供的语音指令识别方法中单个投射嵌入层的结构示意图;
47.图6是本发明提供的语音指令识别方法中模型训练流程示意图;
48.图7是本发明提供的语音指令识别装置的结构示意图;
49.图8是本发明提供的电子设备的结构示意图。
具体实施方式
50.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,
而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
51.下面结合图2描述本发明的一种语音指令识别方法,包括:步骤201,将目标音频输入语音子模型中的语音特征提取模型中,输出所述目标音频的特征,将所述目标音频的特征依次输入所述语音子模型中的每层投射嵌入层,输出所述目标音频的嵌入向量;
52.目标音频为需要进行语音指令识别的音频。目标音频经过语音子模型的处理后,获取目标音频的嵌入向量。
53.步骤202,将文本指令库中的每个文本指令输入文本子模型中的文本特征提取模型中,输出每个文本指令的特征,将每个文本指令的特征依次输入所述文本子模型中的每层投射嵌入层,输出每个文本指令的嵌入向量;
54.文本指令为以文本形式记录在数据库中的指令。文本指令经过文本子模型的处理,获取每个文本指令的嵌入向量。
55.步骤203,计算所述目标音频的嵌入向量与每个文本指令的嵌入向量之间的相似度,将相似度最大的文本指令作为所述目标音频的指令识别结果;
56.其中,所述语音子模型中的投射嵌入层和所述文本子模型中的投射嵌入层用于将所述目标音频的特征和每个文本指令的特征映射到同一维度的向量空间;
57.如果目标音频与某个文本指令的含义相近,则目标音频和该文本指令经过处理后获得的嵌入向量在同一维度向量空间中的位置相近,从而使用相似度匹配出目标音频对应的文本指令。具体的语音指令识别流程如图3所示。
58.如图4所示,本实施中的语音指令识别模型包括语音子模型modela和文本子模型modelb。两个子模型均包括特征提取模型和多层投入嵌入层。其中特征提取模型用于特征提取。本实施例不限于特征提取模型的具体类型。
59.所述语音子模型和所述文本子模型通过以样本语音和所述样本语音对应的样本文本指令为样本,以所述样本语音的嵌入向量和所述样本文本指令的嵌入向量之间的相似度为标签进行训练获取。
60.本实施例通过使用语音子模型和文本子模型,将意义相近的音频和文本嵌入到向量空间上相近的位置,语音和文本只需要在语义上意义相近即可,不必完全准确,从语义上提高了语言指令识别的鲁棒性;不需要语音识别过程,提高语音指令识别的准确性和计算速度。
61.在上述实施例的基础上,本实施例中所述将所述目标音频的特征依次输入所述语音子模型中的每层投射嵌入层,输出所述目标音频的嵌入向量,包括:将所述目标音频的特征依次输入所述语音子模型中每层投射嵌入层的全连接层、gelu(高斯误差线性单元)激活层、全连接层、dropout层、相加层和归一化层,输出所述目标音频的嵌入向量;其中所述相加层用于将所述dropout层的输出和所述全连接层的输出进行相加;所述文本子模型中每层投射嵌入层的结构和所述语音子模型中每层投射嵌入层的结构相同。
62.投射嵌入层的结构采用类残差结构,单个投射嵌入层的结构如图5所示。
63.在上述各实施例的基础上,本实施例中将目标音频输入语音子模型中的语音特征提取模型中和将文本指令库中的每个文本指令输入文本子模型中的文本特征提取模型中之前,还包括:将样本语音和所述样本语音对应的样本文本指令作为样本对,将所述样本对
分成多组;
64.在使用语音子模型和文本子模型之前,对两个模型进行训练,训练过程如图6所示。
65.训练的目的是使意思相近的语音和文本,经过语音子模型audio_model和文本子模型text_model处理后的输出,在同一向量空间中位于相近的位置。
66.首先,准确训练数据集,数据集包括多个样本对,每个样本对包括样本语音和样本语音对应的样本文本指令。
67.将数据集中的样本对分成多组,将每组中所有的样本语音与所有的样本文本指令之间进行两两组合,得到一组训练数据,将其称为minibatch。训练样本batch中包括多个minibatch。
68.例如,每组有4个样本对,则将4个样本对中的样本语音与所有的样本文本指令之间进行两两组合,得到16中组合。每个minibatch中16种组合,计算每种组合对应的样本语音的嵌入向量和样本文本指令的嵌入向量之间的相似度。
69.将每组样本对中的各样本语音输入所述语音子模型中,输出每个样本语音的嵌入向量;
70.各组合中的样本语音经过语音子模型计算,输出为样本语音的嵌入向量audio_embeddings。
71.将每组样本对中的各样本语音对应的样本文本指令输入所述文本子模型中,输出每个样本文本指令的嵌入向量;
72.各组合中的样本文本指令经过文本子模型计算,输出为样本文本指令的嵌入向量text_embeddings。
73.经过模型处理后audio_embeddings和text_embeddings的维度相同。
74.计算每组样本对中任一样本语音的嵌入向量和任一样本文本指令的嵌入向量之间的相似度,根据所述相似度计算所述语音子模型的损失函数和所述文本子模型的损失函数;
75.计算每个组合对应的audio_embeddings和text_embeddings之间的相似度。本实施例不限于相似度的具体类型。根据相似度计算两个模型的损失函数,本实施例不限于具体的计算方法。
76.根据所述语音子模型的损失函数和所述文本子模型的损失函数,对所述语音子模型和文本子模型进行训练。
77.根据语音子模型的损失函数loss(textmodel)对语音子模型进行训练,使得文本子模型的输出趋向于和语音子模型相同。
78.根据文本子模型的损失函数对文本子模型进行训练,使得语音子模型输出趋向于和文本子模型相同。
79.两个损失函数配合协同训练,得到一个类似gan(generative adversarial networks,生成对抗网络)网络的训练过程,使得样本语音和样本语音对应的样本文本指令嵌入在相邻空间的相近位置。
80.在上述实施例的基础上,本实施例中所述计算每组样本对中任一样本语音的嵌入向量和任一样本文本指令的嵌入向量之间的相似度,根据所述相似度计算所述语音子模型
的损失函数和所述文本子模型的损失函数,包括:计算每组样本对中任一样本文本指令的嵌入向量和任一样本语音的嵌入向量之间的第一点积相似度;
81.计算每个组合对应的text_embeddings和audio_embeddings之间的第一点积相似度,公式如下:
82.logits
ta
=dot_similarity(text_embeddings,audio_embeddings)
83.根据每组样本对对应的第一点积相似度,生成每组样本对对应的第一相似度矩阵;
84.第一相似度矩阵的行与每组样本对中的样本文本指令一一对应,列与每组样本对中的样本语音一一对应,第一相似度矩阵中的每个元素为该元素所在的行对应的样本文本指令的嵌入向量与该元素所在的列对应的样本语音的嵌入向量之间的第一点积相似度。
85.将第一单位矩阵与所述第一相似度矩阵之间的交叉熵作为所述文本子模型的损失函数;
86.第一单位矩阵的尺寸与第一相似度矩阵相同。计算第一单位矩阵与第一相似度矩阵之间的交叉熵,获取文本子模型的损失函数,计算公式如下:
87.loss
textmodel
=categorical_crossentropy(unit_matrix1,logits
ta
)
88.其中,unit_matrix1为第一单位矩阵。
89.计算每组样本对中任一样本语音的嵌入向量和任一样本文本指令的嵌入向量之间的第二点积相似度;
90.计算每个组合对应的audio_embeddings和text_embeddings之间的第二点积相似度,公式如下:
91.logits
at
=dot_similarity(audio_embeddings,text_embeddings)
92.根据每组样本对对应的第二点积相似度,生成每组样本对对应的第二相似度矩阵;
93.第二相似度矩阵的行与每组样本对中的样本语音一一对应,列与每组样本对中的样本文本指令一一对应,第二相似度矩阵中的每个元素为该元素所在的行对应的样本语音的嵌入向量与该元素所在的列对应的样本文本指令的嵌入向量之间的第二点积相似度。
94.将第二单位矩阵与所述第二相似度矩阵之间的交叉熵作为所述语音子模型的损失函数。
95.第二单位矩阵的尺寸与第二相似度矩阵相同。计算第二单位矩阵与第二相似度矩阵之间的交叉熵,获取语言子模型的损失函数,计算公式如下:
96.loss
audiomodel
=categorical_crossentropy(unit_matrix2,logits
at
)
97.其中,unit_matrix2为第二单位矩阵。
98.在上述各实施例的基础上,本实施例中所述语音特征提取模型为vggish模型,所述文本特征提取模型为bert(bidirectional encoder representation from transformers,双向transformer的编码)模型。
99.本实施例使用vggish模型对目标音频进行语音特征提取,使用bert模型对文本指令库中的每个文本指令进行文本特征提取。
100.在上述各实施例的基础上,本实施例中所述计算所述目标音频的嵌入向量与每个文本指令的嵌入向量之间的相似度,包括:计算所述目标音频的嵌入向量与每个文本指令
的嵌入向量之间的点积相似度。
101.本实施例将最大点积相似度对应的文本指令作为目标音频的指令识别结果。
102.下面对本发明提供的语音指令识别装置进行描述,下文描述的语音指令识别装置与上文描述的语音指令识别方法可相互对应参照。
103.如图7所示,该装置包括第一映射模块701、第二映射模块702和识别模块703,其中:
104.第一映射模块701用于将目标音频输入语音子模型中的语音特征提取模型中,输出所述目标音频的特征,将所述目标音频的特征依次输入所述语音子模型中的每层投射嵌入层,输出所述目标音频的嵌入向量;
105.第二映射模块702用于将文本指令库中的每个文本指令输入文本子模型中的文本特征提取模型中,输出每个文本指令的特征,将每个文本指令的特征依次输入所述文本子模型中的每层投射嵌入层,输出每个文本指令的嵌入向量;
106.识别模块703用于计算所述目标音频的嵌入向量与每个文本指令的嵌入向量之间的相似度,将相似度最大的文本指令作为所述目标音频的指令识别结果;
107.其中,所述语音子模型中的投射嵌入层和所述文本子模型中的投射嵌入层用于将所述目标音频的特征和每个文本指令的特征映射到同一维度的向量空间;
108.所述语音子模型和所述文本子模型通过以样本语音和所述样本语音对应的样本文本指令为样本,以所述样本语音的嵌入向量和所述样本文本指令的嵌入向量之间的相似度为标签进行训练获取。
109.本实施例通过使用语音子模型和文本子模型,将意义相近的音频和文本嵌入到向量空间上相近的位置,语音和文本只需要在语义上意义相近即可,不必完全准确,从语义上提高了语言指令识别的鲁棒性;不需要语音识别过程,提高语音指令识别的准确性和计算速度。
110.图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(communications interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行语音指令识别方法,该方法包括:将目标音频输入语音子模型中的语音特征提取模型中,输出所述目标音频的特征,将所述目标音频的特征依次输入所述语音子模型中的每层投射嵌入层,输出所述目标音频的嵌入向量;将文本指令库中的每个文本指令输入文本子模型中的文本特征提取模型中,输出每个文本指令的特征,将每个文本指令的特征依次输入所述文本子模型中的每层投射嵌入层,输出每个文本指令的嵌入向量;计算所述目标音频的嵌入向量与每个文本指令的嵌入向量之间的相似度,将相似度最大的文本指令作为所述目标音频的指令识别结果。
111.此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,
read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
112.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的语音指令识别方法,该方法包括:将目标音频输入语音子模型中的语音特征提取模型中,输出所述目标音频的特征,将所述目标音频的特征依次输入所述语音子模型中的每层投射嵌入层,输出所述目标音频的嵌入向量;将文本指令库中的每个文本指令输入文本子模型中的文本特征提取模型中,输出每个文本指令的特征,将每个文本指令的特征依次输入所述文本子模型中的每层投射嵌入层,输出每个文本指令的嵌入向量;计算所述目标音频的嵌入向量与每个文本指令的嵌入向量之间的相似度,将相似度最大的文本指令作为所述目标音频的指令识别结果。
113.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的语音指令识别方法,该方法包括:将目标音频输入语音子模型中的语音特征提取模型中,输出所述目标音频的特征,将所述目标音频的特征依次输入所述语音子模型中的每层投射嵌入层,输出所述目标音频的嵌入向量;将文本指令库中的每个文本指令输入文本子模型中的文本特征提取模型中,输出每个文本指令的特征,将每个文本指令的特征依次输入所述文本子模型中的每层投射嵌入层,输出每个文本指令的嵌入向量;计算所述目标音频的嵌入向量与每个文本指令的嵌入向量之间的相似度,将相似度最大的文本指令作为所述目标音频的指令识别结果。
114.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
115.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
116.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。