1.本发明实施例涉及计算机技术领域,尤其涉及一种多轮会话方法、装置以及设备。
背景技术:2.随着计算机技术的不断发展,人机交互技术得到了广泛地应用。例如,智能音箱、智能管家,以及车载终端中都应用到了人机交互技术。
3.现阶段,人机交互技术(语音对话系统)主要分为四类:任务式、主动推荐、问答以及闲聊。其中任务式对话系统依靠维护对话状态追踪器(dst)来解决上下文匹配问题,从用户唤醒语音系统后开始,对话系统为用户建立一个session用来标记本次对话的开始,同时更新对话系统状态(ds)到追踪器。这个对话系统状态(ds)和session标记都存储在服务器端,当用户在语音唤醒状态下进行下一轮对话的时候,需要做session匹配和状态的同步,同时系统会在存储及计算状态参数的时候去生成对话策略,决定本轮的系统应答。
4.现有技术的方法,需要通过服务端标记多轮对话的开始以及追踪对话状态,消耗了大量服务端资源,随着用户的增长,服务端的压力也逐渐增大。
技术实现要素:5.本发明实施例提供一种多轮会话方法、装置以及设备,以解决现有的任务式多轮对话中,通过服务端标记多轮对话的开始以及追踪对话状态,而消耗了大量服务端资源的问题,在减少服务端资源消耗的同时,实现多轮对话。
6.第一方面,本发明实施例提供了一种多轮对话方法,应用于客户端,包括:
7.获取用户在多轮对话过程中输入的本轮用户语音;
8.如果确定当前存储与所述多轮对话匹配的历史轮次关联信息,则将所述历史轮次关联信息和所述本轮用户语音进行组合,并将组合信息发送至服务端,以指示服务端生成与组合信息匹配的第一指令信息集;
9.根据服务端反馈的所述第一指令信息集,生成本轮响应语音,并将所述本轮响应语音提供给所述用户;
10.根据所述第一指令信息集,更新与所述多轮对话匹配的历史轮次关联信息。
11.第二方面,本发明实施例还提供了一种多轮对话方法,应用于服务端,包括:
12.接收客户端发送的组合信息,并生成与所述组合信息匹配的第一指令信息集;其中,所述组合信息包括历史轮次关联信息和本轮用户语音;
13.将所述第一指令信息集反馈至所述客户端。
14.第三方面,本发明实施例还提供了一种多轮对话装置,应用于客户端,包括:
15.用户语音获取模块,用于获取用户在多轮对话过程中输入的本轮用户语音;
16.第一指令信息集确定模块,用于如果确定当前存储与所述多轮对话匹配的历史轮次关联信息,则将所述历史轮次关联信息和所述本轮用户语音进行组合,并将组合信息发送至服务端,以指示服务端生成与组合信息匹配的第一指令信息集;
17.响应语音确定模块,用于根据服务端反馈的所述第一指令信息集,生成本轮响应语音,并将所述本轮响应语音提供给所述用户;
18.关联信息更新模块,用于根据所述第一指令信息集,更新与所述多轮对话匹配的历史轮次关联信息。
19.第四方面,本发明实施例还提供了一种多轮对话装置,应用于服务端,包括:
20.第一指令信息集生成模块,用于接收客户端发送的组合信息,并生成与所述组合信息匹配的第一指令信息集;其中,所述组合信息包括历史轮次关联信息和本轮用户语音;
21.第一指令信息集反馈模块,用于将所述第一指令信息集反馈至所述客户端。
22.第五方面,本发明实施例还提供了一种设备、终端或者服务器,所述设备、终端或者服务器包括:
23.一个或多个处理器;
24.存储装置,用于存储一个或多个程序,
25.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中涉及到的方法。
26.本发明实施例,通过获取用户在多轮对话过程中输入的本轮用户语音;如果确定当前存储与多轮对话匹配的历史轮次关联信息,则将历史轮次关联信息和本轮用户语音进行组合,并将组合信息发送至服务端,以指示服务端生成与组合信息匹配的第一指令信息集;根据服务端反馈的第一指令信息集,生成本轮响应语音,并将本轮响应语音提供给用户;根据第一指令信息集,更新与多轮对话匹配的历史轮次关联信息,解决了现有的任务式多轮对话中,通过服务端标记多轮对话的开始以及追踪对话状态,而消耗了大量服务端资源的问题,在减少服务端资源消耗的同时,可以实现多轮对话。
附图说明
27.图1是本发明实施例一中的一种多轮对话方法的流程图;
28.图2是本发明实施例二中的一种多轮对话方法的流程图;
29.图3是本发明实施例三中的一种多轮对话方法的流程图;
30.图4是本发明实施例四中的一种多轮对话方法的流程图;
31.图5是本发明实施例四中的一种多轮对话方法的交互示意图;
32.图6是本发明实施例四中的一种多轮对话实现的流程图;
33.图6a是本发明实施例四中的一种多轮对话实现的流程图;
34.图6b是本发明实施例四中的一种多轮对话实现的流程图;
35.图6c是本发明实施例四中的一种多轮对话实现的流程图;
36.图7是本发明实施例五中的一种多轮对话装置的结构示意图;
37.图8是本发明实施例六中的一种多轮对话装置的结构示意图;
38.图9是本发明实施例七中的的一种设备、终端或者服务器的结构示意图。
具体实施方式
39.下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还
需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
40.实施例一
41.图1是本发明实施例一中的一种多轮对话方法的流程图,本实施例可适用于无需消耗大量的服务端资源,通过客户端实现多轮对话的情况,该方法可以由多轮对话装置来执行,该装置可以通过软件和/或硬件的方式实现,并集成在客户端中,其中,客户端可以为车载终端、也可以为电子设备,电子设备可以为智能手机、智能手表或者平板电脑灯,本发明实施例中对其不加以限制。具体的,参考图1,该方法具体包括如下步骤:
42.步骤110、获取用户在多轮对话过程中输入的本轮用户语音。
43.其中,多轮对话是一种任务式的人机对话方式,在人机对话中,初步明确用户意图之后,获取必要信息以最终得到明确用户指令的方式。多轮对话可以与一件事情的处理相对应。需要说明的是,本发明实施例中涉及到的多轮对话并不一定表现为与用户的多次对话交互,如果用户的话语中已经提供了充足的信息,或者其它来源的补充信息已经足够将用户的初步意图转化为一条明确的用户指令,那么,就不会存在与用户的多次对话交互。
44.在具体实现中,多轮对话中包括的对话轮数可以是任意的正整数,例如,1轮、2轮或者3轮等等,本发明实施例中对其不加以限制。
45.可以理解的是,本轮用户语音也可以为多轮会话过程中任意一轮,用户输入的语音,例如,第一轮会话用户输入的语音、第二轮会话用户输入的语音,或者第四轮会话用户输入的语音,本发明实施例中对其不加以限制。本轮用户语音也可以为任意的语音数据,例如,“今天天气怎么样?”、“我要定航班”,或者“我想定外卖”等等,本发明实施例中对其不加以限制。
46.步骤120、如果确定当前存储与多轮对话匹配的历史轮次关联信息,则将历史轮次关联信息和本轮用户语音进行组合,并将组合信息发送至服务端,以指示服务端生成与组合信息匹配的第一指令信息集。
47.具体的,在获取到用户在多轮会话过程中输入的本轮用户语音之后,可以进一步的确定当前客户端的存储区域内(例如,栈容器)是否存储有与本轮对话匹配的历史轮次关联消息,例如,若本轮对话为多轮对话中的第二轮对话,则与本轮对话匹配的历史轮次关联信息为该多轮会话中的第一轮对话对应的信息。
48.进一步的,如果确定存储区域内存储了与本轮对话匹配的历史轮次关联信息,则将历史轮次关联信息和获取到的本轮用户语音进行组合,并将组合得到的组合信息发送至服务端,进而指示服务端生成与该组合信息匹配的第一指令信息集。
49.示例性的,若本轮对话为多轮会话中的第三轮对话,可以确定存储区域内存储了与本轮对话匹配的历史轮次(第一轮对话和第二轮对话)关联信息,则可以将第一轮对话和第二轮对话关联信息,以及第三轮用户语音进行组合,得到组合信息,并将该组合信息发送至服务端,从而得到与组合信息匹配的第一指令信息集。
50.步骤130、根据服务端反馈的第一指令信息集,生成本轮响应语音,并将本轮响应语音提供给用户。
51.在具体实现中,得到服务端反馈的第一指令信息集之后,可以进一步的根据该指令信息集生成本轮响应语音,并将本轮响应语音播报给用户。
52.示例性的,若本轮对话为多轮会话中的第二轮对话,本轮用户语音为“北京”,历史
轮次关联信息为“我要预订航班”,则可以将“北京”以及“我要预订航班”这个组合信息发送至服务端,服务端根据组合信息生成本轮响应语音,其中,在本例子中,生成的本轮响应语音可以为“目的地是哪?”;进一步的,客户端将本轮响应语音“目的地是哪?”播报给用户,以指导用户的下一轮语音输入。
53.步骤140、根据第一指令信息集,更新与多轮对话匹配的历史轮次关联信息。
54.具体的,在得到服务端反馈的第一指令信息集之后,可以进一步的根据该指令信息集,更新与多轮对话匹配的历史轮次关联信息。例如,可以将该第一信息指令集,与存储的多轮对话匹配的历史轮次关联信息进行组合,从而得到新的与多轮对话匹配的历史轮次关联信息。
55.本实施例的技术方案,通过获取用户在多轮对话过程中输入的本轮用户语音;如果确定当前存储与多轮对话匹配的历史轮次关联信息,则将历史轮次关联信息和本轮用户语音进行组合,并将组合信息发送至服务端,以指示服务端生成与组合信息匹配的第一指令信息集;根据服务端反馈的第一指令信息集,生成本轮响应语音,并将本轮响应语音提供给用户;根据第一指令信息集,更新与多轮对话匹配的历史轮次关联信息,解决了现有的任务式多轮对话中,通过服务端标记多轮对话的开始以及追踪对话状态,而消耗了大量服务端资源的问题,在减少服务端资源消耗的同时,可以实现多轮对话。
56.实施例二
57.图2是本发明实施例二中的一种多轮对话方法的流程图,本实施例是对上述各技术方案的进一步细化,本实施例中的技术方案可以与上述一个或者多个实施例中的各个可选方案结合。如图2所示,多轮对话方法可以包括如下步骤:
58.步骤210、获取用户在多轮对话过程中输入的本轮用户语音。
59.步骤220、如果确定当前未存储与多轮对话匹配的历史轮次关联信息,则将本轮用户语音发送至服务端,以指示服务端生成与本轮用户语音匹配的第二指令信息集。
60.在具体实现中,在获取到用户在多轮对话过程中输入的本轮用户语音之后,如果确定存储区域(例如,栈容器)内未存储与多轮对话匹配的历史轮次信息;示例性的,若本轮对话为多轮对话中的第一轮对话,则可以确定存储区域内未存储与该多轮对话匹配的历史轮次消息。
61.进一步的,可以直接将本轮用户语音发送至服务端,从而指示服务端生成与本轮用户语音匹配的第二指令信息集。示例性的,若本轮对话为多轮对话中的第一轮对话,存储区域中未存储与该多轮对话匹配的历史轮次信息,则可以直接将本轮对话的语音“我要预订航班”发送至服务端,从而指示服务端生成与“我要预订航班”匹配的第二指令信息集。
62.步骤230、根据服务端反馈的第二指令信息集,生成本轮响应语音,并将本轮响应语音提供给用户。
63.在具体实现中,得到服务端反馈的第二指令信息集之后,可以进一步的根据该指令信息集生成本轮响应语音,并将本轮响应语音播报给用户。
64.示例性的,若本轮对话为多轮会话中的第一轮对话,本轮用户语音为“我要预订航班”,则可以将“我要预订航班”这个语音信息发送至服务端,服务端根据语音信息生成本轮响应语音,其中,在本例子中,生成的本轮响应语音可以为“出发地是哪?”;进一步的,客户端将本轮响应语音“出发地是哪?”播报给用户,以指导用户的下一轮语音输入。
65.步骤240、根据第二指令信息集,生成与多轮对话匹配的历史轮次关联信息。
66.具体的,在得到服务端反馈的第二指令信息集之后,可以进一步的根据该指令信息集,更新与多轮对话匹配的历史轮次关联信息。例如,可以将该第二信息指令集存储在目标存储区域中(例如,栈容器的栈顶区域),从而生成与多轮对话匹配的历史轮次关联信息。
67.本实施例的技术方案,如果确定当前未存储与多轮对话匹配的历史轮次关联信息,则将本轮用户语音发送至服务端,以指示服务端生成与本轮用户语音匹配的第二指令信息集;根据服务端反馈的第二指令信息集,生成本轮响应语音,并将本轮响应语音提供给用户;根据第二指令信息集,生成与多轮对话匹配的历史轮次关联信息,可以生成与多轮对话匹配的历史轮次关联信息,为实现多轮对话提供依据。
68.实施例三
69.图3是本发明实施例三中的一种多轮对话方法的流程图,本实施例是对上述各技术方案的进一步细化,本实施例中的技术方案可以与上述一个或者多个实施例中的各个可选方案结合。如图3所示,多轮对话方法可以包括如下步骤:
70.步骤310、在接收到用户输入的语音唤醒词之后,获取用户的用户属性信息。
71.其中,用户输入的语音唤醒词可以为任意一个词语,例如,“您好”、“小a,小a”或者“开机”等词语,本发明实施例中对其不加以限制。用户属性信息可以包括:用户代理(user agent)、用户名(user id)或者用户网际互联协议(internet protocol,ip)地址等等,本发明实施例中对其不加以限制。
72.具体的,当客户端接收到用户输入的语音唤醒词之后,可以进一步的获取输入唤醒词的用户的属性信息。例如,当接收到用户a的唤醒词之后,可以进一步的获取该用户的user agent、user id或者ip地址等信息。
73.步骤320、对用户的属性信息进行加密和/或编码处理,得到与用户对应的唯一识别码,并对唯一识别码进行合法性验证。
74.其中,本发明实施例中与用户对应的唯一识别码以字符串的形式表示,本发明实施例中对该字符串的具体形式不作限定。
75.在具体实现中,在获取到唤醒客户端中的对话系统的用户的属性信息之后,可以进一步的对获取到的属性信息进行加密、编码或者同时进行加密和编码处理,从而得到与用户对应的唯一识别码,进一步的,可以通过该唯一识别码验证该用户是否合法。
76.步骤330、如果确定合法性验证结果为合法,则保持唤醒状态并接收用户输入的用户语音。
77.在具体实现中,如果对与用户对应的唯一识别码进行验证,确定该用户合法,则客户端中的对话系统保持唤醒状态,并可以接收用户输入的语音信息。
78.步骤340、创建与用户针对多轮对话的栈容器,栈容器用于存储历史轮次关联信息。
79.其中,栈容器为遵循栈的存储规则的容器,本发明实施例中对栈容器的大小不作限定。可以理解的是,本发明实施例中栈容器是一种运算受限的线性表,限定仅在表尾进行插入和删除操作的线性表,这一端被称为栈顶;相对地,把另一端称为栈底。向一个栈容器中插入新数据又称作进栈、入栈或压栈,它是把新数据放到栈顶数据的上面,使之成为新的栈顶数据;从一个栈删除数据又称作出栈或退栈,它是把栈顶数据删除掉,使其相邻的数据
成为新的栈顶数据。
80.在具体实现中,确定用户的合法性验证结果为合法之后,可以进一步的创建与用户对应的,针对多轮对话的栈容器,该栈容器可以用于存储多轮对话的历史轮次关联信息。
81.可选的,确定当前存储与多轮对话匹配的历史轮次关联信息,可以包括:如果栈容器中当前存储有信息,则确定当前存储与多轮对话匹配的历史轮次关联信息,并获取栈容器中的栈顶数据作为历史轮次关联信息。
82.具体的,栈容器可以用于存储多轮对话的历史轮次关联信息,并将该信息存储在栈容器的栈顶;据此,当栈容器中当前存储有信息,则可以确定当前栈容器内存储有与多轮对话匹配的历史轮次关联信息,同时,栈容器的栈顶数据即为该历史轮次关联信息。
83.步骤350、如果确定当前存储与多轮对话匹配的历史轮次关联信息,则将历史轮次关联信息和本轮用户语音进行组合,并将组合信息发送至服务端,以指示服务端生成与组合信息匹配的第一指令信息集。
84.步骤360、根据服务端反馈的第一指令信息集,生成本轮响应语音,并将本轮响应语音提供给用户。
85.步骤370、根据第一指令信息集,更新与多轮对话匹配的历史轮次关联信息。
86.在本发明实施例的一个可选实施方式中,根据第一指令信息集,更新与多轮对话匹配的历史轮次关联信息,可以包括:将第一指令集与栈顶数据进行组合,并将组合结果数据作为新的历史轮次关联信息压入栈容器的栈顶。
87.可选的,在根据第一指令信息集,更新与多轮对话匹配的历史轮次关联信息之后,还可以包括:删除与多轮对话匹配的栈容器。这样设置的好处在于,通过删除栈容器,可以节省客户端的存储空间,当产生多个多轮对话时,不会给客户端带来存储压力。
88.本实施例的技术方案,在接收到用户输入的语音唤醒词之后,获取用户的用户属性信息;对用户的属性信息进行加密和/或编码处理,得到与用户对应的唯一识别码,并对唯一识别码进行合法性验证;如果确定合法性验证结果为合法,则保持唤醒状态并接收用户输入的用户语音,可以保证进行多轮对话的用户均为合法用户,杜绝了非法用户的参与;同时,创建与用户针对多轮对话的栈容器,栈容器用于存储历史轮次关联信息;缓解了服务端的存储压力,可以减少服务器资源的消耗,可以实现多轮对话。
89.实施例四
90.图4是本发明实施例四中的一种多轮对话方法的流程图,本实施例可适用于服务端对客户端发送的信息进行处理,并将处理结果反馈至客户端的情况,该方法可以由多轮对话装置来执行,该装置可以通过软件和/或硬件的方式实现,并集成在服务端中,其中,本发明实施例中的服务端可以包括一个或者多个服务器,本发明实施例中对其不加以限制。具体的,参考图4,该方法具体包括如下步骤:
91.步骤410、接收客户端发送的组合信息,并生成与组合信息匹配的第一指令信息集;其中,组合信息包括历史轮次关联信息和本轮用户语音。
92.其中,客户端发送的组合信息中包括存储在,与用户针对多轮对话的栈容器的历史轮次关联信息和本轮用户语音。在具体实现中,服务端接收到客户端发送的组合信息之后,可以对该组合信息进行处理,从而生成与该组合信息的匹配的第一指令信息集。
93.可选的,生成与组合信息匹配的第一指令信息集,可以包括:确定与组合信息对应
的结构化指令;对结构化指令进行加密和/或编码处理,得到第一指令信息集;相应的,确定与组合信息对应的结构化指令,包括:通过语音识别模块(automatic speech recognition,asr)对组合信息进行语音识别,和/或通过自然语言处理模块(natural language processing,nlu)对组合信息进行自然语言处理;得到与组合信息对应的结构化指令。
94.在具体实现中,服务端在接收到客户端发送的组合信息之后,可以分别通过asr模块对组合信息进行语音识别,或者通过nlu模块对组合信息进行自然语言处理;也可以通过asr模块和nlu模块同时对组合信息进行语音识别和自然语言处理,进而得到与该组合信息对应的结构化指令。
95.在得到与组合信息对应的结构化指令之后,服务端可以进一步的选取空闲对话装置(dm)对该结构化进行处理,例如,对得到的结构化指令进行加密、编码或者加密和编码处理,从而得到与组合信息匹配的第一指令信息集。
96.这样设置的好处在于,服务端可以实现分布式、多线程对客户端发送的组合信息进行处理,加快了多轮对话的处理效率。
97.步骤420、将第一指令信息集反馈至客户端。
98.在具体实现中,客户端对接收到的组合信息进行处理,得到与该组合信息进行处理,得到与该组合信息对应的第一指令信息集之后,可以进一步的将该第一指令信息集反馈至客户端。
99.在本发明实施例的一个具体例子中,服务端可以将第一指令信息集发送至用户针对多轮对话的栈容器中,此时,第一指令信息集存储在栈容器的栈顶。
100.本发明实施例的技术方案,服务端通过接收客户端发送的组合信息,并生成与组合信息匹配的第一指令信息集;其中,组合信息包括历史轮次关联信息和本轮用户语音;将第一指令信息集反馈至客户端,解决了现有的任务式多轮对话中,通过服务端标记多轮对话的开始以及追踪对话状态,而消耗了大量服务端资源的问题,服务端仅对客户端发送的信息进行处理即可,同时,可以实现分布式、多线程对客户端发送的信息进行处理,进而加快了多轮对话的处理速度。
101.在上述技术方案的基础上,本发明实施例中涉及到的多轮对话方法,还可以包括:接收客户端发送的本轮用户语音,并生成与本轮用户语音匹配的第二指令信息集;将第二指令信息集反馈至客户端。
102.需要说明的是,当本轮对话为多轮对话的第一轮对话,或者在本轮对话之前的历史轮次对话为无效对话时,客户端的用户针对该多轮对话的栈容器中未存储与该多轮对话匹配的历史轮次关联信息时,客户端直接将本轮用户语音发送至服务端,此时,服务端接收到的信息也为本轮用户语音,并对其进行处理,例如,通过asr模块对本轮用户语音进行语音识别,或者nlu模块对本轮用户语音进行自然语言处理,得到与本轮用户语音对应的结构化指令,进一步的,选取空闲dm对该结构化指令进行加密、编码处理,从而得到第二指令信息集;进一步的,将第二指令信息集发送至用户针对多轮对话的栈容器中,此时,第二指令信息集存储在栈容器的栈顶。
103.这样设置的好处在于,解决了现有的任务式多轮对话中,通过服务端标记多轮对话的开始以及追踪对话状态,而消耗了大量服务端资源的问题,服务端仅对客户端发送的
信息进行处理即可,同时,可以实现分布式、多线程对客户端发送的信息进行处理,进而加快了多轮对话的处理速度。
104.为了使本领域技术人员更好地理解本实施例多轮对话方法,下面采用一个具体示例进行说明,具体过程包括有:
105.第一步:客户端通过语音唤醒词激活语音对话系统,对话系统根据当前用户画像(请求的user agent,user id,ip地址等,依据实际系统中的用户信息)进行加密和编码生成当前系统内唯一字符串;为了实现分布式,同时还要将该字符串与当前运行系统的机器号再做一次编码和加密,生成最终要存储的字符串,同时创建一个栈容器用来存储指令信息,将最终生成的字符串存入系统的共享内存用来对用户的合法性进行验证;
106.第二步:语音对话系统接收客户端的请求,asr模块和nlu模块把请求的自然语言转化为可识别的结构化指令(结构化指令是经过语音识别和自然语言理解处理的结果)并将该指令进行加密和编码,存入第一步中创建的与该用户对应的栈容器;
107.第三步:系统对客户端做响应,把指令栈发送给客户端。由于第二步中的结构化指令是系统有限集内中定义,因此客户端对该指令集的处理方法是系统预知的,此时客户端可以根据栈顶指令做业务操作(请求其他服务器或者本地计算);
108.第四步:客户端通过语音操作继续对服务端对话系统做查询(第二轮对话),此时客户端要把第一轮对话系统响应的指令栈和本轮的新的query语句打包发送到服务端,服务端根据用户画像和之前存入的字符串做用户查询和合法性校验,校验通过后,把客户端发送的数据(自然语言)传入nlu模块进行指令集转化,返回后入栈(客户端发送的栈)把当前数据结构直接传入语音对话系统的策略引擎,获取新的指令并返回给客户端。
109.图5是本发明实施例四中的一种多轮对话方法的交互示意图,如图5所示,其主要包括如下步骤:
110.步骤500、在接收到用户输入的语音唤醒词之后,获取用户的用户属性信息。
111.步骤510、对用户的属性信息进行加密和/或编码处理,得到与用户对应的唯一识别码,并对唯一识别码进行合法性验证。
112.步骤520、如果确定合法性验证结果为合法,则保持唤醒状态并接收用户输入的用户语音。
113.步骤530、将第一轮用户语音发送至服务端。
114.步骤540、接收客户端发送的第一轮用户语音,并生成与第一轮用户语音匹配的第一指令信息集。
115.步骤550、将第一指令信息集反馈至客户端。
116.步骤560、根据第一指令信息集,生成与多轮对话匹配的历史轮次关联信息。
117.步骤570、将历史轮次关联信息和第二轮用户语音进行组合,并将组合信息发送至服务端。
118.步骤580、接收客户端发送的组合信息,并生成与组合信息匹配的第二指令信息集。
119.步骤590、将第二指令信息集反馈至客户端。
120.步骤600、根据第二指令信息集,更新与多轮对话匹配的历史轮次关联信息。
121.需要说明的是,图5中的例子仅以2轮对话对客户端以及服务端的信息交互进行示
意,其并不是对本发明实施例的限定。
122.本发明实施例基于现有语音对话系统的对话策略能力(基于机器学习的对话预测),通过语音对话不断解析存储指令栈,把指令栈转化成语音对话引擎的策略预测模块的可识别指令集,并发送给客户端,来达到语音对话系统并不需要维护用户语音的对话状态(ds)就可以实现任务式对话的需求。
123.为了更好地理解本发明实施例,图6是本发明实施例四中的一种多轮对话实现的流程图,如图6所示,其主要包括如下步骤:
124.步骤610、用户语音请求航班查询操作,语音输入“我要预定航班”。
125.在具体实现中,用户语音输入“我要预订航班”之后,客户端以及服务端的处理流程如图6a所示,其主要包括如下步骤:
126.步骤611、用户语音输入“我要预订航班”。
127.步骤612、生成用户哈希值,创建栈容器,并请求nlu模块。
128.步骤613、nlu模块识别用户意图,并将识别结果发送至空闲dm(例如,dm01)。
129.步骤614、dm获取下一步策略,询问出发地,并生成指令集,并响应客户端请求。
130.步骤615、客户端播放询问用户出发地。
131.步骤620、用户进行第二轮查询,语音输入“北京”。
132.在具体实现中,用户语音响应询问出发地的语音,输入“北京”之后,客户端以及服务端的处理流程如图6b所示,其主要包括如下步骤:
133.步骤621、用户语音输入“北京”。
134.步骤622、匹配用户哈希值,匹配栈容器,并请求nlu模块。
135.步骤623、nlu模块识别用户意图,并将识别结果发送至空闲dm(例如,dm02)。
136.步骤624、dm获取下一步策略,询问目的地,并生成指令集,并响应客户端请求。
137.步骤625、客户端播放询问用户目的地。
138.步骤630、用户进行第三轮查询,语音输入“上海”。
139.在具体实现中,用户语音响应询问目的地的语音,输入“上海”之后,客户端以及服务端的处理流程如图6c所示,其主要包括如下步骤:
140.步骤621、用户语音输入“上海”。
141.步骤612、匹配用户哈希值,匹配栈容器,并请求nlu模块。
142.步骤613、nlu模块识别用户意图,并将识别结果发送至空闲dm(例如,dm03,如果此时dm03繁忙,则可以将识别结果发送至其他空闲dm)。
143.步骤614、dm获取下一步策略,并生成指令集,并响应客户端请求。
144.步骤615、以满足查询条件,客户端可直接播报查询结果。
145.需要说明的是,在上述各个步骤中,如果dm繁忙,都可以将链接重定向到空闲服务的dm中。
146.上述各例子中,语音对话管理dm状态维护的废弃,是对话流程更清晰,系统的语音业务处理延展性得到提高;通过动态部署dm,提高资源利用,减少资源浪费,降低了维护成本。
147.实施例五
148.图7是本发明实施例五中的一种多轮对话装置的结构示意图,该装置可以执行上
述各实施例中涉及到的多轮对话方法。参照图5,该装置包括:用户语音获取模块710、第一指令信息集确定模块720、响应语音确定模块730以及关联信息更新模块740。
149.其中,用户语音获取模块710,用于获取用户在多轮对话过程中输入的本轮用户语音;
150.第一指令信息集确定模块720,用于如果确定当前存储与多轮对话匹配的历史轮次关联信息,则将历史轮次关联信息和本轮用户语音进行组合,并将组合信息发送至服务端,以指示服务端生成与组合信息匹配的第一指令信息集;
151.响应语音确定模块730,用于根据服务端反馈的第一指令信息集,生成本轮响应语音,并将本轮响应语音提供给用户;
152.关联信息更新模块740,用于根据第一指令信息集,更新与多轮对话匹配的历史轮次关联信息。
153.本实施例的技术方案,客户端通过用户语音获取模块获取用户在多轮对话过程中输入的本轮用户语音;通过第一指令信息集确定模块如果确定当前存储与多轮对话匹配的历史轮次关联信息,则将历史轮次关联信息和本轮用户语音进行组合,并将组合信息发送至服务端,以指示服务端生成与组合信息匹配的第一指令信息集;通过响应语音确定模块根据服务端反馈的第一指令信息集,生成本轮响应语音,并将本轮响应语音提供给用户;通过关联信息更新模块根据第一指令信息集,更新与多轮对话匹配的历史轮次关联信息,解决了现有的任务式多轮对话中,通过服务端标记多轮对话的开始以及追踪对话状态,而消耗了大量服务端资源的问题,在减少服务端资源消耗的同时,可以实现多轮对话。
154.可选的,本发明实施例中涉及到的多轮对话装置还包括:第二指令信息集确定模块、第二响应语音生成模块以及第二关联信息生成模块;
155.第二指令信息集确定模块,用于如果确定当前未存储与多轮对话匹配的历史轮次关联信息,则将本轮用户语音发送至服务端,以指示服务端生成与本轮用户语音匹配的第二指令信息集;
156.第二响应语音生成模块,用于根据服务端反馈的第二指令信息集,生成本轮响应语音,并将本轮响应语音提供给用户;
157.第二关联信息生成模块,用于根据第二指令信息集,生成与多轮对话匹配的历史轮次关联信息。
158.可选的,本发明实施例中涉及到的多轮对话装置还包括:属性信息获取模块、唯一识别码确定模块以及用户语音接收模块;
159.属性信息获取模块,用于在接收到用户输入的语音唤醒词之后,获取用户的用户属性信息;
160.唯一识别码确定模块,用于对用户的属性信息进行加密和/或编码处理,得到与用户对应的唯一识别码,并对唯一识别码进行合法性验证;
161.用户语音接收模块,用于如果确定合法性验证结果为合法,则保持唤醒状态并接收用户输入的用户语音。
162.可选的,本发明实施例中涉及到的多轮对话装置还包括:栈容器创建模块,用于创建与用户针对多轮对话的栈容器,栈容器用于存储历史轮次关联信息;
163.相应的,第一指令信息集确定模块,具体用于如果栈容器中当前存储有信息,则确
定当前存储与多轮对话匹配的历史轮次关联信息,并获取栈容器中的栈顶数据作为历史轮次关联信息。
164.可选的,响应语音确定模块730,具体用于将第一指令集与栈顶数据进行组合,并将组合结果数据作为新的历史轮次关联信息压入栈容器的栈顶。
165.可选的,本发明实施例中涉及到的多轮对话装置还包括:栈容器删除模块,用于删除与多轮对话匹配的栈容器。
166.本发明实施例所提供的多轮对话装置可执行本发明任意实施例所提供的多轮对方法,具备执行方法相应的功能模块和有益效果。
167.实施例六
168.图8是本发明实施例六中的一种多轮对话装置的结构示意图,该装置可以执行上述各实施例中涉及到的多轮对话方法。参照图8,该装置包括:第一指令信息集生成模块810以及第一指令信息集反馈模块820。
169.其中,第一指令信息集生成模块810,用于接收客户端发送的组合信息,并生成与组合信息匹配的第一指令信息集;其中,组合信息包括历史轮次关联信息和本轮用户语音;
170.第一指令信息集反馈模块820,用于将第一指令信息集反馈至客户端。
171.本实施例的技术方案,服务端通过第一指令信息集生成模块接收客户端发送的组合信息,并生成与组合信息匹配的第一指令信息集;其中,组合信息包括历史轮次关联信息和本轮用户语音;通过第一指令信息集反馈模块将第一指令信息集反馈至客户端,解决了现有的任务式多轮对话中,通过服务端标记多轮对话的开始以及追踪对话状态,而消耗了大量服务端资源的问题,服务端仅对客户端发送的信息进行处理即可,同时,可以实现分布式、多线程对客户端发送的信息进行处理,进而加快了多轮对话的处理速度。
172.可选的,第一指令信息集生成模块810,包括:结构化指令确定单元,用于确定与组合信息对应的结构化指令;对结构化指令进行加密和/或编码处理,得到第一指令信息集;
173.结构化指令确定单元,具体用于通过语音识别模块asr对组合信息进行语音识别,和/或通过自然语言处理模块nlu对组合信息进行自然语言处理;得到与组合信息对应的结构化指令。
174.可选的,本发明实施例中涉及到的多轮对话装置还包括:空闲对话关联装置确定模块,用于确定空闲对话关联装置,并通过空闲对话关联装置对结构化指令进行处理,得到与第一指令信息集;将第一指令信息集发送至针对多轮会话的栈容器中。
175.可选的,本发明实施例中涉及到的多轮对话装置还包括:本轮用户语音接收模块,和第二指令信息反馈模块;
176.本轮用户语音接收模块,用于接收客户端发送的本轮用户语音,并生成与本轮用户语音匹配的第二指令信息集;
177.第二指令信息反馈模块,用于将第二指令信息集反馈至客户端。
178.本发明实施例所提供的多轮对话装置可执行本发明任意实施例所提供的多轮对方法,具备执行方法相应的功能模块和有益效果。
179.实施例七
180.图9为本发明实施例七提供的一种设备、终端或者服务器的结构示意图,如图9所示,该设备、终端或者服务器包括处理器90、存储器91、输入装置92和输出装置93;设备、终
端或者服务器中处理器90的数量可以是一个或多个,图9中以一个处理器90为例;设备、终端或者服务器中的处理器90、存储器91、输入装置92和输出装置93可以通过总线或其他方式连接,图9中以通过总线连接为例。
181.存储器91作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的多轮对话方法对应的程序指令/模块(例如,如图7所示的多轮对话装置中的用户语音获取模块710、第一指令信息集确定模块720、响应语音确定模块730以及关联信息更新模块740,或者如图8所示的多轮对话装置中的第一指令信息集生成模块810以及第一指令信息集反馈模块820)。处理器90通过运行存储在存储器91中的软件程序、指令以及模块,从而执行设备、终端或者服务器的各种功能应用以及数据处理,即实现上述的多轮对话方法。
182.存储器91可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器91可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器91可进一步包括相对于处理器90远程设置的存储器,这些远程存储器可以通过网络连接至设备、终端或者服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
183.输入装置92可用于接收输入的数字或字符信息,以及产生与设备、终端或者服务器的用户设置以及功能控制有关的键信号输入。输出装置93可包括显示屏等显示设备。
184.实施例八
185.本发明实施例八还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种多轮对话方法,该方法包括:
186.获取用户在多轮对话过程中输入的本轮用户语音;
187.如果确定当前存储与多轮对话匹配的历史轮次关联信息,则将历史轮次关联信息和本轮用户语音进行组合,并将组合信息发送至服务端,以指示服务端生成与组合信息匹配的第一指令信息集;
188.根据服务端反馈的第一指令信息集,生成本轮响应语音,并将本轮响应语音提供给用户;
189.根据第一指令信息集,更新与多轮对话匹配的历史轮次关联信息。
190.或者,接收客户端发送的组合信息,并生成与组合信息匹配的第一指令信息集;其中,组合信息包括历史轮次关联信息和本轮用户语音;
191.将第一指令信息集反馈至客户端。
192.当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的多轮对话方法中的相关操作。
193.通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质
中,如计算机的软盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
194.值得注意的是,上述多轮对话装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
195.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。