具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。本发明的实施例以及实施例的具体特征是对本发明实施例技术方案的详细说明,而非对本发明说明书技术方案的限定,在不冲突的情况下,本发明的实施例以及实施例的技术特征可以相互结合。
1、语音助手系统
图1示出了智能终端上的语音助手系统的框图。所述语音助手系统主要包括:人机交互界面,处理模块,数据库等。其中,处理模块包含m个语音识别引擎和n个语音交互引擎,m和n为大于等于1的正整数。其中,处理模块与人机交互界面相互连接,可以通过人机交互界面接收用户输入的数据,以及通过人机交互界面向用户输出交互数据,例如,反馈给用户的对话数据、任务执行过程及结果。
语音识别引擎用于将用户的语音指令识别为文本;语音交互引擎用于基于所述的文本识别结果或用户文本指令执行特定的任务,每个语音交互引擎可以包含语义理解模块、对话管理和控制模块、对话生成模块、命令执行模块。具体的,语音交互引擎确定用户意图(即确定任务),确定与该用户意图相关联的各个槽位相应的关键知识数据,并将所述关键知识数据填充到相应的槽位中,随后基于填充好的一个或多个槽位执行该任务。
在某些实施例中,处理模块可以包括一个交互主引擎和/或至少一个交互子引擎。其中,语音交互主引擎为语音助手系统的默认语音交互引擎。每个语音交互引擎(语音交互主引擎、语音交互子引擎)能够执行至少一种任务,即每个语音交互引擎可以与至少一个任务相关联,不同的语音交互子引擎所能够执行的任务可能相同或不同。
在某些实施例中,语音交互主引擎只基于用户指令确定能够处理该用户指令的语音交互子引擎,其自身不执行具体的任务。因此,在上述过程中确定用户意图可以由语音助手系统中的语音交互主引擎来完成,语音交互主引擎还用于基于确定出的用户意图选择一个或多个语音交互子引擎来处理上述用户指令,上述过程中的槽位填充和任务执行由语音交互主引擎确定出的一个或多个语音交互子引擎来执行。本发明中,智能终端所执行的方法均可以由其语音助手或语音助手的语音交互主引擎来完成。
2、动态构建语音处理能力列表
本发明提供一种在本地无线网络中动态构建语音处理能力列表的方法,参见图2,所述方法包括如下步骤:
步骤101,响应于首次成功接入所述本地无线网络,第一智能终端获取其能够执行的第一语音处理能力,初始化其本地的第一语音处理能力列表;
步骤102,所述第一智能终端判断在其自身接入所述本地无线网络之前是否有至少一个第二智能终端已首次成功接入所述本地无线网络,如果是,执行步骤103;
步骤103,所述第一智能终端生成第一语音处理能力交互消息,并在所述本地无线网络内广播所述第一语音处理能力交互消息,以使得所述至少一个第二智能终端在接收到第一语音处理能力交互消息后,生成第二语音处理能力交互消息,向所述第一智能终端发送第二语音处理能力交互消息,并基于所述第一语音处理能力交互消息更新其本地的第二语音处理能力列表;
其中,所述第一语音处理能力交互消息包括所述第一智能终端能够执行的第一语音处理能力;所述第二语音处理能力交互消息包括所述第二智能终端所能够执行的第二语音处理能力;
步骤104,所述第一智能终端接收所述至少一个第二智能终端所发送的第二语音处理能力交互消息,基于所述第二语音处理能力交互消息更新所述第一语音处理能力列表。
如步骤101所述,本发明的方法仅在首次成功接入所述本地无线网络时执行,因此,即使此后智能终端相对于所述本地无线网络处于离线状态一段时间后再次上线,也无需再次执行本发明的上述步骤101-104。
优选的,所述第一智能终端和第二智能终端能够通过接入本地无线网络实现对互联网的访问。
优选的,首次接入所述本地无线网络的过程为:所述第一智能终端向所述本地无线网络中的服务器发送首次接入请求,所述服务器对所述第一智能终端进行认证,若认证通过,则向所述第一智能终端返回首次接入成功响应,并记录所述第一智能终端的信息,如MAC地址等能够唯一确定第一智能终端的标识符。所述服务器还记录所述第一智能终端的连网状态。
优选的,所述语音处理能力包括语音识别能力和语音交互能力。所述语音识识别能力包括某个智能终端的语音助手所包括的语音识别引擎(称为本地语音识别引擎)的语音识别能力,如中文识别能力、美式英语识别能力、英式英语识别能力、普通话识别能力、四川方言识别能力等。所述语音交互能力包括某个智能终端的语音助手所包括的语音交互引擎(称为本地语音交互引擎)所能够执行的任务,如机票预定、天气查询等。
优选的,第一语音处理能力列表包括语音处理引擎类型、语音处理引擎名称、能力名称、能力提供终端标识符。例如,第一智能终端能够执行的语音识别能力包括普通话识别能力,能够执行的语音交互能力即任务包括机票预定、外卖订餐,则在步骤101中初始化得到的第一语音处理能力列表如表1所示。下文中,当语音处理能力为语音交互引擎时,能力名称与语音处理引擎能够执行的任务含义相同,二者可以相互替代使用。
表1第一语音处理能力列表
优选的,在步骤102中,所述第一智能终端向所述本地无线网络的服务器发送查询请求,所述服务器将在所述第一智能终端首次接入所述本地无线网络之前已首次成功接入所述本地无线网络的所有第二智能终端标识符携带在查询响应中发送给所述第一智能终端。例如,在第一智能终端首次入网之前,第二智能终端A和第二智能终端B已经依次首次成功接入所述本地无线网络,则在所述查询响应中包括第二智能终端A和第二智能终端B的标识符。若除第一智能终端外,没有其他设备接入所述本地无线网络,则所述查询响应为空。
优选的,在步骤103中,所述第一智能终端向所述服务器发送所述第一语音处理能力交互消息,所述第一语音处理能力交互消息中携带广播标识符,所述服务器在所述本地无线网络内广播所述第一语音处理能力交互消息。
优选的,在步骤104中,所述第一智能终端可以在接收一个第二智能终端所发送的第二语音处理能力交互消息后即基于该第二语音处理能力交互消息更新第一语音处理能力列表,也可以在接收到所有第二智能终端所发送的第二语音处理能力交互消息后再基于所接收到的所有第二语音处理能力交互消息进行更新。例如,其中第二智能终端A能够执行的语音识别能力包括普通话识别能力、四川方言识别能力,能够执行的语音交互能力包括天气查询,第二智能终端B能够执行的语音识别能力包括普通话识别能力、广东方言识别能力,能够执行的语音交互能力包括天气查询、酒店预定,则更新后的第一语音处理能力列表如表2所示。
表2第一语音处理能力列表
优选的,所述第一智能终端和第二智能终端还可以互相交换智能终端参数信息,例如在第一语音处理能力交互消息和第二语音处理能力交互信息或单独的智能终端参数交互消息中携带各自的智能终端参数信息,包括以下至少一者:处理器能力、通信能力、能量获取方式。所述处理器能力可以为CPU型号、版本、内存大小等;所述通信能力包括:是否支持高速蜂窝通信(如4G、5G等)、是否支持终端间直接通信(如wifi直连、蓝牙通信、一对多蓝牙通信);所述能量获取方式可以为:交流电供电、电池供电且不支持无线充电、电池供电且支持无线充电等。所述第一智能终端和第二智能终端在接收到上述交互消息后,各自本地记录上述参数信息,如在第一语音处理能力列表、第二语音处理能力列表中记录,或在专门的智能终端参数表中记录。
优选的,若在预设时间内,所述第一智能终端仅从所述至少一个第二智能终端中的部分第二智能终端接收到第二语音处理能力交互消息,而未从其余部分第二智能终端接收到第二语音处理能力交互消息,则所述第一智能终端从接收到第二语音处理能力交互消息的所述部分第二智能终端中选择一个第二智能终端作为中继第二智能终端,向该中继第二智能终端发送语音处理能力中继请求消息,其中携带所述其余部分第二智能终端的标识符,所述中继第二智能终端在接收到所述语音处理能力中继请求消息后,从本地的第二语音处理能力列表中查询得到上述其余部分第二智能终端的语音处理能力,并携带在语音处理能力中继响应消息中发送给所述第一智能终端。此时,所述第一智能终端还基于所述语音处理能力中继响应消息更新所述第一语音处理能力列表。
优选的,所述第一智能终端从接收到第二语音处理能力交互消息的所述部分第二智能终端中选择一个第二智能终端,具体为选择所述部分第二智能终端中最早回复第二语音处理能力交互消息的第二智能终端。
优选的,在步骤102中的所述查询响应中还携带所述在所述第一智能终端接入所述本地无线网络之前已首次成功接入所述本地无线网络的至少一个第二智能终端在所述本地无线网络的实时连网状态。所述实时连网状态为在网或离线中的一者。
优选的,当本地无线网络中存在智能终端的连网状态发生变化时,所述服务器将这一变化同步到网络中的所有(在网)智能终端。
优选的,所述第一语音处理能力列表和第二语音处理能力列表中还可以包括能力提供终端的实时连网状态。
优选的,所述步骤104中,所述第一智能终端接收所述实时连网状态为在网的至少一个第二智能终端所发送的第二语音处理能力交互消息,基于所述第二语音处理能力交互消息更新所述第一语音处理能力列表。此后,所述第一智能终端从实时联网状态为在网的至少一个第二智能终端中选择一个第二智能终端作为中继第二智能终端,向该中继第二智能终端发送语音处理能力中继请求消息,其中携带实时连网状态为离线的第二智能终端的标识符,所述中继第二智能终端在接收到所述语音处理能力中继请求消息后,从本地的第二语音处理能力列表中查询得到上述实时连网状态为离线的第二智能终端的语音处理能力,并携带在语音处理能力中继响应消息中发送给所述第一智能终端,以便所述第一智能终端还基于所述语音处理能力中继响应消息更新所述第一语音处理能力列表。
优选的,所述本地无线网络中的智能终端还可以记录其他智能终端的低电量状态,例如在语音处理能力列表中包括低电量状态。当第一智能终端的电池电量低于预设阈值且无法通过无线充电补充电量(如不支持,或自动无线充电系统出现故障)时,在所述本地无线网络中广播低电量告警消息,以使得所述本地无线网络中的其他智能终端在接收到该消息后,记录所述第一智能终端当前处于低电量状态。类似的,第一智能终端也能够接收其他智能终端发送的低电量告警消息。
优选的,所述方法还包括步骤105,所述第一智能终端接收用户指令,基于第一语音处理能力列表确定能够处理所述用户指令的第一语音处理引擎;判断所述第一语音处理引擎是否为所述第一智能终端的本地语音处理引擎,如果否,将所述用户指令发送给所述第一语音处理引擎所属的协作智能终端,并从所述协作智能终端接收语音处理结果;如果是,则第一智能终端采用所述第一语音处理引擎获得语音处理结果。此外,当语音处理结果为任务执行结果时,所述第一智能终端还将语音处理结果提供给用户。
优选的,所述第一智能终端接收用户指令,具体为接收用户语音指令,此后,还执行下文所述的步骤300中清晰度判断的相关操作。之后,再执行基于第一语音处理能力列表确定能够处理所述用户指令的第一语音处理引擎。
优选的,所述步骤105还可以为:所述第一智能终端接收用户指令,当判断本地无法处理所述用户指令时,基于所述第一语音处理能力列表选择能够处理所述用户指令的第二智能终端作为协作智能终端,将所述用户指令发送给该协作智能终端,并从所述协作智能终端接收语音处理结果。
优选的,所述基于所述第一语音处理能力列表选择能够处理所述用户指令的第二智能终端作为协作智能终端,具体为:若存在两个以上的第二智能终端均能够处理所述用户指令,根据本地记录的智能终端参数信息选择其中一个作为协作智能终端。
优选的,按照至少以下之一进行选择:
根据所记录的所述两个以上的第二智能终端的处理器能力选择其中一个作为协作智能终端;
判断所述两个以上的第二智能终端在所述本地无线网络的连网状态和通信能力,排除符合以下之一的第二智能终端后在剩余的第二智能终端中选择其中一个(例如根据处理器能力、能量获取方式):连网状态为离线且不支持高速蜂窝通信;连网状态为离线、支持高速蜂窝通信但无法与第一智能终端进行信息交互(例如通过高速蜂窝通信、wifi直连、蓝牙通信、一对多蓝牙通信等方式);
根据所记录的能量获取方式和/或低电量状态选择其中一个作为协作智能终端,例如依次优先选择能量获取方式为交流电供电、电池供电且支持无线充电、电池供电且不支持无线充电的第二智能终端;和/或,排除处于低电量状态的第二智能终端后在剩余的第二智能终端中选择其中一个。
当同时考虑上述几个因素中的部分时,可以先考虑连网状态和通信能力,在考虑处理器能力,最后考虑能量获取方式。
优选的,当所述用户指令为语音指令时,判断本地无法处理所述用户指令可以为本地无法对该语音指令进行语音识别;此外,判断本地无法处理所述用户指令还可以为本地无法处理基于所述语音指令确定的任务,即本地不具有与该任务相关联的语音交互引擎,或与该任务相关联的语音交互引擎属于其他智能终端的语音助手。
优选的,若所述用户指令为语音指令,且本地无法处理所述用户指令为本地无法对该语音指令进行语音识别,则所述步骤105还包括:基于所述用户指令提取该用户的声纹特征,将所述声纹特征与上述协作智能终端关联存储。
优选的,所述方法还包括:当所述第一智能终端再次接收到具有上述声纹特征的语音指令时,不再尝试本地语音识别,直接将该语音指令发送给上述协作智能终端,并从上述协作智能终端获取语音识别结果。
优选的,第一智能终端和/或第二智能终端在离线一段时间并再次在网后,向所述本地无线网络中在网的至少一个其他智能终端发送语音处理能力列表同步请求,并从所述至少一个其他智能终端接收语音处理能力列表同步响应,基于所述语音处理能力列表同步响应更新本地的语音处理能力列表。
优选的,第一智能终端和/或第二智能终端在离线一段时间并再次在网后,从所述服务器获取本地无线网络中所有智能终端的连网状态。
优选的,在智能终端之间发送的消息例如第二语音处理能力交互消息可以通过所述服务器转发。
优选的,所述方法还包括步骤106,当语音处理能力发生变化时,第一智能终端更新本地的第一语音处理能力列表,生成第一语音处理能力更新消息,并在所述本地无线网络内广播所述第一语音处理能力更新消息,以使得所述至少一个第二智能终端在接收到第一语音处理能力更新消息后,更新其本地的第二语音处理能力列表。
优选的,所述方法还包括步骤107,第一智能终端接收所述至少一个第二智能终端发送的第二语音处理能力更新消息,更新所述第一语音处理能力列表。
值得注意的是,步骤105-107可以先执行其中任一者,本发明不限定执行上述三个步骤的先后顺序。
基于本发明的上述方法,能够在智能终端初次接入本地无线网络时,即与该网络中的其他智能终端互相交换语音处理能力,从而在接收到自身无法处理的用户指令后,能够及时选择合适的智能终端进行协作处理,加快了对用户的响应速度,提升了用户体验。
3、构建协作语音交互引擎簇
以下先对现有技术中的交互引擎簇(也可称为语音交互引擎簇)进行简要介绍(详细介绍可参考中国发明专利申请CN201911220477.X,该专利申请的全部内容通过引用的方式结合或合并到本申请中)。
一个语音交互引擎簇中包括至少两个语音交互引擎。其中,语音交互引擎簇中的任意一个语音交互引擎相关联的任务与所述语音交互引擎簇中的其他语音交互引擎相关联的任务不同,语音交互引擎簇中的任意一个语音交互引擎相关联的任务与所述语音交互引擎簇中的至少一个其他语音交互引擎相关联的任务具有至少一个相同或者相应的槽位。
智能终端可以从服务器下载语音交互引擎簇的属性信息,并根据下载的语音交互引擎簇的属性信息,在本地构建语音交互引擎簇;智能终端也可以根据用户与语音助手系统的历史对话记录在本地聚合生成语音交互引擎簇。
在使用语音交互引擎簇时,若语音交互引擎簇中的任意一个语音交互引擎(下文用第一语音交互引擎来指代)被激活,则智能终端的语音助手激活所述语音交互引擎簇中的其他语音交互引擎(下文用至少一个第二语音交互引擎来指代),且根据第一语音交互引擎相关联的第一任务的第一槽位所填充的关键知识数据对至少一个第二语音交互引擎相关联的至少一个第二任务的第一槽位和/或第二槽位进行即时同步,所述至少一个第二语音交互引擎相关联的至少一个第二任务具有所述第一槽位和/或与所述第一槽位相应的第二槽位,从语音交互引擎簇中的所有或部分语音交互引擎获取任务执行结果并同时提供给用户。
上述即时同步包括第一槽位从未填充变化为填充第一关键知识数据时的即时同步,也包括第一槽位所填充的关键知识数据从第一关键知识数据变化为第二关键知识数据时的即时同步。
所述语音交互引擎簇所包括的至少两个语音交互引擎中的其中一个或多个为主导语音交互引擎,其余语音交互引擎为从语音交互引擎,在语音助手系统处于簇任务工作模式时,若第一语音交互引擎为其所属的语音交互引擎簇的主导语音交互引擎,则在激活第一语音交互引擎时,还激活该语音交互引擎簇中其他语音交互引擎,并进行语音交互引擎之间槽位的即时同步,若第一语音交互引擎不是其所属的语音交互引擎簇的主导语音交互引擎,仅激活所述第一语音交互引擎。
然而,在现有技术中,构成语音交互引擎簇的多个语音交互引擎均属于同一个智能终端的语音助手,不能利用分别属于不同智能终端的语音助手的语音交互引擎形成语音交互引擎簇,当用户的不同智能终端的语音助手分别安装了不同的语音交互引擎(例如第一智能终端的智能助手中包括机票预定语音交互引擎,第二智能终端的智能助手中包括天气查询语音交互引擎)时,用户不能享受上述不同的语音交互引擎所构成的语音交互引擎簇所带来的良好体验。
基于此,本发明提出了一种特殊的语音交互引擎簇,称为协作语音交互引擎簇,除了语音交互引擎簇中的语音交互引擎位于同一智能终端这一特性外,协作语音交互引擎簇具有语音交互引擎簇的其余所有特性。
参见本发明前文所述,所述本地无线网络中的第一智能终端和至少一个第二智能终端在首次成功接入所述本地无线网络时,彼此交换了语音处理能力(语音识别能力和语音交互能力),并能够彼此相互调用或彼此协作,其效果等同于所述无线网络中的任意一个智能终端具有了其自身与所述本地无线网络中的其余智能终端的所有语音处理能力,这就使得构建协作语音交互引擎簇成为了可能。
本发明提供一种在本地无线网络中构建协作语音交互引擎簇的方法,根据第一智能终端在首次成功接入所述本地无线网络后生成第一语音处理能力列表,基于属于不同智能终端的语音交互引擎构建协作语音交互引擎簇,接收到用户指令的第一智能终端控制所述不同智能智能终端基于所述协作语音交互引擎簇与用户进行语音交互。
参见图3,所述方法包括如下步骤:
步骤200,第一智能终端在首次成功接入所述本地无线网络后生成第一语音处理能力列表;所述第一语音处理能力列表中包括所述第一智能终端包括的至少一个第一语音交互引擎和至少一个第二智能终端包括的至少一个语音交互引擎;所述第二智能终端在所述第一智能终端接入所述本地无线网络之前已首次成功接入所述本地无线网络;
步骤201,第一智能终端向语音助手云服务器发送语音交互引擎簇搜索请求,其中携带所述至少一个第一语音交互引擎;
步骤202,第一智能终端从语音助手云服务器接收语音交互引擎簇搜索响应,其中携带至少一个第一语音交互引擎簇的属性信息,所述第一语音交互引擎簇所包括的语音交互引擎中包括所述第一语音交互引擎和至少一个第二语音交互引擎;
步骤203,所述第一智能终端查询第一语音处理能力列表,确定与所述至少一个第二语音交互引擎相对应的至少一个第二智能终端;
步骤204,所述第一智能终端根据所述语音交互引擎簇搜索响应构建生成第一协作语音交互引擎簇属性信息,所述第一协作语音交互引擎簇属性信息包括所述第一语音交互引擎与第一智能终端的对应关系以及所述至少一个第二语音交互引擎与至少一个第二智能终端的对应关系。
优选的,所述方法还包括步骤205,所述第一智能终端将所述第一协作语音交互引擎簇的属性信息发送给所述本地无线网络中的至少一个第二智能终端。从而,无论是包括协作语音交互引擎簇中的至少一个语音交互引擎的第二智能终端,还是不包括协作语音交互引擎簇中的任意一个语音交互引擎的第二智能终端,均能够接收到上述协作语音交互引擎簇的属性信息,进而使用该协作语音交互引擎簇,使得用户在所述本地无线网络的任何一个终端上均可以享受到协作语音交互引擎簇所带来的良好体验。
优选的,步骤202中的第一语音交互引擎簇的属性信息包括所述第一语音交互引擎簇的簇名称、所述第一语音交互引擎簇所包括的至少两个语音交互引擎的名称、所述至少两个语音交互引擎所能够执行(或相关联)的任务所具有的相同或相应的槽位。
可替换的,在上述方法中,语音交互引擎簇搜索响应中携带的是至少一个第一语音交互引擎簇的配置信息,其中携带与所述语音交互引擎簇配置信息所包括的第一语音交互引擎相关联的任务和至少一个第二语音交互引擎相关联的任务。在步骤203中,所述第一智能终端查询第一语音处理能力列表,确定能够完成至少一个第二语音交互引擎相关联的任务的至少一个第二智能终端和相应的至少一个第三语音交互引擎。所述第一协作语音交互引擎簇属性信息包括所述第一语音交互引擎与第一智能终端的对应关系以及所述至少一个第三语音交互引擎与至少一个第二智能终端的对应关系。
在上述方法中,构建协作语音交互引擎簇时利用了语音助手云服务器中此前已经存储的语音交互引擎簇的信息,能够简化并加快协作语音交互引擎簇的构建,使得用户尽快享受到交互引擎簇所带来的良好体验。
优选的,所述步骤204还包括:在构建生成所述协作语音交互引擎簇属性信息之前,所述第一智能终端向与所述至少一个第二语音交互引擎相对应或向完成与所述至少一个第二语音交互引擎的相关联的任务的至少一个第二智能终端发送协作语音交互引擎簇构建问询请求,并在接收到协作语音交互引擎簇构建同意响应后,再根据所述语音交互引擎簇搜索响应构建协作语音交互引擎簇的属性信息;其中,所述第二智能终端在接收到协作语音交互引擎簇构建问询请求后,判断自身是否支持协作语音交互引擎簇功能,如果是,生成协作语音交互引擎簇构建同意响应并将其发送给所述第一智能终端。即第一智能终端通过构建问询请求和构建同意响应的方式确定所要构建的协作语音交互引擎簇中的每个语音交互引擎所属的智能终端均支持协作语音交互引擎簇这一功能,避免第一智能终端构建协作语音交互引擎簇后由于部分智能终端不支持而导致该协作语音交互引擎簇无法正常使用。
优选的,若所述第一智能终端向所述至少一个第二智能终端发送协作语音交互引擎簇构建问询请求后,未从其中一个或多个第二智能终端接收到协作语音交互引擎簇构建同意响应,则所述第一智能终端向该一个或多个第二智能终端发送语音助手升级请求消息,在接收到所述一个或多个第二智能终端发送的语音助手升级完成消息后,再根据所述语音交互引擎簇搜索响应构建协作语音交互引擎簇的属性信息。所述一个或多个第二智能终端在接收到语音助手升级请求消息后,启动语音助手升级,并在升级完成后,生成并向第一智能终端发送所述语音助手升级完成消息。
优选的,协作语音交互引擎簇的属性信息包括所述协作语音交互引擎簇的簇名称、所述协作语音交互引擎簇所包括的至少两个语音交互引擎的名称、至少两个语音交互引擎所属的智能终端标识符(即前文所述的对应关系)、所述至少两个语音交互引擎所能够执行(或相关联)的任务所具有的相同或相应的槽位。在一个具体实施例中,构建得到的协作语音交互引擎簇的属性信息如下表3所示。
表3协作语音交互引擎簇的属性信息
优选的,所述第一语音交互引擎是所述第一语音交互引擎簇的主导交互引擎,即搜索响应中仅包括以所述第一语音交互引擎为主导交互引擎的语音交互引擎簇。同时,将所述第一语音交互引擎设置为所述第一协作语音交互引擎簇的主导交互引擎,并记录在协作语音交互引擎簇的属性信息中。
优选的,在步骤205中,在所述第一智能终端将所述协作语音交互引擎簇的属性信息发送给所述本地无线网络中的至少一个第二智能终端之前,所述第一智能终端向用户发出第一指令,指示用户对所述协作语音交互引擎簇进行命名(当语音交互引擎簇搜索响应中携带配置信息时)或重命名(当语音交互引擎簇搜索响应中携带属性信息时),并接收用户的命名或重命名指令,将所述命名指令中携带的簇名称记录在协作语音交互引擎簇的属性信息中,或使用所述重命名指令中携带的簇名称更新协作语音交互引擎簇的属性信息中的簇名称,之后,再将所述协作语音交互引擎簇的属性信息发送给所述本地无线网络中的至少一个第二智能终端。
优选的,在步骤203中,若所述第一智能终端确定与某个第二语音交互引擎相对应的第二智能终端或能够完成与某个第二语音交互引擎相关联的任务的第二智能终端为多个时,从中选择一个第二智能终端作为与该第二语音交互引擎相对应的第二智能终端或作为能够完成第二语音交互引擎相关联的任务的第二智能终端。
优选的,按照以下至少之一进行选择:
所述第一智能终端从所述本地无线网络中的服务器获取上述多个第二智能终端的离线时长,选择其中离线时长最短的第二智能终端;
根据所记录的所述多个第二智能终端的处理器能力选择其中一个第二智能终端;
根据所记录的通信能力选择其中支持高速蜂窝通信和至少一个终端间直接通信的第二智能终端;
依次优先选择交流电供电、电池供电且支持无线充电的第二智能终端。
若综合考虑上述至少两个选择因素,则依次优先考虑通信能力选择、处理器能力、离线时长、能量获取方式。
优选的,在步骤203中,若所述第一智能终端确定与某个第二语音交互引擎相对应的第二智能终端或能够完成与某个第二语音交互引擎相关联的任务的第二智能终端为多个时,从中选择一个第二智能终端作为与该第二语音交互引擎相对应的第二智能终端或作为能够完成第二语音交互引擎相关联的任务的第二智能终端(如按照上述方式进行选择,也可以随机选择一个),并将其余第二智能终端作为与该第二语音交互引擎相对应的并存第二智能终端或作为能够完成第二语音交互引擎相关联的任务的并存第二智能终端;相应的,步骤204还包括:所述第一智能终端根据所述语音交互引擎簇搜索响应构建生成第一协作语音交互并存引擎簇属性信息,所述第一协作语音交互并存引擎簇属性信息包括所述第一语音交互引擎与第一智能终端的对应关系以及所述至少一个第二语音交互引擎与至少一个并存第二智能终端的对应关系。
优选的,所述方法还包括步骤205,所述第一智能终端将所述第一协作语音交互并存引擎簇的属性信息发送给所述本地无线网络中的至少一个第二智能终端。
优选的,若按照前述的通信能力选择、处理器能力、离线时长、能量获取方式选择了第二智能终端,则基于该第二智能终端构建的第一协作语音交互引擎簇的优先级最高,并按照上述选择因素,对第一协作语音交互并存引擎簇进行优先级排序。
上述第一协作语音交互引擎簇、第一协作语音交互并存引擎簇仅仅是为了描述的方便,其特性相同,在下文中可以互换使用。
优选的,所述方法还包括如下步骤:
步骤206,接收所述本地无线网络中的所述至少一个第二智能终端所发送的代理构建协作语音交互引擎簇请求,其中携带所述至少一个第二智能终端所包括的至少一个第二语音交互引擎;
所述第一智能终端采用构建第一协作语音交互引擎簇的类似方式构建第二协作语音交互引擎簇属性信息,所述第二协作语音交互引擎簇包括所述至少一个第二语音交互引擎,具体的,执行下述的步骤207-211。通过上述方法,第一智能终端可以代替部分处理能力较低的第二智能终端来执行协作语音交互引擎簇的构建。
步骤207,所述第一智能终端向语音助手云服务器发送语音交互引擎簇搜索请求,其中携带支持所述至少一个第二语音交互引擎;
步骤208,第一智能终端从语音助手云服务器接收语音交互引擎簇搜索响应,其中携带至少一个第二语音交互引擎簇的属性信息,所述第二语音交互引擎簇所包括的语音交互引擎中包括所述至少一个第二语音交互引擎和至少一个第四语音交互引擎;
步骤209,所述第一智能终端查询第一语音处理能力列表,确定与所述至少一个第四语音交互引擎相对应的至少一个第四智能终端;所述至少一个第四智能终端是在所述第一智能终端接入所述本地无线网络之前已首次成功接入所述本地无线网络的至少一个第二智能终端中的至少一个;
步骤210,所述第一智能终端根据所述语音交互引擎簇搜索响应构建生成所述第二协作语音交互引擎簇属性信息,其中包括所述至少一个第二语音交互引擎与至少一个第二智能终端的对应关系以及所述至少一个第四语音交互引擎与至少一个第四智能终端的对应关系。
优选的,所述方法还包括步骤211,所述第一智能终端将所述协作语音交互引擎簇的属性信息发送给所述本地无线网络中的至少一个第二智能终端。
本发明中前述对于步骤201-205的所有进一步限定均适用于步骤207-210中的相应步骤,此处不再赘述。
4、协作语音交互引擎簇的使用
本发明还提供一种基于协作语音交互引擎簇与语音助手进行交互的方法,用于第一智能终端,参见图4,所述方法包括如下步骤:
步骤300,获取用户指令;
步骤301,基于所述用户指令确定第一任务,基于第一语音处理能力列表确定能够执行所述第一任务的第一语音交互引擎;所述第一语音处理能力列表中包括不同任务与语音交互引擎的对应关系;
步骤302,基于本地存储的协作语音交互引擎簇确定所述第一语音交互引擎所属的第一协作语音交互引擎簇;其中,所述第一协作语音交互引擎簇包括所述第一语音交互引擎和至少一个第二语音交互引擎;
步骤303,基于所述第一语音处理能力列表确定与所述第一协作语音交互引擎簇所包括的语音交互引擎相对应的智能终端集合,其中包括与第一语音交互引擎对应的第二智能终端和与所述至少一个第二语音交互引擎对应的至少一个第三智能终端;
步骤304,将所述用户指令发送给所述第二智能终端的第一语音交互引擎,从所述第二智能终端的第一语音交互引擎接收终端间槽位同步信息,其中携带所述第二智能终端的第一语音交互引擎需要同步给所述至少一个第三智能终端的至少一个第二语音交互引擎的关键知识数据;将所述终端间槽位同步信息转发给所述至少一个第三智能终端的至少一个第二语音交互引擎;从第二智能终端的第一语音交互引擎和所述至少一个第三智能终端的至少一个第二语音交互引擎分别接收第一任务执行结果和至少一个第二任务执行结果,并将所述第一任务执行结果和至少一个第二任务执行结果同时提供给用户。
优选的,步骤304具体为:
执行第一判断:判断所述第一智能终端与所述第二智能终端是否为同一个终端,即判断所述第一语音交互引擎是否为第一智能终端的本地语音交互引擎;
情况1:如果第一判断的结果为是,将所述语音指令发送给所述第一语音交互引擎,从所述第一语音交互引擎接收终端间槽位同步信息,并将其发送给上述至少一个第三智能终端,以使得上述至少一个第三智能终端的至少一个第二语音交互引擎基于所述终端间槽位同步信息对至少一个第二语音交互引擎相关联的至少一个第二任务的槽位进行即时同步;从所述第一语音交互引擎和所述至少一个第三智能终端分别接收第一任务执行结果和至少一个第二任务执行结果,并将所述第一任务执行结果和至少一个第二任务执行结果同时提供给用户;
情况2:如果第一判断的结果为否,当所述第一智能终端与至少一个第三智能终端中的一者为同一个终端时,将所述语音指令发送给第一语音交互引擎对应的第二智能终端,激活协作语音交互引擎簇中属于第一智能终端的第二语音交互引擎即本地的第二语音交互引擎,从第二智能终端接收终端间槽位同步信息,基于所述终端间槽位同步信息对本地的所述第二语音交互引擎相关联的第二任务的槽位进行即时同步;从所述本地的第二语音交互引擎和所述第二智能终端分别接收第二任务执行结果和第一任务执行结果,并将所述第一任务执行结果和第二任务执行结果同时提供给用户;
情况3:如果第一判断的结果为否,当所述第一智能终端与至少一个第三智能终端中的任意一者均不为同一个终端时,将所述语音指令发送给第一语音交互引擎对应的第二智能终端,并通知所述至少一个第三智能终端激活所述至少一个第二语音交互引擎,从第二智能终端接收终端间槽位同步信息,将终端间槽位同步信息转发给所述至少一个第三智能终端,以使得至少一个第三智能终端基于所述终端间槽位同步信息对所述至少一个第二语音交互引擎相关联的至少一个第二任务的槽位进行即时同步;从所述第二智能终端和至少一个第三终端分别接收第一任务执行结果和至少一个第二任务执行结果,并将所述第一任务执行结果和第二任务执行结果同时提供给用户。
优选的,在情况2即第一判断的结果为否,且所述第一智能终端与至少一个第三智能终端中的一者为同一个终端时,所述第一智能终端在将所述语音指令发送给第一语音交互引擎对应的第二智能终端之后通知所述至少一个第三智能终端激活所述至少一个第二语音交互引擎,并将接收到的终端间槽位同步信息转发给其他第三智能终端,以使得所述其他第三智能终端基于所述终端间槽位同步信息对相应的第二交互引擎相关联的第二任务的槽位进行同步,从所述其他第三智能终端接收第二任务执行结果,将所述从其他第三智能终端接收到的第二任务执行结果与所述第一任务执行结果和从所述本地的第二语音交互引擎接收到的第二任务执行结果同时提供给用户。
优选的,所述终端间槽位同步信息包括第一语音交互引擎对第一任务的第一槽位所填充的关键知识数据;所述对至少一个第二语音交互引擎相关联的至少一个第二任务的槽位进行即时同步,具体为,对至少一个第二交互引擎相关联的至少一个第二任务的第一槽位和/或与第一槽位对应的第二槽位进行即时同步。
优选的,在步骤302中,进一步执行第二判断,即判断所述第一语音交互引擎是否为所述第一协作语音交互引擎簇的主导交互引擎,如果第二判断的结果为是,则按照协作语音交互引擎簇的方式来执行,即执行步骤303及其后续步骤。如果第二判断的结果为否,执行步骤305,步骤305类似前述步骤105的过程(其中语音处理引擎为语音交互引擎的情况),即判断所述第一语音交互引擎是否为第一智能终端的本地语音交互引擎,如果是,将所述语音指令发送给所述第一语音交互引擎,以使得所述第一语音交互引擎基于所述语音指令对所述第一任务的槽位进行填充,从第一语音交互引擎接收第一任务执行结果,将其提供给用户,如果否,将所述语音指令发送给所述第一语音交互引擎所属的协作智能终端,以使得所属协作智能终端基于所述语音指令对所述第一任务的槽位进行填充,从所述协作智能终端接收第一任务执行结果,并将其提供给用户。
在步骤301之后,判断所述第一智能终端是否处于协作交互引擎簇工作模式以及判断所述用户指令中是否包括协作交互引擎簇工作模式变更指令,上述两个判断中有一者结果为是,则执行步骤302,若两者判断结果均为否,则执行步骤305。
优选的,步骤300中获取用户语音指令,之后,所述第一智能设备基于接收到的用户的语音指令,确定所述语音指令的第一清晰度值,将所述第一清晰度值广播给本地无线网络中的至少一个其他智能设备,并从上述至少一个其他智能设备接收第二清晰度值,判断所述第一清晰度值是否大于所述第二清晰度值,如果是,执行后续步骤。
优选的,步骤300具体为:步骤300-1:接收用户的语音指令;步骤300-2,第一智能终端基于第一语音能力列表选择能够对该语音指令进行语音识别处理的智能终端,基于该智能终端的处理结果获取用户指令。
优选的,若基于第一语音处理能力列表确定能够执行所述第一任务的第一语音交互引擎为多个,首先按照前文图2和图3实施例中介绍的从多个智能设备中选择一个的方法从所述多个第一交互引擎中选择一个,随后再基于本地存储的协作语音交互引擎簇确定选择出的第一语音交互引擎所属的第一协作语音交互引擎簇。
若确定所述第一语音交互引擎所属的第一协作语音交互引擎簇(第一协作语音交互共存引擎簇)为多个,则先选择其中一个,再执行步骤303。选择方法可以为如下之一:
按照第一协作语音交互引擎簇的优先级排序进行选择;
若第一语音交互引擎在不同第一协作语音交互引擎簇中对应不同的所属智能终端,则若存在其中一个第一协作语音交互引擎簇中第一语音交互引擎对应的所属智能终端为所述第一智能终端,则选择该第一协作语音交互引擎簇,继续执行步骤303;
若所有第一协作语音交互引擎簇中第一语音交互引擎对应的所属智能终端均不为所述第一智能终端,则按照前文图2和图3实施例中介绍的从多个智能设备中选择一个的方法从第一语音交互引擎在不同第一协作语音交互引擎簇中所对应的不同的所属智能终端中选择一个,并将该所属智能终端对应的协作语音交互引擎簇作为选择出的协作语音交互引擎簇;
若至少一个第二语音交互引擎在不同第一协作语音交互引擎簇中对应同一个所属智能终端,则若存在其中一个第一协作语音交互引擎簇中至少一个第二语音交互引擎对应的所属智能终端为所述第一智能终端,则选择该第一协作语音交互引擎簇,继续执行步骤303;
若所有第一协作语音交互引擎簇中至少一个第二语音交互引擎对应的所属智能终端均不为所述第一智能终端,则按照前文图2和图3实施例中介绍的从多个智能设备中选择一个的方法从至少一个第二语音交互引擎在不同第一协作语音交互引擎簇中所对应的不同的所属智能终端中选择一个,并将该所属智能终端对应的协作语音交互引擎簇作为选择出的协作语音交互引擎簇。
上述选择一个第一协作语音交互引擎簇和前述第二判断可以先执行其中任意一者。这是由于若第一语音交互引擎在其中一个第一协作语音交互引擎簇中为主导语音交互引擎,则在其所属的其他第一协作语音交互引擎簇中也为主导语音交互引擎。
本发明图2-4的三个方法应用于相同的场景且属于同一个构思体系,上述三个方法之间可以任意的结合。
本发明还提供一种动态构建语音处理能力列表的装置,参见图5,所述装置包括:
语音处理能力列表动态构建单元,用于响应于首次成功接入所述本地无线网络,获取所述装置能够执行的第一语音处理能力,初始化本地的第一语音处理能力列表;判断在其自身接入所述本地无线网络之前是否有至少一个第二智能终端已首次成功接入所述本地无线网络,如果是,生成第一语音处理能力交互消息,并触发所述通信单元在所述本地无线网络内广播所述第一语音处理能力交互消息,以使得所述至少一个第二智能终端在接收到第一语音处理能力交互消息后,生成第二语音处理能力交互消息,向所述装置发送第二语音处理能力交互消息,并基于所述第一语音处理能力交互消息更新其本地的第二语音处理能力列表;
通信单元,用于在所述本地无线网络内广播所述第一语音处理能力交互消息;
其中,所述第一语音处理能力交互消息包括所述装置能够执行的第一语音处理能力;所述第二语音处理能力交互消息包括所述第二智能终端所能够执行的第二语音处理能力;
所述通信单元,用于接收所述至少一个第二智能终端所发送的第二语音处理能力交互消息;
所述语音处理能力列表动态构建单元还用于基于所述第二语音处理能力交互消息更新所述第一语音处理能力列表。
优选的,所述通信单元,还用于向所述本地无线网络中的服务器发送首次接入请求,并接收所述服务器在对所述装置认证通过后返回的首次接入成功响应;
所述装置还包括存储单元,用于存储所述第一语音处理能力列表。
优选的,所述通信单元,还用于向所述本地无线网络的服务器发送查询请求,并接收所述服务器发送的查询响应,所述查询响应中携带在所述装置首次接入所述本地无线网络之前已首次成功接入所述本地无线网络的所有第二智能终端标识符。所述语音处理能力列表动态构建单元基于所述查询响应判断在其自身接入所述本地无线网络之前是否有至少一个第二智能终端已首次成功接入所述本地无线网络。
优选的,所述通信单元在所述本地无线网络内广播所述第一语音处理能力交互消息,具体为:所述通信单元向所述服务器发送所述第一语音处理能力交互消息,所述第一语音处理能力交互消息中携带广播标识符,所述服务器在所述本地无线网络内广播所述第一语音处理能力交互消息。
优选的,所述通信单元还用于发送前文所述的其他消息如智能终端参数交互消息。
所述所述语音处理能力列表动态构建单元还用于将其他智能终端的参数信息记录在存储单元中。
优选的,所述语音处理能力列表动态构建单元还用于:在判断出在预设时间内所述通信单元仅从所述至少一个第二智能终端中的部分第二智能终端接收到第二语音处理能力交互消息,而未从其余部分第二智能终端接收到第二语音处理能力交互消息,则从接收到第二语音处理能力交互消息的所述部分第二智能终端中选择一个第二智能终端作为中继第二智能终端,触发所述通信单元向该中继第二智能终端发送语音处理能力中继请求消息,其中携带所述其余部分第二智能终端的标识符,所述中继第二智能终端在接收到所述语音处理能力中继请求消息后,从本地的第二语音处理能力列表中查询得到上述其余部分第二智能终端的语音处理能力,并携带在语音处理能力中继响应消息中发送给所述装置的通信单元。此时,所述语音处理能力列表动态构建单元还基于所述语音处理能力中继响应消息更新所述第一语音处理能力列表。
优选的,所述通信单元还用于接收服务器发送的指示其他智能终端连网状态变化的同步消息。
优选的,所述通信单元还发送电池电量低于预设阈值且无法通过无线充电补充电量(如不支持,或自动无线充电系统出现故障)时,在所述本地无线网络中广播低电量告警消息。
所述通信单元还用于接收其他智能终端发送的低电量告警消息。
所述语音处理能力列表动态构建单元还用于基于所述低电量告警消息将所述其他智能终端的低电量状态记录在存储单元中。
优选的,所述通信单元接收所述实时连网状态为在网的至少一个第二智能终端所发送的第二语音处理能力交互消息,所述语音处理能力列表动态构建单元基于所述第二语音处理能力交互消息更新所述第一语音处理能力列表。此后,所述语音处理能力列表动态构建单元从实时联网状态为在网的至少一个第二智能终端中选择一个第二智能终端作为中继第二智能终端,触发所述通信单元向该中继第二智能终端发送语音处理能力中继请求消息,其中携带实时连网状态为离线的第二智能终端的标识符,所述中继第二智能终端在接收到所述语音处理能力中继请求消息后,从本地的第二语音处理能力列表中查询得到上述实时连网状态为离线的第二智能终端的语音处理能力,并携带在语音处理能力中继响应消息中发送给所述装置的通信单元,所述语音处理能力列表动态构建单元还基于所述语音处理能力中继响应消息更新所述第一语音处理能力列表。
所述装置还包括用户指令获取单元,用于接收用户指令;
所述装置还包括任务执行控制单元,用于基于第一语音处理能力列表确定能够处理所述用户指令的第一语音处理引擎;判断所述第一语音处理引擎是否为所述装置的本地语音处理引擎,如果否,触发所述通信单元将所述用户指令发送给所述第一语音处理引擎所属的协作智能终端,并从所述协作智能终端接收语音处理结果;如果是,则采用所述第一语音处理引擎获得语音处理结果。
所述装置还包括任务执行结果提供单元,用于当语音处理结果为任务执行结果时,还将语音处理结果提供给用户。
所述任务执行控制单元,还用于基于用户指令获取单元接收的用户指令进行清晰度判断的相关操作(具体参见下文),之后,再基于第一语音处理能力列表确定能够处理所述用户指令的第一语音处理引擎。
所述任务执行控制单元还用于:当判断所述装置无法处理所述用户指令时,基于所述第一语音处理能力列表选择能够处理所述用户指令的第二智能终端作为协作智能终端,触发所述通信单元将所述用户指令发送给该协作智能终端,并从所述协作智能终端接收语音处理结果。
所述任务执行控制单元选择协作智能终端的过程具体参见前述记载。
所述任务执行控制单元,还用于若所述用户指令为语音指令,且本地无法处理所述用户指令为本地无法对该语音指令进行语音识别,则基于所述用户指令提取该用户的声纹特征,将所述声纹特征与上述协作智能终端关联存储。
所述任务执行控制单元,还用于判断所述用户指令获取单元再次接收的语音指令具有上述声纹特征时,不再尝试本地语音识别,触发所述通信单元直接将该语音指令发送给上述协作智能终端,并从上述协作智能终端获取语音识别结果。
所述语音处理能力列表动态构建单元,还用于在所述装置离线一段时间并再次在网后,触发所述通信单元向所述本地无线网络中在网的至少一个其他智能终端发送语音处理能力列表同步请求,并从所述至少一个其他智能终端接收语音处理能力列表同步响应;所述语音处理能力列表动态构建单元还用于基于所述语音处理能力列表同步响应更新本地的语音处理能力列表。
所述语音处理能力列表动态构建单元,还用于在所述装置离线一段时间并再次在网后,触发所述通信单元从所述服务器获取本地无线网络中所有智能终端的连网状态。
所述语音处理能力列表动态构建单元,还用于当语音处理能力发生变化时,更新本地的第一语音处理能力列表,生成第一语音处理能力更新消息,并触发所述通信单元在所述本地无线网络内广播所述第一语音处理能力更新消息,以使得所述至少一个第二智能终端在接收到第一语音处理能力更新消息后,更新其本地的第二语音处理能力列表。
所述通信单元,还用于接收所述至少一个第二智能终端发送的第二语音处理能力更新消息;所述语音处理能力列表动态构建单元还用于基于所述第二语音处理能力更新消息更新所述第一语音处理能力列表。
优选的,所述装置用于所述第一智能终端。
本发明还提供一种动态构建语音处理能力列表的装置,所述装置用于所述第二智能终端。其中,第二智能终端所执行的发送消息、接收消息由所述装置的通信单元来执行,其余步骤由所述装置的语音处理能力列表动态构建单元来执行,所述装置还包括存储单元,用于存储第二语音处理能力列表。
本发明还提供一种在本地无线网络中构建协作语音交互引擎簇的装置,参见图6,所述装置包括:
语音处理能力列表动态构建单元,用于所述装置在首次成功接入所述本地无线网络后生成第一语音处理能力列表;所述第一语音处理能力列表中包括所述装置包括的至少一个第一语音交互引擎和至少一个第二智能终端包括的至少一个语音交互引擎;所述第二智能终端在所述装置接入所述本地无线网络之前已首次成功接入所述本地无线网络;
通信单元,用于向语音助手云服务器发送语音交互引擎簇搜索请求,其中携带所述至少一个第一语音交互引擎;从语音助手云服务器接收语音交互引擎簇搜索响应,其中携带至少一个第一语音交互引擎簇的属性信息,所述第一语音交互引擎簇所包括的语音交互引擎中包括所述第一语音交互引擎和至少一个第二语音交互引擎;
协作语音交互引擎簇构建单元,用于查询第一语音处理能力列表,确定与所述至少一个第二语音交互引擎相对应的至少一个第二智能终端;根据所述语音交互引擎簇搜索响应构建生成第一协作语音交互引擎簇属性信息,所述第一协作语音交互引擎簇属性信息包括所述第一语音交互引擎与所述装置的对应关系以及所述至少一个第二语音交互引擎与至少一个第二智能终端的对应关系。
优选的,所述装置用于所述第一智能终端。
优选的,所述装置还包括存储单元,用于存储所述第一协作语音交互引擎簇属性信息。
所述通信单元还用于将所述第一协作语音交互引擎簇的属性信息发送给所述本地无线网络中的至少一个第二智能终端。
所述协作语音交互引擎簇构建单元,还用于在语音交互引擎簇搜索响应中携带的是至少一个第一语音交互引擎簇的配置信息时,查询第一语音处理能力列表,确定能够完成至少一个第二语音交互引擎相关联的任务的至少一个第二智能终端和相应的至少一个第三语音交互引擎。此时,生成的所述第一协作语音交互引擎簇属性信息包括所述第一语音交互引擎与所述装置的对应关系以及所述至少一个第三语音交互引擎与至少一个第二智能终端的对应关系。
所述协作语音交互引擎簇构建单元,还用于在构建生成所述协作语音交互引擎簇属性信息之前,触发所述通信单元向与所述至少一个第二语音交互引擎相对应或向完成与所述至少一个第二语音交互引擎的相关联的任务的至少一个第二智能终端发送协作语音交互引擎簇构建问询请求,并在所述通信单元接收到协作语音交互引擎簇构建同意响应后,再根据所述语音交互引擎簇搜索响应构建协作语音交互引擎簇的属性信息;其中,所述第二智能终端在接收到协作语音交互引擎簇构建问询请求后,判断自身是否支持协作语音交互引擎簇功能,如果是,生成协作语音交互引擎簇构建同意响应并将其发送给所述装置。
所述协作语音交互引擎簇构建单元,还用于在判断出所述装置向所述至少一个第二智能终端发送协作语音交互引擎簇构建问询请求后,未从其中一个或多个第二智能终端接收到协作语音交互引擎簇构建同意响应,则触发所述通信单元向该一个或多个第二智能终端发送语音助手升级请求消息,在所述通信单元接收到所述一个或多个第二智能终端发送的语音助手升级完成消息后,再根据所述语音交互引擎簇搜索响应构建协作语音交互引擎簇的属性信息。所述一个或多个第二智能终端在接收到语音助手升级请求消息后,启动语音助手升级,并在升级完成后,生成并向所述装置发送所述语音助手升级完成消息。
所述协作语音交互引擎簇构建单元,还用于将所述第一语音交互引擎设置为所述第一协作语音交互引擎簇的主导交互引擎,并记录在协作语音交互引擎簇的属性信息中。
所述协作语音交互引擎簇构建单元,还用于在触发所述通信单元将所述协作语音交互引擎簇的属性信息发送给所述本地无线网络中的至少一个第二智能终端之前,触发所述任务执行结果提供单元向用户发出第一指令,指示用户对所述协作语音交互引擎簇进行命名(当语音交互引擎簇搜索响应中携带配置信息时)或重命名(当语音交互引擎簇搜索响应中携带属性信息时),触发所述用户指令获取单元接收用户的命名或重命名指令;所述协作语音交互引擎簇构建单元,还用于将所述命名指令中携带的簇名称记录在协作语音交互引擎簇的属性信息中,或使用所述重命名指令中携带的簇名称更新协作语音交互引擎簇的属性信息中的簇名称。
所述协作语音交互引擎簇构建单元,还用于当所述第一智能终端确定与某个第二语音交互引擎相对应的第二智能终端或能够完成与某个第二语音交互引擎相关联的任务的第二智能终端为多个时,从中选择一个第二智能终端作为与该第二语音交互引擎相对应的第二智能终端或作为能够完成第二语音交互引擎相关联的任务的第二智能终端。选择的具体过程如前文所述,不再赘述。
所述协作语音交互引擎簇构建单元,还用于从中选择一个第二智能终端作为与该第二语音交互引擎相对应的第二智能终端或作为能够完成第二语音交互引擎相关联的任务的第二智能终端后,将其余第二智能终端作为与该第二语音交互引擎相对应的并存第二智能终端或作为能够完成第二语音交互引擎相关联的任务的并存第二智能终端;根据所述语音交互引擎簇搜索响应构建生成第一协作语音交互并存引擎簇属性信息,所述第一协作语音交互并存引擎簇属性信息包括所述第一语音交互引擎与第一智能终端的对应关系以及所述至少一个第二语音交互引擎与至少一个并存第二智能终端的对应关系。
所述通信单元还用于将所述第一协作语音交互并存引擎簇的属性信息发送给所述本地无线网络中的至少一个第二智能终端。
所述协作语音交互引擎簇构建单元,还用于若按照前述的通信能力选择、处理器能力、离线时长、能量获取方式选择了第二智能终端,则基于该第二智能终端构建的第一协作语音交互引擎簇的优先级最高,并按照上述选择因素,对第一协作语音交互并存引擎簇进行优先级排序。
所述协作语音交互引擎簇构建单元,还用于在确定与某个第二语音交互引擎相对应的第二智能终端或能够完成与某个第二语音交互引擎相关联的任务的第二智能终端为多个时,触发所述通信单元从所述本地无线网络中的服务器获取上述多个第二智能终端的离线时长,将其中离线时长最短的第二智能终端作为与该第二语音交互引擎相对应的第二智能终端,或将其中离线时长最短的第二智能终端作为能够完成第二语音交互引擎相关联的任务的第二智能终端。
所述通信单元,还用于接收所述本地无线网络中的所述至少一个第二智能终端所发送的代理构建协作语音交互引擎簇请求,其中携带所述至少一个第二智能终端所包括的至少一个第二语音交互引擎。
所述协作语音交互引擎簇构建单元,还用于采用构建第一协作语音交互引擎簇的类似方式构建第二协作语音交互引擎簇属性信息,所述第二协作语音交互引擎簇包括所述至少一个第二语音交互引擎,触发所述通信单元将所述第二协作语音交互引擎簇的属性信息发送给所述本地无线网络中的至少一个第二智能终端。
本发明还提供一种动态构建语音处理能力列表的装置,所述装置用于所述第二智能终端。其中,第二智能终端所执行的发送消息、接收消息由所述装置的通信单元来执行,所述装置还包括存储单元,用于存储第一协作语音交互引擎簇和第二协作语音交互引擎簇的属性信息。
本发明还提供一种基于协作语音交互引擎簇与语音助手进行交互的装置,参见图7,所述装置包括:
用户指令获取单元,用于获取用户指令;
任务执行控制单元,用于基于所述用户指令确定第一任务,基于第一语音处理能力列表确定能够执行所述第一任务的第一语音交互引擎;所述第一语音处理能力列表中包括不同任务与语音交互引擎的对应关系;基于本地存储的协作语音交互引擎簇确定所述第一语音交互引擎所属的第一协作语音交互引擎簇;其中,所述第一协作语音交互引擎簇包括所述第一语音交互引擎和至少一个第二语音交互引擎;基于所述第一语音处理能力列表确定与所述第一协作语音交互引擎簇所包括的语音交互引擎相对应的智能终端集合,其中包括与第一语音交互引擎对应的第二智能终端和与所述至少一个第二语音交互引擎对应的至少一个第三智能终端;触发通信单元;
所述通信单元,用于响应于所述任务执行控制单元的触发,将所述用户指令发送给所述第二智能终端的第一语音交互引擎,从所述第二智能终端的第一语音交互引擎接收终端间槽位同步信息,其中携带所述第二智能终端的第一语音交互引擎需要同步给所述至少一个第三智能终端的至少一个第二语音交互引擎的关键知识数据;将所述终端间槽位同步信息转发给所述至少一个第三智能终端的至少一个第二语音交互引擎;
任务执行结果接收单元,用于从第二智能终端的第一语音交互引擎和所述至少一个第三智能终端的至少一个第二语音交互引擎分别接收第一任务执行结果和至少一个第二任务执行结果,将所述第一任务执行结果和至少一个第二任务执行结果同时提供给用户;
存储单元,用于存储协作语音交互引擎簇。
优选的,所述任务执行结果接收单元可以通过所述通信单元从第二智能终端的第一语音交互引擎和所述至少一个第三智能终端的至少一个第二语音交互引擎分别接收第一任务执行结果和至少一个第二任务执行结果。
所述任务执行控制单元,还用于执行第一判断:判断所述装置与所述第二智能终端是否为同一个终端,即判断所述第一语音交互引擎是否为所述装置的本地语音交互引擎;
情况1:如果第一判断的结果为是,将所述语音指令发送给所述第一语音交互引擎,从所述第一语音交互引擎接收终端间槽位同步信息,并触发所述通信单元将其发送给上述至少一个第三智能终端,以使得上述至少一个第三智能终端的至少一个第二语音交互引擎基于所述终端间槽位同步信息对至少一个第二语音交互引擎相关联的至少一个第二任务的槽位进行即时同步;还用于触发所述任务执行结果接收单元,以使得所述任务执行结果接收单元执行:从所述第一语音交互引擎接收第一任务执行结果,通过所述通信单元从所述至少一个第三智能终端接收至少一个第二任务执行结果,并将所述第一任务执行结果和至少一个第二任务执行结果同时提供给用户;
情况2:如果第一判断的结果为否,当所述装置与至少一个第三智能终端中的一者为同一个终端时,触发所述通信单元将所述语音指令发送给第一语音交互引擎对应的第二智能终端;任务执行控制单元还用于所述激活协作语音交互引擎簇中属于第一智能终端的第二语音交互引擎即本地的第二语音交互引擎,并触发所述通信单元从第二智能终端接收终端间槽位同步信息;任务执行控制单元还用于基于所述终端间槽位同步信息对本地的所述第二语音交互引擎相关联的第二任务的槽位进行即时同步;所述任务执行控制单元还用于触发所述任务执行结果接收单元,以使得所述任务执行结果接收单元执行:从所述本地的第二语音交互引擎接收第二任务执行结果,通过所述通信单元从所述第二智能终端接收第一任务执行结果,并将所述第一任务执行结果和第二任务执行结果同时提供给用户;
情况3:如果第一判断的结果为否,当所述装置与至少一个第三智能终端中的任意一者均不为同一个终端时,触发所述通信单元,以使得所述通信单元执行:将所述语音指令发送给第一语音交互引擎对应的第二智能终端,并通知所述至少一个第三智能终端激活所述至少一个第二语音交互引擎,从第二智能终端接收终端间槽位同步信息,将终端间槽位同步信息转发给所述至少一个第三智能终端,以使得至少一个第三智能终端基于所述终端间槽位同步信息对所述至少一个第二语音交互引擎相关联的至少一个第二任务的槽位进行即时同步;触发所述任务执行结果接收单元,以使得所述任务执行结果接收单元执行:通过通信单元从所述第二智能终端和至少一个第三终端分别接收第一任务执行结果和至少一个第二任务执行结果,并将所述第一任务执行结果和第二任务执行结果同时提供给用户。
优选的,所述任务执行控制单元,还用于:在情况2即第一判断的结果为否,且所述第一智能终端与至少一个第三智能终端中的一者为同一个终端时,触发所述通信单元:在将所述语音指令发送给第一语音交互引擎对应的第二智能终端之后通知所述至少一个第三智能终端激活所述至少一个第二语音交互引擎,并将接收到的终端间槽位同步信息转发给其他第三智能终端,以使得所述其他第三智能终端基于所述终端间槽位同步信息对相应的第二交互引擎相关联的第二任务的槽位进行同步;触发所述任务执行结果接收单元,以使得所述任务执行结果接收单元执行:从所述其他第三智能终端接收第二任务执行结果,将所述从其他第三智能终端接收到的第二任务执行结果与所述第一任务执行结果和从所述本地的第二语音交互引擎接收到的第二任务执行结果同时提供给用户。
所述任务执行控制单元,还用于:在确定所述第一语音交互引擎所述的第一协作语音交互引擎簇之后,执行第二判断,即判断所述第一语音交互引擎是否为所述第一协作语音交互引擎簇的主导交互引擎,如果第二判断的结果为是,则按照上述协作语音交互引擎簇的方式来执行;如果第二判断的结果为否,判断所述第一语音交互引擎是否为第一智能终端的本地语音交互引擎,如果是,将所述语音指令发送给所述第一语音交互引擎,以使得所述第一语音交互引擎基于所述语音指令对所述第一任务的槽位进行填充,触发所述任务执行结果接收单元从第一语音交互引擎接收第一任务执行结果,将其提供给用户;如果否,触发所述通信单元将所述语音指令发送给所述第一语音交互引擎所属的协作智能终端,以使得所属协作智能终端基于所述语音指令对所述第一任务的槽位进行填充,触发所述任务执行结果接收单元通过所述通信单元从所述协作智能终端接收第一任务执行结果,并将其提供给用户。
所述任务执行控制单元,还用于:判断所述第一智能终端是否处于协作交互引擎簇工作模式以及判断所述用户指令中是否包括协作交互引擎簇工作模式变更指令,上述两个判断中有一者结果为是,则执行基于本地存储的协作语音交互引擎簇确定所述第一语音交互引擎所属的第一协作语音交互引擎簇及其后续步骤,若两者判断均为否,则执行判断所述第一语音交互引擎是否为第一智能终端的本地语音交互引擎及其后续步骤。
所述任务执行控制单元,还用于:基于所述用户指令单元接收到的用户的语音指令,确定所述语音指令的第一清晰度值,将触发所述通信单元所述第一清晰度值广播给本地无线网络中的至少一个其他智能设备并从上述至少一个其他智能设备接收第二清晰度值;所述任务执行控制单元还用于判断所述第一清晰度值是否大于所述第二清晰度值,如果是,执行后续步骤。
所述用户指令获取单元具体用于获取用户语音指令;
所述任务执行控制单元,还用于:基于第一语音能力列表选择能够对该语音指令进行语音识别处理的智能终端,基于该智能终端的处理结果获取用户指令。
所述任务执行控制单元,还用于若基于第一语音处理能力列表确定能够执行所述第一任务的第一语音交互引擎为多个,先从所述多个第一交互引擎中选择一个,随后再基于本地存储的协作语音交互引擎簇确定选择出的第一语音交互引擎所属的第一协作语音交互引擎簇。
所述任务执行控制单元,还用于若确定所述第一语音交互引擎所属的第一协作语音交互引擎簇(第一协作语音交互共存引擎簇)为多个,则先选择其中一个,再基于所述第一语音处理能力列表确定与所述第一协作语音交互引擎簇所包括的语音交互引擎相对应的智能终端集合。
本发明还提供一种动态构建语音处理能力列表的装置,所述装置用于所述第二智能终端。其中,第二智能终端所执行的发送消息、接收消息由所述装置的通信单元来执行,其余步骤由所述装置的任务执行控制单元来执行。
本发明的用于第一智能终端的所述装置的三个实施例中,名称相同的单元具有其他实施例中该单元所具有的所有功能。上述三个实施例中的所述装置可以任意的组合。
本发明还提供了一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有可在处理器上运行的计算机程序,所述计算机程序在被所述处理器执行时实现如上所述的方法。
本发明还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有可在处理器上运行的计算机程序、所述计算机程序在被执行时实现如上所述的方法。
本发明还提供了一种语音助手,其特征在于,包括如上所述的装置。
本发明还提供了一种终端,其特征在于,包括如上所述的装置或如上所述的语音助手。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存、可擦式可编程只读存储器(EPROM)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码。
以上说明只是为了方便理解本发明而举出的例子,不用于限定本发明的范围。在具体实现时,本领域技术人员可以根据实际情况对装置的部件进行变更、增加、减少,在不影响方法所实现的功能的基础上可以根据实际情况对方法的步骤进行变更、增加、减少或改变顺序。
尽管已经示出和描述了本发明的实施例,本领域技术人员应当理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同替换所限定,在未经创造性劳动所作的改进等,均应包含在本发明的保护范围之内。