[0001]
本发明涉及语音交互领域,尤其涉及一种智能的多轮交互方法及系统。
背景技术:[0002]
在语音交互的过程中,为了准确的响应用户输入的语音请求,通常会按技能(领域)解析,如果该请求在多个技能中有解析,则根据置信度对多个技能进行优先级排序。根据置信度排序结果选择用于响应的技能。
[0003]
有的也会使用解析会话中当前的意图、实体和会话场景,当满足场景切换条件(根据上一轮意图、实体和会话场景判断)时,将所述当前会话场景作为目标会话场景(跳出上一轮的场景)。
[0004]
在实现本发明过程中,发明人发现相关技术中至少存在如下问题:
[0005]
现有的这些方法考虑的因素较少,难以应用到复杂的对话当中。
[0006]
例如:
[0007][0008]
只考虑置信度排序的方法中,未考虑上下文。对第三轮交互的“明天呢”的输入语句在各个领域内解析,无法解析到天气或导航领域,最有可能出现较高置信度的领域是音乐(明天相关的歌曲,或明天的专辑),即出现领域分类错误。在不考虑多轮交互的情况下,可以使用不同技能(领域)对请求语句解析的置信度来判断最合适的响应技能(领域),然而这个方案只可以满足一部分场景,无法应用到复杂的对话场景中。
[0009]
只考虑一轮上下文的方法中,未考虑当前会话内所有的上下文。对第3轮交互的“明天呢”的输入语句优先在导航领域解析,而导航领域也无法解析。最终得到和只考虑置信度排序类似的结果。多轮交互的情况下,只考虑上一轮的上下文,虽然可以满足目前部分场景,但未考虑到更复杂的交互场景。比如:车载场景下的多用户对车载语音设备交替交互,或一个用户在不同领域交替交互;电视前多用户交替交互,或一个用户在不同领域交替交互。
技术实现要素:[0010]
为了至少解决现有技术中语音交互无法应对复杂的对话场景,不够智能的问题。
[0011]
第一方面,本发明实施例提供一种智能的多轮交互方法,包括:
[0012]
响应于用户的当前轮的请求语句,从上下文集合中的用户的多条历史语句所对应的多个领域中,选择至少一个能够解析所述请求语句的领域作为所述请求语句的响应领域;
[0013]
使用所述响应领域的解析结果与所述用户的当前轮的请求语句进行交互。
[0014]
第二方面,本发明实施例提供一种智能的多轮交互系统,包括:
[0015]
响应领域选择程序模块,用于响应于用户的当前轮的请求语句,从上下文集合中的用户的多条历史语句所对应的多个领域中,选择至少一个能够解析所述请求语句的领域作为所述请求语句的响应领域;
[0016]
交互程序模块,用于使用所述响应领域的解析结果与所述用户的当前轮的请求语句进行交互。
[0017]
第三方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的智能的多轮交互方法的步骤。
[0018]
第四方面,本发明实施例提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现本发明任一实施例的智能的多轮交互方法的步骤。
[0019]
本发明实施例的有益效果在于:多轮交互中不需要判断是否是多人交替输入,还是同一用户的多次输入,由后续步骤判断当前的输入应该在哪个领域响应。可以适用于多用户多领域交替交互的场景以及单一用户多领域交替交互的场景。并且让交互更加智能人性化的同时提供了较为准确的交互方式,进一步提高用户的交互体验。
附图说明
[0020]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]
图1是本发明一实施例提供的一种智能的多轮交互方法的流程图;
[0022]
图2是本发明一实施例提供的一种智能的多轮交互方法的详细结构流程图;
[0023]
图3是本发明一实施例提供的一种智能的多轮交互系统的结构示意图。
具体实施方式
[0024]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0025]
如图1所示为本发明一实施例提供的一种智能的多轮交互方法的流程图,包括如下步骤:
[0026]
s11:响应于用户的当前轮的请求语句,从上下文集合中的用户的多条历史语句所对应的多个领域中,选择至少一个能够解析所述请求语句的领域作为所述请求语句的响应领域;
[0027]
s12:使用所述响应领域的解析结果与所述用户的当前轮的请求语句进行交互。
[0028]
在本实施方式中,可将本方法配置在电子设备中,来解决更复杂的多轮交互场景。
[0029]
例如:在一次多轮交互中,用户发出如下对话。
[0030][0031]
此时用户输入当前第五轮对话,
[0032]
第五轮
ꢀꢀꢀꢀꢀꢀꢀꢀ
明天呢
[0033]
对于步骤s11,用户对电子设备进行请求语句输入,用户可以对电子设备直接进行语音形式的请求输入,也可以使用文本的方式,将文本输入至电子设备中。
[0034]
电子设备通过输入模块(对于不同种类的电子设备,模块名称不做限定)获取当前轮的请求语句,电子设备获取到当前轮的请求语句“明天呢”之后,由于是多轮对话,具有上下文集合。作为一种实施方式,在本实施例中,所述用户的多条历史语句所对应的多个领域包括:在多轮交互中从第一轮至所述当前轮的所有历史语句所对应的多个领域。在本实施方式中,如果当前轮是第五轮,那么就在第一轮至第四轮(由于此时第五轮中的语句是当前输入的,还没有确定领域,无法作为参考)确定:第一轮-音乐领域;第二轮-天气领域;第三轮-通话领域;第四轮-导航领域。
[0035]
通过上下文集合中的多条历史语句所对应的多个领域(音乐领域、天气领域、通话领域、导航领域),选择出至少一个能够解析“明天呢”的领域。
[0036]
例如,“通话领域”和“导航领域”是无法解析“明天呢”这句话,而“音乐领域”和“天气领域”是可以解析“明天呢”这句话。由于人类的思维灵活自由,在日常唠嗑对话时,不仅仅是“一个问题问到底”的模式。也有可能存在,在聊a内容时,突然想到b问题,问完b问题之后,又将话题重新引回a内容,也有可能,在多人与电子设备交互时,甲用户向电子设备的第一轮输入a内容,此时乙用户插嘴,乙用户向电子设备第二轮输入b内容,甲用户再向电子设备的第三轮输入a内容。
[0037]
此时可以选择至少一个,也就是“音乐领域”和/或“天气领域”作为所述请求语句的响应领域。例如使用“天气领域”作为请求语句的响应领域。
[0038]
对于步骤s12,通过“天气领域”来解析“明天呢”,得到“明天25
°
,晴转多云”来与用户第五轮输入的“明天呢”进行交互。
[0039]
通过该实施方式可以看出,在上下文集合中找到能够解析用户请求语句的响应领域与用户交互,且不再是死板、绝对的,使交互更加人性化、拟人化。
[0040]
作为一种实施方式,在本实施例中,所述选择至少一个能够解析所述请求语句的领域作为所述请求语句的响应领域包括:
[0041]
按照优先级,在所述上下文集合中依次获取所述历史语句对应的领域,对所述当前轮的请求语句进行解析;
[0042]
确定首个能够解析所述当前轮的请求语句的历史语句对应的领域,将这一条历史语句对应的领域确定为所述当前轮的请求语句的响应领域。
[0043]
在本实施方式中,考虑到希望与用户的交互更加高效、便捷。会按照设定的优先级
对上下文集合中的所述历史语句对应的领域进行排序。
[0044]
作为一种实施方式,所述优先级为时间,当距离所述当前轮的请求语句的时间越近,优先级越高。
[0045]
例如,第一轮
-“
音乐领域”的时间为13:20:15;第二轮
-“
天气领域”的时间为13:20:30;第三轮
-“
通话领域”的时间为13:21:13;第四轮
-“
导航领域”的时间为13:22:05;当前轮的时间为13:22:47;
[0046]
优先使用第四轮的领域对“明天呢”进行解析,然而无法解析。在使用第三轮的领域对“明天呢”进行解析,同样的无法解析。在第二轮中,“天气领域”可以解析“明天呢”。考虑到交互的高效便捷,此时将这一条今天天气怎么样的“天气领域”确定为“明天的”的响应领域。确定即停止,不会继续对第一轮进行判断检测。
[0047]
通过该实施方式可以看出,考虑到交互的便捷性,选择可以解析当前轮对话中优先级最高的领域作为响应领域。
[0048]
进一步地,为了能够选择出更加相对准确,尽可能符合用户的响应领域,考虑了时间因素相对符合对话逻辑,在交互便捷的基础上提高了交互的准确性。
[0049]
作为一种实施方式,在本实施例中,所述选择至少一个能够解析所述请求语句的领域作为所述请求语句的响应领域还包括:
[0050]
按照优先级,在所述上下文集合中依次获取所述历史语句对应的领域,对所述当前轮的请求语句进行解析;
[0051]
确定预设数量的能够解析所述当前轮的请求语句的响应领域,将所述预设数量的响应领域向用户反馈,以供用户选择。
[0052]
在本实施方式中,考虑到还是希望用户自己能选择自己想要的领域,更加人性化。
[0053]
同样的还是以时间为例。优先使用第四轮的领域对“明天呢”进行解析,然而无法解析。在使用第三轮的领域对“明天呢”进行解析,同样的无法解析。在第二轮中,“天气领域”可以解析“明天呢”。在第一轮中,“音乐领域”也可以解析“明天呢”。(举例中只有这两轮,实际中,可能会出现更多)
[0054]
如果预设数量为两条时,将“天气领域”和“音乐领域”向用户反馈,例如“您需要的是明天的天气呢,还是明天呢这首歌”。这样通过用户的参与,明确响应领域
[0055]
通过该实施方式可以看出,考虑到用户的体验,为用户选出几个领域供用户选择,用户只需做“选择”这种最简单便捷的操作,同时可以明确出响应领域,更加人性化。
[0056]
作为一种实施方式,在本实施例中,在确定预设数量的能够解析所述当前轮的请求语句的响应领域之后,所述方法还包括:
[0057]
判断所述预设数量的响应领域的置信度,基于所述置信度选择至少一个响应领域向用户反馈。
[0058]
在本实施方式中,假设这四轮对话都可以解析“明天呢”,可以通过响应领域的置信度来进行择优选择。其中,置信度可以通过解析结果获得。例如,“导航领域”的置信度有15%,“通话领域”的置信度有15%,“天气领域”的置信度有40%,“音乐领域”的置信度有30%。可以选择一个(“天气领域”)或两个(“天气领域”和“音乐领域”)向用户反馈。
[0059]
通过该实施方式可以看出,在为用户领域的选择中,进一步精细化的选择出较优的领域,提高准确性,更加拟人化。
[0060]
作为一种实施方式,所述优先级根据距离所述当前轮的请求语句的时间远近以及用户身份确定。
[0061]
考虑到更复杂的场景,例如车载场景中,车辆中有两名用户,一名乘客、一名驾驶员。可以通过声纹信息、声源角度、空间区域划分等方法来确定出这两名用户的身份,例如车辆场景中,方向盘的空间区域的用户为驾驶员身份。
[0062]
考虑到驾驶过程中的安全,避免驾驶员分心,将驾驶员身份的请求语句严格控制在“导航领域”中。将驾驶员输入的语音请求,都控制在“导航领域”。不会使用“导航领域”外的其他领域来对请求语句进行判断。同样的,如果输入请求语句的用户是乘客,可以使用多条历史语句所对应的多个领域来对请求语句进行解析。
[0063]
作为一种实施方式,在本实施例中,在确定当前轮的请求语句的响应领域之后,所述方法还包括:
[0064]
将所述当前轮的请求语句与响应领域关联,记录在上下文集合中。
[0065]
在本实施方式中,考虑到用户还会进行下一轮的对话,在确定出当前轮的请求语句的响应领域之后,将其记录在上下文集合中(最终的响应领域以天气领域为例)。
[0066][0067]
通过该实施方式可以看出,考虑到后续的对话,在确定响应领域后对上下文集合进行迭代更新,为后续轮次的对话提供更丰富的领域选择。
[0068]
作为一种实施方式,在本实施例中,在将所述预设数量的响应领域向用户反馈之后,所述方法还包括:
[0069]
根据用户的反馈结果,确定是否将响应领域与所述当前轮的请求语句关联记录在上下文集合中。
[0070]
在本实施方式中,如果用户根据反馈结果选择了一个领域,那么将用户选择的响应领域与所述当前轮的请求语句关联记录在上下文集合中。
[0071]
同时也考虑到了,如果反馈的响应领域都是错误的,用户看到之后没有自己想要的,此时用户不会进行选择。反馈结果中也就不存在响应领域,这是不会将任何响应领域与所述当前轮的请求语句关联记录在上下文集合中
[0072]
通过该实施方式可以看出,如果没有选择出用户希望的响应领域,不存储至上下文集合中。避免为后续的对话带来错误的信息。
[0073]
作为一种内容细且全的实施方式,如图2所示,
[0074]
步骤1:通过输入模块获取当前轮的请求语句。输入源包括但不限于音频通过识别模块获得请求语句,直接输入文本的请求语句,执行步骤2。
[0075]
步骤2:判断当前会话内是否有上下文,或上下文集合内是否有内容。如果有上下
文,则将全局变量n赋值为1。
[0076]
步骤2-1:如果有上下文,则从上下文集合中取按时间排序倒数第n轮的领域。
[0077]
步骤2-2:判断在该领域内输入的请求语句是否能解析。
[0078]
步骤2-3:如果能在该领域解析,则执行步骤5。
[0079]
步骤2-4:如果不能再该领域解析,则判断是否满足停止条件。其中停止条件包括但不限于:是否大于向前查找特定轮数,是否大于特定时间,是否是同一用户等。(考虑到如果对话轮次过多,依次判别的时间过长,也没得到响应领域的情况,增加一个时间限制,如果在这个时间限制内还是没有选择出响应领域时,就跳转回普通的交互模式)
[0080]
步骤2-5:如果不满足停止条件,则将全局变量n赋值为n+1,执行步骤2-1。
[0081]
步骤2-6:如果满足停止条件,则执行步骤4。
[0082]
步骤3:当前会话如果没有上下文,则执行步骤4。
[0083]
步骤4:平行调度。将当前输入请求语句在产品定义的所有领域内解析,得到解析结果后按置信度最大值选择一个领域,执行步骤5。
[0084]
步骤5:确定进过上述步骤找到的领域为当前输入请求语句的响应领域,执行步骤6。
[0085]
步骤6:记录响应领域至上下文集合,结束。
[0086]
由于本方法的多轮交互中不需要判断是否是多人交替输入,还是同一用户的多次输入,由后续步骤判断当前的输入应该在哪个领域响应。可以适用于多用户多领域交替交互的场景以及单一用户多领域交替交互的场景。并且让交互更加智能人性化的同时提供了较为准确的交互方式,进一步提高用户的交互体验。
[0087]
如图3所示为本发明一实施例提供的一种智能的多轮交互系统的结构示意图,该系统可执行上述任意实施例所述的智能的多轮交互方法,并配置在终端中。
[0088]
本实施例提供的一种智能的多轮交互系统包括:响应领域选择程序模块11和交互程序模块12。
[0089]
其中,响应领域选择程序模块11用于响应于用户的当前轮的请求语句,从上下文集合中的用户的多条历史语句所对应的多个领域中,选择至少一个能够解析所述请求语句的领域作为所述请求语句的响应领域;交互程序模块12用于使用所述响应领域的解析结果与所述用户的当前轮的请求语句进行交互。
[0090]
本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的智能的多轮交互方法;
[0091]
作为一种实施方式,本发明的非易失性计算机存储介质存储有计算机可执行指令,计算机可执行指令设置为:
[0092]
响应于用户的当前轮的请求语句,从上下文集合中的用户的多条历史语句所对应的多个领域中,选择至少一个能够解析所述请求语句的领域作为所述请求语句的响应领域;
[0093]
使用所述响应领域的解析结果与所述用户的当前轮的请求语句进行交互。
[0094]
作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的方法对应的程序指令/模块。一个或者
多个程序指令存储在非易失性计算机可读存储介质中,当被处理器执行时,执行上述任意方法实施例中的智能的多轮交互方法。
[0095]
非易失性计算机可读存储介质可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据装置的使用所创建的数据等。此外,非易失性计算机可读存储介质可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,非易失性计算机可读存储介质可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0096]
本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的智能的多轮交互方法的步骤。
[0097]
本申请实施例的客户端以多种形式存在,包括但不限于:
[0098]
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机、多媒体手机、功能性手机,以及低端手机等。
[0099]
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如平板电脑。
[0100]
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器,掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
[0101]
(4)其他具有数据处理功能的电子装置。
[0102]
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0103]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0104]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0105]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管
参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。