用于经由用户演示学习并启用命令的方法和系统与流程

文档序号:27406819发布日期:2021-11-16 00:06阅读:66来源:国知局
用于经由用户演示学习并启用命令的方法和系统与流程

1.一个或多个实施例总体涉及用于电子装置的任务学习,特别地涉及使用用于为至少一个应用程序生成任务命令的用户演示来为虚拟助理或语音助理进行任务学习。


背景技术:

2.个人助理(pa)和智能代理广泛存在于移动装置、电视装置、家用音箱、消费者电子产品等以作为多模式装置上的技能实施用户任务。在移动装置中,pa和智能代理大多数与应用程序一起工作来响应于以语音命令、文本输入、快捷按钮和/或手势实现的用户请求而执行特定任务。为了执行这些任务,pa或智能代理的平台开发人员或应用程序开发人员需要通过调用由app开发人员提供的应用程序编程接口(api)来实现

任务执行’。例如,如果特定应用程序中没有api或接口以实现动作来完成任务,则可能无法执行用户请求。
3.在一个流行的移动应用程序平台
“”
中,截止2018第一季度,在app商店中存在近似380万的app。在此app商店中,不到0.5%的app有将api提供到开发人员以在pa和智能代理中使用时完成任务。


技术实现要素:

4.问题的解决方案
5.一个或多个实施例总体涉及使用用于为至少一个应用程序生成任务命令的用户演示来为虚拟助理进行任务学习。在一个实施例中,一种用于学习任务的方法包括获得与由电子装置执行的至少一个应用程序相关联的第一信息。记录关于所述至少一个应用程序的用户界面交互的序列。从所述用户界面交互的所述序列中提取第二信息。基于所述第一信息而从所述第二信息过滤事件或动作中的至少一者。对所述第一信息中所包括的每个元素执行辨别以生成语义本体。基于所述语义本体和经过滤的第二信息而生成所述用户界面交互的序列的任务命令。
6.在一些实施例中,一种电子装置包括存储指令的存储器。至少一个处理器执行所述指令,所述指令包括过程,所述过程被配置为:获得与由电子装置执行的至少一个应用程序相关联的第一信息;记录关于所述至少一个应用程序的用户界面交互的序列;从所述用户界面交互的所述序列中提取第二信息;使用所述第一信息而从所述第二信息过滤事件或动作中的至少一者;对所述第一信息中所包括的每个元素执行辨别以生成语义本体;以及基于所述语义本体和经过滤的第二信息而生成所述用户界面交互的序列的任务命令。
7.在一个或多个实施例中,一种非暂时性处理器可读介质包括程序,所述程序在由处理器执行时执行方法,所述方法包括获得与由电子装置执行的至少一个应用程序相关联的第一信息。记录关于所述至少一个应用程序的用户界面交互的序列。从所述用户界面交互的序列中提取第二信息。基于所述第一信息而从所述第二信息过滤事件或动作中的至少一者。对所述第一信息中所包括的每个元素执行辨别以生成语义本体。基于所述语义本体和经过滤的第二信息而生成所述用户界面交互的序列的任务命令。
8.一个或多个实施例的这些和其他方面和优点将从以下具体实施方式中变得显而易见,所述具体实施方式在结合附图时以示例方式说明了一个或多个实施例的原理。
附图说明
9.为了更全面地理解实施例的性质和优点以及优选的使用模式,应参考以下结合附图阅读的具体实施方式,在附图中:
10.图1示出了根据一些实施例的通信系统的示意图;
11.图2示出了根据一些实施例的用于能够单独地或组合地执行智能学习处理的系统的架构的框图,所述系统包括电子装置和云或服务器环境;
12.图3示出了根据一些实施例的智能学习系统(ils)处理的高级框图;
13.图4示出了根据一些实施例的用于用户任务演示(使用简单的步骤)的应用程序的示例流程;
14.图5示出了根据一些实施例的用于从系统和服务中过滤不想要的事件的ils的高级组成部分流程;
15.图6示出了根据一些实施例的ils过程的高级流程,所述ils过程通过基于包,诸如图标、文本和描述的数据以及语义而对事件进行过滤并且对事件和文本/图像语义本体划分优先级来执行动态事件排序;
16.图7示出了根据一些实施例的用于在单个应用程序上进行ils任务学习的示例过程流程图;
17.图8示出了根据一些实施例的用于在多于一个应用程序上进行ils任务学习的另一个示例过程流程图;
18.图9a、图9b、图9c和图9d示出了根据一些实施例的在应用程序上学习发帖的示例;
19.图10a、图10b和图10c示出了根据一些实施例的在应用程序上学习机票预订的示例;
20.图11a、图11b和图11c示出了根据一些实施例的在应用程序上查找餐馆的示例;
21.图12a、图12b和图12c示出了根据一些实施例的从相册向云服务分享旅行图片的示例;
22.图13示出了根据一些实施例的用于任务学习的过程的框图;并且
23.图14是示出信息处理系统的高级框图,所述信息处理系统包括实现一个或多个实施例的计算系统。
具体实施方式
24.进行以下描述是为了说明一个或多个实施例的一般原理,并且不意味着限制本文所要求保护的发明构思。另外,本文描述的特定特征可以各种可能组合和置换中的每一者与其他描述的特征结合使用。除非本文另有明确定义,否则所有术语将被给予其最广泛的可能解释,包括从说明书中隐含的含义以及本领域技术人员所理解的含义和/或如字典、专
著等所定义的含义。
25.应注意,术语“中的至少一者”是指跟随元素中的一者或一者以上。例如,“a、b、c或其组合中的至少一者”可以被解释为单独的“a”、“b”或“c”;或组合在一起的“a”和“b”、组合在一起的“b”和“c”、组合在一起的“a”和“c”;或组合在一起的“a”、“b”和“c”。
26.在一个或多个实施例中,“任务”可以指代包括用于完成目标的一个或多个步骤的用户任务。一些任务可以经由与一个或多个app的交互来实现,诸如添加日历事件、发送消息、预订机票、预约出行等。一些任务可能涉及一个或多个装置或设备以及控制一个或多个装置或设备的一个或多个动作,诸如设置夜间的娱乐环境、安排晨间例行事务等。
27.一个或多个实施例提供了使用用于为至少一个应用程序生成任务命令的用户演示来为虚拟助理进行任务学习。在一些实施例中,一种用于学习任务的方法包括获得与由电子装置执行的至少一个应用程序相关联的第一信息。针对所述至少一个应用程序记录用户界面交互的序列。从所述用户界面交互的所述序列中提取第二信息。基于所述第一信息而从所述第二信息过滤事件或动作中的至少一者。对所述第一信息中所包括的每个元素执行辨别以生成语义本体。基于语义本体和经过滤的第二信息而生成用户界面交互的序列的任务命令。
28.图1是根据一个或多个实施例的通信系统10的示意图。通信系统10可以包括发起传出通信操作的通信装置(发射装置12)和通信网络110,发射装置12可以使用所述通信网络来发起和实施与通信网络110内的其他通信装置的通信操作。例如,通信系统10可以包括从发射装置12接收通信操作的通信装置(接收装置11)。尽管通信系统10可以包括多个发射装置12和接收装置11,但是图1中仅示出了每一者的一个以简化附图。
29.可以使用可操作来创建通信网络的任何合适的电路、装置、系统或这些的组合(例如,包括通信塔和电信服务器的无线通信基础设施)来创建通信网络110。通信网络110可能能够使用任何合适的通信协议来提供通信。在一些实施例中,通信网络110可以支持例如传统电话线、有线电视、wi

