一种语音识别文本与命令词文本匹配的方法及设备与流程

文档序号:13423580阅读:610来源:国知局
一种语音识别文本与命令词文本匹配的方法及设备与流程

本发明涉及识别领域,特别涉及一种语音识别文本与命令词文本匹配的方法及设备。



背景技术:

在目前的语音交互中,首先利用语音识别技术将语音识别为文本,然后再进行相应的处理,在这个过程中,就经常需要对语音识别的文本与功能命令词进行匹配,确定用户的目标;但是在实际应用中,由于某些功能命令词过短、意义不明、不符合常规表达等问题,会造成识别出来的文本与实际有较大的差异。

目前,在一般的文本匹配算法中,一般都是直接考虑文本之间的相似度,目前的文本匹配算法的方案有一些:

a,字符串级别,比如根据(带权)编辑距离,检索模型等;

b,浅层语义级别,比如在a的基础上,构建相似字典;或是对文本进行依存句法分析等,引入词序信息进行比较;

c,深层语义级别,基于目前较火的深度学习模型,比如rnn,bi-lstm,gru,cnn等进行深层语义比较。

现有技术的客观缺点:

目前的文本匹配算法在语音识别文本与命令词的匹配场景中,其实并不是很适用。语音识别出现一定错误的情况下,基本现有的所有方法都会出现问题;其中,就字符串级别而言,无法匹配足够的语义信息,而且在语音识别有一定的错误率的情况下,失效率就会很高;而对于浅层语义级别而言,构建依存句法分析之类的浅层语义分析,都会消耗较多的处理时间,而这个会导致整个线上环境效率的降低,并不是很实际;而且基于浅层语义分析,对于口语化(甚至语音识别错误)的表达方式的适应性也存在一定的差异性,而对于构建相似词典,然后在进行字符串级别的比较层面而言,也一样无法解决语音识别错误的问题;至于深层语义级别的方式,都需要大量的已标注数据,而在这样一个较为新兴的领域,标注数据的获取难道是极大的,甚至短时间内直接是不可能的。

由此,用户在与机器人交互的过程中,需要说出功能命令词才能够匹配,也才可以进入到相应的功能,但是基于上述方式,语音识别信息不充分的情况下,语音识别的结果会有较大的偏差。



技术实现要素:

针对现有技术中的缺陷,本发明提出了一种语音识别文本与命令词文本匹配的方法及设备,实现了能够更大程度的容忍语音识别错误,并保证后续与命令词的匹配。

具体的,本发明提出了以下具体的实施例:

本发明实施例提出了一种语音识别文本与命令词文本匹配的方法,应用于人机交互的场景,该方法包括:

获取通过语音识别得到的文本;

对所述文本进行切词,以生成多个文本词;并对预设的命令词文本进行切词,以生成命令词;

确定与各所述文本词相似度最高的命令词,并以此生成第一对应关系;其中,在所述第一对应关系中,所确定的命令词只对应一个文本词;

基于各最高的所述相似度确定所述文本与所述命令词文本的词相似度;

确定所述文本与所述命令词文本中每个字的拼音;

确定与所述文本中每个字的拼音相似程度最高的所述命令词中的字的拼音,并以此生成第二对应关系;其中,在所述第二对应关系中,所述文本中每个字的拼音只对应一个所述命令词中的字的拼音;

基于各最高的拼音相似度确定所述文本与所述命令词文本的拼音相似度;

基于所述词相似度与所述拼音相似度确定所述文本与所述命令词文本的相似度。

在一个具体的实施例中,还包括:

获取数量超过一定值的文本数据;

基于word2vec确定所述文本数据中词与词的第一相似度;

基于hownet确定所述文本数据中词与词的第二相似度;

基于所述第一相似度与所述第二相似度,获取所述文本数据中任意两词之间的相似度并构建近义词相似词表;

确定所述文本数据中所有字的所有拼音;

收集发音满足预设相似条件的拼音信息;

基于所获取的拼音以及拼音信息确定两个拼音之间的相似度并构建包所述文本数据中所有字拼音的拼音相似表;

所述切词是基于任意两词之间的相似度来进行的;

在一个具体的实施例中,所述“确定与各所述文本词相似度最高的命令词”包括:

针对各所述文本词,基于近义词相似词表确定所述文本词与各所述命令词的相似度;

对所述相似度进行大小排序,以确定与所述文本词相似度最高的命令词;

所述“确定与所述文本中每个字的拼音相似程度最高的所述命令词中的字的拼音”包括:

针对各所述文本的字,基于所述拼音相似表确定与所述文本的字的拼音与各所述命令词中的字拼音的拼音相似度;

