一种语音意图识别方法、装置及设备与流程
本申请涉及语音交互领域,尤其涉及一种语音意图识别方法、装置及设备。
背景技术:
随着人工智能技术的快速发展以及人工智能技术在生活中的广泛使用,语音交互成为人与机器之间沟通交流的重要桥梁。机器人系统要与用户对话并完成特定任务,其中一个核心技术是语音意图的识别,即,用户向机器人系统输入待识别语音后,机器人系统能够通过待识别语音判定用户的语音意图。
在相关技术中,语音意图的识别方式包括:语音识别阶段和意图识别阶段。在语音识别阶段,通过自动语音识别(automaticspeechrecognition,asr)技术对待识别语音进行语音识别,将待识别语音转化为文本。然后,在意图识别阶段,通过自然语言处理(naturallanguageprocessing,nlp)技术对文本进行语义理解,得到关键词信息,并基于关键词信息识别出用户的语音意图。
上述基于文本的意图识别方式,准确率严重依赖于语音转化为文本的准确率,而语音转化为文本的准确率较低,导致语音意图识别的准确率很低,无法准确识别出用户的语音意图。比如说,语音中存在的是“树木”,但是,语音转化为文本时,文本内容可以能是“数目”,从而导致语音意图的识别错误。
技术实现要素:
本申请提供一种语音意图识别方法,所述方法包括:
根据待识别语音确定待识别音素集合;
获取与所述待识别音素集合对应的待识别音素向量;
将所述待识别音素向量输入给已训练的目标网络模型,以使所述目标网络模型输出与所述待识别音素向量对应的语音意图;
其中,所述目标网络模型用于记录音素向量与语音意图的映射关系。
在一种可能的实施方式中,所述待识别音素集合包括多个待识别音素,所述获取与所述待识别音素集合对应的待识别音素向量,包括:
针对每个待识别音素,确定所述待识别音素对应的音素特征值;基于每个待识别音素对应的音素特征值,获取与所述待识别音素集合对应的待识别音素向量,所述待识别音素向量包括每个待识别音素对应的音素特征值。
在一种可能的实施方式中,所述将所述待识别音素向量输入给已训练的目标网络模型,以使所述目标网络模型输出与所述待识别音素向量对应的语音意图之前,还包括:获取样本语音和所述样本语音对应的样本意图;
根据所述样本语音确定样本音素集合;
获取与所述样本音素集合对应的样本音素向量;
将所述样本音素向量和所述样本意图输入给初始网络模型,通过所述样本音素向量和所述样本意图对初始网络模型进行训练,得到所述目标网络模型。
在一种可能的实施方式中,所述样本音素集合包括多个样本音素,所述获取与所述样本音素集合对应的样本音素向量,包括:
针对每个样本音素,确定所述样本音素对应的音素特征值;
基于每个样本音素对应的音素特征值,获取与所述样本音素集合对应的样本音素向量,所述样本音素向量包括每个样本音素对应的音素特征值。
本申请提供一种语音意图识别方法,所述方法包括:
根据待识别语音确定待识别拼音集合;
获取与所述待识别拼音集合对应的待识别拼音向量;
将所述待识别拼音向量输入给已训练的目标网络模型,以使所述目标网络模型输出与所述待识别拼音向量对应的语音意图;
其中,所述目标网络模型用于记录拼音向量与语音意图的映射关系。
在一种可能的实施方式中,所述待识别拼音集合包括多个待识别拼音,所述获取与所述待识别拼音集合对应的待识别拼音向量,包括:
针对每个待识别拼音,确定所述待识别拼音对应的拼音特征值;基于每个待识别拼音对应的拼音特征值,获取与所述待识别拼音集合对应的待识别拼音向量,所述待识别拼音向量包括每个待识别拼音对应的拼音特征值。
在一种可能的实施方式中,所述将所述待识别拼音向量输入给已训练的目标网络模型,以使所述目标网络模型输出与所述待识别拼音向量对应的语音意图之前,还包括:获取样本语音和所述样本语音对应的样本意图;
根据所述样本语音确定样本拼音集合;
获取与所述样本拼音集合对应的样本拼音向量;
将所述样本拼音向量和所述样本意图输入给初始网络模型,通过所述样本拼音向量和所述样本意图对初始网络模型进行训练,得到所述目标网络模型。
在一种可能的实施方式中,所述样本拼音集合包括多个样本拼音,所述获取与所述样本拼音集合对应的样本拼音向量,包括:
针对每个样本拼音,确定所述样本拼音对应的拼音特征值;
基于每个样本拼音对应的拼音特征值,获取与所述样本拼音集合对应的样本拼音向量,所述样本拼音向量包括每个样本拼音对应的拼音特征值。
本申请提供一种语音意图识别装置,所述装置包括:
确定模块,用于根据待识别语音确定待识别音素集合;
获取模块,用于获取与所述待识别音素集合对应的待识别音素向量;
处理模块,用于将所述待识别音素向量输入给已训练的目标网络模型,以使所述目标网络模型输出与所述待识别音素向量对应的语音意图;
其中,所述目标网络模型用于记录音素向量与语音意图的映射关系。
本申请提供一种语音意图识别装置,所述装置包括:
确定模块,用于根据待识别语音确定待识别拼音集合;
获取模块,用于获取与所述待识别拼音集合对应的待识别拼音向量;
处理模块,用于将所述待识别拼音向量输入给已训练的目标网络模型,以使所述目标网络模型输出与所述待识别拼音向量对应的语音意图;
其中,所述目标网络模型用于记录拼音向量与语音意图的映射关系。
本申请提供一种语音意图识别设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现如下步骤:
根据待识别语音确定待识别音素集合;
获取与所述待识别音素集合对应的待识别音素向量;
将所述待识别音素向量输入给已训练的目标网络模型,以使所述目标网络模型输出与所述待识别音素向量对应的语音意图;
其中,所述目标网络模型用于记录音素向量与语音意图的映射关系;
或者,根据待识别语音确定待识别拼音集合;
获取与所述待识别拼音集合对应的待识别拼音向量;
将所述待识别拼音向量输入给已训练的目标网络模型,以使所述目标网络模型输出与所述待识别拼音向量对应的语音意图;
其中,所述目标网络模型用于记录拼音向量与语音意图的映射关系。
由以上技术方案可见,本申请实施例中,基于待识别音素识别出语音意图,不是基于文本识别语音意图,不需要依赖语音转化为文本的准确率。由于音素是根据语音的自然属性划分的最小语音单位,基于发音动作来分析,一个动作构成一个音素,因此,基于待识别语音确定待识别音素的准确率很高,语音意图识别的准确率很高,能够准确识别出用户的语音意图,有效提高语音意图识别的准确率,使得意图识别有了更强的可靠性,不需要语音识别的大量语言模型算法库,带来性能和内存的大幅度优化。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的语音意图识别方法的流程示意图;
图2是本申请一种实施方式中的语音意图识别方法的流程示意图;
图3是本申请一种实施方式中的语音意图识别方法的流程示意图;
图4是本申请一种实施方式中的语音意图识别方法的流程示意图;
图5a是本申请一种实施方式中的语音意图识别装置的结构示意图;
图5b是本申请一种实施方式中的语音意图识别装置的结构示意图;
图6是本申请一种实施方式中的语音意图识别设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在介绍本申请的技术方案之前,先介绍与本申请实施例有关的概念。
机器学习:机器学习是实现人工智能的一种途径,用于研究计算机如何模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身性能。深度学习属于机器学习的子类,是一种使用数学模型对真实世界中的特定问题进行建模,以解决该领域内相似问题的过程。神经网络是深度学习的实现方式,为了方便描述,本文以神经网络为例,介绍神经网络的结构和功能,对于机器学习的其它子类,与神经网络的结构和功能类似。
神经网络:神经网络包括但不限于卷积神经网络(简称cnn)、循环神经网络(简称rnn)、全连接网络等,神经网络的结构单元可以包括但不限于卷积层(conv)、池化层(pool)、激励层、全连接层(fc)等,对此不做限制。
在实际应用中,可以根据不同需求,将一个或多个卷积层,一个或多个池化层,一个或多个激励层,以及一个或多个全连接层进行组合构建神经网络。
在卷积层中,通过使用卷积核对输入数据特征进行卷积运算,使输入数据特征增强,该卷积核可以是m*n大小的矩阵,卷积层的输入数据特征与卷积核进行卷积,可以得到卷积层的输出数据特征,卷积运算实际是一个滤波过程。
在池化层中,通过对输入数据特征(如卷积层的输出)进行取最大值、取最小值、取平均值等操作,从而利用局部相关性的原理,对输入数据特征进行子抽样,减少处理量,并保持特征不变性,池化层运算实际是一个降采样过程。
在激励层中,可以使用激活函数(如非线性函数)对输入数据特征进行映射,从而引入非线性因素,使得神经网络通过非线性的组合增强表达能力。
该激活函数可以包括但不限于relu(rectifiedlinearunits,整流线性单元)函数,该relu函数用于将小于0的特征置0,而大于0的特征保持不变。
在全连接层中,用于将输入给本全连接层的所有数据特征进行全连接处理,从而得到一个特征向量,且该特征向量中可以包括多个数据特征。
网络模型:采用机器学习算法(如深度学习算法)构建的模型,如采用神经网络构建的模型,即,网络模型可以由一个或多个卷积层,一个或多个池化层,一个或多个激励层,以及一个或多个全连接层组成。为了区分方便,将未训练的网络模型称为初始网络模型,将已训练的网络模型称为目标网络模型。
在初始网络模型的训练过程中,利用样本数据训练初始网络模型内各网络参数,如卷积层参数(如卷积核参数)、池化层参数、激励层参数、全连接层参数等,对此不做限制。通过训练初始网络模型内各网络参数,使得初始网络模型拟合出输入和输出的映射关系。在初始网络模型训练完成后,已经完成训练的初始网络模型就是目标网络模型,通过目标网络模型识别语音意图。
音素:音素是根据语音的自然属性划分出来的最小语音单位,依据音节里的发音动作来分析,一个动作构成一个音素。例如,汉语音节啊(a)只有一个音素(a),爱(ai)有两个音素(a和i),代(dai)有三个音素(d、a和i)等。又例如,汉语音节树木(shumu)有五个音素(s、h、u、m和u)等。
拼音:拼音是将一个以上的音素结合起来成为一个复合的音,例如,代(dai)有三个音素(d、a和i),这些音素组成一个拼音(dai)。又例如,树木(shumu)有五个音素(s、h、u、m和u),这些音素组成两个拼音(shu和mu)。
在相关技术中,语音意图的识别方式包括:语音识别阶段和意图识别阶段。在语音识别阶段,通过自动语音识别技术对待识别语音进行语音识别,将待识别语音转化为文本。在意图识别阶段,通过自然语言处理技术对文本进行语义理解,得到关键词,并基于关键词识别用户的语音意图。上述基于文本的意图识别方式,准确率依赖于语音转化为文本的准确率,而语音转化为文本的准确率较低,导致语音意图识别的准确率很低,无法准确识别出用户的语音意图。
针对上述发现,本申请实施例中,基于待识别音素识别出语音意图,而不是基于文本识别语音意图,从而不需要依赖语音转化为文本的准确率。
以下结合具体实施例,对本申请实施例的技术方案进行说明。
本申请实施例中提出一种语音意图识别方法,可以应用于人机交互应用场景,主要用于根据语音意图对设备进行控制。示例性的,该方法可以应用于需要根据语音意图进行控制的任意设备,如门禁设备,投屏设备,ipc(ipcamera,网络摄像机),服务器,智能终端,机器人系统,空调设备等,对此不做限制。
本申请实施例中,涉及初始网络模型的训练过程,基于目标网络模型的识别过程。在初始网络模型的训练过程中,可以对初始网络模型进行训练,得到已训练的目标网络模型。在基于目标网络模型的识别过程中,可以基于目标网络模型识别语音意图。初始网络模型的训练过程与基于目标网络模型的识别过程,可以在同一个设备实现,也可以在不同设备实现。比如说,在设备a实现初始网络模型的训练过程,得到目标网络模型,并基于目标网络模型识别语音意图。又例如,在设备a1实现初始网络模型的训练过程,得到目标网络模型,将目标网络模型部署到设备a2,由设备a2基于目标网络模型识别语音意图。
参见图1所示,针对初始网络模型的训练过程,本申请实施例中提出一种语音意图识别方法,该方法可以实现初始网络模型的训练,该方法包括:
步骤101,获取样本语音和该样本语音对应的样本意图。
示例性的,可以从历史数据中获取大量样本语音,和/或,接收用户输入的大量样本语音,对此获取方式不做限制,样本语音表示说话时发出的声音。比如说,说话时发出的声音是“把空调打开”,则样本语音就是“把空调打开”。
针对每个样本语音来说,可以获取该样本语音对应的语音意图,为了区分方便,可以将样本语音对应的语音意图称为样本意图(即样本语音意图)。比如说,若样本语音是“把空调打开”,则样本意图可以是“开空调”。
步骤102,根据该样本语音确定样本音素集合。
示例性的,针对每个样本语音来说,可以根据该样本语音确定样本音素集合,该样本音素集合可以包括多个样本音素,根据样本语音确定样本音素的过程,是从样本语音中识别出每个音素的过程,为了区分方便,将识别出的每个音素称为样本音素,因此,可以根据该样本语音识别出多个样本音素,对此识别过程不做限制,只要能够根据该样本语音识别出多个样本音素即可。
比如说,针对样本语音“把空调打开”来说,则样本音素集合可以包括如下的样本音素“b、a、k、o、n、g、t、i、a、o、d、a、k、a、i”。
步骤103,获取与该样本音素集合对应的样本音素向量。
示例性的,针对该样本音素集合中的每个样本音素,确定该样本音素对应的音素特征值,基于每个样本音素对应的音素特征值,获取与该样本音素集合对应的样本音素向量,该样本音素向量包括每个样本音素对应的音素特征值。
比如说,预先维护所有音素中的每个音素与音素特征值的映射关系,假设一共存在50个音素,则可以维护音素1与音素特征值1的映射关系,音素2与音素特征值2的映射关系,…,音素50与音素特征值50的映射关系。
在此基础上,在步骤103中,针对样本音素集合中的每个样本音素,通过查询上述映射关系,可以得到与该样本音素对应的音素特征值,并将样本音素集合中的每个样本音素对应的音素特征值组成起来,得到该样本音素向量。
比如说,针对样本音素集合“b、a、k、o、n、g、t、i、a、o、d、a、k、a、i”,该样本音素向量是一个15维的特征向量,该特征向量依次包括“b”对应的音素特征值,“a”对应的音素特征值,“k”对应的音素特征值,“o”对应的音素特征值,“n”对应的音素特征值,“g”对应的音素特征值,“t”对应的音素特征值,“i”对应的音素特征值,“a”对应的音素特征值,“o”对应的音素特征值,“d”对应的音素特征值,“a”对应的音素特征值,“k”对应的音素特征值,“a”对应的音素特征值,“i”对应的音素特征值。
在一种可能的实施方式中,可以对所有音素进行排序,假设一共存在50个音素,则50个音素的序号分别为1-50,针对每个音素对应的音素特征值,该音素特征值可以是50位的数值。假设音素的序号为m,则该音素对应的音素特征值中,第m位的取值是第一取值,除第m位之外的其它位的取值是第二取值。比如说,序号为1的音素对应的音素特征值,第1位的取值是第一取值,第2-50位的取值是第二取值;序号为2的音素对应的音素特征值,第2位的取值是第一取值,第1位、第3-50位的取值是第二取值,以此类推。
综上所述,针对样本音素集合“b、a、k、o、n、g、t、i、a、o、d、a、k、a、i”,该样本音素向量可以是一个15*50维的特征向量,该特征向量包括15行50列,每一行表示一个音素对应的音素特征值,对此不再赘述。
在上述实施例中,第一取值和第二取值可以根据经验配置,对此不做限制,如第一取值为1,第二取值为0,或者,第一取值为0,第二取值为1,或者,第一取值为255,第二取值为0,或者,第一取值为0,第二取值为255。
步骤104,将该样本音素向量和该样本音素向量对应的样本意图输入给初始网络模型,以通过该样本音素向量和该样本意图对初始网络模型进行训练,得到已训练的目标网络模型。示例性的,由于是采用该样本音素向量和该样本意图(即样本语音意图)对初始网络模型进行训练,得到已训练的目标网络模型,因此,该目标网络模型可以用于记录音素向量与语音意图的映射关系。
参见上述实施例,可以获取大量样本语音,针对每个样本语音,获取该样本语音对应的样本意图,该样本语音对应的样本音素集合对应的样本音素向量,即,得到该样本语音对应的样本音素向量和样本意图(作为样本音素向量的标签信息参与训练)。基于此,可以将大量样本音素向量及每个样本音素向量对应的样本意图(即标签信息)输入给初始网络模型,从而利用样本音素向量及样本意图对初始网络模型内各网络参数进行训练,对此训练过程不做限制。在初始网络模型训练完成后,已经完成训练的初始网络模型是目标网络模型。
比如说,可以将大量样本音素向量及样本意图输入给初始网络模型的第一个网络层,由第一个网络层对这些数据进行处理,得到第一个网络层的输出数据,将第一个网络层的输出数据输入给初始网络模型的第二个网络层,以此类推,一直到将数据输入给初始网络模型的最后一个网络层,由最后一个网络层对数据进行处理,得到输出数据,将这个输出数据记为目标特征向量。
在得到目标特征向量后,基于目标特征向量确定初始网络模型是否已收敛。若初始网络模型已收敛,则将已收敛的初始网络模型确定为已训练的目标网络模型,完成初始网络模型的训练过程。若初始网络模型未收敛,则对未收敛的初始网络模型的网络参数进行调整,得到调整后的初始网络模型。
基于调整后的初始网络模型,可以将大量样本音素向量及样本意图输入给调整后的初始网络模型,从而对调整后的初始网络模型重新进行训练,具体训练过程参见上述实施例,在此不再重复赘述。以此类推,一直到初始网络模型已收敛,并将已收敛的初始网络模型确定为已训练的目标网络模型。
在上述实施例中,基于目标特征向量确定初始网络模型是否已收敛,可以包括但不限于:预先构建损失函数,对此损失函数不做限制,可以根据经验设置。在得到目标特征向量后,可以根据该目标特征向量确定损失函数的损失值,比如说,可以将该目标特征向量代入损失函数,得到损失函数的损失值。在得到损失函数的损失值后,根据损失函数的损失值确定初始网络模型是否已收敛。
示例性的,可以根据一个损失值确定初始网络模型是否已收敛,例如,基于目标特征向量得到损失值1,若损失值1不大于阈值,则确定初始网络模型已收敛。若损失值1大于阈值,则确定初始网络模型未收敛。或者,
可以根据多次迭代过程的多个损失值确定初始网络模型是否已收敛,例如,在每次迭代过程中,对上次迭代过程的初始网络模型进行调整,得到调整后的初始网络模型,且每次迭代过程可以得到损失值。确定多个损失值的变化幅度曲线,若根据该变化幅度曲线确定损失值变化幅度已经平稳(连续多次迭代过程的损失值未发生变化,或者变化的幅度很小),且最后一次迭代过程的损失值不大于阈值,则确定最后一次迭代过程的初始网络模型已收敛。否则,确定最后一次迭代过程的初始网络模型未收敛,继续进行下一次迭代过程,得到下一次迭代过程的损失值,并重新确定多个损失值的变化幅度曲线。
在实际应用中,还可以采用其它方式确定初始网络模型是否已收敛,对此不做限制。例如,若迭代次数达到预设次数阈值,则确定初始网络模型已收敛;又例如,若迭代时长达到预设时长阈值,则确定初始网络模型已收敛。
综上所述,可以通过样本音素向量和该样本音素向量对应的样本意图对初始网络模型进行训练,从而得到训练后的目标网络模型。
参见图2所示,针对基于目标网络模型的识别过程,本申请实施例中提出一种语音意图识别方法,该方法可以实现语音意图的识别,该方法包括:
步骤201,根据待识别语音确定待识别音素集合。
示例性的,在得到待识别语音后,可以根据该待识别语音确定待识别音素集合,该待识别音素集合可以包括多个待识别音素,根据待识别语音确定待识别音素的过程,是从待识别语音中识别出每个音素的过程,为了区分方便,将识别出的每个音素称为待识别音素,因此,可以根据该待识别语音识别出多个待识别音素,对此识别过程不做限制,只要能够根据待识别语音识别出多个待识别音素即可。比如说,针对待识别语音“开空调”来说,则待识别音素集合可以包括如下的待识别音素“k、a、i、k、o、n、g、t、i、a、o”。
步骤202,获取与该待识别音素集合对应的待识别音素向量。示例性的,针对待识别音素集合中的每个待识别音素,确定该待识别音素对应的音素特征值,基于每个待识别音素对应的音素特征值,获取与待识别音素集合对应的待识别音素向量,该待识别音素向量包括每个待识别音素对应的音素特征值。
比如说,预先维护所有音素中的每个音素与音素特征值的映射关系,假设一共存在50个音素,则可以维护音素1与音素特征值1的映射关系,音素2与音素特征值2的映射关系,…,音素50与音素特征值50的映射关系。
步骤202中,针对待识别音素集合中的每个待识别音素,通过查询上述映射关系,可以得到与该待识别音素对应的音素特征值,并将待识别音素集合中的每个待识别音素对应的音素特征值组成起来,得到该待识别音素向量。
在一种可能的实施方式中,可以对所有音素进行排序,假设一共存在50个音素,则50个音素的序号分别为1-50,针对每个音素对应的音素特征值,该音素特征值可以是50位的数值。假设音素的序号为m,则该音素对应的音素特征值中,第m位的取值是第一取值,除第m位之外的其它位的取值是第二取值。比如说,序号为1的音素对应的音素特征值,第1位的取值是第一取值,第2-50位的取值是第二取值;序号为2的音素对应的音素特征值,第2位的取值是第一取值,第1位、第3-50位的取值是第二取值,以此类推。
步骤203,将该待识别音素向量输入给已训练的目标网络模型,以使目标网络模型输出与该待识别音素向量对应的语音意图。示例性的,目标网络模型用于记录音素向量与语音意图的映射关系,在将待识别音素向量输入给目标网络模型后,目标网络模型可以输出与该待识别音素向量对应的语音意图。
比如说,可以将待识别音素向量输入给目标网络模型的第一个网络层,由第一个网络层对该待识别音素向量进行处理,得到第一个网络层的输出数据,将第一个网络层的输出数据输入给目标网络模型的第二个网络层,以此类推,一直到将数据输入给目标网络模型的最后一个网络层,由最后一个网络层对数据进行处理,得到输出数据,将这个输出数据记为目标特征向量。
由于目标网络模型用于记录音素向量与语音意图的映射关系,因此,在得到目标特征向量后,可以基于该目标特征向量查询该映射关系,得到与该目标特征向量对应的语音意图,这个语音意图可以是与该待识别音素向量对应的语音意图,目标网络模型可以输出与该待识别音素向量对应的语音意图。
在得到与待识别音素向量对应的语音意图后,可以基于该语音意图对设备进行控制,对此控制方式不做限制,如语音意图是“开空调”时,打开空调。
在一种可能的实施方式中,目标网络模型输出与待识别音素向量对应的语音意图时,还可以输出语音意图对应的概率值(如0-1之间的概率值,该概率值也可以称为置信度),例如,目标网络模型可以输出语音意图1以及语音意图1的概率值1(如0.8),语音意图2以及语音意图2的概率值2(如0.1),语音意图3以及语音意图3的概率值3(如0.08),以此类推。
基于上述输出数据,可以将概率值最大的语音意图作为与待识别音素向量对应的语音意图,例如,将概率值最大的语音意图1作为与待识别音素向量对应的语音意图。或者,先确定概率值最大的语音意图,确定该语音意图的概率值(即最大概率值)是否大于预设概率阈值,若是,将该语音意图作为与待识别音素向量对应的语音意图,否则,没有与该待识别音素向量对应的语音意图。
由以上技术方案可见,本申请实施例中,基于待识别音素识别出语音意图,不是基于文本识别语音意图,不需要依赖语音转化为文本的准确率。基于待识别语音确定待识别音素的准确率很高,语音意图识别的准确率很高,能够准确识别出用户的语音意图,有效提高语音意图识别的准确率。
比如说,用户发出待识别语音“我想看有树木的照片”,终端设备(如ipc,智能手机等)基于待识别语音确定的音素是“w、o、x、i、a、n、g、k、a、n、y、o、u、s、h、u、m、u、d、e、z、h、a、o、p、i、a、n”,即“树木”对应的音素是“s、h、u、m、u”,从而基于上述音素来确定语音意图,而不需要从待识别语音“我想看有树木的照片”中解析出“数目”或者“树木”,从而避免采用“数目”或“树木”确定语音意图,使得意图识别有了更强的可靠性,不需要语音识别的大量语言模型算法库,带来性能和内存的大幅度优化。
本申请实施例的另一种实现方式中,基于待识别拼音识别出语音意图,而不是基于文本识别语音意图,从而不需要依赖语音转化为文本的准确率。
以下结合具体实施例,对本申请实施例的技术方案进行说明。
本申请实施例中提出一种语音意图识别方法,可以应用于人机交互应用场景,主要用于根据语音意图对设备进行控制。示例性的,该方法可以应用于需要根据语音意图进行控制的任意设备,如门禁设备,投屏设备,ipc(ipcamera,网络摄像机),服务器,智能终端,机器人系统,空调设备等,对此不做限制。
本申请实施例中,可以涉及初始网络模型的训练过程,基于目标网络模型的识别过程。在初始网络模型的训练过程中,可以对初始网络模型进行训练,得到已训练的目标网络模型。在基于目标网络模型的识别过程中,可以基于目标网络模型识别语音意图。示例性的,初始网络模型的训练过程与基于目标网络模型的识别过程,可以在同一个设备实现,也可以在不同设备实现。
参见图3所示,针对初始网络模型的训练过程,本申请实施例中提出一种语音意图识别方法,该方法可以实现初始网络模型的训练,该方法包括:
步骤301,获取样本语音和该样本语音对应的样本意图。
示例性的,可以从历史数据中获取大量样本语音,和/或,接收用户输入的大量样本语音,对此获取方式不做限制,样本语音表示说话时发出的声音。比如说,说话时发出的声音是“把空调打开”,则样本语音就是“把空调打开”。
针对每个样本语音来说,可以获取该样本语音对应的语音意图,为了区分方便,可以将样本语音对应的语音意图称为样本意图(即样本语音意图)。比如说,若样本语音是“把空调打开”,则样本意图可以是“开空调”。
步骤302,根据该样本语音确定样本拼音集合。
示例性的,针对每个样本语音来说,可以根据该样本语音确定样本拼音集合,该样本拼音集合可以包括多个样本拼音,根据样本语音确定样本拼音的过程,是从样本语音中识别出每个拼音的过程,为了区分方便,将识别出的每个拼音称为样本拼音,因此,可以根据该样本语音识别出多个样本拼音,对此识别过程不做限制,只要能够根据该样本语音识别出多个样本拼音即可。
比如说,针对样本语音“把空调打开”来说,则样本拼音集合可以包括如下的样本拼音“ba”、“kong”、“tiao”、“da”、“kai”。
步骤303,获取与该样本拼音集合对应的样本拼音向量。
示例性的,针对该样本拼音集合中的每个样本拼音,确定该样本拼音对应的拼音特征值,基于每个样本拼音对应的拼音特征值,获取与该样本拼音集合对应的样本拼音向量,该样本拼音向量包括每个样本拼音对应的拼音特征值。
比如说,预先维护所有拼音中的每个拼音与拼音特征值的映射关系,假设一共存在400个拼音,则可以维护拼音1与拼音特征值1的映射关系,拼音2与拼音特征值2的映射关系,…,拼音400与拼音特征值400的映射关系。
在此基础上,在步骤303中,针对样本拼音集合中的每个样本拼音,通过查询上述映射关系,可以得到与该样本拼音对应的拼音特征值,并将样本拼音集合中的每个样本拼音对应的拼音特征值组成起来,得到该样本拼音向量。
比如说,针对上述的样本拼音集合“ba”、“kong”、“tiao”、“da”、“kai”,该样本拼音向量可以是一个5维的特征向量,该特征向量依次可以包括“ba”对应的拼音特征值,“kong”对应的拼音特征值,“tiao”对应的拼音特征值,“da”对应的拼音特征值,“kai”对应的拼音特征值。
在一种可能的实施方式中,可以对所有拼音进行排序,假设一共存在400个拼音,则400个拼音的序号分别为1-400,针对每个拼音对应的拼音特征值,该拼音特征值可以是400位的数值。假设拼音的序号为n,则该拼音对应的拼音特征值中,第n位的取值是第一取值,除第n位之外的其它位的取值是第二取值。比如说,序号为1的拼音对应的拼音特征值,第1位的取值是第一取值,第2-400位的取值是第二取值;序号为2的拼音对应的拼音特征值,第2位的取值是第一取值,第1位、第3-400位的取值是第二取值,以此类推。
综上所述,针对样本拼音集合“ba”、“kong”、“tiao”、“da”、“kai”来说,该样本拼音向量可以是一个5*400维的特征向量,该特征向量包括5行400列,每一行表示一个拼音对应的拼音特征值,对此不再赘述。
步骤304,将该样本拼音向量和该样本拼音向量对应的样本意图输入给初始网络模型,以通过该样本拼音向量和该样本意图对初始网络模型进行训练,得到已训练的目标网络模型。示例性的,由于是采用该样本拼音向量和该样本意图(即样本语音意图)对初始网络模型进行训练,得到已训练的目标网络模型,因此,该目标网络模型可以用于记录拼音向量与语音意图的映射关系。
参见上述实施例,可以获取大量样本语音,针对每个样本语音,获取该样本语音对应的样本意图,该样本语音对应的样本拼音集合对应的样本拼音向量,即,得到该样本语音对应的样本拼音向量和样本意图(作为样本拼音向量的标签信息参与训练)。基于此,可以将大量样本拼音向量及每个样本拼音向量对应的样本意图(即标签信息)输入给初始网络模型,从而利用样本拼音向量及样本意图对初始网络模型内各网络参数进行训练,对此训练过程不做限制。在初始网络模型训练完成后,已经完成训练的初始网络模型是目标网络模型。
比如说,可以将大量样本拼音向量及样本意图输入给初始网络模型的第一个网络层,由第一个网络层对这些数据进行处理,得到第一个网络层的输出数据,将第一个网络层的输出数据输入给初始网络模型的第二个网络层,以此类推,一直到将数据输入给初始网络模型的最后一个网络层,由最后一个网络层对数据进行处理,得到输出数据,将这个输出数据记为目标特征向量。
在得到目标特征向量后,基于目标特征向量确定初始网络模型是否已收敛。若初始网络模型已收敛,则将已收敛的初始网络模型确定为已训练的目标网络模型,完成初始网络模型的训练过程。若初始网络模型未收敛,则对未收敛的初始网络模型的网络参数进行调整,得到调整后的初始网络模型。
基于调整后的初始网络模型,可以将大量样本拼音向量及样本意图输入给调整后的初始网络模型,从而对调整后的初始网络模型重新进行训练,具体训练过程参见上述实施例,在此不再重复赘述。以此类推,一直到初始网络模型已收敛,并将已收敛的初始网络模型确定为已训练的目标网络模型。
在上述实施例中,基于目标特征向量确定初始网络模型是否已收敛,可以包括但不限于:预先构建损失函数,对此损失函数不做限制,可以根据经验设置。在得到目标特征向量后,可以根据该目标特征向量确定损失函数的损失值,比如说,可以将该目标特征向量代入损失函数,得到损失函数的损失值。在得到损失函数的损失值后,根据损失函数的损失值确定初始网络模型是否已收敛。
在实际应用中,还可以采用其它方式确定初始网络模型是否已收敛,对此不做限制。例如,若迭代次数达到预设次数阈值,则确定初始网络模型已收敛;又例如,若迭代时长达到预设时长阈值,则确定初始网络模型已收敛。
综上所述,可以通过样本拼音向量和该样本拼音向量对应的样本意图对初始网络模型进行训练,从而得到训练后的目标网络模型。
参见图4所示,针对基于目标网络模型的识别过程,本申请实施例中提出一种语音意图识别方法,该方法可以实现语音意图的识别,该方法包括:
步骤401,根据待识别语音确定待识别拼音集合。
示例性的,在得到待识别语音后,可以根据该待识别语音确定待识别拼音集合,该待识别拼音集合可以包括多个待识别拼音,根据待识别语音确定待识别拼音的过程,是从待识别语音中识别出每个拼音的过程,为了区分方便,可以将识别出的每个拼音称为待识别拼音,因此,可以根据该待识别语音识别出多个待识别拼音,对此识别过程不做限制,只要能够根据待识别语音识别出多个待识别拼音即可。比如说,针对待识别语音“开空调”来说,则待识别拼音集合可以包括如下的待识别拼音“kai”、“kong”、“tiao”。
步骤402,获取与该待识别拼音集合对应的待识别拼音向量。示例性的,针对待识别拼音集合中的每个待识别拼音,确定该待识别拼音对应的拼音特征值,基于每个待识别拼音对应的拼音特征值,获取与待识别拼音集合对应的待识别拼音向量,该待识别拼音向量包括每个待识别拼音对应的拼音特征值。
比如说,预先维护所有拼音中的每个拼音与拼音特征值的映射关系,假设一共存在400个拼音,则可以维护拼音1与拼音特征值1的映射关系,拼音2与拼音特征值2的映射关系,…,拼音400与拼音特征值400的映射关系。
步骤402中,针对待识别拼音集合中的每个待识别拼音,通过查询上述映射关系,可以得到与该待识别拼音对应的拼音特征值,并将待识别拼音集合中的每个待识别拼音对应的拼音特征值组成起来,得到该待识别拼音向量。
在一种可能的实施方式中,可以对所有拼音进行排序,假设一共存在400个拼音,则400个拼音的序号分别为1-400,针对每个拼音对应的拼音特征值,该拼音特征值可以是400位的数值。假设拼音的序号为n,则该拼音对应的拼音特征值中,第n位的取值是第一取值,除第n位之外的其它位的取值是第二取值。比如说,序号为1的拼音对应的拼音特征值,第1位的取值是第一取值,第2-400位的取值是第二取值;序号为2的拼音对应的拼音特征值,第2位的取值是第一取值,第1位、第3-400位的取值是第二取值,以此类推。
步骤403,将该待识别拼音向量输入给已训练的目标网络模型,以使目标网络模型输出与该待识别拼音向量对应的语音意图。示例性的,目标网络模型用于记录拼音向量与语音意图的映射关系,在将待识别拼音向量输入给目标网络模型后,目标网络模型可以输出与该待识别拼音向量对应的语音意图。
比如说,可以将待识别拼音向量输入给目标网络模型的第一个网络层,由第一个网络层对该待识别拼音向量进行处理,得到第一个网络层的输出数据,将第一个网络层的输出数据输入给目标网络模型的第二个网络层,以此类推,一直到将数据输入给目标网络模型的最后一个网络层,由最后一个网络层对数据进行处理,得到输出数据,将这个输出数据记为目标特征向量。
由于目标网络模型用于记录拼音向量与语音意图的映射关系,因此,在得到目标特征向量后,可以基于该目标特征向量查询该映射关系,得到与该目标特征向量对应的语音意图,这个语音意图可以是与该待识别拼音向量对应的语音意图,目标网络模型可以输出与该待识别拼音向量对应的语音意图。
在得到与待识别拼音向量对应的语音意图后,可以基于该语音意图对设备进行控制,对此控制方式不做限制,如语音意图是“开空调”时,打开空调。
在一种可能的实施方式中,目标网络模型输出与待识别拼音向量对应的语音意图时,还可以输出语音意图对应的概率值(如0-1之间的概率值,该概率值也可以称为置信度),例如,目标网络模型可以输出语音意图1以及语音意图1的概率值1(如0.8),语音意图2以及语音意图2的概率值2(如0.1),语音意图3以及语音意图3的概率值3(如0.08),以此类推。
基于上述输出数据,可以将概率值最大的语音意图作为与待识别拼音向量对应的语音意图,例如,将概率值最大的语音意图1作为与待识别拼音向量对应的语音意图。或者,先确定概率值最大的语音意图,确定该语音意图的概率值(即最大概率值)是否大于预设概率阈值,若是,将该语音意图作为与待识别拼音向量对应的语音意图,否则,没有与该待识别拼音向量对应的语音意图。
由以上技术方案可见,本申请实施例中,基于待识别拼音识别出语音意图,不是基于文本识别语音意图,不需要依赖语音转化为文本的准确率。基于待识别语音确定待识别拼音的准确率很高,语音意图识别的准确率很高,因此,能够准确识别出用户的语音意图,有效提高语音意图识别的准确率。比如说,用户发出待识别语音“我想看有树木的照片”,终端设备(如ipc,智能手机等)基于待识别语音确定的拼音是“wo、xiang、kan、you、shu、mu、de、zhao、pian”,即“树木”对应的拼音是“shu、mu”,从而基于上述拼音来确定语音意图,而不需要从待识别语音“我想看有树木的照片”中解析出“数目”或者“树木”,从而避免采用“数目”或“树木”确定语音意图,使得意图识别有了更强的可靠性,不需要语音识别的大量语言模型算法库,带来性能和内存的大幅度优化。
基于与上述方法同样的申请构思,本申请实施例中提出一种语音意图识别装置,参见图5a所示,为所述装置的结构示意图,所述装置可以包括:
确定模块511,用于根据待识别语音确定待识别音素集合;
获取模块512,用于获取与所述待识别音素集合对应的待识别音素向量;
处理模块513,用于将所述待识别音素向量输入给已训练的目标网络模型,以使所述目标网络模型输出与所述待识别音素向量对应的语音意图;
其中,所述目标网络模型用于记录音素向量与语音意图的映射关系。
在一种可能的实施方式中,所述待识别音素集合包括多个待识别音素,所述获取模块512获取与所述待识别音素集合对应的待识别音素向量时具体用于:
针对每个待识别音素,确定所述待识别音素对应的音素特征值;基于每个待识别音素对应的音素特征值,获取与所述待识别音素集合对应的待识别音素向量,所述待识别音素向量包括每个待识别音素对应的音素特征值。
在一种可能的实施方式中,确定模块511还用于:获取样本语音和所述样本语音对应的样本意图;根据所述样本语音确定样本音素集合;获取模块512还用于:获取与所述样本音素集合对应的样本音素向量;处理模块513还用于:将所述样本音素向量和所述样本意图输入给初始网络模型,通过所述样本音素向量和所述样本意图对初始网络模型进行训练,得到所述目标网络模型。
在一种可能的实施方式中,所述样本音素集合包括多个样本音素,所述获取模块51获取与所述样本音素集合对应的样本音素向量时具体用于:
针对每个样本音素,确定所述样本音素对应的音素特征值;
基于每个样本音素对应的音素特征值,获取与所述样本音素集合对应的样本音素向量,所述样本音素向量包括每个样本音素对应的音素特征值。
基于与上述方法同样的申请构思,本申请实施例中提出一种语音意图识别装置,参见图5b所示,为所述装置的结构示意图,所述装置可以包括:
确定模块521,用于根据待识别语音确定待识别拼音集合;
获取模块522,用于获取与所述待识别拼音集合对应的待识别拼音向量;
处理模块523,用于将所述待识别拼音向量输入给已训练的目标网络模型,以使所述目标网络模型输出与所述待识别拼音向量对应的语音意图;
其中,所述目标网络模型用于记录拼音向量与语音意图的映射关系。
在一种可能的实施方式中,所述待识别拼音集合包括多个待识别拼音,所述获取模块522获取与所述待识别拼音集合对应的待识别拼音向量时具体用于:针对每个待识别拼音,确定所述待识别拼音对应的拼音特征值;基于每个待识别拼音对应的拼音特征值,获取与所述待识别拼音集合对应的待识别拼音向量,所述待识别拼音向量包括每个待识别拼音对应的拼音特征值。
在一种可能的实施方式中,确定模块521还用于:获取样本语音和所述样本语音对应的样本意图;根据所述样本语音确定样本拼音集合;获取模块522还用于:获取与所述样本拼音集合对应的样本拼音向量;处理模块523还用于:将所述样本拼音向量和所述样本意图输入给初始网络模型,通过所述样本拼音向量和所述样本意图对初始网络模型进行训练,得到所述目标网络模型。
在一种可能的实施方式中,所述样本拼音集合包括多个样本拼音,所述获取模块522获取与所述样本拼音集合对应的样本拼音向量时具体用于:
针对每个样本拼音,确定所述样本拼音对应的拼音特征值;
基于每个样本拼音对应的拼音特征值,获取与所述样本拼音集合对应的样本拼音向量,所述样本拼音向量包括每个样本拼音对应的拼音特征值。
基于与上述方法同样的申请构思,本申请实施例中提出一种语音意图识别设备,参见图6所示,所述语音意图识别设备包括:处理器61和机器可读存储介质62,所述机器可读存储介质62存储有能够被所述处理器61执行的机器可执行指令;所述处理器61用于执行机器可执行指令,以实现如下步骤:
根据待识别语音确定待识别音素集合;
获取与所述待识别音素集合对应的待识别音素向量;
将所述待识别音素向量输入给已训练的目标网络模型,以使所述目标网络模型输出与所述待识别音素向量对应的语音意图;
其中,所述目标网络模型用于记录音素向量与语音意图的映射关系;
或者,根据待识别语音确定待识别拼音集合;
获取与所述待识别拼音集合对应的待识别拼音向量;
将所述待识别拼音向量输入给已训练的目标网络模型,以使所述目标网络模型输出与所述待识别拼音向量对应的语音意图;
其中,所述目标网络模型用于记录拼音向量与语音意图的映射关系。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的语音意图识别方法。
其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除