fi(例如,ieee 802.11协议)、高频系统(例如,900mhz、2.4ghz和5.6ghz通信系统)、红外、其他相对局部的无线通信协议,或其任何组合。在一些实施例中,通信网络110可以支持由无线和蜂窝电话以及个人电子邮件装置(例如,)使用的协议。此类协议可以包括例如gsm、gsm+edge、cdma、quadband以及其他蜂窝协议。在另一个示例中,远程通信协议可以包括wi

fi以及用于使用voip、lan、wan来拨打或接听电话的协议或其他基于tcp

ip的通信协议。当位于通信网络110内时,发射装置12和接收装置11可以通过双向通信路径(诸如路径13)或通过两条单向通信路径进行通信。发射装置12和接收装置11两者可能能够发起通信操作并且接收所发起的通信操作。
30.发射装置12和接收装置11可以包括用于发送和接收通信操作的任何合适的装置。例如,发射装置12和接收装置11可以包括但不限于包括语音助理(个人助理、虚拟助理等)的装置,诸如移动电话装置、电视(tv)系统、智能tv系统、相机、摄像机、具有音频视频能力的装置、平板计算机、可穿戴装置、智能家电、智能相框,以及任何其他能够无线地通信(在有或没有支持无线的附件系统的帮助下)或经由有线路径(例如,使用传统电话线)进行通信的装置。通信操作可以包括任何合适的通信形式,包括例如语音通信(例如,电话呼叫)、数据通信(例如,数据和控制消息、电子邮件、文本消息、媒体消息)、视频通信,或这些的组合(例如,视频会议)。
31.图2示出了用于系统100的架构的框图,所述系统能够使用以下各项,使用用于为至少一个应用程序生成任务命令的用户演示来对虚拟助理或智能代理执行任务学习:电子装置120(例如,移动电话装置、tv系统、相机、摄像机、具有音频视频能力的装置、平板计算机、平板装置、可穿戴装置、智能家电、智能相框、智能照明等)、云或服务器140或者电子装置120和云计算(例如,可配置的计算系统资源和较高级别服务的共享池等)或服务器(例如,管理网络资源等的计算机、装置或程序)140的组合。发射装置12(图1)和接收装置11两者都可以包括电子装置120的特征中的一些或全部。在一些实施例中,电子装置120可以包括显示器121、传声器122、音频输出123、输入机制124、通信电路125、控制电路126、相机128、处理和存储器129、智能学习(例如,图3的使用ils 300处理)处理130和/或131(用于在电子装置120上、在云/服务器140上、在电子装置120和云/服务器140的组合上处理、与通信电路125通信以获得信息/将其信息提供给云或服务器140;并且可以包括用于但不限于如下所述的示例的任何处理)以及任何其他合适的部件。提供了应用程序1至n 127并且可以从云或服务器140、通信网络110(图1)等获得所述应用程序,其中n是等于或大于1的正整数。
32.在一些实施例中,音频输出123、显示器121、输入机制124、通信电路125和传声器122所采用的所有应用程序可以通过控制电路126互连和管理。在一个示例中,能够将音乐传输到其他调谐装置的手持式音乐播放器可以并入到电子装置120中。
33.在一些实施例中,音频输出123可以包括用于将音频提供给电子装置120的用户的任何合适的音频部件。例如,音频输出123可以包括构建到电子装置120中的一个或多个扬声器(例如,单声道或立体声扬声器)。在一些实施例中,音频输出123可以包括远程地耦合到电子装置120的音频部件。例如,音频输出123可以包括可以有线地(例如,联接到具有插口的电子装置120)或无线地(例如,耳机或耳麦)耦合到通信装置的耳麦、耳机或耳塞。
34.在一些实施例中,显示器121可以包括用于提供对用户可见的显示的任何合适的屏幕或投影系统。例如,显示器121可以包括并入电子装置120中的屏幕(例如,lcd屏、led屏、oled屏等)。作为另一个示例,显示器121可以包括用于在远离电子装置120的表面上提供内容的显示的可移动显示器或投影系统(例如,视频投影仪)。显示器121可以操作来在控制电路126的指导下显示内容(例如,有关通信操作的信息或有关可用媒体选择的信息)。
35.在一些实施例中,输入机制124可以是用于将用户输入或指令提供到电子装置120的任何合适的机构或用户接口。输入机制124可以采取多种形式,诸如按钮、小键盘、拨盘、点击式转盘、鼠标、视觉指示器、遥控器、一个或多个传感器(例如,相机或视觉传感器、光传感器、接近传感器等)、触摸屏、手势辨别、语音辨别等。输入机制124可以包括多点触摸屏。
36.在一些实施例中,通信电路125可以是可操作来连接到通信网络(例如,图1的通信网络110)并且将通信操作和媒体从电子装置120传输到通信网络内的其他装置的任何合适的通信电路。通信电路125可以操作来使用任何合适的通信协议与通信网络接口连接,例如像wi

fi(例如,ieee 802.11协议)、高频系统(例如,900mhz、2.4ghz和5.6ghz通信系统)、红外、gsm、gsm+edge、cdma、quadband以及其他蜂窝协议、voi p、tcp