对所述拼音相似度进行大小排序,以确定与所述文本中的字的拼音的拼音相似度最高的命令词中的字的拼音。

在一个具体的实施例中,所述“基于各最高的所述相似度确定所述文本与所述命令词文本的词相似度”包括:

获取各最高的所述相似度以及各最高的所述相似度的词的字数;

基于所述字数、所述文本的字数、各最高的所述相似度确定字长带权平均;

将所述字长带权平均设置为所述文本与所述命令词文本的词相似度。

在一个具体的实施例中,所述“基于各最高的拼音相似度确定所述文本与所述命令词文本的拼音相似度”包括:

确定各最高的拼音相似度的平均值;

将所述平均值确定为所述文本与所述命令词文本的拼音相似度。

在一个具体的实施例中,所述“基于所述词相似度与所述拼音相似度确定所述文本与所述命令词文本的相似度”包括:

对所述词相似度与所述拼音相似度进行加权求和,以获取所述文本与所述命令词文本的相似度;其中,所述加权求和通过下列公式来完成;

sim_x_y=0.6*sim_w_x_y+0.4*pinyin_sim_x_y;其中,所述sim_x_y为所述文本与所述命令词文本的相似度;所述sim_w_x_y为所述词相似度;所述pinyin_sim_x_y为所述命令词文本的相似度。

本发明实施例还提出了一种语音识别文本与命令词文本匹配的设备,应用于人机交互的场景,该设备包括:

获取模块,用于获取通过语音识别得到的文本;

切词模块,对所述文本进行切词,以生成多个文本词;并对预设的命令词文本进行切词,以生成命令词;

第一生成模块,用于确定与各所述文本词相似度最高的命令词,并以此生成第一对应关系;其中,在所述第一对应关系中,所确定的命令词只对应一个文本词;

词相似度确定模块,用于基于各最高的所述相似度确定所述文本与所述命令词文本的词相似度;

拼音确定模块,用于确定所述文本与所述命令词文本中每个字的拼音;

第二生成模块,用于确定与所述文本中每个字的拼音相似程度最高的所述命令词中的字的拼音,并以此生成第二对应关系;其中,在所述第二对应关系中,所述文本中每个字的拼音只对应一个所述命令词中的字的拼音;

拼音相似度确定模块,用于基于各最高的拼音相似度确定所述文本与所述命令词文本的拼音相似度;

处理模块,用于基于所述词相似度与所述拼音相似度确定所述文本与所述命令词文本的相似度。

在一个具体的实施例中,还包括:预处理模块,用于

获取数量超过一定值的文本数据;

基于word2vec确定所述文本数据中词与词的第一相似度;

基于hownet确定所述文本数据中词与词的第二相似度;

基于所述第一相似度与所述第二相似度,获取所述文本数据中任意两词之间的相似度并构建近义词相似词表;

确定所述文本数据中所有字的所有拼音;

收集发音满足预设相似条件的拼音信息;

基于所获取的拼音以及拼音信息确定两个拼音之间的相似度并构建包所述文本数据中所有字拼音的拼音相似表;

所述切词是基于任意两词之间的相似度来进行的;

所述第一生成模块“确定与各所述文本词相似度最高的命令词”包括:

针对各所述文本词,基于近义词相似词表确定所述文本词与各所述命令词的相似度;

对所述相似度进行大小排序,以确定与所述文本词相似度最高的命令词;

所述第二生成模块“确定与所述文本中每个字的拼音相似程度最高的所述命令词中的字的拼音”包括:

针对各所述文本的字,基于所述拼音相似表确定与所述文本的字的拼音与各所述命令词中的字拼音的拼音相似度;

对所述拼音相似度进行大小排序,以确定与所述文本中的字的拼音的拼音相似度最高的命令词中的字的拼音。

在一个具体的实施例中,所述词相似度确定模块,用于:

获取各最高的所述相似度以及各最高的所述相似度的词的字数;

基于所述字数、所述文本的字数、各最高的所述相似度确定字长带权平均;

将所述字长带权平均设置为所述文本与所述命令词文本的词相似度。

在一个具体的实施例中,所述拼音相似度确定模块,用于:

确定各最高的拼音相似度的平均值;

将所述平均值确定为所述文本与所述命令词文本的拼音相似度。

在一个具体的实施例中,所述处理模块,用于:

对所述词相似度与所述拼音相似度进行加权求和,以获取所述文本与所述命令词文本的相似度;其中,所述加权求和通过下列公式来完成;

