本发明涉及计算机技术领域,尤其涉及一种语音技能的对话管理器配置方法、人机对话方法及系统。
背景技术:
百度dueros技能开放平台、阿里aligenie语音技能开放平台、腾讯云小微语音技能开放平台、科大讯飞iflyos技能开放平台、若琪rokid技能开放平台。
上面这些语音技能开放平台都提供了语音对话中的对话管理的规则逻辑制定。用户在开放平台上开发技能制定完成期待的对话规则逻辑后,对话管理器可以根据用户的规则对多轮对话进行管理,从而完成整个技能的多轮对话交互。
以上开放平台的技能开发中都存在只能设计简单对话逻辑的缺陷。因为支持的对话逻辑很有限,所以多轮对话主要用途是当用户的说法中slot缺失时,发起询问来达到填充slot的目的。对于某些复杂一些的对话场景,比如游戏问答,信息获取,需要儿童反馈类的教育功能等都无法通过平台定制完成。
造成这个缺陷的主要原因是在目前智能语音对话使用场景中主要分为两大类:1、简单的任务型对话;2、复杂的流程型对话。简单的任务型对话主要是满足用户通过语音完成具体操作任务的需求,比如控制智能家居,导航,打电话,听儿歌听诗词等。这种场景下对话按照用户说法中的关键slot值去执行配置的指令(比如command或者发起webhook请求)然后根据执行结果进行播报即可完成整个对话交互。这种场景的对话在上面语音技能开放平台上已经可以很好的支持,用户可以方便的定制完成自己需要的对话管理逻辑。
但是对于复杂一些的流程型对话,因为需要用到更多的对话上下文情况,也就是需要记录用户在对话过程中的一些状态,而这些状态是无法单独从用户的说法中获取的。比如在游戏问答场景下,无法仅根据用户说法中slot的值就执行某个动作,而是需要和问题的答案进行比对后才可以知道;信息获取场景中也是需要知道当前处于获取哪个信息情况下才知道用户回答的内容是对应哪个信息;和简单的任务型听儿歌听诗词相比,孩子只能被动的听机器发出的语音,显然有反馈的教育类技能能更好的与孩子互动从而提升学习的体验。但因为不同的对话流程在细节上的逻辑是各不相同的,所以开发制定这种复杂流程的对话管理逻辑就需要在语音技能开放平台上提供一种更抽象的实现方式来完成这种技能的开发。目前上面这些语音技能开放平台缺少这种抽象的实现方式,导致了只能开发简单的任务型对话的场景,而不能开发复杂一些的流程型对话。
行业内的人员遇到这种情况,一般是提需求到对话管理研发工程师,然后由工程师通过写代码的方式来定制对话管理的逻辑从而实现需求。但是这种方式由于技能开发者无法自主完成技能的开发,所以既不高效,也不容易扩展。
技术实现要素:
本发明实施例提供一种语音技能的对话管理器配置方法、人机对话方法及系统,用于至少解决上述技术问题之一。
第一方面,本发明实施例提供一种语音技能的对话管理器配置方法,包括:
接收用户为待创建语音技能所提交的全局常量信息和全局变量信息;
检测所述用户为所述待创建语音技能所配置的开始状态节点、多个过程状态节点和结束状态节点;
基于所述全局常量信息和所述全局变量信息为所述多个过程状态节点配置执行逻辑;
基于所述执行逻辑确定所述开始状态节点、多个过程状态节点和结束状态节点之间的跳转关系,并组织为对话状态机,以实现所述待创建语音技能的不同状态节点之间的跳转管理。
第二方面,本发明实施例提供一种人机对话方法,应用于配置有采用权利要求1或2所述的方法所配置的对话管理器的语音技能;所述方法包括:
接收用户的语音输入,并获取对应于所述用户的语音输入的文本信息;
根据所述文本信息确定对应的当前过程状态节点;
执行所述当前过程状态节点所配置的执行逻辑;
根据执行结果确定响应于所述用户的语音输入的输出内容。
第三方面,本发明实施例提供一种语音技能的对话管理器配置系统,包括:
信息接收模块,用于接收用户为待创建语音技能所提交的全局常量信息和全局变量信息;
检测模块,用于检测所述用户为所述待创建语音技能所配置的开始状态节点、多个过程状态节点和结束状态节点;
配置模块,用于基于所述全局常量信息和所述全局变量信息为所述多个过程状态节点配置执行逻辑;
状态机生成模块,用于基于所述执行逻辑确定所述开始状态节点、多个过程状态节点和结束状态节点之间的跳转关系,并组织为对话状态机,以实现所述待创建语音技能的不同状态节点之间的跳转管理。
第四方面,本发明实施例提供一种人机对话系统,应用于配置有采用本发明所述的方法所配置的对话管理器的语音技能;所述系统包括:
语音识别模块,用于接收用户的语音输入,并获取对应于所述用户的语音输入的文本信息;
节点确定模块,用于根据所述文本信息确定对应的当前过程状态节点;
逻辑执行模块,用于执行所述当前过程状态节点所配置的执行逻辑;
输出内容确定模块,用于根据执行结果确定响应于所述用户的语音输入的输出内容。
第五方面,本发明实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项语音技能的对话管理器配置方法和/或人机对话方法。
第六方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项对话管理器配置方法和/或人机对话方法。
第七方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项对话管理器配置方法和/或人机对话方法。
本发明实施例的有益效果在于:基于本发明的语音技能的对话管理器配置方法,用户只需要通过开发平台的配置界面上传创建语音技能所需要用到的全局常量信息和全局变量信息,并在开发平台的配置界面之上为该语音技能配置所需要的开始状态节点、过程状态节点和结束状态节点即可完成对该语音技能的对话管理器的配置工作。降低了对用户的专业性要求,避免了用户对开发人员的依赖性,简化了用于复杂多轮对话的语音技能的对话管理器的可定制化。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的语音技能的对话管理器配置方法的一实施例的流程图;
图2为本发明的语音技能的对话管理器配置方法的另一实施例的流程图;
图3为本发明中的以成语接龙为例所创建的状态节点构成的状态机示意图;
图4为本发明的人机对话方法的一实施例的流程图;
图5为本发明的人机对话方法的另一实施例的流程图;
图6为本发明的语音技能的对话管理器配置系统的一实施例的原理框图;
图7为本发明的人机对话系统的一实施例的原理框图;
图8为本发明的电子设备的一实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
如图1所示,为本发明的语音技能的对话管理器配置方法的一实施例的流程图,该方法包括:
s11、接收用户为待创建语音技能所提交的全局常量信息和全局变量信息;
s12、检测所述用户为所述待创建语音技能所配置的开始状态节点、多个过程状态节点和结束状态节点;
s13、基于所述全局常量信息和所述全局变量信息为所述多个过程状态节点配置执行逻辑;
s14、基于所述执行逻辑确定所述开始状态节点、多个过程状态节点和结束状态节点之间的跳转关系,并组织为对话状态机,以实现所述待创建语音技能的不同状态节点之间的跳转管理。
基于本发明的语音技能的对话管理器配置方法,用户只需要通过开发平台的配置界面上传创建语音技能所需要用到的全局常量信息和全局变量信息,并在开发平台的配置界面之上为该语音技能配置所需要的开始状态节点、过程状态节点和结束状态节点即可完成对该语音技能的对话管理器的配置工作。降低了对用户的专业性要求,避免了用户对开发人员的依赖性,简化了用于复杂多轮对话的语音技能的对话管理器的可定制化。
在一些实施例中,所述基于所述全局常量信息和所述全局变量信息为所述多个过程状态节点配置执行逻辑包括:
为所述多个过程状态节点中的每一个过程状态节点配置以下执行逻辑:在所述待创建语音技能实际使用中判断所接收的用户的语音输入是否满足第一预设条件,以对所述全局变量进行赋值;
判断所述全局变量的当前取值是否满足第二预设条件;
为所述待创建语音技能配置,在满足所述第二预设条件时的输出结果、执行动作和当前过程状态节点应当跳转到的下一个节点。
本发明不仅可以高效简单的实现复杂流程的对话管理的逻辑,而且由于不需要研发工程师的介入,从而可以让技能开发者更加自由的设计对话的流程同时可以灵活的根据实际体验不断地调整对话管理的逻辑,使得自然语音对话交互更加多样性,从而提升整个技能落地的体验。
在本发明的一些实施例中,对复杂流程多轮对话在对话管理中遇到的各种不同逻辑需求进行抽象,本发明认为不管对话中各种场景和各种需求下的具体逻辑如何,一共可分为三大类输入需要判断:
1、机器做出的回复内容,比如提出问题,或者对用户语音输入的判断后的回答等,这个输入主要是表达了当前用户在对话流程中处于哪个环节;
2、用户本身的语音输入内容,包括asr文本、语义解析后的slot槽、intent等(这也是简单任务型对话设计对话管理逻辑时用到的);
3、用户输入触发的操作返回值,比如查询结果、回复正确与否、操作执行结果是否正常等。
另外需要注意的是还有一些隐含的输入也是在技能开发中需要用到的,比如用户的id信息等。其次在具体的设计中将上述输入对应起来,在此我们使用了状态机来辅助完成实现:比如对于记录用户在流程中所处的环节通过状态机中的状态来记录;对于用户语音输入的信息通过全局常量来记录;对于触发得到的返回值利用全局变量来记录;另外对于用户id等信息也是使用全局常量来记录。最后通过前端界面完成对话管理逻辑的所有制定。
如图2所示为本发明的语音技能的对话管理器配置方法的另一实施例的流程图,该方法包括:
步骤1:创建技能中所有用到的全局常量值。其中为了方便使用,与用户说法和固定信息相关的内容已经预置到了全局常量中。
步骤2:创建技能中所有用到的全局变量值,用于保存对话的关键信息。
步骤3:根据对话的逻辑创建出所有需要的记录用户所处环节的状态节点。
步骤4:对每个状态节点中的逻辑进行设置。
包括步骤4.1在判断条件执行前需要预先执行的动作(用于更新全局变量的值便于接下来在条件中进行判断);
步骤4.2设置需要判断的具体条件;
步骤4.3条件满足后向用户的客户端输出的内容;
步骤4.4条件满足后需要执行的动作(比如更新全局变量会在接下来的状态中使用或者执行webhook操作等);
步骤4.5此条件满足后要跳转到的下一个状态,当然也可以是不进行跳转保持当前状态,那么用户下一轮的对话就会直接进入到这个状态中再进行条件的判断。
步骤4.1至步骤4.5这五个子内容就组成了状态节点一行逻辑,每个节点由多行这样的逻辑组成。
示例性地,语音技能以成语接龙为例,大致的需求是根据预先设置的题目数量与用户进行成语接龙游戏。
首先,用户通过说我要玩成语接龙之类的话术进入到技能中,此时系统会先判断用户是否是首次玩或者好久没有玩此游戏了,是的话则需要播详细的游戏规则,否则不播详细的游戏规则。
然后,先由系统先开始出题,让用户进行接龙,用户接龙成功后轮到系统接龙,直到完成所有的题目数量。
其中,每个题目用户可以有两次回答的机会,当两次机会都回答错误或者答不上时系统会播一个推荐的接龙成语然后继续出下一个题,也可以说跳过获得此次接龙的一个推荐成语然后系统继续出题,同时支持说退出来退出游戏。
最后,当所有题目都回答过之后,根据用户答对题目的个数来给出鼓励语后退出技能。另外为了提高可玩性,会对所有出现过的成语做记录。
示例性地,对于步骤1,全局常量是指那些在技能设计时需要设计的某些变量,只会在最开始被初始化赋值,之后不能在技能过程中被修改的变量。例如,成语接龙中题目的个数,多长时间之外被认为是好久没有玩过。总之根据技能中实际用到的信息,配置好全局常量的名称以及初始值。后续就可以在技能的对话过程中使用了。
对于步骤2,对于成语接龙技能,需要创建如下表1所列的全局变量:
如上表所示,关键信息为最右一列的实际使用中的作用。例如,对于接龙是否成功这个变量来说,首先在收到用户的回答后,与题目进行判断,如果没有在之前出现过的成语中出现过,且接龙成功那么就将接龙是否成功这个变量赋值为true,否则赋值为false;其次当接龙是否成功值为true时,会把更新答对题目、已用成语、并将用户的回答作为成功接龙的成语来出下一个题目;当接龙是否成功取值为false时,会更新当前题目答错次数。
对于步骤3,如图3所示,以成语接龙为例所创建的状态节点构成的状态机示意图。其中,包括:进入状态节点、出题状态节点、回答状态节点、打分状态节点、end状态节点。
其中,进入状态节点是指用户说我要玩成语接龙这样的说法进入技能时所要处理的逻辑内容。
出题状态节点是指需要对用户进行出下一个题目时所要执行的逻辑内容。
回答状态节点是指题目出完后收到用户的回复时所要执行的逻辑内容。
打分状态节点是指所有的题目都回答完毕后根据答对题目次数进行播报的逻辑内容。
最后的end状态节点不执行具体的逻辑,仅仅是标记此时退出状态机,结束多轮对话。
示例性地,以成语接龙为例,上述节点是根据具体要执行的内容进行设计的。主要是通过划分节点,让逻辑更加清晰。也可以通过不同的状态之间的跳转来复用逻辑。比如用户首次进入技能时要出题,后面每次回答完题目还是要出题,所以就将出题逻辑抽出来作为一个状态节点。
对于步骤4,以成语接龙的回答状态节点为例,当向用户发出成语题目后,就会进入回答状态节点中,等待用户的输入。
此时步骤4.1的预先执行动作就是获取用户的输入和出的成语题目接龙比对的结果,也就是给变量:接龙是否成功进行赋值。
步骤4.2的条件就是判断接龙是否成功这个变量的值。
步骤4.3是步骤4.2的条件满足后的输出,比如nlg、控件、command等。
步骤4.4是步骤4.2的条件满足后的执行动作,也是对变量的取值更新。
步骤4.5是步骤4.2的条件满足后要跳转的节点状态。
在一些实施例中,因为每个状态节点处理的输入可能性有多种,每一个逻辑行都表示为对于输入的一种判断条件,所以每个状态节点有多行逻辑,可以简单的将每一行看成是一个if语句块。
示例性地,以成语接龙的回答状态节点为例给出如下表2中的三行逻辑行示例:
如图4所示,为本发明的人机对话方法的一实施例的流程图,该方法应用于配置有采用前述任一实施例所述语音技能的对话管理器配置方法所配置的对话管理器的语音技能;所述人机对话方法包括:
s21、接收用户的语音输入,并获取对应于所述用户的语音输入的文本信息;
s22、根据所述文本信息确定对应的当前过程状态节点;
s23、执行所述当前过程状态节点所配置的执行逻辑;
s24、根据执行结果确定响应于所述用户的语音输入的输出内容。
本发明不仅可以高效简单的实现复杂流程的对话管理的逻辑,而且由于不需要研发工程师的介入,从而可以让技能开发者更加自由的设计对话的流程同时可以灵活的根据实际体验不断地调整对话管理的逻辑,使得自然语音对话交互更加多样性,从而提升整个技能落地的体验。
在一些实施例中,所述执行逻辑包括多行逻辑条件;所述执行所述当前过程状态节点所配置的执行逻辑包括:逐行执行所述多行逻辑条件;当执行当前行逻辑条件满足相应的第二预设条件时,执行预先配置的所述输出结果和执行动作。
在一些实施例中,所述根据执行结果确定响应于所述用户的语音输入的输出内容包括:将所述输出结果作为响应于所述用户的语音输入的输出内容呈现给所述用户。
在一些实施例中,当执行当前行逻辑条件满足相应的第二预设条件时,所述方法还包括:
根据所述执行动作的结果确定当前过程状态节点应当跳转到的下一个节点;
当所述下一个节点为过程状态节点时,执行所述下一个节点所配置的执行逻辑;
当所述下一个节点为结束状态节点时,结束当前人机对话过程。
如图5所示,为本发明的人机对话方法的另一实施例的流程图,包括以下步骤:
步骤1:用户输入的语音首先进过识别然后经过语义解析最后得到nlu的结果。
示例性地,以成语接龙语音技能为例,用户输入的语音可以是很多可能。比如第一次进入技能是会说:“我要玩成语接龙”、“开始成语接龙”这样的说法。在游戏进行中可以说:“跳过”、“我不知道”等来表达这个题目不会,需要跳过,也可以说:“三心二意”、“发愤图强”等这样的成语来接龙。
步骤2:根据用户上次在技能中交互所停留的状态节点开始进行逻辑判断,(如果是首次进入则是从开始节点起)。
示例性地,以成语接龙为例,各个状态节点存在逻辑关系,主要是依靠上面逻辑行中跳转到的下一个状态来指明。会从一个状态中跳转到另一个状态。
如图3的状态机图所示,第一个是开始状态节点,最后一个是结束状态节点。开始状态节点是首次进入技能时的状态节点。结束状态节点是指可以结束对话的状态节点,当跳入到这种状态节点后就可以结束对话了。
状态机图如上图3所示,以下用文字描述下各个状态跳转的关系:
1、用户说:我要玩成语接龙,进入技能,此时在进入这个状态节点。然后在进入节点中会判断用户是否是首次进入或者很长时间未玩了,是的话播出详细的游戏规则,否则不用播详细的游戏规则。不论是否需要播游戏规则,都会接下来进入出题状态节点中,根据是否有需要接龙的成语开始进行出题,在得到成语题目后进入回答节点,将出题的成语播出后开启监听,等待用户回答。
以上过程的简要文字表达为:
用户:“我要玩成语接龙”->系统:“真开心你来玩...”(进入节点)->系统:“第一关:生龙活虎”(出题节点)->开启监听等待用户回答(回答节点)。
2、用户说:狐假虎威,此时延续之前所处的回答节点,开始对用户的回答进行接龙成功的比对,此时过程的简要文字表达为:
用户:“狐假虎威”->系统:“你真棒,回答正确啦。”(回答节点)->系统:“第二关:危机四伏”(出题节点)->开启监听等待用户回答(回答节点)。
3、接着用户会不停的和系统交互直到回答完所有的成语题目。假设最后一个题目的回答为:“我不知道”。
此时过程的简要文字表达为:
用户:“我不知道”->系统:“你可以说:万马奔腾”(回答节点)->系统:“本次成语接龙你一共答对x题,欢迎下次再来找我玩哦”(打分节点)->关闭监听结束对话(end节点)。
步骤3:在此状态下开始执行之前前端写的逐行逻辑。
步骤4:首先执行此逻辑行的预处理内容。
以上面成语接龙的回答节点给出的三行逻辑行示例为例,预处理内容就是先通过比对获得接龙结果是否成功的那个流程。
步骤5:然后判断此逻辑行的条件是否满足,如果满足则进入步骤6,不满足则进入步骤5.1。
以上面成语接龙的回答节点给出的三行逻辑行示例为例,此时的条件会判断是否接龙成功,如果接龙失败是否错误次数已经达到2次。
(当然回答节点中还有其他的条件,比如判断用户的输入intent是否是跳过等)
步骤5.1:进入到下一个逻辑行中。然后开始步骤4的内容。
一般来说不会存在这样的逻辑行,因为最后一行逻辑行就是对前面所有条件不满足是的逻辑处理,可以简单理解为,前面都是if....elseif....elseif....else...最后就是对应else中的内容。
步骤6:执行输出动作。在成语接龙示例中,执行输出的动作就是产生nlg输出。输出与用户交互的tts播报。
步骤7:执行后处理流程的内容,就是对条件满足后的一些变量取值的更新。在前面应该都有详细描述了。
步骤8:执行状态跳转或停留当前状态,如果是停留在当前状态下,那么则暂时结束此次执行动作,等待用户的下次语音输入;如果是需要跳转则进入步骤9。
这里的状态跳转就是,针对本逻辑行的条件是否满足来进行的。
以表2为例,执行逻辑的伪代码如下所示:
接龙是否成功=比对(用户的输入,成语题目)
if(接龙是否成功==true)
{
执行输出:答对啦
执行后处理:成功接龙的成语=用户的输入...
跳转节点:出题节点
}
elseif(接龙是否成功==false并且当前题目答错次数<1)
{
执行输出:不太对哦,再想想呢
执行后处理:当前题目答错次数=当前题目答错次数+1
跳转节点:不跳转
}
elseif(接龙是否成功==false)
{
执行输出:还是不太对呢,你可以说+推荐的接龙成语
执行后处理:当前题目答错次数=当前题目答错次数+1
跳转节点:出题节点
}
步骤9:要跳转的节点是否是结束节点,如果是结束节点则表示已经完成了这个技能的全部交互,可以结束多轮对话;如果不是结束节点则跳入到下一个状态节点中继续步骤3的内容。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
如图6所示,本发明的实施例还提供一种语音技能的对话管理器配置系统600,包括:
信息接收模块610,用于接收用户为待创建语音技能所提交的全局常量信息和全局变量信息;
检测模块620,用于检测所述用户为所述待创建语音技能所配置的开始状态节点、多个过程状态节点和结束状态节点;
配置模块630,用于基于所述全局常量信息和所述全局变量信息为所述多个过程状态节点配置执行逻辑;
状态机生成模块640,用于基于所述执行逻辑确定所述开始状态节点、多个过程状态节点和结束状态节点之间的跳转关系,并组织为对话状态机,以实现所述待创建语音技能的不同状态节点之间的跳转管理。
如图7所示,本发明的实施例还提供一种人机对话系统700,应用于配置有采用前述任一实施例所述语音技能的对话管理器配置方法所配置的对话管理器的语音技能;所述系统700包括:
语音识别模块710,用于接收用户的语音输入,并获取对应于所述用户的语音输入的文本信息;
节点确定模块720,用于根据所述文本信息确定对应的当前过程状态节点;
逻辑执行模块730,用于执行所述当前过程状态节点所配置的执行逻辑;
输出内容确定模块740,用于根据执行结果确定响应于所述用户的语音输入的输出内容。
在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项对话管理器配置方法和/或人机对话方法。
在一些实施例中,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项对话管理器配置方法和/或人机对话方法。
在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行对话管理器配置方法和/或人机对话方法。
在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现对话管理器配置方法和/或人机对话方法。
上述本发明实施例的系统可用于执行本发明实施例的对话管理器配置方法和/或人机对话方法,并相应的达到上述本发明实施例的实现对话管理器配置方法和/或人机对话方法所达到的技术效果,这里不再赘述。本发明实施例中可以通过硬件处理器(hardwareprocessor)来实现相关功能模块。
图8是本申请另一实施例提供的执行对话管理器配置方法和/或人机对话方法的电子设备的硬件结构示意图,如图8所示,该设备包括:
一个或多个处理器810以及存储器820,图8中以一个处理器810为例。
执行对话管理器配置方法和/或人机对话方法的设备还可以包括:输入装置830和输出装置840。
处理器810、存储器820、输入装置830和输出装置840可以通过总线或者其他方式连接,图8中以通过总线连接为例。
存储器820作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的对话管理器配置方法和/或人机对话方法对应的程序指令/模块。处理器810通过运行存储在存储器820中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例对话管理器配置方法和/或人机对话方法。
存储器820可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据对话管理器配置装置和/或人机对话装置的使用所创建的数据等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器820可选包括相对于处理器810远程设置的存储器,这些远程存储器可以通过网络连接至对话管理器配置装置和/或人机对话装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置830可接收输入的数字或字符信息,以及产生与对话管理器配置装置和/或人机对话装置的用户设置以及功能控制有关的信号。输出装置840可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器820中,当被所述一个或者多个处理器810执行时,执行上述任意方法实施例中的对话管理器配置方法和/或人机对话方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。