ip或任何其他合适的协议。
37.在一些实施例中,通信电路125可以操作来使用任何合适的通信协议创建通信网
络。例如,通信电路125可以使用短程通信协议来创建短程通信网络以连接到其他通信装置。例如,通信电路125可以操作来使用协议创建局部通信网络以将电子装置120与耳麦耦合。
38.在一些实施例中,控制电路126可以操作来控制电子装置120的操作和性能。控制电路126可以包括例如处理器、总线(例如,用于将指令发送到电子装置120的其他部件)、存储器、存储体,或用于控制电子装置120的操作的任何其他合适的部件。在一些实施例中,(例如,处理和存储器129中的)一个或多个处理器可以驱动显示器并且处理从用户接口接收到的输入。存储器和存储体可以包括例如高速缓存、快闪存储器、rom和/或ram/dram。在一些实施例中,存储器可以专门用于存储固件(例如,用于装置应用程序,诸如操作系统、用户接口功能和处理器功能)。在一些实施例中,存储器可以操作来存储与电子装置120与其执行通信操作的其他装置相关的信息(例如,保存与通信操作相关的联系信息或者存储与用户所选择的不同媒体类型和媒体项相关的信息)。
39.在一些实施例中,控制电路126可以操作来执行在电子装置120上实现的一个或多个应用程序的操作。可以实现任何合适数量或类型的应用程序。尽管以下讨论将枚举不同的应用程序,但将理解,应用程序中的一些或全部可以组合到一个或多个应用程序中。例如,电子装置120可以包括应用程序1至n 127,所述应用程序包括但不限于:自动言语辨别(asr)应用程序、ocr应用程序、对话应用程序、pa(或智能代理)app、地图应用程序、媒体应用程序(例如,相册app、quicktime、mobile musicapp或mobile video app)、社交网络应用程序(例如,等)、日历应用程序(例如,用于管理事件、约会等的日历)、互联网浏览应用程序、推荐应用程序等。在一些实施例中,电子装置120可以包括可操作来执行通信操作的一个或多个应用程序。例如,电子装置120可以包括消息应用程序、电子邮件应用程序、语音邮件应用程序、即时消息应用程序(例如,用于聊天)、视频会议应用程序、传真应用程序,或用于执行任何合适的通信操作的任何其他合适的应用程序。
40.在一些实施例中,电子装置120可以包括传声器122。例如,电子装置120可以包括传声器122,以在通信操作期间或作为建立通信操作的手段或作为使用物理用户接口的替代方案,允许用户传输用于应用程序1至n 127的言语控制和导航的音频(例如,语音音频)。传声器122可以并入电子装置120中,或可以远程地耦合到电子装置120。例如,传声器122可以并入有线耳机中,传声器122可以并入无线耳麦中,传声器122可以并入远程控制装置中等。
41.在一些实施例中,相机模块128包括一个或多个相机装置,所述一个或多个相机装置包括用于捕获静态和视频图像的功能、编辑功能、用于发送、共享等照片/视频的通信互操作性等。
42.在一些实施例中,电子装置120可以包括适合于执行通信操作的任何其他部件。例如,电子装置120可以包括电源、端口,或者用于耦合到主机装置、辅助输入机制(例如,on/off开关)或任何其他合适部件的接口。
43.图3示出了根据一些实施例的ils 300处理的高级框图。在一些实施例中,ils 300处理的高级框图包括app(或应用程序)310、用户动作315(例如,与app 310的交互)、ils服
务320、事件验证器340、app ui屏幕图像捕获服务330、ui元素树语义挖掘工具360、事件元数据提取器345、任务事件队列350以及命令处理370,所述命令处理包括任务队列命令371处理、语义本体处理372以及事件处理器/过滤器373。在一些实施例中,ils 300处理的结果是任务命令380。
44.为了在各应用程序(例如,图2的应用程序1至n 127等)上启用语音命令、手势等,一些实施例采用ils 300处理(任务学习系统处理)。在一个或多个实施例中,在ils 300处理中,由用户在应用程序上演示任务(例如,图2的应用程序1至n 127等)。ils 300处理根据单次性或一次性过程按照需要利用不同组的输入值在应用程序上重复地执行任务。输入值可以来自用户语音命令、文本输入、手势、会话和/或上下文。在一些实施例中,在ils 300处理下,即使应用程序不具有语音辅助能力,也可以由所述应用程序实施语音命令。从演示中学习显著地减少了开发人员的工作、时间、成本和资源以实现特定任务来支持pa的能力。任何用户可以像正常情况一样轻松地使用移动应用程序通过演示来生成任务,而不需要学习曲线。
45.在一些实施例中,ils 300处理响应于由用户在一个或多个应用程序上演示的一系列用户动作而生成任务命令以实施任务。每个用户手势或动作生成一个或多个事件,所述一个或多个事件可以包含和/或反映任务执行序列中的各种数据、状态(例如,特定时间处的特定条件)和/或上下文(例如,时间、日期、电子装置/应用程序的交互或使用、地点、日历、事件/约会、活动等)。在一个或多个实施例中,用于ils 300处理的移动应用程序(例如,智能学习处理131、智能学习处理130或智能学习处理130和131的组合等)是高度动态的、状态代表性的和上下文感知的。不仅一个或多个用户动作可以生成一个或多个事件,而且装置和/或可靠的服务同样可以生成事件序列。在一些实施例中,任务执行序列通过基于对一个或多个动作的语义上的理解而过滤不想要的事件来确定。ils 300处理在学习任务中是高度上下文感知的,其中上下文有助于理解状态和事件优先级以生成可以高准确度执行的任务命令。
46.在一些实施例中,ils 300处理基于应用程序用户界面(ui)交互(例如,使用app ui屏幕图像捕获服务330)而捕获事件(例如,连同用户动作315一起生成的事件),其中ils 300处理可以获得一个或多个ui元素的详细信息。在一个示例中,对于系统,app ui屏幕图像捕获服务330基于可访问性服务而实现,这使得ui动作的监听器能够作为后台服务并且响应于与应用程序的用户交互而配置哪些用户动作可以被捕获或忽略。当用户执行ui动作时,对app ui屏幕图像捕获服务330生成回调方法,其中关于用户动作的信息被捕获为事件。事件包含详细信息,诸如用户动作类型(例如,单击、长单击、选择、滚动等)、ui元素、ui元素类型、位置(x,y)、文本、资源id和/或ui父子元素等。app ui屏幕图像捕获服务330将由应用程序指派给所述ui元素的任何特殊的元数据返回,以访问特定的应用程序包、配置元素,诸如启用、导出和处理等。每次用户交互可以与不同量的系统/服务,诸如通知、电池、呼叫、消息等相关联,所述系统/服务的处理具有高系统优先级。ils 300处理将收集可以由应用程序根据各种动作生成的诸如应用程序状态、许可、服务和事件的信息,以确定上下文。(例如,经由事件处理器/过滤器373)对事件中的一些进行过滤或者改变所述事件的序列以生成任务命令380。
47.在一些实施例中,应用程序状态基于当前应用程序屏幕(例如,称为中


活动’)而确定,所述当前应用程序屏幕从诸如创建、重新开始或开始的多个状态进行加载。应用程序可以如前文所描述的任何状态开始,这取决于先前用户与应用程序的交互。如果应用程序没有在后台中执行,则所述应用程序被调用为新的应用程序进程,即

创建’状态,这是应用程序的默认状态,在所述状态下,所有ui元素和资源(数据库、服务、接收器)都被实例化到存储器中。如果用户在演示新的任务之前与应用程序进行了交互,则所述应用程序保持在后台中执行,这是

活动保存实例’状态或

持续’状态。在一些应用程序(例如,等)中,屏幕ui元素基于用户动作而改变。例如,当用户在ui上向下滚动时,呈现新的故事。当窗口中的内容改变时,窗口的状态也会改变。这有助于识别屏幕中常常因为用户动作而改变的动态ui元素。窗口改变事件有助于在用户执行动作时识别活动屏幕。窗口内容改变事件有助于在屏幕的内容改变时识别活动屏幕,但是活动屏幕并未发生改变。从保存状态加载的应用程序意味着用户先前经由一些动作进行了操作,但是所述应用程序并没有关闭。由于应用程序仍然处于存储器中,因此,因用户动作或系统响应所致的屏幕数据和/或应用程序数据被暂时地保存。当用户下一次调用或打开应用程序时,应用程序打开先前关闭状态屏幕,所述屏幕具有所有保存的应用程序数据,而不是默认屏幕活动。数据可以是由用户实现的可见输入或因用户动作(例如,单击、选择等)所致的不可见数据。当应用程序从保存状态打开时,应用程序触发被称为