sim_x_y=0.6*sim_w_x_y+0.4*pinyin_sim_x_y;其中,所述sim_x_y为所述文本与所述命令词文本的相似度;所述sim_w_x_y为所述词相似度;所述pinyin_sim_x_y为所述命令词文本的相似度。

以此,本发明实施例提出了一种语音识别文本与命令词文本匹配的方法及设备,应用于人机交互的场景,其中,该方法包括:获取通过语音识别得到的文本;对所述文本进行切词,以生成多个文本词;并对预设的命令词文本进行切词,以生成命令词;确定与各所述文本词相似度最高的命令词,并以此生成第一对应关系;其中,在所述第一对应关系中,所确定的命令词只对应一个文本词;基于各最高的所述相似度确定所述文本与所述命令词文本的词相似度;确定所述文本与所述命令词文本中每个字的拼音;确定与所述文本中每个字的拼音相似程度最高的所述命令词中的字的拼音,并以此生成第二对应关系;其中,在所述第二对应关系中,所述文本中每个字的拼音只对应一个所述命令词中的字的拼音;基于各最高的拼音相似度确定所述文本与所述命令词文本的拼音相似度;基于所述词相似度与所述拼音相似度确定所述文本与所述命令词文本的相似度。通过本方案,无需标注数据,对语音识别错误的容忍度较高,且保证后续与命令词的匹配。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提出的一种语音识别文本与命令词文本匹配的方法的流程示意图;

图2为本发明实施例提出的一种语音识别文本与命令词文本匹配的设备的结构示意图。

具体实施方式

在下文中,将更全面地描述本公开的各种实施例。本公开可具有各种实施例,并且可在其中做出调整和改变。然而,应理解:不存在将本公开的各种实施例限于在此公开的特定实施例的意图,而是应将本公开理解为涵盖落入本公开的各种实施例的精神和范围内的所有调整、等同物和/或可选方案。

实施例1

本发明实施例公开了一种语音识别文本与命令词文本匹配的方法,应用于人机交互的场景,如图1所示,该方法包括:

步骤101、获取通过语音识别得到的文本;

具体的,通过语言识别技术将语音数据进行识别,以生成文本。

步骤102、对所述文本进行切词,以生成多个文本词;并对预设的命令词文本进行切词,以生成命令词;

具体的,对文本以及预设的命令词文件进行切词,优选的该切词可以是基于任意两词之间的相似度来进行的,以此可以避免过多的无效切词处理;具体的,也即基于任意两词之间的相似度对所述文本进行切词,以及对预设的命令词文本进行切词;

而具体的任意两词之间的相似度可以基于下述流程来得到:

获取数量超过一定值的文本数据;

基于word2vec确定所述文本数据中词与词的第一相似度;

基于hownet确定所述文本数据中词与词的第二相似度;

基于所述第一相似度与所述第二相似度,获取所述文本数据中任意两词之间的相似度并构建近义词相似词表;

确定所述文本数据中所有字的所有拼音;

发音满足预设相似条件的拼音信息;

基于所获取的拼音以及拼音信息确定两个拼音之间的相似度并构建包所述文本数据中所有字拼音的拼音相似表;

所述切词是基于任意两词之间的相似度来进行的;

具体的,以具体的实施例来进行说明:

首先,可以在网上通过爬取的方法收集近5g的文本数据,然后基于word2vec构建词与词的相似度;基于word2vec与hownet构建近义词相似词表,得到任意两词之间的相似度;定义为word_sim_fuc(w1,w2)函数;

具体的,可以基于对两个相似度(基于word2vec得到的相似度与基于hownet得到的相似度)进行平均得到任意两词之间的相似度。

然后,获取所有字的所有可能拼音(多音字)

第三,收集发音较为相似的拼音信息(比如,f-h易混,r-l易混,后鼻音与前鼻音易混等),基于这份数据,可以构建出所有字拼音的相似拼音。并根据相似类别,例如以人工的方式或者其他的识别方式给与一定的相似值。比如,对于,ting-tin之间相似度可以是0.9,对于fu-hu之间的相似度可以是0.7,对于rou-lou之间相似度可以为0.7;对于两个拼音的相似度可以定义为pinyin_sim_fuc(pinyin1,pinyin2)。

步骤103、确定与各所述文本词相似度最高的命令词,并以此生成第一对应关系;其中,在所述第一对应关系中,所确定的命令词只对应一个文本词;

具体的,步骤103中的所述“确定与各所述文本词相似度最高的命令词”包括:

针对各所述文本词,基于近义词相似词表确定所述文本词与各所述命令词的相似度;

