具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
为了提高语音指令识别的准确性,本发明实施例提供了一种语音指令识别方法及电子设备。
下面首先介绍本发明实施例提供的语音指令识别方法。
如图1所示,图1为本发明实施例提供的语音指令识别方法的一种流程图,具体可以包括以下步骤:
步骤101,对待识别语音指令进行文字转换,获取所述待识别语音指令的目标文字以及目标拼音;
步骤102,基于所述目标拼音,根据预设扩展规则,获取所述目标拼音的至少一个扩展拼音,其中,所述扩展拼音包括所述目标拼音;
步骤103,基于预先训练的指令识别模型,分别对所述目标文字以及所述扩展拼音进行特征提取,得到目标文字特征以及与每一所述扩展拼音对应的一个扩展拼音特征;将所述目标文字特征以及所述扩展拼音特征按照预设融合规则进行融合,得到融合特征;对所述融合特征进行语义识别,获得语义识别结果。
本发明实施例提供的语音指令识别方法,可以对待识别语音指令进行文字转换,来获取待识别语音指令的目标文字以及目标拼音,并根据预设的扩展规则获取至少一个扩展拼音,扩展拼音包括目标拼音,之后基于预先训练的指令识别模型分别对目标文字以及扩展拼音进行特征提取,获取相应的目标文字特征以及扩展拼音特征,并将获取的文字特征以及扩展拼音特征融合,得到融合特征,再对融合特征进行语义识别,得到语义识别结果。本发明实施例提供的方法,在分别对待识别语音指令的目标文字以及扩展拼音做特征提取后,再将目标文字特征以及扩展拼音特征进行融合,可以获取待识别语音指令更多、更高层的特征(如,语义特征),从而提高了语音指令识别的准确性。
上述待识别语音指令可以由用户通过语音输入设备输入的音频数据,也可以是由智能音箱产生,上述语音输入设备可以是麦克风等,此处不作具体限定。
接收到待识别语音指令后,需将接收到的语音信息转化为机器可处理的文字信息。作为一种具体实施方式,上述将语音转换为文字的过程,可以是对获取的语音音频信号进行特征提取,将提取出的特征输入至相应的声学模型,以从预设字典库中获取多个候选汉字,再通过预训练的语言模型计算各候选汉字为语音信号对应汉字的概率,并基于上述概率给出语音信号对应的汉字。本发明实施例中关于对上述待识别语音进行文字转换的方法不作具体限定。
在对上述待识别语音指令进行文字转换获取到目标文字之后,可以针对目标文字获取其拼音。具体的,可以是从汉字转拼音库中获取目标文字的目标拼音,上述汉字转拼音库可以是根据目前公开的一些电子字典设置的,在此不作具体限定。
例如,用户在选择音乐时,发出“第一首”的语音指令以期望播放第一首歌,但上述语音指令可能被识别为“第一搜”,若获取到的待识别语音指令的目标文字为“第一搜”,则可从上述汉字转拼音库中获取“第一搜”对应的目标拼音“di yi sou”。
由于在实际的语言场景中,经常会出现将卷舌音发音为平舌音、将后鼻音发音为前鼻音以及在拼音n作声母时,将拼音n发音为拼音l等情况。因此,为了进一步提高语音指令识别的准确性,可以基于上述发音错误的情况对得到的目标拼音做扩展,以在待识别语音指令存在发音错误时,还原出正确的拼音。
作为一种具体实施方式,可以基于常见的发音错误,预设可能存在发音错误的替换拼音字母组合,并将上述预设替换拼音字母组合与对应的预设扩展拼音字母组合的对应关系存储至预设的扩展拼音库中。
如下表所示,下表中记录了部分设置预设替换拼音字母组合与预设扩展拼音字母组合对应关系的替换规则:
条件(某个汉字的拼音满足条件) |
扩展 |
卷舌 |
平舌 |
平舌 |
卷舌 |
前鼻音 |
后鼻音 |
后鼻音 |
前鼻音 |
拼音第一个字母是l |
拼音第一个字母是n |
拼音第一个字母是n |
拼音第一个字母是l |
上述卷舌音如“zh”、“ch”、“sh”,对应的平舌音如“z”、“c”、“s”;后鼻音如“ang”、“eng”、“ing”,对应的前鼻音如“an”、“en”、“in”;具体的,见下表,下表中记录部分常见的替换拼音字母组合与扩展拼音字母组合的对应关系:
作为一种具体实施方式,在获取上述扩展拼音时,可以是先对目标拼音进行遍历,并在上述扩展拼音库中查找上述目标拼音中的各拼音字母组合,若查找到上述目标拼音中的拼音字母组合,则按照上述扩展拼音库中的对应关系,将该拼音字母组合替换为与之对应的预设扩展拼音字母组合。
例如,对于上述举例中的目标拼音“di yi sou”来说,由于存在平舌音“s”,所以可以将平舌音“s”替换为预设扩展拼音字母组合卷舌音“sh”得到扩展拼音“di yi shou”。
当然,得到的扩展拼音也可以为多个。例如,若待识别指令为“上海民天的天气”,其对应的目标拼音为“shang hai min tian de tian qi”,由于目标拼音中存在卷舌音“sh”、前鼻音“min”,因此,可以将其分别替换为平舌音“s”、后鼻音“ming”,从而得到扩展拼音“sang hai min tian de tian qi”以及“shanghai ming tian de tian qi”。
作为一种具体实施方式,可以将上述目标拼音以及上述目标拼音的扩展拼音作为上述待识别语音指令的扩展拼音,即扩展拼音可以包括上述目标拼音。
作为本申请一种具体实施方式,如图2所示,上述预先训练的指令识别模型可以包括文字特征提取网络210、拼音特征提取网络220、特征融合层230和语义识别网络240。
相应的,基于图1所示实施例,如图3所示,图3为本发明实施例提供的语音指令识别方法的第二种流程图,上述图1中的步骤103具体可以包括以下步骤:
步骤303,将所述目标文字输入至所述文字特征提取网络210提取目标文字特征;
步骤304,将所述扩展拼音输入至所述拼音特征提取网络220提取扩展拼音特征;
作为本发明的一种具体实施方式,基于上述图2,如图4所示,图2中的文字特征提取网络210和拼音特征提取网络220可以是同一特征提取网络410。因此,在提取目标文字特征以及扩展拼音特征时,可以是分别将上述目标文字以及扩展拼音输入至上述特征提取网络410,以分别得到上述目标文字特征以及扩展拼音特征。本发明实施例中,对上述步骤303、步骤304执行的顺序不做具体限定。
步骤305,将所述目标文字特征以及与每一扩展拼音对应的一个所述扩展拼音特征,输入到所述特征融合层230,按照预设融合规则对所述目标文字特征和扩展拼音特征进行融合,得到融合特征;
作为一种具体实施方式,上述目标文字特征、以及扩展拼音特征可以分别以矩阵形式表示,位于矩阵内各个索引位置的浮点数共同标识文字的特征,其中,目标文字对应一个特征矩阵,每一扩展拼音均对应一个特征矩阵,即得到的是一个目标文字特征矩阵以及每一扩展拼音对应的扩展拼音特征矩阵,上述矩阵的索引位置包括矩阵中具体的的行值以及列值,例如索引(3,4)即表示矩阵中第三行第四列的位置。相应的,上述特征融合层230按照预设融合规则对所述目标文字特征和各个扩展拼音特征进行融合,得到融合特征的步骤,可以包括:
针对所述目标文字特征矩阵以及每一所述扩展拼音特征矩阵,确定所述各特征矩阵中,每一相同索引位置上的最大值作为融合特征矩阵在所述索引位置的值;
或,针对所述目标文字特征矩阵以及每一所述扩展拼音特征矩阵,确定所述各特征矩阵中,每一相同索引位置上的所有值的平均值作为所述融合特征矩阵在所述索引位置的值;
或,将所述目标文字特征矩阵以及每一所述扩展拼音特征矩阵进行拼接,得到所述融合特征矩阵。
例如,对于上述目标文字“第一搜”的举例,各特征可以使用3个[step,k]的矩阵来分别表示,3个矩阵分别为“第一搜”文字对应的特征矩阵,“diyisou”拼音对应的特征矩阵,“diyishou”拼音对应的特征矩阵,其中,step表示字符数量,k可以表示预设维度,例如,300。相应的,作为另一种具体实施方式,在对上述特征矩阵进行融合时,可以是针对上述特征矩阵的每一行以及每一列,选取3个特征矩阵同一索引位置上的最大值作为融合特征矩阵对应索引位置的值,得到[step,k]的融合特征矩阵。
当然,将上述特征矩阵进行融合时,也可以是将上述3个[step,k]矩阵的相同索引位置的浮点数相加取平均,作为融合特征矩阵对应索引位置的值,得到[step,k]的融合特征矩阵;作为另一种具体实施方式,可以是将上述3个[step,k]矩阵按照行或者列进行拼接,得到[3*step,k]或[step,3*k]的融合特征矩阵。
本发明实施例中,在提取到目标文字以及扩展拼音的特征后再进行特征融合,得到融合特征,对融合特征进行语义识别,与在提取特征之前就将文字以及拼音进行融合再进行语义识别相比,本发明实施例中的融合特征中具有待识别语音指令更多的原始文字信息以及扩展拼音信息,可以很大程度上克服在语音输入时出现的发音错误,还原出用户的正确语义,从而提高对语音指令进行识别的准确性。
步骤306,将所述融合特征输入到所述指令识别模型的语义识别网络240,识别出所述待识别语音指令的语义;
在用户发出的语音指令中,一般会包含用户的语义信息,即会包含用户的意图,以及意图具体的处理对象,即命名实体,命名实体也可以理解为关键词,例如“给我播放刘德华的忘情水”、“导航去人民广场”等,也有的语音指令只包含用户的意图,如“打开空调”、“扫地拖地”等,也就是说,命名实体可以为空。
实际应用中,可以基于不同的应用场景设置不同的指令短语与对应的意图以及实体的关系,存储至对应的场景语料库中。例如,在车载控制系统中,用户可以说“播放音乐”、“请给我播放音乐”等指令短语来表示其期望播放音乐,说指令短语“打开空调”表示期望车辆打开空调,因此,可以将指令短语“播放音乐”、“请给我播放音乐”与意图“播放音乐”的对应关系、指令短语“打开空调”与意图“打开空调”的对应关系存储至对应的车辆控制场景语料库,相应的,针对“播放音乐”的意图,可以将该意图对应的实体,即各歌曲名、各歌手名对应存储至上述车辆控制场景语料库。
再例如,在机器人控制中,如控制扫地机器人,用户可以通过指令短语“扫地拖地”、“充电”以及“暂停清扫”表示期望扫地机器人扫地拖地、充电、暂停清扫,因此可以将上述指令短语与对应的意图之间的关系存储至对应的扫地机器人语料库中。
作为本发明的一种具体实施方式,针对一种意图,可以将所有能想到的指令短语与其的对应关系都存储至语料库。如,对于意图“打开空调”,可以将与之对应的指令短语“打开空调”、“请打开空调”、“请帮我打开空调”均存储至语料库,这样,指令识别模型的样本足够多,可以增强其识别能力。
当然,作为另一种具体实施方式,也可以是针对一种意图,只将该意图的标准指令短语与该意图的对应关系存储至语料库。例如,对于上述意图“打开空调”,其对应的标准指令短语即为“打开空调”。由于在实际应用中,用户发出的语音指令通常都会包含某种意图的标准指令短语,因此,通过只将意图的标准指令短语与意图的对应关系保存,可以减少预设语料库所需的存储空间,降低内存消耗。
相应的,得到上述融合特征后,可以将上述融合特征输入至上述指令识别模型的语义识别网络,并由其基于融合特征以及上述预设的语料库识别出上述待识别语音指令的语义。
作为一种具体实施方式,如图5所示,图5为本发明实施例使用的指令识别模型的第三种示意图,该指令识别模型包括上述文字特征提取网络510、拼音特征提取网络520、特征融合层530以及语义识别网络540,其中,上述指令识别模型的语义识别网络540可以包含意图识别子网络541以及实体识别子网络542。
上述意图识别子网络541可以基于输入的融合特征识别出待识别语音指令的意图,上述实体识别子网络542可以识别出待识别语音指令的命名实体。从而得到上述待识别语音指令的意图和命名实体,即得到上述待识别语音指令的语义。
如上所述,预设语料库中可以存储指令短语与意图和实体的对应关系。例如,对于上述举例中的指令短语“第一首”,可以直接设置其意图为“播放第一首歌”,或者也可以设置其意图为“播放音乐”、实体为“第一首歌”,并将上述指令短语与意图、实体的对应关系存储至上述车辆控制场景语料库中。
作为一种具体实施方式,如图6a,图6a为本发明实施例中对目标文字进行特征提取的流程图,具体步骤可以包括:
步骤A601,从预设文字索引库中获取所述目标文字的文字索引;
步骤A602,基于所述文字索引以及文字矩阵库,将所述目标文字转换为对应的目标文字矩阵,所述文字矩阵库存储了文字索引与文字矩阵的对应关系;
步骤A603,针对所述目标文字矩阵进行特征提取,得到目标文字特征。
作为本发明实施例的一种具体实施方式,如图6b所示,图6b为本发明实施例中对扩展拼音进行特征提取的流程图,具体步骤可以包括:
步骤B601,从预设拼音索引库中获取所述扩展拼音的拼音索引;
步骤B602,基于所述拼音索引以及拼音矩阵库,将所述扩展拼音转换为对应的扩展拼音矩阵,所述拼音矩阵库存储了拼音索引与拼音矩阵的对应关系;
步骤B603,针对所述扩展拼音矩阵进行特征提取,得到与每一所述扩展拼音对应的一个扩展拼音特征。
作为一种具体实施方式,如图7所示,图7为本发明实施例使用的指令识别模型的第四种示意图,该指令识别模型可以是一种多任务神经网络。
如上所述,上述指令识别模型可以实现意图识别以及实体识别功能;上述指令识别模型可以包括对目标文字进行特征提取的文字特征提取网络710、对扩展拼音进行特征提取的拼音特征提取网络720、特征融合层730、语义识别网络740。
如图7所示,文字特征提取网络710可以包括:文字转换子层711、字嵌入子层712、文字特征提取子层713。
相应的,本发明实施例中,进行目标文字特征提取时,可以是以下过程:
本发明实施例中,可以预设一个文字索引库,文字索引库中存储文字与文字索引的对应关系。上述文字转化子层,可以基于上述文字索引库将目标文字转化为对应的目标文字索引。例如,对于上述举例中的目标文字“第一搜”来说,其对应的索引为[16,88,72]。
作为一种具体实施方式,由于通常情况下,语音指令的文字内容是小于70个字的,因此可以设置上述索引数组的最大长度为70,即最多包含70个字符,超过的部分可以丢弃,若待识别语音指令的文字字符数小于70,则可以用0补齐。所以上述目标文字“第一搜”对应的索引可以为[16,88,72,0,0……0]。
当然,最大长度也可以设置为40、50、60等,此处不作具体限定。
得到上述目标文字索引后,可以将上述目标文字索引输入至上述字嵌入子层中,由字嵌入子层将上述目标文字索引转化为目标文字矩阵。
作为一种具体实施方式,可以是预设一个文字矩阵库,文字矩阵库中存储文字索引与文字矩阵的对应关系。上述文字矩阵可以是一个多维的浮点数据,如,可以是[step,Dim]维矩阵,其中,step为最大字符数,如70,Dim是矩阵维度,可以为128,当然也可以为其它数字。对本例来说可以是将上述文字索引转化为维度为[70,128]的数组。
得到上述[70,128]的数组后,可以将该数组输入至上述文字特征提取子层,由其针对该数组进行目标文字特征提取。
上述文字特征提取子层可以是基于CNN(Convolutional Neural Network,卷积神经网络)或LSTM(Long-Stort Term Memory,长短记忆网络)的网络结构。
对于是卷积神经网络结构的文字特征提取子层,若其卷积核为[3,128]的数组,当输入该层的数据是一个[70,128]的矩阵时,则对应的输出矩阵维度为[68,1],其中,输出矩阵维度中的68,是由70-3+1得到的,输出矩阵维度中的1是由128-128+1得到的。在使用卷积层进行特征提取时,可以是将连续的3个字、4个字、5个字等作为一个整体考虑,即使用3字长、4字长、5字长进行特征提取,从而增强各字之间的联系。上述卷积核的维度可以与进行特征提取的字长相关,如3个字节长度的特征提取对应的卷积核的维度可以为[3,128],4个字节长度的特征提取对应的卷积核的维度为[4,128],5个字节长度的特征提取对应的卷积核的维度为[5,128],上述128可以使人为设定的数字,也可以是其他数字。
上述文字特征提取网络子层可以是LSTM网络结构的,LSTM是一个广泛应用的神经网络模型,它在处理一句话时,会考虑整句话中的每一个字,而不是只考虑最近的一个字或者几个字。例如,在处理“我要听刘德华的忘情水”这句话时,最后一个词是“忘情水”,前面有“我要听”和“刘德华”,LSTM长短网络在识别“忘情水”时,考虑了前面的“我要听”、“刘德华”等,结合了上下文,所以能更准确的判断出“忘情水”可能是一首歌名。如果只用一个方向的LSTM就会丢失句子中字、词顺序的信息,所以文字特征提取网络子层可以使用双向LSTM,一个正向LSTM处理结果与反向LSTM处理结果合并起来,模型就可以知道了一句话中每个字、词的顺序关系。
文字特征提取子层的输出即为目标文字特征,对于上述例子,输出的可以是维度为[70,k]的矩阵。
如图7所示,拼音特征提取网络720可以包括:拼音转换子层721、拼音嵌入子层722、拼音特征提取子层723。
上述拼音特征提取网络中各子层对目标拼音以及扩展拼音进行特征提取的过程,与上述文字特征提取网络中各子层对目标文字进行特征提取的过程相同,此处只做简单说明,不再赘述。
例如,对上述目标拼音为“di yi sou”、目标拼音的扩展拼音为“di yi shou”的例子,其对应的拼音索引分别为[3452,3378,3399]以及[3452,3378,3390],如上所述,在设置最大字符数为70时,依然可以用0补齐缺项,补齐缺项后的上述索引即为[3452,3378,3399,0……0]以及[3452,3378,3390,0……0]。
在拼音嵌入子层将上述索引转化为多维浮点数据时,也可以是基于预设的拼音矩阵库来得到目标拼音以及扩展拼音的拼音矩阵,相应的,上述拼音矩阵库中存储有拼音索引与拼音矩阵的对应关系。
对于上述举例,经过上述拼音嵌入子层的处理后,可以得到2个维度为[70,128]的数组。
与上述文字特征提取网络子层相似,拼音特征提取子层也可以使用卷积神经网络或LSTM的网络结构。
如上所述,对于待识别语音指令“第一搜”来说,经过特征提取后可以得到3个维度为[70,128]的数组,如下表所示,X、Y、Z分别表示目标文字特征矩阵、目标拼音特征矩阵以及扩展拼音特征矩阵。
上述文字特征提取子层和拼音特征提取子层可以是两个独立层,即用两个网络层分别提取文字特征以及拼音特征。作为一种具体实施方式,如上所述,上述指令识别模型在进行特征提取时,也可以是多次使用同一特征提取网络对上述目标文字以及扩展拼音进行特征提取,相应的,上述同一特征提取网络也可以是卷积层或双向LSTM网络层。
对于不同的语音指令,其对应的拼音的扩展拼音的数量可能是不同的,上述使用同一特征提取层进行特征提取的执行次数可以与目标文字、目标拼音以及目标拼音的扩展拼音三者的总数相同。具体的,可以是先对目标文字进行特征提取,再对目标拼音进行特征提取,之后再对目标拼音的扩展拼音进行特征提取,当然,也可以先对目标拼音、目标拼音的扩展拼音进行特征提取,再对目标文字进行提取,本发明实施例中对上述特征提取的顺序不作任何限定。
例如,对于上述目标文字为“第一搜”、目标拼音为“di yi sou”、目标拼音的扩展拼音为“di yi shou”的例子来说,可以是执行三次使用特征提取网络进行特征提取的操作,并可以先提取目标文字特征,再提取目标拼音特征,最后提取扩展拼音特征的顺序来得到对应的目标文字特征、目标拼音特征以及目标拼音的扩展拼音特征,如上所述,扩展拼音可以包括目标拼音,因此,上述扩展拼音特征可以包括目标拼音特征。
在获取到目标文字特征、目标拼音特征以及扩展拼音特征后,可以将上述各特征输入至预训练的指令识别模型的特征融合层730中,并由特征融合层730对上述各特征进行融合。
作为一种具体实施方式,得到上述各特征的融合特征矩阵的方法可以如下表所示,其中step(字符数量)为70,下表中X、Y、Z、W分别表示目标文字特征矩阵、目标拼音特征矩阵、扩展拼音特征矩阵、融合特征矩阵,[i,j]表示特征矩阵中第i行第j列的值。
如图7所示,上述语义识别网络740可以包括意图识别子网络741以及实体识别子网络742。
其中,上述意图识别子网络741可以包括:池化层7411、第一全连接层7412、softmax层7413。
其中,池化层可以对上述融合特征进行下采样,来得到融合特征的意图特征。
作为一种具体实施方式,上述意图特征可以用向量来表示。基于上述得到的融合特征为[70,k]矩阵的例子,池化层需要将该[70,k]的特征矩阵压缩为[1,k]向量,具体的,可以是针对融合特征矩阵中的每一列,选取一列中的最大值来代替该列的值,作为意图特征向量中该列的值;也可以是将融合特征矩阵中同列中的所有数据的平均值作为意图特征向量中该列的值。
获取到上述意图特征后,可将上述意图特征输入至第一全连接层,并由第一全连接层基于上述意图特征计算待识别语音指令属于不同预设意图类别的概率。
基于上述举例,输入至第一全连接层的意图特征为[1,k]的向量,第一全连接层会对上述意图特征向量进行如下计算:
Y=A*W+B公式一
公式一中,A指的是输入至上述全连接层的意图特征向量,维度为[1,k];W指的是上述预训练得到的指令识别模型全连接层的权重参数,可以为矩阵形式,其维度为[k,classNum],其中,classNum为预设的意图类别的数量;B为全连接层的偏置参数,可以用数组表示,具体可以为一维数组[classNum],Y则为全连接层的输出,可以是一个维度为[1,classNum]的向量,向量中的各元素即为上述意图特征映射到各意图类别的意图概率。
在训练上述指令识别模型时,可以预设多个意图类别,如“播放音乐”、“打开空调”等,并为各预设意图类别建立索引,例如,可以将“播放音乐”意图编号为1,将“打开空调”意图编号为2。全连接层输出的即为上述意图特征映射到各预设意图类别索引的概率,并最终根据索引得到预设的意图类别。
作为一种具体实施方式,上述全连接层输出了classNum浮点数,如输出为C0、C1、……CclassNum-1,上述各输出的值代表上述待识别语音指令属于不同预设意图类别的概率,可以通过比较上述值的大小,选择最大值对应的意图类别作为上述待识别语音指令的意图,例如,最大值为Cn,则待识别语音指令就属于第n+1个预设的意图类别。
进一步的,在得到上述第一全连接层输出的[1,classNum]的向量后,可以由Softmax层对上述向量进行归一化处理,以更加便利地进行概率统计,来确定上述意图概率最大的预设意图类别作为待识别语音的意图。
如图7所示,实体识别子网络742可以包括:第二全连接层7421以及CRF层7422。
如上所述,上述融合特征层可以得到上述目标文字特征、目标拼音特征以及扩展拼音特征的融合特征,得到上述融合特征后,可以将其输入至实体识别子网络的第二全连接层中,此处的第二全连接层与上述意图识别子网络的第一全连接层为不同的网络层,但与意图识别网络层的第一全连接层类似,第二全连接层可以基于上述融合特征计算上述待识别语音指令属于不同预设命名实体类别的概率。
基于上述举例,输入至该全连接层的融合特征为[70,k]的矩阵,全连接层对该融合特征矩阵进行如下计算:
Y’=A’*W’+B’ 公式二
公式二中,A’指的是输入至全连接层的融合特征矩阵,维度为[70,k];W’指的是上述预训练得到的指令识别模型实体识别网络层的全连接层的权重参数,可以为矩阵形式,其维度为[k,tagNum],其中,tagNum为预设的命名实体类别的数量;B’为上述全连接层的偏置参数,可以用数组表示,具体可以为一维数组[tagNum],Y’则为全连接层的输出,可以是一个维度为[70,tagNum]的矩阵,矩阵中的各元素即为上述融合特征映射到各预设命名实体类别的实体概率。
在得到上述全连接层的输出Y’之后,可以将Y’输入至CRF层进行进一步处理。
CRF层是为了找出上述维度为[70,tagNum]的矩阵的最佳的命名实体类别匹配序列,例如,将上述观察序列[70,tagNum]中的元素用x1、x2、…、x70来表示,解码出的期望实体序列为y1、y2、…、y70,CRF层的作用就是要让全连接层输出的序列x1、x2、…、x70对应的正确解码y1、y2、…、y70概率Pw(y|x)最大,其中w表示解码路径上的权重参数。
此处主要使用到维特比解码方法来实现上述使得概率Pw(y|x)最大的目的。
维特比解码可以理解为是对到达每个状态的各条路径的距离累积值进行比较,保留距离值最小的一条路径作为目标路径的方法。
作为本发明实施例的一种具体实施方式,可以是将每一条链路上的概率相加,并加上预训练中得到的转移矩阵,得到各条链路上的实体概率值,选择所有链路中实体概率值的和最大的一条链路作为目标链路,目标链路可以是一个维度为[70,1]的向量,其中的元素即为每个字符对应的实体类别的编号,从而得到上述待识别语音指令的实体。
上述实体,可以被称为词槽,即文字中的关键词。实体标签的定义可以如下表所示:
标签 |
含义 |
B(Begin) |
实体开始 |
I(Internal) |
实体中间 |
L(Last) |
实体结尾 |
U(Unique) |
单字实体 |
O(Other) |
非实体 |
例如,如上所述,当待识别语音指令为“播放刘德华的忘情水”时,其对应的意图即为“播放音乐”,对应的命名实体即为“刘德华”和“忘情水”。系统可以在音乐库中搜索以关键词“刘德华”“忘情水”来搜索目标歌曲,播放给用户。
在获取关键词时,可以是基于其对应的实体标签结果来获取,对于指令短语“给我放一首刘德华的忘情水来说”,其对应的实体标签可以如下表所示:
由该表可以得出,该语音指令中“给我放一首”、“的”对应的实体标签均为0,即非实体,而“刘德华”、“忘情水”均为实体,则提取出的关键词结果即为“刘德华”与“忘情水”,相应的,上述实体识别网络层可以是计算语音指令中的文字对应的实体属于上述实体标签的概率,并将总概率最大的链路作为目标实体链路。
作为本发明实施例的一种具体实施方式,如图8所示,图8为本发明实施例中指令识别模型的训练方法的一种流程图,具体步骤可以包括:
步骤801,获取样本文字指令及所述样本文字指令对应的样本意图标签和样本实体标签;
步骤802,针对每一样本文字指令,获取所述样本文字指令对应的样本扩展拼音;
步骤803,将每一所述样本文字指令、所述样本文字指令对应的样本扩展拼音输入至待训练的指令识别模型得到所述样本文字指令对应的预测样本意图、预测样本实体;
步骤804,基于所述样本文字指令对应的预测样本意图、以及样本文字指令对应的样本意图标签,计算意图识别损失函数值;
步骤805,基于所述样本文字指令对应的所述预测样本实体、以及样本文字指令对应的样本实体标签,计算实体识别损失函数值;
本发明实施例中对上述步骤804、步骤805执行的顺序不作具体限定。
步骤806,基于所述意图识别损失函数值以及所述实体识别损失函数值,计算所述指令识别模型的损失函数值;
步骤807,基于所述指令识别模型的损失函数值更新所述待训练的指令识别模型的参数,直至所述指令识别模型的损失函数值小于预设阈值;
其中,所述指令识别模型的参数包括:所述文字特征提取网络的网络参数、所述拼音特征提取网络的网络参数、所述语义识别网络的网络参数。
上述样本文字指令以及对应的样本意图标签和样本实体标签可以是从上述预设的语料库中存储的预设指令短语与意图和实体中获取的,例如预设车辆控制语料库存储的指令短语“第一首”,其对应的意图为“播放音乐”、实体为空;指令短语“导航去人民广场”,其对应的意图为“开启导航”、实体为“人民广场”等。
针对每一样本文字指令,获取与之对应的样本扩展拼音的过程可以参考上述步骤101~步骤102,此处不再赘述。
获取到上述各样本后,可以将上述样本文字指令以及上述样本文字指令对应的样本扩展拼音输入至待训练的指令识别模型,并获取相应输出的预测样本意图以及预测样本实体。待训练的指令模型的输入输出均为2路,如下表所示:
如图9所示,图9为对图7所示的指令识别模型进行训练的原理示意图。在得到上述样本文字指令以及其对应的样本扩展拼音对应输出的预测样本意图以及预测样本实体后,可以基于输出的预测样本意图以及预测样本实体以及从预设语料库中获取的样本意图标签与样本实体标签计算损失函数值。
具体的,可以将意图识别子网络输出的预测样本意图与样本意图标签之间的意图识别损失函数值记为Loss1,、将实体识别子网络输出的预测样本实体与样本实体标签之间的实体损失函数值记为Loss2,则对于整个待训练指令识别模型来说,输出的总的损失值即为上述损失值之和,具体的可以用下列公式表示:
Loss=Loss1+λLoss2 公式三
其中,Loss为待训练指令识别模型的损失函数值,即待训练指令识别模型输出的损失总和,λ是均衡2个损失函数值的权重比例,可以是0.1~0.9。
作为一种具体实施方式,如上所述,上述意图识别子网络以及实体识别子网络输出的是表示概率的序列,因此可以基于交叉熵计算输出的预测样本意图序列以及预测样本实体序列与样本意图标签和样本实体标签之间的差值
其中,H(p,q)表示序列的损失函数,p(xi)表示样本意图标签或样本实体标签的概率分布,q(xi)表示实际输出的预测样本意图或预测样本实体的概率分布,n为输出序列中的元素个数,i为元素的编号。
求出的损失函数值即为实际输出与样本标签之间的差值,若差值较小,如小于预设阈值,则表示待训练的指令识别模型调整到较为合适的程度,若差值较大,则表示模型没有收敛,需要继续调整模型中的参数。
由于待训练的指令识别模型中的参数很多,且各参数的维度较大,因此需要考虑需要优先调整的参数以及参数调整的幅度。
作为一种具体实施方式,可以是找出上述损失函数对所有参数的变化率中变化率最大的参数,并根据变化率往其反的方向调整该参数。求变化率相当于求一阶导数,例如,Loss是上述待训练指令识别模型的损失函数值(即误差),yi是神经网络中输入数据经过参数wi的输出,Loss对参数wi的偏导就是
利用公式五求偏导时,需要对每一个参数求偏导,找出其中变化率最大的参数,作为优先调整的参数。
如上所述,由于参数比较多,每一个参数维度比较大,而对于每一个参数,其每一个维度的差异中变化最大的一个,即梯度下降最快的方向,就是当前这个参数最需要调整的方向,因此可以依次求出当前所有参数W的梯度矩阵
上述指令识别模型中的每一个参数都可以是矩阵,维度就是矩阵的维度。比如尺寸为[3,5]的卷积核,其卷积核矩阵就是15个参数。
求出参数权重的梯度矩阵
后,可以根据梯度矩阵调整参数,公式如下:
其中W是要调整的参数,s是迭代次数,η是学习率,代表每次改变多少,取值是人为预设的,也可以使用算法动态调整,▽E是对参数的求偏导得到矩阵。
对于待训练的指令识别模型进行训练过程就是用数据持续的通过网络预测求损失、反向传播求梯度、权值更新,不停的迭代循环上述过程,直到损失函数小到理想的范围内结束训练,此时的网络参数就是最佳参数。
基于相同的技术构思,本发明实施例还提供了一种电子设备,如图10所示,包括处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信,
存储器1003,用于存放计算机程序;
处理器1001,用于执行存储器1003上所存放的程序时,实现如下步骤:
对待识别语音指令进行文字转换,获取所述待识别语音指令的目标文字以及目标拼音;
基于所述目标拼音,根据预设扩展规则,获取所述目标拼音的至少一个扩展拼音,其中,所述扩展拼音包括所述目标拼音;
基于预先训练的指令识别模型,分别对所述目标文字以及所述扩展拼音进行特征提取,得到目标文字特征以及与每一所述扩展拼音对应的一个扩展拼音特征;将所述目标文字特征以及所述扩展拼音特征按照预设融合规则进行融合,得到融合特征;对所述融合特征进行语义识别,获得语义识别结果。
本发明实施例提供的语音指令识别方法,可以对待识别语音指令进行文字转换,来获取待识别语音指令的目标文字以及目标拼音,并根据预设的扩展规则获取至少一个扩展拼音,扩展拼音包括目标拼音,之后基于预先训练的指令识别模型分别对目标文字以及扩展拼音进行特征提取,获取相应的目标文字特征以及扩展拼音特征,并将获取的文字特征以及扩展拼音特征融合,得到融合特征,再对融合特征进行语义识别,得到语义识别结果。本发明实施例提供的方法,在分别对待识别语音指令的目标文字以及扩展拼音做特征提取后,再将目标文字特征以及扩展拼音特征进行融合,可以获取待识别语音指令更多、更高层的特征(如,语义特征),从而提高了语音指令识别的准确性。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一语音指令识别方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一语音指令识别方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。