一种应用程序调度处理方法及装置
技术领域
本发明实施例涉及程序调度技术领域,具体涉及一种应用程序调度处理方法及装置。
背景技术
在智能机器人的使用过程中,鼠标键盘手指点击不再是主要的交互方式,用户一般更期望通过语音、手势等更加自然的方式来和机器人交流。用户在使用手机、电脑上的软件时,一个应用程序就是与用户交互的实体,用户的点击、输入的操作一般会被操作系统明确的发送给一个特定的应用程序。但用户通过自然语言跟智能机器人的交互过程中,用户可能会随时切换到不同的对话上下文中,比如用户可以对机器人说:“我要听音乐”,之后马上又说“给我拍张照片”,这需要机器人能够识别出用户的意图,来完成音乐播放时,接收用户新的输入并且切换到拍照的能力。
用户一次语音输入,可能可以被多个应用程序处理,例如用户说“停止”,可能的意图是想停止机器正在进行的关节旋转和行动机构动作,也可能是想停止当前正在播放的音乐。这需要机器人能够根据当前正在运行的各个功能执行状态,判断用户的一次输入应该对应由哪些应用程序来处理。
在实现本发明实施例的过程中,发明人发现现有的智能机器人无法将用户的输入和操作指向一个明确的应用程序。
发明内容
由于现有的智能机器人无法将用户的输入和操作指向一个明确的应用程序的问题,本发明提出一种应用程序调度处理方法及装置。
第一方面,本发明提出一种应用程序调度处理方法,包括:
根据输入指令,识别得到与所述输入指令对应的文字指令;
根据所述文字指令在既定的预设状态集中进行分析,得到与所述文字指令对应的本地应用程序;
根据指令程序处理表,获取所述本地应用程序能够处理所述文字指令的置信概率;
若判断获知所述置信概率大于第一预设值,则将所述文字指令发送至所述本地应用程序进行处理;
其中,所述预设状态集中包括每个本地应用程序的运行状态、指令执行情况和对应处理指令。
优选地,所述方法还包括:
若判断获知所述置信概率小于等于第一预设值,则将所述文字指令发送至所述云端服务器进行处理。
优选地,所述方法还包括:
若判断获知所述置信概率小于第二预设值,则将所述文字指令在云端服务器对应的处理程序发送至所述本地应用程序进行存储。
优选地,所述若判断获知所述置信概率大于第一预设值,则将所述文字指令发送至所述本地应用程序进行处理之后,还包括:
当所述本地应用程序在处理所述文字指令的过程中,若接收到取消处理指令,则将所述指令程序处理表中所述本地应用程序与所述文字指令对应的置信概率减小第三预设值。
优选地,所述运行状态包括:待命状态、正在运行状态和后台挂起状态。
优选地,所述方法还包括:
根据所述文字指令的处理情况,更新所述预设状态集中所述本地应用程序的运行状态、指令执行情况和对应处理指令。
第二方面,本发明还提出一种应用程序调度处理装置,包括:
指令识别模块,用于根据输入指令,识别得到与所述输入指令对应的文字指令;
指令处理模块,用于根据所述文字指令在既定的预设状态集中进行分析,得到与所述文字指令对应的本地应用程序;
置信概率获取模块,用于根据指令程序处理表,获取所述本地应用程序能够处理所述文字指令的置信概率;
第一程序调度模块,用于若判断获知所述置信概率大于第一预设值,则将所述文字指令发送至所述本地应用程序进行处理;
其中,所述预设状态集中包括每个本地应用程序的运行状态、指令执行情况和对应处理指令。
优选地,所述装置还包括:
第二程序调度模块,用于若判断获知所述置信概率小于等于第一预设值,则将所述文字指令发送至所述云端服务器进行处理。
优选地,所述装置还包括:
处理程序本地存储模块,用于若判断获知所述置信概率小于第二预设值,则将所述文字指令在云端服务器对应的处理程序发送至所述本地应用程序进行存储。
优选地,所述装置还包括:
置信概率减小模块,用于当所述本地应用程序在处理所述文字指令的过程中,若接收到取消处理指令,则将所述指令程序处理表中所述本地应用程序与所述文字指令对应的置信概率减小第三预设值。
优选地,所述运行状态包括:待命状态、正在运行状态和后台挂起状态。
优选地,所述装置还包括:
状态集更新模块,用于根据所述文字指令的处理情况,更新所述预设状态集中所述本地应用程序的运行状态、指令执行情况和对应处理指令。
由上述技术方案可知,本发明实施例通过引入每个指令和应用程序对应的置信概率,来判断输入指令能够直接由本地应用程序处理,能够使得智能机器人将用户的输入和操作指向明确的应用程序,同时提高指令处理速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本发明一实施例提供的一种应用程序调度处理方法的流程示意图;
图2为本发明另一实施例提供的一种应用程序调度处理方法的流程示意图;
图3为本发明另一实施例提供的一种应用程序调度处理方法的流程示意图;
图4为本发明另一实施例提供的一种应用程序调度处理方法的流程示意图;
图5为本发明另一实施例提供的一种应用程序调度处理方法的流程示意图;
图6为本发明一实施例提供的一种应用程序调度处理装置的结构示意图。
具体实施方式
下面结合附图,对发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1示出了本发明一实施例提供的一种应用程序调度处理方法的流程示意图,包括:
S101、根据输入指令,识别得到与所述输入指令对应的文字指令;
具体地,终端根据输入的语音指令,识别得到与所述语音指令对应的文字指令;
所述终端为具备数据处理能力的设备,在本实施例中,所述终端为智能机器人。
一般来说,智能机器人主要分为两端:本地和云端服务器。
机器人本地的主要工作如下:
1)接收用户的输入,用户输入的方式包含但不仅限于语音、手指点击、手势识别、键盘鼠标等形式;
2)处理本地程序能够处理的文字指令;
3)执行屏幕和语音输出,同时执行移动、旋转等物理移动指令。
机器人云端服务器的主要工作如下:
处理本地程序无法处理的文字指令。
在用户通过自然语言同机器人进行交互的过程中,机器人本地的各个应用程序和云端服务器在执行过程按如下方式进行交互:
用户输入某一个指令,机器人本地的调度程序检查正在运行的应用程序是否能够处理输入的指令,如果可以的话,就将用户输入的指令交给当前正在运行的应用程序来处理。在检查过程中,机器人本地的调度程序和应用程序需保存特定的历史信息,同时实现特定的一些接口来支持调试程序的决策。
其中,所述输入指令包括语音指令、手指点击指令、手势识别指令、键盘鼠标等输入指令。
举例来说,当用户输入语音指令“本地天气如何”,智能机器人可通过语音识别功能对该语音指令进行识别,识别出对应的文字指令。
S102、根据所述文字指令在既定的预设状态集中进行分析,得到与所述文字指令对应的本地应用程序;
具体地,终端根据所述文字指令和预设状态集,得到与所述文字指令对应的本地应用程序;
其中,所述预设状态集中包括每个本地应用程序的运行状态、指令执行情况和对应处理指令。
所述应用程序的运行状态是指应用程序当前的状态,例如,待命状态、正在运行状态和后台挂起状态。
所述指令执行情况是指应用程序处理的每个指令的执行情况,包括指令处理对象和指令处理结果;所述指令处理对象为本地应用程序或云端服务器。
所述对应处理指令是指当前应用程序处理过的指令。
举例来说,用户输入的语音指令为“当地天气如何”,在预设状态集中存有当前运行的应用程序为机票预订应用程序,机票预订应用程序的上一个指令为“查询北京到上海的机票”,因此,指令处理程序将指令“上海天气如何”发送至天气应用程序。
S103、根据指令程序处理表,获取所述本地应用程序能够处理所述文字指令的置信概率;
具体地,终端根据指令程序处理表,获取所述本地应用程序能够处理所述文字指令的置信概率。
其中,所述指令程序处理表存有每个应用程序能够处理对应指令的置信概率,表示每款应用程序对不同类型的文字指令的响应能力。
具体地,指令程序处理表中包括终端中安装的所有应用程序的对应指令,以及当前应用程序能够处理对应指令的置信概率。
举例来说,终端中安装有音乐播放应用程序A、视频播放应用程序B和相机应用程序C,则指令程序处理表中音乐播放应用程序A的对应指令包括:播放音乐A1(对应的置信概率为95%)、听歌A2(对应的置信概率为95%)、下载歌曲A3(对应的置信概率为60%);视频播放应用程序B的对应指令包括:播放视频B1(对应的置信概率为95%)、看球赛B2(对应的置信概率为80%)、下载视频B3(对应的置信概率为60%);相机应用程序C的对应指令包括:拍照C1(对应的置信概率为95%)、拍视频C2(对应的置信概率为95%)、浏览照片(对应的置信概率为90%)。
应用程序需要能够针对用户的特定指令,根据自身当前的运行状态,给出是否可以处理该指令的一个置信概率,并且给出自己将要以何种方式给出用户响应,置信概率通过终端所在位置、终端对应用户的用户特征进行更新和调整。例如,用户说“我想听歌”,音乐播放程序以0.95置信概率声明自己需要使用扬声器来给用户播放音乐,而天气应用程序则以0.02置信概率声明无法处理该指令。或者,如果用户所在地为上海,则天气应用程序能够处理指令“上海天气如何”的置信概率为95%;如果终端从日程应用程序获知用户常去上海出差,则天气应用程序能够处理指令“上海天气如何”的置信概率为80%;如果用户未去过,则天气应用程序能够处理指令“上海天气如何”的置信概率为20%。
本实施例中,通过语义分析的方式对文字指令进行处理,获知文字指令对应的应用意图,再将应用意图与应用程序所属的既定类别进行匹配,得到缺省的置信概率,并通过终端所在位置、终端对应用户的用户特征进行更新和调整。
S104、若判断获知所述置信概率大于第一预设值,则将所述文字指令发送至所述本地应用程序进行处理;
具体地,终端对所述置信概率进行判断,若所述置信概率大于第一预设值,则将所述文字指令发送至所述本地应用程序进行处理。
其中,所述第一预设值为判定本地应用程序能否处理当前文字指令的预设值。
所述本地应用程序为存储在终端本地的应用程序,其处理过程无需与云端服务器进行数据交换。
本实施例通过引入每个指令和应用程序对应的置信概率,来判断输入指令能够直接由本地应用程序处理,能够使得智能机器人将用户的输入和操作指向明确的应用程序,同时提高指令处理速度。
进一步地,在上述方法实施例的基础上,如图2所示,所述方法还包括:
S205、若判断获知所述置信概率小于等于第一预设值,则将所述文字指令发送至所述云端服务器进行处理。
其中,S201-S204与图1对应的实施例中的S101-S104对应。
具体地,终端若判断获知所述置信概率小于等于第一预设值,则将所述文字指令发送至所述云端服务器进行处理。
由于终端本地的存储空间有限,因此无法存储所有处理程序,而云端服务器的存储空间庞大,能够存储所有的处理程序。对于常用的、置信概率较高的指令对应的处理程序,可存储在终端本地,以加快指令处理速度;对于不常用的、置信概率较低的指令对应的处理程序,则存储在云端服务器,当需要时,可以远程调用。
进一步地,在上述方法实施例的基础上,如图3所示,所述方法还包括:
S306、若判断获知所述置信概率小于第二预设值,则将所述文字指令在云端服务器对应的处理程序发送至所述本地应用程序进行存储。
其中,S301-S305与图2对应的实施例中的S201-S205对应。
具体地,终端若判断获知所述置信概率小于第二预设值,则将所述文字指令在云端服务器对应的处理程序发送至所述本地应用程序进行存储。
其中,所述第二预设值为判定是否将文字指令对应的处理程序从云端拷贝至本地的预设值。
举例来说,若天气应用程序能够处理指令“上海天气如何”的置信概率为20%,则说明本地应用程序缺乏相关的处理程序,为了提高指令处理速度,需要将本地应用程序缺乏的处理程序拷贝至本地。
进一步地,在上述方法实施例的基础上,如图4所示,所述方法还包括:
S407、当所述本地应用程序在处理所述文字指令的过程中,若接收到取消处理指令,则将所述指令程序处理表中所述本地应用程序与所述文字指令对应的置信概率减小第三预设值。
其中,S401-S406与图3对应的实施例中的S301-S306对应。
具体地,终端若接收到取消处理指令,则将所述指令程序处理表中所述本地应用程序与所述文字指令对应的置信概率减小第三预设值。
其中,所述取消处理指令为终端根据所文字指令指定本地应用程序后,用户取消了所述本地应用程序的处理。
所述第三预设值为当终端的处理结果不符合用户预期时,则调整所述指令程序处理表中所述本地应用程序与所述文字指令对应的置信概率。
机器人本地的调度程序维护近期用户操作历史和执行的输出,同时记录用户对操作的反馈,例如用户刚刚输入的一个指令在执行输出时,被用户马上取消了。那么之后用户如果输入相同的指令时,调度程序需要降低之前被取消的应用程序的置信概率。
根据用户反馈更改置信概率,能够针对不同用户,更加反映当前用户的使用习惯。
进一步地,在上述方法实施例的基础上,所述运行状态包括:待命状态、正在运行状态和后台挂起状态。
其中,机器人本地会有多个不同的应用程序,分别执行不同的功能。每一个应用程序,在执行用户的一次输入时,都会经历如下的状态切换:
待命状态,功能尚未启动,等待用户指令唤醒。
正在运行状态,应用程序已经开始运行,需要等待用户进一步输入信息或者其他指令来执行具体的功能。
后台挂起状态,一些功能在执行过程中,可能会被其他功能中断,但也该功能有可能之后恢复,例如一个用户在听歌的时候,可能会问一句“今天天气怎么样?”,但用户期望在听完天气后,还能够继续回到之前的音乐播放功能。
通过将运行状态分为待命状态、正在运行状态和后台挂起状态,便于在调度应用程序时能够准确获知每个应用程序的状态。
更进一步地,在上述方法实施例的基础上,如图5所示,所述方法还包括:
S508、根据所述文字指令的处理情况,更新所述预设状态集中所述本地应用程序的运行状态、指令执行情况和对应处理指令。
其中,S501-S507与图4对应的实施例中的S401-S407对应。
通过更新预设状态集,使得预设状态集能够时刻保持最新状态,以更准确地确定文字指令对应的应用程序。
本实施例启动一个应用程序响应用户的输入时,需要同时向云端服务器更新当前自身各个应用程序的运行状态、正在执行哪些功能、用户的输入指令等信息。记录这些最新的状态,再根据之前的历史操作猜测用户有哪些接下来会有哪些输入,并且针对这些输入的匹配规则和需要执行相应响应下发给机器人,机器人会将这些规则装载到相应应用程序的本地匹配规则列表中。机器人本地在接收到用户的输入指令时,首先将输入事件以及之前用户操作的历史发送给本地处于活动状态的各个应用程序,如果检查其本地匹配规则列表包含对应的事件处理指令,就按约定的指令进行执行,否则就将事件同步到云端服务器,由云端服务器来决定应该由哪个应用程序执行什么样的指令并下发到机器人端。
现有的云端服务器直接设定客户端的工作模式,不能直接调度客户端的任务,匹配往往不够精准。本实施例在本地设置任务调动机制,在本地设置可变状态集,根据云端的决策在本地对状态机中状态择优筛选,得到用户最需要的策略,则对于用户来说,认为机器人越来越聪明。
本实施例能够智能地判断用户当前的输入应该被哪个应用程序来处理,并在机器人端的应用程序有状态变化时,将状态变化同步到云端服务器,从而使云端服务器在进行决策时,可以一直依据机器人最新的状态来进行判断。本实施例通过约定机器人端的应用程序和云端服务器的交互协议,使得云端服务器可以根据机器人当前各个应用程序的状态,以及机器人与用户的多轮会话的历史,判断用户输入指令应该给予什么样的反馈。这样通过不断更新云端服务器的能力,用户会感觉机器人越来越聪明。
图6示出了本发明一实施例提供的一种应用程序调度处理装置的结构示意图,所述装置包括:指令识别模块61、指令处理模块62、置信概率获取模块63和第一程序调度模块64;其中,
所述指令识别模块61用于根据输入指令,识别得到与所述输入指令对应的文字指令;
所述指令处理模块62用于根据所述文字指令在既定的预设状态集中进行分析,得到与所述文字指令对应的本地应用程序;
所述置信概率获取模块63用于根据指令程序处理表,获取所述本地应用程序能够处理所述文字指令的置信概率;
所述第一程序调度模块64用于若判断获知所述置信概率大于第一预设值,则将所述文字指令发送至所述本地应用程序进行处理;
其中,所述预设状态集中包括每个本地应用程序的运行状态、指令执行情况和对应处理指令。
具体地,所述语音识别模块61根据输入指令,识别得到与所述输入指令对应的文字指令;所述指令处理模块62根据所述文字指令在既定的预设状态集中进行分析,得到与所述文字指令对应的本地应用程序;所述置信概率获取模块63根据指令程序处理表,获取所述本地应用程序能够处理所述文字指令的置信概率;所述第一程序调度模块64若判断获知所述置信概率大于第一预设值,则将所述文字指令发送至所述本地应用程序进行处理;
本实施例通过引入每个指令和应用程序对应的置信概率,来判断输入指令能够直接由本地应用程序处理,能够使得智能机器人将用户的输入和操作指向明确的应用程序,同时提高指令处理速度。
进一步地,在上述装置实施例的基础上,所述装置还包括:
第二程序调度模块,用于若判断获知所述置信概率小于等于第一预设值,则将所述文字指令发送至所述云端服务器进行处理。
进一步地,在上述装置实施例的基础上,所述装置还包括:
处理程序本地存储模块,用于若判断获知所述置信概率小于第二预设值,则将所述文字指令在云端服务器对应的处理程序发送至所述本地应用程序进行存储。
进一步地,在上述装置实施例的基础上,所述装置还包括:
置信概率减小模块,用于当所述本地应用程序在处理所述文字指令的过程中,若接收到取消处理指令,则将所述指令程序处理表中所述本地应用程序与所述文字指令对应的置信概率减小第三预设值。
进一步地,在上述装置实施例的基础上,所述运行状态包括:待命状态、正在运行状态和后台挂起状态。
进一步地,在上述装置实施例的基础上,所述装置还包括:
状态集更新模块,用于根据所述文字指令的处理情况,更新所述预设状态集中所述本地应用程序的运行状态、指令执行情况和对应处理指令。
本实施例所述的应用程序调度处理装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。
本发明的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。