onactivitysaveinstancestate’的事件,这对于识别应用程序状态,同时处理窗口屏幕状态来说是很重要的。在一个或多个实施例中,ils 300处理经由演示来学习新的任务以完成用户的特定命令,生成可执行的任务命令380,相对于上下文和状态过滤由系统/服务生成的不想要的动作/事件,通过状态和上下文预测来提供动作和部分任务执行的动态排序,提供可以在不同版本的应用程序上执行的任务的版本兼容性等。在一些实施例中,学习任务不限于单个应用程序,并且ils 300处理可以应用于多个应用程序来实施单个任务。
48.在一些实施例中,ils 300处理发挥作用来以任务命令380的形式生成任务事件队列350以供系统(例如,图2的系统100、图14的系统1400等)执行。在一个或多个实施例中,任务命令380包含语义事件序列,其中每个语义事件包含提供目标ui元素、输入值、事件顺序优先级、是否为系统反馈事件等的数据。从应用程序构建任务命令380存在挑战,因为需要诸如语音、手势或输入事件的每个用户动作的足够的信息,使得任务命令380可以在一个或多个装置(例如,图2的电子装置120)以及各个版本的应用程序上执行。
49.生成任务命令380的一些挑战是动态状态和事件处理。移动系统应用程序(开发于移动os平台,诸如等上)与web app(其仅在浏览器中运行)相对比存在上下文执行,以便有效地利用系统资源。每个这样的系统应用程序受数个系统服务控制,诸如ui引擎、存储器、连接性、图形渲染、安全等等,所述系统服务为每个事件产生了动态且不可预测的事件、状态以及各种数据值。移动系统应用程序在受系统服务控制的整个装置上下文中运行,以在装置上下文改变时在应用程序之间有效地使用和共享资源。在一些实施例中,ils 300处理在实施任务学习时能理解每个系统状态并且感知上下文。由用户动作生成的所有事件基于事件的应用程序包、事件的类型和/或事件的上下文(它们基于多个数据元素而为动态的)而验证。当事件是由正学习任务的当前活动的应用程序包生成时,所述事件被处理为有效,并且其他事件将作为不相关事件被过滤出来,或者是在后台中运行的系统或外部应用程序事件,以生成任务命令380。
50.在一些实施例中,移动应用程序310的ui以与文档对象模型(dom)树类似的方式进行构建。由于(例如,移动装置的)屏幕尺寸较小,因此任务可能会跨越数个ui屏幕,并且每个屏幕包含树状的ui元素。ui元素基于其功能、可见性和可访问性,诸如按钮、文本视图、文本编辑、列表视图等而进行分类。为了构建单个任务,在单个屏幕中或在多个屏幕中包括更少或更多的ui操作。生成事件的用户动作315分多个阶段进行处理以生成任务命令380。例如,基于包、数据和语义,由事件验证器340验证事件,并且由事件处理器/过滤器373对所述事件进行过滤。对事件划分优先级,以构建可执行的动作和反馈事件。在一些实施例中,此类阶段对于处理事件过滤来说是很重要的。
51.在一些实施例中,ils 300处理在不遵循常规的开发过程,诸如编码、编译和调试的情况下生成可执行的任务命令380。ils 300处理借助于关于每个用户动作315的可用数据而顺序地理解每个用户ui动作。ils 300处理基于系统、服务和任务的上下文通过在语义上对一系列ui元素,诸如文本和/或图标图像以及此类ui元素的数据,诸如类型、描述、可能的动作等进行分类而对用户动作315或所生成的事件进行预处理。ils 300处理生成任务命令380,所述任务命令是可以自动地执行的类似于用户动作以及反馈事件的动作的集合,这有助于确保当用户利用语音命令以多个数据值发起任务时对在应用程序310上运行的每个动作实现完成状态。
52.在一些实施例中,ils 300处理学习如下任务。在理解了用户将通过与应用程序310交互来演示任务之后,ils服务320开始通过捕获与应用程序310相关联的包括包的诸如名称的数据的应用程序包信息、许可、数据提供商、服务、活动(ui屏幕)、硬件特征等来学习任务。在os中,这种包信息可以使用诸如packagemanager().get packageinfo)的平台api来获得。app ui屏幕图像捕获服务330捕获对用户可见的可见ui元素的当前活动屏幕,并且提取此类ui元素的文本和图标图像。用户动作315记录用户ui动作,提取用户动作315信息(例如,事件、状态、文本、图像或图标数据等)并且ui元素树语义挖掘工具360基于元素在每个屏幕中如何放置通过将每个元素数据提取为文本、资源id、位置、描述和父子元素而生成ui元素的层次树。事件元数据提取器345从用户动作315信息中提取元数据,诸如ui元素类型、ui元素的位置、出现的文本或图像、隐藏描述、时间戳等。任务事件队列350对用户动作事件信息进行排队以进行命令处理370。命令处理370从任务事件队列350和ui元素树语义挖掘工具360获得信息。事件处理器/过滤器373清除系统、服务和脱离上下文的事件以使得任务更为精确和准确。系统事件包括通告、警告、硬件状态改变事件诸如wi

fi连接改变等、以及在后台中运行的其他应用程序的服务事件。非上下文事件大多数是由系统或其他包/应用程序的后台服务生成的不是应用程序上执行的一个或多个用户动作的直接结果的非活动包事件。例如,在学习“send sms”任务时,当用户演示动作时接收到sms。所接收的sms被标记为脱离上下文的事件。语义本体372对从用户动作生成的事件的每个数据元素,诸如ui元素的文本、图像和类型,可能的输入数据执行辨别,以生成所有用户动作或事件的语义本体。如果数据元素中的一些没有足够的信息进行语义理解,则任务队列命令处理371基于关于此类特定数据元素的语音、手势或文本输入而添加额外的数据/描述。事件验证器340基于由每个事件生成的应用程序包、事件的类型和当前上下文事件(它们基于来自用户动作或系统反馈事件的数据而为动态的)而验证每个用户动作315。如果ils 300处理没有理解特定用户动作,则提示用户请求帮助。在一个实施例中,命
令处理370以