对所述相似度进行大小排序,以确定与所述文本词相似度最高的命令词;

步骤104、基于各最高的所述相似度确定所述文本与所述命令词文本的词相似度;

具体的,步骤104中的所述“基于各最高的所述相似度确定所述文本与所述命令词文本的词相似度”包括:

获取各最高的所述相似度以及各最高的所述相似度的词的字数;

基于所述字数、所述文本的字数、各最高的所述相似度确定字长带权平均;

将所述字长带权平均设置为所述文本与所述命令词文本的词相似度。

具体的,在得到语音识别的文本后,可以与功能命令词进行比较;定义语音识别文本(x,后面均有x表示),而功能命令词文本(y,后面均用y表示),具体的,在一个例子中:以例子来说明。假设x为:互强打开;而y为:开启附件。

根据前述得到的任意两词的相似度;在对x,y依次切词之后,对x中的每个词(w_x_i),在y中找最相似(利用a中的word_sim_fuc函数)的词(w_y_j),相似度记为sim_w_i_j,并且保证w_y_j只会对应一个w_x_i;在得到每个w_x_i的最相似词的相似度之后,取字长带权平均作为x,y的词相似度,记为sim_w_x_y;

具体的,仍以上述为例来进行说明,对x切词后,变成互—强—打开;而对y切词后,变成开启—附件;所以,这里打开-开启对应;剩下的,就是附件-互对应,强不对应到字;

假设打开与开启的相似度是0.9,附件与互相似度为0,强的相似度0。所以sim_w_x_y=0.5*0.9+0.25*0+0.25*0=0.45。

具体的,字长带权平均的含义即为基于字长在文本中的长度的带权平均,具体的,例如“打开”有2个字,而“互强打开”则有4个字,因此字长的比例为0.5,其他的“互”以及“强”与此相同。

步骤105、确定所述文本与所述命令词文本中每个字的拼音;

步骤106、确定与所述文本中每个字的拼音相似程度最高的所述命令词中的字的拼音,并以此生成第二对应关系;其中,在所述第二对应关系中,所述文本中每个字的拼音只对应一个所述命令词中的字的拼音;

其中,步骤106中的所述“确定与所述文本中每个字的拼音相似程度最高的所述命令词中的字的拼音”包括:

针对各所述文本的字,基于所述拼音相似表确定与所述文本的字的拼音与各所述命令词中的字拼音的拼音相似度;

对所述拼音相似度进行大小排序,以确定与所述文本中的字的拼音的拼音相似度最高的命令词中的字的拼音。

步骤107、基于各最高的拼音相似度确定所述文本与所述命令词文本的拼音相似度;

具体的,所述“基于各最高的拼音相似度确定所述文本与所述命令词文本的拼音相似度”包括:

确定各最高的拼音相似度的平均值;

将所述平均值确定为所述文本与所述命令词文本的拼音相似度。

以此,基于一个实施例来进行说明,根据前述得到的字的所有拼音,得到x,y中每个字的拼音。

对于x中每个字的拼音(pinyin_x_i)在y中找最相似(利用b中的pinyin_sim_fuc函数)的字的拼音(pinyin_y_j),相似度记为sim_pinyin_i_j,并且保证pinyin_x_i只会对应一个pinyin_y_j;在得到每个pinyin_x_i的最相似字拼音后,取平均作为x,y的拼音相似度,记为pinyin_sim_x_y;

具体的,仍以上述为例,x互强打开拼音是hujiang/qiangdakaiy开启附件拼音是kaiqifujian

首先从x开始遍历,hu最相似的是fu,相似度0.7

jiang/qiang最相似的是jian,相似度0.9

kai最相似就是kai,相似度1.0

da与qi都是剩下的,匹配,相似度0

平均下来,拼音相似度为2.6/4=0.65

步骤108、基于所述词相似度与所述拼音相似度确定所述文本与所述命令词文本的相似度。

在一个实施例中,所述“基于所述词相似度与所述拼音相似度确定所述文本与所述命令词文本的相似度”包括:

对所述词相似度与所述拼音相似度进行加权求和,以获取所述文本与所述命令词文本的相似度;其中,所述加权求和通过下列公式来完成;

sim_x_y=0.6*sim_w_x_y+0.4*pinyin_sim_x_y;其中,所述sim_x_y为所述文本与所述命令词文本的相似度;所述sim_w_x_y为所述词相似度;所述pinyin_sim_x_y为所述命令词文本的相似度。

仍会以上述为例,则最后相似度为0.6*0.45+0.4*0.65=0.53。

实施例2

