语音识别的方法、装置、设备及计算机可读存储介质与流程
本申请涉及人工智能技术领域,特别涉及语音识别的方法、装置、设备及计算机可读存储介质。
背景技术:
随着人工智能技术的发展,人工智能系统被广泛应用于生活领域,语音识别系统就是其中一种。使用时,用户向语音识别系统发出语音指令,语音识别系统需要对语音指令进行语音识别,理解用户指令,并基于用户指令对用户进行提问。之后,识别用户针对该提问发出的回复语音,理解用户回复,并提供用户回复指示的服务,从而满足用户需求。因此,如何进行语音识别,是满足用户需求的关键。
相关技术提供一种语音识别的方法,该方法在调用语言模型识别语音指令,并理解用户指令之后,一方面向用户发出提问;另一方面根据提问调整语言模型,如将与该提问相关的词汇集整合入语言模型,使得调整后的语言模型可以识别词汇集中的词汇。当用户使用词汇集中的词汇发出回复语音后,调整后的语言模型便可以识别该回复语音,从而满足用户需求。
发明人发现相关技术至少存在以下问题:
除了语音指令、回复语音以外,用户还可能会发出与第三方交流的无关语音。例如,作为典型的多用户场景、多情景场景,在用户与汽车或者电动车内的车载模块进行语音交互时,无关语音很可能包括用户与其他用户的插话,或者其他用户插入的语音等。车载模块的语音识别系统会将这些无关语音也作为语音指令或回复语音进行识别及理解,使得提供的服务偏离用户需求,用户使用体验差。
技术实现要素:
本申请实施例提供了一种语音识别的方法、装置、设备及计算机可读存储介质,以解决相关技术识别效果差、用户使用体验差的问题,技术方案如下:
一方面,提供了一种语音识别的方法,所述方法包括:根据对第一意图的回复信息获取或生成动态目标语言模型,由于所述动态目标语言模型包括前端部分和核心部分,所述核心部分用于确定对所述回复信息相关的可能描述,所述前端部分用于确定对所述回复信息的确认性信息的描述;因而获取语音信号,解析所述语音信号生成关键词之后,可调用所述动态目标语言模型确定第二意图和服务内容,其中,所述动态目标语言模型的所述前端部分根据所述关键词解析出所述第二意图,所述动态目标语言模型的核心部分根据所述关键词解析出所述服务内容。
以用户与车载模块之间进行对话的语音识别场景为例,第一意图包括用户与车载模块的语音对话开始之后,对用户的语音信号进行解析所得到的意图。第一意图的回复信息包括车载模块针对第一意图返回给用户的一项或多项回复信息,车载模块根据对第一意图的回复信息获取包括前端部分及核心部分的动态目标语言模型。车载模块将一项或多项回复信息返回给用户之后,车载模块会再次获取语音信号。需要说明的是,车载模块再次获取的语音信号可能包括用户与车载模块对话的语音信号,即与回复信息相关的语音信号,以及用户与其他用户对话的无关语音信号。
之后,车载模块解析所获取的语音信号生成关键词,调用动态目标语言模型,从生成的关键词中解析出与回复信息相关的那部分词汇。动态目标语言模型包括前端部分和核心部分,前端部分用于确定用户对回复信息的确认性信息的描述,确认性信息可包括确认、修正以及取消等信息。通过前端部分解析关键词可得到用户的第二意图,例如,若第一意图的回复信息的数量包括一项,而前端部分解析关键词得到的确认性信息包括确认信息“对,没错”,则可确认用户的第二意图即为第一意图的回复信息所指示的意图。
核心部分用于确定对与回复信息相关的可能描述,通过核心部分可从关键词中解析出用户对回复信息进行描述所使用的词汇,从而基于该词汇得到服务内容,以向用户提供该服务内容所指示的服务。在本实施例中,可以由第三方云服务提供服务内容所指示的服务,也可以由车载模块提供服务内容所指示的服务,也可以由车载终端提供服务内容所指示的服务,还可以由车企提供服务内容所指示的服务。其中,车载终端可以是车辆上除车载模块以外的其他终端,如车载显示屏、车载空调、车载扬声器等等。当然,也可以由第三方云服务、车载模块、车载终端和车企中的两个以上的执行主体共同提供服务内容所指示的服务。需要说明的是,由于动态目标语言模型的前端部分以及核心部分均为根据回复信息获取的,因而通过前端部分得到的第二意图、以及通过核心部分得到的服务内容均与第一意图相关,而与第一意图无关的语音信号则被忽略。因此,本申请实施例进行语音识别的效果较好,避免了由于无关语音信号的干扰而导致提供的服务偏离用户需求,提高了用户的使用体验。
可选地,所述动态目标语言模型还包括接尾部分,所述接尾部分用于确认是否存在附加意图,所述方法还包括:调用所述动态目标语言模型确定附加意图,所述动态目标语言模型的所述接尾部分根据所述关键词解析出所述附加意图。
可选地,所述接尾部分包括接尾标志词;所述调用所述动态目标语言模型确定附加意图,所述动态目标语言模型的所述接尾部分根据所述关键词解析出所述附加意图,包括:所述接尾部分根据所述关键词解析出参考接尾标志词,以及所述参考接尾标志词所在的时间点;基于所述参考接尾标志词,结合所述第一意图和所述第二意图,更新所述动态目标语言模型,得到更新后的目标语言模型;调用所述更新后的目标语言模型,根据所述关键词和所述参考接尾标志词所在的时间点解析出所述附加意图。通过解析出附加意图,可进一步提供更准确的服务。
可选地,所述获取语音信号之前,所述方法还包括:缓存历史语音信号;所述解析所述语音信号生成关键词,包括:解析所述语音信号,利用所述历史语音信号进行上下文检测后生成所述关键词。通过历史语音信号进行上下文检测,可使得识别出的关键词更加贴合当前的场景,从而进一步提高语音识别的准确性。
可选地,所述调用所述动态目标语言模型确定第二意图和服务内容之后,所述方法还包括:确认所述第二意图,得到确认后的第二意图。
可选地,所述确认所述第二意图,得到确认后的第二意图,包括:向用户发送所述第二意图的确认信息,获取用户反馈的第二意图,将所述用户反馈的第二意图作为确认后的第二意图。通过对第二意图进行确认,使得第二意图更加准确,从而提供更准确的服务内容。
可选地,所述根据对第一意图的回复信息获取动态目标语言模型,包括:将所述第一意图的回复信息转换为参考格式,得到参考格式的回复信息,根据所述参考格式的回复信息获取或生成所述动态目标语言模型。由于不同的供应商可能提供不同格式的回复信息,因而将回复信息转换为参考格式,从而使得回复信息格式统一,以便于回复信息的接收。对于不同的应用领域,将回复信息转换为不同的参考格式,以使同一应用领域中的回复信息格式相同。
可选地,所述根据所述参考格式的回复信息获取或生成所述动态目标语言模型,包括:将已训练的语言模型转化为加权有限状态转换自动机模型,将所述加权有限状态转换自动机模型作为所述动态目标语言模型,其中所述已训练的语言模型由所述参考格式的回复信息以及参考词汇训练获得。其中,参考词汇包括但不限于参考格式的回复信息中的词汇对应的类名,以及指代性表达词。
可选地,所述根据所述参考格式的回复信息获取或生成所述动态目标语言模型,包括:将已训练的语言模型转化为加权有限状态转换自动机模型,将所述加权有限状态转换自动机模型作为第一语言模型,其中所述已训练的语言模型由长度不低于参考长度的参考格式的回复信息训练获得;根据长度低于参考长度的参考格式的回复信息获取第二语言模型,根据参考词汇获取第三语言模型;合并所述第一语言模型、所述第二语言模型和所述第三语言模型,得到总语言模型,将所述总语言模型作为所述动态目标语言模型。
可选地,所述根据所述参考格式的回复信息获取或生成所述动态目标语言模型,包括:基于长度不低于参考长度的参考格式的回复信息获取词混淆网络,所述词混淆网络中的每个词汇有一转移概率;计算每个词汇的惩罚权重,根据所述每个词汇的惩罚权重将所述词混淆网络转化为加权有限状态转换自动机模型,将所述加权有限状态转换自动机模型作为第一语言模型;根据长度低于参考长度的参考格式的回复信息获取第二语言模型,根据参考词汇获取第三语言模型;合并所述第一语言模型、所述第二语言模型和所述第三语言模型,得到总语言模型,将所述总语言模型作为所述动态目标语言模型。
可选地,所述计算每个词汇的惩罚权重,包括:对于任一词汇,将所述词汇的转移概率的负对数值作为所述惩罚权重。词汇的转移概率用于指示该词汇在该词汇所在的类别中的出现频率,则词汇在所在的类别中的出现频率越高,转移概率越大,转移概率的负对数值越小,即惩罚权重反比于出现频率,以便目标语言模型能够更好的解析出在所在的类别中出现频率较高的词汇。
可选地,所述计算每个词汇的惩罚权重,包括:对于任一词汇,将包含所述词汇的参考格式的回复信息的项数的对数值作为所述惩罚权重。对区分性较强的词汇,即包含该词汇的参考格式的回复信息的数量较少的词汇给予较小的惩罚权重,以便目标语言模型能够更好的解析出这些区分性较强的词汇。
可选地,所述计算每个词汇的惩罚权重,包括:对于任一词汇,将所述词汇在所述参考格式的回复信息中的出现次数的对数值作为所述惩罚权重。对于区分性较强的词汇,即出现次数越少的词汇,词汇的惩罚概率越小,以便动态目标语言模型能够更好的解析出区分性较强的词汇。
一方面,提供了一种语音识别的装置,所述装置包括:第一获取模块,根据对第一意图的回复信息获取或生成动态目标语言模型,所述动态目标语言模型包括前端部分和核心部分,所述核心部分用于确定对所述回复信息相关的可能描述,所述前端部分用于确定对所述回复信息的确认性信息的描述;第二获取模块,用于获取语音信号,解析所述语音信号生成关键词;第一确定模块,用于调用所述动态目标语言模型确定第二意图和服务内容,其中所述动态目标语言模型的所述前端部分根据所述关键词解析出所述第二意图,所述动态目标语言模型的核心部分根据所述关键词解析出所述服务内容。
可选地,所述动态目标语言模型还包括接尾部分,所述接尾部分用于确认是否存在附加意图,所述装置还包括:第二确定模块,用于调用所述动态目标语言模型确定附加意图,所述动态目标语言模型的所述接尾部分根据所述关键词解析出所述附加意图。
可选地,所述接尾部分包括接尾标志词;所述第二确定模块,用于所述接尾部分根据所述关键词解析出参考接尾标志词,以及所述参考接尾标志词所在的时间点;基于所述参考接尾标志词,结合所述第一意图和所述第二意图,更新所述动态目标语言模型,得到更新后的目标语言模型;调用所述更新后的目标语言模型,根据所述关键词和所述参考接尾标志词所在的时间点解析出所述附加意图。
可选地,所述装置还包括:缓存模块,用于缓存历史语音信号;所述第二获取模块,用于解析所述语音信号,利用所述历史语音信号进行上下文检测后生成所述关键词。
可选地,所述装置还包括:确认模块,用于确认所述第二意图,得到确认后的第二意图。
可选地,所述确认模块,用于向用户发送所述第二意图的确认信息,获取用户反馈的第二意图,将所述用户反馈的第二意图作为确认后的第二意图。
可选地,所述第一获取模块,用于将所述第一意图的回复信息转换为参考格式,得到参考格式的回复信息,根据所述参考格式的回复信息获取或生成所述动态目标语言模型。
可选地,所述第一获取模块,用于将已训练的语言模型转化为加权有限状态转换自动机模型,将所述加权有限状态转换自动机模型作为所述动态目标语言模型,其中所述已训练的语言模型由所述参考格式的回复信息以及参考词汇训练获得。
可选地,所述第一获取模块,用于将已训练的语言模型转化为加权有限状态转换自动机模型,将所述加权有限状态转换自动机模型作为第一语言模型,其中所述已训练的语言模型由长度不低于参考长度的参考格式的回复信息训练获得;根据长度低于参考长度的参考格式的回复信息获取第二语言模型,根据参考词汇获取第三语言模型;合并所述第一语言模型、所述第二语言模型和所述第三语言模型,得到总语言模型,将所述总语言模型作为所述动态目标语言模型。
可选地,所述第一获取模块,包括:第一获取单元,用于基于长度不低于参考长度的参考格式的回复信息获取词混淆网络,所述词混淆网络中的每个词汇有一转移概率;计算单元,用于计算每个词汇的惩罚权重,根据所述每个词汇的惩罚权重将所述词混淆网络转化为加权有限状态转换自动机模型,将所述加权有限状态转换自动机模型作为第一语言模型;第二获取单元,用于根据长度低于参考长度的参考格式的回复信息获取第二语言模型,根据参考词汇获取第三语言模型;合并单元,用于合并所述第一语言模型、所述第二语言模型和所述第三语言模型,得到总语言模型,将所述总语言模型作为所述动态目标语言模型。
可选地,所述计算单元,用于对于任一词汇,将所述词汇的转移概率的负对数值作为所述惩罚权重。
可选地,所述计算单元,用于对于任一词汇,将包含所述词汇的参考格式的回复信息的数量的对数值作为所述惩罚权重。
可选地,所述计算单元,用于对于任一词汇,将所述词汇在所述参考格式的回复信息中的出现次数的对数值作为所述惩罚权重。
一方面,提供了一种语音识别的设备,所述设备包括:存储器及处理器;所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现上述本申请实施例第一方面或者第一方面的任一种可能的实施方式中的方法。
可选地,所述处理器为一个或多个,所述存储器为一个或多个。
可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(readonlymemory,rom),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
另一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储程序或指令,所述指令由处理器加载并执行上述任一种语音识别的方法。
还提供了一种计算机程序(产品),所述计算机程序(产品)包括:计算机程序代码,当所述计算机程序代码被计算机运行时,使得所述计算机执行上述任一种语音识别的方法。
还提供了一种芯片,包括处理器,处理器用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行上述任一种语音识别的方法。
还提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述任一种语音识别的方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例根据第一意图的回复信息获取或生成包括前端部分和核心部分的动态目标语言模型,解析语音信号得到关键词后,再调用动态目标语言模型解析关键词得到第二意图和服务内容。由于动态目标语言模型是根据第一意图的回复信息所获取的,因而通过动态目标语言模型解析得到的第二意图和服务内容均与第一意图相关。因此,本申请实施例实现了与第一意图无关的语音的忽略,即能够对非连续多意图的语音进行识别,避免了提供的服务内容偏离用户需求,识别效果好,提升了用户的使用体验。
附图说明
图1为本申请实施例提供的实施环境的示意图;
图2为本申请实施例提供的实现语音识别的方法的模块结构图;
图3为本申请实施例提供的语音识别的方法流程图;
图4为本申请实施例提供的语言模型的结构示意图;
图5为本申请实施例提供的语音识别的流程示意图;
图6为本申请实施例提供的语言模型的结构示意图;
图7为本申请实施例提供的语言模型的结构示意图;
图8为本申请实施例提供的词混淆网络的结构示意图;
图9为本身实施例提供的语音识别的装置的结构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
随着人工智能技术的发展,人工智能系统被广泛应用于生活领域,语音识别系统就是其中一种。使用时,用户向语音识别系统发出语音指令,语音识别系统需要对语音指令进行语音识别,理解用户指令,并基于用户指令对用户进行提问。之后,识别用户针对该提问发出的回复语音,理解用户回复,并提供用户回复指示的服务,从而满足用户需求。因此,如何进行语音识别,是满足用户需求的关键。
相关技术提供一种语音识别的方法,该方法在调用语言模型识别语音指令,并理解用户指令之后,一方面向用户发出提问;另一方面根据提问调整语言模型,如将与该提问相关的词汇集整合入语言模型,使得调整后的语言模型可以识别词汇集中的词汇。当用户使用词汇集中的词汇发出回复语音后,调整后的语言模型便可以识别该回复语音,从而满足用户需求。
然而,用户发出的语音常常较为灵活。例如,在多用户的车载导航场景中,用户与车载模块可能会发生如下的语音对话:
用户;(对车载模块)帮我找一下附近的川菜馆。
车载模块:(对用户)您要去川菜馆a吗?
用户:(对车内其他用户)这个时段正好是中午,停车会不会有问题?(对车载模块)对,就是川菜馆a。
使用相关技术提供的方法进行该对话,则车载模块的语音识别系统基于语音指令进行提问后,可将提问中涉及的词汇“川菜馆a”整合入语言模型,得到调整后的语言模型。之后,若用户使用“川菜馆a”发出回复语音“对,就是川菜馆a”,则调整后的语言模型可以识别该回复语音。而在上述对话中,用户先发出了与车内其他用户交流的无关语音,因而调整后的语言模型会将该无关语音也作为回复语音进行识别,从而导致理解错误。可以看出,相关技术提供的语音识别方法识别效果较差,用户使用体验差。
本申请实施例提供了一种语音识别的方法,该方法可应用于如图1所示的实施环境中。图1中,包括音频设备、存储器以及中央处理器(centralprocessingunit,cpu)。其中,音频设备包括麦克风阵列(microphonearray)和扬声器(speaker),存储器内存储有用于进行语音识别的模块的程序或指令。音频设备、存储器以及cpu通过数据总线(databus,d-bus)通信连接,以使cpu调用麦克风阵列采集用户发出的语音信号、基于采集的语音信号运行存储器内存储的各模块的程序或指令以及调用扬声器根据运行结果向用户发出语音信号。
另外,参见图1,cpu也可以通过网关(gateway)访问云服务,以获取云服务返回的数据。cpu还可以通过网关访问控制器局域网络总线(controllerareanetworkbus,can-bus),从而实现对其他设备状态的读取和控制。
可选地,图1所示的实施环境示意图中,存储器内存储的用于进行语音识别的模块的程序或指令包括:图2中的环形语音缓存模块、am模块、sl模块、dynamiclm模块、slu模块、dm模块以及ncm流程等程序或指令,由图1中的cpu运行存储器上的各个模块的程序或指令,从而实现语音识别。接下来,结合图2所示的实现本实施例提供的语音识别的方法的模块功能,对语音识别的流程进行说明:
前端语言(front-endspeech)模块:用于区分用户发出的语音信号与路噪、音乐等非语音信号,还用于对用户发出的语音信号进行降噪、增强等处理,以提高后续识别及理解的准确性。
环形语音缓存(circularbuffer)模块:用于缓存经过前端语言模型处理的语音信号,以便存储的语音信号能够被多次识别及理解。环形语言缓存具有参考时间长度,当缓存的语音信号的时间长度大于参考时间长度时,存储时间最长的语音信号会被新的语音信号覆盖。
声学模型(acousticmodel,am)模块:用于获取环形语音缓冲模块中存储的语音信号,将语音信号转换成音素序列。
选择听写(selectivelistening,sl)模块:用于调用动态语言模型(dynamiclanguagemodel,dynamiclm)模块,将am模型输出的音素序列转换为关键词,将关键词发送给口语理解(spokenlanguageunderstanding,slu)模块。
slu模块:用于从关键词中提取意图及语义槽,以理解用户的语音信号指示的第一意图、第二意图及附加意图。
对话管理(dialoguemanager,dm)模块:用于根据第一意图向云服务请求回复信息。
应用管理(applicationmanager,appmanager)模块:用于将云服务(cloudservice)返回的回复信息转换成参考格式的回复信息。
对话管理(dialoguemanager,dm)模块:还用于根据appmanager模块返回的参考格式的回复信息来启动相关领域的非连贯多意图(non-continuousmulti-intent,ncm)流程,以及控制答复生成(responsegenerator,rg)模块生成回复内容并进行语音播放。还用于根据第二意图及附加意图向appmanager模块发送指令,以控制应用或终端设备来执行服务内容及附加意图。
应用管理(applicationmanager,appmanager)模块:还用于对回复信息进行分词标注及专有名词标注。还用于根据dm模块发送的指令管理应用及终端设备,以控制应用或终端设备来执行服务内容及附加意图。
基于上述图1所示的实施环境,参见图3,本申请实施例提供了一种语音识别的方法。如图3所示,该方法包括:
步骤201,根据对第一意图的回复信息获取或生成动态目标语言模型,动态目标语言模型包括前端部分和核心部分,核心部分用于确定对回复信息相关的可能描述,前端部分用于确定对回复信息的确认性信息的描述。
其中,第一意图是指用户与系统之间的语音对话开始之后,对用户的语音指令信号进行解析所得到的意图。以上述语音对话为例,用户的语音指令信号即为用户所发出的“帮我找一下附近的川菜馆”的语音。对语音指令信号进行解析包括:调用声学模型将语音指令信号转换为音素序列,音素是一种语言的最小语音单位,例如在汉语中,音素是指声母或韵母。之后,调用语言模型将音素序列转换为文字序列,该文字序列即为语音指令。该语言模型是指已根据训练集训练过的语言模型,可根据语音识别所应用的领域调用合适的语言模型。
得到文字序列后,可对该文字序列进行解析得到第一意图。其中,第一意图包括意图及语义槽,语义槽是指文字序列中的具有明确定义或概念的词汇。仍以上述语音对话为例,文字序列为“帮我找一下附近的川菜馆”,则解析得到的意图为“导航”,语义槽为“附近”及“川菜馆”,从而得到第一意图为“导航去附近的川菜馆”。之后,便可根据得到的第一意图获取第一意图的回复信息,该第一意图的回复信息内容满足语义槽的要求。其中,对于回复信息的获取方式,可将第一意图发送给云服务,从而获取云服务返回的回复信息。或者,也可在存储器中存储多个意图与回复信息的映射关系,根据映射关系查找与第一意图对应的回复信息,以实现回复信息的获取。
需要说明的是,无论采用哪种方式来获取回复信息,该回复信息均可以为一项或多项,每项回复信息均为一个文字串。并且,若有多项回复信息,则多项回复信息均可作为待选项,以便用户从中选择。仍以上述语音对话为例,回复信息可以为一项“川菜馆a”,也可以为多项如“川菜馆a”、“川菜馆b”及“川菜馆c”。本实施例中不对回复信息的项数进行限定。
接着,便可基于所获取的第一意图的回复信息来获取或生成动态目标语言模型,动态目标语言模型包括前端部分和核心部分。前端部分用于确定对回复信息的确认性信息的描述,确认性信息包括但不限于确认、修正或取消等信息。例如,确认信息可包括“对”、“没错”,修正信息可包括“不对”、“错了”,取消信息可包括“算了”、“不用了”。而核心部分用于确定对回复信息相关的可能描述,例如用户直接复述回复信息或者用户选择性地复述回复信息等描述。
需要说明的是,基于回复信息获取或生成动态目标语言模型的过程在后文会加以详细说明,此处先不进行赘述。当然,无论通过怎样的过程实现动态目标语言模型的获取或生成,在通过获取或生成得到动态目标语言模型之后,便可进一步接收语音信号。
步骤202,获取语音信号,解析语音信号生成关键词。
其中,车载模块在获取对第一意图的回复信息之后,除了根据对第一意图的回复信息获取或生成动态目标语言模型以外,还将对第一意图的回复信息发送给用户,以获取语音信号。需要说明的是,语音信号既可能包括用户与车载模块对话的语音信号,即针对第一意图的回复信息的语音信号,也可能包括用户与其他用户对话的无关语音信号。仍以上述语音对话为例,用户与车载模块对话的语音信号为“对,就是川菜馆a”,而用户与其他用户对话的无关语音信号为“这个时段正好是中午,停车会不会有问题”。当然,对于上述无关语音信号,除了包括用户主动与其他用户对话的语音信号,也可以包括其他用户主动与用户对话的语音信号,即其他用户插话的语音信号,本实施例不对无关语音信号加以限定。
车载模块获取语音信号之后,便可解析语音信号生成关键词。可选地,在本实施例中,获取语音信号之前,方法还包括:缓存历史语音信号。则解析语音信号生成关键词包括:解析语音信号,利用历史语音信号进行上下文检测后生成关键词。
其中,历史语音信号即为过往时间的语音信号,例如在上述语音对话中,用于获取第一意图的语音指令信号“帮我找一下附近的川菜馆”便可以作为历史语音信号。在本实施例中,可通过环形缓存来缓存历史语音信号,环形缓存具有参考时间长度,若缓存的历史语音信号的时间长度多于参考时间长度,则缓存时间最长的历史语音信号会被新的语音信号覆盖。则若需要利用历史语音信号,从环形缓存中读取历史语音信号即可。当然,本实施例不对缓存历史语音信号的方式加以限定,可根据需要选择其他方式来实现历史语音的缓存。
进一步地,对于语音信号的解析方式,车载模块仍可根据语音识别所应用的领域来调用合适的声学模型以及语言模型,通过声学模型以及语言模型来解析语音信号,得到初始关键词。其中,由于用户与车载模块对话的语音信号针对第一意图的回复信息,因而解析用户与车载模块对话的语音信号所生成的初始关键词与第一意图相关,而解析用户与其他用户对话的无关语音信号所生成的初始关键词与第一意图无关。因此,需要利用历史语音信号进行上下文检测,以使得基于初始关键词生成的关键词仅与第一意图相关,也就是忽略那些与第一意图无关的初始关键词。
对于利用历史语音信号进行上下文检测的方式,可以包括:检测初始关键词中与历史语音信号相关的关键词,从而将与历史语音信号所对应的文字序列相关的关键词作为生成的关键词。例如,对于语音信号“这个时段正好是中午,停车会不会有问题?对,就是川菜馆a”进行解析,得到的初始关键词包括“中午”、“停车”、“对,就是”以及“川菜馆a”。在初始关键词中,与历史语音信号“帮我找一下附近的川菜馆”相关的关键词包括“对,就是”以及“川菜馆a”,因此,可忽略“中午”及“停车”,而仅将“对,就是”以及“川菜馆a”作为生成的关键词。
当然,本实施例对利用历史语音信号进行上下文检测的方式不加以限定,无论采用何种方式进行检测生成关键词,在生成关键词之后,便可触发调用动态目标语言模型来解析关键词,从而确定第二意图和服务内容,详见步骤203。
步骤203,调用动态目标语言模型确定第二意图和服务内容,其中动态目标语言模型的前端部分根据关键词解析出第二意图,动态目标语言模型的核心部分根据关键词解析出服务内容。
根据步骤201中的说明可知,动态目标语言模型包括前端部分和核心部分。由于动态目标语言模型是通过对第一意图的回复信息获取的,因而通过动态目标语言模型确定的第二意图和服务内容均与第一意图相关。其中,前端部分用于确定对回复信息的确认性信息的描述,因此通过前端部分解析关键词可得到关键词中的确认性信息,进而通过关键词中的确认性信息获取用户的第二意图。以上述语音对话为例,对第一意图的回复信息为“您要去川菜馆a吗”,解析得到的关键词为“对,就是”以及“川菜馆a”,则通过前端部分可解析得到关键词中的“对,就是”,即可得到用户的第二意图为“去川菜馆a”。另外,还通过核心部分解析得到关键词中的“川菜馆a”,结合当前的车载导航场景,从而得到服务内容为“导航去川菜馆a”。
可以看出,在对第一意图的回复信息仅包括一项的情况下,通过前端部分便能确定用户的第二意图。而在对第一意图的回复信息包括两项或多项的情况下,则需要通过前端部分与核心部分来确定用户的第二意图。例如,若对第一意图的回复信息为“您要选择下面的哪个?第一项为川菜馆a、第二项为川菜馆b”,而解析得到的关键词仍为“对,就是”以及“川菜馆a”,则通过前端部分仍可解析得到关键词中的确认性信息“对,就是”。但是,仅通过“对,就是”无法确定用户的第二意图是“川菜馆a”还是“川菜馆b”。因此,还需要通过核心部分解析得到关键词中的“川菜馆a”,从而最终确定用户的第二意图为“去川菜馆a”,以及服务内容为“导航去川菜馆a”。
需要说明的是,若前端部分解析关键词得到的确认性信息包括确认信息,例如上述语音对话中的“对,就是”,则可进一步通过核心部分来解析关键词得到服务内容。若前端部分解析关键词得到的确认性信息包括修正信息或者取消信息,如“不是”、“不对”等词汇,则说明用户不认可回复信息,可能未针对回复信息做出答复,则无需通过核心部分进行解析得到服务内容,而是重新获取其他回复信息,基于其他回复信息获取新的动态目标语言模型,以通过新的动态目标语言模型来完成语音识别。
当然,除了第二意图和服务内容以外,调用动态目标语言模型还可得到第二意图和服务内容的置信度、语音信号中的静音信号段等信息,其中置信度用于指示第二意图和服务器内容的准确程度。
在得到第二意图和服务内容之后,便可触发提供服务内容所指示的服务。例如上述语音对话中的服务内容为“导航去川菜馆a”,则执行服务内容包括调用导航设备将用户由当前位置(即发生上述语音对话的位置)导航至“川菜馆a”所在的位置。
在一种可选的实施方式中,执行服务内容之前,本实施例所提供的方法还包括:确认第二意图,得到确认后的第二意图;执行确认后的第二意图。在该实施方式中,考虑到虽然动态目标语言模型是根据对第一意图的回复信息来获取或生成的,但通过动态目标语言模型确定的第二意图和服务内容仍有可能与第一意图不一致。因此,在执行服务内容之前,先对第二意图进行确认,以确保第二意图与第一意图相一致。在得到确认后的第二意图后,再对确认后的第二意图进行执行。
其中,第二意图与第一意图相一致包括但不限于:第二意图与第一意图的回复信息对应(如第二意图“去川菜馆a”与第一意图的回复信息“川菜馆a”对应)。或者,第二意图满足第一意图所包括的条件限制(如第二意图“去川菜馆a”满足第一意图所包括的距离条件限制“附近”)。
可选地,对于确认第二意图,得到确认后的第二意图的方式,包括:向用户发送第二意图的确认信息,获取用户反馈的第二意图,将用户反馈的第二意图作为确认后的第二意图。
根据以上说明可知,通过动态目标语言模型可得到第二意图和服务内容的置信度,因而本实施例可针对不同置信度向用户发送不同的确认信息,以实现第二意图的确认。以第二意图为“去川菜馆a”为例,若置信度高于阈值,则说明根据第二意图较为可信,因而可采用间接确认的方式进行确认。例如,将默认第二意图正确的语音“您选择了川菜馆a”作为第二意图的确认信息向用户发送,以获取用户返回的第二意图。若置信度不高于阈值,则说明第二意图的可信度较低,因而采用直接确认的方式进行确认。例如,向用户发送“您确认选择川菜馆a吗”的语音。
上述间接确认方式及直接确认方式中发送的确认信息均为语音确认信息,若通过语音确认信息仍无法获取用户反馈的第二意图,可选择其他形式的确认信息,如文字确认信息来向用户确认第二意图。可选地,通过终端向用户显示针对第一意图的回复信息,以便用户通过终端选择任一回复信息,将用户所选择的回复信息指示的意图作为确认后的第二意图,执行该确认后的第二意图,从而完成语音识别。
接下来,对上述语音对话进行扩展,得到如下的复杂对话:
用户;(对车载模块)帮我找一下附近的川菜馆。
车载模块:(对用户)您要去川菜馆a吗?
用户:(对车内其他用户)这个时段正好是中午,停车会不会有问题?(对车载模块)对,就是川菜馆a,再帮我找个停车位。
可以看出,在该复杂对话中,在用户表达“对,就是川菜馆a”之后,还表达了附加意图“再帮我找个停车位”,从而使得该复杂对话形成多意图对话。
对此,在一种可选的实施方式中,动态目标语言模型还包括接尾部分,接尾部分用于确认是否存在附加意图。因此,本实施例所提供的方法还包括:调用动态目标语言模型确定附加意图,其中动态目标语言模型的接尾部分根据关键词解析出附加意图,从而识别出如上的多意图对话中的每个意图。
在该实施方式中,除了通过前端部分得到第二意图、通过核心部分得到服务内容以外,还通过接尾部分解析关键词得到附加意图。其中,前端部分、核心部分及接尾部分的示意图可参见图4。图4中,超词汇(outofvocabulary,oov)表示词典以外的词汇,词典用于基于音素序列得到字词。eps表示跳跃边,用于指示可选部分。
可选地,接尾部分包括接尾标志词,接尾标志词包括但不限于“再”、“还有”和“顺便”等词汇,例如在上述多意图对话中接尾标志词便为“再”。由于用户对于接尾标志词的描述常常较为固定,因而可将包括多个接尾标志词的集合作为语料来训练语言模型,将训练过的语言模型作为接尾部分。因此,调用动态目标语言模型确定附加意图,其中动态目标语言模型的接尾部分根据关键词解析出附加意图,包括:接尾部分根据关键词解析出参考接尾标志词,以及参考接尾标志词所在的时间点;基于参考接尾标志词,结合第一意图和第二意图,更新动态目标语言模型,得到更新后的目标语言模型;调用更新后的目标语言模型,根据关键词和参考接尾标志词所在的时间点解析出附加意图。
其中,参考接尾标志词是作为语料的多个接尾标志词的集合中的一个。若不存在参考接尾标志词,则说明不存在附加意图,则可直接提供上述服务内容所指示的服务;若存在参考接尾标志词,则说明存在附加意图,此时接尾部分还获取参考接尾标志词所在的时间点。
若存在参考接尾标志词,还根据第一意图和第二意图调用语言模型,该语言模型可以是第一意图和第二意图所在领域的语言模型,例如上述多意图对话中第一意图和第二意图所在的领域均为“导航”,则可获取导航领域的语言模型代替动态目标语言模型,从而得到更新后的目标语言模型。
之后,调用更新后的目标语言模型,解析参考接尾标志词所在的时间点之后的关键词,从而获取用户的附加意图。例如在上述多意图语音对话中,参考接尾标志词为“再”。其中,“再”所在的时间点之前的语音信号为“这个时段正好是中午,停车会不会有问题?对,就是川菜馆a”所包括的关键词已被动态目标语言模型中的前端部分及核心部分解析过。因此可调用更新后的目标语言模型解析“再”所在的时间点之后的语音信号所包括的关键词,即“帮我找个停车位”中所包括的关键词,从而获取用户的附加意图。
需要说明的是,本实施例还提供另一种更新目标语言模型的方法如下:在根据第一意图和第二意图获取语言模型之后,将该语言模型及接尾部分的合并模型作为更新后的目标语言模型。因此,参见图5,更新后的目标语言模型可在解析得到一个附加意图之后,循环迭代检测是否存在更多的附加意图,提高了能够识别的意图数量。
另外,若附加意图存在,则在通过更新后的目标语言模型解析得到附加意图后,采用如下的方法来执行第二意图,方法包括:若附加意图存在,执行服务内容与附加意图。其中,在得到服务内容之后,不立即对服务内容进行执行,而是先通过接尾部分确认语音信号中是否存在附加意图,若存在附加意图,则对附加意图进行获取,最后对服务内容与附加意图进行执行。若通过接尾信息确认语音信号中不存在附加意图,才执行得到的服务内容。
进一步地,对服务内容与附加意图进行执行包括:合并执行服务内容与附加意图,或者,依次执行服务内容与附加意图。例如,服务内容为“导航去川菜馆a”,附加意图为“播放歌曲”,则可在执行服务内容的过程中执行附加意图,即合并执行了服务内容与附加意图。若服务内容为“导航去川菜馆a”,附加意图为“寻找停车位”,则需要依次执行服务内容与附加意图。另外,对于不同的服务内容与附加意图,可以由不同的执行主体来执行。例如,可以由第三方云服务执行,也可以由车载模块来执行,还可以由车载终端来执行,还可以由车企来执行。其中,车载终端可以是车辆上除车载模块以外的其他终端,如车载显示屏、车载空调、车载扬声器等等。当然,也可以由第三方云服务、车载模块、车载终端和车企中的两个以上的执行主体共同执行,本申请实施例对此不加以限定。
接下来,对以上步骤201中所提到的根据对第一意图的回复信息获取或生成动态目标语言模型的过程加以详细说明。可选地,根据对第一意图的回复信息获取或生成动态目标语言模型,包括:将对第一意图的回复信息转换为参考格式,得到参考格式的回复信息,根据参考格式的回复信息获取或生成动态目标语言模型。
根据以上说明可知,动态目标语言模型至少包括前端部分和核心部分,还可包括接尾部分。而前端部分用于确定对回复信息的确认性信息的描述。与接尾部分相类似,由于用户对回复信息的确认性信息的描述较为固定,因而对于前端部分,也可将包括多个用于确认、修正或取消的确认性信息的集合作为语料来训练语言模型,将训练过的语言模型作为前端部分,从而使得前端部分具有解析关键词得到确认、修正或取消等确认性信息的能力。而对于核心部分,则需要根据上述说明的参考格式的回复信息来进行获取。
其中,回复信息可能由多个供应商来提供,由于不同的供应商可能提供不同格式的回复信息,因而需要将回复信息转换为参考格式,从而使得回复信息格式统一,以便于回复信息的接收。对于不同的应用领域,可以将回复信息转换为不同的参考格式,以使同一应用领域中的回复信息格式相同。例如,在车载导航领域中,回复信息常常为地址,因而可将地址统一为国家(或地区)、省份(或州)、城市、区、路及门牌号的格式。再例如,在兴趣点(pointofinterest,poi)领域中,回复信息常常与兴趣点相关,因而可将回复信息统一为类名、地址、联系电话及用户评价的格式,类名可以为酒店、饭店、商城、博物馆、音乐厅、电影院、体育场馆、医院及药店等。
此外,在将回复信息转换为参考格式前,可以对回复信息进行分词标注,以便于转换参考格式的实施。分词标注是指将文字串分解为词汇,若分解得到的词汇中包括专有名词,还可对专有名词进行标注。分词和标注均可以通过人工智能算法来实现,在本实施例中,人工智能算法包括但不限于条件随机场(conditionalrandomfield,crf)、长短期记忆(longshorttermmemory,lstm)网络以及隐马尔可夫模型(hiddenmarkovmodel,hmm)。
在本实施例中,得到参考格式的回复信息后,进一步根据该参考格式的回复信息来获取或生成动态目标语言模型。可选地,根据参考格式的回复信息来获取目标语言模型的获取方式包括如下三种:
第一种获取方式:将已训练的语言模型转化为加权有限状态转换自动机模型,将加权有限状态转换自动机模型作为动态目标语言模型,其中已训练的语言模型由参考格式的回复信息以及参考词汇训练获得。
其中,参考词汇包括但不限于参考格式的回复信息中的词汇对应的类名,以及指代性表达词。通过分词标注等方式可获取参考格式的回复信息中的词汇,从而进一步获取词汇对应的类名,例如“川菜馆a”的类名为“饭店”。指代性表达词用于指代任一项参考格式的回复信息,例如,当有多项参考格式的回复信息时,指代性表达词包括“第一项”、“中间那个”、“倒数第二个”、“最后一项”等等。
已训练的语言模型包括将参考格式的回复信息以及参考词汇作为语料训练过的初始语言模型。可选地,初始语言模型可以采用n-gram模型,n-gram模型的示意图可参见图6。n-gram模型假设一个字词的出现概率只与位于该字词之前的n个字词相关,而与其他字词无关。例如,当n取值为3时,n-gram模型为3阶模型,此时一个字词的出现概率与位于该字词之前的2个字词有关,即第i个字词xi的出现概率为p(xi|xi-1,xi-2)。因此,n-gram模型可统计出一个字词出现在另一个字词之后的概率,即两个字词相邻出现的概率。通过语料对n-gram模型进行训练,得到已训练的n-gram模型,已训练的n-gram模型已统计出语料所包含的各字词相邻出现的概率。
进一步地,可将已训练的语言模型转换为加权有限状态转换自动机模型(weightedfinitestatetransducer,wfst)。wfst可基于词典将输入的音素序列转化为字词,再基于已训练的语言模型所统计的各字词相邻出现的概率得到各字词相邻出现的权重,根据权重来输出核心信息。核心信息可以看作是字词序列,因而核心信息的出现概率即为该字词序列所包含的所有字词相邻出现的权重的乘积。
另外,通过转换可扩大已训练的语言模型的解析范围,已训练的语言模型可通过解析关键词得到回复信息中的词汇以及参考词汇,而转换得到的wfst除了可解析得到回复信息中的词汇以及参考词汇以外,还可得到回复信息中的词汇、词汇对应的类名或者指代性表达词中的两种或三种的组合。例如,wfst可解析指代性表达词以及词汇对应的类名的组合“中间那个饭店”等等。
可以看出,该wfst即为动态目标语言模型中的核心部分。之后,可将wfst以及前端部分(或者wfst、前端部分以及接尾部分)作为动态目标语言模型。
第二种获取方式:将已训练的原始模型转化为加权有限状态转换自动机模型,将加权有限状态转换自动机模型作为第一语言模型,其中已训练的语言模型由长度不低于参考长度的参考格式的回复信息训练训练获得;根据长度低于参考长度的参考格式的回复信息获取第二语言模型;根据参考词汇获取第三语言模型;合并第一语言模型、第二语言模型和第三语言模型,得到总语言模型,将总语言模型作为动态目标语言模型。
其中,参考词汇可参见第一种获取方式中的说明,此处不再进行赘述。相比于第一种获取方式,在第二种获取方式中,不将长度低于参考长度的回复信息以及参考词汇作为语料,而仅将长度不低于参考长度的回复信息作为语料,已训练的语言模型即为将长度不低于参考长度的回复信息作为语料训练过的初始语言模型,初始语言模型仍可为n-gram模型。在一种可选的实施方式中,参考长度为2,即两个词汇。
其原因在于,n-gram模型使用了后撤(back-off)算法。后撤算法是指:对于语料中未出现过的词序列,可使用较低阶的词序列的出现概率作为该词序列的出现概率,以保证n-gram模型能够针对所输入的任何音素序列均输出结果。例如,在3阶模型的语料中不存在字词序列(xi-2,xi-1,xi)的情况下,模型未统计出第xi个字词的出现概率p(xi|xi-1,xi-2)。若用户使用了字词序列(xi-2,xi-1,xi),则基于较低一阶(2阶)的p(xi|xi-1)来估算p(xi|xi-1,xi-2),从而实现对(xi-2,xi-1,xi)的解析。
已训练的语言模型是为了确定对回复信息相关的可能描述,而用户针对长度不同的回复信息通常会发出不同的语音信号来复述回复信息,以实现对回复信息的确认或选择。对于长度低于参考长度的回复信息,用户常常会复述整项回复信息,而不是复述整项回复信息中的某些词。若将长度低于参考长度的回复信息作为语料训练了包括后撤算法的n-gram模型,则会导致已训练的语言模型统计出一些出现概率较低的词序列,从而影响了已训练的语言模型的解析效果。参考长度可基于场景或经验设置,也可以在语音识别过程中进行调整,本申请实施例对此不加以限定。
例如,在车载导航场景,“东方明珠”可以作为长度为1的回复信息。若将“东方明珠”作为语料,则已训练的语言模型会提供“东明”、“方珠”等词序列,显然出现概率较低。因此,在本实施例中根据长度低于参考长度的回复信息获取不使用后撤算法的第二语言模型,第二语言模型仅解析关键词中整项长度低于参考长度的回复信息。
另外,对于包括词汇对应的类名以及指代性表达词的参考词汇,用户的表达方式较为固定,且词汇对应的类名与指代性表达词的组合数量也较为有限,因而可将词汇对应的类名、指代性表达词以及类名与指代性表达词的组合作为语料训练得到不使用后撤算法的第三语言模型。
而对于长度不低于参考长度的回复信息,用户常常会选择整项回复信息中的部分词来进行复述,因而可将这些长度不低于参考长度的回复信息作为语料来训练n-gram模型,得到已训练的语言模型,再将其转换为wfst,从而得到使用后撤算法的第一语言模型,该第一语言模型可解析关键词中整项回复信息或者整项回复信息中包含的词的组合。例如,以车载导航场景中,以参考长度取2为例,则“a省b市c区d大道1号”是一项长度大于参考长度的回复信息,用户可能会选择“b市”、“d大道1号”等词序列进行复述,因而通过使用后撤算法的第一语言模型便可以对用户复述的语音信号所包括的关键词进行解析。
在获取第一语言模型、第二语言模型以及第三语言模型之后,如图7所示,对第一语言模型、第二语言模型以及第三语言模型进行合并得到总语言模型,该总语言模型即为动态目标语言模型中的核心部分。总语言模型以及前端部分(或者总语言模型、前端部分以及接尾部分)即为动态目标语言模型。
第三种获取方式:基于长度不低于参考长度的参考格式的回复信息获取词混淆网络,词混淆网络中的每个词汇有一转移概率;计算每个词汇的惩罚权重,根据每个词汇的惩罚权重将词混淆网络转化为加权有限状态转换自动机模型,将加权有限状态转换自动机模型作为第一语言模型;根据长度低于参考长度的参考格式的回复信息获取第二语言模型;根据参考词汇获取第三语言模型;合并第一语言模型、第二语言模型和第三语言模型,得到总语言模型,将总语言模型作为动态目标语言模型。
其中,对参考词汇的说明可参见第一种获取方式,根据长度低于参考长度的回复信息获取第二语言模型、根据参考词汇获取第三语言模型可参见第二种获取方式,此处不再加以赘述。接下来,对得到第一语言模型的过程进行说明:
获取词混淆网络(confusionnetwork)的方法包括:对各项长度不低于参考长度的回复信息中相同类别的词汇进行词对齐(alignment),将类别数量加一作为词混淆网络中的状态数量。之后,状态与状态之间通过弧进行连接,每个弧上有一个词汇以及该词汇对应的转移概率,转移概率用于指示该词汇在该词汇所在的类别中的出现频率,且两个相邻的状态之间的所有弧上的转移概率之和为1。
进一步地,考虑到用户在复述长度较大的回复信息时,常常会在整项回复信息包括的所有词汇中跳跃选择词汇来进行复述。因而需要在该词混淆网络中每两个状态之间均增加一条跳跃边,以便解析用户跳跃选择词汇的语音信号所包括的关键词。例如,在如图8所示的词混淆网络中,eps即表示跳跃边,fi用于区分不同类别。
之后,计算每个词汇的惩罚权重,根据惩罚权重将词混淆网络转换为wfst,得到第一语言模型。需要说明的是,使用第一语言模型解析关键词时,第一语言模型会对该语音信号的音素序列有可能对应的多种字词序列的惩罚权重进行计算,字词序列的惩罚权重等于该字词序列所包括的词汇的惩罚权重的乘积,惩罚权重值最小的字词序列将被输出。可选地,计算每个词汇的惩罚权重的方式包括但不限于以下三种:
第一种计算方式:对于任一词汇,将该任一词汇的转移概率的负对数值作为惩罚权重。
根据以上说明可知,词汇的转移概率用于指示该词汇在该词汇所在的类别中的出现频率,则词汇在所在的类别中的出现频率越高,转移概率越大,转移概率的负对数值越小,即惩罚权重反比于出现频率,以便目标语言模型能够更好的解析出在所在的类别中出现频率较高的词汇。
第二种计算方式:对于任一词汇,将包含该词汇的参考格式的回复信息的数量的对数值作为惩罚权重。
其中,当用户从多项长度较大的回复信息中复述待选的回复信息时,更倾向于选择待选的回复信息中明显区别于其他回复信息的词汇,即区分性强的词汇来进行复述。例如,当用户在“a省b市c区d大道1号”以及“a省b市e区f路2号”两项中对前一项进行复述时,通常不会选择两项中均出现过的词汇“a省”或者“b市”,而是会选择仅在前一项出现过的词汇“c区”或者“d大道1号”来复述。
在本实施例中,按照如下的公式对词汇的区分性强弱进行定义:
其中,逆向出现指数(inversepresencefrequency,ipf)用于指示词汇的区分性强弱,ipf的数值越大,指示词汇的区分性越强。tfi用于表示类别fi中的一个词汇,n为参考格式的回复信息的总项数,n为包含词汇tfi的各项参考格式的回复信息的数量。可以看出,包含词汇的参考格式的回复信息的数量越多,则ipf数值也越小,该词汇的区分性越弱。
在考虑跳跃边的情况下,参考格式的回复信息总数量由n变为(n+1),ipf(tfi)更新为按照如下的公式进行表示:
另外,假设跳跃边不具有区分性,即跳跃边会出现在每项参考格式的回复信息中,则跳跃边的ipf(skip)可表示为:
在本实施例中,也可以对上述ipf(skip)进行改写,以避免跳跃边的ipf的数值恒等于0。改写后的ipf(skip)按照如下的公式进行表示:
进一步地,基于ipf(tfi)按照如下的公式定义词汇的惩罚权重penalty(tfi)可定义,得到词汇的惩罚权重即为包含该词汇的参考格式的回复信息的数量的对数值:
相应地,跳跃边的惩罚权重penalty(skip)可定义为:
可以看出,在该计算方式中,对区分性较强的词汇,即包含该词汇的参考格式的回复信息的数量较少的词汇给予较小的惩罚权重,以便目标语言模型能够更好的解析出这些区分性较强的词汇。
第三种计算方式:对于任一词汇,将该词汇在各项参考格式的回复信息中的出现次数的对数值作为惩罚权重。
其中,第三种计算方式仍可按照如下的公式来定义词汇的区分性强弱:
不过,与第二种计算方式不同的是,n表示各项参考格式的回复信息所包含的词汇的总数量,n表示词汇tfi在各项参考格式的回复信息中的出现次数。之后,基于第二种计算方式中的各公式,可定义词汇tfi的惩罚权重penalty(tfi)可定义如下,从而得到词汇的惩罚权重即为词汇在各项参考格式的回复信息中的出现次数的对数值:
penalty(tfi)=log(n)
可以看出,对于区分性较强的词汇,即出现次数越少的词汇,词汇的惩罚概率越小,以便动态目标语言模型能够更好的解析出区分性较强的词汇。
无论采用哪种计算方式获取第一语言模型,在获取第一语言模型之后,便可合并第一语言模型、第二语言模型以及第三语言模型得到总语言模型,该总语言模型即为动态目标语言模型中的核心部分。之后,可将总语言模型以及前端部分(或者总语言模型、前端部分以及接尾部分)作为动态目标语言模型。
综上所述,本申请实施例根据第一意图的回复信息获取或生成包括前端部分和核心部分的动态目标语言模型,解析语音信号得到关键词,再调用动态目标语言模型解析关键词得到第二意图和服务内容。由于动态目标语言模型是根据第一意图的回复信息所获取的,因而通过动态目标语言模型解析得到的第二意图和服务内容均与第一意图相关。因此,本申请实施例实现了与第一意图无关的语音的忽略,避免了提供的服务内容偏离用户需求,识别效果好,提高了用户的使用体验。
另外,本申请实施例还通过动态目标语言模型中的接尾部分来判断语音信号是否存在多意图,以便提供用户的每个意图所指示的服务,因而进一步提高了用户的使用体验。
如图9所示,本申请实施例还提供了一种语音识别的装置,该装置包括:
第一获取模块901,用于根据对第一意图的回复信息获取或生成动态目标语言模型,动态目标语言模型包括前端部分和核心部分,核心部分用于确定对回复信息相关的可能描述,前端部分用于确定对回复信息的确认性信息的描述;
第二获取模块902,用于获取语音信号,解析语音信号生成关键词;
第一确定模块903,用于调用动态目标语言模型确定第二意图和服务内容,其中动态目标语言模型的前端部分根据关键词解析出第二意图,动态目标语言模型的核心部分根据关键词解析出服务内容。
可选地,动态目标语言模型还包括接尾部分,接尾部分用于确认是否存在附加意图,装置还包括:
第二确定模块,用于调用动态目标语言模型确定附加意图,动态目标语言模型的接尾部分根据关键词解析出附加意图。
可选地,接尾部分包括接尾标志词;
第二确定模块,用于接尾部分根据关键词解析出参考接尾标志词,以及参考接尾标志词所在的时间点;基于参考接尾标志词,结合第一意图和第二意图,更新动态目标语言模型,得到更新后的目标语言模型;调用更新后的目标语言模型,根据关键词和参考接尾标志词所在的时间点解析出附加意图。
可选地,装置还包括:
缓存模块,用于缓存历史语音信号;
第二获取模块902,用于解析语音信号,利用历史语音信号进行上下文检测后生成关键词。
可选地,装置还包括:确认模块,用于确认第二意图,得到确认后的第二意图。
可选地,确认模块,用于向用户发送第二意图的确认信息,获取用户反馈的第二意图,将用户反馈的第二意图作为确认后的第二意图。
可选地,第一获取模块901,用于将第一意图的回复信息转换为参考格式,得到参考格式的回复信息,根据参考格式的回复信息获取或生成动态目标语言模型。
可选地,第一获取模块,用于将已训练的语言模型转化为加权有限状态转换自动机模型,将加权有限状态转换自动机模型作为动态目标语言模型,其中已训练的语言模型由参考格式的回复信息以及参考词汇训练获得。
可选地,第一获取模块901,用于将已训练的语言模型转化为加权有限状态转换自动机模型,将加权有限状态转换自动机模型作为第一语言模型,其中已训练的语言模型由长度不低于参考长度的参考格式的回复信息训练获得;根据长度低于参考长度的参考格式的回复信息获取第二语言模型,根据参考词汇获取第三语言模型;合并第一语言模型、第二语言模型和第三语言模型,得到总语言模型,将总语言模型作为动态目标语言模型。
可选地,第一获取模块901,包括:
第一获取单元,用于基于长度不低于参考长度的参考格式的回复信息获取词混淆网络,词混淆网络中的每个词汇有一转移概率;
计算单元,用于计算每个词汇的惩罚权重,根据每个词汇的惩罚权重将词混淆网络转化为加权有限状态转换自动机模型,将加权有限状态转换自动机模型作为第一语言模型;
第二获取单元,用于根据长度低于参考长度的参考格式的回复信息获取第二语言模型,根据参考词汇获取第三语言模型;
合并单元,用于合并第一语言模型、第二语言模型和第三语言模型,得到总语言模型,将总语言模型作为动态目标语言模型。
可选地,计算单元,用于对于任一词汇,将词汇的转移概率的负对数值作为惩罚权重。
可选地,计算单元,用于对于任一词汇,将包含词汇的参考格式的回复信息的数量的对数值作为惩罚权重。
可选地,计算单元,用于对于任一词汇,将词汇在参考格式的回复信息中的出现次数的对数值作为惩罚权重。
综上所述,本申请实施例根据第一意图的回复信息获取或生成包括前端部分和核心部分的动态目标语言模型,解析语音信号得到关键词,再调用动态目标语言模型解析关键词得到第二意图和服务内容。由于动态目标语言模型是根据第一意图的回复信息所获取的,因而通过动态目标语言模型解析得到的第二意图和服务内容均与第一意图相关。因此,本申请实施例实现了与第一意图无关的语音的忽略,避免了提供的服务内容偏离用户需求,识别效果好,提高了用户的使用体验。
另外,本申请实施例还通过动态目标语言模型中的接尾部分来判断语音信号是否存在多意图,以便提供用户的每个意图所指示的服务,因而进一步提高了用户的使用体验。
应理解的是,上述图9提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了一种语音识别的设备,该设备包括存储器及处理器;存储器中存储有至少一条指令,至少一条指令由处理器加载并执行,以实现本申请实施例提供的语音识别的方法,该方法包括:根据对第一意图的回复信息获取或生成动态目标语言模型,动态目标语言模型包括前端部分和核心部分,核心部分用于确定对回复信息相关的可能描述,前端部分用于确定对回复信息的确认性信息的描述;获取语音信号,解析语音信号生成关键词;调用动态目标语言模型确定第二意图和服务内容,其中动态目标语言模型的前端部分根据关键词解析出第二意图,动态目标语言模型的核心部分根据关键词解析出服务内容。
可选地,动态目标语言模型还包括接尾部分,接尾部分用于确认是否存在附加意图,方法还包括:调用动态目标语言模型确定附加意图,动态目标语言模型的接尾部分根据关键词解析出附加意图。
可选地,接尾部分包括接尾标志词;调用动态目标语言模型确定附加意图,动态目标语言模型的接尾部分根据关键词解析出附加意图,包括:接尾部分根据关键词解析出参考接尾标志词,以及参考接尾标志词所在的时间点;基于参考接尾标志词,结合第一意图和第二意图,更新动态目标语言模型,得到更新后的目标语言模型;调用更新后的目标语言模型,根据关键词和参考接尾标志词所在的时间点解析出附加意图。
可选地,获取语音信号之前,方法还包括:缓存历史语音信号;解析语音信号生成关键词,包括:解析语音信号,利用历史语音信号进行上下文检测后生成关键词。
可选地,调用动态目标语言模型确定第二意图和服务内容之后,方法还包括:确认第二意图,得到确认后的第二意图。
可选地,确认第二意图,得到确认后的第二意图,包括:向用户发送第二意图的确认信息,获取用户反馈的第二意图,将用户反馈的第二意图作为确认后的第二意图。
可选地,根据对第一意图的回复信息获取或生成动态目标语言模型,包括:将第一意图的回复信息转换为参考格式,得到参考格式的回复信息,根据参考格式的回复信息获取或生成动态目标语言模型。
可选地,根据参考格式的回复信息获取或生成动态目标语言模型,包括:将已训练的语言模型转化为加权有限状态转换自动机模型,将加权有限状态转换自动机模型作为动态目标语言模型,其中已训练的语言模型由参考格式的回复信息以及参考词汇训练获得。
可选地,根据参考格式的回复信息获取或生成动态目标语言模型,包括:将已训练的语言模型转化为加权有限状态转换自动机模型,将加权有限状态转换自动机模型作为第一语言模型,其中已训练的语言模型由长度不低于参考长度的参考格式的回复信息训练获得;根据长度低于参考长度的参考格式的回复信息获取第二语言模型,根据参考词汇获取第三语言模型;合并第一语言模型、第二语言模型和第三语言模型,得到总语言模型,将总语言模型作为动态目标语言模型。
可选地,根据参考格式的回复信息获取或生成动态目标语言模型,包括:基于长度不低于参考长度的参考格式的回复信息获取词混淆网络,词混淆网络中的每个词汇有一转移概率;计算每个词汇的惩罚权重,根据每个词汇的惩罚权重将词混淆网络转化为加权有限状态转换自动机模型,将加权有限状态转换自动机模型作为第一语言模型;根据长度低于参考长度的参考格式的回复信息获取第二语言模型,根据参考词汇获取第三语言模型;合并第一语言模型、第二语言模型和第三语言模型,得到总语言模型,将总语言模型作为动态目标语言模型。
可选地,计算每个词汇的惩罚权重,包括:对于任一词汇,将词汇的转移概率的负对数值作为惩罚权重。
可选地,计算每个词汇的惩罚权重,包括:对于任一词汇,将包含词汇的参考格式的回复信息的项数的对数值作为惩罚权重。
可选地,计算每个词汇的惩罚权重,包括:对于任一词汇,将词汇在参考格式的回复信息中的出现次数的对数值作为惩罚权重。
本申请实施例还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行以实现本申请实施例提供的一种语音识别的方法,该方法包括:根据对第一意图的回复信息获取或生成动态目标语言模型,动态目标语言模型包括前端部分和核心部分,核心部分用于确定对回复信息相关的可能描述,前端部分用于确定对回复信息的确认性信息的描述;获取语音信号,解析语音信号生成关键词;调用动态目标语言模型确定第二意图和服务内容,其中动态目标语言模型的前端部分根据关键词解析出第二意图,动态目标语言模型的核心部分根据关键词解析出服务内容。
可选地,动态目标语言模型还包括接尾部分,接尾部分用于确认是否存在附加意图,方法还包括:调用动态目标语言模型确定附加意图,动态目标语言模型的接尾部分根据关键词解析出附加意图。
可选地,接尾部分包括接尾标志词;调用动态目标语言模型确定附加意图,动态目标语言模型的接尾部分根据关键词解析出附加意图,包括:接尾部分根据关键词解析出参考接尾标志词,以及参考接尾标志词所在的时间点;基于参考接尾标志词,结合第一意图和第二意图,更新动态目标语言模型,得到更新后的目标语言模型;调用更新后的目标语言模型,根据关键词和参考接尾标志词所在的时间点解析出附加意图。
可选地,获取语音信号之前,方法还包括:缓存历史语音信号;解析语音信号生成关键词,包括:解析语音信号,利用历史语音信号进行上下文检测后生成关键词。
可选地,调用动态目标语言模型确定第二意图和服务内容之后,方法还包括:确认第二意图,得到确认后的第二意图。
可选地,确认第二意图,得到确认后的第二意图,包括:向用户发送第二意图的确认信息,获取用户反馈的第二意图,将用户反馈的第二意图作为确认后的第二意图。
可选地,根据对第一意图的回复信息获取或生成动态目标语言模型,包括:将第一意图的回复信息转换为参考格式,得到参考格式的回复信息,根据参考格式的回复信息获取或生成目标语言模型。
可选地,根据参考格式的回复信息获取或生成动态目标语言模型,包括:将已训练的语言模型转化为加权有限状态转换自动机模型,将加权有限状态转换自动机模型作为动态目标语言模型,其中已训练的语言模型由参考格式的回复信息以及参考词汇训练获得。
可选地,根据参考格式的回复信息获取或生成动态目标语言模型,包括:将已训练的语言模型转化为加权有限状态转换自动机模型,将加权有限状态转换自动机模型作为第一语言模型,其中已训练的语言模型由长度不低于参考长度的参考格式的回复信息训练获得;根据长度低于参考长度的参考格式的回复信息获取第二语言模型,根据参考词汇获取第三语言模型;合并第一语言模型、第二语言模型和第三语言模型,得到总语言模型,将总语言模型作为动态目标语言模型。
可选地,根据参考格式的回复信息获取或生成动态目标语言模型,包括:基于长度不低于参考长度的参考格式的回复信息获取词混淆网络,词混淆网络中的每个词汇有一转移概率;计算每个词汇的惩罚权重,根据每个词汇的惩罚权重将词混淆网络转化为加权有限状态转换自动机模型,将加权有限状态转换自动机模型作为第一语言模型;根据长度低于参考长度的参考格式的回复信息获取第二语言模型,根据参考词汇获取第三语言模型;合并第一语言模型、第二语言模型和第三语言模型,得到总语言模型,将总语言模型作为动态目标语言模型。
可选地,计算每个词汇的惩罚权重,包括:对于任一词汇,将词汇的转移概率的负对数值作为惩罚权重。
可选地,计算每个词汇的惩罚权重,包括:对于任一词汇,将包含词汇的参考格式的回复信息的项数的对数值作为惩罚权重。
可选地,计算每个词汇的惩罚权重,包括:对于任一词汇,将词汇在参考格式的回复信息中的出现次数的对数值作为惩罚权重。
本申请实施例还提供了一种芯片,包括处理器,处理器用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行上述任一种语音识别的方法。
本申请实施例还提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述任一种语音识别的方法。
可选地,上述处理器为一个或多个,上述存储器为一个或多个。
可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
应理解的是,上述处理器可以是中央处理器(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advancedriscmachines,arm)架构的处理器。
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用。例如,静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicrandomaccessmemory,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledatadatesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。
本申请实施例提供了一种计算机程序,当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的各个步骤和/或流程。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk)等。
以上所述仅为本申请的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除