协议缓冲区’格式生成后续事件命令可执行任务,这是一种与语言无关以及与平台无关的用于将可以在应用程序上运行的结构化数据序列化的扩扩展的机制。协议缓冲区可以使用多种计算机语言以字节代码进行编码和解码。它有助于从一个装置上的一个应用程序学习任务并且在另一个装置上执行任务。在一些实施例中,在训练任务时不需要由用户输入语音数据或文本数据。几乎所有的数据都从演示任务的源应用程序收集,以用于理解并在语义上对用户执行的每个用户动作和元素进行分类。
53.图4示出了根据一些实施例的用于用户任务演示的应用程序的示例流程400。示例流程包括一系列屏幕410、411、412以及ui元素活动440、441、442、443、444、445和446。根据一些实施例,流程400使用ils 300处理(图3)来学习用户任务。任务学习基于由用户在单个应用程序或多个应用程序上演示的一系列动作而生成任务命令380。每次用户交互(例如,图3的用户动作315)生成包含各种数据、状态和上下文的一个或多个事件,这有助于对用户动作进行分类以便生成任务执行序列。ui元素活动440、441、442、443、444、445和446经由用户动作在每个屏幕410、411和412上进行演示。对于这些用户动作,用户输入一些文本(ui元素活动440、441、443和445),并且单击按钮(ui元素活动442、444和446)以从一个屏幕导航到另一个屏幕。在后台中,ils 300处理捕获用户动作的数据并且在语义上处理所述数据。如果用户动作或ui元素活动中的一些没有足够的信息以在语义上处理,则屏幕420提示用户经由语音和/或文本进行输入。在用户完成与屏幕420的交互之后,通过ils 300处理对由用户动作430、431和432生成的事件进行处理以形成任务命令380。
54.图5示出了根据一些实施例的高级组成部分流程500,其示出了ils 300处理使用事件处理器/过滤器373来过滤不想要的系统和服务事件。app 310(图3)的环境是高度动态的和上下文感知的。当用户执行特定动作(例如,与app 310交互、键入、语音命令等)时,ils 300处理生成与用户动作相对应的众多信息(例如,对动作的响应、信息提示等)。每个用户动作可以生成一个或多个事件。ils 300处理有效地工作来基于优先级而清除一个或多个事件或对所述事件重新排序。事件中的一些用于通过ils服务320处理来验证动作。
55.在一些实施例中,流程500包括所提取的事件元数据信息510、用户动作315以及系统生成的事件。当用户演示任务时,获得包括活动窗口状态520、文本编辑焦点521(当用户尝试输入一些文本时)以及所保存的状态(诸如导航到下一个屏幕或经由按钮单击523提交输入数据)的信息。流程500中的ils 300处理包括事件预处理530,即以下这样的组成部分:检查所有事件的捕获的必要数据(诸如文本和图像),并且将原始事件队列中的所有事件保存在存储器中以创建临时拷贝以供后续处理。如果丢失了任何信息或信息不足,则流程500利用特定元素(例如,在图4的屏幕420中)提示用户以使得用户能够以语音或文本输入数据。流程500中的ils 300处理还包括:对系统和服务的事件过滤540,所述事件过滤对不想要的服务和系统事件进行处理和过滤;文本和图像辨别550,所述文本和图像辨别为由用户动作生成的每个事件生成语义本体;以及上下文/状态预测560,所述上下文/状态预测识别一旦形成为任务命令380(图3和图4)就需要什么种类的上下文来实施这些动作,诸如许可、硬件需求、其他服务接口等。在一个实施例中,任务命令生成器570将来自事件预处理530、对系统和服务的事件过滤540、文本和图像辨别550和上下文/状态预测560的信息与用户动作315相组合,并且将信息转换为协议缓冲区格式(其可以被执行并且能够部署到任何系统以生成任务命令380)。
56.图6示出了根据一些实施例的ils 300过程的高级流程600,所述ils 300过程通过基于包,诸如图标、文本和描述的数据以及语义而对事件进行过滤并且对事件和文本/图像语义本体划分优先级来执行动态事件排序。当在应用程序的一个版本上利用特定量的强制数据学习任务以完成任务时,所学习的任务可能无法在所述应用程序的对于ils 300而言未知的其他版本上实施。ils 300根据对任务的语义理解和任务的资源id来工作。例如,如果应用程序屏幕改变或添加更多ui元素,则ils 300使用对于ui元素而言唯一的“资源id”来实施任务。即使ui元素发生改变,只要资源id不变,就仍然可以执行任务。如果ui元素的资源id也发生了改变,则ils 300将语义上接近的ui元素匹配到学习元素以实施动作。例如,学习了发送消息的一个任务,所述消息具有“联系人”、“文本”数据元素以及“发送”动作。在下一个版本的应用程序中,ui元素发生改变并且被标记为“接收人”、“消息”以及表示发送动作的图标按钮。生成语义本体372的域文本分类器在更新版本的应用程序中检测与“联系人”最接近的元素为“接收人”以及与“文本”最接近的元素为“消息”。ils 300使用语义本体来生成任务命令380,所述语义本体有助于为前后版本执行任务。
57.在一些实施例中,ils 300处理通过在语义上理解优先级来生成事件。流程600获得用户605动作315,并且使用事件处理器/过滤器373(图3)来过滤系统/服务事件610。事件处理器/过滤器373工作来识别由用户动作生成的事件。事件处理器/过滤器373基于事件信息,诸如事件类型620、事件优先级621和包类型而以多个验证和过滤级别处理事件。可以基于单个动作而生成一些相似的事件。例如,当用户触及文本编辑ui控件时,系统将生成两个事件,诸如“event_click”和“event_focus”。然而,仅需要一个事件来再次执行用户触摸动作。因此,事件处理器/过滤器373会过滤掉“event_focus”并且保留“event_click”。在一些应用程序(例如,应用程序(例如,和)中,可能存在应用程序开始时加载的许多动态数据。诸如

event_scroll’和

event_select’的动态数据是在没有任何用户动作的情况下生成的。这些事件由应用程序包生成,但是不是上下文相关的。因此,这些事件会被过滤掉并且后续事件会改变它们在任务队列中的位置。上下文预测是应用程序进程在应用程序在活动并运行时的状态。当应用程序运行时,并非所有用于完成任务的资源都会在相同的上下文中运行。例如,数据库、硬件资源、访问应用程序控件/ui元素可能具有其自身的应用程序上下文。上下文预测560识别特定资源是在应用程序上下文中运行还是在系统上下文中运行,这有助于通过获取适当的上下文来将任务执行保持完整。语义本体处理372被执行来挖掘应用程序的当前活动屏幕中存在的所有元素。语义本体处理372从文本、资源id、描述、位置以及连同可以对所述ui元素的屏幕文本和图标图像执行的动作生成所有元素的完整的语义数据。
58.图7示出了根据一些实施例的用于在单个应用程序上进行ils任务学习的示例过程流程700图。在一些实施例中,ils 300处理(图3)学习如何经由演示执行任务;从而使得普通的终端用户能够教导智能代理执行他/她想要/偏爱的任务。在一些实施例中,由用户提供的语音命令话语705由(例如,pa、虚拟助理等的)自然语言理解(nlu)引擎710处理。来自nlu引擎710的输出在意图槽715中提供语音命令的意图和槽信息。意图是终端用户的传达为执行一些特定任务的意图。这些意图有助于识别可以用于执行该意图的任务,诸如“预订机票”、“订购披萨”、“播放视频”等的应用程序。为了实施每个意图,电子装置(例如,图2的电子装置120)从可用的应用程序(例如,图2的应用程序1至n 127)选择特定应用程序。槽
(slot)是执行用户意图的任务的可变值,在“预订1月12日去纽约的机票”的示例话语中,部分“预订机票”是意图并且“纽约”和“1月12日”是槽。
59.在一些实施例中,用户(任务学习)确定720提供与电子装置中的可用的应用程序中哪个应用程序适合于执行这个任务有关的信息。如果电子装置中没有安装特定应用程序,则提示用户安装应用程序,或者如果存在多于一个应用程序,则提示用户选择合适的应用程序来为应用程序310(也参见图3)学习任务。也可以基于应用程序包信息、使用历史、应用程序的排名等而为用户选择特定应用程序。电子装置的各种屏幕730和用户动作315用于确定仅由用户动作引起的用户事件716,以及与用户动作一起发生的系统事件717。例如,系统事件717可以包括诸如通告的适时的系统事件,或者来自其他应用程序/服务、电池电量不足、键盘输入等的事件。所有这些事件共同地被添加到语义事件队列或原始事件队列350。事件处理器/过滤器373对语义事件队列350中的事件进行过滤并划分优先级,执行上下文/状态预测并且将输出添加到主任务队列371。语义本体处理372基于人工构建的预定义的一组值而在语义上进行验证。可能的值从多个应用程序中针对ui元素的各种情境进行提取。在一个示例中,发送按钮具有可能的语义含义,诸如发帖、推文、提交、完成等。这些值通过从一大组应用程序收集数据而人工地构建或以算法方式构建。所构建的数据值用于验证由nlu引擎710给出的槽值。在一个示例中,在语音命令“向妈妈发送会迟到的sms”中,存在完成任务所需的作为妈妈(来自联系人的电话号码)以及文本“迟到”的两个槽值。ils动作验证器340验证用户是否演示在任何时间实施任务所需的槽或者系统是否正确地处理所述槽。在框740处,提示用户取得额外的数据或进行用户验证。一旦任务被验证,任务命令生成器570就会生成任务命令380。在一些实施例中,针对单个应用程序的ils 300处理可以用于各种任务,诸如预订机票、查找地点(例如,餐馆、地点、酒店、商店等)等。例如,可以实施不同的任务,诸如“预订酒店”、“预订机票”、“预订汽车”以及“查找邻近的景点”。如果多个用户在同一个应用程序上演示了不同的任务,则可能需要额外的用户验证来实施任务以避免任务执行的不明确性。
60.图8示出了根据一些实施例的用于在多于一个应用程序上进行ils任务学习的另一个示例过程流程800图。在一些实施例中,语音命令话语705由nlu引擎710(也参见图7)处理。如上文所描述,来自nlu引擎710的输出在意图槽715中提供意图和槽信息。如上文所描述,用户(任务学习)确定720识别应用程序310(也参见图3)。电子装置的各种屏幕730和用户动作315用于确定包括仅由用户动作引起事件的用户事件716,以及与用户动作一起发生的系统事件717。所有这些事件共同地被添加到语义事件队列或原始事件队列350。事件处理器/过滤器373处理事件,对所述事件进行过滤、划分优先级,并且执行上下文/状态预测。具有子任务(例如,2个或更多个)的事件队列871基于整个任务演示过程中所涉及的应用程序而形成。如果例如用户在演示过程期间与应用程序1和应用程序2进行了交互,则来自应用程序1的动作被形成为一个子任务,并且来自应用程序2的动作被形成为第二子任务。这些动作可以使用包管理器基于应用程序包id而进行分类(如上文所描述),并且将输出添加到主任务队列371。如上文所描述,语义本体处理372基于预定义的一组值而在语义上验证元素。ils动作验证器372验证用户演示在任何时间实施任务所需的槽或者电子装置正确地处理所述槽。在框740处,提示用户取得额外的数据或进行用户验证。一旦任务被验证,任务命令生成器570就会生成任务命令380。在一些实施例中,针对多个应用程序的ils 300处理
可以用于各种任务,诸如查找特定区域中的特定地点(例如,特定位置中的地点的特定类型(例如,查找加州palo alto的韩式bbq餐馆)、在云中共享特定旅行的照片等)。
61.图9a、图9b、图9c和图9d示出了根据一些实施例的在应用程序上学习发帖的示例。在此示例实施例中,ils 300处理(图3)正在学习涉及应用程序的“添加新的推文”任务。屏幕1 910示出“创建推文”,屏幕2 920用于添加消息和推文。为了在应用程序中分两个屏幕学习这个任务,第一屏幕(屏幕1 910)记录用户启动

新的推文’,并且第二屏幕(屏幕2 920)捕获用户输入,并且在屏幕3 930中捕获执行

推文’的动作

按钮点击’。通过每个事件、数据和ui元素编程地跟踪用户动作。这些对应的事件是动态事件和状态改变事件,这会导致多个补充事件和通知的生成。通常,对于每个任务,所生成的事件的总数量几乎是用户执行的动作的三倍,这给出了事件关于其如何与ui元素交互的深入的见解。ils 300处理捕获ui元素类别、由用户动作生成的事件、文本、元素坐标以及每个活动屏幕、每个ui元素图像以在语义上理解每个用户动作。ils 300处理理解被调用为任务学习的一部分的每个活动屏幕,并且针对每个活动屏幕挖掘ui元素树的数据。语义树数据连同由用户演示生成的事件一起存储在任务事件队列350(图3)中以在命令处理370(图3)中进行进一步的语义本体处理。在示例中,屏幕3 930提供推文的接收人信息,并且屏幕4 940显示推文。
62.在一些实施例中,发出临时输入提示以取得额外的数据。自然语言指令是人类互相传授新的任务的普遍手段。为了使pa或智能代理从此类指令中进行学习,显著的挑战是基础训练

代理需要从教导中提取语义含义并且将所述语义含义与动作和感知相关联。如果特定ui元素不具有足够的信息,则ils 300处理进一步输入简单的自然语言指令以推断用于对语义含义进行分类的数据。在一些实施例中,基于关键词的指令用于解释动作、项或描述以更准确地推断数据。作为提醒,ils 300处理向电子装置的屏幕提供提示以取得可能的语义分类的信息。
63.在一些实施例中,ils 300处理通过理解上下文强有力地处理并过滤事件。一个实施例使用键映射事件分类器,这是人工构建的预定义的一组值。可能的值从多个应用程序中针对ui元素的各种情境进行提取。在一个示例中,发送按钮具有多个可能的语义含义,诸如发帖、推文、提交、完成等。这些值通过从一大组应用程序收集数据而人工地构建或以算法方式构建。app ui屏幕图像捕获服务330(图3)和ui元素树语义挖掘工具360用于理解ui元素中的每一者以及其由用户演示的相应的动作。事件处理器/过滤器373(图3)从任务事件队列350(图3)中提取信息并且使用键映射事件分类器来验证并过滤不想要的事件。键映射事件分类器基于诸如应用程序包、应用程序类型和上下文的数据而对系统事件进行分类,并且对关于任务学习应用程序的脱离上下文的信息进行过滤。对诸如

窗口改变’、通知、通告等的事件进行过滤。但是,由系统生成的诸如

窗口状态改变’的其他事件在任务学习中用于任务学习过程中的活动改变状态或上下文改变状态。在处理事件之后,接下来是语义本体372(图3)以基于用户演示期间捕获的ui元素的文本和图像而生成语义本体。
64.在一些实施例中,针对事件的ils 300处理对每个不同的任务的各种元数据(由事件元数据提取器345(图3)提取)起作用。例如,为了从任务事件队列350清除所有系统事件,ils 300处理识别事件源的包名称。例如,在移动装置中,不限于“com.samsung
.android.app.aodservice”、“com.sec.android.app.launcher”和“com.samsung.android.mtpapplication”的包名称被分类为系统包并且被过滤。以下列出了在应用程序上发布推文时捕获的示例事件。
65.∑1:事件类型:type_view_focused;事件时间:310865;包名称:com.twitter.android;移动粒度:0;动作:0[类别名称:android.support.v7.widget.recyclerview;文本:[

];内容描述:空;项计数:1;当前项索引:

1;isenabled:真;ispassword:假;ischecked:假;isfullscreen:假;可滚动:假;文本前:空;起始索引:0;结束索引:0;scrollx:

1:scrolly:

1;maxscrollx:

1;maxscrolly;

1;添加计数:

1;移除计数:

1;打包数据:空];记录计数:0
[0066]
∑2:事件类型:type_view_focused;事件时间:310916;包名称:com.twitter.android;移动粒度:0;动作:0[类别名称:android.support.v7.widget.recyclerview;文本:[

];内容描述:主页时间线列表;项计数:6;当前项索引:0;isenabled:真;ispassword:假;ischecked:假;isfullscreen:假;可滚动:假;文本前:空;起始索引:

1;结束索引:

1;scrollx:

1:scrolly:

1;maxscrollx:

1;maxscrolly;

1;添加计数:

1;移除计数:

1;打包数据:空];记录计数:0
[0067]
∑3:事件类型:type_view_scrolled;事件时间:311238;包名称:com.twitter.android;移动粒度:0;动作:0[类别名称:android.support.v7.widget.recyclerview;文本:[];内容描述:空;项计数:1;当前项索引:

1;isenabled:真;ispassword:假;ischecked:假;isfullscreen:假;可滚动:假;文本前:空;起始索引:0;结束索引:0;scrollx:

1:scrolly:

1;maxscrollx:

1;maxscrolly;

1;添加计数:

1;移除计数:

1;打包数据:空];记录计数:0
[0068]
∑4:事件类型:type_window_state_changed;事件时间:312329;包名称:com.samsung.android.mtpapplication移动粒度:0;动作:0[类别名称:com.samsung.android.mtpapplication.usbconnection;文本:[mtp应用程序];内容描述:空;项计数:

1;当前项索引:

1;isenabled:真;ispassword:假;ischecked:假;isfullscreen:假;可滚动:假;文本前:空;起始索引:

1;结束索引:

1;scrollx:

1:scrolly:

1;maxscrollx:

1;maxscrolly;

1;添加计数:

1;移除计数:

1;打包数据:空];记录计数:0
[0069]
∑5:事件类型:type_view_clicked;事件时间:322105;包名称:com.samsung.android.mtpapplication移动粒度:0;动作:0[类别名称:android.widget.button;文本:[ok];内容描述:空;项计数:

1;当前项索引:

1;isenabled:真;ispassword:假;ischecked:假;isfullscreen:假;可滚动:假;文本前:空;起始索引:

1;结束索引:

1;scrollx:

1:scrolly:

1;maxscrollx:

1;maxscrolly;

1;添加计数:

1;移除计数:

1;打包数据:空];记录计数:0
[0070]
∑6:事件类型:type_window_state_changed;事件时间:322170;包名称:com.twitter.android;移动粒度:0;动作:0[类别名称:com.twitter.app.main.mainactivity;文本:[主页];内容描述:空;项计数:

1;当前项索引:

1;isenabled:真;ispassword:假;ischecked:假;isfullscreen:真;可滚动:假;文本前:空;起始索引:

1;结束索引:

1;scrollx:

1:scrolly:

1;maxscrollx:

1;maxscrolly;

1;添加计数:

1;移除计数:

1;打包数据:空];记录计数:0
[0071]
在此示例中,将过滤事件∑2,因为∑1和∑2是副本,这基于以下参数而确定:事件的类型、包名称和类别名称等(例如,事件类型:type_view_focused;包名称:com.twitter.android;类别名称:android.support.v7.widget.recyclerview)。两个事件都在用户打开

twitter’应用程序时由系统生成。不会过滤事件∑3,这基于包名称以及不存在副本而确定。事件∑4和∑5是系统事件,这通过包名称(例如,包名称:com.samsung.android.mtpapplication,这是具有usb连接性的移动装置所专有的)来识别,并且因此被过滤。事件∑6是主事件,并且不会被过滤。在此示例中,应注意,新的屏幕借助于事件类型:type_window_state_changed根据包名称:com.twitter.android从应用程序打开。
[0072]
在一些实施例中,事件处理器/过滤器373可以针对系统,诸如针对和的os进行定制,以专门辨别各种系统事件和应用程序事件以基于元数据信息而进行处理和过滤。
[0073]
在一些实施例中,任务文件(任务命令380)是

字节代码文件’,这包括一系列用户动作、元数据信息以及用于理解每个ui元素分类的语义数据。元数据信息有助于在相同或不同版本的应用程序上实施任务。当应用程序版本改变时,ui元素也可能会改变。在一个示例中,为旧版本的应用程序学习任务,并且用户在例如

按钮’上演示一个动作。在新版本的应用程序中,按钮ui元素被

图像按钮’ui元素替换,使得源和目标ui元素不相同。然而,系统仍然可以通过使用文本、描述和图标图像(如果可用的话)映射语义信息来实施按钮点击动作。在一些实施例中,任务文件可以是包括每个动作以及对应用程序起作用的反馈动作的

json’数据文件。通常,json文件是开放格式,并且任何人都可以使用恶意软件或机器人(bot)来改变动作序列。在此情况下,任务执行的结果可能是不可预测的,并且会因为不可预测和不想要的动作而对用户有害。在一些实施例中,json文件被转换为协议缓冲区(具有.pb文件扩展名)文件格式,所述协议缓冲区文件格式是平台独立的,使用更少的存储器,安全并且比使用json文件更为快速。协议缓冲区是以任意格式使结构化数据序列化的方式。在开发程序时彼此有线地通信或存储数据是有用的。
[0074]
图10a、图10b和图10c示出了根据一些实施例的在应用程序上学习机票预订的示例。预订机票是可以在各种应用程序,诸如在各种应用程序,诸如等上完成的任务。在一个实施例中,ils 300处理(图3)响应于语音命令而从应用程序学习任务,并且在接收到相同的语音命令时执行相同的应用程序。机票预订可以是重复的任务。通常,每个用户搜索不同的应用程序,从而调整日期和时间以达成最佳交易。每个用户利用各种应用程序执行比较具有相同日期和目的地的航班的数据的任务。在另一个实施例中,学习任务可以在相同的分类中应用于不同的应用程序。例如,第一屏幕1010使用用户输入来开始搜索。第二屏幕1020示出用户开始键入目的地,伴有被示出来供选择的临时结果。第三屏幕1030示出用户键入的数据将用于搜索航班。ils 300处理(图3)利用多个日期和变化的参数重复任务。
[0075]
图11a、图11b和图11c示出了根据一些实施例的在应用程序上查找餐馆的示例。在用户驾车或出门在外时,可能会经常发生查找餐馆/地点/酒店/商店等。在一些实施例中,ils 300处理(图3)可以从应用程序(例如,)学习查找餐馆的任务,并且可
以稍后在用户处于移动的汽车中时执行学习任务。ils 300处理不仅会执行和查找结果,而且会基于选择而向用户读出(例如,通过汽车音响系统,通过电子装置120(图2)等)。在一些实施例中,这个任务可以通过针对邻近地点改变美食类型来重复地执行以查找最佳餐馆和/或酒店。ils 300处理有效地学习这个任务以按美食和地点的各种组合执行。在一些实施例中,当学习任务时,ils 300处理基于给定的动作序列中存在多少输入ui元素而确定完成任务所需的输入值的总量。输入元素可以包括文本编辑、列表框、下拉列表等。因此,在缺少任何此类输入元素的情况下执行任务时,ils 300处理提示(例如,文本提示、语音或声音提示等)用户取得对应的输入以实施任务。当用户以语音命令指导执行任务时,nlu引擎(例如,图7至图8的nlu引擎710)将识别语音命令中存在多少输入值(此类值被称为

槽’)。例如,在上文描述的应用程序示例中,用户语音命令是“发布我在度假的推文”。此语音命令具有输入值(槽)“我在度假”。如果用户语音命令是“发布推文”,则不存在以文本发布的输入值。因此,当实施这种任务时,系统会提示取得待发布的输入值。
[0076]
在此示例中,第一屏幕1110是使用应用程序的起点。第二屏幕1120示出使用韩式bbq作为美食类型并使用加州paloalto作为期望位置的搜索页面。第三屏幕1130示出了第二屏幕1120中的搜索条件的结果。
[0077]
图12a、图12b和图12c示出了根据一些实施例的从相册向云服务分享旅行图片的示例。在此示例中,两个用户正在使用消息(或聊天)应用程序参与会话,其中第一用户对第二用户发送“在云中分享洛杉矶旅行图片”的请求(即,从相册app向云环境或app分享洛杉矶旅行的照片)。对于实施任务的第二用户而言,她必须离开消息应用程序,从相册应用程序搜索图片,然后使用诸如链路、云端硬盘等云服务分享图片,之后重新开始会话。ils 300处理(图3)学习从相册向云服务分享图片的任务,并且下一次可以自动地执行任务,而不需要离开会话。第一屏幕1210示出了第一用户和第二用户正在使用消息应用程序。第二屏幕1220示出了打开的用于选择图片/照片的相册应用程序。第三屏幕1230示出了用于分享所选择的图片的云应用程序。
[0078]
图13示出了根据一些实施例的用于学习任务的过程1300的框图。在一些实施例中,在框1310中,过程1300获得与由电子装置(例如,图2的电子装置120、图14的系统1400等)执行的至少一个应用程序(例如,图3的app/应用程序310)相关联的第一信息(例如,来自一次或多次语音命令话语的信息/数据、来自会话或来自上下文的信息等)。在框1320中,过程1300针对至少一个应用程序记录用户界面(例如,使用图2的输入机制124)交互(例如,图3的用户动作315)的序列。在框1330中,过程1300从用户界面交互的序列中提取第二信息(例如,系统信息或服务信息中的至少一者)。在框1340中,过程1300(例如,使用图3的事件处理器/过滤器373)基于针对每个细节获得的第一信息而从第二信息过滤(不想要的)事件或动作中的至少一者。在框1350中,过程1300对第一信息中所包括的每个元素执行辨别(例如,图5的文本和图像辨别550)以(例如,经由图3的语义本体372)生成语义本体。在框1360中,过程1300基于语义本体的每个元素和经过滤的第二信息而生成用户界面交互的序列的任务命令(例如,图3的任务命令380)。任务命令可以是至少一个应用程序的可执行的顺序事件任务命令。
[0079]
在一些实施例中,处理第二信息以理解上下文和状态。在一些实施例中,过程1300可以包括从用户界面交互中提取元数据(例如,使用图3的事件元数据提取器345)。元数据
和任务信息可以在任务事件队列(例如,图3的任务事件队列350)中排队。可以基于任务事件队列而从第二信息进一步过滤事件、动作或其组合。在一些实施例中,任务命令被配置为在至少一个应用程序上执行以执行任务。
[0080]
在一个或多个实施例中,过程1300可以包括向用户界面交互的序列的每个元素添加额外的语音或文本数据(例如,图4的额外的数据420)以获得额外的元数据(例如,使用事件验证器340)。
[0081]
在一些实施例中,过程1300可以包括基于系统、服务和脱离上下文的用于服务的数据通过对文本、图像和用户界面元素进行分类而对用户界面交互进行预处理(例如,使用图5的事件预处理530)。
[0082]
在一些实施例中,过程1300还可以包括任务命令被制定为基于用户语音命令而在至少一个应用程序上重复地执行,并且任务命令包括使用逻辑数据的语义事件序列,所述语义事件序列在执行时在至少一个应用程序上实施任务。
[0083]
图14是示出信息处理系统的示例性高级框图,所述信息处理系统包括实现一个或多个实施例的计算系统。系统1400包括一个或多个处理器1411(例如,asic、cpu等),并且还可以包括电子显示装置1412(用于显示图形、文本和其他数据)、主存储器1413(例如,随机存取存储器(ram)、高速缓存装置等)、存储装置1414(例如,硬盘驱动器)、可移除存储装置1415(例如,可移除存储驱动器、可移除存储器、磁带驱动器、光盘驱动器、存储有计算机软件和/或数据的计算机可读介质)、用户接口装置1416(例如,键盘、触摸屏、小键盘、定点装置),以及通信接口1417(例如,调制解调器、无线收发器(诸如wi

fi、蜂窝系统)、网络接口(诸如以太网卡)、通信端口或pcmcia插槽和卡)。
[0084]
通信接口1417允许在计算机系统与外部装置之间通过互联网1450、移动电子装置1451、服务器1452、网络1453等传送软件和数据。系统1400还包括通信基础设施1418(例如,通信总线、交叉条或网络),前述装置1411至1417连接到所述通信基础设施。
[0085]
经由通信接口1417传送的信息可以是呈信号的形式,诸如电子、电磁、光学或其他能够通过通信接口1417经由通信链路接收的信号,所述通信链路携载信号并且可以使用电线或线缆、光纤、电话线、蜂窝电话链路、射频(rf)链路和/或其他通信信道来实现。
[0086]
在电子装置(例如,图2的电子装置120)的一个或多个实施例的一个实施方式中,系统1400还包括图像捕获装置1420,诸如相机128(图2),以及音频捕获装置1419,诸如传声器122(图2)。系统1400另外可以包括应用程序处理或处理器,如mms 1421、sms 1422、电子邮件1423、社交网络接口(sni)1424、音频/视频(av)播放器1425、web浏览器1426、图像捕获1427等。
[0087]
在一些实施例中,如上文所描述,系统1400包括智能学习处理1430,所述智能学习处理可以实现与关于以下各项所描述类似的处理:ils 300处理(图3)、流程400处理(图4)、流程500处理(图5)、流程600处理(图6)、流程700处理(图7)、流程800处理(图8)以及过程1300(图13)。在一个实施例中,智能学习处理1430以及操作系统(o/s)1429可以被实施为驻留在系统1400的存储器中的可执行代码。在另一个实施例中,智能学习处理1430可以被提供在硬件、固件等中。
[0088]
在一个实施例中,主存储器1413、存储装置1414和可移除存储装置1415各自本身或以任何组合可以存储用于上文描述的实施例的指令,所述指令可以由一个或多个处理器
1411执行。
[0089]
如本领域技术人员所已知,上文所描述的前述示例架构(根据所述架构)可以以多种方式实现,诸如作为用于由处理器执行的程序指令、作为软件模块、微代码、作为计算机可读介质上的计算机程序产品、作为模拟/逻辑电路、作为专用集成电路、作为固件、作为消费者电子装置、av装置、无线/有线发射器、无线/有线接收器、网络、多媒体装置等。另外,所述架构的实施例可以采取纯硬件实施例、纯软件实施例或包含硬件元素和软件元素两者的实施例的形式。
[0090]
已经根据一个或多个实施例参考方法、设备(系统)和计算机程序产品的流程图和/或框图描述了一个或多个实施例。此类图示/图表的每个框或其组合可以由计算机程序指令来实现。计算机程序指令在被提供给处理器时产生机器,使得经由处理器执行的指令创建用于实现流程图和/或框图中指定的功能/操作的工具。流程图/框图中的每个框可以表示实施一个或多个实施例的硬件和/或软件模块或逻辑。在替代实施方式中,框中标注的功能可以不按图中标注的次序发生、同时发生等。
[0091]
术语“计算机程序介质”、“计算机可用介质”、“计算机可读介质”和“计算机程序产品”通常用来指代介质,诸如主存储器、辅助存储器、可移除存储驱动器、安装在硬盘驱动器中的硬盘。这些计算机程序产品是用于向计算机系统提供软件的工具。计算机可读介质允许计算机系统从计算机可读介质读取数据、指令、消息或消息包以及其他计算机可读信息。例如,计算机可读介质可以包括非易失性存储器,诸如软盘、rom、快闪存储器、磁盘驱动器存储器、cd

rom以及其他永久性存储体。例如,这对于在计算机系统之间传输信息(诸如数据和计算机指令)是有用的。计算机程序指令可以存储在计算机可读介质中,所述计算机可读介质可以指示计算机、其他可编程数据处理设备或其他装置以特定方式发挥作用,使得存储在计算机可读介质中的指令产生制品,所述制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的指令。
[0092]
表示本文的框图和/或流程图的计算机程序指令可以被加载到计算机、可编程数据处理设备或处理装置上以在上面执行一系列操作,从而产生计算机实现的过程。计算机程序(即,计算机控制逻辑)存储在主存储器和/或辅助存储器中。也可以经由通信接口来接收计算机程序。此类计算机程序在执行时使得计算机系统能够执行如本文所论述的实施例的特征。特别地,计算机程序在执行时使得处理器和/或多核处理器能够执行计算机系统的特征。此类计算机程序表示计算机系统的控制器。计算机程序产品包括可由计算机系统读取且存储用于供计算机系统执行来执行一个或多个实施例的方法的指令的有形存储介质。
[0093]
尽管已经参考实施例的某些版本描述了实施例;然而,其他版本也是可能的。因此,所附权利要求的精神和范围不应限于对本文所包含的优选版本的描述。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1