CN114008590A - 使用执行块提供辅助用户界面 - Google Patents
使用执行块提供辅助用户界面 Download PDFInfo
- Publication number
- CN114008590A CN114008590A CN201980097694.6A CN201980097694A CN114008590A CN 114008590 A CN114008590 A CN 114008590A CN 201980097694 A CN201980097694 A CN 201980097694A CN 114008590 A CN114008590 A CN 114008590A
- Authority
- CN
- China
- Prior art keywords
- user
- computer
- user interface
- execution block
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 85
- 230000003993 interaction Effects 0.000 claims abstract description 58
- 230000001404 mediated effect Effects 0.000 claims abstract description 50
- 230000015654 memory Effects 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 20
- 238000013507 mapping Methods 0.000 claims description 17
- 230000004913 activation Effects 0.000 claims description 5
- 238000010801 machine learning Methods 0.000 description 27
- 238000012545 processing Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 16
- 230000009471 action Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 15
- 230000001149 cognitive effect Effects 0.000 description 14
- 238000012549 training Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000013528 artificial neural network Methods 0.000 description 8
- 101150054987 ChAT gene Proteins 0.000 description 7
- 101100203187 Mus musculus Sh2d3c gene Proteins 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 239000011521 glass Substances 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006403 short-term memory Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 2
- 230000003930 cognitive ability Effects 0.000 description 2
- 230000003920 cognitive function Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000012015 optical character recognition Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 208000018737 Parkinson disease Diseases 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000010411 cooking Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 201000006517 essential tremor Diseases 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000033001 locomotion Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 206010027175 memory impairment Diseases 0.000 description 1
- 239000008267 milk Substances 0.000 description 1
- 210000004080 milk Anatomy 0.000 description 1
- 235000013336 milk Nutrition 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 230000003997 social interaction Effects 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/453—Help systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本文描述的实施方式涉及提供辅助用户界面的方法、系统和计算机可读介质。在一些实施方式中,一种提供辅助用户界面的计算机实现的方法包括通过分析包括用户交互数据的数据识别用户旅程,该用户旅程包括执行计算机介导任务的多个操作。该方法还包括分析多个软件应用的应用编程接口(API)定义或多个软件应用的用户界面(UI)元素中的一个或多个以识别多个可执行单元。该方法还包括基于用户旅程和多个可执行单元生成定义多个可执行单元中的两个或更多个的序列的执行块。该执行块的执行完成计算机介导任务。该方法还包括提供包括执行块的辅助用户界面。
Description
背景技术
诸如电话、平板计算机、膝上型计算机和台式计算机、可穿戴设备、智能扬声器、智能电器、车载设备等的用户计算设备包括供用户进行娱乐、处理文档、进行金融交易、参与社交互动、导航到目的地等的功能。这样的功能由在用户计算设备和/或从用户计算设备访问的服务器上提供的各种软件应用提供。
许多计算机介导(mediate)的任务需要用户使用用户计算设备执行操作,以例如通过提供选择输入来导航用户界面;提供文本、音频和/或图像输入;等等。许多任务还需要用户与多个软件应用交互,每个软件应用具有相应的用户界面,或者用户与多个用户计算设备交互。这样的用户交互可能需要用户拥有某些认知和/或运动技能。
此处提供的背景描述是为了概括地呈现本公开的情境的目的。当前指名的发明人的工作,就其在本背景部分中描述的范围而言,以及描述的在提交申请时可能不适格作为现有技术的方面,均未明示或暗示承认为本公开的现有技术。
发明内容
本文描述的实施方式涉及提供辅助用户界面的方法、系统和计算机可读介质。在一些实施方式中,提供辅助用户界面的计算机实现的方法包括通过分析包括用户交互数据的数据识别用户旅程(journey),该用户旅程包括执行计算机介导任务的多个操作。该方法还包括分析多个软件应用的应用编程接口(API)定义或多个软件应用的用户界面(UI)元素中的一个或多个以识别多个可执行单元。该方法还包括基于用户旅程和多个可执行单元生成定义多个可执行单元中的两个或更多个的序列的执行块。该执行块的执行完成计算机介导任务。该方法还包括提供包括执行块的辅助用户界面。
在一些实施方式中,该方法还包括接收指示执行块的激活的用户输入并响应于用户输入运行执行块。在一些实施方式中,该方法还包括提供提示以请求用于序列的特定可执行单元的参数并接收包括该参数的用户响应。
在一些实施方式中,辅助用户界面由虚拟助理应用提供,并且其中,执行块的执行包括由虚拟助理应用调用与多个可执行单元中的两个或更多个中的每一个关联的相应软件应用。在一些实施方式中,该调用包括由虚拟助理应用使用相应软件应用的API定义来执行API调用。在一些实施方式中,该调用包括由虚拟助理应用自动导航由相应软件应用提供的用户界面。在一些实施方式中,自动导航用户界面包括识别由相应软件应用提供的用户界面,并且基于该识别,自动向相应软件应用提供点击输入、触摸输入、语音输入或键盘输入中的一个或多个。
在一些实施方式中,生成执行块包括将用户旅程的多个操作中的每一个映射到多个可执行单元中的特定可执行单元。
在一些实施方式中,分析多个软件应用的API定义包括获得与每个API定义关联的语义注释。在这些实施方式中,该方法还包括基于语义注释将与API定义关联的API映射到多个可执行单元中的特定可执行单元。
在一些实施方式中,分析多个软件应用的UI元素包括将每个UI元素映射到多个可执行单元中的特定可执行单元。在一些实施方式中,UI元素包括显示UI元素。在这些实施方式中,分析显示UI元素包括识别每个显示UI元素的形状、大小、放置、文本或图形内容中的一个或多个。在这些实施方式中,该方法还包括基于对显示UI元素的形状、大小、放置、文本或图形内容的识别,将显示UI元素与特定可执行单元匹配。
在一些实施方式中,UI元素包括音频UI元素。在这些实施方式中,分析UI元素包括利用语音识别技术来检测音频UI元素的音调或音频UI元素的文本中的一个或多个。在这些实施方式中,该方法还包括基于音调或文本将音频UI元素与特定可执行单元匹配。
在一些实施方式中,用户交互数据包括多个用户交互事件,并且分析用户交互数据包括将多个用户交互事件分类为多个事件聚类。在这些实施方式中,该方法还包括基于多个事件聚类将多个用户交互事件中的每一个映射到多个可执行单元中的特定可执行单元。在一些实施方式中,多个用户交互事件包括指示计算机介导任务开始的开始事件和指示计算机介导任务结束的结束事件。在一些实施方式中,多个用户交互事件包括与多个软件应用中的第一软件应用和第二软件应用中的每一个关联的至少一个事件。
在一些实施方式中,辅助用户界面辅助用户界面还包括一个或多个其他执行块,每个其他执行块与相应的计算机介导任务关联。在这些实施方式中,提供辅助用户界面包括基于客户端计算设备的系统状态或与客户端计算设备关联的使用模式中的一个或多个来确定使用情境。在这些实施方式中,提供辅助用户界面还包括确定计算机介导任务和相应的计算机介导任务匹配计算设备的使用情境。
一些实施方式包括计算设备,该计算设备包括处理器和联接到该处理器的存储器。存储器具有存储在其上的指令,当由处理器执行时,该指令使处理器执行操作,该操作包括通过分析包括用户交互数据的数据识别用户旅程,该用户旅程包括执行计算机介导任务的多个操作。操作还包括分析多个软件应用的应用编程接口(API)定义或多个软件应用的用户界面(UI)元素一个或多个以识别多个可执行单元。该操作还包括基于用户旅程和多个可执行单元生成定义多个可执行单元中的两个或更多个的序列的执行块。执行块的执行,例如,由处理器执行,完成计算机介导任务。该操作还包括提供包括执行块的辅助用户界面。
在一些实施方式中,分析多个软件应用的API定义的操作包括获得与API定义的每个API定义关联的语义注释,并基于语义注释将与API定义关联的API映射到多个可执行单元中的特定可执行单元。
在一些实施方式中,用户交互数据包括多个用户交互事件。在这些实施方式中,分析用户交互数据的操作包括将多个用户交互事件分类为多个事件聚类。分析用户交互数据的操作还包括基于多个事件聚类将多个用户交互事件中的每一个映射到多个可执行单元中的特定可执行单元。
在一些实施方式中,计算设备是服务器并且辅助用户界面还包括一个或多个其他执行块,每个其他执行块与相应的计算机介导任务关联。在这些实施方式中,提供辅助用户界面包括使辅助用户界面由不同于服务器的客户端计算设备显示;基于客户端计算设备的系统状态或与客户端计算设备关联的使用模式中的一个或多个来确定客户端计算设备的使用情境;和确定计算机介导任务和相应的计算机介导任务匹配客户端计算设备的使用情境。
一些实施方式包括其上存储有指令的非暂时性计算机可读介质,当由处理器执行时,该指令使处理器执行操作,该操作包括通过分析包括用户交互数据的数据识别用户旅程,该用户旅程包括执行计算机介导任务的多个操作。该操作还包括分析以下中的一个或多个:多个软件应用的应用编程接口(API)定义或多个软件应用的用户界面(UI)元素,以识别多个可执行单元。该操作还包括基于用户旅程和多个可执行单元生成定义多个可执行单元中的两个或更多个的序列的执行块。执行块的执行完成计算机介导任务。该操作还包括提供包括执行块的辅助用户界面。在一些实施方式中,生成执行块的操作包括将用户旅程的多个操作中的每一个映射到多个可执行单元中的特定可执行单元。
附图说明
图1是可以用于本文描述的一个或多个实施方式的示例网络环境的框图。
图2A示出了使用计算设备向另一用户发送图片的示例用户旅程。
图2B示出了使用计算设备向另一用户发送图片的另一示例用户旅程。
图2C示出了使用计算设备向另一用户发送图片的另一示例用户旅程。
图3是示出根据一些实施方式的用于提供辅助用户界面的示例方法的框图。
图4A-4C各自示出了使用执行块的示例。
图5是可以用于本文描述的一个或多个实施方式的示例设备的框图。
具体实施方式
本文描述的实施方式涉及包括可执行单元序列的执行块的创建和使用,该可执行单元使用户能够执行特定的计算机介导任务,而无需与可包括执行与计算机介导任务关联的各种操作的功能的各个软件应用交互。在不同的实施方式中,执行块可以通过减少用户做出选择的需要、减少用户界面的信息密度和用户界面的标准化来简化用户与计算设备的交互。可以通过辅助用户界面来提供执行块,该辅助用户界面可以由虚拟助理提供。
图1示出了示例网络环境100的框图,其可以在本文描述的一些实施方式中使用。在一些实施方式中,网络环境100包括一个或多个服务器系统,例如图1的示例中的服务器系统102和第二服务器系统140。例如,服务器系统102和140可以与网络130通信。服务器系统102可以包括服务器设备104和数据库106或其他存储设备。在一些实施方式中,服务器设备104可以提供虚拟助理应用154b和/或执行块应用156b。第二服务器系统140可以包括第二服务器设备142,其被配置为提供一个或多个应用,例如应用A 144、应用B 146和应用C148。在图1和其余图中,附图标号之后的字母,例如,“156a”表示对具有该特定附图标号的元素的提及。文中没有跟随字母的附图标号,例如“156”,表示对带有该附图标号的元素的实施例的一般提及。
网络环境100还可以包括一个或多个客户端设备,例如客户端设备120、122、124和126,其可以通过网络130彼此通信和/或与服务器系统102和/或第二服务器系统140通信。网络130可以是任何类型的通信网络,包括互联网、局域网(LAN)、无线网络、交换机或集线器连接等中的一个或多个。在一些实施方式中,网络130可以包括设备之间的对等通信,例如,使用对等无线协议(例如,Wi-Fi直连等)等。两个客户端设备120和122之间的对等通信的一个示例如箭头132所示。
为了便于说明,图1示出用于服务器系统102、服务器设备104、数据库106、第二服务器系统140和第二服务器设备142的一个框,并且示出用于客户端设备120、122、124和126的四个框。服务器框102、104、106、140和142可以表示多个系统、服务器设备和网络数据库,并且可以以与所示不同的配置来提供这些框。例如,服务器系统102和/或第二服务器系统140可以表示多个服务器系统,其可以通过网络130与其他服务器系统进行通信。在一些实施方式中,例如,服务器系统102和/或第二服务器系统140可以包括云托管服务器。在一些示例中,数据库106和/或其他存储设备可以在与服务器设备104分离并且可以通过网络130与服务器设备104和其他服务器系统通信的(一个或多个)服务器系统框中提供。
此外,可以存在任意数量的客户端设备。每个客户端设备可以是任何类型的电子设备,例如台式计算机、膝上型计算机、便携式或移动设备、蜂窝电话、智能电话、平板计算机、电视机、电视机顶盒或娱乐设备、可穿戴设备(例如,显示眼镜或护目镜、腕表、头戴式视图器、臂章、珠宝等)、个人数字助理(PDA)、媒体播放器、游戏设备等。一些客户端设备还可以具有类似于数据库106或其他存储装置的本地数据库。在一些实施方式中,网络环境100可不具有所示出的所有组件和/或可以具有其他元件,包括代替本文描述的那些元件或除了本文描述的那些元件之外的其他类型的元件。
在各种实施方式中,终端用户Ul、U2、U3和U4可以使用相应的客户端设备120、122、124和126与服务器系统102和/或彼此通信。在一些示例中,用户Ul、U2、U3和U4可以通过在相应的客户端设备和/或服务器系统102或第二服务器系统140上运行的应用和/或通过在服务器系统102或第二服务器系统140上实现的网络服务(例如社交网络服务或其他类型的网络服务)彼此交互。例如,相应的客户端设备120、122、124和126可以将数据传送到一个或多个服务器系统(例如,系统102、第二服务器系统140)和从该一个或多个服务器系统传送数据。
在一些实施方式中,服务器系统102和/或第二服务器系统140可以向客户端设备提供适当的数据,使得每个客户端设备可以接收上传到服务器系统102或第二服务器系统140的传送的内容或共享的内容和/或网络服务。在一些示例中,用户U1-U4可能通过音频或视频会议、音频、视频或文本聊天或其他通信模式或应用进行交互。
由服务器系统102或第二服务器系统140实现的网络服务可以包括允许用户执行各种通信、形成链路和关联、上传和发布诸如图像、文本、视频、音频和其他类型的内容的共享内容和/或执行其他功能的系统。例如,客户端设备可以显示接收的数据,诸如发送或流式传输到客户端设备并通过服务器和/或网络服务源自不同客户端设备(或直接源自不同客户端设备)或源自服务器系统的内容发布和/或网络服务。在一些实施方式中,客户端设备可以例如使用如上所述的客户端设备之间的对等通信,直接彼此通信。在一些实施方式中,“用户”可以包括一个或多个程序或虚拟实体,以及与系统或网络接口的人。
在一些实施方式中,客户端设备120、122、124和/或126中的任一个可以提供一个或多个应用。例如,如图1所示,客户端设备120可以提供虚拟助理应用154a、执行块应用156a和一个或多个其他应用158。客户端设备122-126还可以提供类似的应用程序。虚拟助理应用154a、执行块应用156a和其他应用158可以使用客户端设备120的硬件和/或软件来实现。在不同的实施方式中,虚拟助理应用154a和执行块应用156a可以各自是例如在客户端设备120-124中的任一个上执行的独立的客户端应用,或者可以与在服务器系统102上提供的虚拟应用154b和执行块应用156b结合工作。
虚拟助理应用154可以提供各种功能。例如,这样的功能可以包括提供辅助用户界面、通过对话式用户界面与用户交互、响应用户查询、响应于用户请求执行一个或多个操作、运行执行块等中的一个或多个。虚拟助理应用154可以自动地或根据用户请求调用执行块应用156和/或任何其他应用,例如来自其他应用158的任何应用。
执行块应用156可以提供各种功能。在一些实施方式中,执行块应用可以基于用户交互数据生成执行块。在不同的实施方式中,执行块可以被存储在例如数据库106中。在一些实施方式中,执行块应用156可以分析用户交互数据以生成执行块。在一些实施方式中,执行块应用156可以生成一个或多个执行块的语义注释。在一些实施方式中,执行块应用156可以例如基于一个或多个其他应用158的版本、基于客户端设备120和/或服务器设备104的操作系统等来编辑或定制执行块。在一些实施方式中,执行块应用156可以提供对执行块的库的访问。
在一些实施方式中,客户端设备120可以包括一个或多个其他应用158。例如,其他应用158可以是提供各种类型的功能的应用,例如日历、地址簿、电子邮件、网络浏览器、购物、交通(例如,出租车、火车、机票预订等)、娱乐(例如,音乐播放器、视频播放器、游戏应用等)、社交网络(例如,消息或聊天、音频/视频通话、共享图像/视频等)等等。在一些实施方式中,一个或多个其他应用158可以是在客户端设备120上执行的独立应用。在一些实施方式中,一个或多个其他应用158可以访问服务器系统,例如服务器系统102和/或第二服务器系统140,其提供其他应用158的数据和/或功能。例如,示出为由第二服务器系统140提供的应用144、146和148中的任一个可以向一个或多个其他应用158提供数据和/或命令。在一些实施方式中,服务器应用144-148可以是由客户端设备例如通过网络浏览器或其他客户端侧程序访问的独立应用。
用户界面,例如,其由虚拟助理应用154、执行块应用156或其他应用158提供并且在客户端设备120、122、124和/或126上被显示为屏幕上的视觉用户界面,可以包括用户内容和其他内容,包括图像、视频、数据和其他内容以及通信、隐私设置、通知和其他数据。可以使用客户端设备上的软件、服务器设备上的软件和/或在服务器设备104和/或第二服务器设备142上执行的客户端软件和服务器软件的组合(例如,与服务器系统102和/或第二服务器设备142通信的应用软件或客户端软件)来显示这样的用户界面。用户界面可以由客户端设备或服务器设备的显示设备(例如触摸屏或其他显示屏、投影仪等)显示。在一些实施方式中,在服务器系统上运行的应用程序可以与客户端设备通信以在客户端设备处接收用户输入并在客户端设备处输出诸如视觉数据、音频数据等的数据。在一些实施方式中,用户界面可以包括音频用户界面,作为视觉用户界面的补充或替代。
本文描述的特征的其他实施方式可以使用任何类型的系统和/或服务。例如,可以使用其他联网服务(例如,连接到互联网)来代替社交网络服务或作为社交网络服务的补充。任何类型的电子设备都可以利用本文描述的特征。一些实施方式可以在与计算机网络断开连接或间歇地连接到计算机网络的一个或多个客户端或服务器设备上提供本文描述的一个或多个特征。在一些示例中,包括或连接到显示设备的客户端设备可以显示存储在客户端设备本地的存储设备上的、例如先前通过通信网络接收的内容发布。
图2A示出了使用计算设备向另一用户发送图片的示例用户旅程200。用户界面状态210A-210F示出了用户旅程。如图2A所示,用户的计算设备的主屏幕(202)包括多个应用图标,例如用于各种应用(app),诸如“联系人列表”、“图库”、“电子邮件”、“IM App 1”、“IMApp 2”和“相机”。
联系人列表app可以使计算设备的用户能够访问联系人列表,包括联系人姓名、电话号码、电子邮件id、即时消息标识符等。图库app可以使用户能够查看、编辑或共享图像,例如照片和/或视频。电子邮件app可以使用户能够通过计算设备发送和接收电子邮件。IMapp 1和IM app 2可以分别使用户能够通过不同的即时消息(IM)服务提供商参与即时消息对话。相机app可以使用户能够通过计算设备的相机捕获图片或视频。
用户可以通过启动应用,例如通过经由触摸、手势或点击来选择app图标;通过语音命令;等等,来访问计算设备的这些和其他应用的应用功能,。此外,应用可以提供可用于以编程方式访问应用功能的应用编程接口(API)。例如,图库app可以利用IM app的应用API在特定状态下自动启动IM app。
计算设备的用户可以利用计算设备来使用应用执行一个或多个计算机介导任务。每个任务可以包括多个操作,共同构成完成计算机介导任务的用户旅程。例如,图2A示出了用户使用计算设备完成向另一用户(“妈妈”)发送图片的任务的示例用户旅程。
如图2A(210A)所示,当用户选择主屏幕(202)上的联系人列表app图标时,用户旅程开始。响应于用户选择,联系人列表app(204)被启动。联系人列表app(210B中所示)示出了用户的联系人的列表,例如“Jane Doe”、“John Doe”、“妈妈”等。联系人列表app使用户能够选择特定联系人,例如,“妈妈”。响应于用户选择特定联系人,用户界面被更新以显示联系人的详细信息(210C),例如,妈妈的可以通过短消息服务接收消息的电话号码(SMS号码)、电子邮件地址和即时消息地址。
该用户旅程还包括用户在联系人列表app(204)中选择与联系人“妈妈”关联的特定详细信息,例如,在即时消息服务IM1中识别联系人(“alice.m”)的即时消息服务。响应于用户选择,启动对应的即时消息app(例如,“IM1”)被启动并且IM app(206)的用户界面显示在计算设备上(210D)。如图所示,该用户界面使用户能够输入消息(“嗨-这里有一些图片……”)并包括可选选项(“添加图片”)。
用户旅程还包括用户选择选项。响应于该选择,图库app(208)被启动并且图库app的用户界面被显示(210E)。用户界面显示多个图片(显示为空白矩形)并使用户能够选择要通过IM App(206)发送给妈妈的图片(显示为带有复选标记)。在用户完成选择并选择“发送”按钮后,图片通过IM App发送给妈妈并且用户界面相应地被更新(210F)。
在许多计算设备中,替代的用户旅程可以完成相同的任务。图2B示出了使用计算设备向另一用户发送图片的另一示例用户旅程214。
如图2B所示,替代的用户旅程通过用户从主屏幕(220A)选择图库app(208)开始。作为响应,图库app(208)的用户界面被显示(220B)在计算设备上。用户界面使用户能够选择图片并选择“与...分享”按钮。当用户选择图片并按下按钮时,联系人列表app(204)被显示。用户滚动联系人列表并选择用户妈妈。响应选择,联系人详细信息被显示(220D)。然后用户选择电子邮件选项。作为响应,电子邮件app(212)被启动,例如在电子邮件撰写模式下,其中,选择的图片作为附件包括在内,并且收件人:字段填充有与联系人“妈妈”关联的电子邮件地址。然后,用户可以键入电子邮件消息(例如,添加主题行“生日图片”和正文内容)并通过选择“发送电子邮件”按钮发送包含图片的电子邮件。
图2C示出了使用计算设备向另一用户发送图片的另一示例用户旅程222。如图2C所示,替代的用户旅程通过用户从主屏幕(230A)选择IM app(206)开始。作为响应,IM app(206)的用户界面被显示(230B)在计算设备上。该用户界面使用户能够从(例如,在用户和其他用户Jane Doe、John Doe和妈妈之间的)聊天对话列表中选择特定的聊天对话。当用户选择与妈妈的对话时,聊天对话的详细信息被显示(230C)。然后用户输入消息(“嗨-这里有一些图片……”)并选择“发送图片”按钮。响应于该选择,图库app(208)用户界面被显示(230D)。用户选择图片并选择“完成”按钮。作为响应,图片通过IM app被发送(230E)。
在图2A所示的用户旅程中,为了完成“与妈妈分享图片”的任务,用户需要执行多个操作——选择联系人列表app、滚动联系人列表并选择妈妈、选择IM app、在IM app中选择添加图片选项和选择图片并选择发送。此外,执行的操作跨越多个应用-主屏幕、联系人列表app、IM app和图库app。
在图2B所示的用户旅程中,为了完成“与妈妈分享图片”的任务,用户需要执行多个操作——选择图库app、选择图片(这可能包括滚动)、从联系人列表中选择联系人的电子邮件地址(这也可能包括滚动)和在撰写邮件后选择“发送电子邮件”选项。执行的操作跨越多个应用-主屏幕、图库app、联系人列表app和电子邮件app。
在图2C所示的用户旅程中,为了完成“与妈妈分享图片”的任务,用户需要执行多个操作——选择IM app、选择特定的聊天对话、选择“发送图片”按钮、通过图库app选择图片(这可能包括滚动)和选择“完成”按钮。执行的操作跨越多个应用-主屏幕、IM app和图库app。
在这些用户旅程的每一个中,用户利用多个应用和对应的用户界面来完成任务。在执行不同的任务时,即使在单个应用中,用户也需要执行许多操作来完成任务。
需要操纵多个软件应用的计算任务的执行可能是用户不满意的来源。例如,在图2A-2C所示的用户旅程中使用的每个应用可能具有不同的设计语言,并且可能提供不同且可能不兼容的执行相同的动作的方式。当用户按顺序地在这些不同的应用之间切换以执行任务时,他们可能会在这样做时感到迷失方向或认知负担。即使两个应用单独设计良好,这也可能是真的。
此外,当应用在不同设备上运行时,难度会更高;例如,当完成任务需要操纵智能手表上的应用并且同时需要操纵汽车娱乐系统上的应用时。存在这样的“应用-切换”是完成任务的唯一方法的许多任务,并且如果没有用户体验的连续性,执行这些任务会给用户带来重大的认知负担。
当用户使用UI来完成任务时,该过程涉及一定量的认知功能。例如,在图2A-2C所示的每个用户旅程中,用户需要查看屏幕并理解不同信息片段的放置。用户必须阅读并理解屏幕上呈现的信息,并对下一步行动做出决定。用户还必须执行一系列操作,按照计划的序列导航通过一组屏幕。在用户试图找到他们以前可能没有使用过的功能时,这样的导航可能涉及通过试错的发现过程。在每个步骤中,用户可能必须以文本的形式(例如,搜索app、联系人、图片等的搜索输入;IM或电子邮件消息的消息内容);音频(例如,使用语音调用应用;使用语音选择图像;等);手势或触摸(例如,鼠标移动和点击,或触摸屏输入以选择图片、选择按钮和其他UI元素);等等向计算设备提供输入。
通过用户旅程,用户还需要在短期记忆中保留他们的意图和动作的某些元素。所有这些认知功能的综合需要用户对UI给予一定量的注意力,并在使用UI执行任务的过程中运用执行功能来控制自己的行为。
因此,使用计算设备来完成任务需要用户锻炼记忆力、推理、解决问题、先验知识、注意力、理解力、执行功能等。根据任务的内在复杂性和执行任务的可用应用,这样的用户交互可能对用户要求过高,导致在成功完成任务之前出现一次或多次失败。这会导致怨恨和沮丧的感觉。
此外,用户界面可能包含内在的开发者假设,这会使某些用户组无法访问UI。例如,这样的假设可能与语言能力有关,使得母语为英语的人(例如)易于使用的UI很难被英语学习者使用。当UI被认知能力有限的人使用时,其他假设可能会不成立。
此外,如果用户使用各种不同的设备,每个设备都具有其自己的输入和输出能力和模态,则这些假设还可能使用户界面难以跨不同设备类别以一致的方式使用。例如,虽然具有屏幕的设备可能包括以图标形式呈现大量选项的UI,这使用户能够快速扫描和选择特定选项,但通过语音界面呈现相同的一组选项对于用户来说可能是应接不暇的,因为用户需要锻炼短期记忆力来记住选项。用户也可能没有耐心等待语音界面呈现所有选项。此外,当必须在诸如汽车的环境中或在厨房工作时将选项呈现给用户时,扫描和选择选项的过程可能需要用户无法集中的注意力和关注水平。用户界面并不总是在不同类型的设备之间轻松转换,并且需要进行代价高的修改才能在多个平台上访问功能。
本文描述的至少一些实施方式提供了解决这些问题的技术。该技术提供具有执行块的辅助用户界面,该执行块以一致的、用户友好的方式暴露应用功能以帮助用户完成任务。
图3是示出根据一些实施方式的用于提供辅助用户界面的示例方法300的流程图。在一些实施方式中,方法300可以例如在如图1所示的服务器系统102上实现。在一些实施方式中,方法300中的一些或全部可以在如图1所示的一个或多个客户端设备120、122、124或126、一个或多个服务器设备和/或(一个或多个)服务器设备和(一个或多个)客户端设备上实现。
在所描述的示例中,实现系统包括一个或多个数字处理器或处理电路(“处理器”),以及一个或多个存储设备(例如,数据库106或其他存储装置)。在一些实施方式中,一个或多个服务器和/或客户端的不同组件可以执行方法300的不同框或其他部分。在一些示例中,第一设备被描述为执行方法300的框。一些实施方式可以使方法300的一个或多个框由可以向第一设备发送结果或数据的一个或多个其他设备(例如,其他客户端设备或服务器设备)执行。
方法300可以在框302处开始。在框302处,检查在方法300的实施方式中是否已经获得了使用用户数据的用户同意(例如,用户许可)。例如,用户数据可以包括用户交互数据,例如点击流、用户日程、与使用消息应用相关的用户数据、用户偏好、用户生物特征信息、用户特性(例如身份、姓名、年龄、性别、职业、用户的认知和/或运动能力等)、有关用户社交网络和联系人的信息、社交和其他类型的动作和活动、用户创建或提交的内容、评级和意见、用户的当前位置、历史用户数据(诸如与用户计算设备上的软件应用关联的使用模式)、用户生成、接收和/或访问的图像、用户查看或共享的图像等。本文描述的方法的一个或多个框可以在一些实施方式中使用这样的用户数据。
在方法300中,如果已经从相关用户获得可以使用用户数据的用户同意,则在框304中,确定可以在可以使用对这些块描述的用户数据的情况下实现本文的方法的框,并且方法继续到框308。如果没有获得用户同意,则在框306中确定不使用用户数据来实现框,并且方法继续到框308。在一些实施方式中,如果没有获得用户同意,则在不使用用户数据的情况下并且使用综合数据和/或通用或可公开访问和公开使用的数据来实现框。在一些实施方式中,如果没有获得用户同意,则不执行方法300。
在框308处,识别用户旅程。用户旅程的识别可以包括识别执行计算机介导任务的多个操作。在用户许可的情况下,可以获得用户交互数据来识别用户旅程。在不同的实施方式中,用户交互数据可以包括为完成计算机介导任务而执行的动作序列。例如,用户交互数据可以包括点击流,例如一组用户执行的动作,诸如在触摸屏设备上(例如,与诸如图标、按钮等的用户界面元素对应的)特定位置轻敲;点击特定位置,例如使用鼠标或触摸板;通过键盘或其他设备提供击键输入;执行手势;或其他输入操作。
在一些实施方式中,用户交互数据可以包括一个或多个语音命令,例如,提供给虚拟助理的语音命令。在一些实施方式中,用户交互数据可以包括聊天序列,例如用户和虚拟助理之间的聊天,具有用户输入的与各种事件对应的文本,例如提供给虚拟助理的命令或请求。
在一些实施方式中,用户交互数据可以包括例如由用户设备的应用和/或设备操作系统存储的事件日志。例如,事件日志可以包括基于用户与应用的交互确定的事件序列,例如,选择菜单选项、滚动、点击按钮等。在另一示例中,事件日志可以包括基于自动化测试套件而确定的事件序列,例如,用于测试软件应用的自动执行的操作。
在一些实施方式中,例如作为点击流、通过事件日志或从测试套件获得的用户交互数据中的多个事件可以使用聚类技术(例如,基于机器学习的或其他聚类技术)被分类为一个或多个事件聚类。例如,事件聚类可以包括每个用户旅程的“开始事件”(与计算机介导任务的开始关联)和“结束事件”(与计算机介导任务的结束关联)。例如,在预订出租车的用户旅程中,开始事件可以是启动出租车预订应用或网站。继续以出租车为例,其他事件聚类可以包括与对应于指定开始地址和结束地址、确认旅程价格、指定出租车类型、指定付款方式、授权付款等的交互数据中的事件关联的聚类。结束事件可以被识别为付款的授权或提供出租车乘坐的反馈。
在一些实施方式中,用户交互事件可以与不同的应用关联。例如,在出租车示例中,第一应用程序是出租车预订应用,具有输入地址、选择出租车类型、指定付款方式和确认与出租车预订应用关联的价格的事件,并且第二应用可以是电子钱包应用,具有授权与电子钱包应用关联的付款的事件。
识别的用户旅程可以包括执行计算机介导任务的操作序列。可以对序列中的每个操作进行注释以指示该操作在序列中的位置。序列中的操作也可以被注释为包括其他信息,例如,用于执行操作的软件应用、与操作对应的显示的UI和显示的UI的特定用户界面元素的用户选择、被提供以完成操作的信息等。此外,如果利用事件日志来识别用户旅程,则操作触发的事件,例如文件系统的更新、发送到浏览器的命令等,也可以被存储作为操作的注释。框308之后可以是框310。
在框310处,分析多个软件应用(例如,一个应用、两个应用或多个应用)以识别软件应用的多个可执行单元。在一些实施方式中,分析软件应用可以包括分析多个软件应用的应用编程接口(API)定义。在一些实施方式中,分析软件应用可以包括分析多个软件应用的用户界面(UI)元素。
在一些实施方式中,分析API定义可以包括获得与API定义关联的语义注释。例如,语义注释可以包括API名称,例如“GetAddress”、“GetPhotos”等。语义注释还可以包括API规范,例如,由软件应用的开发者提供。API规范可以指示例如如何调用API和关联的输入参数,和/或API返回什么,例如输出参数。API定义的分析还可以包括访问软件应用的向该应用可以在其上执行的设备的设备操作系统注册的功能,例如,使得操作系统(OS)或其他应用可以通过调用API来访问该功能。
基于语义注释(例如,API名称、API规范、向设备OS注册的功能等),与API定义关联的API可以被映射到特定的可执行单元。例如,基于API名称“GetAddress”,API可以映射到可执行单元,当该可执行单元在处理器上运行时,例如通过GPS或其他设备上的传感器、通过用户输入等获取地址。不同的API可以被映射到不同的可执行单元。此外,例如,当与API关联的参数可用于指定API的不同功能时,单个API可以被映射到不同的可执行单元。还可以利用与API关联的参数来识别特定可执行单元的一个或多个参数。
在一些实施方式中,分析软件应用的用户界面(UI)元素可以包括将每个UI元素映射到特定的可执行单元。例如,图像分析和识别技术和/或光学字符识别(OCR)技术可用于识别软件应用中的UI按钮被标记为“发送”(UI元素上的文本)或具有对应的图形内容,例如,像“纸飞机图标”这样的图标。基于识别,UI元素可以与在应用情境内提供对应功能(例如,“发送”功能)的特定可执行单元匹配。例如,如果软件应用是电子钱包,则“发送”按钮可以匹配“发送金钱”可执行单元,而如果软件应用是即时消息应用,则“发送”按钮可以匹配“发送消息”可执行单元。此外,特定可执行单元可以基于UI配置有一个或多个参数。例如,如果将“发送金钱”UI元素放置在以货币值作为输入的文本框旁边,则特定的可执行单元可以被设置有“货币”参数,该参数将被获得以执行特定的可执行单元。
此外,作为特定UI元素出现在用户界面上的其他UI元素可用于确定情境,然后该情境可用于识别UI元素被映射到的特定可执行单元。例如,包括向上箭头的UI元素,例如放置在包括“文件传输”菜单的UI中的“↑”,可以提供UI元素与“上传”对应的情境。此外,UI元素的形状、大小或放置也可用于将UI元素映射到特定的可执行单元。
在一些实施方式中,UI元素可以包括音频UI元素,例如,向用户大声说出的音频UI元素。在这些实施方式中,分析音频UI元素可以包括利用语音识别技术来检测音频UI元素的音调或音频UI元素的文本。基于检测到的音调和/或文本,音频UI元素可以与特定的可执行单元匹配。例如,用要被获得以执行音乐播放可执行单元的参数“歌曲标识符”,例如,提示用户“您想播放哪首歌?”的音频UI元素可以与音乐播放可执行单元关联。在一些实施方式中,可以分析音调和/或文本以确定音频UI元素的输入。例如,文本“您想播放哪首歌?”可以被确定为需要参数“歌曲标识符”作为输入。框310之后可以是框312。
在框312处,基于框308中识别的用户旅程和框310中识别的多个可执行单元来生成执行块。在一些实施方式中,执行块可以定义多个可执行单元中的两个或更多个的序列,其在执行时完成特定用户旅程的计算机介导任务。在一些实施方式中,生成执行块可以包括将用户旅程的多个操作中的每一个映射到多个可执行单元中的特定可执行单元。
例如,图2A-2C中所示的用户旅程可以被映射到关联的多个可执行单元,每个可执行单元执行相应的操作,诸如“识别联系人地址和模态”(例如,IMl上的alice.m)、“选择照片”(例如,从用户的照片库)和“通过IM发送”(例如,通过IM1)可执行块。可执行单元可如上文参考框310所述地确定。此外,执行块可以以序列组合可执行单元,使得在执行块的执行期间可调用从中获得可执行单元的相应软件应用。
例如,运行执行单元可以包括通过使用对应的API定义对软件应用执行API调用或者自动导航软件应用的用户界面来调用对应的软件应用。例如,可以通过计算设备上的虚拟助手来提供执行块,并且虚拟助手应用可以调用在执行块的可执行单元的序列中定义的相应软件应用。在一些实施方式中,软件应用可以通过API调用,使得在运行可执行单元时不显示用户界面。在一些实施方式中,软件应用可以被静默调用,使得软件应用的用户界面不向用户显示,而是如在可执行单元中指定的那样自动导航。
在一些实施方式中,自动导航相应软件应用提供的用户界面可以包括虚拟助手识别相应软件应用提供的用户界面,并基于该识别,自动将点击输入、触摸输入、语音输入或键盘输入提供到相应的软件应用。在一些实施方式中,自动导航可以包括虚拟助手参考由相应软件应用提供的用户界面自动触发与按钮点击、菜单选择、滚动或其他操作关联的事件。
识别可以包括将用户界面与作为可执行单元的一部分存储的用户界面信息匹配(例如,识别“发送”按钮)。在一些实施方式中,可以通过利用计算机视觉技术来执行匹配。框312之后可以是框314。
在框314处,可以提供执行块以供用户选择。在一些实施方式中,可以提供包括该执行块以及其他执行块的辅助用户界面,每个执行块与相应的计算机介导任务关联。例如,可以通过虚拟助手提供辅助用户界面。在一些实施方式中,辅助用户界面可以是视觉显示,例如,其包括多个图标,每个图标与特定的执行块对应。在一些实施方式中,辅助用户界面可以作为音频UI提供,例如,通过诸如“说将照片发送给X”、“说查看我的海滩照片”等音频或视觉提示。用户可以通过从视觉显示中选择、通过提供口头命令等激活特定执行块。
在一些实施方式中,辅助用户界面可以显示在计算设备上,例如客户端计算设备上。在一些实施方式中,可以基于计算设备的使用情境来提供辅助用户界面。例如,如果有大量的执行块可用,则适合情境(例如,可能被用户使用)的执行块的子集可以被识别并通过辅助用户界面提供。在一些实施方式中,可以基于计算设备的系统状态和/或与计算设备关联的使用模式在用户许可的情况下确定计算设备的使用情境。在这些实施方式中,可以通过确定与执行块关联的计算机介导任务是否匹配计算设备的使用情境来为辅助用户界面选择执行块。
例如,系统状态可以包括系统参数,诸如当前时间、当前位置、计算设备最近是否被用于特定动作,诸如拍摄照片等。例如,如果当前位置与家不同,则可以显示与“预订出租车回家”任务关联的执行块,而如果当前位置是家,则可以显示诸如“打开灯”的执行块。在另一示例中,如果计算设备最近被用于捕获照片,则可以显示诸如“自动增强最近照片”、“与妈妈分享照片”等的执行块。在另一示例中,如果计算设备的系统状态指示低电池状态,则可以显示执行块“节省电力”。例如,“节省电力”执行块可以包括执行诸如开启设备的低功耗模式、降低屏幕亮度、使耗电的app进入睡眠等动作的可执行单元。
在用户许可的情况下,与计算设备关联的使用模式可以被识别并且被用于选择要在辅助用户界面中显示的执行块。例如,如果用户允许,则诸如通常使用某些执行块的时间、用户的日历信息、与各种软件应用关联的使用数据等数据可用于确定计算设备的使用模式。例如,如果用户在开车上班时具有使用计算设备播放播客的模式,则在根据计算设备的位置数据或日历信息确定用户可能在上班的路上时,可以显示诸如“播放最新播客”的执行块。在另一示例中,如果用户的日历指示日常例行程序,例如健身预约,则可以显示对应的执行块,例如“播放健身音乐”。
在一些实施方式中,可以基于用户偏好或其他用户特定因素来定制辅助用户界面。例如,执行准确触摸手势的身体能力有限的用户,例如患有特发性震颤、患有帕金森氏病等的用户,可以被提供包括大或粘性的图标或以其他方式被定制以接收来自这样的用户的输入的或通过音频的UI。在另一示例中,认知能力有限的用户,例如,不会阅读UI语言的用户,感知某些颜色或形状有困难的用户,有记忆障碍的用户等,被提供考虑到用户的能力的合适的辅助用户界面,例如其显示图形图标、提供导航提示和记忆辅助等。例如,辅助用户界面可以是对话式用户界面,其中,虚拟助理以逐向方式获得关于执行块参数的用户输入。
在一些实施方式中,该用户或另一用户,例如父母或看护者,可以提供关于执行块的信息,其可以用于选择要通过辅助用户界面提供的执行块。例如,父母可以指定在特定情境下通过辅助用户界面提供诸如“给妈妈打电话”或“给我讲故事”的执行块,例如,当孩子放学回家时、就寝时等。该信息可以包括与执行块关联的情境因素、在其上提供执行块的设备、辅助用户界面的配置,诸如配色方案、布局、图标大小、语音语言等。
在一些实施方式中,可以基于在用户许可下获得的情境因素来提供辅助用户界面。辅助用户界面可以在不同的计算设备上以不同的方式呈现。例如,在具有触摸屏显示器的设备(诸如智能电话、平板计算机或智能显示器)上,辅助用户界面可以呈现为图标网格,而在没有显示器的智能扬声器上,辅助用户界面可能通过音频提示呈现,例如“欢迎回家,您想开灯吗?”,以为用户提供对“打开家里的灯”执行块的轻松访问。这样的对呈现辅助用户界面的定制可以使执行块在设备上并且在难以从长列表中进行选择的使用情况下可访问,例如语音输入设备、有认知障碍的用户等。框314之后可以是框316。
在框316处,可以从辅助用户界面接收指示特定执行块的激活的用户输入。在一些实施方式中,如果执行块被配置为接受用于一个或多个参数的用户输入,则可以提供进一步的用户界面,其使用户能够指定一个或多个参数。
例如,提供进一步的用户界面可以包括向用户提供提示以请求用于序列的特定可执行单元的参数(例如,指定照片要发送到的联系人,指定用于出租车预订的出发地址等)。可以接收包括参数并且可以在执行块的运行期间使用的用户响应。在一些实施方式中,提供辅助用户界面的虚拟助手也可以呈现进一步的用户界面,从而为用户提供一致的用户交互体验,即使特定执行块包括利用不同软件应用的可执行单元。响应于用户输入,可以运行执行块以完成计算机介导任务。框316之后可以是框318。
在框318处,运行执行块。例如,可以运行执行块的可执行单元的序列。如果用户提供了一个或多个参数的输入,则使用用户指定的参数运行执行块。例如,如果用户选择了“与妈妈分享照片”的执行块,则可执行单元的序列可以包括用于识别地址和使用模态的第一单元、用于选择照片的第二单元以及用于激活选择的模态并发送照片的第三单元。
例如,地址和模态可以通过运行第一单元以通过IM1识别妈妈的IM地址来确定。此外,在用户许可的情况下,可以由第二单元自动执行照片的选择,例如,以前未与妈妈分享的照片,诸如最近拍摄的照片。替代地或另外地,可以基于用户输入参数,例如“生日照片”、“昨天的照片”等来执行照片的选择。可以将选择的模态/地址和照片提供给第三单元,第三单元可以通过IM 1发送照片。
在一些实施方式中,执行块可以存储在不同的抽象级别或层次结构。例如,当基于用户交互数据(例如通过手势、触摸输入等选择特定图标或其他用户界面元素或者用户界面内的特定位置)生成执行块时,执行块内的可执行单元可以表示为在与可执行单元关联的软件应用的特定UI视图上自动提供的输入。在该示例中,运行执行块可以包括运行软件应用并自动提供图标选择或其他用户交互。在不同的实施方式中,软件应用的UI可以被显示(允许用户查看动作中的执行块并了解动作序列)或者可以从视图中隐藏。
在更高的抽象级别,可以使用对应的语义来表示输入操作(手势、触摸输入等)以及软件应用的用户界面(例如,发送按钮、保存按钮等)。该表示可以使可执行单元能够跨软件应用版本和设备配置传输。例如,可执行单元可以在高抽象级别指定动作是选择发送按钮,并且调用执行块的虚拟助理可以分析软件UI以识别发送按钮并自动执行通过合适的输入(例如轻击或点击动作)的选择。在该交互级别,虚拟助理可以简单地基于相应应用的用户界面将参考一个软件应用定义的可执行单元映射到另一类似的软件应用。
在一些实施方式中,可以自动推断与可执行单元关联的语义。例如,软件应用的诸如按钮标签和可访问性注释的内部状态可用于推断抽象,例如,通过机器学习模型。在一些实施方式中,机器学习模型可以通过在模拟环境中执行软件应用并使用强化学习将应用的各种用户界面元素映射到用户旅程中的操作来进行训练。
在一些实施方式中,方法300或方法的一些部分可以由系统自动发起。在一些实施方式中,实现的系统是第一设备。例如,该方法(或其部分)可以定期执行,或基于一个或多个特定事件或条件执行,例如用户发起用户旅程、用户提供命令等。
在一些实施方式中,方法300可以由服务器设备(例如,服务器设备104)、客户端设备(例如,客户端设备120-126中的任一个)或服务器设备和客户端设备的组合来执行。例如,在一些实施方式中,框308-312可以由服务器设备执行以生成执行块并且框314-318可以由客户端设备执行以提供使用户能够选择和运行执行块的辅助用户界面。在一些实施方式中,方法300可以完全由服务器设备或由客户端设备执行。
辅助使用:如本文所述,执行块提供更高级别的抽象,将与用户旅程关联的操作一起分组到可执行单元的序列。这使得执行块适用于在更精细的粒度级别上不可行或笨重的许多使用情况。例如,可以提供使不熟悉技术的用户(例如老年患者)能够向例如护理人员付款的执行块。在另一示例中,可以提供使不熟悉技术的用户(例如孩子)能够执行诸如呼叫父母或购买产品的动作的执行块。在一些实施方式中,可以提供互锁,其中,一个或多个可执行单元(例如,金钱转账)在获得另一受信任用户的批准后被执行。在这些实施方式中,受信任的人可以在与用户意图关联的计算机介导任务级别提供批准。
可下载的执行块:可以提供基于用户旅程(例如,从点击流或其他用户交互数据)生成的执行块以供下载,例如,通过在线存储库。例如,存储库中的执行块可以在虚拟化环境中针对不同设备和从其获得各个可执行单元的应用的不同版本进行测试。在一些实施方式中,可以自动和动态地修改存储库中的执行块以确保它们跨不同版本和设备正确工作。在一些实施方式中,存储库中的执行块可以被自动(或使用来自专家的输入)组织以突出显示与受欢迎的用户旅程或适合特定用户的用户旅程关联的执行块,并确保执行块是可理解的、功能性的和非恶意的。存储库可以通过可搜索或可浏览的界面呈现给用户。
通过主屏幕、AAC或物理按钮的辅助用户界面:在一些实施方式中,用于特定用户的辅助用户界面的执行块可以由用户选择,或者由用户的护理人员或支持专业人员选择。可以通过虚拟助理的“主屏幕”或等效物来提供选择的执行块。在一些实施方式中,如果用户在他们的设备上使用增强和替代通信(AAC)应用,则可以将选择的执行块作为AAC按钮提供。在一些实施方式中,执行块可以作为物理按钮或比计算设备(诸如智能电话)更简单的辅助设备使得对用户可用。例如,可以向老年用户提供标记为“呼叫帮助”的单个按钮,该按钮被配置为触发执行块,该执行块包括通过消息应用向先前配置的接收者(例如,亲属、医生、急救专业人员等)发送预先填充的消息的用户旅程。
基于其他执行块生成执行块:在一些实施方式中,可以基于先前识别的可执行单元和先前生成的执行块来生成执行块。例如,可以基于已知的执行块来训练机器学习模型以从各种软件应用中自动识别可执行单元并向识别的可执行单元添加语义注释。例如,如果已知执行块包括发送照片的执行块,例如“向用户X发送照片”、“发送昨天的照片”等,其包括与多个应用对应的可执行单元,则可以训练机器学习模型识别其他应用的组件功能,例如,新即时消息app中的“发送”功能,即使应用开发人员没有通过API定义提供有关这样的功能的显式注释。例如,app的用户界面可以由经训练机器学习模型分析以将“纸飞机图标”映射到“发送”可执行单元(例如,基于图标形状、大小或放置,或关联的用户交互),然后可以将其添加到包括这样的单元的执行块。
与设备无关或虚拟化的执行块:在一些实施方式中,辅助用户界面可以通过与可以在其上运行执行块(或单独的可执行单元)的设备不同的设备来提供。例如,辅助UI可以通过可穿戴设备(例如,智能手表)提供,并且在选择时,执行块可以在不同的设备(例如,智能电话或膝上型计算机)或虚拟设备(例如,通过服务器提供的模拟设备)上运行。例如,提供辅助UI的虚拟助理可以利用模拟设备来运行执行块。这些实施方式允许辅助UI呈现在更简单和/或更廉价的设备上,或者用户偏爱的设备上,这些设备都可能不具备执行执行块的一个或多个可执行单元的能力。此外,在这些实施方式中,用户指定的参数,例如,通过用户交互获得的或自动确定的参数,例如位置或其他传感器数据,可以从显示辅助UI的设备获得,并且可以通过网络提供给模拟设备。
通过使用执行块减少认知负荷(load):当执行计算机介导任务时,如本文所述的执行块可以帮助减少用户认知负荷。例如,通过将用户旅程封装在执行块中(这可以减少记住操作序列的负担)、允许在先配置或自动、情境选择参数(这可以减少或消除决策负担)和/或呈现为用户定制的辅助用户界面(这允许具有不同认知和/或运动能力的用户运行执行块),执行块可以使用户能够以较低的认知负荷执行计算机介导任务。因此,与通过需要直接使用一个或多个软件应用的用户旅程执行计算机介导任务时相比,用户使用执行块的短期、工作和事务记忆要求可以更低。
在不同用户设备上提供执行块:可以通过任何用户设备提供本文所述的执行块。在用户认知和/或运动能力有限(例如,残疾用户、与其他活动(例如慢跑、烹饪、驾驶等)同时执行计算机介导任务的用户)的情境下,或在从其执行计算机介导任务的用户设备具有有限的能力(例如,没有屏幕或具有小屏幕(例如,智能扬声器、可穿戴设备等))的情境下,执行块可能特别有用。此外,可以提供使用户能够运行执行块的物理按钮。在一些实施方式中,可以在执行块和物理对象之间建立关联,并且辅助用户界面可以包括用户将物理对象呈现给相机(或其他传感器)以触发运行执行块。
图4A示出了执行块的使用的示例。用户界面状态410A-410B示出了使用执行块完成“向妈妈发送照片”任务的用户旅程。如图4A所示,用户的计算设备的主屏幕(410A)显示包括多个执行块的虚拟助理(402),每个执行块具有对应的图标。
每个图标与使用户能够执行对应任务的执行块对应。例如,图4中的图标与用于以下任务的执行块对应:“给妈妈发送照片”、“叫出租车回家”、“和奶奶说话”、“发送金钱”、“查看假期照片”和“自拍”。在不同的实施方式中,多个执行块可以包括任意数量的执行块,例如1个块、2个块、5个块、10个块、100个块等。
用户可以选择特定的图标,例如通过触摸输入、通过点击、通过语音命令等,以运行对应的执行块。在图4A所示的示例中,用户选择“向妈妈发送照片”。响应于该选择,执行块被运行并且照片被发送到识别为妈妈的用户联系人并向用户提供确认(410B)。在该示例中,用户执行了单个操作,并且任务自动完成。任务的中间步骤,例如,导航图库并选择照片、导航联系人列表并选择要向其发送照片的联系人以及选择发送照片的模态(例如,通过链接或URL共享、通过电子邮件发送、通过即时消息发送等)由虚拟助理(402)自动完成,无需进一步的用户输入。因此,与图2A-2C中所示的用户旅程相比,需要的来自用户的输入数量以及完成任务的认知负担要低得多。
在一些实施方式中,执行块可以被参数化,例如被配置为使得运行执行块的用户可以提供用于执行执行块的某些步骤的输入。图4B示出了使用参数化的执行块的示例。用户界面状态420A-420C示出了使用执行块完成“向妈妈发送照片”任务的用户旅程。如图4B所示,用户的计算设备的主屏幕(420A)显示包括多个执行块的虚拟助理(402),每个执行块具有对应的图标。
用户可以选择特定图标,例如通过触摸输入、通过点击、通过语音命令等,以运行对应的执行块。在图4B所示的示例中,用户选择“向妈妈发送照片”。响应于该选择,执行块被运行。虚拟助理自动确定与妈妈关联的联系人以及发送照片的模态。要发送的照片是执行块配置为通过用户输入接收的参数。如图4B所示,显示一组用户的照片(420B)并向用户提供选择要发送给妈妈的照片的提示(“轻击或说话以选择照片”)。
在一些实施方式中,执行块可以例如基于用户情境提供照片的初始选择。例如,如果用户定期发送照片给妈妈,则可以自动选择用户上次发送照片给妈妈后捕获的照片。此外,可以例如基于质量标准、照片内容等来选择这样的照片的子集。用户可以确认选择、选择附加照片或者取消选择自动选择的照片中的一个或多个。在用户确认后,选择的照片被发送给妈妈并向用户提供确认(420C)。
在该示例中,用户在虚拟助理应用内执行了单个操作以选择执行块并提供了附加输入。任务的中间步骤,例如导航联系人列表和选择要向其发送照片的联系人以及选择发送照片的模态,由虚拟助理(402)自动完成而无需进一步的用户输入。执行块可以定义为具有用户输入的一个或多个参数。此外,在执行块运行期间呈现的用户界面是一致的,例如,使用相同的设计范式,从而减少导航多个app的不同UI的认知负担。因此,与图2A-2C中所示的用户旅程相比,需要的来自用户的输入数量以及完成任务的认知负担要低得多。
图4C示出了不同执行块“叫出租车回家”的执行。在该示例中,用户从显示由虚拟助理(402)提供的多个执行块的主屏幕(430A)中选择对应的图标。响应于用户选择,执行块被运行以完成任务(430B)。
在该示例中,运行执行块可以执行多个步骤来完成任务。例如,在用户许可的情况下,可以完成以下步骤-(a)确定用户位置,例如,通过利用用户计算设备的机载全球定位传感器(GPS);(b)访问出租车预订应用,例如,通过app API或以编程方式导航app用户界面并提供用户的位置和目的地地址(家);(c)确认出发时间和价格;和(d)通过用户授权的付款方式进行付款。因此,用户无需为这些步骤提供输入,也没有导航出租车预订应用的认知负担。
此外,执行块可以被参数化并且可以在虚拟助理内呈现简化的用户界面。例如,用户位置可以通过询问“您在哪里?”的问题并接收口头或打字回复“我在花园”通过用户输入获得。在另一示例中,可以确认付款方式,例如通过询问“您想如何付款?”的问题并接收回复“信用卡”。此外,可以向用户提供其他选择来定制旅程,例如,预订普通或高档出租车;选择或拒绝报价;等等。
以此方式,虚拟助理可以保留出租车预订的可定制性,同时减少用户认知负担。例如,当用户提供输入的能力有限(例如,用户在寒冷天气不能使用触摸屏,但可以提供语音输入)时;当用户不熟悉出租车预订应用的界面时;当用户不懂出租车预订应用的用户界面的语言时;等等时,简化的用户界面可能是合适的。
图5是示例设备500的框图,其可以用于实现本文描述的一个或多个特征。在一个示例中,设备500可以用于实现客户端设备,例如图1中所示的客户端设备120-126中的任一个。替代地,设备500可以实现服务器设备,例如服务器设备104或服务器设备142。在一些实施方式中,设备500可用于实现客户端设备、服务器设备或客户端和服务器设备两者。设备500可以是任何合适的计算机系统、服务器或如上所述的其他电子或硬件设备。
本文描述的一种或多种方法可以在可以在任何类型的计算设备上执行的独立程序、在网络浏览器上运行的程序、在移动计算设备(例如,蜂窝电话、智能电话、平板计算机、可穿戴设备(腕表、臂章、珠宝、头饰、虚拟现实护目镜或眼镜、增强现实护目镜或眼镜、头戴式显示器等)、膝上型计算机等)上运行的移动应用(“app”)中运行。在一个示例中,可以使用客户端/服务器架构,例如,移动计算设备(作为客户端设备)将用户输入数据发送到服务器设备并从服务器接收最终输出数据进行输出(例如,进行显示)。在另一示例中,所有计算都可以在移动计算设备上的移动app(和/或其他app)内执行。在另一示例中,计算可以在移动计算设备和一个或多个服务器设备之间拆分。
在一些实施方式中,设备500包括处理器502、存储器504和输入/输出(I/O)接口506。处理器502可以是一个或多个处理器和/或处理电路以执行程序代码和控制设备500的基本操作。“处理器”包括处理数据、信号或其他信息的任何合适的硬件系统、机制或组件。处理器可以包括具有带有一个或多个核(例如,在单核、双核或多核配置中)的通用中央处理单元(CPU)、多个处理单元(例如,在多处理器配置中)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、复杂可编程逻辑器件(CPLD)、用于实现功能的专用电路、实现基于神经网络模型的处理的专用处理器、神经电路、针对矩阵计算(例如,矩阵乘法)优化的处理器的系统或其他系统。
在一些实施方式中,处理器502可以包括实现神经网络处理的一个或多个协处理器。在一些实施方式中,处理器502可以是处理数据以产生概率输出的处理器,例如,处理器502产生的输出可能不精确或可能在距预期输出的范围内是准确的。处理不必限于特定的地理位置,或具有时间限制。例如,处理器可以以“实时”、“离线”、“批模式”等方式执行其功能。部分处理可以在不同时间和不同位置由不同(或相同)处理系统执行。计算机可以是与存储器通信的任何处理器。
存储器504通常设置在设备500中以供处理器502访问,并且可以是任何合适的处理器可读存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、电可擦除只读存储器(EEPROM)、闪存等,其适于存储指令供处理器执行并且与处理器502分离地定位和/或与其集成。存储器504可以存储由处理器502在设备500上操作的软件,包括操作系统508、机器学习应用530、其他应用512和应用数据514。其他应用512可以包括诸如虚拟助理应用、执行块应用、数据显示引擎、网络托管引擎、图像显示引擎、通知引擎、社交网络引擎等的应用。在一些实施方式中,机器学习应用530和其他应用512可以各自包括使处理器502能够执行本文描述的功能(例如,图3的方法的一些或全部)的指令。
其他应用512可以包括例如图像编辑应用、媒体显示应用、通信应用、网络托管引擎或应用、地图应用、媒体共享应用、购物或金融应用等。本文公开的一种或多种方法可以在多个环境和平台中操作,例如,作为可以在任何类型的计算设备上运行的独立计算机程序、作为具有网页的网络应用、作为在移动计算设备上运行的移动应用(“app”)等。
在各种实施方式中,机器学习应用可以利用贝叶斯分类器、支持向量机、神经网络或其他学习技术。在一些实施方式中,机器学习应用530可以包括经训练模型534、推断引擎536和数据532。在一些实施方式中,数据532可以包括训练数据,例如用于生成经训练模型534的数据。例如,训练数据可以包括任何类型的数据,诸如文本、图像、音频、视频、用户交互数据、应用API规范等。
训练数据可以从任何源获得,例如专门标记用于训练的数据储存库、对其提供许可以用作机器学习的训练数据的数据等。在一个或多个用户允许使用其各自的用户数据来训练机器学习模型(例如经训练模型534)的实施方式中,训练数据可以包括这样的用户数据。在用户允许使用其各自的用户数据的实施方式中,数据532可以包括被许可的数据,诸如点击流或其他用户交互数据、计算设备的使用模式、用户的日历或其他信息等。
在一些实施方式中,训练数据可以包括出于训练目的而生成的合成数据,诸如不基于用户输入或正在训练的情境中的活动的数据,例如从模拟用户旅程生成的数据。在一些实施方式中,机器学习应用530不包括数据532。例如,在这些实施方式中,可以例如在不同的设备上生成经训练模型534,并将其作为机器学习应用530的一部分提供。在各种实施方式中,经训练模型534可以作为包括模型结构或形式以及关联的权重的数据文件提供。推断引擎536可以读取经训练模型534的数据文件,并基于经训练模型534中指定的模型结构或形式实现具有节点连接性、层和权重的神经网络。
在一些实施方式中,经训练模型534可以包括一种或多种模型形式或结构。例如,模型形式或结构可以包括任何类型的神经网络,诸如线性网络、实现多个层(例如,输入层和输出层之间的“隐藏层”,其中每个层是线性网络)的深度神经网络、卷积神经网络(例如,将输入数据拆分或分隔为多个部分或瓦片(tile),使用一个或多个神经网络层单独处理每个瓦片,并汇总来自每个瓦片的处理的结果的网络)、序列到序列神经网络(例如,将序列数据(诸如句子中的单词、视频中的帧等)作为输入,并产生结果序列作为输出的网络)等。模型形式或结构可以指定各个节点之间的连接性和节点组织成层。
例如,第一层(例如,输入层)的节点可以接收数据(例如,数据532或应用数据514)作为输入。例如,当经训练模型534是识别包括多个可执行单元的执行块的模型时,输入数据可以包括点击流或其他用户交互数据、一个或多个应用的应用API规范、应用的用户界面和/或用户界面元素等。随后的中间层可以根据模型形式或结构中指定的连通性接收前一层的节点的输出作为输入。这些层也可以称为隐藏层或潜在层。
最后一层(例如,输出层)产生机器学习应用的输出。例如,输出可以是包括可执行单元序列、关联语义注释的执行块。在一些实施方式中,还可以输出用于执行块的一个或多个参数。在一些实施方式中,模型形式或结构还指定每个层中节点的数量和/或类型。
在不同的实施方式中,经训练模型534可以包括根据模型结构或形式布置成层的多个节点。在一些实施方式中,节点可以是没有存储器的计算节点,例如,被配置为处理一个输入单元以产生一个输出单元。由节点执行的计算可以包括,例如,将多个节点输入中的每一个乘以权重,获得加权和,以及用偏差或截距值调整加权和以产生节点输出。在一些实施方式中,由节点执行的计算还可以包括将步长/激活函数应用于经调整的加权和。在一些实施方式中,步长/激活函数可以是非线性函数。
在各种实施方式中,这样的计算可以包括诸如矩阵乘法的操作。在一些实施方式中,多个节点进行的计算可以并行执行,例如,使用多核处理器的多个处理器核、使用GPU的各个处理单元或专用神经电路。在一些实施方式中,节点可以包括存储器,例如,能够存储一个或多个较早的输入并在处理后续输入时使用该一个或多个较早的输入。例如,具有存储器的节点可以包括长短期记忆(LSTM)节点。LSTM节点可以使用存储器来保持允许节点像有限状态机(FSM)一样表现的“状态”。具有这样的节点的模型可在处理序列数据时有用,序列数据例如是句子或段落中的单词;视频中的帧、语音或其他音频;用户旅程中的操作序列等。
在一些实施方式中,经训练模型534可以包括各个节点的嵌入或权重。例如,模型可以被发起为被组织成由模型形式或结构指定的层的多个节点。在初始化时,可以将相应的权重应用于根据模型形式连接的每对节点(例如,神经网络的相继层中的节点)之间的连接。例如,各个权重可以随机分配,或者初始化为默认值。然后可以训练模型,例如使用数据532,以产生结果。
例如,训练可以包括应用监督学习技术。在监督学习中,训练数据可以包括多个输入和每个输入对应的预期输出。基于模型输出与预期输出的比较,权重的值被自动调整,例如,以当被提供类似输入时增加模型产生预期输出的概率的方式。
机器学习应用530还包括推断引擎536。推断引擎536被配置为将经训练模型534应用于数据,诸如应用数据514,以提供推断。在一些实施方式中,推断引擎536可以包括由处理器502执行的软件代码。在一些实施方式中,推断引擎536可以指定电路配置(例如,对于可编程处理器、对于现场可编程门阵列(FPGA)等)以配置处理器502来应用经训练模型。在一些实施方式中,推断引擎536可以包括软件指令、硬件指令或组合。在一些实施方式中,推断引擎536可以提供应用编程接口(API),操作系统508和/或其他应用512可以使用该API来调用推断引擎536,例如,将经训练模型534应用于应用数据514以生成推断,例如,形成执行块的可执行单元或可执行单元序列。
在一些实施方式中,机器学习应用530可以以离线方式实现。在这些实施方式中,经训练模型534可以在第一阶段生成,并作为机器学习应用530的一部分提供。在一些实施方式中,机器学习应用530可以以在线方式实现。例如,在这样的实施方式中,调用机器学习应用530的应用(例如,操作系统508、其他应用512中的一个或多个)可以利用由机器学习应用530产生的推断,例如,将推断提供给用户,并且可以生成系统日志(例如,如果被用户允许,则为基于推断的用户采取的动作;或者如果用作进一步处理的输入,则为进一步处理的结果)。系统日志可以定期生成,例如每小时、每月、每季度等,并且可以在用户许可的情况下用于更新经训练模型534,例如以更新经训练模型534的嵌入。
在一些实施方式中,机器学习应用530可以以能够适应在其上执行机器学习应用530的设备500的特定配置的方式来实现。例如,机器学习应用530可以确定利用可用计算资源(例如,处理器502)的计算图。例如,如果机器学习应用530被实现为多个设备上的分布式应用,则机器学习应用530可以确定以优化计算的方式在各个设备上执行计算。在另一示例中,机器学习应用530可以确定处理器502包括具有特定数量的GPU核(例如,1000)的GPU并且相应地实现推断引擎(例如,作为1000个单独的进程或线程)。
存储器504中的任何软件可替代地存储在任何其他合适的存储位置或计算机可读介质上。此外,存储器504(和/或其他连接的(一个或多个)存储设备)可以存储一个或多个消息、一个或多个分类法、电子百科全书、字典、辞典、知识库、消息数据、语法、用户偏好和/或本文描述的特征中使用的其他指令和数据。存储器504和任何其他类型的存储装置(磁盘、光盘、磁带或其他有形介质)可以被认为是“存储装置”或“存储设备”。
I/O接口506可以提供使设备500能够与其他系统和设备接口的功能。接口设备可以作为设备500的一部分被包括或者可以是单独的并且与设备500通信。例如,网络通信设备、存储设备(例如,存储器和/或数据库106)和输入/输出设备可以通过I/O接口506通信。在一些实施方式中,I/O接口可以连接到接口设备,诸如输入设备(键盘、指点设备、触摸屏、麦克风、相机、扫描仪、传感器等)和/或输出设备(显示设备、扬声器设备、打印机、电机等)。
可以连接到I/O接口506的接口设备的一些示例可以包括一个或多个显示设备520,其可以用于显示内容,例如图像、视频和/或本文所述的输出应用的用户界面。显示设备520可以通过本地连接(例如,显示总线)和/或通过联网连接而连接到设备500,并且可以是任何合适的显示设备。显示设备520可以包括任何合适的显示设备,例如LCD、LED或等离子显示屏、CRT、电视、监视器、触摸屏、3-D显示屏或其他视觉显示设备。例如,显示设备520可以是在移动设备上提供的平面显示屏、在护目镜或头戴式视图器设备中提供的多个显示屏或者用于计算机设备的监视器屏。
I/O接口506可以接口到其他输入和输出设备。一些示例包括可以捕获图像的一个或多个相机。一些实施方式可以提供用于捕获声音(例如,作为捕获的图像、语音命令等的一部分)的麦克风、用于输出声音的音频扬声器设备或其他输入和输出设备。
为了便于说明,图5针对处理器502、存储器504、I/O接口506和软件框508、512和530中的每一个示出了一个框。这些框可以表示一个或多个处理器或处理电路、操作系统、存储器、I/O接口、应用和/或软件模块。在其他实施方式中,设备500可以不具有所示出的所有组件和/或可以具有其他元件,包括代替本文所示的元件或者除了本文所示的元件之外的其他类型的元件。虽然一些组件被描述为执行如本文的一些实施方式中所描述的框和操作,但是环境100的任何合适的组件或组件的组合、设备500、类似系统或与这样的系统关联的任何合适的一个或多个处理器可以执行所描述的框和操作。
本文描述的方法可以通过计算机程序指令或代码来实现,该指令或代码可以在计算机上执行。例如,代码可以由一个或多个数字处理器(例如,微处理器或其他处理电路)实现并且可以存储在包括非暂时性计算机可读介质(例如,存储介质)的计算机程序产品上,非暂时性计算机可读介质诸如磁性、光学、电磁或半导体存储介质,包括半导体或固态存储器、磁带、可移动计算机软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存、硬磁盘、光盘、固态存储器驱动器等。程序指令也可以包含在电子信号中并作为电子信号提供,例如以从服务器(例如,分布式系统和/或云计算系统)递送的软件即服务(SaaS)。替代地,一种或多种方法可以在硬件(逻辑门等)中或在硬件和软件的组合中实现。示例硬件可以是可编程处理器(例如现场可编程门阵列(FPGA)、复杂可编程逻辑器件)、通用处理器、图形处理器、专用集成电路(ASIC)等。一种或多种方法可以作为在系统上运行的应用的一部分或组件来执行,或者作为与其他应用和操作系统结合运行的应用或软件来执行。
尽管已经关于描述的特定实施方式描述了描述,但是这些特定实施方式仅是说明性的,而不是限制性的。示例中示出的构思可以应用于其他示例和实施方式。
在本文讨论的某些实施方式可能收集或使用关于用户的个人信息(例如,用户数据、关于用户的社交网络的信息、用户的位置和在该位置的时间、用户的生物特征信息、用户的活动和人口统计信息)的情况下,为用户提供一个或多个机会来控制是否收集信息、是否存储个人信息、是否使用个人信息以及如何收集、存储和使用有关用户的信息。也就是说,本文讨论的系统和方法在从相关用户处接收明确授权后收集、存储和/或特定地使用用户个人信息。例如,向用户提供对程序或功能是否收集关于该特定用户或与程序或功能相关的其他用户的用户信息的控制。向要收集其个人信息的每个用户提供一个或多个选项,以允许控制与该用户相关的信息收集,以就是否收集信息以及收集信息的哪些部分提供许可或授权。例如,可以通过通信网络向用户提供一个或多个这样的控制选项。此外,某些数据在存储或使用之前可以以一种或多种方式进行处理,以便去除个人可识别信息。例如,可以处理用户的标识,从而无法确定任何个人可识别信息。作为另一示例,用户设备的地理位置可以被笼统为更大的区域,从而无法确定用户的特定位置。
注意,如本领域技术人员所知,本公开中描述的功能块、操作、特征、方法、设备和系统可以被集成或划分为系统、设备和功能块的不同组合。可以使用任何合适的编程语言和编程技术来实现特定实施方式的例程。可以采用不同的编程技术,例如,过程或面向对象。例程可以在单个处理设备或多个处理器上执行。虽然步骤、操作或计算可以以特定顺序呈现,但是在不同的特定实施方式中可以改变顺序。在一些实施方式中,可以同时执行在本说明书中示出为先后的多个步骤或操作。
Claims (20)
1.一种提供辅助用户界面的计算机实现的方法,所述方法包括:
通过分析包括用户交互数据的数据来识别用户旅程,所述用户旅程包括执行计算机介导任务的多个操作;
分析以下中的一个或多个:多个软件应用的应用编程接口(API)定义或所述多个软件应用的用户界面(UI)元素,以识别多个可执行单元;
基于所述用户旅程和所述多个可执行单元,生成定义所述多个可执行单元中的两个或更多个的序列的执行块,并且其中,所述执行块的执行完成所述计算机介导任务;和
提供包括所述执行块的所述辅助用户界面。
2.根据权利要求1所述的计算机实现的方法,还包括:
接收指示所述执行块的激活的用户输入;和
响应于所述用户输入,运行所述执行块。
3.根据权利要求2所述的计算机实现的方法,还包括:
提供请求用于所述序列的特定可执行单元的参数的提示;和
接收包括所述参数的用户响应。
4.根据权利要求2所述的计算机实现的方法,其中,所述辅助用户界面由虚拟助理应用提供,并且其中,所述执行块的执行包括由所述虚拟助理应用调用与所述多个可执行单元中的所述两个或更多个中的每一个关联的相应软件应用。
5.根据权利要求4所述的计算机实现的方法,其中,所述调用包括:
由所述虚拟助理应用使用所述相应软件应用的所述API定义执行API调用;或
由所述虚拟助理应用自动导航由相应的软件应用提供的用户界面,其中,所述自动导航包括:
识别由所述相应软件应用提供的所述用户界面;和
基于所述识别,自动向所述相应软件应用提供以下中的一个或多个:点击输入、触摸输入、语音输入或键盘输入。
6.根据权利要求1所述的计算机实现的方法,其中,生成所述执行块包括将所述用户旅程的所述多个操作中的每一个映射到所述多个可执行单元中的特定可执行单元。
7.根据权利要求1所述的计算机实现的方法,其中,分析所述多个软件应用的API定义包括对于每个API定义:
获得与所述API定义关联的语义注释;和
基于所述语义注释,将与所述API定义关联的API映射到所述多个可执行单元中的特定可执行单元。
8.根据权利要求1所述的计算机实现的方法,其中,分析所述多个软件应用的UI元素包括将每个UI元素映射到所述多个可执行单元中的特定可执行单元。
9.根据权利要求8所述的计算机实现的方法,其中,所述UI元素包括显示UI元素,并且其中,分析所述显示UI元素包括:
识别以下中的一个或多个:每个显示UI元素的形状、大小、放置、文本或图形内容;和
基于所述识别将所述显示UI元素与所述特定可执行单元匹配。
10.根据权利要求8所述的计算机实现的方法,其中,所述UI元素包括音频UI元素,并且其中,分析所述UI元素包括,对于每个音频UI元素:
利用语音识别技术来检测以下中的一个或多个:音频UI元素的音调或音频UI元素的文本;和
基于所述音调或所述文本将所述音频UI元素与所述特定可执行单元匹配。
11.根据权利要求1所述的计算机实现的方法,其中,所述用户交互数据包括多个用户交互事件,并且分析所述用户交互数据包括:
将所述多个用户交互事件分类为多个事件聚类;和
基于所述多个事件聚类,将所述多个用户交互事件中的每一个映射到所述多个可执行单元中的特定可执行单元。
12.根据权利要求11所述的计算机实现的方法,其中,所述多个用户交互事件包括指示所述计算机介导任务的开始的开始事件和指示所述计算机介导任务的结束的结束事件。
13.根据权利要求11所述的计算机实现的方法,其中,所述多个用户交互事件包括与所述多个软件应用中的第一软件应用和第二软件应用中的每一个关联的至少一个事件。
14.根据权利要求1所述的计算机实现的方法,其中,所述辅助用户界面还包括一个或多个其他执行块,每个其他执行块与相应的计算机介导任务关联,并且其中,提供所述辅助用户界面包括:
基于以下中的一个或多个确定使用情境:客户端计算设备的系统状态或与所述客户端计算设备关联的使用模式;和
确定所述计算机介导任务和所述相应的计算机介导任务匹配所述客户端计算设备的所述使用情境。
15.一种计算设备,包括:
处理器;和
联接到所述处理器的存储器,在所述存储器上存储有指令,当被所述处理器执行时,所述指令使所述处理器执行操作,所述操作包括:
通过分析包括用户交互数据的数据来识别用户旅程,所述用户旅程包括执行计算机介导任务的多个操作;
分析以下中的一个或多个:多个软件应用的应用编程接口(API)定义或所述多个软件应用的用户界面(UI)元素,以识别多个可执行单元;
基于所述用户旅程和所述多个可执行单元,生成定义所述多个可执行单元中的两个或更多个的序列的执行块,并且其中,所述执行块的执行完成所述计算机介导任务;和
提供包括所述执行块的辅助用户界面。
16.根据权利要求15所述的计算设备,其中,分析所述多个软件应用的API定义的操作包括对于每个API定义:
获得与所述API定义关联的语义注释;和
基于所述语义注释,将与所述API定义关联的API映射到所述多个可执行单元中的特定可执行单元。
17.根据权利要求15所述的计算设备,其中,所述用户交互数据包括多个用户交互事件,并且其中,分析所述用户交互数据的操作包括:
将所述多个用户交互事件分类为多个事件聚类;和
基于所述多个事件聚类,将所述多个用户交互事件中的每一个映射到所述多个可执行单元中的特定可执行单元。
18.根据权利要求15所述的计算设备,其中,所述计算设备是服务器,其中,所述辅助用户界面还包括一个或多个其他执行块,每个其他执行块与相应的计算机介导任务关联,并且其中,提供所述辅助用户界面包括:
使所述辅助用户界面由不同于所述服务器的客户端计算设备显示;
基于以下中的一个或多个来确定所述客户端计算设备的使用情境:所述客户端计算设备的系统状态或与所述客户端计算设备关联的使用模式;和
确定所述计算机介导任务和与所述一个或多个其他执行块关联的所述相应的计算机介导任务匹配所述客户端计算设备的所述使用情境。
19.一种非暂时性计算机可读介质,其上存储有指令,当被处理器执行时,所述指令使所述处理器执行操作,所述操作包括:
通过分析包括用户交互数据的数据来识别用户旅程,所述用户旅程包括执行计算机介导任务的多个操作;
分析以下中的一个或多个:多个软件应用的应用编程接口(API)定义或所述多个软件应用的用户界面(UI)元素,以识别多个可执行单元;
基于所述用户旅程和所述多个可执行单元,生成定义所述多个可执行单元中的两个或更多个的序列的执行块,并且其中,所述执行块的执行完成所述计算机介导任务;和
提供包括所述执行块的辅助用户界面。
20.根据权利要求19所述的非暂时性计算机可读介质,其中,生成所述执行块的操作包括将所述用户旅程的所述多个操作中的每一个映射到所述多个可执行单元中的特定可执行单元。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2019/054159 WO2021066818A1 (en) | 2019-10-01 | 2019-10-01 | Providing assistive user interfaces using execution blocks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114008590A true CN114008590A (zh) | 2022-02-01 |
CN114008590B CN114008590B (zh) | 2024-04-09 |
Family
ID=68296752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980097694.6A Active CN114008590B (zh) | 2019-10-01 | 2019-10-01 | 使用执行块提供辅助用户界面 |
Country Status (4)
Country | Link |
---|---|
US (1) | US12045637B2 (zh) |
EP (1) | EP3827340A1 (zh) |
CN (1) | CN114008590B (zh) |
WO (1) | WO2021066818A1 (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060015818A1 (en) * | 2004-06-25 | 2006-01-19 | Chaudhri Imran A | Unified interest layer for user interface |
US20110131513A1 (en) * | 2008-07-30 | 2011-06-02 | Kyocera Corporation | User interface generation apparatus |
CN102279791A (zh) * | 2010-06-11 | 2011-12-14 | 微软公司 | 用户界面清单 |
US20130086481A1 (en) * | 2011-09-29 | 2013-04-04 | Avaya Inc. | System and method for adaptive communication user interface |
KR20130058947A (ko) * | 2011-11-28 | 2013-06-05 | 삼성전자주식회사 | 보조 윈도우 표시 방법 및 이를 지원하는 단말기 |
US20150067531A1 (en) * | 2013-08-30 | 2015-03-05 | Verizon Patent And Licensing Inc. | User-based customization of a user interface |
CN105830150A (zh) * | 2013-12-18 | 2016-08-03 | 微软技术许可有限责任公司 | 基于意图的用户体验 |
CN106657625A (zh) * | 2016-12-06 | 2017-05-10 | 深圳市国华识别科技开发有限公司 | 终端呼叫方法与系统 |
CN107077287A (zh) * | 2014-12-04 | 2017-08-18 | 谷歌公司 | 启动和切换界面的应用 |
CN107666523A (zh) * | 2016-07-29 | 2018-02-06 | 富士施乐株式会社 | 信息处理设备和信息处理方法 |
CN107871501A (zh) * | 2016-09-27 | 2018-04-03 | Fmr有限责任公司 | 使用智能语音识别的自动化软件执行方法 |
CN108566334A (zh) * | 2018-05-02 | 2018-09-21 | 张昭远 | 基于聊天软件的辅助方法、终端及介质 |
CN108710795A (zh) * | 2018-04-18 | 2018-10-26 | Oppo广东移动通信有限公司 | 信息提示方法、装置、移动终端及存储介质 |
CN109474735A (zh) * | 2017-09-07 | 2019-03-15 | 珠海格力电器股份有限公司 | 一种电子设备的显示方法和电子设备 |
CN110035171A (zh) * | 2018-01-12 | 2019-07-19 | 益富可视精密工业(深圳)有限公司 | 电子设备及操作辅助方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2006015A (en) | 1933-11-28 | 1935-06-25 | Droop Goswin | Smoker's item |
US7023902B2 (en) | 2001-11-06 | 2006-04-04 | Qualcomm Inc. | Apparatus and method for scalable offline CDMA demodulation |
EP1759289A4 (en) * | 2004-04-28 | 2008-08-20 | Fujitsu Ltd | SEMANTIC TASK DATA PROCESSING |
US20130139113A1 (en) | 2011-11-30 | 2013-05-30 | Microsoft Corporation | Quick action for performing frequent tasks on a mobile device |
US20130246920A1 (en) * | 2012-03-19 | 2013-09-19 | Research In Motion Limited | Method of enabling voice input for a visually based interface |
US9729592B2 (en) * | 2013-08-27 | 2017-08-08 | Persais, Llc | System and method for distributed virtual assistant platforms |
US20150067503A1 (en) * | 2013-08-27 | 2015-03-05 | Persais, Llc | System and method for virtual assistants with agent store |
US10671428B2 (en) * | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
DK179343B1 (en) * | 2016-06-11 | 2018-05-14 | Apple Inc | Intelligent task discovery |
KR102374910B1 (ko) * | 2017-08-22 | 2022-03-16 | 삼성전자주식회사 | 음성 데이터 처리 방법 및 이를 지원하는 전자 장치 |
EP3602285A1 (en) | 2017-12-22 | 2020-02-05 | Google LLC. | Dynamically generated task shortcuts for user interactions with operating system user interface elements |
US10599469B2 (en) * | 2018-01-30 | 2020-03-24 | Motorola Mobility Llc | Methods to present the context of virtual assistant conversation |
US11076039B2 (en) * | 2018-06-03 | 2021-07-27 | Apple Inc. | Accelerated task performance |
US11016722B2 (en) * | 2018-09-24 | 2021-05-25 | Salesforce.Com, Inc. | Database systems and methods for conversation-driven dynamic updates |
US11226833B2 (en) * | 2018-11-12 | 2022-01-18 | International Business Machines Corporation | Determination and initiation of a computing interface for computer-initiated task response |
US10964321B2 (en) * | 2018-12-06 | 2021-03-30 | Sap Se | Voice-enabled human tasks in process modeling |
US11307752B2 (en) * | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
US20220284901A1 (en) * | 2019-05-31 | 2022-09-08 | Apple Inc. | Voice assistant discoverability through on-device targeting and personalization |
DK180129B1 (en) * | 2019-05-31 | 2020-06-02 | Apple Inc. | USER ACTIVITY SHORTCUT SUGGESTIONS |
-
2019
- 2019-10-01 US US17/634,519 patent/US12045637B2/en active Active
- 2019-10-01 CN CN201980097694.6A patent/CN114008590B/zh active Active
- 2019-10-01 EP EP19791024.3A patent/EP3827340A1/en active Pending
- 2019-10-01 WO PCT/US2019/054159 patent/WO2021066818A1/en unknown
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060015818A1 (en) * | 2004-06-25 | 2006-01-19 | Chaudhri Imran A | Unified interest layer for user interface |
US20110131513A1 (en) * | 2008-07-30 | 2011-06-02 | Kyocera Corporation | User interface generation apparatus |
CN102279791A (zh) * | 2010-06-11 | 2011-12-14 | 微软公司 | 用户界面清单 |
US20130086481A1 (en) * | 2011-09-29 | 2013-04-04 | Avaya Inc. | System and method for adaptive communication user interface |
KR20130058947A (ko) * | 2011-11-28 | 2013-06-05 | 삼성전자주식회사 | 보조 윈도우 표시 방법 및 이를 지원하는 단말기 |
US20150067531A1 (en) * | 2013-08-30 | 2015-03-05 | Verizon Patent And Licensing Inc. | User-based customization of a user interface |
CN105830150A (zh) * | 2013-12-18 | 2016-08-03 | 微软技术许可有限责任公司 | 基于意图的用户体验 |
CN107077287A (zh) * | 2014-12-04 | 2017-08-18 | 谷歌公司 | 启动和切换界面的应用 |
CN107666523A (zh) * | 2016-07-29 | 2018-02-06 | 富士施乐株式会社 | 信息处理设备和信息处理方法 |
CN107871501A (zh) * | 2016-09-27 | 2018-04-03 | Fmr有限责任公司 | 使用智能语音识别的自动化软件执行方法 |
CN106657625A (zh) * | 2016-12-06 | 2017-05-10 | 深圳市国华识别科技开发有限公司 | 终端呼叫方法与系统 |
CN109474735A (zh) * | 2017-09-07 | 2019-03-15 | 珠海格力电器股份有限公司 | 一种电子设备的显示方法和电子设备 |
CN110035171A (zh) * | 2018-01-12 | 2019-07-19 | 益富可视精密工业(深圳)有限公司 | 电子设备及操作辅助方法 |
CN108710795A (zh) * | 2018-04-18 | 2018-10-26 | Oppo广东移动通信有限公司 | 信息提示方法、装置、移动终端及存储介质 |
CN108566334A (zh) * | 2018-05-02 | 2018-09-21 | 张昭远 | 基于聊天软件的辅助方法、终端及介质 |
Non-Patent Citations (1)
Title |
---|
刘晓倩 等: "移动购物助手用户决策辅助功能的设计", 《第七届和谐人机环境联合学术会议》, 17 September 2011 (2011-09-17), pages 38 - 44 * |
Also Published As
Publication number | Publication date |
---|---|
US12045637B2 (en) | 2024-07-23 |
US20220300307A1 (en) | 2022-09-22 |
WO2021066818A1 (en) | 2021-04-08 |
EP3827340A1 (en) | 2021-06-02 |
CN114008590B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10979373B2 (en) | Suggested responses based on message stickers | |
US10862836B2 (en) | Automatic response suggestions based on images received in messaging applications | |
CN108733438B (zh) | 应用程序与数字助理集成 | |
US10809876B2 (en) | Virtual assistant conversations | |
US20210224474A1 (en) | Automatic grammar detection and correction | |
CN107491295B (zh) | 具有数字助理的应用集成 | |
CN107491284B (zh) | 提供自动化状态报告的数字助理 | |
CN107608998B (zh) | 具有数字助理的应用集成 | |
US10146768B2 (en) | Automatic suggested responses to images received in messages using language model | |
CN107491469B (zh) | 智能任务发现 | |
CN109257941B (zh) | 用于数字助理的同步和任务委派的方法、电子设备和系统 | |
CN108351893B (zh) | 非常规虚拟助理交互 | |
CN113256768A (zh) | 将文本用作头像动画 | |
CN115088250A (zh) | 视频通信会话环境中的数字助理交互 | |
CN115344119A (zh) | 用于健康请求的数字助理 | |
CN110612566B (zh) | 个人信息的隐私维护 | |
EP3959713B1 (en) | Voice assistant discoverability through on-device targeting and personalization | |
CN114008590B (zh) | 使用执行块提供辅助用户界面 | |
CN110574023A (zh) | 脱机个人助理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |