CN107408010A - 由电子设备的用户操纵动态推断软件操作的语音命令 - Google Patents

由电子设备的用户操纵动态推断软件操作的语音命令 Download PDF

Info

Publication number
CN107408010A
CN107408010A CN201680016072.2A CN201680016072A CN107408010A CN 107408010 A CN107408010 A CN 107408010A CN 201680016072 A CN201680016072 A CN 201680016072A CN 107408010 A CN107408010 A CN 107408010A
Authority
CN
China
Prior art keywords
visual elements
voice command
software application
user
sequence
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.)
Pending
Application number
CN201680016072.2A
Other languages
English (en)
Inventor
阿米特·库马尔·阿格拉沃尔
雷蒙德·B·埃西克
萨恰巴拉塔·劳特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google Technology Holdings LLC
Original Assignee
Google Technology Holdings LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google Technology Holdings LLC filed Critical Google Technology Holdings LLC
Publication of CN107408010A publication Critical patent/CN107408010A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0381Multimodal input, i.e. interface arrangements enabling the user to issue commands by simultaneous use of input devices of different nature, e.g. voice plus gesture on digitizer
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • G10L2015/0638Interactive procedures
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Abstract

在电子设备(100)中,一种方法包括监视用户对电子设备的可视元素(122,128,132,134,144,146,147,262,263,510,518,520,526,532,802)的触觉操纵,以确定可视元素操纵序列(352,1084,1924),可视元素操纵序列启动电子设备的至少一个软件应用(216)的操作的第一实例。该方法进一步包括确定与可视元素相关联的属性集(362),以及基于第一可视元素操纵序列和属性集,确定用于操作的命令语法。该方法进一步包括基于命令语法,生成语音命令集(366,1802)以及存储语音命令集。该方法进一步包括从用户接收语音输入(162)并且确定该语音输入表示语音命令集中的语音命令。该方法进一步包括基于语音命令,执行可视元素操纵序列的模拟(370),以启动该操作的第二实例。

Description