本发明实施例2还公开了一种语音识别文本与命令词文本匹配的设备,应用于人机交互的场景,如图2所示,该设备包括:

获取模块201,用于获取通过语音识别得到的文本;

切词模块202,对所述文本进行切词,以生成多个文本词;并对预设的命令词文本进行切词,以生成命令词;

第一生成模块203,用于确定与各所述文本词相似度最高的命令词,并以此生成第一对应关系;其中,在所述第一对应关系中,所确定的命令词只对应一个文本词;

词相似度确定模块204,用于基于各最高的所述相似度确定所述文本与所述命令词文本的词相似度;

拼音确定模块205,用于确定所述文本与所述命令词文本中每个字的拼音;

第二生成模块206,用于确定与所述文本中每个字的拼音相似程度最高的所述命令词中的字的拼音,并以此生成第二对应关系;其中,在所述第二对应关系中,所述文本中每个字的拼音只对应一个所述命令词中的字的拼音;

拼音相似度确定模块207,用于基于各最高的拼音相似度确定所述文本与所述命令词文本的拼音相似度;

处理模块208,用于基于所述词相似度与所述拼音相似度确定所述文本与所述命令词文本的相似度。

在一个实施例中,还包括:预处理模块,用于

获取数量超过一定值的文本数据;

基于word2vec确定所述文本数据中词与词的第一相似度;

基于hownet确定所述文本数据中词与词的第二相似度;

基于所述第一相似度与所述第二相似度,获取所述文本数据中任意两词之间的相似度并构建近义词相似词表;

确定所述文本数据中所有字的所有拼音;

收集发音满足预设相似条件的拼音信息;

基于所获取的拼音以及拼音信息确定两个拼音之间的相似度并构建包所述文本数据中所有字拼音的拼音相似表;

所述切词是基于任意两词之间的相似度来进行的;

所述第一生成模块“确定与各所述文本词相似度最高的命令词”包括:

针对各所述文本词,基于近义词相似词表确定所述文本词与各所述命令词的相似度;

对所述相似度进行大小排序,以确定与所述文本词相似度最高的命令词;

所述第二生成模块“确定与所述文本中每个字的拼音相似程度最高的所述命令词中的字的拼音”包括:

针对各所述文本的字,基于所述拼音相似表确定与所述文本的字的拼音与各所述命令词中的字拼音的拼音相似度;

对所述拼音相似度进行大小排序,以确定与所述文本中的字的拼音的拼音相似度最高的命令词中的字的拼音。

在一个实施例中,所述词相似度确定模块,用于:

获取各最高的所述相似度以及各最高的所述相似度的词的字数;

基于所述字数、所述文本的字数、各最高的所述相似度确定字长带权平均;

将所述字长带权平均设置为所述文本与所述命令词文本的词相似度。

在一个实施例中,所述拼音相似度确定模块,用于:

确定各最高的拼音相似度的平均值;

将所述平均值确定为所述文本与所述命令词文本的拼音相似度。

在一个实施例中,所述处理模块,用于:

对所述词相似度与所述拼音相似度进行加权求和,以获取所述文本与所述命令词文本的相似度;其中,所述加权求和通过下列公式来完成;

sim_x_y=0.6*sim_w_x_y+0.4*pinyin_sim_x_y;其中,所述sim_x_y为所述文本与所述命令词文本的相似度;所述sim_w_x_y为所述词相似度;所述pinyin_sim_x_y为所述命令词文本的相似度。

以此,本发明实施例提出了一种语音识别文本与命令词文本匹配的方法及设备,应用于人机交互的场景,其中,该方法包括:获取通过语音识别得到的文本;对所述文本进行切词,以生成多个文本词;并对预设的命令词文本进行切词,以生成命令词;确定与各所述文本词相似度最高的命令词,并以此生成第一对应关系;其中,在所述第一对应关系中,所确定的命令词只对应一个文本词;基于各最高的所述相似度确定所述文本与所述命令词文本的词相似度;确定所述文本与所述命令词文本中每个字的拼音;确定与所述文本中每个字的拼音相似程度最高的所述命令词中的字的拼音,并以此生成第二对应关系;其中,在所述第二对应关系中,所述文本中每个字的拼音只对应一个所述命令词中的字的拼音;基于各最高的拼音相似度确定所述文本与所述命令词文本的拼音相似度;基于所述词相似度与所述拼音相似度确定所述文本与所述命令词文本的相似度。通过本方案,无需标注数据,对语音识别错误的容忍度较高,且保证后续与命令词的匹配。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本发明序号仅仅为了描述,不代表实施场景的优劣。

以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1