CN107491469B - 智能任务发现 - Google Patents
智能任务发现 Download PDFInfo
- Publication number
- CN107491469B CN107491469B CN201710393363.XA CN201710393363A CN107491469B CN 107491469 B CN107491469 B CN 107491469B CN 201710393363 A CN201710393363 A CN 201710393363A CN 107491469 B CN107491469 B CN 107491469B
- Authority
- CN
- China
- Prior art keywords
- task
- electronic device
- text string
- user
- data type
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/904—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90332—Natural language query formulation or dialogue 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/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- User Interface Of Digital Computer (AREA)
- Telephone Function (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明题为:“智能任务发现”。本发明涉及用于操作自动化助理以处理消息的系统和过程。在一个示例性过程中,电子设备接收包括文本串的通信以及确定文本串的一部分是否与多个数据类型中的数据类型相关联。数据类型与至少一个任务相关联。根据确定文本串的一部分与数据类型相关联,电子设备接收用于指示至少一个任务中的任务的用户输入,并且作为响应,使得将基于文本串的一部分来执行任务。根据确定文本串的一部分不与数据类型相关联,该电子设备放弃使得将基于文本串的一部分来执行任务。
Description
技术领域
本公开整体涉及智能自动化助理,并且更具体地,涉及用于智能任务发现的智能自动化助理。
背景技术
智能自动化助理可帮助用户消费电子设备上的内容。例如,用户可要求智能自动化助理读取在电子设备处接收的文本消息,使得用户可在进行其他活动(例如驾驶)时消费该文本消息。然而,为了使用内容的一个或多个特定部分(例如,文本消息中提到的地址、电话号码和URL)来执行后续任务,用户必须提供必要的输入以例如手动启动业务以及手动重现业务中的内容的相关部分。
例如,如果用户接收包含物理地址的文本消息并想要导航到该物理地址,则用户必须手动启动导航应用并在导航应用中提供(例如输入)地址。此类体验不仅麻烦而且有潜在危险,因为这使得用户在进行其他活动(例如驾驶)时分心。换句话讲,无法在电子设备处使用内容的相关部分来方便地发起和/或执行期望的任务导致用户受挫并对用户体验产生负面影响。
发明内容
本文公开了示例性方法。用于在电子设备上操作自动助手的示例性方法包括:在电子设备处接收包括文本串的通信以及确定文本串的一部分是否与多个数据类型中的数据类型相关联,其中数据类型具有与其相关联的至少一个任务。根据确定文本串的一部分与多个数据类型中的数据类型相关联,电子设备接收用于指示至少一个任务中的与所述数据类型相关联的任务的用户输入,响应于用于指示任务的该用户输入,使得将基于文本串的一部分来执行任务。根据确定文本串的一部分不与多个数据类型中的数据类型相关联,电子设备放弃使得将基于文本串的一部分来执行任务。
示例性方法包括:在电子设备处接收包括文本串的通信以及确定文本串的一部分是否与多个数据类型中的数据类型相关联。根据确定文本串的一部分与多个数据类型中的数据类型相关联,电子设备基于该数据类型来获得具有一个或多个参数的任务以及输出所获得的任务,其中一个或多个参数中的参数包括文本串的一部分。根据确定文本串的一部分不与多个数据类型中的数据类型相关联,电子设备放弃基于该数据类型来获得具有一个或多个参数的任务。
本文公开了示例性非暂态计算机可读存储介质。示例性非暂态计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,当指令由电子设备的一个或多个处理器执行时,使得设备接收包括文本串的通信,确定文本串的一部分是否与多个数据类型中的数据类型相关联,其中数据类型具有与其相关联的至少一个任务。所述指令进一步使得电子设备根据确定文本串的一部分与多个数据类型中的数据类型相关联而接收用于指示至少一个任务中的与所述数据类型相关联的任务的用户输入,并且响应于用于指示任务的该用户输入而使得基于文本串的一部分来执行任务。所述指令进一步使得电子设备根据确定文本串的一部分不与多个数据类型中的数据类型相关联而放弃使得基于文本串的一部分来执行任务。
示例性非暂态计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,当指令由电子设备的一个或多个处理器执行时,使得设备接收包括文本串的通信,确定文本串的一部分是否与多个数据类型中的数据类型相关联。所述指令进一步使得电子设备根据确定文本串的一部分与多个数据类型中的数据类型相关联而基于该数据类型来获得具有一个或多个参数的任务以及输出所获得的任务,其中一个或多个参数中的参数包括文本串的一部分。所述指令进一步使得电子设备根据确定文本串的一部分不与多个数据类型中的数据类型相关联而放弃基于该数据类型来获得具有一个或多个参数的任务。
本文公开了示例性设备。示例性电子设备包括:一个或多个处理器;存储器;和一个或多个程序,其中该一个或多个程序存储在存储器中并且被配置为由一个或多个处理器来执行。一个或多个程序包括如下指令,该指令用于接收包括文本串的通信以及确定文本串的一部分是否与多个数据类型中的数据类型相关联,其中数据类型具有与其相关联的至少一个任务。一个或多个程序进一步包括如下指令,该指令用于根据确定文本串的一部分与多个数据类型中的数据类型相关联而接收用于指示至少一个任务中的与所述数据类型相关联的任务的用户输入,并且响应于用于指示任务的该用户输入而使得将基于文本串的一部分来执行任务。一个或多个程序进一步包括如下指令,该指令用于根据确定文本串的一部分不与多个数据类型中的数据类型相关联而放弃使得将基于文本串的一部分来执行任务。
示例性电子设备包括:一个或多个处理器;存储器;和一个或多个程序,其中该一个或多个程序存储在存储器中并且被配置为由一个或多个处理器来执行。一个或多个程序包括如下指令,该指令用于接收包括文本串的通信以及确定文本串的一部分是否与多个数据类型中的数据类型相关联。一个或多个程序进一步包括如下指令,该指令用于根据确定文本串的一部分与多个数据类型中的数据类型相关联而基于该数据类型来获得具有一个或多个参数的任务以及输出所获得的任务,其中一个或多个参数中的参数包括文本串的一部分。一个或多个程序进一步包括如下指令,该指令用于根据确定文本串的一部分不与多个数据类型中的数据类型相关联而放弃基于该数据类型来获得具有一个或多个参数的任务。
示例性电子设备包括:用于接收包括文本串的通信的装置;用于确定文本串的一部分是否与多个数据类型中的数据类型相关联的装置,其中数据类型具有与其相关联的至少一个任务;用于根据确定文本串的一部分与多个数据类型中的数据类型相关联而接收用于指示至少一个任务中的与所述数据类型相关联的任务的用户输入并且响应于用于指示任务的该用户输入而使得将基于文本串的一部分来执行任务的装置;用于根据确定文本串的一部分不与多个数据类型中的数据类型相关联而放弃使得将基于文本串的一部分来执行任务的装置。
示例性电子设备包括:用于接收包括文本串的通信的装置;用于确定文本串的一部分是否与多个数据类型中的数据类型相关联的装置;用于根据确定文本串的一部分与多个数据类型中的数据类型相关联而基于该数据类型来获得具有一个或多个参数的任务以及输出所获得的任务的装置,其中一个或多个参数中的参数包括文本串的一部分;用于根据确定文本串的一部分不与多个数据类型中的数据类型相关联而放弃基于该数据类型来获得具有一个或多个参数的任务的装置。
附图说明
为了更好地理解各种所述实施方案,应该结合以下附图参考下面的具体实施方式,在附图中,类似的附图标号在所有附图中指示对应的部分。
图1是示出了根据各个示例的用于实现数字助理的系统和环境的框图。
图2A是示出了根据一些实施方案的实现数字助理的客户端侧部分的便携式多功能设备的框图。
图2B是示出了根据各个示例的用于事件处理的示例性部件的框图。
图3是示出了根据各个示例的实现数字助理的客户端侧部分的便携式多功能设备的框图。
图4是根据各个示例的具有显示器和触敏表面的示例性多功能设备的框图。
图5A示出了根据各个示例的便携式多功能设备上的应用程序菜单的示例性用户界面。
图5B示出了根据各个示例的具有与显示器分开的触敏表面的多功能设备的示例性用户界面。
图6A示出了根据各个示例的个人电子设备。
图6B是示出了根据各个示例的个人电子设备的框图。
图7A是示出了根据各个示例的数字助理系统或其服务器部分的框图。
图7B是示出了根据各个示例的图7A中所示的数字助理的功能。
图7C示出了根据各个示例的知识本体的一部分。
图8A-图8E示出了根据一些实施方案的电子设备的示例性用户界面。
图9A-图9C示出了根据一些实施方案的电子设备的示例性用户界面。
图10A-图10C示出了根据各个示例的用于智能任务发现的示例性过程。
图11示出了根据各个示例的用于智能任务发现的示例性过程。
图12示出了根据各个示例的电子设备的功能框图。
图13示出了根据各个示例的电子设备的功能框图。
具体实施方式
在以下对本公开和实施方案的描述中将引用附图,在附图中以举例的方式示出了可被实践的特定实施方案。应当理解,在不脱离本公开的范围的情况下,可实践其他实施方案和示例并且可进行变更。
用于智能任务发现的技术是期望的。如本文所述,所述任务提高了用户与电子设备交互的能力,从而提高了生产率。另外,此类技术可减少计算需求和由于电子设备对用户输入的冗余响应而消耗的电池电量。
尽管以下描述使用术语“第一”、“第二”等来描述各种元件,但这些元件不应受术语的限制。这些术语只是用于将一个元件与另一元件区分开。例如,在不脱离各个所述示例的范围的情况下,第一输入可被命名为第二输入,并且类似地,第二输入可被命名为第一输入。第一输入和第二输入均可为输出,并且在一些情况下可为独立的不同输入。
在本文中对各个所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)和“该”旨在也包括复数形式,除非上下文另外明确地指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联地列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“includes”,“including”,“comprises”和/或“comprising”)当在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元素和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件和/或其分组。
根据上下文,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
1、系统和环境
图1示出了根据各个示例的系统100的框图。在一些示例中,系统100可实现数字助理。术语“数字助理”、“虚拟助理”、“智能自动化助理”或“自动数字助理”可指解释口头和/或文本形式的自然语言输入以推断用户意图,并基于推断出的用户意图来执行动作的任何信息处理系统。例如,为了执行推断出的用户意图,系统可执行以下各项中的一者或多者:通过设计用以实现所推断出的用户意图的步骤和参数来识别任务流,将来自推断出的用户意图的具体要求输入到任务流中;通过调用程序、方法、服务、API等来执行任务流;以及生成对用户的听觉(例如,语音)和/或视觉形式的输出响应。
具体地讲,数字助理能够接受至少部分地以自然语言命令、请求、声明、讲述和/或询问的形式的用户请求。通常,用户请求可寻求数字助理作出信息性回答或数字助理执行任务。针对用户请求的令人满意的响应可以是提供所请求的信息性回答、执行所请求的任务、或这两者的组合。例如,用户可向数字助理提出诸如“我现在在哪里?”之类的问题。基于用户的当前位置,数字助理可回答“你在中央公园西门附近。”用户还可请求执行任务,例如“请邀请我的朋友下周来参加我女朋友的生日聚会。”作为响应,数字助理可通过讲出“好的,马上”来确认请求,并然后代表用户将合适的日历邀请发送到用户的电子通讯录中列出的用户的朋友中的每个朋友。在执行所请求的任务期间,数字助理有时可在很长时间段内在涉及多次信息交换的持续对话中与用户进行交互。存在与数字助理进行交互以请求信息或执行各种任务的许多其他方法。除提供语音响应并采取经编程的动作之外,数字助理还可提供其他视频或音频形式,例如,以文本、警报、音乐、视频、动画等形式的响应。
如图1中所示,在一些示例中,数字助理系统可根据客户端-服务器模型来实现。数字助理可包括在用户设备104上执行的客户端侧部分102(后文称作“DA客户端102”),以及在服务器系统108上执行的服务器侧部分106(后文称作“DA服务器106”)。DA客户端102可通过一个或多个网络110与DA服务器106通信。DA客户端102可提供客户端侧功能诸如面向用户的输入和输出处理,并且与DA服务器106进行通信。DA服务器106可为各自位于相应的用户设备104上的任意数量的DA客户端102提供服务器侧功能。
在一些示例中,DA服务器106可包括面向客户端的I/O接口112、一个或多个处理模块114、数据和模型116,以及至外部服务的I/O接口118。面向客户端的I/O接口112可有助于DA服务器106的面向客户端的输入和输出处理。一个或多个处理模块114可利用数据和模型116以处理语音输入并基于自然语言输入来确定用户的意图。另外,一个或多个处理模块114基于所推断的用户意图来执行任务。在一些示例中,DA服务器106可通过一个或多个网络110与外部服务120通信以完成任务或采集信息。至外部服务的I/O接口118可有助于此类通信。
用户设备104可为任何合适的电子设备。例如,用户设备可为便携式多功能设备(例如设备200,如下文结合图2A所述)、多功能设备(例如设备400,如下文结合图4所述)或个人电子设备(例如设备600,如下文结合图6A-图6B所述)。便携式多功能设备可例如为还包含其他功能诸如PDA和/或音乐播放器功能的移动电话。便携式多功能设备的具体示例可包括但来自Apple Inc.(Cupertino,California)的iPod和设备。便携式多功能设备的其他示例可包括但不限于膝上型计算机或平板计算机。另外,在一些示例中,用户设备104可为非便携式多功能设备。具体地,用户设备104可为台式计算机、游戏机、电视机或电视机机顶盒。在一些示例中,用户设备104可包括触敏表面(例如触摸屏显示器和/或触摸板)。另外,用户设备104可任选地包括一个或多个其他物理用户接口设备,诸如物理键盘、鼠标和/或操纵杆。电子设备的各个示例诸如多功能设备在下文更详细地描述。
一个或多个通信网络110的示例可包括局域网(LAN)和广域网(WAN),例如互联网。一个或多个通信网络110可使用任何已知的网络协议来实施,所述网络协议包括各种有线或无线协议,诸如例如以太网、通用串行总线(USB)、火线(FIREWIRE)、全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi、互联网电话协议(VoIP)、Wi-MAX、或任何其他合适的通信协议。
服务器系统108可在计算机的一个或多个独立式数据处理设备或分布式网络上实施。在一些示例中,服务器系统108还可采用第三方服务提供方(例如,第三方云服务提供方)的各种虚拟设备和/或服务来提供服务器系统108的潜在计算资源和/或基础结构资源。
在一些示例中,用户设备104可经由第二用户设备122与DA服务器106通信。第二用户设备122可与用户设备104类似或相同。例如,第二用户设备122可类似于下文结合图2A、图4和图6A-图6B所述的设备200,400或600。用户设备104可被配置为经由直接通信连接诸如蓝牙、NFC、BTLE等或经由有线或无线网络诸如本地Wi-Fi网络通信耦接到第二用户设备122。在一些示例中,第二用户设备122可被配置为充当用户设备104和DA服务器106之间的代理。例如,用户设备104的DA客户端102可被配置为经由第二用户设备122将信息(例如在用户设备104处接收的用户请求)传输至DA服务器106。DA服务器106可处理信息并经由第二用户设备122将相关数据(例如响应于用户请求的数据内容)返回至用户设备104。
在一些示例中,用户设备104可被配置为将对数据的缩略请求传送至第二用户设备122以减少从用户设备104传输的信息的量。第二用户设备122可被配置为确定添加至缩略请求的补充信息以生成传输至DA服务器106的完整请求。该系统架构可有利地允许具有有限通信能力和/或有限电池电量的用户设备104(例如表或类似的紧凑型电子设备)通过使用具有较大通信能力和/或电池电量的第二用户设备122(例如移动电话、膝上型计算机、平板计算机等)作为至DA服务器106的代理来访问由DA服务器106提供的服务。虽然在图1中只示出了两个用户设备104和122,但应当理解,系统100可包括在该代理配置中配置用于与DA服务器系统106通信的任意数量和类型的用户设备。
尽管图1中所示的数字助理可包括客户端侧部分(例如,DA客户端102)和服务器侧部分(例如,DA服务器106)两者,但在一些示例中,数字助理的功能可被实现为安装在用户设备上的独立应用程序。此外,数字助理的客户端部分与服务器部分之间的功能划分在不同的具体实施中可变化。例如,在一些示例中,DA客户端可为仅提供面向用户的输入和输出处理功能并将数字助理的所有其他功能委派给后端服务器的瘦客户端。
2、电子设备
现在将注意力转向用于实施数字助理的客户端侧部分的电子设备的实施方案。图2A是示出了根据一些实施方案的具有触敏显示器系统212的便携式多功能设备200的框图。触敏显示器212有时为了方便被叫做“触摸屏”,并且有时可被称为或被叫做“触敏显示器系统”。设备200包括存储器202(其任选地包括一个或多个计算机可读存储介质)、存储器控制器222、一个或多个处理单元(CPU)220、外围设备接口218、RF电路208、音频电路210、扬声器211、麦克风213、输入/输出(I/O)子系统206、其他输入控制设备216、和外部端口224。设备200任选地包括一个或多个光学传感器264。设备200任选地包括用于检测设备200(例如,触敏表面,诸如设备200的触敏显示器系统212)上的接触的强度的一个或多个接触强度传感器265。设备200任选地包括用于在设备200上生成触觉输出的一个或多个触觉输出发生器267(例如,在触敏表面诸如设备200的触敏显示器系统212或设备400的触摸板455上生成触觉输出)。这些部件任选地通过一个或多个通信总线或信号线203进行通信。
如在本说明书和权利要求书中所使用的,术语触敏表面上的接触的“强度”是指触敏表面上的接触(例如,手指接触)的力或压力(每单位面积的力),或是指触敏表面上的接触的力或压力的替代物(代用物)。接触的强度具有值范围,该值范围包括至少四个不同的值并且更典型地包括上百个不同的值(例如,至少256个)。接触的强度任选地使用各种方法和各种传感器或传感器的组合来确定(或测量)。例如,在触敏表面下方或相邻于触敏表面的一个或多个力传感器任选地用于测量触敏表面上的各个点处的力。在一些具体实施中,来自多个力传感器的力测量被合并(例如,加权平均)以确定估计的接触力。类似地,触笔的压敏顶端任选地用于确定触笔在触敏表面上的压力。另选地,在触敏表面上检测到的接触面积的大小和/或其变化、邻近接触的触敏表面的电容和/或其变化、和/或邻近接触的触敏表面的电阻和/或其变化任选地被用作触敏表面上的接触的力或压力的替代物。在一些具体实施中,接触力或压力的替代物测量直接用于确定是否已超过强度阈值(例如,强度阈值是以与替代物测量对应的单位来描述的)。在一些具体实施中,接触力或压力的替代物测量被转换成估计的力或压力,并且估计的力或压力用于确定是否已超过强度阈值(例如,强度阈值是以压力的单位进行测量的压力阈值)。使用接触的强度作为用户输入的属性,从而允许用户访问用户在尺寸减小的设备上可能本来不能访问的附加设备功能,该尺寸减小的设备具有有限的实地面积,其用于(例如,在触敏显示器上)显示示能表示和/或接收用户输入(例如,经由触敏显示器、触敏表面或物理控件/机械控件,诸如旋钮或按钮)。
如本说明书和权利要求书中所使用的,术语“触觉输出”是指将由用户利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备的部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物理位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与用户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触的情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感与设备或设备的部件的物理特征的所感知的变化对应。例如,触敏表面(例如,触敏显示器或触控板)的移动任选地由用户解释为对物理致动按钮的“按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如“按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压(例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。作为另一个示例,即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用户解释为或感测为触敏表面的“粗糙度”。虽然由用户对触摸的此类解释将受到用户的个体化感官知觉的限制,但是存在触摸的许多感官知觉是大多数用户共有的。因此,当触觉输出被描述为与用户的特定感官知觉(例如,“按下点击”、“松开点击”、“粗糙度”)对应时,除非另外陈述,否则所生成的触觉输出与设备或其部件的物理位移对应,该物理位移将会生成典型(或普通)用户的感官知觉。
应当理解,设备200仅是便携式多功能设备的一个示例,并且设备200任选地具有比所示出的更多或更少的部件,任选地组合两个或更多个部件,或者任选地具有这些部件的不同配置或布置。图2A中所示的各种部件以硬件、软件、或硬件与软件两者的组合来实现,包括一个或多个信号处理电路和/或专用集成电路。
存储器202可包括一个或多个计算机可读存储介质。该计算机可读存储介质可以是有形的和非暂态的。存储器202可包括高速随机存取存储器并且还可包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备、或其他非易失性固态存储器设备。存储器控制器222可控制设备200的其他部件访问存储器202。
在一些示例中,存储器202的非暂态计算机可读存储介质可用于存储指令(例如,用于执行过程1000和1100的多个方面,如下文所述),该指令供指令执行系统、装置或设备诸如基于计算机的系统、包含处理器的系统或可从指令执行系统、装置或设备取指令并执行指令的其他系统使用或与指令执行系统、装置或设备结合。在其他示例中,指令(例如,用于执行过程1000和1100的多个方面,如下文所述)可存储在服务器系统108的非暂态计算机可读存储介质(未示出)上或可在存储器202的非暂态计算机可读存储介质和服务器系统108的非暂态计算机可读存储介质之间被划分。在本文的语境中,“非暂态计算机可读存储介质”可以是可包括或存储程序以供指令执行系统、装置和设备使用或与其结合的任何介质。
外围设备接口218可被用于将设备的输入外围设备和输出外围设备耦接到CPU220和存储器202。一个或多个处理器220运行或执行存储在存储器202中的各种软件程序和/或指令集以执行设备200的各种功能并处理数据。在一些示例中,外围设备接口218、CPU220、和存储器控制器222可在单个芯片诸如芯片204上实现。在一些其他示例中,它们可在单独的芯片上实现。
RF(射频)电路208接收和发送也被叫做电磁信号的RF信号。RF电路208将电信号转换成电磁信号/将电磁信号转换成电信号,并且经由电磁信号来与通信网络和其他通信设备进行通信。RF电路208任选地包括用于执行这些功能的熟知的电路,包括但不限于天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编解码芯片组、用户身份模块(SIM)卡、存储器等等。RF电路208任选地通过无线通信与网络和其他设备进行通信,该网络为诸如互联网,也被称为万维网(WWW)、内联网和/或无线网络诸如蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN)。RF电路208任选地包括用于检测近场通信(NFC)场的熟知的电路,诸如通过近程通信无线电部件来进行检测。无线通信任选地使用多种通信标准、协议和技术中的任一种通信标准、协议和技术,包括但不限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、演进、纯数据(EV-DO)、HSPA、HSPA+、双单元HSPA(DC-HSPDA)、长期演进(LTE)、近场通信(NFC)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、蓝牙低功耗、无线保真(Wi-Fi)(例如,IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、IEEE 802.11n和/或IEEE 802.11ac)、互联网协议语音(VoIP)、Wi-MAX、电子邮件协议(例如,互联网消息访问协议(IMAP)和/或邮局协议(POP))、即时消息(例如,可扩展消息处理和存在协议(XMPP)、用于即时消息和存在利用扩展的会话发起协议(SIMPLE)、即时消息和存在服务(IMPS))、和/或短消息服务(SMS)、或者包括在本文档提交日期时还未开发出的通信协议的任何其他适当的通信协议。
音频电路210、扬声器211和麦克风213提供用户和设备200之间的音频接口。音频电路210从外围设备接口218接收音频数据,将音频数据转换成电信号,并将电信号传输到扬声器211。扬声器211将电信号转换成人类可听的声波。音频电路210还接收由麦克风213从声波转换的电信号。音频电路210将电信号转换成音频数据,并将音频数据传输到外围设备接口218以用于处理。音频数据可由外围设备接口218从存储器202和/或RF电路208进行检索和/或被传输至存储器202和/或RF电路208。在一些实施方案中,音频电路210还包括耳麦插孔(例如,图3中的312)。耳麦插孔提供音频电路210和可移除的音频输入/输出外围设备之间的接口,该可移除的音频输入/输出外围设备诸如仅输出的耳机或者具有输出(例如,单耳耳机或双耳耳机)和输入(例如,麦克风)两者的耳麦。
I/O子系统206将设备200上的输入/输出外围设备诸如触摸屏212和其他输入控制设备216耦接到外围设备接口218。I/O子系统206任选地包括显示控制器256、光学传感器控制器258、强度传感器控制器259、触觉反馈控制器261、和用于其他输入或控制设备的一个或多个输入控制器260。该一个或多个输入控制器260从其他输入控制设备216接收电信号/将电信号发送到其他输入控制设备216。其他输入控制设备216任选地包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击式转盘等等。在一些另选的实施方案中,一个或多个输入控制器260任选地耦接至以下各项中的任一者(或不耦接至以下各项中的任一者):键盘、红外线端口、USB端口和指针设备诸如鼠标。一个或多个按钮(例如,图3中的308)任选地包括用于扬声器211和/或麦克风213的音量控制的增大/减小按钮。一个或多个按钮任选地包括下压按钮(例如,图3中的306)。
快速按下下压按钮可解除触摸屏212的锁定或者开始使用触摸屏上的手势来对设备进行解锁的过程,如在2005年12月23日提交的标题为“Unlocking a Device byPerforming Gestures on an Unlock Image”的美国专利申请11/322,549即美国专利7,657,849中所述,其全文以引用方式并入本文。对下压按钮(例如306)更长时间的按压可使设备200开机或关机。用户能够对一个或多个按钮的功能进行自定义。触摸屏212用于实现虚拟按钮或软按钮以及一个或多个软键盘。
触敏显示器212提供设备和用户之间的输入接口和输出接口。显示控制器256从触摸屏212接收电信号和/或将电信号发送至触摸屏212。触摸屏212向用户显示视觉输出。该视觉输出可包括图形、文本、图标、视频及它们的任意组合(统称为“图形”)。在一些实施方案中,一些视觉输出或全部的视觉输出可与用户界面对象对应。
触摸屏212具有基于触觉和/或触觉接触从用户接受输入的触敏表面、传感器或传感器组。触摸屏212和显示控制器256(与存储器202中的任何相关联的模块和/或指令集一起)检测触摸屏212上的接触(和该接触的任何移动或中断),并且将所检测到的接触转换成与被显示在触摸屏212上的用户界面对象(例如,一个或多个软键、图标、网页或图像)的交互。在示例性实施方案中,触摸屏212和用户之间的接触点与用户的手指对应。
触摸屏212可使用LCD(液晶显示器)技术、LPD(发光聚合物显示器)技术、或LED(发光二极管)技术,但是在其他实施方案中可使用其他显示技术。触摸屏212和显示控制器256可使用现在已知的或以后将开发出的多种触摸感测技术中的任何触摸感测技术以及其他接近传感器阵列或用于确定与触摸屏212的一个或多个接触点的其他元件来检测接触及其任何移动或中断,该多种触摸感测技术包括但不限于电容性技术、电阻性技术、红外技术和表面声波技术。在示例性实施方案中,使用投射式互电容感测技术,诸如在Apple Inc.(Cupertino,California)的和iPod 发现的技术。
触摸屏212的一些实施方案中的触敏显示器可类似于以下美国专利中所述的多点触敏触摸板:美国专利6,323,846(Westerman等人)、6,570,557(Westerman等人)和/或6,677,932(Westerman);和/或美国专利公开2002/0015024A1,这些专利申请中的每个专利申请据此全文以引用方式并入本文。然而,触摸屏212显示来自设备200的视觉输出,而触敏触摸板不提供视觉输出。
触摸屏212的一些实施方案中的触敏显示器可如在以下专利申请中那样进行描述:(1)于2006年5月2日提交的美国专利申请11/381,313,“Multipoint Touch SurfaceController”;(2)于2004年5月6日提交的美国专利申请10/840,862,“MultipointTouchscreen”;(3)于2004年7月30日提交的美国专利申请10/903,964,“Gestures ForTouch Sensitive Input Devices”;(4)于2005年1月31日提交的美国专利申请11/048,264,“Gestures For Touch Sensitive Input Devices”;(5)于2005年1月18日提交的美国专利申请11/038,590,“Mode-Based Graphical User Interfaces For Touch SensitiveInput Devices”;(6)于2005年9月16日提交的美国专利申请11/228,758,“Virtual InputDevice Placement On A Touch Screen User Interface”;(7)于2005年9月16日提交的美国专利申请11/228,700,“Operation Of A Computer With A Touch Screen Interface”;(8)于2005年9月16日提交的美国专利申请11/228,737,“Activating Virtual Keys Of ATouch-Screen Virtual Keyboard”;和(9)于2006年3月3日提交的美国专利申请11/367,749,“Multi-Functional Hand-Held Device”。所有这些专利申请均全文以引用方式并入本文。
触摸屏212可具有超过100dpi的视频分辨率。在一些实施方案中,触摸屏具有约160dpi的视频分辨率。用户可使用任何合适的物体或附加物诸如触笔、手指等等来与触摸屏212接触。在一些实施方案中,用户界面被设计用于主要与基于手指的接触和手势工作,由于手指在触摸屏上的接触区域较大,因此这可能不如基于触笔的输入精确。在一些实施方案中,设备将基于手指的粗略输入翻译为精确的指针/光标位置或命令,以用于执行用户所期望的动作。
在一些实施方案中,除了触摸屏之外,设备200可包括用于激活或去激活特定功能的触摸板(未示出)。在一些实施方案中,触摸板是设备的触敏区域,该触敏区域与触摸屏不同,其不显示视觉输出。触摸板可以是与触摸屏212分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸部。
设备200还包括用于为各种部件供电的电力系统262。电力系统262可包括电力管理系统、一个或多个电源(例如,电池、交流电(AC))、再充电系统、电力故障检测电路、功率变换器或逆变器、电源状态指示器(例如,发光二极管(LED))和与便携式设备中的电力的生成、管理和分配相关联的任何其他部件。
设备200也可包括一个或多个光学传感器264。图2A示出了耦接到I/O子系统206中的光学传感器控制器258的光学传感器。光学传感器264可包括电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。光学传感器264从环境接收通过一个或多个透镜而投射的光,并且将光转换成表示图像的数据。结合成像模块243(也称为相机模块),光学传感器264可捕获静态图像或视频。在一些实施方案中,光学传感器位于设备200的与设备的前部上的触摸屏显示器212相背对的后部上,使得触摸屏显示器可被用作用于静态图像和/或视频图像采集的取景器。在一些实施方案中,光学传感器位于设备的前部,使得在用户在触摸屏显示器上查看其他视频会议参与者的同时可获取该用户的图像以用于视频会议。在一些实施方案中,光学传感器264的位置可由用户改变(例如通过旋转设备外壳中的透镜和传感器),使得单个光学传感器264可与触摸屏显示器一起使用,以用于视频会议和静态图像和/或视频图像采集两者。
设备200任选地还包括一个或多个接触强度传感器265。图2A示出了耦接到I/O子系统206中的强度传感器控制器259的接触强度传感器。接触强度传感器265任选地包括一个或多个压阻应变仪、电容式力传感器、电气力传感器、压电力传感器、光学力传感器、电容式触敏表面或其他强度传感器(例如,用于测量触敏表面上的接触的力(或压力)的传感器)。接触强度传感器265从环境接收接触强度信息(例如,压力信息或压力信息的代用物)。在一些实施方案中,至少一个接触强度传感器与触敏表面(例如,触敏显示器系统212)并置排列或邻近。在一些实施方案中,至少一个接触强度传感器位于设备200的与触摸屏显示器212相背对的后部上,所述触摸屏显示器位于设备200的前部上。
设备200还可包括一个或多个接近传感器266。图2A示出了耦接到外围设备接口218的接近传感器266。作为另外一种选择,接近传感器266可耦接到I/O子系统206中的输入控制器260。接近传感器266可如以下美国专利申请中所述的那样运行:美国专利申请11/241,839,“Proximity Detector In Handheld Device”;美国专利申请11/240,788,“Proximity Detector In Handheld Device”;美国专利申请11/620,702,“Using AmbientLight Sensor To Augment Proximity Sensor Output”;美国专利申请11/586,862,“Automated Response To And Sensing Of User Activity In Portable Devices”;和美国专利申请11/638,251,“Methods And Systems For Automatic Configuration OfPeripherals”,这些美国专利申请据此全文以引用方式并入本文。在一些实施方案中,当多功能设备被置于用户的耳朵附近时(例如,当用户正在进行电话呼叫时),接近传感器关闭并且禁用触摸屏212。
设备200任选地还包括一个或多个触觉输出发生器267。图2A示出了耦接到I/O子系统206中的触觉反馈控制器261的触觉输出发生器。触觉输出发生器267任选地包括一个或多个电声设备诸如扬声器或其他音频部件;和/或将能量转换成线性运动的机电设备诸如电机、螺线管、电活性聚合器、压电致动器、静电致动器或其他触觉输出生成部件(例如,用于将电信号转换成设备上的触觉输出的部件)。接触强度传感器265从触觉反馈模块233接收触觉反馈生成指令,并且在设备200上生成能够由设备200的用户感觉到的触觉输出。在一些实施方案中,至少一个触觉输出发生器与触敏表面(例如,触敏显示器系统212)并置排列或邻近,并且任选地通过竖直地(例如,向设备200的表面内/外)或侧向地(例如,在与设备200的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一些实施方案中,至少一个触觉输出发生器传感器位于设备200的与触摸屏显示器212相背对的后部上,所述触摸屏显示器位于设备200的前部上。
设备200还可包括一个或多个加速度计268。图2A示出了耦接至外围设备接口218的加速度计268。另选地,加速度计268可耦接至I/O子系统206中的输入控制器260。加速度计268可如美国专利公开20050190059,“Acceleration-based Theft Detection Systemfor Portable Electronic Devices”和美国专利公开20060017692,“Methods AndApparatuses For Operating A Portable Device Based On An Accelerometer”中所述的那样运行,这两个美国专利公开均全文以引用方式并入本文。在一些实施方案中,基于对从该一个或多个加速度计所接收的数据的分析来在触摸屏显示器上以纵向视图或横向视图显示信息。设备200任选地除了一个或多个加速度计268之外还包括磁力仪(未示出)和GPS(或GLONASS或其他全球导航系统)接收器(未示出),以用于获取关于设备200的位置和取向(例如,纵向或横向)的信息。
在一些实施方案中,存储在存储器202中的软件部件包括操作系统226、通信模块(或指令集)228、接触/运动模块(或指令集)230、图形模块(或指令集)232、文本输入模块(或指令集)234、全球定位系统(GPS)模块(或指令集)235、数字助理客户端模块229和应用程序(或指令集)236。另外,存储器202可存储数据和模型,诸如用户数据和模型231。此外,在一些实施方案中,存储器202(图2A)或470(图4)存储设备/全局内部状态257,如图2A、和图4中所示的。设备/全局内部状态257包括以下各项中的一者或多者:活动应用程序状态,该活动应用程序状态用于指示哪些可能存在的应用程序当前是活动的;显示状态,该显示状态用于指示什么应用程序、视图或其他信息占据触摸屏显示器212的各个区域;传感器状态,该传感器状态包括从设备的各个传感器和输入控制设备216获取的信息;和关于设备位置和/或姿态的位置信息。
操作系统226(例如,Darwin、RTXC、LINUX、UNIX、OS X、iOS、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、功率管理等)的各种软件部件和/或驱动程序,并且促进各种硬件部件和软件部件之间的通信。
通信模块228促进通过一个或多个外部端口224来与其他设备进行通信,并且还包括用于处理由RF电路208和/或外部端口224所接收的数据的各种软件部件。外部端口224(例如,通用串行总线(USB)、火线等)适于直接耦接到其他设备或者间接地通过网络(例如,互联网、无线LAN等)进行耦接。在一些实施方案中,外部端口是多针(例如,30针)连接器,该多针连接器与(Apple Inc.的商标)设备上所使用的30针连接器相同或类似和/或与其兼容。
接触/运动模块230任选地检测与触摸屏212(结合显示控制器256)和其他触敏设备(例如,触摸板或物理点击式转盘)的接触。接触/运动模块230包括各种软件部件以用于执行与接触检测相关的各种操作,诸如确定是否已经发生了接触(例如,检测手指按下事件)、确定接触强度(例如,接触的力或压力,或者接触的力或压力的替代物)、确定是否存在接触的移动并跟踪在触敏表面上的移动(例如,检测一个或多个手指拖动事件),以及确定接触是否已经停止(例如,检测手指抬起事件或者接触断开)。接触/运动模块230从触敏表面接收接触数据。确定接触点的移动任选地包括确定接触点的速率(量值)、速度(量值和方向)和/或加速度(量值和/或方向的改变),该接触点的移动由一系列接触数据来表示。这些操作任选地被应用于单点接触(例如,单指接触)或者多点同时接触(例如,“多点触摸”/多个手指接触)。在一些实施方案中,接触/运动模块230和显示控制器256检测触摸板上的接触。
在一些实施方案中,接触/运动模块230使用一组一个或多个强度阈值来确定操作是否已由用户执行(例如,确定用户是否已“点击”图标)。在一些实施方案中,根据软件参数来确定强度阈值的至少一个子集(例如,强度阈值不是由特定物理致动器的激活阈值来确定的,并且可在不改变设备200的物理硬件的情况下被调节)。例如,在不改变触控板或触摸屏显示器硬件的情况下,触控板或触摸屏的鼠标“点击”阈值可被设定成预定义的阈值的大范围中的任一个阈值。另外,在一些具体实施中,向设备的用户提供用于调节一组强度阈值中的一个或多个强度阈值(例如,通过调节各个强度阈值和/或通过利用对“强度”参数的系统级点击来一次调节多个强度阈值)的软件设置。
接触/运动模块230任选地检测用户的手势输入。触敏表面上的不同手势具有不同的接触图案(例如,所检测到的接触的不同运动、定时和/或强度)。因此,任选地通过检测具体接触图案来检测手势。例如,检测手指轻击手势包括检测手指按下事件,然后在与手指按下事件相同的位置(或基本上相同的位置)处(例如,在图标的位置处)检测手指抬起(抬离)事件。作为另一个示例,在触敏表面上检测手指轻扫手势包括检测手指按下事件,然后检测一个或多个手指拖动事件,并且随后检测手指抬起(抬离)事件。
图形模块232包括用于在触摸屏212或其他显示器上呈现和显示图形的各种已知的软件部件,包括用于改变所显示的图形的视觉冲击(例如,亮度、透明度、饱和度、对比度或其他视觉特征)的部件。如本文所用,术语“图形”包括可被显示给用户的任何对象,包括但不限于文本、网页、图标(诸如包括软键的用户界面对象)、数字图像、视频、动画等等。
在一些实施方案中,图形模块232存储待使用的表示图形的数据。每个图形任选地被分配有对应的代码。图形模块232从应用程序等接收用于指定待显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数据和其他图形属性数据,并随后生成输出至显示控制器256的屏幕图像数据。
触觉反馈模块233包括用于生成指令的各种软件部件,该指令由触觉输出发生器267使用,以便响应于用户与设备200的交互而在设备200上的一个或多个位置处产生触觉输出。
可作为图形模块232的部件的文本输入模块234提供用于在多种应用程序(例如,联系人237、电子邮件240、IM 241、浏览器247、和需要文本输入的任何其他应用程序)中输入文本的软键盘。
GPS模块235确定设备的位置并提供该信息以在各种应用程序中使用(例如,提供给电话238以在基于位置的拨号中使用,提供给相机243作为图片/视频元数据,以及提供给提供基于位置的服务的应用程序,诸如天气桌面小程序、当地黄页桌面小程序和地图/导航桌面小程序)。
数字助理客户端模块229可包括用于提供数字助理的客户端侧功能的各个客户端侧数字助理指令。例如,数字助理客户端模块229能够通过便携式多功能设备200的各个用户接口(例如麦克风213、一个或多个加速度计268、触敏显示器系统212、一个或多个光学传感器229、其他输入控制设备216等)接受语音输入(例如言语输入)、文本输入、触摸输入和/或手势输入。数字助理客户端模块229还能够通过便携式多功能设备200的各个输出接口(例如扬声器211、触敏显示器系统212、一个或多个触觉输出发生器267等)提供音频(例如语音输出)、视觉和/或触觉形式的输出。例如,可将输出提供为语音、声音、警报、文本消息、菜单、图形、视频、动画、振动、和/或以上两者或更多者的组合。在操作期间,数字助理客户端模块229可使用RF电路208与DA服务器106通信。
用户数据和模型231可包括与用户相关联的各个数据(例如,特定于用户的词汇数据、用户偏好数据、用户指定的名称发音、来自用户的电子通讯录的数据、待办事项、购物清单等)以提供数字助理的客户端侧功能。另外,用户数据和模型231可包括用于处理用户输入和确定用户意图的各个模块(例如语音识别模型、统计语言模型、自然语言处理模型、知识本体、任务流模型、服务模型等)。
在一些示例中,数字助理客户端模块229可利用便携式多功能设备200的各种传感器、子系统和外围设备来从便携式多功能设备200的周围环境采集附加信息以建立与用户、当前用户交互、和/或当前用户输入相关联的上下文。在一些示例中,数字助理客户端模块229可将上下文信息或其子集与用户输入一起提供至DA服务器106以帮助推断用户的意图。在一些示例中,数字助理还可使用上下文信息来确定如何准备输出并将其传送至用户。上下文信息可指上下文数据。
在一些示例中,伴随用户输入的上下文信息可包括传感器信息,例如照明、环境噪声、环境温度、周围环境的图像或视频等。在一些示例中,上下文信息还可包括设备的物理状态,例如设备取向、设备位置、设备温度、功率电平、速度、加速度、运动模式、蜂窝信号强度等。在一些示例中,还可将与DA服务器106的软件状态相关的信息,例如便携式多功能设备200的运行过程、已安装程序、过去和当前的网络活动、后台服务、错误日志、资源使用等作为与用户输入相关联的上下文信息提供至DA服务器106。
在一些示例中,数字助理客户端模块229可响应于来自DA服务器106的请求而选择性地提供存储在便携式多功能设备200上的信息(例如,用户数据231)。在一些示例中,数字助理客户端模块229还可在DA服务器106请求时引出来自用户经由自然语言对话或其他用户界面的附加输入。数字助理客户端模块229可将所述附加输入传送至DA服务器106,以帮DA服务器106进行意图推断和/或满足在用户请求中表达的用户意图。
下文结合图7A-图7C提供了对数字助理的更详细的描述。应当意识到,数字助理客户端模块229可包括如下文所述的数字助理模块726的任意数量的子模块。
应用程序236可包括以下模块(或指令集)或者其子组或超集:
·联系人模块237(有时也称为通讯录或联系人列表);
·电话模块238;
·视频会议模块239;
·电子邮件客户端模块240;
·即时消息(IM)模块241;
·健身支持模块242;
·用于静态图像和/或视频图像的相机模块243;
·图像管理模块244;
·视频播放器模块;
·音乐播放器模块;
·浏览器模块247;
·日历模块248;
·桌面小程序模块249,其可包括以下各项中的一者或多者:天气桌面小程序249-1、股市桌面小程序249-2、计算器桌面小程序249-3、闹钟桌面小程序249-4、词典桌面小程序249-5、和由用户获取的其他桌面小程序以及用户创建的桌面小程序249-6;
·用于生成用户创建的桌面小程序249-6的桌面小程序创建器模块250;
·搜索模块251;
·视频和音乐播放器模块252,其合并视频播放器模块和音乐播放器模块;
·记事本模块253;
·地图模块254;和/或
·在线视频模块255。
可被存储在存储器202中的其他应用程序236的示例包括其他文字处理应用程序、其他图像编辑应用程序、绘图应用程序、呈现应用程序、支持JAVA的应用程序、加密、数字权益管理、语音识别、和语音复制。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、和文本输入模块234,联系人模块237可被用于管理通讯录或联系人列表(例如存储在存储器202或存储器470中的联系人模块237的应用程序内部状态292中),包括:将一个或多个姓名添加到通讯录;从通讯录删除一个或多个姓名;使一个或多个电话号码、一个或多个电子邮件地址、一个或多个物理地址或其他信息与姓名相关联;使图像与姓名相关联;对姓名归类和分类;提供电话号码或电子邮件地址以发起和/或促成通过电话238、视频会议模块239、电子邮件240、或IM 241的通信;等等。
结合RF电路208、音频电路210、扬声器211、麦克风213、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、和文本输入模块234,电话模块238可用于输入与电话号码对应的字符序列、访问联系人模块237中的一个或多个电话号码、修改已输入的电话号码、拨打相应的电话号码、进行会话以及当会话完成时断开或挂断。如上所述,无线通信可使用多个通信标准、协议和技术中的任一者。
结合RF电路208、音频电路210、扬声器211、麦克风213、触摸屏212、显示控制器256、光学传感器264、光学传感器控制器258、接触/运动模块230、图形模块232、文本输入模块234、联系人模块237和电话模块238,视频会议模块239包括根据用户指令来发起、进行和终止用户与一个或多个其他参与方之间的视频会议的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,电子邮件客户端模块240包括响应于用户指令来创建、发送、接收和管理电子邮件的可执行指令。结合图像管理模块244,电子邮件客户端模块240使得非常容易创建和发送具有由相机模块243拍摄的静态图像或视频图像的电子邮件。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,即时消息模块241包括用于以下操作的可执行指令:输入与即时消息对应的字符序列、修改先前输入的字符、传输相应即时消息(例如,使用短消息服务(SMS)或多媒体消息服务(MMS)协议以用于基于电话的即时消息或者使用XMPP、SIMPLE、或IMPS以用于基于互联网的即时消息)、接收即时消息以及查看所接收的即时消息。在一些实施方案中,所传输的和/或所接收的即时消息可包括图形、照片、音频文件、视频文件和/或在MMS和/或增强型消息服务(EMS)中支持的其他附件。如本文所用,“即时消息”是指基于电话的消息(例如,使用SMS或MMS发送的消息)和基于互联网的消息(例如,使用XMPP、SIMPLE、或IMPS发送的消息)两者。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、GPS模块235、地图模块254、和音乐播放器模块,健身支持模块242包括用于以下操作的可执行指令:创建健身(例如具有时间、距离、和/或卡路里燃烧目标);与健身传感器(运动设备)进行通信;接收健身传感器数据;校准用于监测健身的传感器;选择健身音乐并进行播放;以及显示、存储和传输健身数据。
结合触摸屏212、显示控制器256、一个或多个光学传感器264、光学传感器控制器258、接触/运动模块230、图形模块232和图像管理模块244,相机模块243包括用于以下操作的可执行指令:捕获静态图像或视频(包括视频流)并且将它们存储到存储器202中、修改静态图像或视频的特征、或从存储器202删除静态图像或视频。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、和相机模块243,图像管理模块244包括用于排列、修改(例如,编辑)、或以其他方式操控、加标签、删除、呈现(例如,在数字幻灯片或相册中)、以及存储静态图像和/或视频图像的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,浏览器模块247包括用于根据用户指令来浏览互联网(包括搜索、链接至、接收、和显示网页或其部分,以及链接至网页的附件和其他文件)的可执行指令。
结合RF电路系统208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、电子邮件客户端模块240和浏览器模块247,日历模块248包括用于根据用户指令来创建、显示、修改和存储日历以及与日历相关联的数据(例如,日历条目、待办事项等)的可执行指令。
结合RF电路系统208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、和浏览器模块247,桌面小程序模块249是可由用户下载并使用的微型应用程序(例如,天气桌面小程序249-1、股市桌面小程序249-2、计算器桌面小程序249-3、闹钟桌面小程序249-4、和词典桌面小程序249-5)或由用户创建的微型应用程序(例如,用户创建的桌面小程序249-6)。在一些实施方案中,桌面小程序包括HTML(超文本标记语言)文件、CSS(层叠样式表)文件和JavaScript文件。在一些实施方案中,桌面小程序包括XML(可扩展标记语言)文件和JavaScript文件(例如,Yahoo!桌面小程序)。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、和浏览器模块247,桌面小程序创建器模块250可被用户用于创建桌面小程序(例如,将网页的用户指定部分转到桌面小程序中)。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,搜索模块251包括用于根据用户指令来搜索存储器202中的匹配一个或多个搜索条件(例如,一个或多个用户指定的搜索词)的文本、音乐、声音、图像、视频和/或其他文件的可执行指令。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、音频电路系统210、扬声器211、RF电路系统208、和浏览器模块247,视频和音乐播放器模块252包括允许用户下载和回放以一种或多种文件格式(诸如MP3或AAC文件)存储的所记录的音乐和其他声音文件的可执行指令,以及用于显示、呈现或以其他方式回放视频(例如,在触摸屏212上或在经由外部端口224连接的外部显示器上)的可执行指令。在一些实施方案中,设备200任选地包括MP3播放器诸如iPod(Apple Inc.的商标)的功能。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,记事本模块253包括根据用户指令来创建和管理记事本、待办事项等的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、GPS模块235和浏览器模块247,地图模块254可用于根据用户指令接收、显示、修改和存储地图以及与地图相关联的数据(例如,驾驶方向、与特定位置处或附近的商店及其他兴趣点有关的数据、以及其他基于位置的数据)。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、音频电路210、扬声器211、RF电路208、文本输入模块234、电子邮件客户端模块240和浏览器模块247,在线视频模块255包括指令,该指令允许用户访问、浏览、接收(例如,通过流式传输和/或下载)、回放(例如在触摸屏上或在经由外部端口224所连接的外部显示器上)、发送具有至特定在线视频的链接的电子邮件,以及以其他方式管理一种或多种文件格式诸如H.264的在线视频。在一些实施方案中,使用即时消息模块241而不是电子邮件客户端模块240来发送至特定在线视频的链接。在线视频应用程序的附加描述可在于2007年6月20日提交的标题为“Portable Multifunction Device,Method,and Graphical User Interface forPlaying Online Videos”的美国临时专利申请60/936,562、和于2007年12月31日提交的标题为“Portable Multifunction Device,Method,and Graphical User Interface forPlaying Online Videos”的美国专利申请11/968,067中找到,这两个专利申请的内容据此全文以引用方式并入本文。
上述每个模块和应用程序与用于执行上述一种或多种功能以及在本专利申请中所述的方法(例如,本文所述的计算机实现的方法和其他信息处理方法)的可执行指令集对应。这些模块(例如,指令集)不必被实现为独立的软件程序、过程或模块,并因此在各种实施方案中可组合或以其他方式重新布置这些模块的各种子集。例如,视频播放器模块可与音乐播放器模块组合成单个模块(例如,图2A中的视频和音乐播放器模块252)。在一些实施方案中,存储器202可存储上述模块和数据结构的子集。此外,存储器202可存储上文没有描述的附加模块和数据结构。
在一些实施方案中,设备200是该设备上的预定义的一组功能的操作唯一地通过触摸屏和/或触摸板来执行的设备。通过将触摸屏和/或触摸板用作为用于设备200的操作的主要输入控制设备,可减少设备200上的物理输入控制设备(诸如下压按钮、拨号盘等等)的数量。
唯一地通过触摸屏和/或触摸板执行的该预定义的一组功能任选地包括在用户界面之间进行导航。在一些实施方案中,触摸板在被用户触摸时将设备200从显示于设备200上的任何用户界面导航到主菜单、home菜单或根菜单。在此类实施方案中,使用触摸板来实现“菜单按钮”。在一些其他实施方案中,菜单按钮是物理下压按钮或者其他物理输入控制设备,而不是触摸板。
图2B是示出了根据一些实施方案的用于事件处理的示例性部件的框图。在一些实施方案中,存储器202(图2A)或存储器470(图4)包括事件分类器270(例如,在操作系统226中)以及相应的应用程序236-1(例如,前述应用程序237-251、255、480-490中的任一个应用程序)。
事件分类器270接收事件信息并确定要将事件信息递送到的应用程序236-1和应用程序236-1的应用程序视图291。事件分类器270包括事件监视器271和事件分配器模块274。在一些实施方案中,应用程序236-1包括应用程序内部状态292,该应用程序内部状态指示当应用程序是活动的或正在执行时被显示在触敏显示器212上的一个或多个当前应用程序视图。在一些实施方案中,设备/全局内部状态257被事件分类器270用于确定哪个(哪些)应用程序当前是活动的,并且应用程序内部状态292被事件分类器270用于确定要将事件信息递送到的应用程序视图291。
在一些实施方案中,应用程序内部状态292包括附加信息,诸如以下各项中的一者或多者:当应用程序236-1恢复执行时将被使用的恢复信息、指示正被应用程序236-1显示的信息或准备好用于被应用程序236-1显示的信息的用户界面状态信息、用于使得用户能够返回到应用程序136-1的前一状态或视图的状态队列、以及用户采取的先前动作的重复/撤销队列。
事件监视器271从外围设备接口218接收事件信息。事件信息包括关于子事件(例如,触敏显示器212上的作为多点触摸手势的一部分的用户触摸)的信息。外围设备接口218传输其从I/O子系统206或传感器(诸如接近传感器266)、一个或多个加速度计268和/或麦克风213(通过音频电路210)所接收的信息。外围设备接口218从I/O子系统206接收的信息包括来自触敏显示器212或触敏表面的信息。
在一些实施方案中,事件监视器271以预先确定的间隔将请求发送至外围设备接口218。作为响应,外围设备接口218传输事件信息。在其他实施方案中,外围设备接口218仅当存在显著事件(例如,接收到高于预先确定的噪声阈值的输入和/或接收到超过预先确定的持续时间的输入)时才传输事件信息。
在一些实施方案中,事件分类器270还包括命中视图确定模块272和/或活动事件识别器确定模块273。
当触敏显示器212显示多于一个视图时,命中视图确定模块272提供用于确定子事件已在一个或多个视图内的什么地点发生的软件过程。视图由用户可在显示器上看到的控件和其他元素构成。
与应用程序相关联的用户界面的另一方面是一组视图,本文中有时也称为应用程序视图或用户界面窗口,在其中显示信息并且发生基于触摸的手势。在其中检测到触摸的(相应应用程序的)应用程序视图可与应用程序的程序化或视图分级结构内的程序化水平对应。例如,在其中检测到触摸的最低水平视图可被叫做命中视图,并且被识别为正确输入的那组事件可至少部分地基于初始触摸的命中视图来确定,该初始触摸开始基于触摸的手势。
命中视图确定模块272接收与基于触摸的手势的子事件相关的信息。当应用程序具有在分级结构中组织的多个视图时,命中视图确定模块272将命中视图识别为应对子事件进行处理的分级结构中的最低视图。在大多数情况下,命中视图是发起子事件(例如,形成事件或潜在事件的子事件序列中的第一子事件)在其中发生的最低水平视图。一旦命中视图被命中视图确定模块272识别,命中视图便通常接收与其被识别为命中视图所针对的同一触摸或输入源相关的所有子事件。
活动事件识别器确定模块273确定视图分级结构内的哪个或哪些视图应接收特定子事件序列。在一些实施方案中,活动事件识别器确定模块273确定仅命中视图应接收特定的子事件序列。在其他实施方案中,活动事件识别器确定模块273确定包括子事件的物理位置的所有视图是活跃参与的视图,并且因此确定所有活跃参与的视图应接收特定的子事件序列。在其他实施方案中,即使触摸子事件完全被局限到与一个特定视图相关联的区域,但是分级结构中的更高的视图将仍然保持为活跃参与的视图。
事件分配器模块274将事件信息分配到事件识别器(例如,事件识别器280)。在包括活动事件识别器确定模块273的实施方案中,事件分配器模块274将事件信息递送到由活动事件识别器确定模块273确定的事件识别器。在一些实施方案中,事件分配器模块274在事件队列中存储事件信息,该事件信息由相应事件接收器282进行检索。
在一些实施方案中,操作系统226包括事件分类器270。另选地,应用程序236-1包括事件分类器270。在另一个实施方案中,事件分类器270是独立的模块,或者是存储在存储器202中的另一个模块诸如接触/运动模块230的一部分。
在一些实施方案中,应用程序236-1包括多个事件处理程序290和一个或多个应用程序视图291,其中每个应用程序视图包括用于处理发生在应用程序的用户界面的相应视图内的触摸事件的指令。应用程序236-1的每个应用程序视图291包括一个或多个事件识别器280。通常,相应应用程序视图291包括多个事件识别器280。在其他实施方案中,事件识别器280中的一个或多个事件识别器是独立模块的一部分,该独立模块诸如用户界面工具包(未示出)或应用程序236-1从中继承方法和其他属性的更高水平的对象。在一些实施方案中,相应事件处理程序290包括以下各项中的一者或多者:数据更新器276、对象更新器277、GUI更新器278和/或从事件分类器270所接收的事件数据279。事件处理程序290可利用或调用数据更新器276、对象更新器277或GUI更新器278,以更新应用程序内部状态292。另选地,应用程序视图291中的一个或多个应用程序视图包括一个或多个相应的事件处理程序290。另外,在一些实施方案中,数据更新器276、对象更新器277和GUI更新器278中的一者或多者被包括在相应的应用程序视图291中。
相应的事件识别器280从事件分类器270接收事件信息(例如,事件数据279),并且从事件信息识别事件。事件识别器280包括事件接收器282和事件比较器284。在一些实施方案中,事件识别器280还至少包括以下各项的子集:元数据283和事件递送指令288(其可包括子事件递送指令)。
事件接收器282接收来自事件分类器270的事件信息。事件信息包括关于子事件例如触摸或触摸移动的信息。根据子事件,事件信息还包括附加信息,诸如子事件的位置。当子事件涉及触摸的运动时,事件信息还可包括子事件的速率和方向。在一些实施方案中,事件包括设备从一个取向旋转到另一个取向(例如,从纵向取向旋转到横向取向,或反之亦然),并且事件信息包括关于设备的当前取向(也被称为设备姿态)的对应信息。
事件比较器284将事件信息与预定义的事件或子事件定义进行比较,并且基于该比较来确定事件或子事件,或者确定或更新事件或子事件的状态。在一些实施方案中,事件比较器284包括事件定义286。事件定义286包含事件的定义(例如,预定义的子事件序列),例如事件1(287-1)、事件2(287-2)和其他事件。在一些实施方案中,事件(287)中的子事件例如包括触摸开始、触摸结束、触摸移动、触摸取消和多点触摸。在一个示例中,事件1(287-1)的定义是在被显示对象上的双击。例如,双击包括在被显示对象上的预先确定时长的第一触摸(触摸开始)、预先确定时长的第一抬起(触摸结束)、在被显示对象上的预先确定时长的第二触摸(触摸开始)以及预先确定时长的第二抬起(触摸结束)。在另一个示例中,事件2(287-2)的定义是被显示对象上的拖动。例如,拖动包括被显示对象上的预先确定时长的触摸(或接触)、触摸在触敏显示器212上的移动、以及触摸的抬起(触摸结束)。在一些实施方案中,事件还包括用于一个或多个相关联的事件处理程序290的信息。
在一些实施方案中,事件定义287包括针对相应的用户界面对象的事件的定义。在一些实施方案中,事件比较器284执行命中测试以确定哪个用户界面对象与子事件相关联。例如,在触敏显示器212上显示三个用户界面对象的应用程序视图中,当在触敏显示器212上检测到触摸时,事件比较器284执行命中测试以确定这三个用户界面对象中的哪一个用户界面对象与该触摸(子事件)相关联。如果每个所显示的对象与相应的事件处理程序290相关联,则事件比较器使用该命中测试的结果来确定哪个事件处理程序290应当被激活。例如,事件比较器284选择与子事件和触发该命中测试的对象相关联的事件处理程序。
在一些实施方案中,相应事件(287)的定义还包括延迟动作,该延迟动作延迟事件信息的递送,直到已确定子事件序列是否确实与事件识别器的事件类型对应或不对应。
当相应事件识别器280确定子事件序列不与事件定义286中的任何事件匹配时,该相应事件识别器280进入事件不可能、事件失败或事件结束状态,在此之后忽略基于触摸的手势的后续子事件。在这种情况下,对于命中视图保持活动的其他事件识别器(如果有的话)继续跟踪和处理正在进行中的基于触摸的手势的子事件。
在一些实施方案中,相应的事件识别器280包括具有用于指示事件递送系统应该如何执行对活跃参与的事件识别器的子事件递送的可配置属性、标记和/或列表的元数据283。在一些实施方案中,元数据283包括用于指示事件识别器可彼此如何交互或如何被启用以彼此交互的可配置属性、标志和/或列表。在一些实施方案中,元数据283包括用于指示子事件是否被递送到视图或程序化分级结构中的不同层级的可配置属性、标记和/或列表。
在一些实施方案中,当事件的一个或多个特定子事件被识别时,相应事件识别器280激活与事件相关联的事件处理程序290。在一些实施方案中,相应事件识别器280将与该事件相关联的事件信息递送到事件处理程序290。激活事件处理程序290与将子事件发送(和延期发送)到相应的命中视图不同。在一些实施方案中,事件识别器280抛出与所识别的事件相关联的标记,并且与该标记相关联的事件处理程序290获取该标记并执行预定义的过程。
在一些实施方案中,事件递送指令288包括递送关于子事件的事件信息而不激活事件处理程序的子事件递送指令。相反,子事件递送指令将事件信息递送到与子事件序列相关联的事件处理程序或者递送到活跃参与的视图。与子事件序列或与活跃参与的视图相关联的事件处理程序接收事件信息并执行预先确定的过程。
在一些实施方案中,数据更新器276创建并更新在应用程序236-1中使用的数据。例如,数据更新器276对联系人模块237中所使用的电话号码进行更新,或者对视频播放器模块中所使用的视频文件进行存储。在一些实施方案中,对象更新器277创建和更新在应用程序236-1中使用的对象。例如,对象更新器277创建新的用户界面对象或更新用户界面对象的位置。GUI更新器278更新GUI。例如,GUI更新器278准备显示信息并将其发送至图形模块232以用于在触敏显示器上显示。
在一些实施方案中,一个或多个事件处理程序290包括数据更新器276、对象更新器277和GUI更新器278或者具有对数据更新器276、对象更新器277和GUI更新器278的访问权限。在一些实施方案中,数据更新器276、对象更新器277和GUI更新器278被包括在相应应用程序236-1或应用程序视图291的单个模块中。在其他实施方案中,它们被包括在两个或更多个软件模块中。
应当理解,关于触敏显示器上的用户触摸的事件处理的上述讨论还适用于利用输入设备来操作多功能设备200的其他形式的用户输入,并不是所有用户输入都是在触摸屏上发起的。例如,任选地与单次或多次键盘按压或保持结合的鼠标移动和鼠标按钮按压;触摸板上的接触移动,诸如轻击、拖动、滚动等;触笔输入;设备的移动;口头指令;所检测到的眼睛移动;生物特征输入;和/或其任意组合任选地被用作与子事件对应的用于定义要识别的事件的输入。
图3示出了根据一些实施方案的具有触摸屏212的便携式多功能设备200。触摸屏任选地在用户界面(UI)300内显示一个或多个图形。在本实施方案中以及在下文中描述的其他实施方案中,用户能够通过例如利用一个或多个手指302(在附图中没有按比例绘制)或者利用一个或多个触笔303(在附图中没有按比例绘制)在图形上作出手势来选择这些图形中的一个或多个图形。在一些实施方案中,当用户中断与一个或多个图形的接触时,将发生对一个或多个图形的选择。在一些实施方案中,手势任选地包括一次或多次轻击、一次或多次轻扫(从左向右、从右向左、向上和/或向下)和/或已与设备200发生接触的手指的滚动(从右向左、从左向右、向上和/或向下)。在一些具体实施中或在一些情况下,不经意地与图形接触不会选择图形。例如,当与选择对应的手势是轻击时,在应用程序图标上方扫动的轻扫手势任选地不选择相应应用程序。
设备200还可包括一个或多个物理按钮,诸如“home”按钮或菜单按钮304。如前所述,菜单按钮304可被用于导航到可在设备200上执行的应用程序集中的任何应用程序236。另选地,在一些实施方案中,菜单按钮被实现为在触摸屏212上显示的GUI中的软键。
在一些实施方案中,设备200包括触摸屏212、菜单按钮304、用于使设备通电/断电和用于锁定设备的下压按钮306、一个或多个音量调节按钮308、用户身份模块(SIM)卡槽310、耳麦插孔312和对接/充电外部端口224。下压按钮306被任选地用于:通过按下按钮并使按钮在下压状态保持预先确定的时间间隔来使设备通电/断电;通过按下按钮并在经过预先确定的时间间隔之前释放按钮来锁定设备;和/或对设备进行解锁或发起解锁过程。在另选的实施方案中,设备200还通过麦克风213来接受用于激活或去激活某些功能的语音输入。设备200还任选地包括用于检测触摸屏212上的接触的强度的一个或多个接触强度传感器265,和/或用于为设备200的用户生成触觉输出的一个或多个触觉输出发生器267。
图4是根据一些实施方案的具有显示器和触敏表面的示例性多功能设备的框图。设备400不必是便携式的。在一些实施方案中,设备400是膝上型电脑、台式计算机、平板计算机、多媒体播放器设备、导航设备、教育设备(诸如儿童学习玩具)、游戏系统或控制设备(例如,家用控制器或工业用控制器)。设备400通常包括一个或多个处理单元(CPU)410、一个或多个网络或其他通信接口460、存储器470、和用于使这些部件互连的一个或多个通信总线420。通信总线420任选地包括使系统部件互连并且控制系统部件之间通信的电路(有时叫做芯片组)。设备400包括具有显示器440的输入/输出(I/O)接口430,该显示器通常是触摸屏显示器。I/O接口430还任选地包括键盘和/或鼠标(或其他指向设备)450和触摸板455、用于在设备400上生成触觉输出的触觉输出发生器457(例如,类似于以上参考图2A所述的一个或多个触觉输出发生器267)、传感器459(例如,光学传感器、加速度传感器、接近传感器、触敏传感器、和/或与以上参考图2A所述的一个或多个接触强度传感器265类似的接触强度传感器)。存储器470包括高速随机存取存储器诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备,并且任选地包括非易失性存储器诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器470任选地包括远离一个或多个CPU 410定位的一个或多个存储设备。在一些实施方案中,存储器470存储与便携式多功能设备200(图2A)的存储器202中所存储的程序、模块和数据结构类似的程序、模块、和数据结构或它们的子集。此外,存储器470任选地存储在便携式多功能设备200的存储器202中不存在的附加程序、模块和数据结构。例如,设备400的存储器470任选地存储绘图模块480、呈现模块482、文字处理模块484、网站创建模块486、盘编辑模块488、和/或电子表格模块490,而便携式多功能设备200(图2A)的存储器202任选地不存储这些模块。
图4中的上述元件中的每个元件可被存储在一个或多个前面提到的存储器设备中。上述模块中的每个模块与用于执行上述功能的指令集对应。上述模块或程序(例如,指令集)不必被实现为单独的软件程序、过程或模块,并且因此这些模块的各种子集可在各种实施方案中被组合或以其他方式重新布置。在一些实施方案中,存储器470可存储上述模块和数据结构的子集。此外,存储器470可存储上面没有描述的附加模块和数据结构。
现在将注意力转到可在例如便携式多功能设备200上实现的用户界面的实施方案。
图5A示出了根据一些实施方案的便携式多功能设备200上的应用程序菜单的示例性用户界面。类似的用户界面可在设备400上实现。在一些实施方案中,用户界面500包括以下元素或者其子集或超集:
·一个或多个无线通信诸如蜂窝信号和Wi-Fi信号的一个或多个信号强度指示器502;
·时间504;
·蓝牙指示器505;
·电池状态指示器506;
·具有常用应用程序图标的托盘508,图标诸如:
ο电话模块238的被标记为“电话”的图标516,该图标516任选地包括未接来电或语音留言的数量的指示符514;
ο电子邮件客户端模块240的被标记为“邮件”的图标518,该图标518任选地包括未读电子邮件的数量的指示器510;
ο浏览器模块247的被标记为“浏览器”的图标520;和
ο视频和音乐播放器模块252,也称为iPod(Apple Inc.的商标)模块252,的被标记为“iPod”的图标522;以及
·其他应用程序的图标,图标诸如:
ο IM模块241的被标记为“消息”的图标524;
ο日历模块248的被标记为“日历”的图标526;
ο图像管理模块244的被标记为“照片”的图标528;
ο相机模块243的被标记为“相机”的图标530;
ο在线视频模块255的被标记为“在线视频”的图标532;
ο股市桌面小程序249-2的被标记为“股市”的图标534;
ο地图模块254的被标记为“地图”的图标536;
ο天气桌面小程序249-1的被标记为“天气”的图标538;
ο闹钟桌面小程序249-4的被标记为“时钟”的图标540;
ο健身支持模块242的被标记为“健身支持”的图标542;
ο记事本模块253的被标记为“记事本”的图标544;和
ο用于设置应用程序或模块的被标记为“设置”的图标546,该图标446提供对设备200及其各种应用程序236的设置的访问。
应当指示的是,图5A中示出的图标标签仅是示例性的。例如,视频和音乐播放器模块252的图标522可任选地被标记为“音乐”或“音乐播放器”。其他标签任选地用于各种应用程序图标。在一些实施方案中,相应应用程序图标的标签包括与该相应应用程序图标对应的应用程序的名称。在一些实施方案中,特定应用程序图标的标签和与该特定应用程序图标对应的应用程序的名称不同。
图5B示出了具有与显示器550(例如,触摸屏显示器212)分开的触敏表面551(例如,图4的平板计算机或触摸板455)的设备(例如,图4的设备400)上的示例性用户界面。设备400还任选地包括用于检测触敏表面551上的接触的强度的一个或多个接触强度传感器(例如,传感器457中的一个或多个传感器),和/或用于为设备400的用户生成触觉输出的一个或多个触觉输出发生器459。
尽管将参考触摸屏显示器212(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器分开的触敏表面上的输入,如图5B中所示。在一些实施方案中,触敏表面(例如,图5B中的551)具有与显示器(例如,550)上的主轴(例如,图5B中的553)对应的主轴(例如,图5B中的552)。根据这些实施方案,设备检测在与显示器上的相应位置对应的位置(例如,在图5B中,560与568对应并且562与570对应)处与触敏表面551的接触(例如,图5B中的560和562)。这样,在触敏表面(例如,图5B中的551)与多功能设备的显示器(图5B中的550)分开时,由设备在触敏表面上检测到的用户输入(例如,接触560和562以及它们的移动)被该设备用于操控显示器上的用户界面。应当理解,类似的方法任选地用于本文所述的其他用户界面。
另外,虽然主要是参考手指输入(例如,手指接触、单指轻击手势、手指轻扫手势)来给出下面的示例,但是应当理解的是,在一些实施方案中,这些手指输入中的一个或多个手指输入由来自另一输入设备的输入(例如,基于鼠标的输入或触笔输入)替代。例如,轻扫手势任选地由鼠标点击(例如,而非接触),之后是光标沿着轻扫路径的移动(例如,而非接触的移动)来替代。又如,轻击手势任选地由在光标位于轻击手势的位置上方时的鼠标点击(例如,而非对接触的检测,之后是终止检测接触)来替代。类似地,当同时检测到多个用户输入时,应当理解的是,多个计算机鼠标任选地被同时使用,或鼠标和手指接触任选地被同时使用。
图6A示出了示例性个人电子设备600。设备600包括主体602。在一些实施方案中,设备600可包括相对于设备200和400(例如,图2A、图2B、图3和图4)所述的特征中的一些或全部特征。在一些实施方案中,设备600具有在下文中称为触摸屏604的触敏显示屏604。作为触摸屏604的替代或补充,设备600具有显示器和触敏表面。与设备200和400的情况一样,在一些实施方案中,触摸屏604(或触敏表面)可具有用于检测所施加的接触(例如,触摸)的强度的一个或多个强度传感器。触摸屏604(或触敏表面)的一个或多个强度传感器可提供表示触摸的强度的输出数据。设备600的用户界面可基于触摸强度来对触摸作出响应,这意味着不同强度的触摸可调用设备600上的不同的用户界面操作。
例如,可在如下相关专利申请中找到用于检测和处理触摸强度的技术:于2013年5月8日提交的名称为“Device,Method,and Graphical User Interface for DisplayingUser Interface Objects Corresponding to an Application”的国际专利申请序列号PCT/US2013/040061,以及于2013年11月11日提交的名称为“Device,Method,andGraphical User Interface for Transitioning Between Touch Input to DisplayOutput Relationships”的国际专利申请序列号PCT/US2013/069483,这两个专利申请中的每个专利申请据此全文以引用方式并入本文。
在一些实施方案中,设备600具有一个或多个输入机构606和608。输入机构606和608(如果包括的话)可以是物理形式的。物理输入机构的示例包括下压按钮和可旋转机构。在一些实施方案中,设备600具有一个或多个附接机构。此类附接机构(如果包括的话)可允许将设备600与例如帽子、眼镜、耳环、项链、衬衣、夹克、手镯、表带、手链、裤子、皮带、鞋子、钱包、背包等附接。这些附接机构可允许用户穿戴设备600。
图6B示出了示例性个人电子设备600。在一些实施方案中,设备600可包括参考图2A、图2B和图4所述的部件中的一些或全部部件。设备600具有总线612,该总线将I/O部分614与一个或多个计算机处理器616和存储器618操作性地耦接。I/O部分614可连接到显示器604,该显示器可具有触敏部件622,并且任选地还具有触摸强度敏感部件624。此外,I/O部分614可与通信单元630连接,以用于使用Wi-Fi、蓝牙、近场通信(NFC)、蜂窝和/或其他无线通信技术来接收应用程序和操作系统数据。设备600可包括输入机构606和/或608。例如,输入机构606可以是可旋转输入设备或者可按压输入设备以及可旋转输入设备。在一些示例中,输入机构608可以是按钮。
在一些示例中,输入机构608可以是麦克风。个人电子设备600可包括各种传感器,诸如GPS传感器632、加速度计634、定向传感器640(例如,罗盘)、陀螺仪636、运动传感器638和/或其组合,所有这些设备均可操作性连接到I/O部分614。
个人电子设备600的存储器618可包括用于存储计算机可执行指令的一个或多个非暂态计算机可读存储介质,该可执行指令当由一个或多个计算机处理器616执行时例如可使得计算机处理器执行下述技术,包括过程1000和1100(图10-图11)。个人电子设备600不限于图6B的部件和配置,而是可包括多种配置中的其他部件或附加部件。
如本文所用,术语“示能表示”是指可在设备200、400和/或600(图2、图4和图6)的显示屏上显示的用户交互式图形用户界面对象。例如,图像(例如,图标)、按钮和文本(例如,链接)可各自构成示能表示。
如本文所用,术语“焦点选择器”是指用于指示用户正与之进行交互的用户界面的当前部分的输入元素。在包括光标或其他位置标记的一些具体实施中,光标充当“焦点选择器”,使得当光标在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)上方时在触敏表面(例如,图4中的触摸板455或图5B中的触敏表面551)上检测到输入(例如,按压输入)的情况下,该特定用户界面元素根据所检测到的输入而被调节。在包括能够实现与触摸屏显示器上的用户界面元素的直接交互的触摸屏显示器(例如,图2A中的触敏显示器系统212或图5A中的触摸屏212)的一些具体实施中,触摸屏上的所检测到的接触充当“焦点选择器”,使得当在触摸屏显示器上在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)的位置处检测到输入(例如,由接触进行的按压输入)时,该特定用户界面元素根据所检测到的输入而被调节。在一些具体实施中,焦点从用户界面的一个区域移动到用户界面的另一个区域,而无需光标的对应移动或触摸屏显示器上的接触的移动(例如,通过使用制表键或箭头键将焦点从一个按钮移动到另一个按钮);在这些具体实施中,焦点选择器根据用户界面的不同区域之间的焦点移动而移动。不考虑焦点选择器所采取的具体形式,焦点选择器通常是由用户控制的以便递送与用户界面的用户预期的交互(例如,通过向设备指示用户界面的用户期望与其进行交互的元素)的用户界面元素(或触摸屏显示器上的接触)。例如,在触敏表面(例如,触摸板或触摸屏)上检测到按压输入时,焦点选择器(例如,光标、接触或选择框)在相应按钮上方的位置将指示用户期望激活相应按钮(而不是设备显示器上示出的其他用户界面元素)。
如说明书和权利要求中所使用的,接触的“特征强度”这一术语是指基于接触的一个或多个强度的接触的特征。在一些实施方案中,特征强度基于多个强度样本。特征强度任选地基于相对于预定义事件(例如,在检测到接触之后,在检测到接触抬起之前,在检测到接触开始移动之前或之后,在检测到接触结束之前,在检测到接触的强度增大之前或之后和/或在检测到接触的强度减小之前或之后)而言在预先确定的时间段(例如,0.05秒、0.1秒、0.2秒、0.5秒、1秒、2秒、5秒、10秒)期间采集的预定义数量的强度样本或一组强度样本。接触的特征强度任选地基于以下各项中的一者或多者:接触强度的最大值、接触强度的均值、接触强度的平均值、接触强度的前10%处的值、接触强度的半最大值、接触强度的90%最大值等。在一些实施方案中,在确定特征强度时使用接触的持续时间(例如,在特征强度是接触的强度在时间上的平均值时)。在一些实施方案中,将特征强度与一组一个或多个强度阈值进行比较,以确定用户是否已执行操作。例如,该组一个或多个强度阈值可包括第一强度阈值和第二强度阈值。在本示例中,特征强度未超过第一阈值的接触导致第一操作,特征强度超过第一强度阈值但未超过第二强度阈值的接触导致第二操作,并且特征强度超过第二阈值的接触导致第三操作。在一些实施方案中,使用特征强度与一个或多个阈值之间的比较来确定是否要执行一个或多个操作(例如,是执行相应操作还是放弃执行相应操作),而不是用于确定执行第一操作还是第二操作。
在一些实施方案中,识别手势的一部分以用于确定特征强度。例如,触敏表面可接收连续的轻扫接触,该连续的轻扫接触从起始位置过渡并到达结束位置,在该结束位置处,接触的强度增加。在本示例中,接触在结束位置处的特征强度可仅基于连续轻扫接触的一部分,而不是整个轻扫接触(例如,仅结束位置处的轻扫接触部分)。在一些实施方案中,可在确定接触的特征强度之前向轻扫手势的强度应用平滑化算法。例如,该平滑化算法任选地包括以下各项中的一者或多者:不加权滑动平均平滑化算法、三角平滑化算法、中值滤波器平滑化算法和/或指数平滑化算法。在一些情况下,这些平滑化算法消除了轻扫接触的强度中的窄的尖峰或凹陷,以实现确定特征强度的目的。
可相对于一个或多个强度阈值诸如接触检测强度阈值、轻按压强度阈值、深按压强度阈值和/或一个或多个其他强度阈值来表征触敏表面上的接触的强度。在一些实施方案中,轻按压强度阈值与这样的强度对应:在该强度下设备将执行通常与点击物理鼠标的按钮或触控板相关联的操作。在一些实施方案中,深按压强度阈值与这样的强度对应:在该强度下设备将执行与通常与点击物理鼠标或触控板的按钮相关联的操作不同的操作。在一些实施方案中,当检测到特征强度低于轻按压强度阈值(例如,并且高于标称接触检测强度阈值,其中比标称接触检测强度阈值低的接触不再被检测到)的接触时,设备将根据接触在触敏表面上的移动来移动焦点选择器,而不执行与轻按压强度阈值或深按压强度阈值相关联的操作。一般来讲,除非另有陈述,否则这些强度阈值在不同组的用户界面附图之间是一致的。
接触的特征强度从低于轻按压强度阈值的强度增大到介于轻按压强度阈值与深按压强度阈值之间的强度有时被称为“轻按压”输入。接触的特征强度从低于深按压强度阈值的强度增大到高于深按压强度阈值的强度有时被称为“深按压”输入。接触的特征强度从低于接触检测强度阈值的强度增大到介于接触检测强度阈值与轻按压强度阈值之间的强度有时被称为检测到触摸表面上的接触。接触特征强度从高于接触检测强度阈值的强度减小到低于接触检测强度阈值的强度有时被称为检测到接触从触摸表面抬起。在一些实施方案中,接触检测强度阈值为零。在一些实施方案中,接触检测强度阈值大于零。
在本文中所述的一些实施方案中,响应于检测到包括相应按压输入的手势或响应于检测到利用相应接触(或多个接触)执行的相应按压输入来执行一个或多个操作,其中至少部分地基于检测到该接触(或多个接触)的强度增大到高于按压输入强度阈值而检测到相应按压输入。在一些实施方案中,响应于检测到相应接触的强度增大到高于按压输入强度阈值(例如,相应按压输入的“向下冲程”)来执行相应操作。在一些实施方案中,按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接触的强度随后减小到低于按压输入强度阈值,并且响应于检测到相应接触的强度随后减小到低于按压输入阈值(例如,相应按压输入的“向上冲程”)来执行相应操作。
在一些实施方案中,设备采用强度滞后以避免有时被称为“抖动”的意外输入,其中设备限定或选择与按压输入强度阈值具有预定义关系的滞后强度阈值(例如,滞后强度阈值比按压输入强度阈值低X个强度单位,或滞后强度阈值是按压输入强度阈值的75%、90%或某个合理比例)。因此,在一些实施方案中,按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接触的强度随后减小到低于与按压输入强度阈值对应的滞后强度阈值,并且响应于检测到相应接触的强度随后减小到低于滞后强度阈值(例如,相应按压输入的“向上冲程”)来执行相应操作。类似地,在一些实施方案中,仅在设备检测到接触的强度从等于或低于滞后强度阈值的强度增大到等于或高于按压输入强度阈值的强度并且任选地接触的强度随后减小到等于或低于滞后强度的强度时才检测到按压输入,并且响应于检测到按压输入(例如,根据环境,接触的强度增大或接触的强度减小)来执行相应操作。
为了容易解释,任选地,响应于检测到以下各种情况中的任一种情况而触发对响应于与按压输入强度阈值相关联的按压输入或响应于包括按压输入的手势而执行的操作的描述:接触强度增大到高于按压输入强度阈值、接触强度从低于滞后强度阈值的强度增大到高于按压输入强度阈值的强度、接触强度减小到低于按压输入强度阈值、和/或接触强度减小到低于与按压输入强度阈值对应的滞后强度阈值。另外,在将操作描述为响应于检测到接触的强度减小到低于按压输入强度阈值而执行的示例中,任选地响应于检测到接触的强度减小到低于对应于并且小于按压输入强度阈值的滞后强度阈值来执行操作。
3、数字助理系统
图7A示出了根据各个示例的数字助理系统700的框图。在一些示例中,数字助理系统700可在独立计算机系统上实施。在一些示例中,数字助理系统700可跨多个计算机分布。在一些示例中,数字助理的模块和功能中的一些可被划分成服务器部分和客户端部分,其中客户端部分位于一个或多个用户设备(例如,用户设备104,122,200,400或600)上并通过一个或多个网络与服务器部分(例如,服务器系统108)通信,例如如图1中所示。在一些示例中,数字助理系统700可为图1中所示的服务器系统108(和/或DA服务器106)的具体实施。应当指出,数字助理系统700仅为数字助理系统的一个示例,并且该数字助理系统700相比于所示出的数字助理系统可具有更多或更少的部件、可组合两个或更多个部件、或可具有部件的不同配置或布置。图7A中所示的各个部件可在硬件、用于由一个或多个处理器执行的软件指令、固件(包括一个或多个信号处理集成电路和/或专用集成电路)或它们的组合中实现。
数字助理系统700可包括存储器702、输入/输出(I/O)接口706、网络通信接口708,以及一个或多个处理器704。这些部件可通过一个或多个通信总线或信号线710彼此通信。
在一些示例中,存储器702可包括非暂态计算机可读介质,诸如高速随机存取存储器和/或非易失性计算机可读存储介质(例如,一个或多个磁盘存储设备、闪存存储器设备或其他非易失性固态存储器设备)。
在一些示例中,I/O接口706可将数字助理系统700的输入/输出设备716诸如显示器、键盘、触摸屏和麦克风耦接至用户界面模块722。I/O接口706与用户界面模块722结合,可接收用户输入(例如,语音输入、键盘输入、触摸输入等)并相应地对这些输入进行处理。在一些示例中,例如当数字助理在独立式用户设备上实施时,数字助理系统700可包括分别相对于图2A,图4,图6A-图6B中的设备200,400或600所描述的部件和I/O通信接口中的任一者。在一些示例中,数字助理系统700可代表数字助理具体实施的服务器部分,并且可通过位于用户设备(例如,设备104,200,400或600)上的客户端侧部分与用户进行交互。
在一些示例中,网络通信接口708可包括无线传输和接收电路714和/或一个或多个有线通信端口712。一个或多个有线通信端口可经由一个或多个有线接口例如以太网、通用串行总线(USB)、火线等接收和发送通信信号。无线电路714可从通信网络和其他通信设备接收RF信号和/或光学信号以及将RF信号和/或光学信号发送至通信网络和其他通信设备。无线通信可使用多种通信标准、协议和技术中的任一种,诸如GSM、EDGE、CDMA、TDMA、蓝牙、Wi-Fi、VoIP、Wi-MAX、或任何其他合适的通信协议。网络通信接口708可使得数字助理系统700能够通过网络,诸如互联网、内联网和/或无线网络诸如蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN)而与其他设备之间进行通信。
在一些示例中,存储器702或存储器702的计算机可读存储介质可存储程序、模块、指令和数据结构,包括以下各项中的全部或其子集:操作系统718、通信模块720、用户界面模块722、一个或多个应用程序724和数字助理模块726。具体地,存储器702或存储器702的计算机可读存储介质可存储用于执行过程1000和1100的指令,如下文所述。一个或多个处理器704可执行这些程序、模块和指令,并从数据结构读取数据或将数据写入数据结构。
操作系统718(例如,Darwin、RTXC、LINUX、UNIX、iOS、OS X、WINDOWS、或嵌入式操作系统诸如VxWorks)可包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件部件和/或驱动器,并且有利于各种硬件、固件和软件部件之间的通信。
通信模块720可有利于数字助理系统700通过网络通信接口708与其他设备之间进行的通信。例如,通信模块720可与电子设备诸如图2A,图4,图6A-图6B中分别示出的设备200,400和600的RF电路208进行通信。通信模块720还可包括用于处理由无线电路714和/或有线通信端口712所接收的数据的各个部件。
用户界面模块722可经由I/O接口706(例如,来自键盘、触摸屏、指向设备、控制器和/或麦克风)接收来自用户的命令和/或输入,并在显示器上生成用户界面对象。用户界面模块722还准备并经由I/O接口706(例如,通过显示器、音频通道、扬声器和触摸板等)传送输出(例如,语音、声音、动画、文本、图标、振动、触觉反馈、光等)至用户。
应用程序724可包括被配置为由一个或多个处理器704执行的程序和/或模块。例如,如果数字助理系统在独立式用户设备上实施,则应用程序724可包括用户应用程序,诸如游戏、日历应用程序、导航应用程序或邮件应用程序。如果数字助理系统700在服务器上实施,则应用程序724可包括例如资源管理应用程序、诊断应用程序、或调度应用程序。
存储器702还可存储数字助理模块726(或数字助理的服务器部分)。在一些示例中,数字助理模块726可包括以下子模块或其子集或超集:输入/输出处理模块728、语音转文本(STT)处理模块730、自然语言处理模块732、对话流处理模块734、任务流处理模块736、服务处理模块738和语音合成模块740。这些模块中的每个模块均具有对以下数字助理模块726的数据和模型中的一者或多者或其子集或超集的访问权限:知识本体760、词汇索引744、用户数据748、任务流模型754、服务模型756和ASR系统。
在一些示例中,通过使用在数字助理模块726中实现的处理模块、数据和模型,数字助理可执行以下各项中的至少一些:将语音输入转换成文本、识别从用户接收的自然语言输入中表达的用户意图;积极地引出并获取用于充分推断用户意图所需的信息(例如,通过消除字词、游戏、意向等的歧义);确定用于实现推断出的意图的任务流;以及执行任务流以实现推断出的意图。
在一些示例中,如图7B中所示,I/O处理模块728可通过图7A中的I/O设备716与用户交互或通过图7A中的网络通信接口708与用户设备(例如,设备104,200,400或600)交互以获取用户输入(例如,语音输入)以及提供对用户输入的响应(例如,作为语音输出)。I/O处理模块728可随接收到用户输入一起或在接收到用户输入之后不久任选地获取与来自用户设备的用户输入相关联的上下文信息。上下文信息可包括特定于用户的数据、词汇,和/或与用户输入相关的偏好。在一些示例中,上下文信息还包括在接收到用户请求时用户设备的软件状态和硬件状态,和/或与在接收到用户请求时与用户的周围环境相关的信息。在一些示例中,I/O处理模块728还可向用户发送与用户请求有关的后续问题,并从用户接收回答。在用户请求被I/O处理模块728接收并且用户请求可包括语音输入时,I/O处理模块728可将语音输入转发至STT处理模块730(或语音识别器)以进行语音文本转换。
STT处理模块730可包括一个或多个ASR系统。一个或多个ASR系统可处理通过I/O处理模块728接收的语音输入以产生识别结果。每个ASR系统可包括前端语音预处理器。前端语音预处理器可从语音输入提取代表性特征。例如,前端语音预处理器可对语音输入执行傅里叶变换以提取光谱特征,该光谱特征将语音输入表征为代表性多维向量的序列。另外,每个ASR系统可包括一个或多个语音识别模型(例如,声学模型和/或语言模型)并可实现一个或多个语音识别引擎。语音识别模型的示例可包括隐马尔可夫模型、高斯混合模型、深层神经网络模型、n元语言模型和其他统计模型。语音识别引擎的示例可包括基于动态时间规整的引擎和基于加权有限状态传感器(WFST)的引擎。一个或多个语音识别模型和一个或多个语音识别引擎可用于处理前端语音预处理器的所提取的代表性特征以产生中间识别结果(例如音素、音素串和子词),并最后产生文本识别结果(例如字词、字词串或符号序列)。在一些示例中,语音输入可至少部分地由第三方服务或在用户的设备(例如设备104,200,400或600)上处理以产生识别结果。一旦STT处理模块730产生包含文本串(例如,字词或字词序列或符号序列)的识别结果,则识别结果可被传递至自然语言处理模块732以用于意图推断。
有关语音转文本处理的更多细节在提交于2011年9月20日的名为“ConsolidatingSpeech Recognition Results”的美国实用新型专利申请序列13/236,942中有所描述,其全部公开内容以引用方式并入本文。
在一些示例中,STT处理模块730可包括和/或经由语音字母表转换模块731访问可识别字词词汇。每个词汇字词可与在语音识别语音字母表中所表示的字词的一个或多个候选发音相关联。具体地,可识别字词词汇可包括与多个候选发音相关联的字词。例如,词汇可包括与候选发音和相关联的字词“tomato”。另外,词汇字词可与基于来自用户的先前的语音输入的自定义候选发音相关联。此类自定义候选发音可存储在STT处理模块730并可经由设备上的用户资料与特定的用户相关联。在一些示例中,字词的候选发音可基于字词的拼写和一个或多个语言和/或语音规则来确定。在一些示例中,候选发音可例如基于已知的标准发音来手动生成。
在一些示例中,候选发音可基于候选发音的普遍度来排名。例如,候选发音的排名可比靠前,因为前者是更为普遍的发音(例如在所有用户中,对于特定的地理区域中的用户而言,或者对于任何其他适当的用户子集而言)。在一些示例中,候选发音可基于候选发音是否是与用户相关联的自定义候选发音来排名。例如,自定义候选发音的排名可比标准候选发音靠前。这可用于识别具有源自标准发音的独特发音的专有名词。在一些示例中,候选发音可与一个或多个语音特征诸如地理来源、国籍或种族相关联。例如,候选发音可与美国相关联,而候选发音 可与英国相关联。另外,候选发音的排名可基于存储在设备上的用户资料中的用户的一个或多个特征(例如地理来源、国籍、种族等)。例如,可根据用户资料确定用户与美国相关联。基于用户与美国相关联,候选发音(与美国相关联)的排名可比候选发音(与英国相关联)靠前。在一些示例中,排名的候选发音中的一个候选发音可被选为预测发音(例如最有可能的发音)。
当接收到语音输入时,STT处理模块730可用于确定与语音输入对应的音素(例如通过使用声学模型),并随后尝试确定与音素匹配的字词(例如通过使用语言模型)。例如,如果STT处理模块730可首先识别与语音输入的一部分对应的音素序列可基于词汇索引744来确定该序列与字词“tomato”对应。
在一些示例中,STT处理模块730可使用近似匹配技术以确定话语中的字词。因此,例如,STT处理模块730可确定音素序列 与字词“tomato”对应,即使特定的音素序列不是针对那个字词的候选音素序列中的一个候选音素序列。
数字助理的自然语言处理模块732(“自然语言处理器”)可采用由STT处理模块730生成的字词或符号的序列(“符号序列”),并尝试将该符号序列与由数字助理所识别的一个或多个“可执行意图”相关联。“可执行意图”可表示可由数字助理执行并可具有在任务流模型754中实施的相关联的任务流的任务。相关联的任务流可以是数字助理为了执行任务而采取的一系列经编程的动作和步骤。数字助理的能力范围可取决于已在任务流模型754中实施并存储的任务流的数量和种类,或换言之,取决于数字助理所识别的“可执行意图”的数量和种类。然而,数字助理的有效性还可取决于助理从以自然语言表达的用户请求中推断出正确的“一个或多个可执行意图”的能力。
在一些示例中,除从STT处理模块730获取的字词或符号的序列之外,自然语言处理模块732还可接收与例如来自I/O处理模块728的用户请求相关联的上下文信息。自然语言处理模块732还可任选地使用上下文信息来明确、补充和/或进一步定义包含在从STT处理模块730接收的符号序列中的信息。上下文信息可包括例如用户偏好、用户设备的硬件和/或软件状态、在用户请求之前、期间或之后不久收集的传感器信息、数字助理和用户之间的先前交互(例如,对话),等等。如本文所述,上下文信息可以是动态的,并且可随对话的时间、位置、内容、以及其他因素而变化。
在一些示例中,自然语言处理可以是基于例如知识本体760进行的。知识本体760可以是包含许多节点的分级结构,每个节点表示“可执行意图”或与“可执行意图”或其他“属性”中的一者或多者相关的“属性”。如上所述,“可执行意图”可表示数字助理能够执行的任务,即,该任务为“可执行的”或可被进行的。“属性”可代表与可执行意图或另一属性的子方面相关联的参数。知识本体760中可执行意图节点和属性节点之间的连接可定义由属性节点代表的参数如何从属于由可执行意图节点代表的任务。
在一些示例中,知识本体760可由可执行意图节点和属性节点组成。在知识本体760内,每个可执行意图节点可直接连接至或通过一个或多个中间属性节点连接至一个或多个属性节点。类似地,每个属性节点可直接连接至或通过一个或多个中间属性节点连接至一个或多个可执行意图节点。例如,如图7C所示,知识本体760可包括“餐厅预订”节点(即,可执行意图节点)。属性节点“餐厅”、“日期/时间”(针对预订)和“同行人数”均可直接连接至可执行意图节点(即,“餐厅预订”节点)。
此外,属性节点“菜系”、“价格区间”、“电话号码”和“位置”可以是属性节点“餐厅”的子节点,并且均可通过中间属性节点“餐厅”连接至“餐厅预订”节点(即,可执行意图节点)。又如,如图7C所示,知识本体760还可包括“设定提醒”节点(即,另一可执行意图节点)。属性节点“日期/时间”(针对设定提醒)和“主题”(针对提醒)均可连接至“设定提醒”节点。由于属性“日期/时间”可与进行餐厅预订的任务和设定提醒的任务二者相关,因此属性节点“日期/时间”可连接至知识本体760中的“餐厅预订”节点和“设定提醒”节点二者。
可执行意图节点连同与其连接的概念节点一起可被描述为“域”。在本论述中,每个域可与相应的可执行意图相关联,并涉及与特定的可执行意图相关联的一组节点(以及这些节点之间的关系)。例如,图7C中示出的知识本体760可包括知识本体760内的餐厅预订域762的示例和提醒域764的示例。餐厅预订域包括可执行意图节点“餐厅预订”、属性节点“餐厅”、“日期/时间”和“同行人数”以及子属性节点“菜系”、“价格区间”、“电话号码”和“位置”。提醒域764可包括可执行意图节点“设置提醒”和属性节点“主题”和“日期/时间”。在一些示例中,知识本体760可由多个域组成。每个域可与一个或多个其他域共享一个或多个属性节点。例如,除了餐厅预订域762和提醒域764之外,“日期/时间”属性节点还可与许多不同域(例如,行程安排域、旅行预订域、电影票域等)相关联。
尽管图7C示出了知识本体760内的两个示例性域,但其他域可包括例如“查找电影”、“发起电话呼叫”、“查找方向”、“安排会议”、“发送消息”和“提供问题的回答”、“读取列表”、“提供导航指令”、“提供针对任务的指令”等。“发送消息”域可与“发送消息”可执行意图节点相关联,并且还可包括属性节点诸如“一个或多个接收人”、“消息类型”和“消息正文”。属性节点“接收人”可进一步例如由子属性节点诸如“接收人姓名”和“消息地址”来定义。
在一些示例中,知识本体760可包括数字助理能够理解并对其起作用的所有域(并且因此可执行意图)。在一些示例中,知识本体760可诸如通过添加或移除整个域或节点,或者通过修改知识本体760内的节点之间的关系来修改。
在一些示例中,可将与多个相关的可执行意图相关联的节点群集在知识本体760中的“超级域”下。例如,“旅行”超级域可包括与旅行有关的属性节点和可执行意图节点的群集。与旅行有关的可执行意图节点可包括“机票预订”、“酒店预订”、“汽车租赁”、“获取方向”、“寻找兴趣点”等等。同一超级域(例如,“旅行”超级域)下的可执行意图节点可具有多个共用的属性节点。例如,针对“机票预订”、“酒店预订”、“汽车租赁”、“获取方向”和“寻找兴趣点”的可执行意图节点可共享属性节点“起始位置”、“目的地”、“出发日期/时间”、“到达日期/时间”和“同行人数”中的一者或多者。
在一些示例中,知识本体760中的每个节点可与由节点所代表的属性或可执行意图有关的一组字词和/或短语相关联。与每个节点相关联的相应组的字词和/或短语可以是所谓的与节点相关联的“词汇”。可将与每个节点相关联的相应组的字词和/或短语存储在与由节点所代表的属性或可执行意图相关联的词汇索引744中。例如,返回图7B,与“餐厅”属性的节点相关联的词汇可包括字词诸如“食物”、“酒水”、“菜系”、“饥饿”、“吃”、“披萨”、“快餐”、“膳食”等。又如,与“发起电话呼叫”可执行意图的节点相关联的词汇可包括字词和短语诸如“呼叫”、“打电话”、“拨打”、“与……通电话”、“呼叫该号码”、“打电话给”等。词汇索引744可任选地包括不同语言的字词和短语。
自然语言处理模块732可从STT处理模块730接收符号序列(例如,文本串),并确定符号序列中的字词牵涉哪些节点。在一些示例中,如果发现符号序列中的字词或短语与知识本体760中的一个或多个节点相关联(经由词汇索引744),则所述字词或短语可“触发”或“激活”这些节点。基于已激活节点的数量和/或相对重要性,自然语言处理模块732可选择可执行意图中的一个可执行意图作为用户想要数字助理执行的任务。在一些示例中,可选择具有最多“已触发”节点的域。在一些示例中,可选择具有最高置信度值(例如,基于其各个已触发节点的相对重要性)的域。在一些示例中,可基于已触发节点的数量和重要性的组合来选择域。在一些示例中,在选择节点的过程中还考虑附加因素,诸如数字助理先前是否已正确解释来自用户的类似请求。
用户数据748可包括特定于用户的信息,诸如特定于用户的词汇、用户偏好、用户地址、用户的默认语言和第二语言、用户的联系人列表,以及每个用户的其他短期或长期信息。在一些示例中,自然语言处理模块732可使用用户特定的信息来补充包含在用户输入中的信息以进一步限定用户意图。例如,针对用户请求“邀请我的朋友参加我的生日派对”,自然语言处理模块732能够访问用户数据748以确定“朋友”是哪些人以及“生日派对”将于何时何地举行,而不需要用户在其请求中明确地提供此类信息。
基于符号串搜索知识本体的其他细节在提交于2008年12月22日的名为“Methodand Apparatus for Searching Using An Active Ontology”的美国实用新型专利申请序列号12/341,743中有所描述,其全部公开内容以引用方式并入本文。
在一些示例中,一旦自然语言处理模块732基于用户请求识别出可执行意图(或域),自然语言处理模块732便可生成结构化查询以表示所识别的可执行意图。在一些示例中,结构化查询可包括针对可执行意图的域内的一个或多个节点的参数,并且所述参数中的至少一些参数填充有在用户请求中指定的特定信息和要求。例如,用户可以说“帮我在寿司店预订晚上7点的座位。”在这种情况下,自然语言处理模块732能够基于用户输入来将可执行意图正确地识别为“餐厅预订”。根据知识主体,“餐厅预订”域的结构化查询可包括参数诸如{菜系}、{时间}、{日期}、{同行人数}等。在一些示例中,基于语音输入和使用STT处理模块730得自语音输入的文本,自然语言处理模块732可针对餐厅预订域生成部分结构化查询,其中部分结构化查询包括参数{菜系=“寿司类”}以及{时间=“晚上7点”}。然而,在该示例中,用户话语包含不足以完成与域相关联的结构化查询的信息。因此,可不基于当前可用信息在结构化查询中指定其他必要参数诸如{同行人数}和{日期}。在一些示例中,自然语言处理模块732可用所接收的上下文信息来填充结构化查询的一些参数。例如,在一些示例中,如果用户请求“附近的”寿司店,则自然语言处理模块732可用来自用户设备的GPS坐标来填充结构化查询中的{位置}参数。
在一些示例中,自然语言处理模块732可将生成的结构化查询(包括任何已完成的参数)传送至任务流处理模块736(“任务流处理器”)。任务流处理模块736可被配置为接收来自自然语言处理模块732的结构化查询,必要时完成结构化查询,以及执行“完成”用户最终请求所需的动作。在一些示例中,完成这些任务所必需的各种过程可在任务流模型754中提供。在一些示例中,任务流模型754可包括用于获取来自用户的附加信息的过程和用于执行与可执行意图相关联的动作的任务流。
如上所述,为了完成结构化查询,任务流处理模块736可能需要发起与用户的附加对话,以便获取附加信息,和/或弄清可能有歧义的话语。当此类交互是必要的时,任务流处理模块736可调用对话流处理器模块734来参与与用户的对话。在一些示例中,对话流处理器模块734可确定如何(和/或何时)向用户请求附加信息并接收和处理用户响应。可通过I/O处理模块728将问题提供给用户并可从用户接收回答。在一些示例中,对话流处理模块734可经由音频和/或视频输出向用户呈现对话输出,并接收经由口头或物理(例如,点击)响应的来自用户的输入。继续上述示例,当任务流处理模块736调用对话流处理模块734来确定针对与域“餐厅预订”相关联的结构化查询的“同行人数”和“日期”信息时,对话流处理模块734可生成诸如“用餐人数?”和“预订哪天?”之类的问题传递给用户。一旦接收到来自用户的回答,则对话流处理模块734可随后用缺失信息填充结构化查询,或将信息传递给任务流处理模块736以完成来自结构化查询的缺失信息。
一旦任务流处理模块736已针对可执行意图完成结构化查询,则任务流处理模块736可继续执行与可执行意图相关联的最终任务。因此,任务流处理模块736可根据结构化查询中包含的特定参数来执行任务流模型中的步骤和指令。例如,针对可执行意图“餐厅预订”的任务流模型可包括用于联系餐厅并实际上请求在特定时间针对特定同行人数的预订的步骤和指令。例如,通过使用结构化查询诸如:{餐厅预订,餐厅=ABC咖啡馆,日期=3/12/2012,时间=下午7点,同行人数=5人},任务流处理模块736可执行以下步骤:(1)登录到ABC咖啡馆的服务器或餐厅预订系统诸如(2)在网站上的表格中输入日期、时间和同行人数信息,(3)提交表格,以及(4)在用户日历中针对该预订制作日历条目。
在一些示例中,任务流处理模块736可在服务处理模块738(“服务处理模块”)的辅助下完成用户输入中所请求的任务或者提供用户输入中所请求的信息性回答。例如,服务处理模块738可代表任务流处理模块736发起电话呼叫、设置日历条目、调用地图搜索、调用用户设备上安装的其他用户应用程序或与所述其他应用程序交互,以及调用第三方服务(例如,餐厅预订门户网站、社交网站、银行门户网站等)或与第三方服务交互。在一些示例中,可通过服务模型756中的相应服务模型指定每项服务所需的协议和应用程序编程接口(API)。服务处理模块738可针对服务访问适当的服务模型,并依据服务模型根据该服务所需的协议和API生成针对该服务的请求。
例如,如果餐厅已启用在线预订服务,则餐厅可提交服务模型,该服务模型指定用于预订的必要参数和用于将必要参数的值传送至在线预订服务的API。在被任务流处理模块736请求时,服务处理模块738可使用存储在服务模型中的web地址来与在线预订服务建立网络连接,并将预订的必要参数(例如,时间、日期、同行人数)以根据在线预订服务的API的格式发送至在线预订接口。
在一些示例中,自然语言处理模块732、对话流处理模块734和任务流处理模块736可共同且反复地被使用以推断并限定用户的意图、获取信息以进一步明确并细化用户意图、并最终生成响应(即,输出至用户,或完成任务)以满足用户的意图。所生成的响应可以是对语音输入的对话响应,其至少部分地满足用户的意图。另外,在一些示例中,所生成的响应可以是作为语音输出的输出。在这些示例中,所生成的响应可被发送至语音合成模块740(例如,语音合成器),其中该语音合成模块可被处理以合成语音形式的对话响应。在其他示例中,所生成的响应可以是与满足语音输入中的用户请求有关的数据内容。
语音合成模块740可被配置为合成语音输出以呈现给用户。语音合成模块740基于由数字助理提供的文本来合成语音输出。例如,所生成的对话响应可以是文本串的形式。语音合成模块740可将文本串转换成可听语音输出。语音合成模块740可使用任何适当的语音合成技术以便根据文本生成语音输出,包括但不限于拼接合成、单元选择合成、语音合成、特定于域的合成、共振峰合成、发声合成、基于隐马尔可夫模型(HMM)的合成和正弦波合成。在一些示例中,语音合成模块740可被配置为基于与字词对应的音素串来合成单独的字词。例如,音素串可与所生成的对话响应中的字词相关联。音素串可被存储在与字词相关联的元数据中。语音合成模块740可被配置为直接处理元数据中的音素串以合成语音形式的字词。
在一些示例中,与使用语音合成模块740相反(或除了使用语音合成模块之外),语音合成可在远程设备(例如服务器系统108)上执行,并且所合成的语音可被发送至用户设备以用于输出至用户。例如,这可发生在一些具体实施中,其中针对数字助理的输出在服务器系统处生成。并且由于服务器系统一般具有比用户设备更大的处理能力或更多的处理资源,因此可能获取比实际客户端侧合成更高质量的语音输出。
有关数字助理的附加细节可见于提交于2011年1月10日的名称为“IntelligentAutomated Assistant”的美国实用新型专利申请12/987,982和提交于2011年9月30日的名称为“Generating and Processing Data Items That Represent Tasks to Perform”的美国实用新型专利申请13/251,088中,其全部公开内容以引用方式并入本文。
4、用于智能任务发现的示例性技术
图8A-图8E示出了根据一些实施方案的包括用于智能任务发现的示例性用户界面(UI)的示例性技术。这些附图还用于示出下文描述的过程,包括图10A-图10C和图11中的过程。
图8A示出了电子设备800。电子设备800在一些实施方案中可为设备104,122,200,400,600,1200和1300(图1,图2A,图3,图4,图5A,图6A-6B,图12和图13)中的任一者。在例示的示例中,电子设备800是移动电话。尽管例示的示例在本文结合电子设备800来描述,但是应当理解,在其他具体实施中可使用各种电子设备,诸如膝上型计算机、台式计算机、平板计算机、可穿戴设备和家用电子设备,该家用电子设备包括电视机和扬声器。
电子设备800提供用户界面以供用户与智能自动化助理交互。用户界面可为图形化用户界面和/或听觉用户界面。在一些示例中,电子设备800在显示屏上显示图形化用户界面,诸如触敏显示屏802。在一些示例中,电子设备800经由电子设备的麦克风对音频用户输入进行采样。参考图8A,电子设备800接收用户输入“读取我的消息”。用户输入可以是说出话语、物理触摸、活动手势或它们的组合。作为响应,电子设备800在显示屏802上显示用户输入“读取我的消息”的文本转录804。
响应于用户输入,电子设备800得到用户意图(例如,读取在电子设备处最近接收到的但还未读取的一个或多个文本消息),并因此获取在电子设备处接收到的未读文本消息。电子设备800将文本消息转换成语音,并(例如,经由扬声器)提供包括文本消息的音频表示的音频输出。在一些情况下,音频输出还包括与文本消息(例如,发送者姓名、时间戳等)相关联的有关信息和针对附加输入的提示。在所示的示例中,电子设备800提供音频输出812:“TONY说,飞到1INFINITE LOOP CUPERTINO,给PEPPER打电话,123-456-7890。您想回复吗?”
基于接收到的文本消息,电子设备800识别一个或多个任务。在一些示例中,电子设备800确定文本消息的任何部分(例如文本串的一部分)是否与多个数据类型中的数据类型相关联。多个数据类型包括但不限于:一个或多个地址(例如,“1Infinite LoopCupertino”)、一个或多个电话号码(例如,“123-456-7890”)、统一资源定位符(“URL”)(例如“http://www.apple.com/”)、一个或多个日期(例如,“明天”、“6/1/2000”)、一个或多个感兴趣的人(“Tony Stark”)、一个或多个感兴趣的地点、一个或多个包裹跟踪号、一个或多个航班号等等。应当理解,任何感兴趣的信息可例如基于字词识别、信息的模式和/或元数据而被定义为具有一个或多个数据类型。
在一些示例中,一个或多个检测器被实现为分析内容(例如,文本消息、电子邮件等)以在电子设备800处分别检测一个或多个预定义的数据类型。检测器包括能够识别内容中的一个或多个预定义数据类型的数据的一个或多个软件程序。在一些示例中,检测器被编程以识别文本(例如字母)、数字(例如整数)、以某个格式(例如,xx/xx/xxxx,(xxx)xxx-xxxx)排列的文本和/或数字、预先确定的关键字(“http://”、“Apt.”)、感兴趣的信息(例如用户的通讯录中的姓名)或它们的组合。在一些示例中,检测器被实现为检测单个数据类型。例如,电话号码检测器可被实现为检测电话号码,URL检测器可被实现为检测URL,地址检测器可被实现为检测地址,等等。在一些示例中,执行电子设备800上的检测器中的每个检测器以分析内容,以检测数据的相应数据类型的存在。
电子设备800将每个数据类型与至少一个任务相关联,在一些情况下,该至少一个任务具有一个或多个参数。例如,“地址”数据类型与具有地址参数的导航任务相关联,或可与更新联系人条目任务相关联,或与两者均相关联。又如,“URL”数据类型与具有网站链接参数的在浏览器中打开的第一任务、创建链接地址的书签的第二任务和具有网站链接参数的添加至读取列表的第三任务相关联。又如,“航班号”数据类型与具有日期和时间参数的设置提醒任务相关联。
在一些示例中,不同类型的电子设备将相同的数据类型与不同的任务集相关联。例如,在移动电话诸如电子设备800上,“URL”数据类型与两个任务相关联:在浏览器中打开URL的任务和将URL添加至读取列表的任务。相比之下,在导航设备上,“URL”数据类型仅与将URL添加至读取列表的任务相关联。在浏览器中打开URL的任务可例如在导航设备的使用情况下(例如,在驾驶时)为不期望的。
在一些示例中,电子设备800基于上下文信息将数据类型与一个或多个任务相关联。例如,基于电子设备的移动速度(例如,根据由设备的GPS坐标随时间推移所测量的),或基于电子设备与车辆配对,电子设备可确定电子设备是否位于移动的车辆中。如果电子设备确定电子设备位于移动的车辆中,则“URL”数据类型不与在浏览器中打开的任务相关联,而例如仅与将URL添加至读取列表的任务相关联。
在一些示例中,在检测到特定数据类型的数据之后,电子设备800(例如在显示屏上)显示与数据类型相关联的任务中的一个或多个任务以及对应的参数。参考图8B,多个检测器被执行以分析上述文本消息的文本串。电话检测器检测电话号码“123-456-7890”,并且地址检测器检测地址“1INFINITE LOOP CUPERTINO”。基于检测到的数据类型,电子设备800识别与“电话号码”数据类型(即呼叫号码)相关联的第一任务和与“地址”数据类型相关联的第二任务(即导航到地址)。因此,电子设备800在显示屏上显示表示第一任务(获得到1INFINITE LOOP CUPERTINO的方向)的可选的示能表示808和表示第二任务(呼叫123-456-7890)的可选的示能表示810。
在一些示例中,如果多个任务可用于显示(例如,由于检测到的数据类型与多个任务相关联和/或多个数据类型被检测到),则电子设备800例如基于电子设备的类型来使对一些任务的显示优先于对其他任务的显示。例如,在导航设备上,对导航任务的显示优先于对打电话任务的显示。可通过多种方式实现显示的优先级排序。例如,表示第一任务的示能表示与表示第二任务的示能表示相比更为突出显示(例如,不同字体、不同颜色、不同位置)。又如,显示用于表示第一任务的示能表示在显示用于表示第二任务的示能表示之前发生(例如,在时序上)。又如,表示第二任务的示能表示根本不显示。尽管未显示,但是第二任务仍可由语音输入发起,如下文结合图8C更详细所述。
应当理解,在电子设备800上的任务的显示可基于其他因素诸如可用的显示区域的面积和上下文信息而变化。例如,所显示的示能表示(例如按钮)的大小和数量可基于可用的显示区域的面积而变化,该显示区域的面积继而可基于电子设备(例如电话、平板计算机、电视机)的类型和/或电子设备的操作系统而变化。在一些示例中,可基于可用的显示区域的面积来提供一个或多个视觉增强。例如,在具有相对较大的显示能力的电子设备(例如电视机)上,电子设备可将地址(例如针对导航任务)显示为地图上的别针作为智能自动化助理GUI的一部分。又如,如果用户的联系人的电话号码被检测到,则电子设备可(经由在用户的联系人列表中查找)获取与联系人有关的附加信息并提供(例如显示)针对呼叫任务的信息作为智能自动化助理GUI的一部分。
参考图8C,电子设备800接收发起导航任务的用户输入并使得将执行任务。如图所示,电子设备800显示文本串“获取至1INFINITE LOOP,CUPERTINO的方向”。在一些示例中,电子设备800调用一个或多个软件服务提供方(例如一个或多个应用程序、一个或多个API和/或导航的一个或多个功能)以执行所选择的任务。在一些示例中,电子设备800使得将在不同于电子设备800的第二电子设备上执行任务。例如,在接收到用户输入时,电子设备800例如通过将地址传输至导航设备而使得导航设备发起导航。
在一些示例中,发起导航任务的用户输入是可选的示能表示808(“获取至1INFINITE LOOP,CUPERTINO的方向”)上的物理触摸,如图8B所示。在一些示例中,电子设备800允许用户经由语音输入诸如话语“开车送我去那里”发起与所检测到的数据类型相关联的一个或多个任务。响应于接收到语音输入,电子设备800确定语音输入是否指示与所检测到的数据类型相关联的一个或多个任务。如果语音输入指示与所检测到的数据类型相关联的任务,则电子设备使得将执行任务,如下文更详细所述。
在一些示例中,电子设备800基于上下文信息识别来自语音输入的一个或多个任务和一个或多个参数。在一些示例中,上下文信息可包括当前正显示于电子设备处的内容。例如,如果当用户说出“开车送我去那里”时显示图8B中的示能表示808“获得到1INFINITELOOP,CUPERTINO的方向”,则电子设备至少部分地基于当前正显示的内容获得导航到“1INFINITE LOOP CUPERTINO”的用户意图。在一些示例中,上下文信息可包括已被电子设备检测到的数据类型(例如地址、电话号码)和对应的数据(例如“1INFINITE LOOPCUPERTINO”、“123-456-7890”)。例如,如果当示能表示808未被显示时用户提供音频输入“开车送我去那里”,则电子设备仍可基于上下文信息获得开车去“1INFINITE LOOPCUPERTINO”的用户意图。
在一些示例中,在接收到发起待执行的任务的语音输入(例如“开车送我去那里”)时,电子设备800将与语音输入对应的数据以及上下文信息的选择性部分发送至一个或多个服务器以用于处理。在一些示例中,一个或多个服务器将数据转换成文本表示(例如文本串)、基于文本表示和接收到的上下文信息得到用户意图的至少一部分和/或将得到的用户意图实施于任务中。在一些示例中,用户的个人数据不被传输至一个或多个服务器。在一些示例中,上下文信息诸如文本消息和电子邮件以及从文本消息和电子邮件获得的信息(例如检测到的类型)构成个人数据,并因此不被传输至一个或多个服务器。在一些示例中,包括用户的个人数据的上下文信息在本地被电子设备使用以辅助语音输入的处理以及一个或多个任务和一个或多个参数的识别。例如,尽管所检测到的电话号码“123-456-7890”和所检测到的地址“1INFINITE LOOP CUPERTINO”不被传输至服务器,但是电话号码和地址仍在本地被使用以获得电子设备处分别针对呼叫任务和导航任务的参数。在一些示例中,在电子设备上在本地执行基于语音输入对一个或多个任务和一个或多个参数的识别。
可将由电子设备800检测到的特定数据类型的数据自动存储在电子设备处。例如,在如上所述处理文本消息之后,电子设备在电子设备800处存储所检测到的地址“1INFINITE LOOP CUPERTINO”和所检测到的电话号码“123-456-7890”以及相应的数据类型(即地址和电话号码)。在一些示例中,存储与文本消息相关联的元数据。例如,文本消息的发送者(“TONY STARK”)和文本消息的时间戳与数据和数据类型关联存储。在一些示例中,存储的数据、数据类型和元数据是持续仅有限时间段(例如,在智能自动化助理的当前用户会话期间、持续几分钟、直到设备进入非活动状态)的短期存储器的一部分。在一些示例中,存储的数据、数据类型和元数据是与用户相关联的短期存储器的一部分。
在一些示例中,存储的上下文信息被用于解释用户输入。参考图8D,用户提供(例如说出)输入“开车送我去TONY发给我的上个地址”该输入被转录并在显示屏802上显示为文本串818。基于短语“TONY发给我的上个地址”,电子设备800参考存储的将“TONY”和“地址”与“1INFINITE LOOP CUPERTINO”相关联的上下文信息。因此,电子设备800能够得到针对导航任务的参数“1INFINITE LOOP CUPERTINO”。参考图8E,电子设备启动服务提供方(例如导航应用程序、功能和/或API)以执行具有参数“1INFINITE LOOP CUPERTINO”的导航任务。
应当理解,存储的上下文信息可被用于处理涉及电子设备800上的任何软件应用程序的用户输入。例如,如果用户调用软件应用程序(例如导航应用程序)并说出“TONY发给我的上个地址”,则软件应用程序能够参考存储的上下文信息以获得“1INFINITE LOOPCUPERTINO”。还应当理解,存储的上下文信息可被用于由电子设备来解释用户输入之外的目的。例如,如果用户调用导航应用程序,则导航应用程序可提供(例如显示)上下文信息的有关部分,诸如地址“1INFINITE LOOP CUPERTINO”,作为建议的目的地,而无需用户请求。
在发现一个或多个任务之后,电子设备可在操作期间在多个点处向用户呈现(显示)所发现的任务。针对所发现任务的示例性入口点结合图9A-图9C来描述。图9A示出了电子设备900。电子设备900在一些实施方案中可为设备104,122,200,400,600,1200和1300(图1,图2A,图3,图4,图5A,图6A-图6B,图12和图13)中的任一者。在例示的示例中,电子设备900是具有导航能力的电子设备。尽管例示的示例在本文结合电子设备900来描述,但是应当理解,在其他具体实施中可使用各种电子设备,诸如膝上型计算机、台式计算机、平板计算机、可穿戴设备(例如手表、耳机)和家用电子设备,该家用电子设备包括电视机和扬声器。
在一些示例中,电子设备900在向用户呈现内容之后和/或在向用户呈现内容时提供至某些内容(例如文本消息、电子邮件、文档)中发现的任务中的一些任务的入口点。如图9A中所示,电子设备900提供与在电子设备900处接收的文本消息对应的音频输出918。“TONY说,飞到1INFINITE LOOP CUPERTINO,给PEPPER打电话,123-456-7890。要回复吗?”电子设备900还在显示屏上显示示能表示910(“方向”)、示能表示912(“读取...”)、示能表示914(“不回复”)和示能表示916(“回复”)。具体地,示能表示910(“方向”)表示导航任务,该导航任务基于音频输入918中提及的文本消息而被发现。在一些示例中,在电子设备900提供音频输出918时和/或在电子设备900完成提供音频输出918之后,显示示能表示910。如果用户(例如,经由物理触摸输入、经由语音输入“方向”)选择示能表示910,则发起导航至“1INFINITE LOOP CUPERTINO”的任务(未示出)。
在所示的示例中,在电子设备900完成提供音频输出918之后,电子设备900从用户接收输入“是的,你好”。如图9B中所示,电子设备900提供音频输出926(“你给TONY的回复是,你好。要发送吗?”)电子设备900还在提供音频输出926时显示示能表示920(“读取...”)、示能表示922(“改变”)和示能表示924(“发送”)。如果用户选择示能表示924(“发送”),则电子设备900在一些情况下使用服务诸如文本消息应用程序来传输用户的回复。
电子设备允许用户在编辑回复消息之后例如通过指定不同的服务提供方(例如来自不同的域)而作出改变。例如,在接收到用户输入“是的,你好”(响应于提示“要回复吗”),电子设备800可识别默认的服务提供方以用于传输回复。在一些示例中,基于原始内容(例如原始文本消息)来识别服务提供方。即,如果回复是对文本消息的响应,则电子设备将文本消息应用程序识别为默认的服务提供方。然而,如果用户提供后续输入,例如,“作为电子邮件发送”或“创建提醒”,则电子设备可基于用户输入来识别第二服务提供方并向第二服务提供方(例如电子邮件应用程序或提醒API)提供编辑的消息(例如“你好”)以及有关的上下文信息(“TONY STARK”)。
在一些示例中,电子设备900在与智能自动化助理的整个用户会话期间提供至所发现的任务中的一些任务的附加入口点。如图9C所示,电子设备900提供音频输出930(“我将发送它”)并在一些情况下响应于用户输入(未示出)而传输文本消息。电子设备900还显示示能表示928(“方向”),该示能表示表示导航任务并在功能上与先前所显示的示能表示910(图9A)相同。如果用户(例如,经由物理触摸输入、经由语音输入“方向”)选择示能表示928,则发起导航至“1INFINITE LOOP CUPERTINO”的任务(未示出)。在一些示例中,当表示所发现的导航任务的示能表示未被显示时,用户可经由语音输入发起任务,如上所述。
值得注意的是,尽管电子设备800(图8A-图8E)和电子设备900(图9A-图9C)中的每一者接收包括相同文本串(“飞到1INFINITE LOOP CUPERTINO,给PEPPER打电话,123-456-7890”)的文本消息,但是设备800,900中的每一者提供与所发现任务(例如与图9A中的示能表示910相比较的图8B中的示能表示808和810)对应的不同的视觉输出。在一些示例中,两个电子设备800,900由于其不同的设备类型(例如移动电话对导航设备)和上下文信息(例如设备是否位于移动的车辆中)而识别不同数量和类型的任务,如上所述。在一些示例中,两个电子设备由于可用的显示区域的面积不同而显示不同数量和类型的任务,如上所述。
尽管本文结合文本消息描述了图8A-图8E和图9A-图9C中的例示的示例,但是应当理解,可分析多种内容,诸如电子邮件、音频消息、视频、图像等,以检测特定的数据类型(和相关联的任务)。
还应当理解,可在需要或不需要用户请求的情况下触发数据类型的检测和相关联任务的识别。例如,在接收到文本消息时,电子设备800可发起智能任务发现而无需用户请求(例如,“读取我的消息”)。如果电子设备800检测到一个或多个特定的数据类型,则电子设备可自动输出(例如显示或提供口头输出)与所检测到的数据类型相关联的任务中的一些任务。对所识别的任务的显示和选择可以与上述方式类似的方式来实现。
5、用于智能任务发现的示例性过程
图10A-图10C示出了根据各个示例的用于操作数字助理的过程1000。例如使用一个或多个电子设备(例如,设备104,106,200,400,600,1200或1300)来执行过程1000。在一些示例中,在实现数字助理的客户端-服务器系统(例如,系统100)处执行该过程。可在服务器(例如DA服务器106)和客户端(例如用户设备104)之间以任何方式分配该过程的各框。在过程1000中,一些框任选地被组合,一些框的次序任选地被改变,并且一些框任选地被省略。在一些示例中,执行仅下文结合图10A-图10C所述的特征或框的子集。
如下文所述,方法1000提供了用于在电子设备上的内容中诸如文本消息和电子邮件中发现任务的有效方式。该方法减轻了用户用于手动指定待调用的任务或一个或多个服务以及手动复制内容的多个部分以执行一个或多个任务的认知负荷,从而形成了更有效的人机界面。对于电池驱动的计算设备,使得用户能够更有效地完成任务节省了功率并增加了电池充电之间的时间间隔。
在框1002处,该电子设备接收通信。在一些示例中,该通信可以是任何内容,包括但不限于文本消息、电子邮件、文档、音频剪辑、图像或它们的组合。在一些示例中,该通信包括(例如,通过使用文本识别技术或语音转文本技术获得的)文本串。任选地,在框1003处,电子设备利用自动化助理来提供与通信的文本串对应的语音输出(例如“飞到1INFINITE LOOP CUPERTINO”)。在一些示例中,与通信的文本串对应的语音输出响应于用户请求(例如“读取我的消息”)而被提供。在一些示例中,提供与通信的文本串对应的语音输出包括在框1050处将通信的文本串转换成语音。
在框1006处,电子设备确定文本串的一部分是否与多个数据类型中的数据类型相关联。数据类型具有与其相关联的至少一个任务。任选地,在框1008处,电子设备利用检测器来在文本串的一部分中检测该数据类型的数据的存在。检测器对应于多个数据类型中的数据类型。任选地,在框1010处,电子设备基于电子设备的类型来从多个任务中识别至少一个任务。
在一些示例中,多个数据类型中的数据类型包括以下各项中的至少一者:地址、电话号码、统一资源定位符(“URL”)、日期、感兴趣的人、感兴趣的地点、包裹跟踪号或航班号。
任选地,在框1012处,电子设备利用电子设备的显示器来显示与任务对应的示能表示。任选地,在框1016处,电子设备基于电子设备的类型来使对第一任务的示能表示的显示优先于对第二任务的示能表示的显示。任选地,在框1017处,电子设备通过放弃对第二任务的示能表示的显示来使对第一任务的示能表示的显示优先。在第二任务的示能表示不被显示的一些示例中,如果电子设备接收到指示第二任务的用户输入(例如语音),则电子设备使得第二任务将被执行。
在框1014处,电子设备根据确定文本串的一部分不与多个数据类型中的数据类型相关联而放弃使得将基于文本串的一部分来执行任务。
在框1018处,电子设备根据确定文本串的一部分与多个数据类型中的数据类型相关联而接收用于指示至少一个任务中的与数据类型相关联的任务的用户输入。任选地,在框1020处,用户输入包括对所显示的示能表示的选择。
任选地,在框1022处,指示任务的用户输入是语音输入。在一些示例中,语音输入不包括文本的部分。在框1025处,用户意图基于上下文信息来从语音输入获得。上下文信息包括文本的部分。
在一些示例中,在框1023处,电子设备将与语音输入对应的数据发送至不同于所述电子设备的第二电子设备。与语音输入对应的数据不包括通信的文本串。在框1024处,电子设备从第二电子设备接收与任务对应的用户意图。
响应于框1018处的指示任务的用户输入,电子设备使得将基于文本串的部分来执行任务。在一些示例中,在不同于所述电子设备的第二电子设备处执行任务。
在一些示例中,与通信的文本串对应的语音输出是第一语音输出,并且用于指示任务的语音输入是第一语音输入。在框1004处,在框1003处提供第一语音输出之后,电子设备提供用于指示对回复通信的提示的第二语音输出(例如“要回复吗?”)。在框1005处,在框1004处提供第二语音输出之后,电子设备来从用户接收第二语音输入(例如“是的,你好”)。在一些示例中,在接收到第一语音输入(例如“开车送我去那里”)之前接收第二语音输入。
在一些示例中,在框1054处,电子设备基于通信来识别第一服务提供方(例如文本消息软件应用程序)。第一服务提供方与多个域中的第一域相关联。在框1056处,在接收到第二语音输入(“是的,你好”)之后,电子设备接收用于指示多个域中的第二域的第三语音输入(例如“作为电子邮件发送”)。第二域不同于第一域。作为响应,在框1058处,电子设备基于第三语音输入来识别第二服务提供方(例如电子邮件软件应用程序),并且在框1060处,将与第二语音输入相关联的数据提供至第二服务提供方。
在一些示例中,在文本串中检测到多于一个数据类型。在一些示例中,文本串的部分是文本串的第一部分,数据类型是第一数据类型,并且任务是第一任务。在框1070处,电子设备确定文本串的第二部分是否与多个数据类型中的第二数据类型相关联。在框1072处,根据确定文本串的第二部分与多个数据类型中的第二数据类型相关联,电子设备基于第二数据类型来识别第二任务。在框1074处,根据确定文本串的第二部分不与多个数据类型中的第二数据类型相关联,电子设备放弃基于第二数据类型来识别第二任务。
任选地,在框1030处,电子设备将与通信相关联的信息存储在电子设备上。在一些示例中,与通信相关联的所存储的信息包括文本串的部分。在一些示例中,与通信相关联的所存储的信息包括数据类型。在一些示例中,与通信相关联的所存储的信息包括与通信相关联的元数据。任选地,在框1032处,电子设备接收输入。任选地,在框1034处,电子设备基于该输入来识别任务。任选地,在框1036处,电子设备基于所存储的信息的至少一部分来执行任务。
任选地,在框1040处,电子设备将与通信相关联的信息存储在电子设备上。在一些示例中,框1040在功能上与框1030类似和/或相同。任选地,在框1042处,电子设备调用软件应用程序,并且在框1044处,基于所存储的信息的至少一部分来执行任务。
图11示出了根据各个示例的用于操作数字助理的过程1100。例如使用一个或多个电子设备(例如,设备104,106,200,400,600,1200或1300)来执行过程1100。在一些示例中,在实现数字助理的客户端-服务器系统(例如,系统100)处执行该过程。可在服务器(例如DA服务器106)和客户端(例如用户设备104)之间以任何方式分配该过程的各框。在过程1100中,一些框任选地被组合,一些框的次序任选地被改变,并且一些框任选地被省略。在一些示例中,执行仅下文结合图11所述的特征或框的子集。
如下文所述,方法1100提供了用于在电子设备上的内容中诸如文本消息和电子邮件中发现任务的有效方式。该方法减轻了用户用于手动指定待调用的任务或一个或多个服务以及手动复制内容的多个部分以执行一个或多个任务的认知负荷,从而形成了更有效的人机界面。对于电池驱动的计算设备,使得用户能够更有效地完成任务节省了功率并增加了电池充电之间的时间间隔。
在框1102处,电子设备接收包括文本串的通信。在框1104处,电子设备确定文本串的一部分是否与多个数据类型中的数据类型相关联。在一些示例中,多个数据类型中的数据类型包括以下各项中的至少一者:地址、电话号码、统一资源定位符(“URL”)、日期、感兴趣的人、感兴趣的地点、包裹跟踪号或航班号。
根据确定文本串的一部分与多个数据类型中的数据类型相关联,电子设备在1108处基于该数据类型来获得具有一个或多个参数的任务并在1110处输出所获得的任务。一个或多个参数中的参数包括文本串的部分。
任选地,在框1112处,电子设备利用电子设备的显示器来显示与所获得的任务对应的示能表示,其中用户输入包括对示能表示的选择。任选地,在1114处,电子设备输出音频输出。
任选地,在框1116处,电子设备接收用户输入,该用户输入指示对所获得任务的选择。任选地,在框1118处,响应于用于指示对所获得任务的选择的用户输入,电子设备使得将基于文本串的部分来执行任务。
在框1106处,根据确定文本串的一部分不与多个数据类型中的数据类型相关联,电子设备放弃基于该数据类型来获得具有一个或多个参数的任务。
根据一些实施方案,图12示出了根据各个所述实施方案的原理配置的电子设备1200的功能框图,所述实施方案包括结合图8A-图8E,图9A-图9C和图10A-图10C所述的那些实施方案。设备的功能框任选地由硬件、软件或硬件和软件的组合来实现,以执行各个所述实施方案的原理。本领域的技术人员应当理解,图12中所述的功能块任选地被组合或被分为子块,以实现各个所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。
如图12所示,电子设备1200包括处理单元1208,以及任选地显示单元1202和输出单元1204。任选地,将处理单元1208耦接至显示单元1202和输出单元1204。在一些示例中,处理单元1208包括接收单元1210、确定单元1212、引起单元1214以及任选地转换单元1216、识别单元1218、提供单元1220、检测单元1222、获得单元1224、发送单元1226、存储单元1228、执行单元1230和调用单元1232。
在一些示例中,处理单元1208被配置为:(例如利用接收单元1210)接收包括文本串的通信(例如图10A的框1002);(例如利用确定单元1212)确定文本串的一部分是否与多个数据类型中的数据类型相关联,其中数据类型具有与其相关联的至少一个任务(例如图10B的框1006);根据确定文本串的一部分与多个数据类型中的数据类型相关联:(例如利用接收单元1210)接收用于指示至少一个任务中的与所述数据类型相关联的任务的用户输入(例如图10B的框1018);响应于用于指示任务的该用户输入,(例如利用引起单元1214)使得将基于文本串的一部分来执行任务(例如图10C的框1026);根据确定文本串的一部分不与多个数据类型中的数据类型相关联,放弃(例如利用引起单元1214)使得将基于文本串的一部分来执行任务(例如图10B的框1014)。
在一些示例中,处理单元1208被进一步配置为:利用自动化助理来提供(例如利用输出单元1204)与通信的文本串对应的语音输出(例如图10A的框1003)。
在一些示例中,与通信的文本串对应的语音输出响应于用户请求而被提供。
在一些示例中,提供与通信的文本串对应的语音输出包括(例如利用转换单元1216)将通信的文本串转换成语音(例如图10A的框1050)。
在一些示例中,与通信的文本串对应的语音输出是第一语音输出,并且用于指示任务的语音输入是第一语音输入,并且其中处理单元1208被进一步配置为:在提供第一语音输出之后,(例如利用输出单元1204)提供用于指示对回复通信的提示的第二语音输出(例如图10A的框1004);在提供第二语音输出之后,(例如利用接收单元1210)从用户接收第二语音输入,其中在接收到第一语音输入之前接收第二语音输入(例如图10A的框1005)。
在一些示例中,处理单元1208被进一步配置为:(例如利用识别单元1218)基于通信来识别第一服务提供方,其中第一服务提供方与多个域中的第一域相关联(例如图10A的框1054);在接收到第二语音输入之后,(例如利用接收单元1210)接收用于指示多个域中的第二域的第三语音输入,其中第二域不同于第一域(例如图10A的框1056);(例如利用识别单元1218)基于第三语音输入来识别第二服务提供方(例如图10A的框1058);(例如利用提供单元1220)将与第二语音输入相关联的数据提供至第二服务提供方(例如图10A的框1060)。
在一些示例中,多个数据类型中的数据类型包括以下各项中的至少一者:地址、电话号码、统一资源定位符(“URL”)、日期、感兴趣的人、感兴趣的地点、包裹跟踪号或航班号。
在一些示例中,确定文本串的部分是否与多个数据类型中的数据类型相关联包括:在文本串的部分中利用检测器(例如利用检测单元1222)检测该数据类型的数据的存在,其中检测器对应于多个数据类型中的数据类型(例如图10B的框1008)。
在一些示例中,处理单元1208被进一步配置为基于电子设备1200的类型而(例如利用识别单元1218)识别多个任务中的至少一个任务(例如图10B的框1010)。
在一些示例中,文本串的部分是文本串的第一部分,数据类型是第一数据类型,并且任务是第一任务,并且其中处理单元1208被进一步配置为:(例如利用确定单元1212)确定文本串的第二部分是否与多个数据类型中的第二数据类型相关联(例如图10C的框1070);根据确定文本串的第二部分与多个数据类型中的第二数据类型相关联,基于第二数据类型(例如利用识别单元1218)来识别第二任务(例如图10C的框1072),并且根据确定文本串的第二部分不与多个数据类型中的第二数据类型相关联,放弃基于第二数据类型(例如利用识别单元1218)来识别第二任务(例如图10C的框1074)。
在一些示例中,处理单元1208被进一步配置为:(例如利用显示单元1202)显示与任务对应的示能表示(例如图10B的框1012),其中用户输入包括对示能表示的选择(例如图10B的框1020)。
在一些示例中,任务是第一任务,并且其中处理单元1208被进一步配置为:基于电子设备1200的类型来对使第一任务的示能表示(例如利用显示单元1202)的显示优先于对第二任务的示能表示的显示(例如图10B的框1016)。
在一些示例中,使对第一任务的示能表示的显示优先于对第二任务的示能表示的显示包括:放弃(例如利用显示单元1202)对第二任务的示能表示(例如图10B的框1017)的显示。
在一些示例中,处理单元1208被进一步配置为:(例如利用接收单元1210)接收用于指示第二任务的用户输入;(例如利用引起单元1214)使得第二任务将被执行。
在一些示例中,指示任务的用户输入是语音输入(例如图10B的框1022)。在一些示例中,语音输入不包括文本的部分。
在一些示例中,处理单元1208被进一步配置为基于上下文信息来从语音输入(例如利用获得单元1224)获得用户意图,其中上下文信息包括文本的部分(例如图10B的框1025)。
在一些示例中,电子设备1200是第一电子设备,并且其中处理单元1208被进一步配置为:利用第一电子设备:将与语音输入对应的数据(例如利用发送单元1226)发送至不同于第一电子设备的第二电子设备,其中与语音输入对应的数据不包括通信的文本串(例如图10B的框1023);从第二电子设备(例如利用接收单元1210)接收与任务对应的用户意图(例如图10B的框1024)。
在一些示例中,处理单元1208被进一步配置为:将与通信相关联的信息(例如利用存储单元1228)存储在电子设备1200上(例如图10C的框1030)。
在一些示例中,与通信相关联的所存储的信息包括文本串的部分。
在一些示例中,与通信相关联的所存储的信息包括数据类型。
在一些示例中,与通信相关联的所存储的信息包括与通信相关联的元数据。
在一些示例中,处理单元1208被进一步配置为:(例如利用接收单元1210)接收输入(例如图10C的框1032);基于该输入(例如利用识别单元1218)识别任务(例如图10C的框1034);以及基于所存储信息的至少一部分(例如利用执行单元1230)执行任务(例如图10C的框1036)。
在一些示例中,处理单元1208被进一步配置为:(例如利用调用单元1230)调用软件应用程序(例如图10C的框1042);基于所存储信息的至少一部分(例如利用执行单元1230)执行任务(例如图10C的框1044)。
在一些示例中,电子设备1200是第一电子设备,并且其中该任务在第二电子设备上执行。
以上参考图10A-图10C描述的操作任选地由图1-图4,图6A-图6B,图7A和图12中所示的部件来实现。例如,接收操作1002、确定操作1006和引起操作1026任选地由一个或多个处理器120来实现。本领域的普通技术人员会清楚地知道可如何基于图1-图4,图6A-图6B,图7A和图12中所示的部件来实现其他过程。
根据一些实施方案,图13示出了根据各个所述实施方案的原理配置的电子设备1300的功能框图,各个所述实施方案包括结合图8A-图8D,图9A-图9C和图11所述的那些实施方案。该设备的功能块任选地由进行各种所描述的实施方案的原则的硬件、软件、或硬件和软件的组合来实现,以执行各个所述实施方案的原理。本领域的技术人员应当理解,图13中所述的功能块任选地被组合或被分为子块,以实现各个所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。
如图13所示,电子设备1300包括输出单元1304、处理单元1308以及任选地显示单元1302。将处理单元1308耦接至输出单元1304以及任选地显示单元1302。在一些示例中,处理单元1308包括接收单元1310、确定单元1312、获得单元1314以及任选地引起单元1316。
在一些示例中,处理单元1308被配置为:(例如利用接收单元1310)接收包括文本串的通信(例如图11的框1102);(例如利用确定单元1312)确定文本串的一部分是否与多个数据类型中的数据类型相关联(例如图11的框1104);根据确定文本串的一部分与多个数据类型中的数据类型相关联:基于数据类型(例如利用获得单元1314)来获得具有一个或多个参数的任务,其中一个或多个参数中的参数包括文本串的部分,并(例如利用输出单元1304)输出所获得的任务(例如图11的框1108);根据确定文本串的一部分不与多个数据类型中的数据类型相关联,放弃基于数据类型(例如利用获得单元1314)来获得具有一个或多个参数的任务(例如图11的框1106)。
在一些示例中,处理单元1300被进一步配置为:(例如利用接收单元1310)接收用于指示对所获得任务的选择的用户输入(例如图11的框1116);响应于用于指示对所获得任务的选择的用户输入,(例如利用引起单元1316)使得基于文本串的部分来执行任务(例如图11的框1118)。
在一些示例中,输出所获得的任务包括(例如利用显示单元1302)显示与所获得的任务对应的示能表示,其中用户输入包括对示能表示的选择(例如图11的框1112)。
在一些示例中,,输出所获得的任务包括(例如利用输出单元1304)输出音频输出(例如图11的框1114)。
在一些示例中,多个数据类型中的数据类型包括以下各项中的至少一者:地址、电话号码、统一资源定位符(“URL”)、日期、感兴趣的人、感兴趣的地点、包裹跟踪号或航班号。
以上参考图11描述的操作任选地由图1-图4,图6A-图6B,图7A和图13中所示的部件来实现。例如,接收操作1102、确定操作1104和获得操作1108任选地由一个或多个处理器120来实现。本领域的普通技术人员会清楚地知道可如何基于图1-图4,图6A-图6B,图7A和图13中所示的部件来实现其他过程。
根据一些具体实施,提供一种计算机可读存储介质(例如,非暂态计算机可读存储介质),该计算机可读存储介质存储供电子设备的一个或多个处理器执行的一个或多个程序,该一个或多个程序包括用于执行本文所述的方法或过程中的任一者的指令。
根据一些具体实施,提供了包括用于执行本文所述的方法或过程中的任一者的装置的电子设备(例如便携式电子设备)。
根据一些具体实施,提供了包括被配置为执行本文所述的方法或过程中的任一者的处理单元的电子设备(例如便携式电子设备)。
根据一些具体实施,提供了包括一个或多个处理器和用于存储由一个或多个处理器执行的一个或多个程序的存储器的电子设备(例如便携式电子设备),所述一个或多个程序包括用于执行本文所述的方法或过程中的任一者的指令。
出于解释的目的,前面的描述已结合具体实施方案来描述。然而,上面的例示性论述并非旨在是穷尽的或将本发明限制为所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择并描述这些实施方案是为了最好地解释这些技术的原理及其实际应用。本领域的其他技术人员由此能够最好地利用这些技术以及具有适合于所预期的特定用途的各种修改的各种实施方案。
虽然参照附图对本公开以及示例进行了全面的描述,但应当注意,各种变化和修改对于本领域内的技术人员而言将变得显而易见。应当理解,此类变化和修改被认为被包括在由权利要求书所限定的本公开和示例的范围内。
如上所述,本发明的技术的一个方面在于采集和使用得自各种来源的数据以改善内容中的任务发现。本公开预期,在一些实例中,这些所采集的数据可包括唯一地识别或可用于联系或定位特定人员的个人信息数据。此类个人信息数据可包括人口数据、基于位置的数据、电话号码、电子邮件地址、家庭地址或任何其他识别信息。
本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,该个人信息数据可用于递送用户较感兴趣的目标内容。因此,使用此类个人信息数据使得能够对所递送的内容进行有计划的控制。此外,本公开还预期个人信息数据有益于用户的其他用途。
本公开还预期负责此类个人信息数据的收集、分析、公开、传输、存储或其他用途的实体将遵守已确立的隐私政策和/或隐私实践。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个人信息应当被收集用于实体的合法且合理的用途,并且不在这些合法使用之外共享或出售。另外,此类收集应当仅在用户知情同意之后进行。另外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据的访问,并且确保能够访问个人信息数据的其他人遵守他们的隐私政策和程序。另外,此类实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。
不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就广告递送服务而言,本发明的技术可被配置为在注册服务期间允许用户选择“加入”或“退出”参与对个人信息数据的收集。又如,用户可选择不为目标内容递送服务提供位置信息。再如,用户可选择不提供精确的位置信息,但准许传输位置区域信息。
因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可通过基于非个人信息数据或绝对最低限度的个人信息诸如与用户相关联的设备所请求的内容、对内容递送服务可用的其他非个人信息或公开可用信息来推断偏好,从而选择内容并递送给用户。
示例性方法、非暂态计算机可读存储介质、系统和电子设备提出于下列项目中:
1.一种用于在电子设备上操作自动化助理的方法,所述方法包括:
在所述电子设备处,
接收包括文本串的通信;
确定所述文本串的一部分是否与多个数据类型中的数据类型相关联,其中所述数据类型具有与其相关联的至少一个任务;
根据确定所述文本串的所述一部分与所述多个数据类型中的所述数据类型相关联:
接收用于指示所述至少一个任务中的与所述数据类型相关联的任务的用户输入;
响应于用于指示所述任务的所述用户输入,使得将基于所述文本串的所述一部分来执行所述任务;
根据确定所述文本串的所述一部分不与所述多个数据类型中的所述数据类型相关联,放弃使得将基于所述文本串的所述一部分来执行所述任务。
2.根据项目1所述的方法,还包括:利用所述自动化助理来提供与所述通信的所述文本串对应的语音输出。
3.根据项目2所述的方法,其中与所述通信的所述文本串对应的所述语音输出响应于用户请求而被提供。
4.根据项目2所述的方法,其中提供与所述通信的所述文本串对应的所述语音输出包括将所述通信的所述文本串转换成语音。
5.根据项目2所述的方法,
其中与所述通信的所述文本串对应的所述语音输出是第一语音输出,并且用于指示所述任务的语音输入是第一语音输入,所述方法还包括:
在提供所述第一语音输出之后,利用所述电子设备来提供用于指示对回复所述通信的提示的第二语音输出;
在提供所述第二语音输出之后,利用所述电子设备来从用户接收第二语音输入,
其中在接收到所述第一语音输入之前接收所述第二语音输入。
6.根据项目5所述的方法,还包括:
利用所述电子设备:
基于所述通信来识别第一服务提供方,其中所述第一服务提供方与多个域中的第一域相关联;
在接收到所述第二语音输入之后,接收用于指示所述多个域中的第二域的第三语音输入,其中所述第二域不同于所述第一域;
基于所述第三语音输入来识别第二服务提供方;
将与所述第二语音输入相关联的数据提供至所述第二服务提供方。
7.根据项目1-6中任一项所述的方法,其中所述多个数据类型中的所述数据类型包括以下各项中的至少一者:
地址,
电话号码,
统一资源定位符(“URL”),
日期,
感兴趣的人,
感兴趣的地点,
包裹跟踪号,或
航班号。
8.根据项目1-7中任一项所述的方法,其中确定所述文本串的所述一部分是否与所述多个数据类型中的所述数据类型相关联包括:
利用检测器来在所述文本串的所述一部分中检测所述数据类型的所述数据的存在,其中所述检测器对应于所述多个数据类型中的所述数据类型。
9.根据项目1-8中任一项所述的方法,
利用所述电子设备基于所述电子设备的类型来从多个任务识别至少一个任务。
10.根据项目1-9中任一项所述的方法,其中所述文本串的所述一部分是所述文本串的第一部分,所述数据类型是第一数据类型,并且所述任务是第一任务,所述方法还包括:
利用所述电子设备来确定所述文本串的第二部分是否与所述多个数据类型中的第二数据类型相关联;
根据确定所述文本串的所述第二部分与所述多个数据类型中的所述第二数据类型相关联,基于所述第二数据类型来识别第二任务,以及
根据确定所述文本串的所述第二部分不与所述多个数据类型中的所述第二数据类型相关联,放弃基于所述第二数据类型来识别所述第二任务。
11.根据项目1-10中任一项所述的方法,还包括:
利用所述电子设备的显示器来显示与所述任务对应的示能表示,其中所述用户输入包括对所述示能表示的选择。
12.根据项目11所述的方法,其中所述任务是第一任务,所述方法还包括:
利用所述电子设备基于所述电子设备的类型来使对所述第一任务的所述示能表示的显示优先于对第二任务的示能表示的显示。
13.根据项目12所述的方法,其中使对所述第一任务的所述示能表示的所述显示优先于对所述第二任务的所述示能表示的所述显示包括:
放弃对所述第二任务的所述示能表示的所述显示。
14.根据项目13所述的方法,还包括:
利用所述电子设备来接收用于指示所述第二任务的用户输入;
使得所述第二任务将被执行。
15.根据项目1-10所述的方法,其中用于指示所述任务的所述用户输入是语音输入。
16.根据项目15所述的方法,其中所述语音输入不包括所述文本的所述一部分。
17.根据项目15所述的方法,还包括基于上下文信息来从所述语音输入获得用户意图,其中所述上下文信息包括所述文本的所述一部分。
18.根据项目15所述的方法,其中所述电子设备是第一电子设备,所述方法还包括:
利用所述第一电子设备:
将与所述语音输入对应的数据发送至不同于所述第一电子设备的第二电子设备,
其中与所述语音输入对应的所述数据不包括所述通信的所述文本串;
从所述第二电子设备接收与所述任务对应的用户意图。
19.根据项目1-18中任一项所述的方法,还包括:
在所述电子设备上存储与所述通信相关联的信息。
20.根据项目19所述的方法,其中与所述通信相关联的所存储的信息包括所述文本串的所述一部分。
21.根据项目19所述的方法,其中与所述通信相关联的所存储的信息包括所述数据类型。
22.根据项目19所述的方法,其中与所述通信相关联的所存储的信息包括与所述通信相关联的元数据。
23.根据项目19所述的方法,还包括:
利用所述电子设备:
接收输入;
基于所述输入来识别任务;以及
基于所存储的信息的至少一部分来执行所述任务。
24.根据项目19所述的方法,还包括:
利用所述电子设备,
调用软件应用程序;
基于所存储的信息的至少一部分来执行所述任务。
25.根据项目1-24中任一项所述的方法,其中所述电子设备是第一电子设备,并且其中所述任务在第二电子设备上执行。
26.一种用于在电子设备上操作自动化助理的方法,所述方法包括:
在所述电子设备处:
接收包括文本串的通信;
确定所述文本串的一部分是否与多个数据类型中的数据类型相关联;
根据确定所述文本串的所述一部分与所述多个数据类型中的所述数据类型相关联:
基于所述数据类型来获得具有一个或多个参数的任务,其中所述一个或多个参数中的参数包括所述文本串的所述一部分,以及
输出所获得的任务;
根据确定所述文本串的所述一部分不与所述多个数据类型中的所述数据类型相关联,放弃基于所述数据类型来获得具有一个或多个参数的任务。
27.根据项目26所述的方法,还包括:
接收用于指示对所获得的任务的选择的用户输入;
响应于用于指示对所获得的任务的所述选择的所述用户输入,使得将基于所述文本串的所述一部分来执行所述任务。
28.根据项目26-27所述的方法,其中输出所获得的任务包括利用所述电子设备的显示器来显示与所获得的任务对应的示能表示,其中所述用户输入包括对所述示能表示的选择。
29.根据项目26-27所述的方法,其中输出所获得的任务包括输出音频输出。
30.根据项目26-29中任一项所述的方法,其中所述多个数据类型中的所述数据类型包括以下各项中的至少一者:
地址,
电话号码,
统一资源定位符(“URL”),
日期,
感兴趣的人,
感兴趣的地点,
包裹跟踪号,或
航班号。
31.一种电子设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于进行以下操作的指令:
接收包括文本串的通信;
确定所述文本串的一部分是否与多个数据类型中的数据类型相关联,其中所述数据类型具有与其相关联的至少一个任务;
根据确定所述文本串的所述一部分与所述多个数据类型中的所述数据类型相关联:
接收用于指示所述至少一个任务中的与所述数据类型相关联的任务的用户输入;
响应于用于指示所述任务的所述用户输入,使得将基于所述文本串的所述一部分来执行所述任务;
根据确定所述文本串的所述一部分不与所述多个数据类型中的所述数据类型相关联,放弃使得将基于所述文本串的所述一部分来执行所述任务。
32.一种电子设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于进行以下操作的指令:
接收包括文本串的通信;
确定所述文本串的一部分是否与多个数据类型中的数据类型相关联;
根据确定所述文本串的所述一部分与所述多个数据类型中的所述数据类型相关联:
基于所述数据类型来获得具有一个或多个参数的任务,其中所述一个或多个参数中的参数包括所述文本串的所述一部分,以及
输出所获得的任务;
根据确定所述文本串的所述一部分不与所述多个数据类型中的所述数据类型相关联,放弃基于所述数据类型来获得具有一个或多个参数的任务。
33.一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由电子设备的一个或多个处理器执行时使得所述设备:
接收包括文本串的通信;
确定所述文本串的一部分是否与多个数据类型中的数据类型相关联,其中所述数据类型具有与其相关联的至少一个任务;
根据确定所述文本串的所述一部分与所述多个数据类型中的所述数据类型相关联:
接收用于指示所述至少一个任务中的与所述数据类型相关联的任务的用户输入;
响应于用于指示所述任务的所述用户输入,使得将基于所述文本串的所述一部分来执行所述任务;
根据确定所述文本串的所述一部分不与所述多个数据类型中的所述数据类型相关联,放弃使得将基于所述文本串的所述一部分来执行所述任务。
34.一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由电子设备的一个或多个处理器执行时使得所述设备:
接收包括文本串的通信;
确定所述文本串的一部分是否与多个数据类型中的数据类型相关联;
根据确定所述文本串的所述一部分与所述多个数据类型中的所述数据类型相关联:
基于所述数据类型来获得具有一个或多个参数的任务,其中所述一个或多个参数中的参数包括所述文本串的所述一部分,以及
输出所获得的任务;
根据确定所述文本串的所述一部分不与所述多个数据类型中的所述数据类型相关联,放弃基于所述数据类型来获得具有一个或多个参数的任务。
35.一种电子设备,包括:
用于接收包括文本串的通信的装置;
用于确定所述文本串的一部分是否与多个数据类型中的数据类型相关联的装置,其中所述数据类型具有与其相关联的至少一个任务;
用于根据确定所述文本串的所述一部分与所述多个数据类型中的所述数据类型相关联而进行以下操作的装置,
接收用于指示所述至少一个任务中的与所述数据类型相关联的任务的用户输入;
响应于用于指示所述任务的所述用户输入,使得将基于所述文本串的所述一部分来执行所述任务;
用于根据确定所述文本串的所述一部分不与所述多个数据类型中的所述数据类型相关联而放弃使得将基于所述文本串的所述一部分来执行所述任务的装置。
36.一种电子设备,包括:
用于接收包括文本串的通信的装置;
用于确定所述文本串的一部分是否与多个数据类型中的数据类型相关联的装置;
用于根据确定所述文本串的所述一部分与所述多个数据类型中的所述数据类型相关联而进行以下操作的装置:
基于所述数据类型来获得具有一个或多个参数的任务,其中所述一个或多个参数中的参数包括所述文本串的所述一部分,以及
输出所获得的任务;
用于根据确定所述文本串的所述一部分不与所述多个数据类型中的所述数据类型相关联而放弃基于所述数据类型来获得具有一个或多个参数的任务的装置。
37.一种电子设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器来执行,所述一个或多个程序包括用于执行根据项目1-25所述的方法中的任一方法的指令。
38.一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由电子设备的一个或多个处理器执行时使得所述设备执行根据项目1-25所述的方法中的任一方法。
39.一种电子设备,包括:
用于执行根据项目1-25所述的方法中的任一方法的装置。
40.一种电子设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器来执行,所述一个或多个程序包括用于执行根据项目26-30所述的方法中的任一方法的指令。
41.一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由电子设备的一个或多个处理器执行时使得所述设备执行根据项目26-30所述的方法中的任一方法。
42.一种电子设备,包括:
用于执行根据项目26-30所述的方法中的任一方法的装置。
43.一种电子设备,包括:
处理单元,所述处理单元被配置为:
接收包括文本串的通信;
确定所述文本串的一部分是否与多个数据类型中的数据类型相关联,其中所述数据类型具有与其相关联的至少一个任务;
根据确定所述文本串的所述一部分与所述多个数据类型中的所述数据类型相关联:
接收用于指示所述至少一个任务中的与所述数据类型相关联的任务的用户输入;
响应于用于指示所述任务的所述用户输入,使得将基于所述文本串的所述一部分来执行所述任务;
根据确定所述文本串的所述一部分不与所述多个数据类型中的所述数据类型相关联,放弃使得将基于所述文本串的所述一部分来执行所述任务。
44.根据项目43所述的电子设备,其中所述处理单元被进一步配置为:利用自动化助理来提供与所述通信的所述文本串对应的语音输出。
45.根据项目44所述的电子设备,其中与所述通信的所述文本串对应的所述语音输出响应于用户请求而被提供。
46.根据项目44所述的电子设备,其中提供与所述通信的所述文本串对应的所述语音输出包括将所述通信的所述文本串转换成语音。
47.根据项目44所述的电子设备,
其中与所述通信的所述文本串对应的所述语音输出是第一语音输出,并且用于指示所述任务的语音输入是第一语音输入,并且其中所述处理单元被进一步配置为:
在提供所述第一语音输出之后,提供用于指示对回复所述通信的提示的第二语音输出;
在提供所述第二语音输出之后,从所述用户接收第二语音输入,其中在接收到所述第一语音输入之前接收所述第二语音输入。
48.根据项目47所述的电子设备,其中所述处理单元被进一步配置为:
基于所述通信来识别第一服务提供方,其中所述第一服务提供方与多个域中的第一域相关联;
在接收到所述第二语音输入之后,接收用于指示所述多个域中的第二域的第三语音输入,其中所述第二域不同于所述第一域;
基于所述第三语音输入来识别第二服务提供方;
将与所述第二语音输入相关联的数据提供至所述第二服务提供方。
49.根据项目43-48中任一项所述的电子设备,其中所述多个数据类型中的所述数据类型包括以下各项中的至少一者:
地址,
电话号码,
统一资源定位符(“URL”),
日期,
感兴趣的人,
感兴趣的地点,
包裹跟踪号,或
航班号。
50.根据项目43-49中任一项所述的电子设备,其中确定所述文本串的所述一部分是否与所述多个数据类型中的所述数据类型相关联包括:
利用检测器来在所述文本串的所述一部分中检测所述数据类型的所述数据的存在,其中所述检测器对应于所述多个数据类型中的所述数据类型。
51.根据项目43-50中任一项所述的电子设备,其中所述处理单元被进一步配置为基于所述电子设备的类型来从多个任务识别至少一个任务。
52.根据项目43-51中任一项所述的电子设备,其中所述文本串的所述一部分是所述文本串的第一部分,所述数据类型是第一数据类型,并且所述任务是第一任务,并且其中所述处理单元被进一步配置为:
利用所述电子设备来确定所述文本串的第二部分是否与所述多个数据类型中的第二数据类型相关联;
根据确定所述文本串的所述第二部分与所述多个数据类型中的所述第二数据类型相关联,基于所述第二数据类型来识别第二任务,以及
根据确定所述文本串的所述第二部分不与所述多个数据类型中的所述第二数据类型相关联,放弃基于所述第二数据类型来识别所述第二任务。
53.根据项目43-52所述的电子设备,其中所述处理单元被进一步配置为:利用所述电子设备的显示器来显示与所述任务对应的示能表示,其中所述用户输入包括对所述示能表示的选择。
54.根据项目53所述的电子设备,其中所述任务是第一任务,并且其中所述处理单元被进一步配置为:基于所述电子设备的类型来使对所述第一任务的所述示能表示的显示优先于对第二任务的示能表示的显示。
55.根据项目54所述的电子设备,其中使对所述第一任务的所述示能表示的所述显示优先于对所述第二任务的所述示能表示的所述显示包括:放弃对所述第二任务的所述示能表示的显示。
56.根据项目55所述的电子设备,其中所述处理单元被进一步配置为:
利用所述电子设备来接收用于指示所述第二任务的用户输入;
使得所述第二任务将被执行。
57.根据项目43-52中任一项所述的电子设备,其中用于指示所述任务的所述用户输入是语音输入。
58.根据项目57所述的电子设备,其中所述语音输入不包括所述文本的所述一部分。
59.根据项目57所述的电子设备,其中所述处理单元被进一步配置为基于上下文信息来从所述语音输入获得用户意图,其中所述上下文信息包括所述文本的所述一部分。
60.根据项目57所述的电子设备,其中所述电子设备是第一电子设备,并且其中所述处理单元被进一步配置为:
利用所述第一电子设备:
将与所述语音输入对应的数据发送至不同于所述第一电子设备的第二电子设备,
其中与所述语音输入对应的所述数据不包括所述通信的所述文本串;
从所述第二电子设备接收与所述任务对应的用户意图。
61.根据项目43-60中任一项所述的电子设备,其中所述处理单元被进一步配置为:在所述电子设备上存储与所述通信相关联的信息。
62.根据项目61所述的电子设备,其中与所述通信相关联的所存储的信息包括所述文本串的所述一部分。
63.根据项目61所述的电子设备,其中与所述通信相关联的所存储的信息包括所述数据类型。
64.根据项目61所述的电子设备,其中与所述通信相关联的所存储的信息包括与所述通信相关联的元数据。
65.根据项目61所述的电子设备,其中所述处理单元被进一步配置为:
接收输入;
基于所述输入来识别任务;以及
基于所存储的信息的至少一部分来执行所述任务。
66.根据项目61所述的电子设备,其中所述处理单元被进一步配置为:
调用软件应用程序;
基于所存储的信息的至少一部分来执行所述任务。
67.根据项目43-66中任一项所述的电子设备,其中所述电子设备是第一电子设备,并且其中所述任务在第二电子设备上执行。
68.一种电子设备,包括:
处理单元,所述处理单元被配置为:
接收包括文本串的通信;
确定所述文本串的一部分是否与多个数据类型中的数据类型相关联;
根据确定所述文本串的所述一部分与所述多个数据类型中的所述数据类型相关联:
基于所述数据类型来获得具有一个或多个参数的任务,其中所述一个或多个参数中的参数包括所述文本串的所述一部分,以及
输出所获得的任务;
根据确定所述文本串的所述一部分不与所述多个数据类型中的所述数据类型相关联,放弃基于所述数据类型来获得具有一个或多个参数的任务。
69.根据项目68所述的电子设备,其中所述处理单元被进一步配置为:
接收用于指示对所获得的任务的选择的用户输入;
响应于用于指示对所获得的任务的所述选择的所述用户输入,使得将基于所述文本串的所述一部分来执行所述任务。
70.根据项目68-69所述的电子设备,其中输出所获得的任务包括利用所述电子设备的显示器来显示与所获得的任务对应的示能表示,其中所述用户输入包括对所述示能表示的选择。
71.根据项目68-69所述的电子设备,其中输出所获得的任务包括输出音频输出。
72.根据项目68-71中任一项所述的电子设备,其中所述多个数据类型中的所述数据类型包括以下各项中的至少一者:
地址,
电话号码,
统一资源定位符(“URL”),
日期,
感兴趣的人,
感兴趣的地点,
包裹跟踪号,或
航班号。
Claims (27)
1.一种用于在电子设备上操作自动化助理的方法,所述方法包括:
在所述电子设备处,
接收包括文本串的通信;
确定所述文本串的一部分是否与多个数据类型中的数据类型相关联,其中所述数据类型与多个任务相关联;
根据确定所述文本串的所述一部分与所述多个数据类型中的所述数据类型相关联:
基于所述电子设备的类型,从所述多个任务中识别至少一个任务,其中所述多个任务中的每个任务能够由所述电子设备执行;
利用所述电子设备的显示器,显示对应于所识别的任务的示能表示和对应于第二任务的示能表示,其中所述第二任务不同于所识别的任务并且被包括在所述多个任务中,其中,使对应于所识别的任务的所述示能表示的显示优先于对应于所述第二任务的所述示能表示的显示;
接收与对应于所识别的任务的所述示能表示相关联的用户输入;以及
响应于与对应于所识别的任务的所述示能表示相关联的所述用户输入,使得基于所述文本串的所述一部分来执行所识别的任务;以及
根据确定所述文本串的所述一部分不与所述多个数据类型中的所述数据类型相关联,放弃使得基于所述文本串的所述一部分来执行任务。
2.根据权利要求1所述的方法,还包括:利用自动化助理来提供与所述通信的所述文本串对应的语音输出。
3.根据权利要求2所述的方法,其中与所述通信的所述文本串对应的所述语音输出响应于用户请求而被提供。
4.根据权利要求2所述的方法,其中提供与所述通信的所述文本串对应的所述语音输出包括将所述通信的所述文本串转换成语音。
5.根据权利要求2所述的方法,
其中与所述通信的所述文本串对应的所述语音输出是第一语音输出,并且与对应于所识别的任务的所述示能表示相关联的所述用户输入是第一语音输入,所述方法还包括:
在提供所述第一语音输出之后,利用所述电子设备来提供用于指示对回复所述通信的提示的第二语音输出;
在提供所述第二语音输出之后,利用所述电子设备来从用户接收第二语音输入,
其中在接收到所述第一语音输入之前接收所述第二语音输入。
6.根据权利要求5所述的方法,还包括:
利用所述电子设备:
基于所述通信来识别第一服务提供方,其中所述第一服务提供方与多个域中的第一域相关联;
在接收到所述第二语音输入之后,接收用于指示所述多个域中的第二域的第三语音输入,其中所述第二域不同于所述第一域;
基于所述第三语音输入来识别第二服务提供方;
将与所述第二语音输入相关联的数据提供至所述第二服务提供方。
7.根据权利要求1-6中任一项所述的方法,其中所述多个数据类型中的所述数据类型包括以下各项中的至少一者:
地址,
电话号码,
统一资源定位符(“URL”),
日期,
感兴趣的人,
感兴趣的地点,
包裹跟踪号,或
航班号。
8.根据权利要求1-6中任一项所述的方法,其中确定所述文本串的所述一部分是否与所述多个数据类型中的所述数据类型相关联包括:
利用检测器来在所述文本串的所述一部分中检测所述数据类型的数据的存在,其中所述检测器对应于所述多个数据类型中的所述数据类型。
9.根据权利要求1-6中任一项所述的方法,其中所述文本串的所述一部分是所述文本串的第一部分,所述数据类型是第一数据类型,所述方法还包括:
基于所述多个数据类型中的第二数据类型,根据利用所述电子设备确定所述文本串的第二部分与所述第二数据类型相关联,来识别所述第二任务。
10.根据权利要求1-6中任一项所述的方法,
其中与对应于所识别的任务的所述示能表示相关联的所述用户输入包括对所述示能表示的选择。
11.根据权利要求1所述的方法,其中使对应于所识别的任务的所述示能表示的所述显示优先于对应于第二任务的所述示能表示的所述显示包括:
放弃对应于所述第二任务的所述示能表示的所述显示。
12.根据权利要求11所述的方法,还包括:
利用所述电子设备来接收与对应于所述第二任务的所述示能表示相关联的用户输入;以及
使得所述第二任务被执行。
13.根据权利要求1-6中任一项所述的方法,其中与对应于所识别的任务的所述示能表示相关联的所述用户输入是语音输入。
14.根据权利要求13所述的方法,其中所述语音输入不包括所述文本串的所述一部分。
15.根据权利要求13所述的方法,还包括:
基于上下文信息来从所述语音输入获得用户意图,其中所述上下文信息包括所述文本串的所述一部分。
16.根据权利要求13所述的方法,其中所述电子设备是第一电子设备,所述方法还包括:
利用所述第一电子设备:
将与所述语音输入对应的数据发送至不同于所述第一电子设备的第二电子设备,
其中与所述语音输入对应的所述数据不包括所述通信的所述文本串;
从所述第二电子设备接收与所识别的任务对应的用户意图。
17.根据权利要求1-6、11以及12中任一项所述的方法,还包括:
在所述电子设备上存储与所述通信相关联的信息。
18.根据权利要求17所述的方法,其中与所述通信相关联的所存储的信息包括所述文本串的所述一部分。
19.根据权利要求17所述的方法,其中与所述通信相关联的所存储的信息包括所述数据类型。
20.根据权利要求17所述的方法,其中与所述通信相关联的所存储的信息包括与所述通信相关联的元数据。
21.根据权利要求17所述的方法,还包括:
利用所述电子设备:
接收输入;
基于所述输入来识别第三任务;以及
基于所存储的信息的至少一部分来执行所述第三任务。
22.根据权利要求17所述的方法,还包括:
利用所述电子设备,
调用软件应用程序;
基于所存储的信息的至少一部分来执行所识别的任务。
23.根据权利要求1-6、11以及12中任一项所述的方法,其中所述电子设备是第一电子设备,并且其中所识别的任务在第二电子设备上执行。
24.一种电子设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于进行以下操作的指令:
接收包括文本串的通信;
确定所述文本串的一部分是否与多个数据类型中的数据类型相关联,其中,所述数据类型与多个任务相关联;
根据确定所述文本串的所述一部分与所述多个数据类型中的所述数据类型相关联:
基于所述电子设备的类型,从所述多个任务中识别至少一个任务,其中所述多个任务中的每个任务能够由所述电子设备执行;
利用所述电子设备的显示器,显示对应于所识别的任务的示能表示和对应于第二任务的示能表示,其中所述第二任务不同于所识别的任务并且被包括在所述多个任务中,其中,使对应于所识别的任务的所述示能表示的显示优先于对应于所述第二任务的所述示能表示的显示;
接收与对应于所识别的任务的所述示能表示相关联的用户输入;以及
响应于与对应于所识别的任务的所述示能表示相关联的所述用户输入,使得基于所述文本串的所述一部分来执行所识别的任务;以及
根据确定所述文本串的所述一部分不与所述多个数据类型中的所述数据类型相关联,放弃使得基于所述文本串的所述一部分来执行任务。
25.根据权利要求24所述的电子设备,其中所述一个或多个程序包括用于执行权利要求2-23中任一项所述的方法的指令。
26.一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由电子设备的一个或多个处理器执行时使得所述设备:
接收包括文本串的通信;
确定所述文本串的一部分是否与多个数据类型中的数据类型相关联,其中,所述数据类型与多个任务相关联;
根据确定所述文本串的所述一部分与所述多个数据类型中的所述数据类型相关联:
基于所述电子设备的类型,从所述多个任务中识别至少一个任务,其中所述多个任务中的每个任务能够由所述电子设备执行;
利用所述电子设备的显示器,显示对应于所识别的任务的示能表示和对应于第二任务的示能表示,其中所述第二任务不同于所识别的任务并且被包括在所述多个任务中,其中,使对应于所识别的任务的所述示能表示的显示优先于对应于所述第二任务的所述示能表示的显示;
接收与对应于所识别的任务的所述示能表示相关联的用户输入;以及
响应于与对应于所识别的任务的所述示能表示相关联的所述用户输入,使得基于所述文本串的所述一部分来执行所识别的任务;以及
根据确定所述文本串的所述一部分不与所述多个数据类型中的所述数据类型相关联,放弃使得基于所述文本串的所述一部分来执行任务。
27.根据权利要求26所述的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令被电子设备的一个或多个处理器执行时,使得所述设备执行权利要求2-23中任一项所述的方法。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662348888P | 2016-06-11 | 2016-06-11 | |
US62/348,888 | 2016-06-11 | ||
DKPA201670553A DK179343B1 (en) | 2016-06-11 | 2016-07-25 | Intelligent task discovery |
DKPA201670553 | 2016-07-25 | ||
US15/269,740 | 2016-09-19 | ||
US15/269,740 US10269345B2 (en) | 2016-06-11 | 2016-09-19 | Intelligent task discovery |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107491469A CN107491469A (zh) | 2017-12-19 |
CN107491469B true CN107491469B (zh) | 2020-11-24 |
Family
ID=60642116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710393363.XA Active CN107491469B (zh) | 2016-06-11 | 2017-05-27 | 智能任务发现 |
Country Status (3)
Country | Link |
---|---|
KR (1) | KR102026523B1 (zh) |
CN (1) | CN107491469B (zh) |
AU (2) | AU2017203668C1 (zh) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8977255B2 (en) | 2007-04-03 | 2015-03-10 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
KR20240132105A (ko) | 2013-02-07 | 2024-09-02 | 애플 인크. | 디지털 어시스턴트를 위한 음성 트리거 |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
DK201770428A1 (en) | 2017-05-12 | 2019-02-18 | Apple Inc. | LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT |
DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
US20180336275A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Intelligent automated assistant for media exploration |
US10818288B2 (en) * | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US11113473B2 (en) * | 2018-04-02 | 2021-09-07 | SoundHound Inc. | Interpreting expressions having potentially ambiguous meanings in different domains |
US10978056B1 (en) | 2018-04-20 | 2021-04-13 | Facebook, Inc. | Grammaticality classification for natural language generation in assistant systems |
US10782986B2 (en) | 2018-04-20 | 2020-09-22 | Facebook, Inc. | Assisting users with personalized and contextual communication content |
US11886473B2 (en) | 2018-04-20 | 2024-01-30 | Meta Platforms, Inc. | Intent identification for agent matching by assistant systems |
EP3557500A1 (en) * | 2018-04-20 | 2019-10-23 | Facebook, Inc. | Building customized user profiles based on conversational data |
US11715042B1 (en) | 2018-04-20 | 2023-08-01 | Meta Platforms Technologies, Llc | Interpretability of deep reinforcement learning models in assistant systems |
US11307880B2 (en) | 2018-04-20 | 2022-04-19 | Meta Platforms, Inc. | Assisting users with personalized and contextual communication content |
US11115410B1 (en) | 2018-04-20 | 2021-09-07 | Facebook, Inc. | Secure authentication for assistant systems |
DK180639B1 (en) | 2018-06-01 | 2021-11-04 | Apple Inc | DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT |
US10949616B1 (en) | 2018-08-21 | 2021-03-16 | Facebook, Inc. | Automatically detecting and storing entity information for assistant systems |
US10896295B1 (en) | 2018-08-21 | 2021-01-19 | Facebook, Inc. | Providing additional information for identified named-entities for assistant systems |
CN109101101B (zh) * | 2018-08-30 | 2020-12-04 | Oppo广东移动通信有限公司 | 穿戴式设备的控制方法、装置、存储介质及穿戴式设备 |
US11836635B2 (en) | 2019-05-31 | 2023-12-05 | Apple Inc. | Mutable parameters for machine learning models during runtime |
CN112016681B (zh) * | 2019-05-31 | 2024-04-30 | 苹果公司 | 机器学习操作的分解 |
US11657094B2 (en) | 2019-06-28 | 2023-05-23 | Meta Platforms Technologies, Llc | Memory grounded conversational reasoning and question answering for assistant systems |
US11442992B1 (en) | 2019-06-28 | 2022-09-13 | Meta Platforms Technologies, Llc | Conversational reasoning with knowledge graph paths for assistant systems |
US11567788B1 (en) | 2019-10-18 | 2023-01-31 | Meta Platforms, Inc. | Generating proactive reminders for assistant systems |
US11308284B2 (en) | 2019-10-18 | 2022-04-19 | Facebook Technologies, Llc. | Smart cameras enabled by assistant systems |
US11562744B1 (en) | 2020-02-13 | 2023-01-24 | Meta Platforms Technologies, Llc | Stylizing text-to-speech (TTS) voice response for assistant systems |
US11159767B1 (en) | 2020-04-07 | 2021-10-26 | Facebook Technologies, Llc | Proactive in-call content recommendations for assistant systems |
CN114201128A (zh) | 2020-09-02 | 2022-03-18 | 华为技术有限公司 | 一种显示方法及设备 |
CN111666055B (zh) * | 2020-04-24 | 2021-12-14 | 华为技术有限公司 | 数据的传输方法及装置 |
CN112083867A (zh) | 2020-07-29 | 2020-12-15 | 华为技术有限公司 | 一种跨设备的对象拖拽方法及设备 |
US11061543B1 (en) | 2020-05-11 | 2021-07-13 | Apple Inc. | Providing relevant data items based on context |
US11658835B2 (en) | 2020-06-29 | 2023-05-23 | Meta Platforms, Inc. | Using a single request for multi-person calling in assistant systems |
US11490204B2 (en) | 2020-07-20 | 2022-11-01 | Apple Inc. | Multi-device audio adjustment coordination |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5946647A (en) * | 1996-02-01 | 1999-08-31 | Apple Computer, Inc. | System and method for performing an action on a structure in computer-generated data |
US8134481B2 (en) * | 2006-08-11 | 2012-03-13 | Honda Motor Co., Ltd. | Method and system for receiving and sending navigational data via a wireless messaging service on a navigation system |
US9318108B2 (en) * | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
GB2445670A (en) * | 2007-01-09 | 2008-07-16 | Spinvox Ltd | Network based speech to text message conversion system |
CN103135916A (zh) * | 2011-11-30 | 2013-06-05 | 英特尔公司 | 手持无线设备中的智能图形界面 |
US9916514B2 (en) * | 2012-06-11 | 2018-03-13 | Amazon Technologies, Inc. | Text recognition driven functionality |
CN102801853B (zh) * | 2012-06-27 | 2017-02-15 | 宇龙计算机通信科技(深圳)有限公司 | 移动终端和自动触发任务执行方法 |
KR102014778B1 (ko) * | 2012-12-14 | 2019-08-27 | 엘지전자 주식회사 | 텍스트 메시징 서비스를 제공하는 디지털 디바이스 및 그 제어 방법 |
US9218819B1 (en) * | 2013-03-01 | 2015-12-22 | Google Inc. | Customizing actions based on contextual data and voice-based inputs |
US20150193379A1 (en) * | 2014-01-06 | 2015-07-09 | Apple Inc. | System and method for cognizant time-based reminders |
CN103744761B (zh) * | 2014-01-22 | 2017-02-08 | 广东欧珀移动通信有限公司 | 一种控制多台移动终端自动执行任务的方法及系统 |
KR102282487B1 (ko) * | 2014-05-08 | 2021-07-26 | 삼성전자주식회사 | 애플리케이션 실행 장치 및 방법 |
-
2017
- 2017-05-27 CN CN201710393363.XA patent/CN107491469B/zh active Active
- 2017-05-31 KR KR1020170067655A patent/KR102026523B1/ko active IP Right Grant
- 2017-05-31 AU AU2017203668A patent/AU2017203668C1/en active Active
-
2018
- 2018-12-20 AU AU2018282384A patent/AU2018282384B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
AU2018282384A1 (en) | 2019-01-17 |
CN107491469A (zh) | 2017-12-19 |
AU2018282384B2 (en) | 2020-10-08 |
KR20170140079A (ko) | 2017-12-20 |
AU2017203668B2 (en) | 2018-09-27 |
KR102026523B1 (ko) | 2019-09-27 |
AU2017203668A1 (en) | 2018-01-04 |
AU2017203668C1 (en) | 2019-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107491469B (zh) | 智能任务发现 | |
CN111418007B (zh) | 多轮预制对话 | |
JP6749440B2 (ja) | インテリジェントタスクディスカバリ | |
CN110288994B (zh) | 检测数字助理的触发 | |
CN108733438B (zh) | 应用程序与数字助理集成 | |
CN110058834B (zh) | 智能设备仲裁和控制 | |
CN107491284B (zh) | 提供自动化状态报告的数字助理 | |
CN109257941B (zh) | 用于数字助理的同步和任务委派的方法、电子设备和系统 | |
CN111913778B (zh) | 具有数字助理的应用集成 | |
CN107195306B (zh) | 识别提供凭据的语音输入 | |
CN107949823B (zh) | 零延迟数字助理 | |
CN110851101B (zh) | 虚拟助理激活 | |
CN107615378B (zh) | 设备语音控制 | |
CN110442319B (zh) | 对语音触发进行响应的竞争设备 | |
CN115088250A (zh) | 视频通信会话环境中的数字助理交互 | |
CN112567332A (zh) | 语音命令的多模态输入 | |
CN112767929A (zh) | 个人信息的隐私维护 | |
KR20200119911A (ko) | 지능형 디바이스 중재 및 제어 | |
CN112286428A (zh) | 虚拟助理连续性 | |
CN110603586B (zh) | 用于校正识别错误的用户界面 | |
CN111524506B (zh) | 维护个人信息的隐私的自然语言输入的客户端服务器处理 | |
CN109257942B (zh) | 用户特定的声学模型 | |
CN110574023A (zh) | 脱机个人助理 | |
CN111899739A (zh) | 语音通知 | |
CN111243606A (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 |