由电子设备的用户操纵动态推断软件操作的语音命令
技术领域
本公开通常涉及电子设备的用户操作,更具体地说,涉及用于在电子设备处启动操作的用户语音命令。
背景技术
通常,用户通过操纵呈现给用户的各种可视元素,诸如电子设备的外壳上的物理按钮或开关或经由电子设备的显示屏呈现的虚拟按钮和其他虚拟用户可选元素,与电子设备进行交互。然而,为便于更有效交互,对于经由用户发出的语音命令实现非接触控制,已经进行了尝试。实现该目标的持久障碍是通过电子设备上的一个或多个软件应用,将语音发音精确的转换成适当的交互序列。一种常见方法是提供用于典型的语音命令的语义特定应用编程接口(APIs)。然而,由于在可用的大量软件之间缺少标准化,该方法通常将使用语音命令的用户能力限定到在电子设备上安装的软件应用的非常小的子集。另一常见方法是将预定语音命令手动地映射到一系列操纵事件。该方法受到类似的限制,因为在大规模,特别是假定有大量软件应用以及它们的不同版本上实现是不实际的。这些规模和一致性问题由此妨碍对能够支持多个软件应用的电子设备普遍采用语音控制。
附图说明
通过参考附图,本领域的技术人员可以更好地理解本公开,并且其多个特征和优点将对本领域的技术人员变得显而易见。在不同图中使用相同的参考符号表示类似或相同的项目。
图1是示出根据本公开的至少一个实施例的将语音命令的动态推断用于软件操作的电子设备的图。
图2是示出根据本公开的至少一个实施例的图1的电子设备的示例性硬件实现的图。
图3是示出根据本公开的至少一个实施例的图1的电子设备的示例性系统实现的图。
图4是示出根据本公开的至少一个实施例,通过监视用户触觉操纵可视元素以启动操作的实例,对电子设备处的软件应用的操作动态地推断语音命令集和相应的可视元素操纵序列的方法的流程图。
图5和6是示出根据本公开的至少一个实施例的图4的方法的示例的图。
图7是示出根据本公开的至少一个实施例,通过监视用户操纵可视元素,对跨电子设备上的多个软件应用的操作,动态地推断语音命令集和相应的可视元素操纵序列的方法的流程图。
图8是示出根据本公开的至少一个实施例的图7的方法的示例的图。
图9是示出根据本公开的至少一个实施例,响应来自用户的语音命令,对电子设备处的一个或多个软件应用,执行用于制定操作实例的可视元素操纵序列的模拟的方法的流程图。
图10是示出根据本公开的至少一个实施例,通过分析与软件应用相关联的用户帮助信息,对电子设备处的软件应用的操作,动态地推断语音命令集和相应的可视元素操纵序列的过程的概述的图。
图11和12是一起示出根据本公开的至少一个实施例,基于用户帮助信息,分析用户帮助信息以动态地推断可视元素操纵序列和用于可视元素操纵序列的语音命令集的方法的图。
图13-18是示出根据本公开的至少一个实施例的图11和12的方法的示例的图。
图19是示出根据本公开的至少一个实施例,对于在多个电子设备之间的软件操作,共享动态推断语音命令集和相应的可视元素操纵序列的系统的图。
具体实施方式
下述描述旨在通过提供包含对于电子设备处的软件操作动态推断语音命令的多个具体实施例和细节,传递本公开的全面理解。然而,应理解到本公开不限于这些仅作为示例的具体的实施例和细节,因此,本公开的范围旨在仅受下述权利要求及其等价物限定。进一步理解到,普通技术人员根据已知系统和方法,将认识到取决于具体设计和其他需要,出于旨在目的和利益,可将本公开用于多个替选实施例中。
图1-19示出了动态推断一个或多个语音命令和相应的可视元素操纵序列以启动电子设备处的一个或多个软件应用所进行的操作的示例性技术。在一些实施例中,电子设备监视电子设备处的可视元素的用户操纵来识别由用户执行的可视元素的触觉操纵序列以启动软件操作的实例。从该序列,从与该序列中的可视元素相关联的描述性信息和其他元数据以及从识别替代术语的同义词信息,电子设备生成一个或多个语音命令的语音命令集,当用户说话时该语音命令集触发电子设备模拟相同的可视元素的触觉操纵序列,以便激活软件操作的实例。在一些情况下,操作可以从一个软件应用转变到多个替代应用的任何一个,并且在这些情况下,还可以对利用不同软件应用的操作推断替代版本的语音命令集和可视元素操纵序列。例如,可以监视用户的触觉交互来识别涉及使用相机应用捕捉图像然后经由一个社交媒体应用共享图片的操作。电子设备可以将另一社交媒体应用识别为原始社交媒体应用的替选,并且从其推导单独的语音命令集和触觉操纵序列来模拟使用该另一社交媒体应用来共享捕捉的图片的操作的替代版本。
在其他实施例中,电子设备使用与软件操作相关联的用户帮助信息来识别启动软件操作的可视元素的操纵序列,并且从其生成一个或多个语音命令的语音命令集。当用户发出与该语音命令集匹配的语音命令时,电子设备模拟可视元素的操纵序列来启动软件操作的实例。用来推断语音命令集和相应模拟的可视元素操纵序列的用户帮助信息(在下文中,“帮助信息”)可以包括例如用户帮助web页面、指导视频或其他远程获取的用户帮助信息、电子设备处本地存储的用户帮助信息(例如作为可执行软件应用可访问的帮助数据文件)等。用户帮助信息可以采用文本信号和图形信息的形式,文本信息描述了包含在软件操作中的动作和用户为执行该动作而操纵的可视元素,图形信息诸如为软件应用的屏幕截图、这些动作的注释插图、指导视频等。
此外,在从用户触觉操纵监视或从帮助信息分析,动态地推断语音命令集和相应的可视元素操纵序列后,在一些实施例中,电子设备能经由联网服务,与其他电子设备共享语音命令集和/或可视元素操纵序列。为示例,可以将语音命令集/可视元素操纵序列上传到远程服务器,而其他电子设备可以下载语音命令集/可视元素操纵序列,以在各自的其他电子设备处实现。该下载可以发生为定期更新、部分下载和安装与操作相关联的软件应用(或下载和安装对其的更新)、部分下载和安装操作系统(或下载和安装对其的更新),或以用户主动发生。
基于用户触觉观察或帮助信息分析,动态推断语音命令集和相应模拟的可视元素操纵序列允许对软件操作实现语音命令,而不要求对特定的软件应用,手动生成语音命令或模拟的可视元素操纵序列以及不要求用于语音命令功能性的一致或标准化APIs。同样地,当用户与电子设备交互时或当用户帮助信息的可用性增长时,电子设备的语音命令功能性能够易于扩展。此外,从监视的用户操纵来推断语音命令集产生模仿与软件应用交互以启动操作的用户具体方式的语音命令集和模拟的可视元素操纵,由此为用户提供非接触控制电子设备的更自然和舒服的方式。
图1示出根据本公开的至少一个实施例,实现用于动态推断用于软件操作的语音命令的技术的电子设备100。电子设备100能包括响应以可视元素的触觉操纵为形式的用户输入,执行软件应用的各种设备的任何一个,诸如计算使能的蜂窝电话(“智能电话”)或计算使能的手表(“智能手表”)、平板电脑、笔记本电脑、台式计算机、游戏控制台、个人数字助理(PDA)、车载用户控制系统等。
在至少一个实施例中,电子设备100执行利用用户输入来启动各种操作或操作链的一个或多个软件应用。与常见方法一致,可以以与软件应用相关联、由电子设备100呈现的各种可视元素的用户操作为形式,提供用户输入。这些可视元素可以包括物理用户输入特征,诸如物理按钮、物理开关等,或经由显示器呈现并且用户经由用户输入设备(例如触摸屏、键盘或鼠标)来操作的虚拟输入特征。虚拟输入特征可以包括例如虚拟点击按钮或图标、虚拟填充字段、虚拟下拉列表、单选按钮、复选框等。为启动由一个或多个软件应用执行的操作的实例,用户可以通过触觉来操纵特定序列中并且由电子设备100在一个或多个视图屏幕的特定序列呈现的可视元素,并且该可视元素的触觉操纵的特定序列(本文称为“可视元素操纵序列”)控制一个或多个软件应用(以及底层的操作系统)来启动对应操作的实例。
作为示例,用户可以点击与电子设备100的主视图屏幕上的文本消息传递应用相关联的图标,来发送简短消息传递服务(SMS)消息(操作的一个示例),这导致OS运行程序或将“焦点”转移到文本应用,反过来导致设备的GPU显示文本消息传递应用的主视图屏幕。在该主屏中,用户“点击”“撰写”图标,这反过来触发文本消息传递应用显示具有目的地(“到:”)字段和正文字段的撰写文本视图屏幕,用户可以使用电子设备的物理或虚拟键盘填充这两个字段。撰写文本视图屏幕进一步具有“发送”图标,该“发送”图标触发文本消息传递应用将输入到正文字段中的文本作为SMS消息传送到输入到目的地字段的目的地地址。
当实现激活所需软件操作的实例的目标时,与发出触发软件应用执行相同操作的语音命令相比,用户触觉操纵通常效率更低。然而,对OS或每一软件应用预配置激活相应的操作的语音命令是不现实的,而且也不可能用户努力地直接尝试编程这些语音命令或记住预配置的语音命令,即使这种能力是可用的。因此,为便于更有效非接触控制电子设备100,在至少一个实施例中,电子设备100实现动态语音命令推断过程102以便动态地推断成功激活一个或多个软件应用的相应操作的可视元素操纵序列。该过程还推断一个或多个语音命令的语音命令集,当用户说话时该语音命令集触发电子设备100模拟可视元素操纵序列以便激活对应应用的实例。
如图1所示,动态语音命令推断过程102通常具有四个阶段:操纵序列推断阶段111、语音命令集生成阶段112、语音命令检测阶段113和操纵模拟阶段114。在操纵序列推断阶段111期间,电子设备100确定或推断视图屏幕的特定序列中的可视元素的特定序列,以及可视元素以识别的序列进行操作的方式,以便指示软件应用(或软件应用集)激活对应操作。
电子设备100可以以至少两种方式(或至少那两种方式的组合),推断可视元素操纵序列:操纵监视过程116或帮助信息分析过程118。对于操纵监视过程116,用户与电子设备100的触觉交互用作以哪一序列操纵哪些视图屏幕的哪些可视元素以便激活对应操作的指示。由此,当实现操纵监视过程116时,电子设备100监视一个或多个重复的通过视图屏幕呈现给用户的可视元素的用户触觉操纵,以便学习控制一个或多个软件应用来执行该操作的可视元素操纵序列。
作为示例,为发送电子邮件(操作的一个示例),用户可以导航至OS的主桌面视图屏幕120并且由此在如下位置范围内的一位置处触摸一触摸屏101,在该位置处,电子设备100的GPU显示与电子邮件应用相关联的电子邮件图标122。响应于主桌面视图屏幕120上的该位置处的触摸输入(本文表示为“触觉操纵124”),OS运行呈现撰写邮件视图屏幕126的电子邮件应用。撰写邮件视图屏幕126呈现多个可视元素,包括用于输入目的地电子邮件地址的“到:”字段128、用于输入抄送副本的电子邮件地址的“抄送:”字段130、用于输入所撰写的电子邮件的标题的主题字段132以及信号告知用户已经完成录入撰写邮件视图屏幕126的输入字段的“确认”按钮134。用户在到:字段128的位置范围内的一位置处触摸该触摸屏101并且经由虚拟或物理键盘输入目的地电子邮件地址字符串(本文一起表示为“触觉操纵136”),在主题字段132的位置范围内的一位置处触摸该触摸屏101并且经由键盘输入主题字符串(本文一起表示为“触觉操纵138”),然后在“确认”按钮134的位置范围内的一位置处触摸该触摸屏101(本文表示为“触觉操纵140”)。作为响应,电子邮件应用呈现另一视图屏幕142,包含正文字段144、发送按钮146和取消按钮147。用户在正文字段144的位置范围内一位置处触摸该触摸屏101,并且经由键盘输入正文内容(本文一起表示为“触觉操纵148”),然后在与发送按钮146相关联的位置范围内的一位置处触摸该触摸屏101(本文表示为“触觉操纵150”)。作为响应,电子邮件应用准备具有对应目的地地址字段、主题和正文的电子邮件,并且启动传送该电子邮件。
在观察用户一次或多次执行该序列后,电子设备100推断可视元素操纵序列为:触觉操纵124(在视图屏幕120的位置“A”处的触摸屏接触)->触觉操纵136(在可变长度的字符串输入后,在视图屏幕126的位置“B”处的触摸屏接触)->触觉操纵138(在可变长度的字符串输入后,在视图屏幕126的位置“C”处的触摸屏接触)->触觉操纵140(在视图屏幕126的位置“D”处的触摸屏接触)->触觉操纵148(在可变长度的字符串输入后,在视图屏幕142的位置“E”处的触摸屏接触)->触觉操纵150(在视图屏幕142的位置“F”处的触摸屏接触)。如下所述,该特定操纵序列将用作模拟用户输入的基础,以便在操纵模拟阶段114期间,响应于来自用户的语音命令,自动地激活该操作。在下文中,将参考图4-8,更详细地描述操纵监视过程116。
对于使用帮助信息分析过程118的语音命令推断方法,电子设备100分析出于指示或者帮助用户与相关联的软件应用交互以便执行对应操作的目的而对用户可用的帮助信息160。该帮助信息160可以采用可从远程服务器获得的web页面或其他文档或本地存储的帮助信息(诸如嵌入软件应用本身的帮助信息)的形式。可以以文本描述、屏幕截图或其他图形表示、视频或音频或其组合的形式,呈现帮助信息160。例如,帮助信息160包括描述使用特定的电子邮件应用撰写和发送电子邮件的步骤的web页面,每一步骤具有电子邮件应用的相应视图屏幕的屏幕截图,和描述用户如何操纵在屏幕截图中图示的一个或多个可视元素以启动作为电子邮件撰写操作的一部分的动作的文本或其他图形。由此,电子设备100(或远程服务器)能分析屏幕截图和文本,以识别被操纵以激活软件操作的可视元素,以及可视元素的操纵的序列和每一可视元素的操纵类型。
作为另一示例,帮助信息160能够包括将软件应用的视图屏幕的视频捕捉呈现为指导者与软件应用交互以撰写和发送电子邮件的帮助视频教程或其他指导视频,以及描述与软件应用的交互的指导者的音频录音。在这种情况下,电子设备100(或替选地,远程服务器,如下所述)能从视频提取图像帧(例如,编码视频文件中的I帧)并且分析这些图像帧来识别在该序列中的那一点处操纵的可视元素。此外,使图像帧经受光学字符识别(OCR)过程来提取在视频中提供的任何文本上下文。类似地,能执行话音-文本过程来将指导者的话音转换成文本,能够同样地对该文本进行解析以识别待操纵的可视元素,以及可视元素的操纵类型和操纵序列,以识别与帮助信息160相关联的软件操作。在下文中,参考图10-18,详细地描述帮助信息分析过程118。
在语音命令集生成阶段112中,电子设备100利用识别到的可视元素操纵序列来生成一个或多个语音命令的语音命令集,当用户发声时,该语音命令集将触发电子设备模拟激活操作的实例的可视元素操纵序列。作为该过程的一部分,电子设备100使用与可视元素操纵序列中的可视元素或视图屏幕相关联的描述性信息或其他元数据,以得出用于该操作的基本命令语法。作为示例,使用上述的示例性电子邮件撰写操作,电子设备100可以基于与视图屏幕120,126和142和可视元素122,128,132,144和146相关联的元数据的描述性术语“撰写”、“电子邮件”、“接收者”、“主题”和“正文”,确定“撰写具有主题<subject>和正文<body>的到<recipient>的电子邮件”的基本命令语法。从该基本命令语法,可以使用基本命令语法的术语的变化、基本命令语法中的术语的序列的变化或基本命令语法的其他变化,生成语音命令集的一个或多个语音命令。
作为示例,使用术语的已知同义词,“撰写具有主题<subject>和正文<body>的到<recipient>的电子邮件”的基本命令语法可以导致包括下列的语音命令:“撰写具有主题<subject>和正文<body>的到<recipient>的电子邮件”、“将阐述<body>、具有头部<subject>的电子邮件发送到<recipient>”、“撰写具有正文<body>和主题<subject>的对于<recipient>的电子邮件”等。放在方括号<>中的语音命令的分量表示预期将由用户提供的变量,以作为语音命令的并且专用于语音命令的那一特定实例的一部分。例如,为将具有主题“预订晚餐”的主题的电子邮件发送给john.doe@gmail.com,用户可以以声音发出命令有关预订晚餐的命令“撰写给john.doe@gmail.com的电子邮件”,该命令然后被解析为有关<主题=“预订晚餐”>的语音命令“撰写给<接收者=“john.doe@gmail.com”>的电子邮件”。由此,在操纵模拟阶段114期间使用这些变量以便提供用于相应的可视元素操纵(例如在“选择”到:字段128后,输入字符串)的受欢迎的输入。下文参考图4-8,更详细地描述语音命令集生成阶段112。
使用生成的用于软件操作语音命令集,在语音命令检测阶段113,电子设备100准备接收用于软件操作的语音命令。在该阶段,电子设备100监视表示用户发出的语音命令的语音输入162。然后,电子设备100将语音输入162与语音命令集的语音命令进行比较,以确定语音输入162和语音命令集的语音命令之间是否充分匹配。如果匹配,则电子设备100进入操纵模拟阶段114,此后,电子设备100模拟在阶段111处确定的可视元素操纵序列以便激活软件操作的实例。在一些实施例中,该过程能够包括将用户操纵事件注入到触摸屏101的输出或其他用户输入设备的输出,使得就像用户以所指示的方式触觉地操纵用户输入设备一样来操纵电子设备100的OS和剩余部分。例如,为模拟触摸屏101的位置X的用户的触觉接触,电子设备100的组件可以在触摸屏101的输出处注入信号,以便使其像触摸屏101正报告位置X处的接触。在其他实施例中,模拟被集成在OS或其他软件级,使得由用户对可视元素的触觉操纵触发的动作直接由软件触发,而不需首先模拟来自用户输入组件的输出,使得其像用户的确执行了触觉操纵。
为使用上述撰写电子邮件进行例示并例示出示例性语音命令“撰写具有主题预订晚餐和阐述请致电French Laundry来预订今晚的座位的给john.doe@gamil.com”的电子邮件,电子设备100将因而模拟可视元素操纵序列:在视图屏幕120的位置“A”处的触摸屏接触(触觉操纵124)->在john.doe@gamil.com的字符串输入后,在视图屏幕126的位置“B”处的触摸屏接触(触觉操纵136)->在“预订晚餐”的字符串输入后,在视图屏幕126的位置“C”处的触摸屏接触(触觉操纵136)->在视图屏幕126的位置“D”处的触摸屏接触(触觉操纵140)->在“请致电French Laundry来预订今晚的座位”的字符串输入后,在视图屏幕142的位置“E”处的触摸屏接触(触觉操纵148)->在视图屏幕142的位置“F”处的触摸屏接触(触觉操纵150)。在下文中,更详细地描述操纵模拟阶段114。
图2图示根据本公开的至少一个实施例,电子设备100的实现的框图表示。在所示的示例中,电子设备100包括经由系统互连215耦合的一个或多个处理器205。系统存储器210和永久储存器230也耦合到系统互连215,二者中的每一个能具有相关联的控制器(未示出)。永久储存器230可以包括例如非易失性存储器、硬盘存储器等。在设备上电后并且在设备操作期间,保持在永久储存器230内的软件和/或固件模块能被加载到系统存储器210中,用于由一个或多个处理器205来执行。如所示,系统存储器210能包括多个软件和/或固件模块,包括固件(FW)212、操作系统(OS)214和软件应用216。在一个或多个处理器205执行期间,OS 214和软件应用216生成用于用户界面的GPU指令,该用户界面能被显示为连接的显示器256上的视图屏幕260或显示在视图屏幕260内。至少一些视图屏幕包括用户可选的可视元素262,诸如虚拟按钮、虚拟键盘、图标、图像和文本。如所示,视图屏幕260还能包括用户不可选的附加可视元素263。除上述固件和软件外,并且根据一个或多个实施例,系统存储器210包括共同使得实现本公开的各个方面的多个附加模块。模块能包括话音-文本转换器模块220、自然语言处理(NLP)引擎222、语言翻译器224和视图屏幕内容界面(VSCI)工具225。VSCI工具225通常表示电子设备100的动态语音命令推断功能,并且在下文中,参考图3描述其代表性模块。
尽管被示为系统存储器210内的单独的模块,但能将上述模块的一个或多个组合成单个软件包或应用。例如,VSCI工具225能包括各个不同模块的每一个的所有功能。各种软件和/或固件模块具有当由电子设备100内的一个或多个处理器205或其他处理设备执行其相应的程序代码时提供的变动可能性。
在永久储存器230内示出附加模块,包括用于OS 214和软件应用216的源文件232。这些源文件232包括用于生成视图屏幕234的代码和用于每一个视图屏幕234的视图层次236。视图层次236代表通常包括视图屏幕内的可选和不可选可视元素的文本表示的一个或多个电子文件。视图层次236可以由视图管理器219保持和更新,如图2所示,视图管理器219可以由软件实现,或替选地,实现为诸如GPU 252的一个处理器中的硬编码逻辑。储存器230还包括NLP目录223,并且在至少一个实施例中,包括替代术语数据库238。替代术语数据库238能实现用于替代术语的词库数据库。鉴于下述公开内容,将理解到从替代术语数据库238中选择的替代术语能是接收的文本或词输入(例如转换成文本的话音)的同义词。然而,替代术语还能是接收的输入的反义词,或编码输入或缩短输入的扩展或定义,诸如首字母组缩略词或缩略词。
电子设备100进一步包括一个或多个输入/输出(I/O)控制器240,输入/输出(I/O)控制器240支持一个或多个连接的输入组件242的连接并且处理来自输入组件242的信号,输入组件242诸如为键盘244、麦克风246和触觉组件248(例如鼠标或图2的触摸屏101)。I/O控制器240还支持到一个或多个连接的输出组件的连接并且转发输出组件的输出信号,输出组件诸如为监视器或显示器256或音频扬声器258。显示器控制器250,能包括图形处理单元(GPU)252,控制对显示器256的访问。在一个或多个实施例中,显示器控制器250能是具有内置GPU 252的图形卡。然而,如进一步所示,在至少一个实施例中,相反,GPU 252被集成到包括一个或多个处理器205的处理器芯片或块上。应认识到各个实施例内所述的显示器256能是被配置为用作显示外围设备的显示器,显示外围设备需要电缆或其他连接到生成或提供呈现在显示器256上的图像/屏幕数据的单独的电子设备的形式。替选地,显示组件能是实际电子设备的集成部分,诸如平板电脑、智能电话和单一集成个人计算系统使用的液晶显示器(LCD)屏。
电子设备100进一步具有使电子设备100与位于电子设备100外部的其他设备、服务和组件通信或者交互的网络接口组件(NIC)265。这些设备、服务和组件能使用一个或多个通信协议,经由诸如局域网(LAN)或广域网(WAN)(例如互联网)的外部网络与电子设备100交互。电子设备100还能包括使电子设备100与一个或多个无线网络通信的一个或多个无线网络接入组件280。这些无线网络接入组件280的示例包括无线局域网(WLAN)接入点、蓝牙(触觉操纵)收发器、红外收发器、近场通信(NFVI2)收发器等。
图3示出VSCI执行环境300的示例性实施例,在该VSCI执行环境300内,能实现本公开的各个功能特征。VSCI执行环境(VSCI EE)300包括通过方向箭头互连的先前在图2中介绍过的若干组件。根据示例性实施方式,提供这些方向箭头来大体识别输入数据、操作代码、组件之间的通信和处理顺序的方向流。将认识到在替选实施例中,能实现不同的处理顺序,包括省略一些顺序步骤和增加其他顺序步骤。
如左上角所示,VSCI EE 300从音频输入源310接收音频输入312(图1的语音输入162的一个实施例),音频输入源310表示发出能由与支持VSCI EE 300的电子设备200相关联的音频输入组件捕捉的术语、短语或语句的用户。音频输入312由通常代表示例性音频输入组件的麦克风246来接收。
将接收的话音输入转发到能包括话音-文本转换器模块220的话音合成器320。话音-文本转换器模块220能与语言翻译器224通信地链接或相关联。当接收的话音输入为如由语言识别工具(未示出)确定的、与VSCI EE 300使用其处理下游操作的母语不同的语言时,话音-文本转换器模块220访问语言翻译器224,以在完成将接收到的话音输入转换成文本前,实现将接收到的话音输入转换成VSCI EE 300的母语。话音合成器320生成文本322以作为其输出,并且该输出被转发到NLP引擎222。NLP引擎222在NLP目录223内搜索与接收为输入的文本322类似的可识别词、术语或文本序列。在一个或多个实施例中,NLP引擎222包括关键字提取器模块328,其能从包含多个词或不同文本序列的接收到的输入文本322中提取一个或多个关键字。在一个或多个实施例中,关键字提取器模块328能从较长词列表或文本序列中删除诸如“和”或“或”的连词,和/或能去除诸如“该”和“一”的冠词,和/或其他常用词。
在一些实施例中,由NLP引擎222识别的术语或文本序列324能被转发到替代术语数据库238,以识别与根据接收到的输入文本而识别到的词共同相关联的同义词。然后,除识别到的术语外,替代术语数据库238然后将待利用的一个或多个替代术语326提供为被输入到VSCI工具225的字符序列330。在一个替代实施例中,仅当在视图层次236内未找到匹配的文本表示时,VSCI工具225将字符序列转发到替代术语数据库238。在一个实施例中,可以在远程服务器325处实现替代术语数据库238,并且还可以在VSCI EE 300内支持对该实例中的替代术语数据库238的访问。
如所示,(在NLP目录223处)确定的字符序列330被转发到VSCI工具225,其包括如稍后更详细所述的用于执行用于语音命令推断和可视元素操纵模拟的过程的功能模块。为此,VSCI工具225包括操纵监视器模块340、帮助信息分析模块342、属性提取器模块344、语音命令生成器模块346、操纵模拟器模块348和命令映射器模块350。在VSCI工具225实现操纵监视过程116(图1)以确定可视元素操纵序列的情况下,是操纵监视器模块340完成此过程,操纵监视器模块340根据监视用户经由用户输入组件242与电子设备100的交互,生成可视元素操纵序列352。替选地,在VSCI工具225实现帮助信息分析过程118(图1)的情况下,是帮助信息分析模块342完成此过程,帮助信息分析模块342通过分析与相应的软件应用相关联的帮助信息,生成可视元素操纵序列352。该帮助信息可以包括例如本地帮助信息354(例如,存储在永久储存器230中)并且采用嵌入软件应用或者与软件应用集成的数据文件或其他数据结构的形式。替选地,帮助信息可以包括从远程服务器358获取的帮助信息356,诸如经由互联网,从远程服务器358获取的帮助web页面或流媒体帮助视频。
过程116和118均依赖于识别与执行相应的操作的一个或多个软件应用相关联的视图屏幕中的可视元素。操纵监视器模块340识别由用户操纵的以启动操作的用户可选可视元素,并且根据这些识别的可视元素和它们的操纵序列,得出可视元素操纵序列352。帮助信息分析模块342识别在分析的帮助信息中引用的用户可选可视元素,以及描述用户可选可视元素的操纵的引用顺序和方式,以得出可视元素操纵序列352。由此,为便于识别和分析可视元素,在至少一个实施例中,VSCI工具225从视图管理器219(图2)检索包含目前在视图屏幕260上至少显示的可选可视元素262的布局的文本表示的电子文件。GPU 252在生成在屏幕260内呈现的用户界面218前,从储存器230加载视图层次236的电子文件。如所示,在视图层次236内包括的或与之相关联的是描述在屏幕260上呈现的每一可视元素以及该可视元素的位置和属性的文本表示360。然后,取决于可视元素操纵序列的生成模式,视图管理器219将文本表示360转发到用户操纵监视器模块340或帮助信息分析模块342,以使用下文所述的技术生成可视元素操纵序列352。
可视元素操纵序列352被转发到属性提取器模块344、语音命令生成器模块346和操纵模拟器模块348。属性提取器模块344使用可视元素在可视元素操纵序列352中的元数据和其他文本表示以确定用于可视元素的一个或多个相关属性362,诸如用于响应于可视元素操纵序列352的可视元素的用户操纵而采取的动作的描述性属性。根据属性362和在可视元素操纵序列352中表示的操纵序列,语音命令生成器模块346生成语音命令集366,语音命令集366包括被用来通过VSCI工具225而触发软件应用操作的激活的一个或多个语音命令。然后,可使该语音命令集366可用于命令映射器模块350。
命令映射器模块350经由根据用户语音输入而生成的字符序列330,监视用户的语音输入,以确定来自用户的语音输入是否表示语音命令集366中的一个语音命令。为此,命令映射器模块350将字符序列330与语音命令集366的语音命令进行比较以确定是否充分匹配。如果充分匹配,则命令映射器模块350将命令匹配368信号告知操纵模拟器模块348。
响应于命令匹配368,操纵模拟器模块348执行可视元素操纵序列352的模拟370。通过将模拟的触觉操纵注入用户输入组件242的输出,执行该模拟,使得该模拟对OS 214和软件应用216来说是透明的,或通过将触觉操作直接信号告知OS 214或软件应用216。在至少一个实施例中,语音命令可以包括专用于语音命令的实例(诸如,识别用于撰写电子邮件的语音命令中的目的地电子邮件地址)的变量,由此,操纵模拟器模块348可以从字符序列330识别相应的变量,并且将这些变量的表示提供为触觉操纵的模拟序列中的适当点处的模拟的用户触觉输入。在下文中,详细地描述这些过程。
图4示出根据至少一个实施例,用于实现动态地推断包含在单个软件应用216(图2)内的、用于软件操作的语音命令集和相应的可视元素操纵序列的操纵监视过程116(图1)的方法400。为便于示例,在上文参考图2和3所述的电子设备100的实施方式的示例性场境中,描述方法400。此外,为便于理解,简化图4的流程图。尽管描述了步骤的特定顺序,但取决于实施方式或设计目标,可以重新排序、重复或省略单个步骤。
响应于指示用户已经操纵或很快将要操纵电子设备100以执行特定软件操作的触发401,启动方法400。由此,触发401可以包括例如触发执行软件应用216的用户操作、启动感兴趣的预先识别的操作的用户操纵等。例如,VSCI工具225可以确定丢失属于特定软件应用的用于操作的语音命令集,由此,当用户选择用于软件应用的图标以触发该软件应用的执行时,VSCI工具225可开始监视用户的操纵。如另一示例,VSCI工具225可以确定其不具有用于在软件应用的主屏处发现的用户可选可视元素的语音命令集,由此当用户操纵该可视元素时,VSCI工具利用该机会来开发与可视元素相关联的操作,由此可以开始监视用户的操纵。在又一实施例中,VSCI工具225可以继续监视用户对可视元素的操纵,并且分析可视元素操纵流来识别用户进行的以某种频率重复的特定序列,并且由此将可视元素操纵的特定序列识别为不同的软件操作。
有时,软件操作将包含用户导航由软件应用216或OS 214呈现的视图屏幕的序列。因此,在块402,操纵监视器模块340与显示器控制器250和视图层次236交互来识别通过软件应用216或OS 214,呈现给用户的当前视图屏幕260。在块404,用户操纵监视器模块340通过监视用户输入组件242,确定用户提供可视元素的触觉操纵,由此用户操纵监视器模块340与显示器控制器250和视图屏幕260交互以识别由用户操纵的可视元素和操纵可视元素的方式。作为示例,为选择在当前视图屏幕260中呈现的点击图标,用户可以在位置(X,Y)处触摸触摸屏101(图1)。用户操纵监视器模块340可以从触摸屏101接收该位置(X,Y)并且访问视图层次236以识别在当前视图屏幕260中与位置(X,Y)相关联的可视元素。除识别可视元素本身外,用户操纵监视器模块340可以确定可视元素的类型(例如,“可点击”图标、下拉列表、字符输入字段等)和用户操纵可视元素的方式(例如通过触摸该触摸屏101上的特定点、通过物理或虚拟键盘输入字符串,使光标定位在特定位置然后实施左击鼠标或右击鼠标等)。
在块406,用户操纵监视器模块340将在块404检测到的可视元素操纵记录在为目前正由用户执行的软件操作构成的可视元素操纵序列352中。该可视元素操纵可以被记录为检测到的特定触觉操纵(例如,用户接触触摸屏的位置(X,Y))并且可以被指定在反映用户操纵可视元素以激活软件操作的顺序中的位置的序列号。此外,可以使用可视元素操纵来记录可视元素的其他特征,诸如可视元素的类型、标识符或其他元数据,以及有关可视元素的操纵的其他信息,诸如作为操纵的一部分用户输入变量的指示。
在块408,属性提取器模块344确定用于识别软件操作中的可视元素的动作或其他作用的可视元素的一个或多个属性。在至少一个实施例中,可视元素的属性可以包括从可视元素的文本描述获得的描述性属性,经由视图管理器219或GPU 252,属性提取器模块344从视图层次236的文本表示360来获取可视元素的文本描述。例如,电子邮件应用可以包括在其主屏上并且被用来启动电子邮件撰写过程的“撰写电子邮件”图标。电子邮件应用可以对其图标的文本描述为“撰写电子邮件”的撰写电子邮件图标提供元数据,并且由此,属性提取器模块344可以将可视元素识别为具有“撰写”“电子邮件”和“撰写电子邮件”的描述性属性。
在块410,用户操纵监视器模块340确定在块404检测到的可视元素的用户操纵是否表示用户实施的操作结束。可以通过下列方式信号告知操作结束:通过退出、挂起或终止执行软件应用216,通过在没有用户提示的情况下(例如在用户选择“发送电子邮件”图标后,显示屏提供已经成功地传送电子邮件的确认时)视图屏幕之间的转变,转变回OS的主屏或其他视图屏幕,或当所选的可视元素具有操作的最后动作的指示——诸如与具有如“发送”、“结束”、“退出”等描述的元数据相关联。
取决于视图屏幕的结构和软件操作,特定视图屏幕可以具有用户操纵的多个可视元素。作为示例,被用来撰写电子邮件的视图屏幕可以具有用于目的地地址、任何抄送:地址、主题、消息正文、改变电子邮件的优先级的图标、修改格式的图标等的多个输入字段。因此,如果在块410,操纵监视器模块340未检测到操作结束,在块412,操纵监视器模块340确定如在块404检测到的可视元素的用户操纵是否触发软件应用216呈现不同的视图屏幕。如果是,方法400返回到块402以识别下一视图屏幕并且继续监视下一视图屏幕中的一个或多个可视元素的用户操纵。否则,如果在用户操纵可视元素后,软件应用216仍留在同一视图屏幕上,方法400返回到块404一继续监视同一视图屏幕中的一个或多个可视元素的用户操纵。
返回到块410,如果检测到操作结束,则方法400进行到语音命令集生成阶段112(图1)。然而,如由块413表示,在启动语音命令生成前,VSCI工具225可以选择监视用户执行软件操作的一个或多个附加迭代,以便确认对软件操作所识别的可视元素操纵序列352是准确的,或以便识别可导致激活同一软件操作的可视元素操纵序列352中的任何变化(例如,在一些实例中,用户在填充“到:”字段前,填充电子邮件消息的正文字段,而在其他实例中,用户在填充正文字段前,填充“到:”字段)。此外,尽管一个或多个监视迭代,225可以识别要求哪些可视元素操纵来激活相应的软件操作,以及哪些可视元素操纵(如果有的话)是可选的。例如,为撰写文本消息,对文本消息合成操作,要求用户操纵“撰写消息”图标,可以在“抄送:”字段中输入目的地地址可以被识别为可选操纵,因为其在一个或多个监视迭代中是缺失的。
在执行由块402-412表示的过程的一个或多个迭代后,方法400转变到语音命令集生成阶段112。将认识到可视元素操纵序列352表示在由可视元素操纵序列352表示的软件操作内的一系列命令动作及其对应输入。作为示例,选择文本消息传递应用中的“撰写消息”图标表示“撰写文本消息”的命令动作,选择“到:”字段并且输入另一用户的地址X表示“识别接收者为X”的命令动作,以及选择消息正文字段和输入字符串Y表示“识别消息的正文为Y”。因此,在块414,语音命令生成器模块346使用可视元素操纵序列352和在块402-412生成的属性元数据,来识别这些命令动作并且确定代表命令动作的和当发出用于软件操作的语音命令时将由用户说出的一个或多个命令术语。
为使用上述示例来示例,由用户操纵以启动文本消息撰写的可视元素可以具有“发送消息”的描述性文本元数据,由此,用于启动文本消息撰写的基本命令术语将是“发送消息”。由用户操纵以输入目的地地址的可视元素可以具有“到:”的描述性文本元数据,由此,用于输入目的地地址的基本命令术语能被识别为“到”。由用户操纵以输入消息正文的可视元素可以具有“消息陈述”的描述性文本元数据,由此用于输入消息正文的基本命令术语能被识别为“陈述”(其中,在该示例中“消息”术语组件被识别非描述性的,由此被属性提取器模块344忽略)。
由于大多数语言使用具有非常类似含义的多个词,在一些实施例中,由属性提取器模块344识别的基本命令术语能被转发到替代术语数据库238来识别与每一识别的命令术语通常相关联的同义词,相对于基本命令术语,这些同义词在本文中被识别为“替代术语”。作为示例,可以将基本术语“撰写”识别为“发送”、“准备”、“创建”或“生成”的替代术语。同样地,命令术语“到”可以具有替代术语“对于”。
使用可视元素操纵序列352和命令术语,在块416,语音命令生成器模块346确定表示该操作的语音命令语法。语音命令语法提供用户如何描述动作、与命令动作相关联的变量以及当给出表示动作的语音命令时动作的顺序的基本表示。如上所述,根据对操纵的可视元素而确定的描述性元数据,识别命令动作,根据可视元素类型(例如,“可点击”、字符串输入、复选框等),识别输入,以及根据可视元素操纵序列352中的操纵顺序,识别基本序列。为使用上述文本消息传递示例进行例示,可以将语音命令语法识别为“撰写陈述<消息正文>、到<目的地地址>的消息”。
在块418,语音命令生成器模块346根据语音命令语法、命令术语及它们的替代术语生成语音命令集366。语音命令集366包括由用户说出来以激活软件操作的一个或多个语音命令。为此,基于语音命令语法的排列和用于该语音命令语法中的命令术语的替代术语,生成语音命令。例如,使用对于命令术语“撰写”的替代术语“发送”或“准备”和对于命令术语“陈述”的替代术语“说”,根据基本语音命令语法“撰写陈述<消息正文>、到<目的地地址>的消息”的基本语音命令语法生成的语音命令集346可以包括:(1)“撰写陈述<消息正文>、到<目的地地址>的消息”;(2)“将陈述<消息正文>的消息发送到<目的地地址>”;(3)“将表明<消息正文>的消息发送到<目的地地址>”;(4)“撰写表明<消息正文>、到<目的地地址>的消息”;(5)“准备陈述<消息正文>、到<目的地地址>的消息”;(4)“准备表明<消息正文>、到<目的地地址>的消息”。
此外,语音命令生成器模块346可以协调NLP引擎222来识别对于同一命令的术语用户说出的替代序列。例如,尽管可以基于对于文本消息用户指定的目的地地址来判定基本语音命令语法,但是在消息正文后,用户反而可以指定目的地地址。由此,语音命令生成器模块346可以基于命令动作的这些替代序列,生成语音命令。例如,在语音命令集366的语音命令中,可以将“撰写陈述<消息正文>、到<目的地地址>的消息”的基本语音命令语法重新排列为“撰写对于<目的地地址>陈述<消息正文>的消息”。可以执行基于该重新排列的序列内的替代术语,生成用于语音命令集366的替代语音命令的过程。
然后,语音命令生成器模块346将生成的语音命令集366存储在电子设备100处,供命令映射器模块350处理用户语音输入时使用,以检测潜在的语音命令。可以将语音命令集366存储在例如系统存储器210(图2)或永久储存器230(图2)中,并且可以由各种数据结构,或数据结构的组合表示语音命令集366。作为示例,可以将语音命令集366的每一语音命令存储为语音命令表内的单独的条目。替选地,基本语音命令语法及其替代排列分别可以被存储为单独的条目,以及对于基本语音命令语法中的命令术语的替代术语及其替代排列(包括识别哪些命令术语表示可选用户操纵,如果有的话)可以被存储为当命令映射器模块350分析所选基本语音命令语法时引用的单独的表。
图5和6示出根据至少一个实施例,由图4的方法400表示的操纵序列推断阶段111和语音命令集生成阶段112的特定示例。对于下文,软件操作是撰写和发送文本消息传递的操作。初始地,OS 214提供表示OS 214的主要,或“主”屏(被标识为视图屏幕“OS_Home_1”)的视图屏幕500。如所示,视图屏幕500包括图标矩阵,每一图标表示当用户触摸对应于与该图标相关联的位置的范围、在触摸屏101上的位置时,由OS 214运行的对应的软件应用。图标502表示文本消息传递应用,由此,当用户在与图标相关联的范围内的一位置(X1,Y1)处触摸触摸屏101时(触觉操纵503),OS 214启动执行文本消息传递应用。操纵监视器模块340检测到触觉操纵503,并且作为响应,属性提取器模块344访问视图层次236来识别操纵的可视元素(被标识为“TXT_MSG_LAUNCH”)、可视元素的元数据(文本描述“Text Messaging”以及操纵可视元素的方式(“可点击”)。由此信息,操纵监视器模块340生成可视元素操纵序列中的初始条目504。
当运行时,文本消息传递应用呈现表示文本消息传递应用的主屏的视图屏幕506(被标识为视图屏幕“TM_1”)。在该示例中,主屏呈现最近联系人的列表508和“撰写文本”图标510。用户通过在对应于与图标510相关联的位置的范围内的一位置的位置(X2,Y2)处接触触摸屏101,点击图标510(被识别为触觉操纵512)。操纵监视器模块340检测到触觉操纵512,并且作为响应,属性提取器模块344访问视图层次236以识别操纵的可视元素(被标识为“NEW_MSG”)、可视元素的元数据(文本描述“New message”)及操纵可视元素的方式(“可点击”)。由此信息,操纵监视器模块340生成可视元素操纵序列中的第二条目514。
用户对图标510的操纵512触发文本消息传递应用呈现表示撰写消息屏的视图屏幕516(被标识为视图屏幕“TM_2”)。当呈现该视图屏幕516时,用户触摸对应于与“到:”字段518相关联的的位置的范围内的一位置的在触摸屏101上的位置(X3,Y3),然后使用视图屏幕516中的虚拟键盘520来输入目的地地址(操纵组合被标识为触觉操纵522)。操纵监视器模块340检测到触觉操纵522,并且作为响应,属性提取器模块344访问视图层次236以识别操纵的可视元素(被标识为“TO_FIELD”)、可视元素的元数据(文本描述“到:字段”)及操纵可视元素的方式(字符串输入)。由该信息,操纵监视器模块340生成可视元素操纵序列中的第三条目524。
在操纵“到:”字段518后,用户触摸对应于与“正文:”字段526相关联的位置的范围内的一位置在触摸屏101上的位置(X4,Y4),然后使用虚拟键盘520来输入消息正文(操纵组合被识别为触觉操纵528)。操纵监视器模块340检测到触觉操纵528,并且作为响应,属性提取器模块344经由GPU 252,访问视图层次236以识别操纵的可视元素(被标识为“BODY_FIELD”)、可视元素的元数据(文本描述“Type Message”)及操纵可视元素的方式(字符串输入)。由此信息,操纵监视器模块340生成可视元素操纵序列中的第四条目530。
在撰写完消息正文后,用户触摸对应于与视图屏幕516的“发送消息”图标532相关联的位置的范围内的一位置在触摸屏101的位置(X5,Y5)(触觉操纵534)。操纵监视器模块340检测到触觉操纵534,并且作为响应,属性提取器模块344访问视图层次236以识别操纵的可视元素(被标识为“SEND_MSG”)、可视元素的元数据(文本描述“Send Message”)及操纵可视元素的方式(可点击)。由此信息,操纵监视器模块340生成可视元素操纵序列中的第五条目536。
用户对发送消息图标532的操纵触发文本消息传递应用生成文本消息并且将其传送到在“到:”字段518中提供的目的地地址,其中该文本消息具有在正文字段526中提供的消息正文。作为成功传送文本消息的结果,文本消息传递应用呈现将文本消息示出为被发送的视图屏幕538。由此,用户按压在电子设备100的壳体上的“主”物理按钮540(触觉操纵542),这触发OS 214终止或挂起文本消息传递应用并且返回呈现OS主屏(视图屏幕500)。操纵监视器模块340检测到触觉操纵542,并且由其本质(终止或挂起文本消息传递应用),操纵监视器模块340确定软件操作的当前实例已经结束,由此停止监视对于软件操作的用户触觉操纵。
由此,通过终止该操作,操纵监视器模块340已经生成具有操纵条目序列504、514、524、530和536的可视元素操纵序列。该操纵消息通常表示序列:“接触视图屏幕OS_HOME_1的位置(X1,Y1)->接触视图屏幕NEW_MSG的位置(X2,Y2)->接触视图屏幕TM_2的位置(X3,Y3)->字符串输入->接触视图屏幕TM_2的位置(X4,Y4)->字符串输入->接触位置(X5,Y5)”。类似地,在该序列中操纵的可视元素的文本描述通常被表示为“文本消息传递”->“新消息”->“到”<目的地地址>->“消息正文”-><消息正文>。由此,语音命令生成器模块346可以确定基本语音命令语法“到<目的地地址>的、具有正文<消息正文>的新文本消息”。语音命令生成器模块346还可以与替代术语数据库238或NLP目录223中的一个或两者交互,以识别对于命令术语的替代术语,诸如通过将“撰写”和“草拟”识别为命令术语“新”的替代以及将“陈述”、“阅读为”或“表明”作为命令术语“正文”的替代。根据该基本语音命令语法和这些替代术语的各种排列,语音命令生成器模块346可以确定语音命令集:(1):“到<目的地地址>、具有正文<消息正文>的新文本消息”;(2):“撰写到<目的地地址>、具有正文<消息正文>的文本消息”;(3):“草拟到<目的地地址>、具有正文<消息正文>的文本消息”;(4):“草拟到<目的地地址>、陈述<消息正文>的文本消息”;(5):“撰写到<目的地地址>、表明<消息正文>的文本消息”等。
由用户激活的软件操作可以跨多个软件应用。作为示例,用户可以使用相机应用捕捉图片,然后使用社交媒体应用,与其他用户共享图片。在涉及软件操作中的软件应用不改变的情况下,那么上述参考图4的方法400的过程足够准确地捕捉和特征化用于软件操作的语音命令集和可视元素操纵序列,即使涉及两个或以上软件应用。然而,在一些实例中,用户可以从多个替代的软件应用中进行选择,以整体上实现软件操作内的一个或多个动作。作为示例,在使用相机应用捕捉图片后,用户可以选择使用在电子设备100处的多个社交媒体应用的任何一个来共享图片。尽管对相机应用和对应的一个社交媒体应用的每一排列,能确定单独的可视元素操纵序列和语音命令集,但这要求用户使用相机应用和社交媒体应用的相应组合来实施软件操作的实例。如果用户很少使用特定的社交媒体应用,VSCI工具225非常可能对于该特定社交媒体应用无法不支持语音命令功能。
图7-9示出确定用于软件操作的语音命令集和可视元素操纵序列的方法700和相应的示例,该软件操作跨多个软件应用并且具有使用不同的软件应用实现一个或多个动作的多个选项。为便于理解,简化图7的流程图。当描述步骤的特定顺序时,取决于实施方式或设计目标,可以重新排序、重复或省略各个步骤。
如上参考图4的方法400的块401所述,通过检测到指示用户开始使用电子设备100以激活软件应用的触发,方法700在块701开始。在这种情况下,软件操作跨多个软件应用,由此,在块702,操纵监视器模块340识别涉及软件操作的初始软件应用。可以经由例如用户操纵以启动或恢复执行软件应用的图标来识别初始软件应用。在块704,操纵监视器模块340监视初始软件应用中用户对可视元素的操纵,并且将检测到的可视元素操纵记录在可视元素操纵序列中,如上参考方法400的块402-413所述。
用于指定操作的一个软件应用与下一软件应用之间的转变通常由用户操纵表示该转变的桥接元素触发。桥接元素是在一个软件应用的场境中显示的、提醒用户选择对于与目前在初始软件应用中提供的功能有关的一些功能使用另一软件应用的可视元素。在一些实施例中,在OS 214的框架内提供该桥接元素。作为示例,当OS 214检测到在用户与软件应用的当前交互中涉及媒体文件时,OS可以显示“共享”图标,当用户选择“共享”图标时,触发OS 214呈现具有能够将媒体文件传送到其他用户或将媒体文件存储在远程目的地处的一个或多个软件应用的菜单的视图屏幕。在其他实施例中,在当前软件应用的框架内提供桥接元素。作为示例,软件应用可以是一系列相互关联的软件应用中的一个,并且例如对媒体文件的涉及可以触发初始软件应用呈现共享图标,该共享图标可由用户来选择以呈现用于相对于该媒体文件能够提供进一步功能的该系列中的一个或多个其他软件应用的图标。在任一示例中,“共享”图标和后续菜单可以单独地或一起构成初始软件应用和下一软件应用之间的桥接元素。
当对桥接元素的操纵信号告知在所执行的操作内的软件应用之间的转变时,在块706,操纵监视器模块340确定用户正操纵的可视元素是否为桥接元素。如果操纵的可视元素为桥接元素,在块708,操纵监视器模块340识别在操纵桥接元素后由用户选择的下一软件应用,然后,以上述参考方法400的块402-413所述的方式,监视用户在该下一软件应用中执行的用户触觉操纵。此外,在块710,操纵监视器模块340确定由用户操纵的可视元素是否指示正监视的操作的结束。如果不是,对当前的软件应用持续对用户活动的监视,以及在软件应用跨三个以上软件应用的情况下持续监视任何后续软件应用中的任何用户活动。
返回到块706,如果被操纵的可视元素被识别为桥接元素,在块712,属性提取器模块344从GPU 252访问视图层次236,以识别操纵的桥接元素、桥接元素的元数据及操纵桥接元素的方式。由该信息,在块714,操纵监视器模块340相对于由桥接元素表示的动作识别呈现为选项或替代的软件应用。为使用上述媒体文件共享示例进行例示,用户选择OS框架中的共享图标可以触发OS显示具有应用图标列表的视图屏幕。这些应用图标的每一个具有到对应软件应用的函数调用,并且进一步具有识别软件应用的文本描述。由该元数据,操纵监视器模块340可以识别被提供为用于共享媒体文件的选项的软件应用。
当操纵监视器模块340监视用户的操纵,以使用与桥接元素相关联的替代的软件应用中的一个实现软件操作的特定版本时,产生的可视元素操纵序列仅表示对该特定实例执行的可视元素操纵。然而,通过所识别的替代的软件应用,在块716,操纵监视器模块340能生成可视元素操纵序列的替代版本,每一替代版本针对用户已经选择的替代软件应用中的一个。作为示例,如果相机应用提供经由电子邮件应用或文本消息传递应用中的一个来共享图片的选项,并且监视的用户活动涉及用户选择电子邮件应用,则可视元素操纵序列表示相机应用-电子邮件应用序列。然而,操纵监视器模块340能使用可视元素操纵序列来生成表示用户选择文本消息传递应用的替代版本。
如果操纵监视器模块340先前已经分析过替代软件应用以便生成用于替代软件应用的相关功能的可视元素操纵序列,操纵监视器模块340能通过将表示用户采取的动作的可视元素操纵序列的初始片段拼接在一起,生成可视元素操纵序列的替代版本,而在第一软件应用中具有对应于将在替代软件应用中遵循的功能的先前生成的可视元素操纵序列的片段。作为示例,假定原始可视元素操纵序列具有对应于在相机应用中采取的以捕捉图像的用户触觉操纵的初始片段,以及对应于在电子邮件应用中采取的以撰写将图片包括为附件的电子邮件的用户触觉操纵的后续片段。如果存在具有表示在文本消息传递应用中采取的以把媒体文件附件并且将该媒体文件作为文本消息发送的用户触觉操纵的片段的另一可视元素操纵序列,操纵监视器模块340能通过用属于文本消息传递应用的其他可视元素操纵序列的后续片段替换属于电子邮件应用的原始后续片段,创建专用于文本消息传递应用的原始可视元素操纵序列的替代版本。
在替代软件应用的功能还没有被渲染成可视元素操纵序列的情况下,操纵监视器模块340能生成在这种情况下尽可能执行软件操作的原始可视元素操纵序列的替代版本。为使用上述示例进行例示,在之前还未评价文本应用的情况下,可视元素操纵序列的替代版本能包括与图片捕捉有关的初始片段,因此,操纵片段表示对与文本应用相关联的图标的用户触觉操纵,但没有再进一步。在这些实例中,因此,期望用户使用触觉输入完成软件操作。
通过确定可视元素操纵序列的原始版本及用于在桥接元素中呈现的一个或多个替代软件应用的一个或多个替代版本,在块718,语音命令生成器模块346生成用于可视元素操纵序列的所选版本的基本语音命令语法,并且在块720,语音命令生成器模块346根据如上参考图4的方法400的块414,416和418所述的过程,生成并存储用于可视元素操纵序列的可选版本的语音命令集。由此,可以对可视元素操纵序列的每一版本,重复块718和720的过程。根据方法700的结果,监视并且分析用于激活在第一软件应用和第二软件应用之间进行桥接的软件操作的一个实例的用户与电子设备100的交互,以不仅生成能对该特定实例模拟的语音命令集和可视元素操纵序列,而且生成能对涉及非第二软件应用的另一软件应用的操作的其他实例模拟的语音命令集和可视元素操纵序列。由此,可以推断语音命令集和模拟的可视元素操纵序列,而不必实际观察用户精确地执行相同的可视元素操纵序列。
图8示出根据图7的方法700,在软件操作期间使用桥接元素在软件应用之间进行转变的示例。在图示的示例中,用户已经利用相机应用(被标识为“APP1”)来捕捉图片,响应于此,相机应用将捕捉的图像呈现为视图屏幕800(被标识为“S_1”)的一部分。在顶部边界,视图屏幕800包括表示相对于捕捉的图片可以采用的功能的一组图标,其中一个包括表示能将捕捉到的图像传送到其他用户或远程存储位置的共享功能的共享图标802。用户触摸位置范围内,对应于与共享图标802相关联的范围内的一位置的在触摸屏101上的位置(X1,Y1)(触觉操纵804)。用户操纵监视器模块340检测到触觉操纵804,并且作为响应,属性提取器模块344访问视图层次236以识别操纵的可视元素(被标识为“SHARE_PICTURE”)、可视元素的元数据(文本描述“Share Picture”)及操纵可视元素的方式(“可点击”)。由此信息,操纵监视器模块340生成用于正被监视的软件操作的可视元素操纵序列中的条目806。
响应于用户选择共享图标802,GPU 252呈现视图屏幕808(被标识为“S_2”),并且视图管理器219相应地更新视图层次236。视图屏幕808呈现用于共享图片的软件应用选项的列表。可以在OS框架的场境中,呈现该列表,即,可以由OS 214填充列表,并且OS 214可以维护将图片文件从该相机应用传送到从该列表中选择的另一软件应用。替选地,可以在相机应用框架的场境中,呈现该列表,即,相机应用可以根据由相机应用预先识别的软件应用填充该列表。从列出的应用中,用户选择用于共享图片的WhatsApp(TM)应用,由此用户触摸对应于在列表中用于WhatsApp(TM)应用的位置的范围内的一位置的在触摸屏101上的位置(X2,Y2)(触觉操纵810)。用户操纵监视器模块340检测触觉操纵810,并且作为响应,属性提取器模块344访问视图层次236以识别操纵的可视元素(被标识为具有所选列表项“WHATSAPP”的应用列表“APP_LIST”)、可视元素的元数据(文本描述“媒体发布应用”)及操纵可视元素的方式(列表选择)。由该信息,操纵监视器模块340生成用于被监视的软件操作的可视元素操纵序列中的条目812。
进一步地,从该描述或其他元数据,用户操纵监视器模块340经由包含在视图层次236中的文本描述,作为桥接元素的识别共享图标802以及最终显示的列表。因此,用户操纵监视器模块340从显示的列表识别中可用作选项的软件应用,并且生成替代应用列表814,其包括替代的软件应用和相关信息的列表。
用户从该列表中选择WhatsApp(TM)应用(被标识为“APP2”)触发OS 214激活在电子设备100处执行WhatsApp(TM)应用,以及将图片的副本传送到WhatsApp(TM)应用。这触发WhatsApp(TM)应用呈现引导用户从显示的联系人列表818中选择对于初始消息的接收者的视图屏幕816。用户触摸对应于列出的联系人中的一个的位置范围内的一位置的在触摸屏101上的位置(X3,Y3)(触觉操纵820)。用户操纵监视器模块340检测到触觉操纵820,并且作为响应,属性提取器模块344访问视图层次236以识别操纵的可视元素(被标识为联系人列表“CONTACT_LIST”)、可视元素的元数据(文本描述“Contact List”)及操纵可视元素的方式(列表选择)。由该信息,操纵监视器模块340生成用于正被监视的软件操作的可视元素操纵序列中的条目822。
用户在联系人列表中选择联系人触发WhatsApp(TM)应用为用户呈现视图屏幕824以完成和发送具有随附图片的消息。尽管在图8中未示出,但操纵监视器模块340能继续监视该视图屏幕以及任何后续视图屏幕中的用户后续触觉操纵,直到该消息被发送,由此操作完成。这产生可视元素操纵序列,包括表示从相机应用转变到WhatsApp(TM)应用的软件操作的版本的条目806,812和822。由此,语音命令生成器模块346能生成用于该可视元素操纵序列的原始版本的语音命令集。进一步地,操纵监视器模块340能使用在列表814中列出的替代软件应用及其在视图屏幕808中的对应图标位置来生成反而使相机应用转变到列出的替代应用中的另一个的可视元素操纵序列的替代版本。作为示例,能创建可视元素操纵序列的替代版本,使得与视图屏幕相关联的可视元素操纵是在与列出的Gmail应用相关联的位置处接触触摸屏101,由此导致从相机应用转变到Gmail应用。然后,语音命令生成器模块346对这些版本中的每一个生成单独的语音命令集,由此使得用户有权访问在用于共享捕捉的图像的不同软件应用之间替代地进行选择的不同的语音命令。
图9示出根据至少一个实施例,实现语音命令检测阶段113(图1)和操纵模拟阶段114(图1)的方法900,语音命令检测阶段113(图1)和操纵模拟阶段114(图1)用于检测用户发出的用于操作的语音命令并且模拟相应的可视元素操纵序列以便激活操作的实例。为便于示例,在如上参考图2和3所述的电子设备100的实施方式的示例性场境中,描述方法900。
方法900在块902,以从用户接收语音输入而启动。经由麦克风246接收用户的发声并且由话音合成器320将其转换成文本322。在块904,NLP引擎222解析文本322,以识别文本322中与语音命令有关的语音分量。作为示例,语音命令通常包括某一命令动作的声明,诸如“撰写”、“发送”、“到”、“附加”、“拍照”等,以及用作某些动作的输入的变量,诸如命名消息的接收者、提供放在消息正文中的文本等。为此,NLP引擎222可以识别相关命令术语和变量并且将它们作为字符序列330提供给命令映射器模块350,同时省略语音命令中的无关细节。作为示例,可以将语音输入“拍照并且将其发送到Sam Jones”解析成字符序列330“拍摄发送到<Sam Jones>的照片”。
在块906,命令映射器模块350访问存储的用于操作的语音命令集。在至少一个实施例中,多个软件操作可以使用本文所述的技术,动态地推断语音命令,由此,命令映射器模块350可以利用例如在永久储存器230中实现的用于存储各种语音命令集的语音命令数据库。作为访问过程的一部分,命令映射器模块350可以利用来自字符序列330的某些关键字来缩小潜在语音命令集。作为示例,如果字符串具有关键字“图片”,那么,命令映射器模块350可以仅访问表示关于图片或图像的软件操作的那些语音命令集。
通过所选的语音命令集,在块908,命令映射器模块350尝试将由字符序列330表示的语音分量与语音命令集内的潜在语音命令匹配。在一些实施例中,语音命令集被表示为某一序列中的命令术语的基本语音命令语法,以及用于一个或多个命令术语的替代术语或同义词。作为示例,用于发送电子邮件的语音命令集可以具有基本语音命令语法“撰写陈述<消息正文>、到<接收者>的电子邮件”以及用于基本命令术语“撰写”的替代术语“发送”和“准备”、用于基本命令术语“电子邮件”的替代术语“电子邮件消息”以及用于基本命令术语“陈述”的替代术语“阅读为”。在这些实例中,命令映射器模块350尝试通过将基本命令语法和各种替代术语的每一排列与字符序列330的语音分量进行比较来检测匹配,直到找到充分匹配或测试过所有排列为止。替选地,语音命令集可以由一个或多个全语音命令变化的集合来表示(预先生成为基本语音命令语法的排列),在该情况下,命令映射器模块350尝试通过将每一语音命令变化与语音分量进行比较来检测匹配。
在块910,命令映射器模块350评估是否已经找到充分匹配语音分量的候选语音命令。该匹配不需要精确匹配,相反,即使有一些偏差,也被认为是充分的。作为示例,操作的一些动作可以被视为可选的,由此,有关这些选项的语音命令的方面也被视为可选的。例如,在电子邮件撰写操作中,VSCI工具225可以确定包括用户在抄送:字段中输入接收者的电子邮件地址的可视元素操纵序列,由此,语音命令集的语音命令可以具有有关用户指定用于抄送:字段的接收者的命令术语。然而,用户操纵监视器模块340可以具有指定哪些字段是强制的以及哪些字段为可选的规则集或指南。由此,如果语音分量除缺少抄送:接收者的识别外与用于电子邮件撰写操作的语音命令匹配,则命令映射器模块350可以视为其为充分匹配。
在所选语音命令集中未找到充分匹配的情况下,方法900可以返回到块906,由此,命令映射器模块350选择下一候选语音命令集,并且对该语音命令集重复块906,908和910的过程。否则,如果检测到充分匹配,在块912,命令映射器模块350将命令匹配368信号告知操纵模拟器模块348。作为响应,操纵模拟器模块348访问与匹配的语音命令相关联的可视元素模拟序列,然后在电子设备100处模拟可视元素模拟序列。如上所述,该模拟能包括注入各种用户输入组件242的模拟触觉操纵,使得该模拟对OS 214和在该软件操作中涉及的软件应用216是透明的。替选地,操纵模拟器模块348可以将预期的可视元素操纵直接信号告知OS 214,然后,OS 214格式化对软件应用216的相应输入,只要用户已经提供可视元素的触觉操纵。
在许多实例中,语音命令将包括与命令动作相关联的变量,由此,模拟过程的一部分包括在模拟过程的适当点处注入变量。作为示例,语音命令“将电子邮件发送到SamJones”将被命令映射器模块350识别为具有接收者变量“Same Jones”,由此,操纵模拟器模块348通过模拟关键字输入,使得将字符串“Same Jones”插入到“到:”字段,模拟用户对正撰写的电子邮件的“到:”字段的操纵。此外,如上所述,在语音输入和语音命令之间无良好匹配。在这些实例中,操纵模拟器模块348可以部分地模拟可视元素操纵序列,直到在语音命令和语音输入之间存在差距的点为止,然后停止任何进一步模拟,在该点,用户可以手动地完成操作,或操纵模拟器模块348可以从用户搜索另外的输入来解决该差异,然后继续剩余的模拟。作为示例,如果对基本命令语法“将陈述<消息正文>的电子邮件发送到<接收者>”,生成语音命令集,但该语音输入仅匹配一部分“将电子邮件发送到<接收者>”,即,用户未指定消息正文,操纵模拟器模块348可以执行可视元素操纵序列中,经由电子邮件应用,启动撰写电子邮件,然后用识别到的接收者变量填充“到:字”段的部分,然后停止进一步模拟。反过来,这要求用户手动地填充消息正文字段,然后选择发送图标来传送电子邮件消息。替选地,操纵模拟器模块348可以经由显示屏或经由语音提示,提醒用户来经由语音输入或键盘输入,提供消息正文,然后,将该输入填充到消息正文字段中,并且操纵模拟器模块348通过模拟选择发送图标,完成该模拟。
用户帮助网站、指导视频和其他帮助视频以及软件应用本身中的集成帮助工具通常提供使用该软件应用如何执行某些操作的逐步指示。该逐步指示通常被呈现为文本描述、由软件呈现的视图屏幕的屏幕截图、说明实施该操作所需的动作的画外音频或其组合。同样地,能利用用于软件应用的帮助信息来动态地推断用于软件应用的操作的语音命令和可视元素操纵序列,而不要求手动输入或标准化界面。图10-18示出用于这些过程的技术和示例。
图10示出根据一些实施例,在操纵序列推断阶段111(图1)期间,可以实现的帮助信息分析过程118的概览。在用于分析所选软件操作的帮助信息分析过程118的过程中,利用至少两个信息集:帮助信息1002和视图屏幕信息1004。帮助信息1002(图1的帮助信息160的一个实施例)为被生成或收集以帮助用户使用软件应用216来执行相应的软件操作的文本、图形、图像、视频、音频和其他信息。帮助信息1002可以采用从远程服务器获取的web页面或文档、来自媒体服务器的帮助教程视频、在安装软件应用216时,与软件应用216集成并且本地存储在电子设备100上的帮助文档等的形式。典型地,帮助信息1002被配置成呈现相对于软件应用216用户将采取以便激活软件操作的动作的逐步序列1006。该逐步序列1006可以在操作的不同阶段,利用软件应用216的各个视图屏幕的屏幕截图(例如屏幕截图1008)、屏幕截图1008的文本描述(例如文本描述1010)或待执行的动作的其他文本等。如果以视频形式实现,当演示软件应用的性能时,帮助信息1002通常包括软件应用的一系列视图屏幕的视频捕捉,并且可以附加视频内的文本描述或伴有补充该视频的指导画外音。
可以以多种方式获得帮助信息1002。在一些实施例中,远程服务器在网站和其他可访问网站搜索用于与识别的软件应用相关联的公布的帮助信息并且从这些网站获得帮助信息并存储。此时,然后,远程服务器或相关的资源可分析帮助信息,以根据本文所述的过程推断语音命令和可视元素操纵序列。然后,将得到的语音命令/可视元素操纵序列分发到一个或多个用户的电子设备,如下文结合图19所述。在其他实施例中,远程服务器可以获得帮助信息,但不进行分析直到用户请求这样做为止,此时,执行帮助信息分析并且将结果提供给请求的用户。此外,在一些实施例中,由电子设备100本身执行帮助信息分析,由此,由电子设备100搜索和获得有关所选软件应用的操作的帮助信息,然后执行本文所述的帮助信息分析过程。
视图屏幕信息1004提供由软件应用216提供的视图屏幕以及其中包含的可视元素的表示。该表示可以实现为例如视图屏幕本身(例如视图屏幕1012)的数据库、识别视图屏幕和其中包含的可视元素(以及与视图屏幕或可视元素相关联的任何描述性元数据)的一个或多个数据结构,或其组合。在主要由电子设备100执行帮助信息分析过程118的实施方式中,视图屏幕信息1004可以由例如视图管理器219维护为视图层次236的一部分。
如所示,帮助信息分析过程118至少具有下述阶段:帮助信息/可视元素关联阶段1021、描述属性提取阶段1022、操纵类型识别阶段1023、语音命令生成阶段1024和模拟操纵序列确定阶段1025。作为概览,在帮助信息/可视元素关联阶段1021期间,将关于在帮助信息1002中描述的步骤或动作的帮助信息与软件应用216的特定可视元素相关联。即,在软件应用216中识别引用软件应用216的可视元素的帮助信息1002中的步骤或动作,并且记录帮助信息1002中可视元素的引用顺序。在描述属性提取阶段1022中,获得用于匹配可视元素的文本描述或其他元数据。在操纵类型识别阶段1023,识别如由帮助信息1002描述的可视元素的操纵类型。然后,在语音命令生成阶段1024使用匹配的可视元素及其引用顺序、描述性元数据和操纵类型信息来生成用于软件操作的语音命令集,并且进一步在模拟操纵序列确定阶段1025使用匹配的可视元素及其引用顺序、描述性元数据和操纵类型信息来生成能由VSCI工具225模拟的可视元素操纵序列,以便响应检测到用户发出语音命令集中的一个语音命令,激活软件操作,如上结合语音命令检测阶段113和操纵模拟阶段114所述。
图11和12图示根据一些实施例,表示图10的帮助信息分析过程118的阶段1021-1025的特定实施方式的方法1100。为便于示例,在电子设备100的VSCI工具225处,使用帮助信息分析模块342、属性提取器模块344、语音命令生成器模块346、命令映射器模块350和操纵模拟器模块348执行的阶段1021-1025的场境中,描述方法1100。然而,可以在云服务或其他远程服务器,使用模块342,344,346,348和350的副本,执行所述的过程。此外,可以部分在远程服务器处,以及部分由电子设备100执行所述的过程。
在块1102,方法1100启动搜索或获取用于软件应用216的软件操作的帮助信息1002。作为示例,响应于在电子设备100处初始安装电子邮件应用,VSCI工具225可以同样地识别电子邮件应用,由此帮助信息分析模块342可以开始尝试通过在互联网搜索公布的帮助信息,开发用于电子邮件应用的电子邮件撰写过程的语音命令能力。类似地,云服务可以提供文本消息传递应用以下载到其用户,由此,云服务可以尝试通过在其归档和互联网中搜索有关用于文本消息传递应用的该特定版本的文本消息撰写过程的公布的帮助信息,开发用于文本消息传递应用的文本消息撰写过程的语音命令能力。如前所述,帮助信息1002能采用各种形式的任何一个,诸如公布为web页面1103的帮助信息、可用于下载或流传输的指导视频1105或诸如软件应用216集成的帮助信息的来自本地帮助源的帮助信息1107。
使用获取的帮助信息1002,在块1104,帮助信息分析模块342解析帮助信息1002益识别在帮助信息1002中表示的用于执行相应的软件操作的动作序列。作为示例,帮助web页面1103可以使用模拟的逐步格式,呈现用于在相机应用中捕捉和共享相机图像的指导,以及帮助信息分析模块342可以基于该步骤的模拟,识别每一动作。如另一示例,帮助信息1002可以呈现一系列屏幕截图,每一屏幕截图具有相应的文本描述,以及帮助信息分析模块342可以将每一屏幕截图识别为不同动作,以及屏幕截图的序列定义相应动作的顺序。类似地,在指导视频1105中,可以在表示视频的图像流中呈现不同屏幕截图,以及帮助信息分析模块342可以将指导视频1105中的每一新屏幕截图识别为表示软件操作的动作序列中的另一步骤或动作。
通过被解析成表示软件操作的一系列动作的帮助信息1002,在块1106,帮助信息分析模块342选择该序列中的第一动作,并且在块1108,帮助信息分析模块342识别由用于所选动作的、帮助信息1002提供的文本描述或屏幕截图中的一个或两个。如果帮助信息1002是指导视频,对该过程,包括在指导视频中的音频解说可以被转换成文本。
在块1110,帮助信息分析模块342根据在块1108识别的文本描述或屏幕截图,识别被操作为所选动作的一部分的一个或多个可视元素。然后,帮助信息分析模块342将识别的可视元素与用于软件应用216的视图屏幕信息1004中的一个或多个视图屏幕1012中的可视元素进行比较。作为示例,帮助信息1002中的一个描述步骤的文本描述可以陈述“点击“撰写电子邮件”图标来启动撰写电子邮件消息”。由此,帮助信息分析模块342可以将相关关键字识别为“点击”和“撰写电子邮件”,由此通过在视图屏幕信息1004中搜索操纵类型为“可点击”的可视元素和属性元数据为“电子邮件”、“撰写”、“准备”或“创建”中的一个或多个的可视元素,实施文本/属性比较1109。如另一示例,用于帮助信息1002中的描述步骤的屏幕截图可以利用粗红圆圈、箭头或其他可视参考来高亮表示图标可视元素的“撰写电子邮件”图形元素,用户将选择该图标可视元素以启动撰写电子邮件消息。帮助信息分析模块342由此可以通过搜索视图屏幕信息1004的各个视图屏幕1012以查找具有在外观上充分匹配所识别的图形元素的可视元素的视图屏幕,实施图形比较1111。此外,屏幕截图可以包含文本的图形表示,文本诸如为提供图标的标题的图标中的文本,在这种情况下,通过光学字符识别(OCR),处理屏幕截图以识别文本,然后,可以在文本比较1109中使用该OCR文本。在存在用于所选动作的屏幕截图和文本描述二者的情况下,帮助信息分析模块342例如能执行图形比较1111,以将来自屏幕截图的可视元素与软件应用的一个视图屏幕中的可视元素进行匹配,然后,使用文本/属性比较1109来通过确认匹配的可视元素的描述性属性与来自帮助信息1002中的文本描述的相关关键字匹配,确认该匹配准确。
在块1112,帮助信息分析模块342评估在帮助信息1002中用于所选动作的文本描述或屏幕截图信息与软件应用216的视图屏幕的可视元素之间是否存在充分匹配。该过程能包括例如计算用于该匹配的置信度值,并且基于该置信度值与阈值置信度的比较,确定该匹配充分。在一些实例中,可以识别多个潜在匹配,在这种情况下,帮助信息分析模块342可以确定对于每一潜在匹配的置信度值,然后选择具有最高置信度的潜在匹配。如果未找到充分匹配,那么帮助信息分析模块342不能有把握生成用于该操作的语音命令功能,因为不能识别对所选动作应当操纵的可视元素。因此,在块1114,帮助信息分析模块342终止进一步分析帮助信息1002。
软件应用通常经受频繁修订。这些修订会导致可视元素在视图屏幕内具有位置偏移、变更可视元素的外观,或变更当操纵可视元素时执行的功能。此外,软件应用的版本可以具有在外观上与具有类似描述性元数据但激活不同功能的可视元素非常类似的可视元素。此外,取决于可视元素定位于哪一视图屏幕,相同的可视元素可以激活不同的功能。由此,即使帮助信息分析模块342可以找到它认为在帮助信息中图示或描述的可视元素与在软件应用的视图屏幕中的可视元素之间的匹配,可能的是,对匹配可视元素的操纵不提供在帮助信息中描述的功能,因为不是相同的可视元素,或其功能已经改变,因为帮助信息1002描述与被分析的软件版本不同的软件版本。
由此,即使在块1112处确定充分匹配,在一些实施例中,VSCI工具225可编程地执行验证过程1116,以验证软件应用的匹配可视元素提供了根据帮助信息1002的所述动作或功能。能以各种方式实施该验证过程1116。在一些实例中,帮助信息1002示例一系列屏幕截图,由此VSCI工具225能协同OS 214来执行软件应用和模拟用户对相应的视图屏幕中的匹配可视元素的触觉操纵。如果匹配可视元素是真匹配,那么由软件应用216呈现的下一视图屏幕应当与帮助信息1002中的屏幕截图序列中的下一屏幕截图匹配。如果呈现的视图屏幕与下一屏幕截图不匹配,那么帮助信息分析模块342能断定潜在匹配的可视元素实际上不是匹配元素。如另一示例,帮助信息1002可以包含描述在指示的对可视元素的操纵后的视图屏幕,或描述由可视元素的指示操纵产生的动作的文本信息。由该文本描述,帮助信息分析模块342能得出一个或多个相关关键字。然后,可以将这些关键字与在潜在匹配的可视元素的模拟操纵后由软件应用呈现的下一视图屏幕的可视元素的元数据进行比较。如果描述性元数据不认为与关键字相关联,那么帮助信息分析模块342能断定潜在的匹配可视元素实际上与在帮助信息1002中引用的可视元素不匹配。
如果在编程验证过程期间,潜在匹配可视元素被认为不匹配,方法1100可以返回到块1110,并且如上参考块1112,1114和1116所述,评估另一潜在匹配可视元素。否则,如果可编程地验证潜在匹配可视元素,则在块1118,属性提取器模块344经由视图管理器219访问视图层次236以获取用于可视元素的描述性属性和其他元数据,以及可视元素的所处的视图屏幕。在匹配过程期间,已经获得该信息,由此,在这些情况下,可以跳过块1118。
不同于操纵监视过程116,帮助信息分析过程118不会受益于直接观察用户实际操纵可视元素以便启动相应的动作的方式。相反,在块1120,帮助信息分析模块342使用帮助信息1002的相应传递而提供的场境或描述,识别用户为激活在块1106选择的相应动作使用匹配可视元素执行的一个或多个触觉操纵,。作为示例,如果帮助信息1002的相关部分包含陈述“点击发送按钮以发送电子邮件消息”的文本,那么帮助信息分析模块342在确认匹配可视元素为“可点击”类型可视元素后,将预期操纵识别为用户触摸对应于可视元素的显示区的触摸屏的区域,或使用光标来“点击”该区域。如另一示例,如果帮助信息1002的相关部分包含陈述“从联系人列表中选择联系人”的文本,那么帮助信息分析模块342可以确定预期操纵为“列表选择”。
通过软件应用的可视元素及所识别的可视元素的元数据,以及通过一次或多次旨在激活相关动作的对可视元素的操纵,在块1122,帮助信息分析模块342使用该信息,生成可视元素操纵序列352的相应片段。作为示例,如果可视元素为可点击图标,并且预期操纵为在显示的可点击图标上进行点击,帮助信息分析模块342可以生成可视元素操纵序列中的条目,该条目指示在显示可点击图标的位置的范围内的位置(X,Y)处接触触摸屏101。
然后,方法1100返回到块1106,以选择由帮助信息1002呈现的动作序列中的下一动作,以及对该序列中的每一动作,重复块1108-1122的过程,直到帮助信息1002的动作序列中的所有动作已经被处理并且用于每一动作的可视元素的相应操纵被记录在可视元素操纵序列352中为止。
当已经生成和存储可视元素操纵序列352时,方法1100进入语音命令集生成阶段112(图1)。在块1124,以与上文参考图4的方法400的块414所述的方式类似的方式,语音命令生成器模块344确定用于在可视元素操纵序列352中表示的一些或全部可视元素操纵的一个或多个命令术语和替代术语。此外,在块1126,语音命令生成器模块344以与上文参考方法400的块416所述的方式类似的方式,确定基本命令语法。然而,当确定命令术语和基本命令语法时,语音命令生成器模块344进一步能利用帮助信息1002来指导这些过程。作为示例,帮助信息中的文本描述能被用来生成能被用作命令术语或替代术语的另外的关键字,或可以被用来对可以作为来自帮助信息1002的关键术语的各种命令术语进行排名或加权。通过确定的命令术语、替代术语和基本命令语法,在块1128,语音命令生成器模块344能使用如上参考方法400的块418所述的过程,生成和存储用于软件操作的语音命令集。
如上参考图9的方法900所述,以这种方式生成的语音命令集和可视元素操纵序列352然后可以被用来处理语音输入,该语音输入表示用于所处理的操作的语音命令并且模拟相应的可视元素操纵序列352。即,虽然使用不同的过程生成语音命令集和相应的可视元素操纵序列,但也可以以与通过操纵监视过程116生成语音命令集和相应的可视元素操纵序列的方式相同的方式,处理通过帮助信息分析过程118生成的语音命令集和相应的可视元素操纵序列,以用于语音命令检测和用户操纵模拟。
图13-18示出根据至少一个实施例,如由图11和12的方法1100表示的操纵序列推断阶段111和语音命令集生成阶段112的特定示例。从下文,软件操作是使用MicrosoftOutlookTM电子邮件应用的版本,撰写和发送电子邮件的操作。该示例中的帮助信息1002被呈现为具有将由用户采取的动作的模拟序列的web页面,以及相应的屏幕截图和文本描述。图13-17的每一个示出对应于该序列中的一个动作的帮助信息1002的一部分。
图13示出在撰写电子邮件中,描述初始步骤的帮助信息1002的初始部分1300。部分1300包括指示用户“点击鼠标左键<create mail>(创建电子邮件)图标来打开新电子邮件窗口”的文本描述1302和示出在其中找到<创建邮件>图标的视图屏幕的相应的屏幕截图1304。此外,如图13所示,屏幕截图1304可以包括装饰,诸如放大的箭头1306,其不是由屏幕截图表示的实际视图屏幕的一部分,而是添加以强调将由用户操纵的可视元素的图形特征。
根据如上所述的方法1100,帮助信息分析模块342使用文本描述1302和屏幕截图1304(以及放大箭头1306)来将显示的<create mail>图标识别为表示将首先操纵的可视元素,并且使用描述性术语“创建邮件”、“左击”和“新电子邮件”来将所表示的动作识别为“创建新电子邮件”,以及将<create mail>图标与在被识别为“OUTLOOK_1”的视图屏幕中的位置(X1,Y1)处被识别为“CREATE_MAIL”的可视元素相匹配,并且进一步将该可视元素识别为可点击的类型。此外,根据该文本描述,帮助信息分析模块342确定预期的用户操作是在位置(X1,Y1)周围左击鼠标。由该信息,帮助信息分析模块342将所示的条目1308生成为用于撰写电子邮件操作的可视元素操纵序列352的初始条目。
图14示出描述撰写电子邮件中的第二步骤的帮助信息1002的第二部分1400。部分1400包括指示用户“为你的电子邮件添加联系人”的文本描述1402和示出当点击<createmail>图标时呈现的视图屏幕的相应的屏幕截屏1404,在该示例中,该视图屏幕是对于用户条目呈现电子邮件消息的各个字段的视图屏幕,包括通过形式为添加到“到:”字段1406的边线的明亮颜色边线的装饰1408强调的“到:”字段1406。帮助信息分析模块342使用文本描述1402和屏幕截图1404(以及装饰1408)来将“到:”字段1406识别为表示对该动作将操纵的可视元素,并且使用描述性术语“地址”、“到”和“联系人”来将表示的动作识别为“为电子邮件添加地址”,并且将“到:”字段1406与在被识别为“OUTLOOK_2”的视图屏幕中的位置(X2,Y2)的可视元素“TO_FIELD”相匹配,并且进一步将该可视元素的类型识别为字符字段/自动填充。此外,由该文本描述和对字符字段类型的可视元素的操作的理解,帮助信息分析模块342确定预期的用户操纵是在键入形式为字符串形式的变量$RECIPIENT后,在位置(X2,Y2)处左击鼠标。由该信息,帮助信息分析模块342将所示的条目1410生成为用于撰写电子邮件操作的可视元素操纵序列352的第二条目。
图15示出描述撰写电子邮件中的第三步骤的帮助信息1002的第三部分1500。该部分包括指示用户“在<subject>(主题)中填写有关电子邮件主题的文本”的文本描述1502,以及示出与在部分1400中呈现视图屏幕的相同视图屏幕的相应的屏幕截图1504。然而,屏幕截图1504不同于屏幕截图1404之处在于:由形式为添加到“主题:”字段1506的边线的明亮颜色边框的装饰1508强调“主题:”字段1506。帮助信息分析模块342使用文本描述1502和屏幕截图1504(以及装饰1508)来将“主题:”字段1506识别为表示对于该动作将操纵的可视元素,并且使用描述性术语“填充”、“文本”、“主题”和“框”来将所示的动作识别为“填写主题”,以及将“主题:”字段1506与在“OUTLOOK_2”视图屏幕中的位置(X3,Y3)处被识别为“SUBJECT_FIELD”的可视元素相匹配,并且进一步将该可视元素的类型识别为字符字段。此外,由该文本描述和对字符字段类型的可视元素的操作的理解,帮助信息分析模块342确定预期的用户操纵是在键入形式为字符串的变量$SUBJECT后,在位置(X3,Y3)处左击鼠标。由该信息,帮助信息分析模块342将所示的条目1510生成为用于撰写电子邮件操作的可视元素操纵序列352的第三条目。
图16示出描述撰写电子邮件的第四步骤中的帮助信息1002的第四部分1600。部分1600包括指示用户“在电子邮件的邮件正文中键入你的消息”的文本描述1602,以及示出与在部分1400和1500中呈现的视图屏幕相同视图屏幕的相应的屏幕截图1604,但该视图屏幕具有形式为添加到“正文:”字段1606的边线的明亮颜色边框的装饰1608。帮助信息分析模块342使用文本描述1602和屏幕截图1604(以及装饰1608)来将正文:字段1606识别为表示对于该动作将操纵的可视元素,以及使用描述性术语“键入”、“消息”和“正文”来将表示的动作识别为“填写正文”,以及将“正文:”字段1606与在“OUTLOOK_2”视图屏幕的位置(X2,Y2)处被识别为“BODY_FIELD”的可视元素相比配,并且进一步将该可视元素的类型识别为字符字段。此外,由该文本描述和对字符字段类型的可视元素的操作的理解,帮助信息分析模块342确定预期的用户操纵是在录入形式为字符串的变量$BODY后,在位置(X4,Y4)处左击鼠标。由该信息,帮助信息分析模块342将所示的条目1610生成为用于撰写电子邮件操作的可视元素操纵序列352的第四条目。
图17示出描述撰写电子邮件的第五步骤的帮助信息1002的第五部分1700。部分1700包括指示用户“发送电子邮件。左图标是<send>(发送)图标:点击该图标然后你的邮件正在发送中…”的文本描述1702,以及示出与在部分1400、1500和1600中所示的视图屏幕相同的视图屏幕的相应的屏幕截图1704,但该视图屏幕具有形式为指向图标1706的明亮箭头的装饰1708。帮助信息分析模块342使用文本描述1702和屏幕截图1704(以及装饰1708)来将图标1706识别为表示对该动作将操纵的可视元素,并且使用描述性术语“发送”、“邮件”、“点击”和“邮件正在发送中”来将表示的动作识别为“发送邮件”,以及将图标1706与在“OUTLOOK_2”视图屏幕中的位置(X5,Y5)处被识别为“SEND_BUTTON”的可视元素相匹配,并且进一步将该可视元素的类型识别为可点击类型。此外,从该文本描述和对可点击类型的可视元素的操作的理解,帮助信息分析模块342确定预期的用户操纵是在位置(X5,Y5)处左击鼠标。由该信息,帮助信息分析模块342将所示的条目1710生成为用于撰写电子邮件操作的可视元素操纵序列352的第五并为最后一个条目。
图18示出根据图13-17所示的示例生成语音命令集1802和可视元素操纵序列1804的过程的示例。语音命令集1802和可视元素操纵序列1804分别表示图3的语音命令集366和可视元素操纵序列352的示例。由上述关键字,语音命令生成器模块346生成基本命令语法“创建到<$RECIPIENT>、具有主题<$SUBJECT>和正文<$BODY>的电子邮件”。此外,在NLP引擎222(图2)的帮助下,语音命令生成器模块346确定用于命令术语“创建”的替代术语“撰写”、“发送”和“准备”、用于命令术语“带主题”的替代术语“具有主题”或“标题为”,以及用于命令术语“带正文”的替代术语“阅读为”和“表明”。由此,语音命令生成器模块346能生成表示基本命令语法和替代术语的一些或全部排列的一组语音命令。此外,尽管图18未示出,基本命令语法还能包括省略某些部分或重新排列一些部分的顺序的替代构成,以及在语音命令生成过程中同样地包括这些替代构成。
产生的语音命令集1802被存储在电子设备100并且与也在电子设备100处存储的可视元素操纵序列1804相关联。如图18所示,可视元素操纵序列1804能包括表示将由操纵模拟器模块348模拟的一系列触觉可视元素操纵以便执行撰写电子邮件操作的实例的数据结构或其他组合。
如上所述的技术提供了动态推断将模拟以实施软件应用的语音命令和相应的可视元素操纵序列的有效方式。然而,许多用户可能正使用同一软件应用来在他们各自的电子设备上执行相同的操作,由此通过将语音命令集和可视元素操纵序列的表示分发到其他电子设备以便它们使用,在一个实例中在进行该动态推断中所花费的功夫被利用。类似地,联网服务提供者或软件提供者可以承担如上所述的分析,然后将产生的语音命令集和可视元素操纵序列分发到其用户,由此,使每一用户不必单独地经受相同处理。图19示出以这种方式分发语音命令信息的示例性语音命令分发系统1900。
在所示的示例中,语音命令分发系统1900包括可以在一个或多个有线或无线网络上,连接到诸如电子设备1904和1906的的相关用户的一个或多个电子设备的联网服务提供者或联网软件提供者(被识别为“云服务1902”)。云服务1902可以包括软件源或分发器(例如,诸如Google Play(TM)或APPLE(TM)iTunes(TM)工具的在线“应用商店”)、蜂窝服务提供者等。
云服务1902包括联网的服务器1908和命令集数据库1910。命令集数据库1910存储用于识别到的一个或多个软件应用的操作的语音命令集和相应的可视元素操纵序列的表示,以及服务器1908用来将存储的语音命令集/可视元素操纵序列传送到用户的电子设备以进行合并。由用户启动将语音命令数据1912和相应的可视元素操纵序列数据1914分发到用户的电子设备1906。例如,用户可以连接云服务1902来获得和安装用于软件操作的语音命令数据1912以及可视元素操纵序列数据1914。在其他实施例中,云服务1902可以启动将语音命令数据1912和可视元素操纵序列数据1914传送或“推送”到用户的电子设备1906。作为示例,云服务1902可以汇总用于软件应用的一个或多个操作的语音命令信息。当用户从云服务1902下载软件应用,或其更新版本时,服务器1908可以获取用于该软件应用(或用于该软件应用的相应版本)的语音命令信息,并且将其与被分发到电子设备1906的软件应用数据捆绑,作为软件应用下载/更新过程1916的一部分,使得在电子设备1906处,连同软件应用或版本更新一起,安装语音命令功能。如另一示例,可以在电子设备1906的OS中实现语音命令功能。当用户从云服务1902下载OS的副本,或OS的更新时,服务器1908可以识别与OS一起使用的最流行软件应用集,获取用于该软件应用集的语音命令信息,以及将该语音命令信息与被分发到电子设备1906的OS数据捆绑,作为OS下载/更新过程1918的一部分。由此,在安装OS或OS更新期间,可以将语音命令信息集成在电子设备1906的操作中。
在一些实施例中,云服务1902执行上述动态语音命令推断过程。然而,在其他实施例中,在用户的电子设备1904处执行动态语音命令推断过程,然后,电子设备1904与云服务1902共享产生的语音命令集1922和可视元素操纵序列1924。然后,云服务1902可以将该信息集成在命令集数据库1910中,以用于以如上所述的方式将其后续分发到其他电子设备。
上述的许多发明功能与许多发明原理很好地适用于通过软件程序或用软件程序来实现。期望的是,本领域普通技术人员,尽管可能经过显著努力且由例如可用时间、当前技术和经济考量激励的许多设计选择,当受到本文所公开的概念和原理的指导时,将易于能够以最少的实验而产生这类软件指令和程序。因此,就简化和最小化使根据本公开的原理和概念模糊的任何风险而言,对这类软件的进一步讨论,如果有的话,将被限制于关于优选实施例内的原理和概念的必要内容。
在本文档中,关系术语,诸如第一和第二等,可以仅用来区分一个实体或动作与另一实体或动作,而不必要求或暗示这类实体或动作之间的任何实际这类关系或次序。术语“包括”、“由…组成”或任何其他其变化形式,都旨在涵盖非排他的包含,因此,包括要素列表的过程、方法、物品或装置不仅仅包括这些要素,而且还可以包括未明确列出的或这类过程、方法、物品或装置所固有的其他要素。“包括……”之前的要素,没有更多限制,不排除存在包括该要素的过程、方法、物品或装置中的额外相同要素。术语“另一”,如这里所使用的,被定义为至少第二或更多。术语“包括”和/或“具有”,如这里使用的,被定义为包括。术语“耦合”,如这里结合光电技术所使用的,被定义为连接,尽管不必直接地连接,也不必机械地连接。术语“程序”,如这里使用的,被定义为设计用于在计算机系统上执行的指令序列。“程序”、或“计算机程序”,可以包括子例程、函数、流程、对象方法、对象事项、可执行应用、小应用、小服务程序、源代码、对象代码、共享库/动态负载库和/或设计用于在计算机系统上执行的其他指令序列。
说明书和附图应该仅仅被视作示例,公开的范围因此旨在仅由所附权利要求及其等价物来限定。注意,一般描述中的上述的所有活动或要素并非都是需要的,具体活动或设备的一部分可能不被需要,且除了这些被描述的以外,一个或多个进一步的活动可能被执行,或者一个或多个进一步的要素可能被包括。而且,所列活动的次序不必须是它们执行的次序。上面描绘的流程图的步骤可以是任何次序,除非指定,且取决于实施方式步骤可以被消除、重复和/或添加。而且,已经结合特定实施例描述了概念。但是,本领域普通技术人员认识到,可以进行各种修改和变化,而不背离本公开如权利要求书中所阐述的范围。因此,说明书和附图应该被视为说明性的而非限制意味的,且所有这类修改都旨在被包括在本公开的范围之内。
上面已经关于特定实施例描述了益处、其他优点、和问题的解决方案。但是,益处、优点、问题的解决方案、以及可能使得任何益处、优点、或解决方案出现或变得更加显著的任何特征都不应被解释为任何或所有权利要求的关键、所需或必要特征。

Claims (21)

1.在电子设备(100)中,一种方法包括:
监视用户对所述电子设备的可视元素(122,128,132,134,144,146,147,262,263,510,518,520,526,532,802)的触觉操纵(124,136,140,148,150,503,512,522,528,534,804,810,820),以确定第一可视元素操纵序列(352,1084,1924),所述第一可视元素操纵序列启动所述电子设备的至少一个软件应用(214,216)的第一操作的第一实例;
确定与所述可视元素相关联的属性集(362);
基于所述第一可视元素操纵序列和所述属性集,确定用于所述第一操作的命令语法;
基于所述命令语法,生成第一语音命令集(366,1802);以及
存储所述第一语音命令集。
2.如权利要求1所述的方法,进一步包括:
接收来自用户的语音输入(162);
确定所述语音输入表示所述第一语音命令集中的语音命令;以及
基于所述语音命令,执行所述第一可视元素操纵序列的模拟(370),以启动所述至少一个软件应用的所述第一操作的第二实例。
3.如权利要求1所述的方法,其中,确定所述属性集包括:
根据视图层次确定所述属性集,所述视图层次具有一个或多个视图屏幕(260)内可视元素的文本表示(360)。
4.如权利要求1所述的方法,其中,生成所述语音命令集包括:
基于与所述可视元素相关联的术语,确定命令术语;
基于在用户的触觉操纵期间操纵所述可视元素的顺序,使用所述命令术语来构造所述命令语法;以及
基于所述命令语法,确定所述语音命令集的至少一个语音命令。
5.如权利要求4所述的方法,其中,基于与所述可视元素相关联的术语确定所述命令术语包括:
根据下述中的至少一个确定与所述可视元素相关联的术语:具有一个或多个视图屏幕内的可视元素的文本表示(360)的视图层次(236)、自然语言处理(222)、以及替代术语数据库(238)。
6.如权利要求1所述的方法,其中:
所述第一操作包括从一个软件应用转变到另一软件应用。
7.如权利要求1所述的方法,其中:
所述第一操作包括从第一软件应用转变到多个替代第二软件应用中的所选一个替代第二软件应用;
监视用户对所述可视元素的触觉操纵以确定所述第一可视元素操纵序列包括:识别桥接元素,所述桥接元素表示从所述第一软件应用的转变;以及
所述方法进一步包括:基于所述桥接元素的至少一个属性,识别所述多个替代第二软件应用。
8.如权利要求7所述的方法,进一步包括:
根据视图层次(236)确定所述桥接元素的所述至少一个属性,所述视图层次具有一个或多个视图屏幕内的可视元素的文本表示(360)。
9.如权利要求7所述的方法,进一步包括:
接收来自用户的语音输入(162);
确定所述语音输入表示所述第一语音命令集中的语音命令并且引用所述多个替代第二软件应用中的所述所选一个替代第二软件应用;以及
执行对所述第一可视元素操纵序列的模拟(370),以启动所述第一操作的第二实例,所述第一操作的第二实例从所述第一软件应用转变到所述多个替代第二软件应用中的所述所选一个替代第二软件应用。
10.如权利要求1所述的方法,进一步包括:
将所述第一语音命令集(1922)和所述第一可视元素操纵序列(1924)的表示提供给远程联网系统(1902),以分发到一个或多个其他电子设备(1906)。
11.如权利要求1所述的方法,其中,
所述方法进一步包括:
从远程联网系统(1908)接收第二语音命令集(1912)和第二可视元素操纵序列(1914)的表示;
接收来自用户的语音输入(162);
确定所述语音输入表示所述第二语音命令集中的语音命令;以及
执行对所述第二可视元素操纵序列的模拟(370),以在所述电子设备处启动软件应用的第二操作的实例。
12.在电子设备(100)中,一种方法包括:
识别对可视元素(122,128,132,134,144,146,147,262,263,510,518,520,526,532,802)的第一触觉操纵序列(124,136,140,148,150,503,512,522,528,534,804,810,820),所述第一触觉操纵序列跨第一软件应用和第二软件应用,用于实现从所述第一软件应用转变到所述第二软件应用的第一操作;
基于与所述可视元素相关联的术语,确定语音命令集(366,1802),所述语音命令集包括一个或多个语音命令;
接收来自用户的第一语音输入(162);
将所述第一语音输入与所述语音命令集中的语音命令进行匹配;以及
模拟(370)对可视元素的所述第一触觉操纵序列,以实现所述第一操作。
13.如权利要求12所述的方法,进一步包括:
根据所述可视元素识别桥接元素,所述桥接元素表示从所述第一软件应用转变到替代软件应用集中的一个,所述替代软件应用集包括所述第二软件应用;以及
其中,确定语音命令集包括:进一步基于所述替代软件应用集,确定语音命令集。
14.一种电子设备(100),包括:
操纵监视器模块(340),所述操纵监视器模块用来监视用户对所述电子设备的可视元素(122,128,132,134,144,146,147,262,263,510,518,520,526,532,802)的触觉操纵(124,136,140,148,150,503,512,522,528,534,804,810,820),以确定可视元素操纵序列(352,1084,1924),所述可视元素操纵序列启动所述述电子设备的至少一个软件应用(214,216)的操作的第一实例;
属性提取器模块(344),所述属性提取器模块耦合到所述操纵监视器模块,用于确定与所述可视元素相关联的属性集(362);
语音命令生成器模块(346),所述语音命令生成器模块耦合到所述操纵监视器模块和所述属性提取器模块,用于基于所述可视元素操纵序列和所述属性集来确定用于所述操作的命令语法,以及用于基于所述命令语法,生成语音命令集(366,1802)。
15.如权利要求14所述的电子设备,进一步包括:
操纵模拟器模块(348),所述操纵模拟器模块用来响应于确定所述语音输入(162)表示所述语音命令集中的语音命令,模拟(370)所述可视元素操纵序列,以启动所述至少一个软件应用的所述操作的第二实例。
16.如权利要求14所述的电子设备,其中:
所述语音命令生成器模块通过基于与所述可视元素相关联的所述属性集确定命令术语以及基于所述命令术语确定用于所述语音命令集的至少一个语音命令,来生成所述语音命令集。
17.如权利要求14所述的电子设备,其中:
所述操作包括从第一软件应用转变到多个替代第二软件应用中的所选一个替代第二软件应用;以及
所述操纵监视模块通过识别桥接元素以及基于所述桥接元素的至少一个属性识别所述多个替代第二软件应用,来监视用户对所述可视元素的触觉操纵,以确定所述可视元素操纵序列,所述桥接元素表示从所述第一软件应用的转变。
18.如权利要求17所述的电子设备,进一步包括:
用户操纵模拟模块(348),所述用户操纵模拟模块用来模拟(370)所述可视元素操纵序列,以启动操作的第二实例,所述操作的第二实例响应于确定语音输入表示所述语音命令集中的语音命令而从所述第一软件应用转变到所述多个替代第二软件应用中的所述所选一个替代第二软件应用,并且识别所述多个替代第二软件应用中的所选第二软件应用。
19.如权利要求17所述的电子设备,其中:
所述操纵监视模块进一步用来根据视图层次(236)来确定所述桥接元素的至少一个属性,所述视图层次具有一个或多个视图屏幕内的可选或不可选可视元素的文本表示(360)。
20.如权利要求14所述的电子设备,其中,所述电子设备用来将所述语音命令集(1922)和所述可视元素操纵序列(1924)的表示提供给远程联网系统(1902),以分发到一个或多个其他电子设备。
21.如权利要求14所述的电子设备,其中,所述电子设备用来从远程联网系统(1902)接收另一语音命令集(1912)和另一可视元素操纵序列(1914)的表示。
CN201680016072.2A 2015-01-30 2016-01-20 由电子设备的用户操纵动态推断软件操作的语音命令 Pending CN107408010A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/609,954 2015-01-30
US14/609,954 US20160225369A1 (en) 2015-01-30 2015-01-30 Dynamic inference of voice command for software operation from user manipulation of electronic device
PCT/US2016/014112 WO2016122941A1 (en) 2015-01-30 2016-01-20 Dynamic inference of voice command for software operation from user manipulation of electronic device

Publications (1)

Publication Number Publication Date
CN107408010A true CN107408010A (zh) 2017-11-28

Family

ID=55447085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680016072.2A Pending CN107408010A (zh) 2015-01-30 2016-01-20 由电子设备的用户操纵动态推断软件操作的语音命令

Country Status (4)

Country Link
US (1) US20160225369A1 (zh)
EP (1) EP3251002A1 (zh)
CN (1) CN107408010A (zh)
WO (1) WO2016122941A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457105A (zh) * 2019-08-07 2019-11-15 腾讯科技(深圳)有限公司 界面操作方法、装置、设备及存储介质
CN111538269A (zh) * 2020-04-27 2020-08-14 北京他山科技有限公司 一种非接触按钮传感器单元及触发的方法
CN111630413A (zh) * 2018-06-05 2020-09-04 谷歌有限责任公司 基于置信度的应用特定的用户交互
CN112289320A (zh) * 2019-07-25 2021-01-29 Tcl集团股份有限公司 一种智能终端语音控制方法、系统及可读存储介质

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7516190B2 (en) * 2000-02-04 2009-04-07 Parus Holdings, Inc. Personal voice-based information retrieval system
US9583097B2 (en) 2015-01-30 2017-02-28 Google Inc. Dynamic inference of voice command for software operation from help information
CN104765791A (zh) * 2015-03-24 2015-07-08 北京搜狗科技发展有限公司 一种信息输入方法和装置
US20160328205A1 (en) * 2015-05-05 2016-11-10 Motorola Mobility Llc Method and Apparatus for Voice Operation of Mobile Applications Having Unnamed View Elements
US10185474B2 (en) * 2016-02-29 2019-01-22 Verizon Patent And Licensing Inc. Generating content that includes screen information and an indication of a user interaction
JP2017173530A (ja) * 2016-03-23 2017-09-28 富士通株式会社 音声入力支援プログラム、ヘッドマウントディスプレイ、音声入力支援方法および音声入力支援装置
US10261752B2 (en) * 2016-08-02 2019-04-16 Google Llc Component libraries for voice interaction services
US10332628B2 (en) 2016-09-30 2019-06-25 Sap Se Method and system for control of an electromechanical medical device
EP3301598B1 (en) * 2016-09-30 2020-06-17 Sap Se Method and system for control of an electromechanical medical device
US11340925B2 (en) * 2017-05-18 2022-05-24 Peloton Interactive Inc. Action recipes for a crowdsourced digital assistant system
CN107146616B (zh) * 2017-06-13 2020-05-08 Oppo广东移动通信有限公司 设备控制方法及相关产品
CN107529640A (zh) * 2017-08-16 2018-01-02 杭州上手科技有限公司 一种声控排版系统
KR102347208B1 (ko) * 2017-09-07 2022-01-05 삼성전자주식회사 외부 장치를 이용한 태스크 수행 방법 및 이를 지원하는 전자 장치, 서버 및 저장 매체
CN108205455B (zh) * 2017-10-24 2023-04-14 中兴通讯股份有限公司 应用的功能实现方法及装置、终端
KR102449630B1 (ko) * 2017-12-26 2022-09-30 삼성전자주식회사 전자 장치 및 이의 제어 방법
US10963499B2 (en) * 2017-12-29 2021-03-30 Aiqudo, Inc. Generating command-specific language model discourses for digital assistant interpretation
WO2019204772A1 (en) * 2018-04-21 2019-10-24 Augmentalis Inc. Display interface systems and methods
EP3826280B1 (en) * 2018-08-07 2023-05-24 Huawei Technologies Co., Ltd. Method for generating speech control command, and terminal
US11681416B2 (en) * 2019-04-26 2023-06-20 Verint Americas Inc. Dynamic web content based on natural language processing (NLP) inputs
US11170774B2 (en) * 2019-05-21 2021-11-09 Qualcomm Incorproated Virtual assistant device
US11221843B2 (en) * 2019-07-25 2022-01-11 Salesforce.Com, Inc. Auditory media metadata-based software configuration using design systems
CA3059032A1 (en) * 2019-10-17 2021-04-17 The Toronto-Dominion Bank Homomorphic encryption of communications involving voice-enabled devices in a distributed computing environment
CN111326158A (zh) * 2020-01-23 2020-06-23 深圳市安顺康医疗电子有限公司 一种基于智能终端的语音操控方法
US11798549B2 (en) * 2021-03-19 2023-10-24 Mitel Networks Corporation Generating action items during a conferencing session

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748191A (en) * 1995-07-31 1998-05-05 Microsoft Corporation Method and system for creating voice commands using an automatically maintained log interactions performed by a user
US20060136221A1 (en) * 2004-12-22 2006-06-22 Frances James Controlling user interfaces with contextual voice commands
EP1701247A2 (en) * 2005-03-08 2006-09-13 Sap Ag XML based architecture for controlling user interfaces with contextual voice commands
CN102388355A (zh) * 2009-04-17 2012-03-21 诺基亚公司 为应用关联和维护状态信息的方法和装置
US20120215543A1 (en) * 2011-02-18 2012-08-23 Nuance Communications, Inc. Adding Speech Capabilities to Existing Computer Applications with Complex Graphical User Interfaces
WO2013173940A1 (en) * 2012-05-22 2013-11-28 Beijing Baina Info - Tech,Co., Ltd A method and system for providing application data

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03163623A (ja) * 1989-06-23 1991-07-15 Articulate Syst Inc 音声制御コンピュータ・インターフェース
US5873064A (en) * 1996-11-08 1999-02-16 International Business Machines Corporation Multi-action voice macro method
US6404876B1 (en) * 1997-09-25 2002-06-11 Gte Intelligent Network Services Incorporated System and method for voice activated dialing and routing under open access network control
US6233559B1 (en) * 1998-04-01 2001-05-15 Motorola, Inc. Speech control of multiple applications using applets
US6370237B1 (en) * 1998-12-29 2002-04-09 Alcatel Usa Sourcing, Lp Voice activated dialing with reduced storage requirements
US6584439B1 (en) * 1999-05-21 2003-06-24 Winbond Electronics Corporation Method and apparatus for controlling voice controlled devices
US7099893B2 (en) * 2002-06-28 2006-08-29 Sap Aktiengesellschaft Recording application user actions for application testing
US20040234047A1 (en) * 2003-05-23 2004-11-25 Nortel Networks Limited Interactive telephony interface
US7653721B1 (en) * 2004-10-29 2010-01-26 Sun Microsystems, Inc. Mechanism for capturing high level events on user interface components
US20060136220A1 (en) * 2004-12-22 2006-06-22 Rama Gurram Controlling user interfaces with voice commands from multiple languages
US8566716B2 (en) * 2005-01-10 2013-10-22 International Business Machines Corporation Selective macro event recording
US7529677B1 (en) * 2005-01-21 2009-05-05 Itt Manufacturing Enterprises, Inc. Methods and apparatus for remotely processing locally generated commands to control a local device
TWI298844B (en) * 2005-11-30 2008-07-11 Delta Electronics Inc User-defines speech-controlled shortcut module and method
US8311836B2 (en) * 2006-03-13 2012-11-13 Nuance Communications, Inc. Dynamic help including available speech commands from content contained within speech grammars
US20080114604A1 (en) * 2006-11-15 2008-05-15 Motorola, Inc. Method and system for a user interface using higher order commands
DE102008028581B4 (de) * 2008-06-12 2011-03-10 Datango Ag Verfahren und Vorrichtung zur automatischen Ermittlung von Steuerelementen in Computeranwendungen
US8849819B2 (en) * 2011-08-05 2014-09-30 Deacon Johnson System and method for controlling and organizing metadata associated with on-line content
US20130139113A1 (en) * 2011-11-30 2013-05-30 Microsoft Corporation Quick action for performing frequent tasks on a mobile device
US8453058B1 (en) * 2012-02-20 2013-05-28 Google Inc. Crowd-sourced audio shortcuts
EP2639792A1 (en) * 2012-03-16 2013-09-18 France Télécom Voice control of applications by associating user input with action-context idendifier pairs
US20130297318A1 (en) * 2012-05-02 2013-11-07 Qualcomm Incorporated Speech recognition systems and methods
US9671874B2 (en) * 2012-11-08 2017-06-06 Cuesta Technology Holdings, Llc Systems and methods for extensions to alternative control of touch-based devices
KR102183448B1 (ko) * 2013-04-26 2020-11-26 삼성전자주식회사 사용자 단말 장치 및 그 디스플레이 방법
KR102203885B1 (ko) * 2013-04-26 2021-01-15 삼성전자주식회사 사용자 단말 장치 및 그 제어 방법
CN105934791B (zh) * 2014-01-31 2019-11-22 惠普发展公司,有限责任合伙企业 语音输入命令
US20150331551A1 (en) * 2014-05-14 2015-11-19 Samsung Electronics Co., Ltd. Image display apparatus, image display method, and computer-readable recording medium
US9501271B2 (en) * 2014-10-09 2016-11-22 Facebook, Inc. Device, method, and graphical user interface for presenting and installing applications
US9583097B2 (en) * 2015-01-30 2017-02-28 Google Inc. Dynamic inference of voice command for software operation from help information

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748191A (en) * 1995-07-31 1998-05-05 Microsoft Corporation Method and system for creating voice commands using an automatically maintained log interactions performed by a user
US20060136221A1 (en) * 2004-12-22 2006-06-22 Frances James Controlling user interfaces with contextual voice commands
EP1701247A2 (en) * 2005-03-08 2006-09-13 Sap Ag XML based architecture for controlling user interfaces with contextual voice commands
CN102388355A (zh) * 2009-04-17 2012-03-21 诺基亚公司 为应用关联和维护状态信息的方法和装置
US20120215543A1 (en) * 2011-02-18 2012-08-23 Nuance Communications, Inc. Adding Speech Capabilities to Existing Computer Applications with Complex Graphical User Interfaces
WO2013173940A1 (en) * 2012-05-22 2013-11-28 Beijing Baina Info - Tech,Co., Ltd A method and system for providing application data

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111630413A (zh) * 2018-06-05 2020-09-04 谷歌有限责任公司 基于置信度的应用特定的用户交互
CN111630413B (zh) * 2018-06-05 2024-04-16 谷歌有限责任公司 基于置信度的应用特定的用户交互
CN112289320A (zh) * 2019-07-25 2021-01-29 Tcl集团股份有限公司 一种智能终端语音控制方法、系统及可读存储介质
CN110457105A (zh) * 2019-08-07 2019-11-15 腾讯科技(深圳)有限公司 界面操作方法、装置、设备及存储介质
CN110457105B (zh) * 2019-08-07 2021-11-09 腾讯科技(深圳)有限公司 界面操作方法、装置、设备及存储介质
CN111538269A (zh) * 2020-04-27 2020-08-14 北京他山科技有限公司 一种非接触按钮传感器单元及触发的方法

Also Published As

Publication number Publication date
US20160225369A1 (en) 2016-08-04
EP3251002A1 (en) 2017-12-06
WO2016122941A1 (en) 2016-08-04

Similar Documents

Publication Publication Date Title
CN107430502B (zh) 由帮助信息动态推断用于软件应用的语音命令
CN107408010A (zh) 由电子设备的用户操纵动态推断软件操作的语音命令
CN101373431B (zh) 增强型小组件合成平台
CN104081382B (zh) 建立可动态指定的用户界面的方法和系统
CN103718161B (zh) Web应用体系架构
US10088980B2 (en) Method and system for providing menu data for mobile applications
CN108733438A (zh) 应用程序与数字助理集成
CN108605049A (zh) 用于用户设备的基于应用状态和卡片的消息共享方法
CN108885740A (zh) 主动的智能个人助理
CN106104528A (zh) 用于屏幕上项目选择和消歧的基于模型的方法
CN107615276A (zh) 用于媒体回放的虚拟助理
CN106462597A (zh) 利用不同设备执行搜索和访问搜索结果
US20200301679A1 (en) System for creating mobile and web applications from a graphical workflow specification
JP2017191601A (ja) メッセンジャーサービスを利用したキーワード検索方法及びシステム
CN110399470A (zh) 会话消息处理
CN105302461B (zh) 一种用于在移动应用中提供目标页面的方法与设备
CN104133815B (zh) 输入和搜索的方法及系统
CN102866987A (zh) 移动终端中发送消息的装置及方法
CN110457214A (zh) 应用测试方法及装置、电子设备
CN108139895A (zh) 字体字型预览
CN110168536A (zh) 上下文敏感概要
CN105808231A (zh) 录制与播放脚本的系统及方法
CN109891410B (zh) 用于新的会话对话系统的数据收集
CN105988992A (zh) 图标推送方法及装置
CN109964457A (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20171128