掌桥专利:专业的专利平台
掌桥专利
首页

本申请是国际申请号为PCT/US2016/035112、国际申请日为2016年05 月31日、于2018年02月27日进入中国国家阶段、中国国家申请号为 201680049844.2、发明名称为“分布式个人助理”的发明专利申请的分案申 请。

本专利申请要求于2015年9月8日提交的标题为“DISTRIBUTED PERSONALASSISTANT”的美国临时专利申请序列号62/215,647和于 2016年5月26日提交的标题为“DISTRIBUTED PERSONAL ASSISTANT”的美国专利申请序列号15/166,090的优先权。这些专利申请 的内容据此以引用方式并入以用于所有目的。

技术领域

本公开整体涉及虚拟助理,并且更具体地讲涉及执行与虚拟助理的任 务。

背景技术

智能自动化助理(或数字助理)在人类用户与电子设备之间提供有利 界面。此类助理允许用户使用自然语言以语音形式和/或文本形式与设备或 系统进行交互。例如,用户可通过向与电子设备相关联的数字助理提供语 音用户请求来访问电子设备的服务。数字助理可根据该语音用户请求解译 用户的意图并且将用户意图操作化成任务。随后可通过执行电子设备的一 项或多项服务来执行这些任务,并且可将相关输出以自然语言形式返回给 用户。

发明内容

在虚拟助理处理的任务在远离电子设备的服务器处执行的限度内,任 务执行的速度可能由于多种原因而变得不期望地缓慢。在虚拟助理处理的 任务在电子设备自身处执行的限度内,执行任务的速度也可能变得不期望 地缓慢。

因此,本技术为电子设备提供更快、更有效的方法用于执行与数字助 理的任务。此类方法和界面任选地补充或替换用于执行与数字助理的任务 的其他方法。此类方法和界面减少对用户所造成的认知负担,并且产生更 有效的人机界面。对于电池驱动的计算设备,此类方法和界面可节省功 率,增长电池两次充电之间的时间间隔,以及减少执行任务所需要的时 间。

在一些实施方案中,一种使用虚拟助理的方法包括:在被配置为传输 和接收数据的电子设备处,接收针对来自虚拟助理的服务的用户请求;确 定响应于所述用户请求执行至少一个任务;基于至少一个启发,估计以所 述电子设备完成所述至少一个任务的至少一个性能特征;基于所述估计, 确定是否在所述电子设备处执行所述至少一个任务;根据确定在所述电子 设备处执行所述至少一个任务,导致在所述电子设备处执行所述至少一个任务;根据确定在所述电子设备之外执行所述至少一个任务;生成用于执 行所述至少一个任务的可执行代码;并从所述电子设备传输所述可执行代 码。

在一些实施方案中,一种电子设备包括显示器;存储器;麦克风;传 输器;接收器;和耦接至所述显示器、所述存储器、所述麦克风、所述传 输器和所述接收器的处理器;所述处理器被配置为:接收针对来自虚拟助 理的服务的用户请求;确定响应于所述用户请求执行至少一个任务;基于 至少一个启发,估计以所述电子设备完成所述至少一个任务的至少一个性 能特征;基于所述估计,确定是否在所述电子设备处执行所述至少一个任 务;根据确定在所述电子设备处执行所述至少一个任务,导致在所述电子 设备处执行所述至少一个任务;根据确定在所述电子设备之外执行所述至 少一个任务;生成用于执行所述至少一个任务的可执行代码;并从所述电 子设备传输所述可执行代码。

在一些实施方案中,一种存储一个或多个程序的非暂态计算机可读存 储介质,所述一个或多个程序包括指令,所述指令当由电子设备执行时, 使得所述电子设备:接收针对来自虚拟助理的服务的用户请求;确定响应 于所述用户请求执行至少一个任务;基于至少一个启发,估计以所述电子 设备完成所述至少一个任务的至少一个性能特征;基于所述估计,确定是 否在所述电子设备处执行所述至少一个任务;根据确定在所述电子设备处执行所述至少一个任务,导致在所述电子设备处执行所述至少一个任务; 根据确定在所述电子设备之外执行所述至少一个任务;生成用于执行所述 至少一个任务的可执行代码;并从所述电子设备传输所述可执行代码。

在一些实施方案中,一种存储一个或多个程序的暂态计算机可读存储 介质,所述一个或多个程序包括指令,所述指令当由电子设备执行时,使 得所述电子设备:接收针对来自虚拟助理的服务的用户请求;确定响应于 所述用户请求执行至少一个任务;基于至少一个启发,估计以所述电子设 备完成所述至少一个任务的至少一个性能特征;基于所述估计,确定是否 在所述电子设备处执行所述至少一个任务;根据确定在所述电子设备处执行所述至少一个任务,导致在所述电子设备处执行所述至少一个任务;根 据确定在所述电子设备之外执行所述至少一个任务;生成用于执行所述至 少一个任务的可执行代码;并从所述电子设备传输所述可执行代码。

在一些实施方案中,一种系统利用具有显示器的电子设备,所述系统 包括:用于接收针对来自虚拟助理的服务的用户请求的装置;用于确定响 应于所述用户请求执行至少一个任务的装置;用于基于至少一个启发估计 以所述电子设备完成所述至少一个任务的至少一个性能特征的装置;基于 所述估计,用于确定是否在所述电子设备处执行所述至少一个任务的装 置;根据确定在所述电子设备处执行所述至少一个任务,用于导致在所述电子设备处执行所述至少一个任务的装置;根据确定在所述电子设备之外 执行所述至少一个任务;用于生成用于执行所述至少一个任务的可执行代 码的装置;和用于从所述电子设备传输所述可执行代码的装置。

在一些实施方案中,一种电子设备包括处理单元,所述处理单元包括 传输单元、接收单元、确定单元、估计单元、导致单元、和生成单元;所 述处理单元被配置为:使用所述接收单元接收针对来自虚拟助理的服务的 用户请求;使用所述确定单元,确定响应于所述用户请求执行至少一个任 务;使用所述估计单元,基于至少一个启发,估计以所述电子设备完成所 述至少一个任务的至少一个性能特征;基于所述估计,使用所述确定单元 确定是否在所述电子设备处执行所述至少一个任务;根据确定在所述电子 设备处执行所述至少一个任务,使用所述导致单元导致在所述电子设备处 执行所述至少一个任务;根据确定在所述电子设备之外执行所述至少一个 任务:使用所述生成单元生成用于执行所述至少一个任务的可执行代码; 和使用所述传输单元从所述电子设备传输所述可执行代码。

在一些实施方案中,一种使用分布在服务器和电子设备之间的虚拟助 理的方法包括:接收针对来自虚拟助理的服务的用户请求;确定响应于所 述用户请求执行至少一个任务;基于至少一个启发,估计以所述服务器完 成所述至少一个任务的至少一个性能特征;基于所述估计,确定是否在所 述服务器处执行所述至少一个任务;根据确定在所述服务器处执行所述至 少一个任务,导致在所述服务器处执行所述至少一个任务;根据确定在所 述服务器之外执行所述至少一个任务;生成用于执行所述至少一个任务的 可执行代码;并从所述服务器传输所述可执行代码。

在一些实施方案中,一种电子设备包括:存储器;传输器;接收器; 和耦接至所述存储器、所述传输器和所述接收器的处理器;所述处理器被 配置为:接收针对来自虚拟助理的服务的用户请求;确定响应于所述用户 请求执行至少一个任务;基于至少一个启发,估计以所述服务器完成所述 至少一个任务的至少一个性能特征;基于所述估计,确定是否在所述服务 器处执行所述至少一个任务;根据确定在所述服务器处执行所述至少一个 任务,导致在所述服务器处执行所述至少一个任务;根据确定在所述服务 器之外执行所述至少一个任务;生成用于执行所述至少一个任务的可执行 代码;并从所述服务器传输所述可执行代码。

在一些实施方案中,一种存储一个或多个程序的非暂态计算机可读存 储介质,所述一个或多个程序包括指令,所述指令当由电子设备执行时, 使得所述电子设备:接收针对来自虚拟助理的服务的用户请求;确定响应 于所述用户请求执行至少一个任务;基于至少一个启发,估计以所述服务 器完成所述至少一个任务的至少一个性能特征;基于所述估计,确定是否 在所述服务器处执行所述至少一个任务;根据确定在所述服务器处执行所述至少一个任务,导致在所述服务器处执行所述至少一个任务;根据确定 在所述服务器之外执行所述至少一个任务;生成用于执行所述至少一个任 务的可执行代码;并从所述服务器传输所述可执行代码。

在一些实施方案中,一种存储一个或多个程序的暂态计算机可读存储 介质,所述一个或多个程序包括指令,所述指令当由电子设备执行时,使 得所述电子设备:接收针对来自虚拟助理的服务的用户请求;确定响应于 所述用户请求执行至少一个任务;基于至少一个启发,估计以所述服务器 完成所述至少一个任务的至少一个性能特征;基于所述估计,确定是否在 所述服务器处执行所述至少一个任务;根据确定在所述服务器处执行所述至少一个任务,导致在所述服务器处执行所述至少一个任务;根据确定在 所述服务器之外执行所述至少一个任务;生成用于执行所述至少一个任务 的可执行代码;并从所述服务器传输所述可执行代码。

在一些实施方案中,一种系统利用具有显示器的电子设备,所述系统 包括:用于接收针对来自虚拟助理的服务的用户请求的装置;用于确定响 应于所述用户请求执行至少一个任务的装置;用于基于至少一个启发估计 以所述服务器完成所述至少一个任务的至少一个性能特征的装置;基于所 述估计,用于确定是否在所述服务器处执行所述至少一个任务的装置;根 据确定在所述服务器处执行所述至少一个任务,用于导致在所述服务器处 执行所述至少一个任务的装置;根据确定在所述服务器之外执行所述至少 一个任务;用于生成用于执行所述至少一个任务的可执行代码的装置;和 用于从所述服务器传输所述可执行代码的装置。

在一些实施方案中,一种服务器包括处理单元,所述处理单元包括接 收单元、传输单元、确定单元、估计单元、生成单元、和导致单元;所述 处理单元被配置为:接收针对来自虚拟助理的服务的用户请求;确定响应 于所述用户请求执行至少一个任务;基于至少一个启发,估计以所述服务 器完成所述至少一个任务的至少一个性能特征;基于所述估计,确定是否 在所述服务器处执行所述至少一个任务;根据确定在所述服务器处执行所 述至少一个任务,导致在所述服务器处执行所述至少一个任务;根据确定 在所述服务器之外执行所述至少一个任务;生成用于执行所述至少一个任 务的可执行代码;并从所述服务器传输所述可执行代码。

在一些实施方案中,一种使用分布在服务器和客户端之间的虚拟助理 的方法包括:在电子设备处接收针对来自虚拟助理的服务的用户请求;确 定响应于所述用户请求执行多个任务;基于至少一个启发,估计以所述电 子设备和以所述服务器完成所述至少一个任务的至少一个性能特征;基于 所述估计,确定是否在所述电子设备和所述服务器中的一者处执行所述至 少一个任务;根据确定在所述电子设备处执行所述至少一个任务,导致在所述电子设备处执行所述至少一个任务;根据确定在所述服务器处执行所 述至少一个任务,导致在所述服务器处执行所述至少一个任务。

在一些实施方案中,一种电子设备包括显示器;存储器;和耦接至所 述显示器和所述存储器的处理器;所述处理器被配置为:在电子设备处接 收针对来自虚拟助理的服务的用户请求;确定响应于所述用户请求执行多 个任务;基于至少一个启发,估计以所述电子设备和以所述服务器完成所 述至少一个任务的至少一个性能特征;基于所述估计,确定是否在所述电 子设备和所述服务器中的一者处执行所述至少一个任务;根据确定在所述电子设备处执行所述至少一个任务,导致在所述电子设备处执行所述至少 一个任务;根据确定在所述服务器处执行所述至少一个任务,导致在所述 服务器处执行所述至少一个任务。

在一些实施方案中,一种存储一个或多个程序的非暂态计算机可读存 储介质,所述一个或多个程序包括指令,所述指令当由电子设备执行时, 使得所述电子设备:接收针对来自虚拟助理的服务的用户请求;确定响应 于所述用户请求执行多个任务;基于至少一个启发,估计以所述电子设备 和以所述服务器完成所述至少一个任务的至少一个性能特征;基于所述估 计,确定是否在所述电子设备和所述服务器中的一者处执行所述至少一个任务;根据确定在所述电子设备处执行所述至少一个任务,导致在所述电 子设备处执行所述至少一个任务;根据确定在所述服务器处执行所述至少 一个任务,导致在所述服务器处执行所述至少一个任务。

在一些实施方案中,一种存储一个或多个程序的暂态计算机可读存储 介质,所述一个或多个程序包括指令,所述指令当由电子设备执行时,使 得所述电子设备:接收针对来自虚拟助理的服务的用户请求;确定响应于 所述用户请求执行多个任务;基于至少一个启发,估计以所述电子设备和 以所述服务器完成所述至少一个任务的至少一个性能特征;基于所述估 计,确定是否在所述电子设备和所述服务器中的一者处执行所述至少一个 任务;根据确定在所述电子设备处执行所述至少一个任务,导致在所述电 子设备处执行所述至少一个任务;根据确定在所述服务器处执行所述至少 一个任务,导致在所述服务器处执行所述至少一个任务。

在一些实施方案中,一种利用具有显示器的电子设备的系统包括:用 于在电子设备处接收针对来自虚拟助理的服务的用户请求的装置;用于确 定响应于所述用户请求执行多个任务的装置;用于基于至少一个启发估计 以所述电子设备和以所述服务器完成所述至少一个任务的至少一个性能特 征的装置;基于所述估计,用于确定是否在所述电子设备和所述服务器中 的一者处执行所述至少一个任务的装置;根据确定在所述电子设备处执行 所述至少一个任务,用于导致在所述电子设备处执行所述至少一个任务的 装置;根据确定在所述服务器处执行所述至少一个任务,用于导致在所述 服务器处执行所述至少一个任务的装置。

在一些实施方案中,一种第一电子设备包括处理单元,所述处理单元 包括接收单元、确定单元、估计单元、和导致单元;所述处理单元被配置 为:使用所述接收单元在所述第一电子设备处接收针对来自虚拟助理的服 务的用户请求;使用所述确定单元,确定响应于所述用户请求执行多个任 务;使用所述估计单元,基于至少一个启发,估计以所述第一电子设备和 以第二电子设备完成所述至少一个任务的至少一个性能特征;基于所述估计,使用所述确定单元确定是否在所述第一电子设备和所述第二电子设备 中的一者处执行所述至少一个任务;根据确定在所述第一电子设备处执行 所述至少一个任务,使用所述导致单元导致在所述第一电子设备处执行所 述至少一个任务;根据确定在所述第二电子设备处执行所述至少一个任 务,使用所述导致单元导致在所述第二电子设备处执行所述至少一个任 务。

用于执行这些功能的可执行指令任选地被包括在被配置用于由一个或 多个处理器执行的非暂态计算机可读存储介质或其他计算机程序产品中。 用于执行这些功能的可执行指令任选地被包括在被配置用于由一个或多个 处理器执行的暂态计算机可读存储介质或其他计算机程序产品中。

因此,为设备提供更快更高效的方法和界面以用于虚拟助理进行的任 务执行,由此提高此类设备的有效性、效率和用户满意度。此类方法和界 面可补充或替换用于虚拟助理进行的任务执行的其他方法。

附图说明

为了更好地理解各种所述实施方案,应结合以下附图参考下面的具体 实施方式,其中类似的附图标号在所有附图中指示对应的部分。

图1是示出根据各种示例的用于实现数字助理的系统和环境的框图。

图2A是示出根据各种示例的实现数字助理的客户端侧部分的便携式 多功能设备的框图。

图2B是示出根据各种示例的用于事件处理的示例性部件的框图。

图3示出了根据各种示例的实现数字助理的客户端侧部分的便携式多 功能设备。

图4是根据各种示例的具有显示器和触敏表面的示例性多功能设备的 框图。

图5A示出了根据各种示例的便携式多功能设备上的应用程序菜单的 示例性用户界面。

图5B示出了根据各种示例的具有与显示器分开的触敏表面的多功能设 备的示例性用户界面。

图6A示出了根据各种示例的个人电子设备。

图6B是示出根据各种示例的个人电子设备的框图。

图7A是示出根据各种示例的数字助理系统或其服务器部分的框图。

图7B示出了根据各种示例的图7A所示的数字助理的功能。

图7C示出了根据各种示例的知识本体的一部分。

图8A至图8D示出了根据一些实施方案的一种个人电子设备的示例性 用户界面。

图8E示出了包括客户端侧部分和服务器侧部分的一种示例性虚拟助 理。

图9A至图9B示出了根据各种示例的用于执行与虚拟助理的任务的客 户端侧过程。

图9C至图9D示出了根据各种示例的用于执行与虚拟助理的任务的服 务器侧过程。

图9E至图9H示出了根据各种示例的用于执行与虚拟助理的任务的客 户端-服务器过程。

图10A示出了根据各种示例的一种电子设备的功能框图。

图10B示出了根据各种示例的一种服务器的功能框图。

图10C示出了根据各种示例的连接到第二电子设备的一种电子设备的 功能框图。

具体实施方式

以下描述阐述了示例性方法、参数等。然而,应当认识到,此类描述 并非意在限制本公开的范围,而是作为对示例性实施方案的描述来提供。

电子设备需要提供有效的方法和界面以用于执行与虚拟助理的任务。 如上所述,由于与客户端、服务器、和/或它们之间的连接相关联的长期或 间歇限制,使用已知方法来执行与包括客户端侧部件和服务器侧部件的虚 拟助理的任务并不如可能的那样有效。经改进的与虚拟助理的任务执行可 减少用户的认知负担,由此提高生产率。此外,此类技术可减少本来浪费 在冗余用户输入上的处理器功率和电池功率。

下面,图1、图2A至图2B、图3、图4、图5A至图5B和图6A至图 6B提供了对用于执行用于基于非特定非结构化的自然语言请求来发现媒体 的技术的示例性设备的描述。图7A至图7C是示出数字助理系统或其服务 器部分以及与数字助理系统相关联的知识本体的一部分的框图。图8A-8D 示出了用于执行与虚拟助理的任务的示例性用户界面。图8E示出了包括客 户端侧部分和服务器侧部分的一种示例性虚拟助理。图8A至图8D中的用 户界面和图8E的虚拟助理被用于例示下文所述的过程,包括图9A至图9H 中的过程。图9A-9H是根据一些实施方案例示执行与虚拟助理的任务的方 法的流程图。

尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不 应受术语的限制。这些术语只是用于将一个元素与另一个元素区分开。例 如,第一触摸可被命名为第二触摸并且类似地第二触摸可被命名为第一触 摸,而不脱离各种所述实施方案的范围。第一触摸和第二触摸两者均为触 摸,但是它们不是同一触摸。

在本文中对各种所述实施方案的描述中所使用的术语只是为了描述特 定实施方案的目的,而并非旨在进行限制。如在对各种所述实施方案中的 描述和所附权利要求书中所使用的那样,单数形式“一个”(“a”、 “an”)和“该”旨在也包括复数形式,除非上下文另外明确地指示。还 应当理解,本文中所使用的术语“和/或”是指并且涵盖相关联地列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语 “包括”(“includes”“including”“comprises”和/或“comprising”)当在 本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/ 或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操 作、元素、部件、和/或其分组。

根据上下文,术语“如果”可被解释为意指“当...时”(“when”或 “upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文, 短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可以、被解释 为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或 事件]时”或“响应于检测到[所陈述的条件或事件]”。

本文描述了电子设备、此类设备的用户界面和使用此类设备的相关过 程的实施方案。在一些实施方案中,该设备为还包含其他功能诸如PDA和/ 或音乐播放器功能的便携式通信设备,诸如移动电话。便携式多功能设备 的示例性实施方案包括但不限于来自Apple Inc.(Cupertino,California)的

在下面的讨论中,描述了一种包括显示器和触敏表面的电子设备。然 而,应当理解,该电子设备任选地包括一个或多个其他物理用户界面设 备,诸如物理键盘、鼠标和/或操纵杆。

设备可支持多种应用程序,诸如以下应用程序中的一个或多个应用程 序:绘图应用程序、呈现应用程序、文字处理应用程序、网站创建应用程 序、盘编辑应用程序、电子表格应用程序、游戏应用程序、电话应用程 序、视频会议应用程序、电子邮件应用程序、即时消息应用程序、健身支 持应用程序、照片管理应用程序、数字相机应用程序、数字视频相机应用 程序、web浏览应用程序、数字音乐播放器应用程序、和/或数字视频播放 器应用程序。

在设备上执行的各种应用程序任选地使用至少一个通用的物理用户界 面设备,诸如触敏表面。触敏表面的一种或多种功能以及被显示在设备上 的对应信息任选地对于不同应用程序被调整和/或变化,和/或在相应应用程 序内被调整和/或变化。这样,设备的共用物理架构(诸如触敏表面)任选 地利用对于用户而言直观且清楚的用户界面来支持各种应用程序。

图1示出了根据各种示例的系统100的框图。在一些示例中,系统100 可实现数字助理。术语“数字助理”、“虚拟助理”、“智能自动化助 理”或“自动数字助理”可指解译语音形式和/或文本形式的自然语言输入 以推断用户意图并且基于推断出的用户意图来执行动作的任何信息处理系 统。例如,为了遵循所推断的用户意图,系统可执行以下中的一者或多 者:标识具有被设计用于实现所推断的用户意图的步骤和参数的任务流, 将来自所推断的用户意图的特定要求输入到任务流中;通过调用程序、方 法、服务、API等执行任务流;以及以可听(例如,语音)和/或可视形式 来生成对用户的输出响应。

具体地,数字助理可以能够接受至少部分地为自然语言命令、请求、 声明、讲述和/或询问的形式的用户请求。通常,用户请求可寻求数字助理 作出信息性回答,或寻求数字助理执行任务。针对用户请求的令人满意的 响应可以是提供所请求的信息性回答、执行所请求的任务,或这两者的组 合。例如,用户可向数字助理提出问题,诸如“我现在在哪里?”基于用户 的当前位置,数字助理可回答“您在中央公园西门附近。”用户还可请求 执行任务,例如“请邀请我的朋友下周来参加我女朋友的生日聚会。”作 为响应,数字助理可通过讲出“好的,马上”来确认请求,并然后代表用 户将合适的日历邀请发送至用户的电子通讯录中列出的用户朋友中的每个 朋友。在执行所请求的任务期间,数字助理有时可在很长时间段内在涉及 多次信息交换的持续对话中与用户进行交互。存在与数字助理进行交互以 请求信息或执行各种任务的许多其他方法。除提供言语响应并采取经编程 的动作之外,数字助理还可提供其他视觉形式或音频形式的响应,例如作 为文本、警报、音乐、视频、动画等。

如图1中所示,在一些示例中,数字助理可根据客户端-服务器模型来 实现。数字助理可包括在用户设备104上执行的客户端侧部分102(后文称 作“DA客户端102”),以及在服务器系统108上执行的服务器侧部分 106(后文称作“DA服务器106”)。DA客户端102可通过一个或多个网 络110来与DA服务器106进行通信。DA客户端102可提供客户端侧功 能,诸如面向用户的输入和输出处理,以及与DA服务器106进行通信。 DA服务器106可为任意数量的DA客户端102提供服务器侧功能,该任意 数量的DA客户端102各自位于相应的用户设备104上。

在一些示例中,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可以是任何合适的电子设备。例如,用户设备可以是便 携式多功能设备(例如下面参考图2A描述的设备200)、多功能设备(例 如下面参考图4描述的设备400)、或个人电子设备(例如下面参考图6A- B描述的设备600)。便携式多功能设备可以是例如还包含诸如PDA和/或 音乐播放器功能的其他功能的移动电话。便携式多功能设备的特定示例可 包括来自Apple Inc.(Cupertino,California)的

一个或多个通信网络110的示例可包括局域网(LAN)和广域网 (WAN),例如互联网。一个或多个通信网络110可使用任何已知的网络协 议来实现,包括各种有线或无线协议,诸如例如以太网、通用串行总线 (USB)、火线、全球移动通信系统(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来向DA服务器 106传输信息(例如,在用户设备104处接收的用户请求)。DA服务器 106可处理该信息并经由第二用户设备122来将相关的数据(例如,响应于 用户请求的数据内容)返回到用户设备104。

在一些示例中,用户设备104可被配置为将针对数据的缩略请求发送 到第二用户设备122,以减少从用户设备104传输的信息量。第二用户设备 122可被配置为确定添加到缩略请求的补充信息,以生成完整的请求,从而 传输到DA服务器106。该系统架构可有利地通过使用具有较强通信能力和 /或电池电力的第二用户设备122(例如,移动电话、膝上型计算机、平板 电脑等)作为至DA服务器106的代理而允许具有有限通信能力和/或有限 电池电力的用户设备104(例如,手表或类似的紧凑型电子设备)访问由 DA服务器106所提供的服务。虽然图1中仅示出两个用户设备104和 122,应当理解,系统100可包括在此代理配置中被配置为与DA服务器系 统106进行通信的任意数量和类型的用户设备。

虽然图1中所示的数字助理可包括客户端侧部分(例如,DA客户端 102)和服务器侧部分(例如,DA服务器106)两者,但在一些示例中, 数字助理的功能可被实现为被安装在用户设备上的独立式应用程序。此 外,数字助理的客户端部分与服务器部分之间的功能划分在不同的具体实 施中可变化。例如,在一些示例中,DA客户端可以是仅提供面向用户的输 入和输出处理功能并将数字助理的所有其他功能委派给后端服务器的瘦客 户端。

现在将注意力转至用于实现数字助理的客户端侧部分的电子设备的实 施方案。图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的非暂态计算机可读存储介质可用于存储 指令(例如,用于执行下文描述的方法900的各方面)以供指令执行系 统、装置或设备诸如基于计算机的系统、包含处理器的系统或可从指令执 行系统、装置或设备获取指令并执行指令的其他系统使用或与其结合。在 其他示例中,指令(例如,用于执行下文描述的方法900的各方面)可被 存储在服务器系统108的非暂态计算机可读存储介质(未示出)上,或者 可在存储器202的非暂态计算机可读存储介质与服务器系统108的非暂态 计算机可读存储介质之间划分。在本文档的上下文中,“非暂态计算机可 读存储介质”可以是可包括或存储程序以供指令执行系统、装置和设备使 用或与其结合的任何介质。

外围设备接口218可被用于将设备的输入外围设备和输出外围设备耦 接到CPU220和存储器202。该一个或多个处理器220运行或执行被存储 在存储器202中的各种软件程序和/或指令集,以执行设备200的各种功能 并处理数据。在一些实施方案中,外围设备接口218、CPU 220、和存储器 控制器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)、蓝牙、蓝牙低功耗(BTLE)、无线保真(Wi-Fi)(例如,IEEE 802.11a、IEEE 802.11b、IEEE802.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。在一些实施方案中,音频电路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)的

触摸屏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 Surface Controller”;(2)2004年5月6日提交的美国专利申请10/840,862, “Multipoint Touchscreen”;(3)2004年7月30日提交的美国专利申请 10/903,964,“Gestures For Touch Sensitive Input Devices”;(4)2005年1月 31日提交的美国专利申请11/048,264,“Gestures For Touch SensitiveInput Devices”;(5)2005年1月18日提交的美国专利申请11/038,590,“Mode- BasedGraphical User Interfaces For Touch Sensitive Input Devices”;(6)2005 年9月16日提交的美国专利申请11/228,758,“Virtual Input Device Placement On A TouchScreen 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 A Touch-Screen VirtualKeyboard”;和(9)2006 年3月3日提交的美国专利申请11/367,749,“Multi-FunctionalHand-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可捕获静态图像或视频。在一些实施方案中,光学传感器位于与设 备前部上的触摸屏显示器212相背对的设备200的后部上,使得触摸屏显 示器可被用作用于静态图像和/或视频图像采集的取景器。在一些实施方案 中,光学传感器位于设备前部上,使得在用户在触摸屏显示器上查看其他 视频会议参与者时可获得该用户的图像以用于该视频会议。在一些实施方 案中,光学传感器264的位置可由用户改变(例如,通过旋转设备外壳中的透镜和传感器),使得单个光学传感器264可与触摸屏显示器一起使 用,以用于视频会议和静态图像和/或视频图像采集两者。

设备200任选地还包括一个或多个接触强度传感器265。图2A示出了 耦接至I/O子系统206中的强度传感器控制器259的接触强度传感器。接触 强度传感器265任选地包括一个或多个压阻应变仪、电容式力传感器、电 气力传感器、压电力传感器、光学力传感器、电容式触敏表面或其他强度 传感器(例如,用于测量触敏表面上的接触的力(或压力)的传感器)。 接触强度传感器265从环境接收接触强度信息(例如,压力信息或压力信 息的代用物)。在一些实施方案中,至少一个接触强度传感器与触敏表面 (例如,触敏显示器系统212)并置排列或邻近。在一些实施方案中,至少 一个接触强度传感器位于设备200的后部上,与位于设备200的前部上的 触摸屏显示器212相背对。

设备200还可包括一个或多个接近传感器266。图2A示出了耦接至外 围设备接口218的接近传感器266。另选地,接近传感器266可耦接到I/O 子系统206中的输入控制器260。接近传感器266可如以下美国专利申请中 所述来执行:11/241,839,“ProximityDetector In Handheld Device”; 11/240,788,“Proximity Detector In HandheldDevice”;11/620,702,“Using Ambient Light Sensor To Augment Proximity SensorOutput”;11/586,862, “Automated Response To And Sensing Of User Activity InPortable Devices”;和11/638,251,“Methods And Systems For AutomaticConfiguration Of Peripherals”,这些美国专利申请据此全文以引用方式并 入。在一些实施方案中,当多功能设备被置于用户的耳朵附近时(例如, 当用户正在进行电话呼叫时),接近传感器关闭并且禁用触摸屏212。

设备200任选地还包括一个或多个触觉输出发生器267。图2A示出了 耦接至I/O子系统206中的触觉反馈控制器261的触觉输出发生器。触觉输 出发生器267任选地包括一个或多个电声设备诸如扬声器或其他音频部 件,和/或将能量转换成线性运动的机电设备诸如电机、螺线管、电活性聚 合物、压电致动器、静电致动器、或其他触觉输出生成部件(例如,将电 信号转换成设备上的触觉输出的部件)。接触强度传感器265从触觉反馈 模块233接收触觉反馈生成指令,并且在设备200上生成能够由设备200 的用户感觉到的触觉输出。在一些实施方案中,至少一个触觉输出发生器 与触敏表面(例如,触敏显示器系统212)并置排列或邻近,并且任选地通 过竖直地(例如,向设备200的表面内/外)或侧向地(例如,在与设备 200的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一 些实施方案中,至少一个触觉输出发生器传感器位于设备200的后部上, 与位于设备200的前部上的触摸屏显示器212相背对。

设备200还可包括一个或多个加速度计268。图2A示出了耦接至外围 设备接口218的加速度计268。另选地,加速度计268可耦接到I/O子系统 206中的输入控制器260。加速度计268可如标题为“Acceleration-based Theft Detection System for PortableElectronic Devices”的美国专利公开 20050190059和标题为“Methods And ApparatusesFor Operating A Portable Device Based On An Accelerometer”的美国专利公开20060017692中所述的 那样执行,这两个美国专利公开均全文以引用方式并入本文。在一些实施 方案中,基于对从一个或多个加速度计接收的数据的分析,在触摸屏显示 器上以纵向视图或横向视图来显示信息。设备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 等)进行耦接。在一些实施方案中,该外部端口为与

接触/运动模块230任选地检测与触摸屏212(结合显示控制器256) 和其他触敏设备(例如,触摸板或物理点击轮)的接触。接触/运动模块 230包括各种软件部件以用于执行与接触的检测相关的各种操作,诸如确定 是否已发生接触(例如,检测手指按下事件)、确定接触的强度(例如, 接触的力或压力,或者接触的力或压力的替代物)、确定是否存在接触的 移动并跟踪在触敏表面上的移动(例如,检测一个或多个手指拖动事 件)、以及确定接触是否已停止(例如,检测手指抬起事件或接触断 开)。接触/运动模块230从触敏表面接收接触数据。确定接触点的移动任 选地包括确定接触点的速率(量值)、速度(量值和方向)和/或加速度 (量值和/或方向的改变),接触点的移动由一系列接触数据来表示。这些 操作任选地被应用于单点接触(例如,单指接触)或者多点同时接触(例 如,“多点触摸”/多个手指接触)。在一些实施方案中,接触/运动模块 230和显示控制器256检测触摸板上的接触。

在一些实施方案中,接触/运动模块230使用一组一个或多个强度阈值 来确定操作是否已由用户执行(例如,确定用户是否已“点击”图标)。 在一些实施方案中,根据软件参数来确定强度阈值的至少一个子集(例 如,强度阈值不由特定物理致动器的激活阈值来确定,并且可在不改变设 备200的物理硬件的情况下调整)。例如,在不改变触控板或触摸屏显示 器硬件的情况下,触控板或触摸屏显示器的鼠标“点击”阈值可被设置为 预定义的阈值的大范围中的任一个阈值。另外,在一些具体实施中,向设 备的用户提供用于调节一组强度阈值中的一个或多个强度阈值(例如,通 过调节各个强度阈值和/或通过利用对“强度”参数的系统级点击来一次调 节多个强度阈值)的软件设置。

接触/运动模块230任选地检测用户的手势输入。触敏表面上的不同手 势具有不同的接触图案(例如,所检测到的接触的不同运动、定时和/或强 度)。因此,任选地通过检测特定的接触模式来检测手势。例如,检测手 指轻击手势包括检测手指按下事件,然后在与手指按下事件相同的位置 (或基本上相同的位置)处(例如,在图标的位置处)检测手指抬起(抬 离)事件。作为另一个示例,在触敏表面上检测手指轻扫手势包括检测手 指按下事件,然后检测一个或多个手指拖动事件,并且随后检测手指抬起 (抬离)事件。

图形模块232包括用于在触摸屏212或其他显示器上呈现和显示图形 的各种已知的软件部件,包括用于改变所显示的图形的视觉冲击(例如, 亮度、透明度、饱和度、对比度或其他视觉属性)的部件。如本文所用, 术语“图形”包括可被显示给用户的任何对象,非限制性地包括文本、网 页、图标(诸如,包括软键的用户界面对象)、数字图像、视频、动画 等。

在一些实施方案中,图形模块232存储待使用的用于表示图形的数 据。每个图形任选地被分配有对应的代码。图形模块232从应用程序等接 收用于指定待显示的图形的一个或多个代码,在必要的情况下还接收坐标 数据和其他图形属性数据,并且然后生成屏幕图像数据,以输出至显示控 制器256。

触觉反馈模块233包括用于生成指令的各种软件组件,该指令由触觉 输出发生器267使用,以响应于用户与设备200的交互而在设备200上的 一个或多个位置处产生触觉输出。

可以是图形模块232的部件的文本输入模块234提供用于在多种应用 程序(例如,联系人237、电子邮件240、即时消息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-C对数字助理进行更详细的描述。应当认识到,数字 助理客户端模块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中联系人模块137的应用程 序内部状态292中),包括:添加姓名到通讯录;从通讯录删除姓名;将 电话号码、电子邮件地址、物理地址或其他信息与姓名关联;将图像与姓名进行关联;对姓名进行归类和分类;提供电话号码或电子邮件地址来发 起和/或促进通过电话238、视频会议模块239、电子邮件240或即时消息 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 Interfacefor Playing Online Videos”的美国临时专利申请60/936,562和于2007年12月31日提交的标 题为“Portable Multifunction Device,Method,and Graphical User Interfacefor Playing 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的前一 状态或视图的状态队列、以及用户采取的先前动作的重复/撤销队列。

事件监视器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,或具有对该数据更新器、该对象更新器和该 GUI更新器的访问权限。在一些实施方案中,数据更新器276、对象更新器 277和GUI更新器278被包括在相应应用程序236-1或应用程序视图291的 单个模块中。在其他实施方案中,它们被包括在两个或更多个软件模块 中。

应当理解,关于触敏显示器上的用户触摸的事件处理的上述论述还适 用于利用输入设备来操作多功能设备200的其他形式的用户输入,并不是 所有用户输入都是在触摸屏上发起的。例如,任选地与单次或多次键盘按 下或按住协作的鼠标移动和鼠标按钮按下;触摸板上的接触移动,诸如轻 击、拖动、滚动等;触笔输入;设备的移动;口头指令;检测到的眼睛移 动;生物特征输入;和/或它们的任何组合任选地被用作对应于限定要识别 的事件的子事件的输入。

图3示出了根据一些实施方案的具有触摸屏112的便携式多功能设备 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,该图标任选地 包括未接来电或语音留言的数量的指示符514;

ο电子邮件客户端模块240的被标记为“邮件”的图标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,该 图标提供对设备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至图 4)所述的特征中的一些或全部特征。在一些实施方案中,设备600具有在 下文中称为触摸屏604的触敏显示屏604。另选地,或者除了触摸屏604之 外,设备600具有显示器和触敏表面。与设备200和设备400的情况一 样,在一些实施方案中,触摸屏604(或触敏表面)可具有用于检测正施加 的接触(例如,触摸)强度的一个或多个强度传感器。触摸屏604(或触敏 表面)的所述一个或多个强度传感器可提供表示触摸的强度的输出数据。 设备600的用户界面可基于触摸强度来对触摸作出响应,这意味着不同强 度的触摸可调用设备600上的不同用户界面操作。

用于检测和处理触摸强度的技术可例如在相关申请中找到:于2013年 5月8日提交的标题为“Device,Method,and Graphical User Interface for Displaying UserInterface Objects Corresponding to an Application”的国际专 利申请序列号PCT/US2013/040061、以及于2013年11月11日提交的标题 为“Device,Method,and GraphicalUser Interface for Transitioning Between Touch Input to Display OutputRelationships”的国际专利申请序列号 PCT/US2013/069483,这两个国际专利申请中的每个国际专利申请据此全文 以引用方式并入本文。

在一些实施方案中,设备600具有一个或多个输入机构606和608。输 入机构606和608(如果包括的话)可为物理形式的。物理输入机构的示例 包括下压按钮和可旋转机构。在一些实施方案中,设备600具有一个或多 个附接机构。此类附接机构(如果包括的话)可允许将设备600与例如帽 子、眼镜、耳环、项链、衬衣、夹克、手镯、表带、手链、裤子、皮带、鞋子、钱包、背包等附接。这些附接机构可允许用户穿戴设备600。

图6B示出了示例性个人电子设备600。在一些实施方案中,设备600 可包括参考图2A、图2B和图4所述的部件中的一些或全部部件。设备600 具有将I/O部分614与一个或多个计算机处理器616和存储器618操作性地 耦接的总线612。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执行时例如可使得计算机处理器执行包括过程900、940和980 (图9A至图9H)的下文描述的技术。该计算机可执行指令还可以在任何 非暂态计算机可读存储介质内进行存储和/或传输,以供指令执行系统、装 置或设备诸如基于计算机的系统、包括处理器的系统或可从指令执行系 统、装置或设备获取指令并执行指令的其他系统使用或与其结合。对于本 文的目的而言,“非暂态计算机可读存储介质”可以是可有形地包含或存 储计算机可执行指令以供指令执行系统、装置和设备使用或与其结合的任 何介质。非暂态计算机可读存储介质可包括但不限于磁存储装置、光学存 储装置、和/或半导体存储装置。此类存储装置的示例包括磁盘、基于CD、DVD或Blu-ray技术的光盘、以及持久性固态存储器(诸如闪存、固 态驱动器)等。个人电子设备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%或某些合理的比例)。 因此,在一些实施方案中,按压输入包括相应接触的强度增大到高于按压 输入强度阈值以及该接触的强度随后减小到低于对应于按压输入强度阈值 的滞后强度阈值,并且响应于检测到相应接触的强度随后减小到低于滞后 强度阈值(例如,相应按压输入的“向上冲程”)来执行相应操作。类似 地,在一些实施方案中,仅在设备检测到接触的强度从等于或低于滞后强 度阈值的强度增大到等于或高于按压输入强度阈值的强度并且任选地接触 的强度随后减小到等于或低于滞后强度的强度时才检测到按压输入,并且 响应于检测到按压输入(例如,根据环境,接触的强度增大或接触的强度 减小)来执行相应操作。

为了容易解释,任选地,响应于检测到以下各种情况中的任一种情况 而触发对响应于与按压输入强度阈值相关联的按压输入或响应于包括按压 输入的手势而执行的操作的描述:接触强度增大到高于按压输入强度阈 值、接触强度从低于滞后强度阈值的强度增大到高于按压输入强度阈值的 强度、接触强度减小到低于按压输入强度阈值、和/或接触强度减小到低于 与按压输入强度阈值对应的滞后强度阈值。另外,在将操作描述为响应于检测到接触的强度减小到低于按压输入强度阈值而执行的示例中,任选地 响应于检测到接触的强度减小到低于对应于并且小于按压输入强度阈值的 滞后强度阈值来执行操作。

图7A示出根据各种示例的数字助理系统700的框图。在一些示例中, 数字助理系统700可在独立式计算机系统上实现。在一些示例中,数字助 理系统700可跨多个计算机分布。在一些示例中,数字助理的模块和功能 中的一些模块和功能可被划分成服务器部分和客户端部分,其中客户端部 分位于一个或多个用户设备(例如,设备104,122,200,400或600)上并通 过一个或多个网络来与服务器部分(例如,服务器系统108)进行通信,例 如,如图1所示。在一些示例中,数字助理系统700可以是图1中所示的 服务器系统108(和/或DA服务器106)的具体实施。应当指出的是,数字 助理系统700仅为数字助理系统的一个示例,并且该数字助理系统700可 具有比所示更多或更少的部件、可组合两个或更多个部件,或者可具有部 件的不同配置或布置。图7A中所示的各种部件可在硬件、用于由一个或多 个处理器执行的软件指令、固件(包括一个或多个信号处理集成电路和/或 专用集成电路)、或它们的组合中实现。

数字助理系统700可包括存储器702、一个或多个处理器704、输入/ 输出(I/O)接口706、以及网络通信接口708。这些部件可通过一个或多个通 信总线或信号线710彼此进行通信。

在一些示例中,存储器702可包括非暂态计算机可读介质,诸如高速 随机存取存储器和/或非易失性计算机可读存储介质(例如,一个或多个磁 盘存储设备、闪存存储器设备、或其他非易失性固态存储器设备)。

在一些示例中,I/O接口706可将数字助理系统700的输入/输出设备 716诸如显示器、键盘、触摸屏和麦克风耦接至用户界面模块722。与用户 界面模块722结合的I/O接口706可接收用户输入(例如,声音输入、键盘 输入、触摸输入等)并相应地对这些输入进行处理。在一些示例中,例 如,当数字助理在独立式用户设备上实现时,数字助理系统700可包括分 别相对于图2A、图4、图6A-B中的设备200,400或600所描述的部件和 I/O通信接口中的任一者。在一些示例中,数字助理系统700可代表数字助 理具体实施的服务器部分,并且可通过位于用户设备(例如,设备 104,200,400或设备600)上的客户端侧部分来与用户进行交互。

在一些示例中,网络通信接口708可包括一个或多个有线通信端口 712、和/或无线传输和接收电路714。一个或多个有线通信端口可经由一个 或多个有线接口例如以太网、通用串行总线(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的计算机可读存储 介质可存储用于执行下文描述的方法900的指令。一个或多个处理器704 可执行这些程序、模块和指令,并从数据结构读取数据或将数据写到数据 结构。

操作系统718(例如,Darwin、RTXC、LINUX、UNIX、OS X、 WINDOWS,或嵌入式操作系统诸如VxWorks)可包括用于控制和管理一 般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软 件部件和/或驱动器,并且促进各种硬件、固件和软件部件之间的通信。

通信模块720可促进数字助理系统700与其他设备之间的通过网络通 信接口708进行的通信。例如,通信模块720可与电子设备(诸如,分别 在图2A、图4、图6A-B中示出的设备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日的标题为“Consolidating Speech Recognition Results”的美国实用新型专利申请序列 号13/236,942中有所描述,其全部公开内容以引用方式并入本文。

在一些示例中,STT处理模块730可包括可识别字词的词汇,和/或可 经由语音字母转换模块731来访问该词汇。每个词汇字词可与以语音识别 语音字母表来表示的字词的一个或多个候选发音相关联。具体地,可识别 字词的词汇可包括与多个候选发音相关联的字词。例如,该词汇可包括与

在一些示例中,可基于候选发音的普遍性来对候选发音进行排名。例 如,候选语音

当接收到语音输入时,STT处理模块730可用于(例如,使用声音模 型)确定对应于该语音输入的音素,并且然后尝试(例如,使用语言模 型)确定匹配该音素的字词。例如,如果STT处理模块730可首先识别与 该语音输入的一部分对应的音素序列

在一些示例中,STT处理模块730可使用模糊匹配技术来确定话语中 的字词。因此,例如,STT处理模块730可确定音素序列

在一些示例中,自然语言处理模块732可被配置为接收与语音输入相 关联的元数据。元数据可指示是否对语音输入(或者对应于该语音输入的 字词或符号的序列)执行自然语言处理。如果元数据指示将执行自然语言 处理,则自然语言处理模块可从STT处理模块接收字词或符号的序列以执 行自然语言处理。然而,如果元数据指示将不执行自然语言处理,则可禁 用自然语言处理模块,并且可从数字助理输出来自STT处理模块的字词或 符号的序列(例如,文本串)。在一些示例中,元数据可进一步识别对应 于用户请求的一个或多个域。基于该一个或多个域,自然语言处理器可禁 用知识本体760中该一个或多个域之外的域。这样,自然语言处理被约束 为知识本体760中的该一个或多个域。具体地,可使用知识本体中的该一 个或多个域而不是其他域来生成结构化查询(下文描述)。

数字助理的自然语言处理模块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接收符号序列(例如, 文本串),并确定符号序列中的字词牵涉哪些节点。在一些示例中,如果 发现符号序列中的字词或短语(经由词汇索引744)与知识本体760中的一 个或多个节点相关联,则该字词或短语可“触发”或“激活”这些节点。 基于已激活节点的数量和/或相对重要性,自然语言处理模块732可选择可 执行意图中的一个可执行意图作为用户意图使数字助理执行的任务。在一 些示例中,可选择具有最多“已触发”节点的域。在一些示例中,可选择 具有最高置信度(例如,基于其各个已触发节点的相对重要性)的域。在 一些示例中,可基于已触发节点的数量和重要性的组合来选择域。在一些 示例中,在选择节点的过程中还考虑附加因素,诸如数字助理先前是否已 正确解译来自用户的类似请求。

用户数据748可包括特定于用户的信息,诸如特定于用户的词汇、用 户偏好、用户地址、用户的默认语言和第二语言、用户的联系人列表、以 及每位用户的其他短期或长期信息。自然语言处理模块732可使用特定于 用户的信息来补充用户输入中所包含的信息,以进一步限定用户意图。例 如,对于用户请求“邀请我的朋友参加我的生日聚会”,自然语言处理模 块732可以能够访问用户数据748以确定“朋友”有哪些以及“生日聚 会”会在何时何地进行,而不是要求用户通过例如使用来自用户联系人列 表的“朋友”列表、定位用户日历或用户电子邮件中“生日聚会”的日历 条目并且然后将该信息发送给联系人列表中为每个联系人列出的相应联系 人信息来在其请求中明确地提供此类信息。

基于符号串搜索知识本体的其他细节在于2008年12月22日提交的标 题为“Method and 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、时间=7pm、同行人数=5},任务流处理模块736可执行以 下步骤:(1)登录ABC咖啡馆的服务器或餐厅预订系统诸如

在一些示例中,任务流处理模块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 Task Items That Represent Tasks toPerform”的美国实用新型专利申请号13/251,088中 找到,其全部公开内容以引用方式并入本文。

现在将注意力转到在电子设备(诸如用户设备104、便携式多功能设 备200、多功能设备400或个人电子设备600(统称为“电子设备104、 200、400、600”))上实现的用户界面(“UI”)以及相关联的过程的实 施方案。本文档中对任何一个特定的电子设备104、200、400、600的引用 应被理解为涵盖所有这些电子设备104、200、400、600,除非这些电子设 备104、200、400、600中的一个或多个被文字字面含义排除在外。

参考图8A,根据一些实施方案,电子设备200包括显示器212和麦克 风213。上述数字助理被进行针对来自虚拟助理的服务的请求的用户访问。 在图8A的示例中,用户发出非结构化自然语言用户输入,所述非结构化自 然语言用户输入经由麦克风213被获取。用户请求的定时受用户控制。在 该示例中,用户输入770是“在附近寻找好的寿司餐厅”的非结构化自然 语言请求。将用户输入从语音转换为文本,并且根据一些实施方案,将文 本用户输入770显示在显示器212上。通过显示文本用户输入770,根据一 些实施方案,用户可验证数字助理已正确接收到所做出的请求。在其他实 施方案诸如但不限于其中数字助理能在免持模式下操作的实施方案中,不 显示文本用户输入770。根据一些实施方案,图8A的电子设备200是智能 电话、平板电脑、膝上型计算机、或其他便携式设备。根据其他实施方 案,图8A的电子设备200是台式计算机;连接到电视机的设备诸如Apple, Inc.(Cupertino,California)的Apple

也参见图8E,在接收到针对来自虚拟助理700的服务的用户请求时, 位于电子设备200上的DA客户端102确定响应于用户请求执行至少一个任 务。在一些实施方案中,不止一个任务被执行,以便满足用户请求。根据 一些实施方案,响应于用户请求执行的一个任务是语境解析,其形成与用 户和/或电子设备200相关联的语境。根据一些实施方案,响应于用户请求 执行的一个任务是语音识别。根据一些实施方案,响应于用户请求执行的 一个任务是自动语音识别。根据一些实施方案,响应于用户请求执行的一 个任务是域分类。根据一些实施方案,响应于用户请求执行的一个任务是 自然语言分析。“分析”是指确定语句的语法结构。根据一些实施方案, 响应于用户请求执行的一个任务是查询解析,这是指确定用户查询的内 容。根据一些实施方案,响应于用户请求执行的一个任务是自然语言合成。根据一些实施方案,响应于用户请求执行的一个任务是用户接口解 析,这是指确定用户相对于用户接口已进行了什么动作。根据一些实施方 案,响应于用户请求执行的一个任务是文本-语音转换。这些任务中的每一 者前面在本文档中进行了描述。当位于电子设备200上的DA客户端102确 定响应于用户请求执行至少一个任务时,其除了上面明确列出的那些之外 可确定一个或多个任务。

在该示例中,DA客户端102确定语音识别是响应于用户请求要执行的 至少一个任务。然后,DA客户端102基于至少一个启发来估计以电子设备 200完成该语音识别任务的至少一个性能特征。根据一些实施方案,性能特 征包括任务执行的速度、任务执行的相对效率、和任务执行的功率消耗。 根据其他实施方案,性能特征包括与任务的执行有关的任何其他性能度 量。通过估计以电子设备完成任务的至少一个性能特征,DA客户端102能 够确定任务是应当在电子设备200自身处执行,还是传输到电子设备200 之外在其他地方执行,诸如在DA服务器106处执行。

可使用多个启发来确定任务应在电子设备200上完成,还是在服务器 上完成,还是部分地在设备200上并且部分地在服务器上完成。如一个普 通技术人员将理解的那样,可单独或组合地使用这些启发中每一者来确定 任务应在电子设备200上完成,还是在服务器上完成,还是部分地在设备 200上并且部分地在服务器上完成。启发在评估中可被相等地加权,或者可 基于其对于任务完成速度的贡献来加权。另外,权重本身可随着计算条件改变而变化,例如电池电力在电力低或者设备200未插接到电源的情况下 在将计算转移到服务器中被更强地加权,但在设备200插接到电源或者电 池电量高于预定阈值的情况下可较弱地加权。例如,如果网络连接性低或 不可用,则启发可更强地朝着在设备200上完成任务加权而不考虑其他启 发(因为不可能在服务器上完成任务,不管是部分地还是完全地),而如 果网络连接性高,则启发可被不同地加权以考虑其他因素诸如电池电力、 存储器空间、缓存大小等等。

如果电子设备200包括电池(例如,作为电力系统262的一部分), 则一个启发是电子设备200的电池寿命。如果电池寿命较高,则与电池寿 命较低相比,电子设备200更能够执行任务。根据一些实施方案,为这个 启发估计的性能特征是功率消耗。

一个启发是电子设备200处符合IEEE 802.11x标准(通常称为“

一个启发是可供电子设备200使用的无线网络速度。根据一些实施方 案,无线网络是蜂窝网络,蜂窝网络上的无线网络速度是1X、2G、3G、 4G、和

一个启发是电子设备200的(诸如在存储器202内的)可用存储器空 间。如果较多存储器在电子设备200上本地可供使用,则与较少存储器在 电子设备200处可供使用时相比,电子设备200更能够执行任务。根据一 些实施方案,为这个启发估计的性能特征是速度和相对效率。

一个启发是电子设备200(诸如以处理器220)的处理速度。如果较高 处理速度在电子设备200上本地可供使用,则与较低处理速度在电子设备 200上本地可供使用时相比,电子设备200更能够执行任务。根据一些实施 方案,为这个启发估计的性能特征是速度和功率消耗。

一个启发是电子设备200的操作系统。不同操作系统对于负荷转移可 具有不同速度、效率和能力。不同操作系统可包括同一操作系统的不同版 本,诸如Apple,Inc.(Cupertino,California)的

一个启发是电子设备200处的可用缓存空间。术语“缓存存储器”在 本领域中是标准术语,是指相比于常规存储器(诸如存储器202),处理器 (诸如处理器220)能更快速地访问的存储器。可用缓存存储器的量是可用 的物理缓存存储器空间的绝对量与在任何指定时刻被占用的缓存存储器的 量二者的函数。如果较多缓存存储器在电子设备200处可供使用,则与较 少缓存存储器在电子设备200上本地可供使用时相比,电子设备200更能 够执行任务。

一个启发是电子设备200的类型。电子设备200的“类型”是指电子 设备200所属于的具体硬件类别,诸如但不限于智能电话(例如Apple,Inc. (Cupertino,California)的

一个启发包括与任务相关联的一个或多个隐私设置。根据一些实施方 案,用户能调节与任务相关联的一个或多个隐私设置,从而限制电子设备200传输用户信息的能力。根据一些实施方案,如果隐私设置限制或阻止电 子设备200向外传输执行任务所必需的用户信息,则电子设备200根据隐 私设置而自己执行任务。

一个启发包括与任务相关联的一个或多个数据传输限制。在一些实施 方案中,限制是与跟任务相关联的特定用户数据相关联的。在一些实施方 案中,如果电子设备200所位于的具体管辖区域中的法律阻止特定用户数 据离开那个管辖区域,则这些限制本质上是合法的。在其他实施方案中, 这些限制是电子设备200访问外部网络所通过的网络提供方的政策限制, 其阻止特定数据的传输。在其他实施方案中,这些限制是由于技术原因而阻止特定数据的传输的技术限制。根据一些实施方案,如果数据传输限制 与任务相关联,则电子设备200根据那些数据传输限制而自己执行任务。

一个启发包括电子设备200的位置。电子设备200的位置可被用作特 定网络特征的代用物、被用作数据传输限制的代用物、或者自身作为被DA 客户端102用于估计性能特征的信息。如果电子设备200在数据传输服务 时好时坏、缓慢或以其他方式较不理想的位置中,则与电子设备200在数 据传输服务更理想的位置中时相比,电子设备200更能够执行任务。根据 一些实施方案,为这个启发估计的性能特征是速度、相对效率和功率消 耗。

一个启发包括所述至少一个任务的特征。“特征”是指任务的种类以 及其需要(或不需要)访问电子设备200上的用户数据。根据这个示例, 语音识别是较不可能需要访问电子设备200上的用户数据的任务。在其他 示例中,如果任务需要访问存储在电子设备200上本地的用户的联系人, 则任务会需要访问电子设备200上的用户数据。如果为了执行任务,电子 设备200需要或比较可能需要访问电子设备200上的用户数据,则与为了 执行任务,电子设备200不需要或比较不可能需要访问电子设备200上的 用户数据相比,电子设备200更能够执行任务。根据一些实施方案,为这 个启发估计的性能特征是速度和相对效率。

一个启发包括与任务相关联的用户偏好。用户可选择与任务相关联的 强调或取消强调速度、准确性、或其他因素(其中每一者可能彼此竞争) 的一个或多个选项。如果在任务被本地执行时更好地满足任务的用户偏 好,则与在任务被远程执行时更好地满足任务的用户偏好时相比,电子设 备200更能够执行任务。

一个启发包括任务对严谨提示的利用。如本文档中所使用,对于任 务,术语“严谨提示”是指任务发出的提示,对于该提示,只有有限数量 的用户话语能被接受。例如,在一些实施方案中,虚拟助理700通过向用 户询问问题诸如“您是说在附近寻找好的寿司场所吗?”来消除歧义。作 为响应的唯一可接受的用户话语是“是”或“不是”。任何其他话语都被忽略,或作为“是”或“不是”来对待。如果任务利用严谨提示,则与任 务不利用严谨提示用于用户交互时相比,较少计算功率被用于处理用户话 语,并且电子设备200更能执行任务。根据一些实施方案,为这个启发估 计的性能特征是速度和相对效率。

在该示例中,DA客户端102基于至少一个启发诸如上文所述的启发, 估计以电子设备200完成语音识别的速度的性能特征。DA客户端102于是 确定是否在电子设备200处执行任务。根据一些实施方案,一个启发可以 是决定性的。例如,如果隐私设置和/或数据传输限制阻止从电子设备200 传输执行语音识别所必需的用户数据或其他信息,则这个语音识别的任务 在电子设备200处执行,以便遵守隐私设置和/或数据传输限制。根据其他 实施方案,DA客户端基于两个或更多个启发,基于估计完成语音识别的至 少一个性能特征,确定是否在电子设备200处执行语音识别任务。如果使 用不止一个启发,则这些启发的结果被平均、加权、或以任何合适的方式 处理,以执行所述确定。例如,为每个启发分配分别与任务是应由电子设 备200执行还是应传输到电子设备之外进行执行相关联的二元1或0值。 如果这些值加和为高于阈值的量,则任务在电子设备200处执行。又如, 每个启发将一个数值要么分配给电子设备200要么分配给将任务传输到电 子设备200之外,并且将每一者的这些数值进行加和;如果与电子设备200 相关联的加和更高,则电子设备200执行任务,而如果与将任务传输到电 子设备200之外相关联的加和更高,则任务被传输到电子设备200之外。 又如,一个或多个启发比其他启发更高地加权,其中此类启发更强地影响 对任务执行位置的选择。又如,为在估计中使用的每个启发分配数字,并 且所述确定对这个数字求平均。所述平均可被加权或不加权。平均数字与 任务执行的位置相关联。

在本示例中,要执行的任务(语音识别)的特征包括计算强度,朝着 在电子设备200之外执行任务缓解。此外,设备是平板电脑,并且是较老 型号,计算功率较低。符合IEEE802.11x的高频无线联网服务在电子设备 200处可供使用。因此,DA客户端102基于对启发执行的估计而确定语音 识别的任务在电子设备200之外执行。根据所述确定,电子设备生成用于 执行那个语音识别任务的可执行代码,然后从电子设备200传输该代码。 响应于那个传输,则后来某个时间,与那个可执行代码的执行相关联的信 息在电子设备200处被接收。根据一些实施方案,电子设备200针对一个 或多个附加任务重复上文所述的那些步骤,其中对于是在电子设备200上 执行还是在电子设备200之外执行,每个此类任务被独立地评估。根据其 他实施方案,一旦已确定利用电子设备200来执行与用户请求相关联的一 个任务,电子设备200就执行与用户请求相关联的所有任务,使得在电子 设备200处接收的与可执行代码的执行相关联的信息是满足用户请求的信 息。根据一些实施方案,当用户请求被满足时,电子设备200在显示器212 上显示输出772。在这里,如果用户已请求虚拟助理700“在附近寻找好的 寿司餐厅”,则如图8D所示,电子设备200显示满足用户请求的SushiShed的名称、评级、距离、和地址。

又如,参考图8C,根据一些实施方案,电子设备200包括显示器212 和麦克风213。上述数字助理被进行针对来自虚拟助理的服务的请求的用户 访问。在图8C的示例中,用户发出非结构化自然语言用户输入,所述非结 构化自然语言用户输入经由麦克风213被获取。用户请求的定时受用户控 制。在该示例中,用户输入770是非结构化自然语言请求“将我女儿的这 张照片通过电子邮件发给妈妈,并写上‘Merry Christmas!’”。将用户输 入从语音转换为文本,并且根据一些实施方案,将文本用户输入770显示 在显示器212上。通过显示文本用户输入770,根据一些实施方案,用户可 验证数字助理已正确接收到所做出的请求。在其他实施方案诸如但不限于 其中数字助理能在免持模式下操作的实施方案中,不显示文本用户输入 770。根据一些实施方案,图8A的电子设备200是智能电话、平板电脑、膝上型计算机、或其他便携式设备。根据其他实施方案,图8A的电子设备 200是台式计算机;连接到电视机的设备诸如Apple,Inc.(Cupertino, California)的Apple

DA客户端102进行与上述类似的过程,确定至少一个任务要执行,基 于至少一个启发来估计以电子设备200完成所述至少一个任务的至少一个 性能特征,以及基于所述估计,确定是否在电子设备200处执行至少一个 任务。在该示例中,任务是查询解析。为了解析该查询,虚拟助理700除 了别的之外,需要确定“我女儿”和“妈妈”是指什么人,并且确定妈妈 的电子邮件地址。

在本示例中,要执行的任务(查询解析)的特征要求虚拟助理700利 用电子设备200上的个人数据778。“个人数据”是指由于标准协议和/或 对于与该数据有关的隐私设置的用户选择而被保持在设备上而不是保持在 服务器上的能个人标识的数据。特别地,虚拟助理700需要在电子设备200 上的个人数据778中进行搜索以确定“我女儿”和“妈妈”的身份。根据 一些实施方案,此类个人数据778包括联系人信息、照片标签、电子邮件 消息、文本消息、以及其它只被存储在电子设备200上的数据。虚拟助理 700还需要搜索存储在电子设备200上的个人数据778中的联系人以确定 “妈妈”的电子邮件地址。因为这个数据只在电话上存在,所以这些启发 中的一个包括与查询解析任务相关联的隐私设置。在一些实施方案中,用 户已将隐私设置设置成阻止联系人信息和照片标签信息被传输到电子设备 之外。如果这样,则因为那些动作中的一者或两者与任务相关联,所以DA 客户端102利用隐私设置启发而确定在电子设备200上执行任务。这些启 发中的另一个包括与查询解析任务相关联的数据传输限制。在一些实施方 案中,用户可能在一个国家内,而DA服务器106可能在另一国家内。例 如,用户可能旅游离开其祖国。用户所位于的国家可能禁止将个人用户数据传输到那个国家之外。如果这样,则因为一个或多个被禁止动作与任务 相关联,所以DA客户端102利用数据传输启发而确定在电子设备200上执 行任务。

在该示例的一个变型形式中,假设隐私设置和数据传输限制都不阻止 DA客户端102将信息传输到电子设备200之外。然而,电子设备200位于 国家公园中,远离可靠的网络服务,唯一可供使用的网络是1X速度网络。 没有任何符合IEEE 802.11x的高频无线联网服务可供使用。而且,电子设 备200是具有快速处理速度的较新智能电话。基于这些启发,DA客户端 102确定在电子设备自身处执行语音识别任务。在该示例的每种变型形式 中,任务在电子设备上执行。

根据一些实施方案,电子设备200针对一个或多个附加任务重复上文 所述的那些步骤,其中对于是在电子设备200上执行还是在电子设备200 之外执行,每个此类任务被独立地评估。根据其它实施方案,一旦已确定 利用电子设备200执行与用户请求相关联的一个任务,电子设备200就执 行与用户请求相关联的所有任务。根据一些实施方案,当用户请求被满足 时,电子设备200在显示器212上显示输出772。在这里,如图8D所示, 电子设备200显示消息“我刚将其发送给您妈妈的默认电子邮件地址”。

图9A-9H是根据各种实施方案例示用于操作数字助理的方法900、 940、980的流程图。更具体地,方法900、940、980可被实现为执行以虚 拟助理进行的任务执行。可使用实施数字助理的一个或多个电子设备来执 行方法900、940、980。在一些示例中,方法900、940、980可使用实施数 字助理的客户端-服务器系统(例如,系统100)执行。方法900、940、 980的各个框可以以任何合适的方式分布于一个或多个计算机、系统或电子 设备中。例如,如下所述,在一些示例中,方法900、940、980可完全在 电子设备(例如,设备104、200、400或600)上执行。例如,在若干个示 例中利用的电子设备104、200、400、600是智能电话。然而,方法900、 940、980并不限于与智能电话一起使用;方法900、940、980可在任何其 他合适的电子设备(诸如平板电脑、台式计算机、膝上型计算机或智能手 表)上实现。此外,虽然以下讨论将方法900、940、980描述为由数字助 理系统(例如,系统100和/或数字助理系统700)执行,但是应当认识 到,该过程或过程的任何特定部分不限于由任何特定设备、设备的组合或 具体实施来执行。该过程的描述由图8A至图8E、以及上文与这些附图有 关的描述来进一步示出和例证。

图9A-9B是例示一种用于执行与虚拟助理的任务的方法的流程图 900。根据一些实施方案,方法900在包括DA客户端102的电子设备 104、200、400、600处执行。根据一些实施方案,DA客户端102是包括 DA服务器106的系统100的一部分。然而,方法900描述在电子设备 104、200、400、600处的客户端侧操作。方法900中的一些操作可被组 合,一些操作的次序可被改变并且一些操作可被省略。特别地,如果有的 话,图9A至图9B中以虚线形状指示的可选操作可以以任何合适的顺序执 行,并且不需要按照图9A至图9B所示的顺序执行。

如下所述,方法900提供了用于执行与虚拟助理的任务的直观方式。 该方法减少用户对于执行使用数字助理的任务的认知负担,并改善用户对 于数字助理性能的满意度,由此生成更有效的人机接口。对于电池驱动的 计算设备,使得能够更准确且更高效地实现与数字助理的任务的改善执行 就节省电力并增长了电池充电之间的时间间隔。

在方法900开始时,数字助理接收902针对来自虚拟助理的服务的用 户输入。在一些实施方案中,用户输入包括包含一个或多个字词的非结构 化自然语言语音。在电子设备104、200、400、600包括麦克风213或者与 麦克风213相关联的情况下,可通过麦克风213接收该用户输入。用户输 入也可称为音频输入或音频流。在一些实施方案中,音频流可作为原始声 波,作为音频文件或以代表性的音频信号(模拟或数字)的形式被接收。 在其他实施方案中,可在远程系统(诸如数字助理的服务器部件)处接收 音频流。音频流可包括用户语音,诸如语音用户请求。在其它实施方案 中,以文本形式而非语音来接收用户输入。在其它实施方案中,用户输入 是通过触敏显示器系统212作为轻击、触摸、或其它手势而被接收。

根据一些实施方案,电子设备104、200、400、600处的DA客户端 102确定904响应于用户请求执行至少一个任务。如上文参考图8A-8E所 述,根据一些实施方案,任务包括语境解析、语音识别、自动语音识别、 域分类、自然语言分析、查询解析、自然语言合成、用户接口解析、和文 本-语音转换中的一者或多者。

根据一些实施方案,在确定响应于用户请求执行至少一个任务之后, DA客户端102基于至少一个启发来估计906以电子设备104、200、400、 600完成所述至少一个任务的至少一个性能特征。如上文参考图8A-8E所 述,根据一些实施方案,性能特征是任务执行的速度、任务执行的相对效 率、任务执行的功率消耗、和/或其它有关性能度量中的一者或多者。根据 一些实施方案,多个启发如上文参考图8A-8E所列出和描述。

根据一些实施方案,要么在框906后面立即,要么在框906后面的一 个后续时间,DA客户端102重复框904,如从框906到框904的虚线所 示。这样,对于两个或更多个分立的任务,DA客户端102分别基于至少一 个启发来估计以电子设备104、200、400、600完成每个任务的至少一个性 能特征。

数字助理基于框906的估计来确定908是否在电子设备104、200、 400、600处执行所述至少一个任务。数字助理以任何合适的方式做出这个 确定。如上所述,根据一些实施方案,一个启发(诸如隐私设置或数据传 输限制)可以是决定性的。根据其他实施方案,DA客户端基于两个或更多 个启发,基于估计完成语音识别的至少一个性能特征,确定是否在电子设 备200处执行语音识别任务。如果使用不止一个启发,则这些启发的结果 被平均、加权、或以任何合适的方式处理,以执行所述确定。基于框906 的估计的确定908的示例在上文中针对图8A-8E被提供。

根据确定在电子设备104、200、400、600处执行至少一个任务,DA 客户端102导致910在电子设备104、200、400、600处执行至少一个任 务。在一些实施方案中,所述执行是在处理器220处进行。在其它实施方 案中,所述执行是在电子设备104、200、400、600处的任何合适的硬件元 件处进行。在一些实施方案中,在框910中,DA客户端102生成、或者使 电子设备104、200、400、600的另一部件生成在电子设备104、200、 400、600处执行所述至少一个任务的可执行代码。根据一些实施方案,可 执行代码是以JavaScript语言编写的,但可使用任何其它合适的语言。可执 行代码是基于要执行的具体任务而生成的。根据一些实施方案,可执行代 码包括确定任务执行所必需的所有信息是否可供虚拟助理使用、获取或导致获取任务执行所必需的任何遗漏信息、和执行任务的代码。

任选地,框910的导致执行是使用电子设备104、200、400、600上的 个人数据778来执行912,其中个人数据778被保持在电子设备104、 200、400、600上。如上文针对图8A-8E所述,隐私设置、数据传输限 制、和/或其它隐私相关和数据保护启发可导致在框908中确定导致在电子 设备104、200、400、600处执行至少一个任务。这样,个人数据778被保 持在电子设备104、200、400、600上,不被传输到设备之外,甚至不被传 输给虚拟助理的DA服务器106部件。此类个人数据778因此不容易在前往 DA服务器106或电子设备104、200、400、600之外的其它位置的途中被 拦截,并且通过将个人数据778保持在电子设备104、200、400、600上, 此类数据不容易受到可能侵入服务器或远离电子设备104、200、400、600 的其它设备的黑客的攻击。

根据一些实施方案,框910的导致执行是通过将可执行代码存储914 在电子设备104、200、400、600处并导致916所存储的可执行代码在电子 设备104、200、400、600处执行来进行。与上文所述的“在运行中”生成 可执行代码相比,将与任务执行相关联的可执行代码存储在电子设备104、 200、400、600处消耗更多存储器空间。然而,在一些实施方案中,与生成 可执行代码并在框910中导致其执行相比,定位并执行所存储的可执行代 码更快。

任选地,根据一些实施方案,在导致910在电子设备104、200、 400、600处执行至少一个任务之后,DA客户端102或电子设备104、 200、400、600的其它部件从电子设备104、200、400、600传输918框 910中导致执行的结果。在一些实施方案中,框910中导致执行的结果被传 输给DA服务器106,用于进一步处理,和/或用于用作对在DA服务器106 处执行的过程的输入。在其它实施方案中,框910中导致执行的结果在框 918中被传输,以便满足用户请求。此类传输包括但不限于发送电子邮件 (如上文参考图8C-8D所述)、消息或其它通信。

返回到框908,根据一些实施方案,根据确定在电子设备104、200、 400、600之外执行至少一个任务,DA客户端102生成920用于执行所述至 少一个任务的可执行代码。所述生成920是以与上文针对在框910的一些 实施方案中生成可执行代码所述基本上相同的方式来执行。在一些实施方 案中,可执行代码被配置为通过命令的文本表示来与虚拟助理700的另一 部分对接,而不是直接访问虚拟助理的原语。那些文本命令与虚拟助理700 的API交互。这样,DA客户端102生成的代码产生低的可管理的安全性风 险,并且恶意软件感染的路径被关闭。根据其它实施方案,电子设备104、 200、400、600的另一部件代替DA客户端102或者与DA客户端102协调 而生成用于执行所述至少一个任务的可执行代码。

在生成可执行代码之后,可执行代码从电子设备104、200、400、600 被传输922。根据一些实施方案,DA客户端102引发所述传输。根据其它 实施方案,电子设备104、200、400、600的另一部件代替DA客户端102 或者与DA客户端102协调而从电子设备104、200、400、600传输用于执 行所述至少一个任务的可执行代码。在一些实施方案中,任选地,可执行 代码被从电子设备104、200、400、600传输924给DA服务器106,其中 虚拟助理700在电子设备104、200、400、600与远程服务器之间划分。如 上文参考图8A-8E和例示那些附图的示例所述,基于一个或多个启发,在 服务器处(诸如通过执行从电子设备104、200、400、600传输给服务器的 可执行代码)执行任务并将该任务的结果返回给电子设备104、200、400、 600可得到比在电子设备104、200、400、600自身上执行代码更好的性能 特征。

任选地,根据一些实施方案,可执行代码从电子设备104、200、 400、600传输给第二电子设备,而不是传输给DA服务器。例如,可执行 代码可从手表诸如Apple,Inc.(Cupertino,California)的Apple

任选地,根据一些实施方案,在将可执行代码传输926给第二电子设 备之后,方法在第二电子设备处满足928用户请求。例如,电子设备104、 200、400、600是Apple,Inc.(Cupertino,California)的

任选地,根据一些实施方案,在从电子设备104、200、400、600传输 960可执行代码之后,DA客户端102接收与可执行代码的执行相关联的信 息。这样,远离电子设备104、200、400、600执行的任务将该任务执行的 结果返回给电子设备104、200、400、600。

根据一些实施方案,图10A示出了根据各种所述实施方案的原理进行 配置的电子设备1100的示例性功能框图。根据一些实施方案,电子设备 1100的功能块被配置为执行上文所述的技术。设备1100的功能块任选地由 执行各种所述示例的原理的硬件、软件,或硬件和软件的组合来实现。本 领域的技术人员应当理解,图10A中所述的功能块任选地被组合或被分离 为子块,以实现各种所述示例的原理。因此,本文的描述任选地支持本文 所述的功能块的任何可能的组合或分离或进一步限定。

如图10A所示,电子设备1100任选地包括被配置为显示图形用户界面 的显示单元1102;任选地包括被配置为接收接触的触敏表面单元1104,被 配置为接收音频信号的麦克风单元1106,以及任选地耦接至显示单元 1102、触敏表面单元1104和/或麦克风单元1106的处理单元1108。在一些 实施方案中,处理单元1108包括传输单元1110、接收单元1112、确定单 元1114,估计单元1116、导致单元1118、生成单元1214,并且任选地包 括存储单元1122。

根据一些实施方案,处理单元被配置为(例如以接收单元1112)接收 针对来自虚拟助理的服务的用户请求;(例如以确定单元1114)确定响应 于用户请求执行至少一个任务;(例如以估计单元1116)基于至少一个启 发,估计以电子设备完成所述至少一个任务的至少一个性能特征;基于所 述估计,(例如以确定单元1114)确定是否在电子设备处执行所述至少一 个任务;根据确定在电子设备处执行所述至少一个任务,(例如以导致单 元1118)导致在电子设备处执行所述至少一个任务;根据确定在电子设备 之外执行所述至少一个任务,(例如以生成单元1120)生成用于执行所述 至少一个任务的可执行代码;和(例如以传输单元1110)从电子设备传输 可执行代码。

在一些实施方案中,如果电子设备1100包括电池,则所述至少一个启 发包括电子设备1100的电池寿命。

在一些实施方案中,所述至少一个启发包括电子设备1100处符合 IEEE 802.11x标准的高频无线联网服务的可用性。

在一些实施方案中,所述至少一个启发包括可供电子设备1100使用的 网络速度。

在一些实施方案中,所述至少一个启发包括电子设备1100的可用存储 器空间。

在一些实施方案中,所述至少一个启发包括电子设备1100的处理速 度。

在一些实施方案中,所述至少一个启发包括电子设备1100的操作系 统。

在一些实施方案中,所述至少一个启发包括电子设备1100处的可用缓 存空间。

在一些实施方案中,所述至少一个启发包括电子设备1100的类型。

在一些实施方案中,所述至少一个启发包括与所述至少一个任务相关 联的隐私设置。

在一些实施方案中,所述至少一个启发包括与所述至少一个任务相关 联的数据传输限制。

在一些实施方案中,所述至少一个启发包括电子设备1100的位置。

在一些实施方案中,所述至少一个启发包括所述至少一个任务的特 征。

在一些实施方案中,所述至少一个启发包括与任务相关联的用户偏 好。

在一些实施方案中,所述至少一个启发包括任务对严谨提示的利用。

在一些实施方案中,所述至少一个任务包括以下中的至少一者:语境 解析;语音识别;自动语音识别;域分类;自然语言分析;查询解析;自 然语言合成;用户接口解析;和文本-语音转换。

在一些实施方案中,响应于从电子设备1100传输可执行代码,处理单 元1108被配置为(例如以接收单元1112)接收与可执行代码的执行相关联 的信息。

在一些实施方案中,处理单元1108被配置为(例如以导致单元 1118)导致使用电子设备上的用户数据来执行所述执行,其中用户数据被 保持在电子设备1100上。

在一些实施方案中,处理单元1108被配置为(例如以导致单元 1118)导致在电子设备1100处在沙箱中执行所述执行。

在一些实施方案中,在导致所述执行之后,处理单元1108被配置为 (例如以传输单元1110)从电子设备1100传输所述导致所述执行的结果。

在一些实施方案中,处理单元1108被配置为对至少两个分立的任务进 行估计(例如以估计单元1116)和确定(例如以确定单元1114)。

在一些实施方案中,处理单元1108还包括存储单元1122;其中处理 单元1108被进一步配置为(例如以导致单元1118)导致以下动作的执行: (例如以存储单元1122)在电子设备上存储可执行代码;和(例如以导致 单元1118)导致在电子设备1100上执行所存储的代码。

在一些实施方案中,用户请求是非结构化的自然语言格式。

在一些实施方案中,一个性能特征是所估计的用于完成所述至少一个 任务的持续时间。

在一些实施方案中,虚拟助理分布在电子设备1100和服务器之间,处 理单元1108被配置为(例如以传输单元1110)传输可执行代码给服务器。

在一些实施方案中,处理单元1108被配置为(例如以传输单元 1110)传输可执行代码给第二电子设备。

在一些实施方案中,第二电子设备通过本地网络连接到所述电子设 备。

以上参考图9A至图9B所述的操作任选地由图1至图7C、图8E和/或 图10中描绘的部件来实现。本领域的普通技术人员会清楚地知道可如何基 于图1至图7C、图8E和/或图10中所描绘的部件来实现过程。

图9C-9D是例示一种用于执行与虚拟助理的任务的方法的流程图 940。根据一些实施方案,方法900在包括DA服务器106的电子设备108 处执行。根据一些实施方案,DA服务器106是包括DA客户端102的系统 100的一部分。然而,方法940描述了在服务器108处的服务器侧操作。方 法940中的一些操作可被组合,一些操作的次序可被改变并且一些操作可被省略。特别地,如果有的话,图9C至图9D中以虚线形状指示的可选操 作可以以任何合适的顺序执行,并且不需要按照图9C至图9D所示的顺序 执行。

如下所述,方法940提供了用于执行与虚拟助理的任务的直观方式。 该方法减少用户对于执行使用数字助理的任务的认知负担,并改善用户对 于数字助理性能的满意度,由此生成更有效的人机接口。

在方法940开始时,数字助理接收942针对来自虚拟助理的服务的用 户输入。在一些实施方案中,在DA服务器106处从电子设备104、200、 400、600接收音频流。音频流可包括用户语音,诸如语音用户请求。在其 它实施方案中,以文本形式而非语音来接收用户输入。在其它实施方案 中,用户请求是在服务器系统108处被DA服务器106以任何适当的方式接收。

根据一些实施方案,DA服务器106确定944响应于用户请求执行至少 一个任务。如上文参考图8A-8E所述,根据一些实施方案,任务包括语境 解析、语音识别、自动语音识别、域分类、自然语言分析、查询解析、自 然语言合成、用户接口解析、和文本-语音转换中的一者或多者。

在确定响应于用户请求执行至少一个任务之后,DA服务器106基于至 少一个启发来估计946以服务器108完成所述至少一个任务的至少一个性 能特征。如上文参考图8A-8E所述,根据一些实施方案,性能特征是任务 执行的速度、任务执行的相对效率、任务执行的功率消耗、和/或其它有关 性能度量中的一者或多者。根据一些实施方案,多个启发如上文参考图 8A-8E所列出和描述。此外,根据其他实施方案,可使用一个或多个其他 启发。

一个启发是可供服务器108使用的网络速度。无线网络启发如上文所 述。类似地,有线网络服务基于网络速度被分类到分组中。如果较高网络 速度在服务器108处不可用,则与较高网络速度在服务器108处可用时相 比,服务器108更能够执行任务。根据一些实施方案,为这个启发估计的 性能特征包括速度和功率消耗。虽然功率消耗就电池寿命而言对于服务器 108并不是极其重要的,但通常由于经济和环境的原因而期望降低服务器 108的总功率消耗。

一个启发是服务器108与电子设备104、200、400、600之间的网络延 迟。这个延迟也可表现在DA服务器106与DA客户端102之间。网络延迟 是指数据包从一个指定点到达另一指定点所花费的时间。如果在服务器108 处出现较大网络延迟,则与在服务器108处出现较低网络延迟时相比,服 务器108更能够执行任务。根据一些实施方案,为这个启发估计的性能特 征包括速度。

一个启发是服务器108处的负荷。负荷是指服务器108处对服务的需 求,并且在对于任务执行的请求以较高速率到达和/或与任务承载较高计算 负荷相关联时较高。如果在服务器108处出现较低负荷,则与在服务器108 处出现较高负荷时相比,服务器108更能够执行任务。根据一些实施方 案,为这个启发估计的性能特征包括速度和功率消耗。

一个启发是服务器108处的容量。容量是指服务器108除了当前正在 执行的任务之外执行附加任务的能力,并且在对于任务执行的请求以较低 速率到达和/或与任务承载较低计算负荷相关联时较高。容量可以是硬性的 (可执行的任务上的固定上限)或软性的(可基于负荷调节的可移动上 限)。如果服务器108具有较高容量,则与服务器108具有较低容量相 比,服务器108更能够执行任务。根据一些实施方案,为这个启发估计的 性能特征包括速度和功率消耗。

一个启发是服务器108的状态。状态是指服务器108的操作状态。服 务器108可能停机维护或者可能已经崩溃,从而其状态是停机。服务器108 可能完全运转,从而其状态是运行。服务器108可能部分运转,从而其状 态是部分运行。如果服务器108完全运转(“运行”),则与服务器108 部分运转或停机时相比,服务器108更能够执行任务。当服务器108停机 时,其不能执行任何任务。根据一些实施方案,为这个启发估计的性能特 征包括速度。

一个启发是服务器108处的业务量。业务量是指到达服务器108的请 求的数量,与请求的大小、请求的实质、或满足请求所需要的计算能力无 关。如果服务器108正面对较少业务量,则与服务器108正面对较高业务 量时相比,服务器108更能够执行任务。根据一些实施方案,为这个启发 估计的性能特征包括速度。

一个启发是服务器108与电子设备104、200、400、600之间的数据连 接特征。连接特征包括服务质量(QoS)、噪声/连接衰减、丢包率、和服 务器108与电子设备104、200、400、600之间的数据连接的其他特征。如 果在服务器108处出现较差连接特征,则与在服务器108处出现较好连接 特征时相比,服务器108更能够执行任务。根据一些实施方案,为这个启 发估计的性能特征包括速度。

一个启发是服务器108与服务提供方之间的连接特征。根据一些实施 方案,为了履行任务,服务器108连接到外部服务提供方以获取信息或执 行任务履行。如果在服务器108处出现较差连接特征,则与在服务器108 处出现较好连接特征时相比,服务器108更能够执行任务。根据一些实施 方案,为这个启发估计的性能特征包括速度。

要么在框946后面立即,要么在框946后面的一个后续时间,DA服务 器106重复框944,如从框946到框944的虚线所示。这样,对于两个或更 多个分立的任务,DA服务器106分别基于至少一个启发来估计以服务器 108完成每个任务的至少一个性能特征。

数字助理基于框946的估计来确定948是否在服务器108处执行所述 至少一个任务。数字助理以任何合适的方式做出这个确定。如上所述,根 据一些实施方案,一个启发(诸如隐私设置或数据传输限制)可以是决定 性的。根据其他实施方案,DA服务器106基于两个或更多个启发,基于估 计完成语音识别的至少一个性能特征,确定是否在服务器108处执行语音 识别任务。如果使用不止一个启发,则这些启发的结果被平均、加权、或 以任何合适的方式处理,以执行所述确定。基于框946的估计的确定948 的示例在上文中针对图8A-8E被提供。

根据确定在服务器108处执行至少一个任务,DA服务器106导致950 在服务器108处执行至少一个任务。在一些实施方案中,所述执行是在处 理模块114处进行。在其它实施方案中,所述执行是在服务器108处的任 何合适的硬件元件处进行。在一些实施方案中,在框950中,DA服务器 106生成、或者使服务器108的另一部件生成在服务器108处执行所述至少 一个任务的可执行代码。根据一些实施方案,可执行代码是以JavaScript语 言编写的,但可使用任何其它合适的语言。可执行代码是基于要执行的具 体任务而生成的。根据一些实施方案,可执行代码包括确定任务执行所必 需的所有信息是否可供虚拟助理使用、获取或导致获取任务执行所必需的 任何遗漏信息、和执行任务的代码。

框950的导致执行是通过将可执行代码存储952在服务器108处并导 致954所存储的可执行代码在服务器108处执行来进行。与上文所述的 “在运行中”生成可执行代码相比,将与任务执行相关联的可执行代码存 储在服务器108处消耗更多存储器空间。然而,在一些实施方案中,与生 成可执行代码并在框950中导致其执行相比,定位并执行所存储的可执行 代码更快。

任选地,根据一些实施方案,在导致950在服务器108处执行至少一 个任务之后,DA服务器106或服务器108的其它部件从服务器108传输 956框950中导致执行的结果。在一些实施方案中,框950中导致执行的结 果被传输给DA客户端102,用于进一步处理,和/或用于用作对在DA客 户端102处执行的过程的输入。在其它实施方案中,框950中导致执行的结果在框956中被传输,以便满足用户请求。此类传输包括但不限于发送 电子邮件(如上文参考图8C-8D所述)、消息或其它通信。

返回到框908,根据一些实施方案,根据确定在服务器108之外执行 至少一个任务,DA服务器106生成958用于执行所述至少一个任务的可执 行代码。所述生成958是以与上文针对在框950的一些实施方案中生成可 执行代码所述基本上相同的方式来执行。在一些实施方案中,可执行代码 被配置为通过命令的文本表示来与虚拟助理700的另一部分对接,而不是 直接访问虚拟助理的原语。那些文本命令与虚拟助理700的API交互。这 样,DA服务器106生成的代码产生低的可管理的安全性风险,并且恶意软 件感染的路径被关闭。根据其它实施方案,服务器106的另一部件代替DA 服务器106或者与DA服务器106协调而生成用于执行所述至少一个任务的 可执行代码。

在生成可执行代码之后,可执行代码从服务器108被传输960。根据 一些实施方案,DA服务器102引发所述传输。根据其它实施方案,服务器 108的另一部件代替DA服务器106或者与DA服务器106协调而从服务器 108传输用于执行所述至少一个任务的可执行代码。在一些实施方案中,任 选地,可执行代码被从服务器108传输962给DA客户端102,其中虚拟助 理700在服务器108与远程电子设备104、200、400、600之间划分。如上 文参考图8A-8E和例示那些附图的示例所述,基于一个或多个启发,在电 子设备104、200、400、600处(诸如通过执行从服务器108传输给电子设 备的可执行代码)执行任务并将该任务的结果返回给服务器108可得到比 在服务器108自身上执行代码更好的性能特征。

任选地,根据一些实施方案,可执行代码从服务器108传输964给第 二电子设备,而不是传输给DA服务器。例如,可执行代码可从服务器传 输给Apple,Inc.(Cupertino,California)的Apple

任选地,根据一些实施方案,在将可执行代码传输964给第二电子设 备之后,方法在第二电子设备处满足966用户请求。如在以上示例中那 样,服务器108传输可执行代码给Apple

任选地,根据一些实施方案,在从服务器108传输960可执行代码之 后,DA服务器106接收与可执行代码的执行相关联的信息。这样,远离服 务器108执行的任务将该任务执行的结果返回给服务器108。

图10B示出了根据各种所述实施方案的原理进行配置的电子设备1200 的示例性功能框图。根据一些实施方案,电子设备1200的功能块被配置为 执行上文所述的技术。设备1200的功能块任选地由执行各种所述示例的原 理的硬件、软件,或硬件和软件的组合来实现。本领域的技术人员应当理 解,图10B中所述的功能块任选地被组合或被分离为子块,以实现各种所 述示例的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。

如图10B中所示,服务器1200包括处理单元1202。在一些实施方案 中,处理单元1202包括传输单元1204、接收单元1206、确定单元1208, 估计单元1210、导致单元1212、生成单元1214,并且任选地包括存储单元 1216。

根据一些实施方案,处理单元1202被配置为(例如以接收单元 1206)接收针对来自虚拟助理的服务的用户请求;(例如以确定单元 1208)确定响应于用户请求执行至少一个任务;(例如以估计单元1210) 基于至少一个启发,估计以服务器完成所述至少一个任务的至少一个性能 特征;基于所述估计,(例如以确定单元1208)确定是否在服务器处执行所述至少一个任务;根据确定在服务器处执行所述至少一个任务,(例如 以导致单元1212)导致在服务器处执行所述至少一个任务;根据确定在服 务器之外执行所述至少一个任务,(例如以生成单元1214)生成用于执行 所述至少一个任务的可执行代码;和(例如以传输单元1204)从服务器传 输可执行代码。

在一些实施方案中,所述至少一个启发包括服务器1200与电子设备之 间的网络延迟。

在一些实施方案中,所述至少一个启发包括可供服务器1200使用的网 络速度。

在一些实施方案中,所述至少一个启发包括服务器1200处的负荷。

在一些实施方案中,所述至少一个启发包括服务器1200处的可用容 量。

在一些实施方案中,所述至少一个启发包括服务器1200的状态。

在一些实施方案中,所述至少一个启发包括与所述至少一个任务相关 联的隐私设置。

在一些实施方案中,所述至少一个启发包括与所述至少一个任务相关 联的数据传输限制。

在一些实施方案中,所述至少一个启发包括所述至少一个任务的特 征。

在一些实施方案中,所述至少一个启发包括服务器1200处的业务量。

在一些实施方案中,所述至少一个启发包括与任务相关联的用户偏 好。

在一些实施方案中,所述至少一个启发包括任务的特征。

在一些实施方案中,所述至少一个启发包括从服务器1200到服务提供 方的连接的特征。

在一些实施方案中,响应于所述传输,处理单元1202被配置为(例如 以接收单元1206)接收与可执行代码的执行相关联的信息。

在一些实施方案中,处理单元1202被进一步配置为在(例如以导致单 元1212)导致所述执行之后:(例如以传输单元1204)从服务器1200传 输所述导致所述执行的结果。

在一些实施方案中,处理单元1202被配置为对至少两个分立的任务进 行估计(例如以估计单元1210)和确定(例如以确定单元1208)。

在一些实施方案中,处理单元1202还包括存储单元1216;其中处理 单元1202被进一步配置为(例如以导致单元1212)导致以下动作的执行: (例如以存储单元1216)在服务器1200上存储可执行代码;和(例如以导 致单元1212)导致在服务器1200上执行所存储的代码。

在一些实施方案中,虚拟助理分布在服务器1200和电子设备之间,并 且其中处理单元1202被配置为(例如以传输单元1204)传输可执行代码给 电子设备。

在一些实施方案中,处理单元1202被配置为(例如以传输单元 1204)传输可执行代码给第二电子设备。

以上参考图9C至图9D所述的操作任选地由图1至图7C、图8E和/或 图10中描绘的部件来实现。本领域的普通技术人员会清楚地知道可如何基 于图1至图7C、图8E和/或图10中所描绘的部件来实现过程。

图9E-9H是示出一种用于执行与分布在位于电子设备104、200、 400、600处的DA客户端102与位于服务器108处的DA服务器106之间 的虚拟助理的任务的方法的流程图980。方法980在电子设备104、200、 400、600和服务器108二者处执行。方法980中的一些操作可被组合,一 些操作的次序可被改变并且一些操作可被省略。特别地,如果有的话,图 9E至图9H中以虚线形状指示的可选操作可以以任何合适的顺序执行,并 且不需要按照图9E至图9H所示的顺序执行。如果动作被描述为由DA客 户端102执行,则该动作相反可由DA服务器106执行,除非有明确相反的 指出,因为这二者是助理100的部分。

如下所述,方法980提供了用于执行与虚拟助理的任务的直观方式。 该方法减少用户对于执行使用数字助理的任务的认知负担,并改善用户对 于数字助理性能的满意度,由此生成更有效的人机接口。对于电池驱动的 计算设备,使得能够更准确且更高效地实现与数字助理的任务的改善执行 就节省电力并增长了电池充电之间的时间间隔。

在方法980开始时,数字助理接收982针对来自虚拟助理的服务的用 户输入。在一些实施方案中,用户输入包括包含一个或多个字词的非结构 化自然语言语音。同样参考图8A和图8C,在电子设备104、200、400、 600包括麦克风213或者与麦克风213相关联的情况下,可通过麦克风213 接收该用户输入。用户输入也可称为音频输入或音频流。在一些实施方案 中,音频流可作为原始声波,作为音频文件或以代表性的音频信号(模拟 或数字)的形式被接收。在其他实施方案中,可在远程系统(诸如数字助 理的服务器部件)处接收音频流。音频流可包括用户语音,诸如语音用户 请求。在其它实施方案中,以文本形式而非语音来接收用户输入。在其它 实施方案中,用户输入是通过触敏显示器系统212作为轻击、触摸、或其 它手势而被接收。

根据一些实施方案,电子设备104、200、400、600处的DA客户端 102确定984响应于用户请求执行至少一个任务。如上文参考图8A-8E所 述,根据一些实施方案,任务包括语境解析、语音识别、自动语音识别、 域分类、自然语言分析、查询解析、自然语言合成、用户接口解析、和文 本-语音转换中的一者或多者。

根据一些实施方案,在确定响应于用户请求执行至少一个任务之后, DA客户端102基于至少一个启发来估计986以电子设备104、200、400、 600完成所述至少一个任务的至少一个性能特征。如上文参考图8A-8E所 述,根据一些实施方案,性能特征是任务执行的速度、任务执行的相对效 率、任务执行的功率消耗、和/或其它有关性能度量中的一者或多者。根据 一些实施方案,多个启发如上文参考图8A-8E所列出和描述。对于方法 980,上述启发涉及来自电子设备104、200、400、600或服务器108的通 信在这里涉及电子设备104、200、400、600和服务器108之间的通信。

任选地,作为估计986的一部分,DA客户端102确定988电子设备 104、200、400、600和服务器108中每一者能够执行所述至少一个任务的 速度。根据一些实施方案,作为所述确定的一部分,DA客户端102与DA 服务器106通信。在其它实施方案中,DA客户端102诸如通过基于与DA 服务器106的最近交互进行假设来假设服务器108能够执行所述至少一个 任务的速度。任选地,作为估计986的一部分,在确定988所述速度之 后,DA客户端102将电子设备104、200、400、600能够执行至少一个任 务的速度与服务器108能够执行至少一个任务的速度进行比较990。任选 地,作为比较990速度的一部分,DA客户端102确定992这些速度之间的 差值,并将该差值与阈值进行比较994。

根据一些实施方案,要么在框986后面立即,要么在框986后面的一 个后续时间,DA客户端102重复框984,如从框986到框984的虚线所 示。这样,对于两个或更多个分立的任务,DA客户端102分别基于至少一 个启发来估计以电子设备104、200、400、600完成每个任务的至少一个性 能特征。

数字助理基于框986的估计来确定996是在电子设备104、200、400、 600处还是在服务器108处执行所述至少一个任务。数字助理以任何合适的 方式做出这个确定。如上所述,根据一些实施方案,一个启发(诸如隐私 设置或数据传输限制)可以是决定性的。根据其他实施方案,DA客户端 102基于两个或更多个启发,基于估计完成语音识别的至少一个性能特征, 确定是在电子设备104、200、400、600处还是在服务器108处执行语音识 别任务。如果使用不止一个启发,则这些启发的结果被平均、加权、或以 任何合适的方式处理,以执行所述确定。基于框986的估计的确定996的 示例在上文中针对图8A-8E被提供。如果估计986还包括比较990速度和 将速度差与阈值进行比较994,如上所述,则响应于确定所述差值大于所述 阈值,DA客户端102确定996电子设备104、200、400、600与服务器108 中较快者执行任务。如果所述差值低于所述阈值,则过程前进到框1014, 如下文更详细描述。

根据确定996在电子设备104、200、400、600处执行至少一个任务, DA客户端102导致998在电子设备104、200、400、600处执行至少一个 任务。如果框990-994已执行,则所述确定是基于电子设备104、200、 400、600执行任务比服务器108更快,并且速度差高于阈值。在一些实施 方案中,所述执行是在处理器220处进行。在其它实施方案中,所述执行 是在电子设备104、200、400、600处的任何合适的硬件元件处进行。在一 些实施方案中,在框998中,DA客户端102生成、或者使电子设备104、 200、400、600的另一部件生成在电子设备104、200、400、600处执行所 述至少一个任务的可执行代码。根据一些实施方案,可执行代码是以 JavaScript语言编写的,但可使用任何其它合适的语言。可执行代码是基于 要执行的具体任务而生成的。根据一些实施方案,可执行代码包括确定任 务执行所必需的所有信息是否可供虚拟助理使用、获取或导致获取任务执 行所必需的任何遗漏信息、和执行任务的代码。

根据一些实施方案,在通过执行多个任务来满足针对服务的用户请求 的过程中,DA客户端102和DA服务器106将在没有用户干预的情况下彼 此转移任务执行两次或更多次。任务的此类来回转移是在每个任务完成之 后或在每个任务子集完成之后迭代地执行框984和986的结果。如下文更 详细所述,根据一些实施方案,DA客户端102和/或DA服务器106对任务 的执行在某些情况下被延期。例如,在DA客户端102等待来自用户的输 入期间,执行被延期。此类输入可以是对上文所述的严谨提示的响应。因 为严谨提示将虚拟助理与用户之间的对话限制到小的一组可能性(例如 “是”、“不是”、具体时间或日期),所以此类输入可在电子设备104、 200、400、600处本地处理,而不需要将任务转移回服务器108。在某些情 况下,在电子设备104、200、400、600上本地处理此类输入更快,而不是 将语音波形传输给服务器108并等待响应。相反,例如在接收到用户输入 时,DA客户端102可返回到框996并确定是否要基于用户输入执行任务, 或者导致998在服务器108处执行该任务。严谨提示的使用提供了电子设 备104、200、400、600可确定用户输入的内容及决定不需要将用户输入传 输给服务器108来确定说的是什么的置信度水平。如果用户说的并不是所 预期的(例如,用户输入以非预期的方式构制或者与严谨提示无关),则 DA客户端可返回到框996,然后导致998在服务器108处执行识别用户输 入的任务。

根据一些实施方案,本文任何过程900、940、980中的步骤包括在电 子设备104、200、400、600和服务器108二者处保持每个任务的状态。这 样,DA客户端102和DA服务器104监视任务执行,并且每一者被配置为 在数据从另一者到达时预期有来自另一者的数据。因此,在一些实施方案 中,任选地由于在框996中确定(这可以是由DA客户端102或DA服务器106进行)导致在电子设备104、200、400、600处执行至少一个任务,DA 服务器106生成1000用于执行所述至少一个任务的可执行代码。可执行代 码的生成基本上如上文所述地执行。

任选地,在框1000中生成的可执行代码从服务器108传输1002给电 子设备104、200、400、600。任选地,可执行代码然后在电子设备104、 200、400、600处执行1004。任选地,可执行代码在电子设备104、200、 400、600处在沙箱中执行1006。“沙箱”是一种计算机安全术语,是指一 种独立计算环境,在其中,代码可在隔离区域中运行,从而如果发生错误 或安全性问题,则那些问题将不会扩散到电子设备104、200、400、600上 的其它区域。程序在其自身的隔离区域中被启用,在那里可对其进行操作 而不对其它程序产生任何威胁。根据一些实施方案,虚拟机是一种沙箱。

返回框996,根据确定996在服务器108处执行至少一个任务,DA服 务器106导致1008在服务器108处执行至少一个任务。如果框990-994已 执行,则所述确定是基于服务器108执行任务比电子设备104、200、400、 600更快,并且速度差高于阈值。在一些实施方案中,所述执行是在处理模 块114处进行。在其它实施方案中,所述执行是在服务器108处的任何合 适的硬件元件处进行。在一些实施方案中,在框1010中,DA客户端102 生成、或者使电子设备104、200、400、600的另一部件生成在服务器108 处执行所述至少一个任务的可执行代码。可执行代码的生成基本上如上文 所述地执行。任选地,在框1010中生成的可执行代码从电子设备104、 200、400、600传输给服务器108。任选地,可执行代码然后在服务器108 处执行1014。任选地,可执行代码在服务器108处在沙箱中执行1016。

返回框996,如果估计986还包括比较990速度和将速度差与阈值进行 比较994,如上所述,则响应于确定所述差值大于所述阈值,DA客户端 102确定996服务器108和电子设备104、200、400、600二者执行任务。 根据确定996在服务器108和电子设备104、200、400、600二者处执行至 少一个任务,DA客户端102导致1018在服务器108和电子设备104、 200、400、600二者处执行至少一个任务。可执行代码以与上文参考方法 900和940所述基本上相同的方式在服务器108和电子设备104、200、 400、600二者处执行。根据一些实施方案,至少一个任务的执行的结果在 每个任务完成时被返回给电子设备104、200、400、600。任选地,在框 1020中,电子设备104、200、400、600利用电子设备104、200、400、 600和服务器108中第一者执行任务的结果。在框1022中,电子设备 104、200、400、600丢弃电子设备104、200、400、600和服务器108中第 二者执行任务的结果。如本段中所用,术语“执行”包括将结果返回给电 子设备104、200、400、600。例如,如果服务器108首先执行任务,使得 任务结果在同一任务在电子设备104、200、400、600自身上完成执行之前 已被返回给电子设备104、200、400、600,则电子设备104、200、400、 600利用从服务器108接收的结果并丢弃从电子设备104、200、400、600 接收的结果(当那些结果可用时)。

根据一些实施方案,在框998、1008、1018中,代码的执行被延期。 例如,代码的执行与未来的事件相关联,诸如“在我明天的会议前一小时 设置闹钟”。又如,代码的执行需要输入、或信息采集,代码的执行是以 此为基础的。将代码的执行延期非平凡时间量或者将其有条件地延期到信 息采集后的能力就允许实现能够满足一系列用户请求的稳健系统。如上所 述,根据一些实施方案,本文任何过程900、940、980中的步骤包括在电 子设备104、200、400、600和服务器108二者处保持每个任务的状态。这 样,DA客户端102和DA服务器104监视任务执行,并且每一者被配置为 在数据从另一者到达时预期有来自另一者的数据。保持状态信息就允许更 有效地延期执行代码,因为电子设备104、200、400、600和服务器108能 跟踪响应仍未决的数据和动作,然后在响应到达时将该响应接收回到过程 900、940、980中并根据其而进行操作。

图10C示出了根据各种所述实施方案的原理进行配置的电子设备1300 的示例性功能框图。根据一些实施方案,电子设备1300的功能块被配置为 执行上文所述的技术。设备1300的功能块任选地由执行各种所述示例的原 理的硬件、软件,或硬件和软件的组合来实现。本领域的技术人员应当理 解,图10C中所述的功能块任选地被组合或被分离为子块,以实现各种所 述示例的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。

如图10C所示,电子设备1300任选地包括被配置为显示图形用户界面 的显示单元1302;任选地包括被配置为接收接触的触敏表面单元1304,被 配置为接收音频信号的麦克风单元1306、以及任选地耦接至显示单元 1302、触敏表面单元1304和/或麦克风单元1306的处理单元1308。在一些 实施方案中,处理单元1308包括传输单元1310、接收单元1312、确定单 元1314,估计单元1316、导致单元1318,任选地包括保持单元1320,并 且任选地包括生成单元1322。电子设备连接至第二电子设备1324。

根据一些实施方案,处理单元被配置为(例如以接收单元1312)在电 子设备1300处接收针对来自虚拟助理的服务的用户请求;(例如以确定单 元1314)确定响应于用户请求执行至少一个任务;(例如以估计单元 1316),基于至少一个启发,估计以第一电子设备1300和以第二电子设备 1324完成所述至少一个任务的至少一个性能特征;基于所述估计,(例如 以确定单元1314)确定是否在第一电子设备1300和第二电子设备1324中 的一者处执行所述至少一个任务;根据确定在第一电子设备1300处执行所 述至少一个任务,(例如以导致单元1318)导致在第一电子设备1300处执 行所述至少一个任务;根据确定在第二电子设备1324处执行所述至少一个 任务,(例如以导致单元1318)导致在第二电子设备1324处执行所述至少 一个任务。

在一些实施方案中,如果第一电子设备1300包括电池,则所述至少一 个启发包括第一电子设备1300的电池寿命。

在一些实施方案中,所述至少一个启发包括在第一电子设备1300处符 合IEEE802.11x标准的高频无线联网带宽的可用性。

在一些实施方案中,所述至少一个启发包括第一电子设备1300与第二 电子设备1324之间的网络延迟。

在一些实施方案中,所述至少一个启发包括可供第一电子设备1300与 第二电子设备1324使用的网络速度。

在一些实施方案中,所述至少一个启发包括第一电子设备1300与第二 电子设备1324之间的连接状态。

在一些实施方案中,所述至少一个启发包括第二电子设备1324处的负 荷。

在一些实施方案中,所述至少一个启发包括第二电子设备1324处的可 用容量。

在一些实施方案中,所述至少一个启发包括第二电子设备1324的状 态。

在一些实施方案中,所述至少一个启发包括第一电子设备1300的可用 存储器空间。

在一些实施方案中,所述至少一个启发包括第一电子设备1300的处理 速度。

在一些实施方案中,所述至少一个启发包括第一电子设备1300的操作 系统。

在一些实施方案中,所述至少一个启发包括第一电子设备1300的可用 缓存空间。

在一些实施方案中,所述至少一个启发包括第一电子设备1300的类 型。

在一些实施方案中,所述至少一个启发包括与所述至少一个任务相关 联的隐私设置。

在一些实施方案中,所述至少一个启发包括与所述至少一个任务相关 联的数据传输限制。

在一些实施方案中,所述至少一个启发包括第二电子设备1324的位 置。

在一些实施方案中,所述至少一个启发包括第一电子设备1300的位 置。

在一些实施方案中,所述至少一个启发包括所述至少一个任务的特 征。

在一些实施方案中,所述至少一个启发包括第二电子设备1324处的业 务量。

在一些实施方案中,所述至少一个启发包括与任务相关联的用户偏 好。

在一些实施方案中,所述至少一个启发包括任务的特征。

在一些实施方案中,所述至少一个启发包括从第二电子设备1324到服 务提供方的连接的特征。

在一些实施方案中,处理单元1308还包括保持单元,保持单元被配置 为(例如以保持单元1320)在第一电子设备1300和第二电子设备1324二 者处保持每个任务的状态。

在一些实施方案中,处理单元1308还包括比较单元;其中处理单元 1308被进一步配置为(例如以确定单元1314)确定是否在第一电子设备 1300和第二电子设备1324中的一者处执行所述至少一个任务;处理单元被 配置为(例如以确定单元1314)确定第一电子设备和第二电子设备1324中 每一者能够执行所述至少一个任务的速度;和(例如以估计单元1316)估 计第一电子设备1300能够执行所述至少一个任务的速度和第二电子设备 1324能够执行该任务的速度。

在一些实施方案中,处理单元1308被进一步配置为(例如以确定单元 1314)确定第一电子设备1300能够执行所述至少一个任务的速度和第二电 子设备1324能够执行该任务的速度之间的差值大于阈值;并且其中处理单 元被进一步配置为响应于确定所述差值大于所述阈值,(例如以确定单元 1314)确定第一电子设备和第二电子设备中较快者执行所述至少一个任 务。

在一些实施方案中,处理单元1308被进一步配置为(例如以确定单元 1314)确定第一电子设备1300能够执行所述至少一个任务的速度和第二电 子设备1324能够执行该任务的速度之间的差值小于阈值;并且其中处理单 元1308被进一步配置为响应于确定所述差值小于所述阈值,(例如以导致 单元1318)导致第一电子设备1300和第二电子设备1324二者执行所述至 少一个任务;(例如以导致单元1318)在第一电子设备1300处导致第一电子设备1300和第二电子设备1324中第一者被用于执行所述至少一个任务 的结果;和(例如以导致单元1318)在第一电子设备1300处导致第一电子 设备1300和第二电子设备1324中第二者执行所述至少一个任务的结果被 丢弃。

在一些实施方案中,处理单元1308还包括生成单元1322;并且其中 处理单元1308被进一步配置为(例如以导致单元1318)导致所述执行;处 理单元1308被配置为(例如以生成单元1322)在第一电子设备1300和第 二电子设备1324中的一者处生成用于执行所述至少一个任务的可执行代 码;(例如以传输单元1310)将所生成的可执行代码传输给第一电子设备1300和第二电子设备1324中的另一者;和(例如以导致单元1318)导致 在第一电子设备1300和第二电子设备1324中接收可执行代码的一者处执 行可执行代码。

以上参考图9E至图9H所述的操作任选地由图1至图7C、图8E和/或 图10中描绘的部件来实现。本领域的普通技术人员会清楚地知道可如何基 于图1至图7C、图8E和/或图10中所描绘的部件来实现过程。

示例性方法、非暂态计算机可读存储介质、系统和电子设备在以下各 项中给出:

1.一种使用虚拟助理的方法,包括:

在被配置为传输和接收数据的电子设备处,接收针对来自 虚拟助理的服务的用户请求;

确定响应于所述用户请求执行至少一个任务;

基于至少一个启发,估计以所述电子设备完成所述至少一 个任务的至少一个性能特征;

基于所述估计,确定是否在所述电子设备处执行所述至少 一个任务;

根据确定在所述电子设备处执行所述至少一个任务,导致 在所述电子设备处执行所述至少一个任务;

根据确定在所述电子设备之外执行所述至少一个任务:

生成用于执行所述至少一个任务的可执行代码;以及

从所述电子设备传输所述可执行代码。

2.根据权利要求1所述的方法,其中所述电子设备包括电池,其 中所述至少一个启发包括所述电子设备的电池寿命。

3.根据权利要求1-2中任一项所述的方法,其中所述至少一个启 发包括所述电子设备处符合IEEE 802.11x标准的高频无线联网 服务的可用性。

4.根据权利要求1-3中任一项所述的方法,其中所述至少一个启 发包括所述电子设备可用的网络速度。

5.根据权利要求1-4中任一项所述的方法,其中所述至少一个启 发包括所述电子设备的可用存储器空间。

6.根据权利要求1-5中任一项所述的方法,其中所述至少一个启 发包括所述电子设备的处理速度。

7.根据权利要求1-6中任一项所述的方法,其中所述至少一个启 发包括所述电子设备的操作系统。

8.根据权利要求1-7中任一项所述的方法,其中所述至少一个启 发包括所述电子设备处的可用缓存空间。

9.根据权利要求1-8中任一项所述的方法,其中所述至少一个启 发包括电子设备的类型。

10.根据权利要求1-9中任一项所述的方法,其中所述至少一个启 发包括与所述至少一个任务相关联的隐私设置。

11.根据权利要求1-10中任一项所述的方法,其中所述至少一个启 发包括与所述至少一个任务相关联的数据传输限制。

12.根据权利要求1-11中任一项所述的方法,其中所述至少一个启 发包括所述电子设备的位置。

13.根据权利要求1-12中任一项所述的方法,其中所述至少一个启 发包括所述至少一个任务的特征。

14.根据权利要求1-13中任一项所述的方法,其中所述至少一个启 发包括与所述任务相关联的用户偏好。

15.根据权利要求1-14中任一项所述的方法,其中所述至少一个任 务包括语境解析。

16.根据权利要求1-15中任一项所述的方法,其中所述至少一个任 务包括语音识别。

17.根据权利要求1-16中任一项所述的方法,其中所述至少一个任 务包括自动语音识别。

18.根据权利要求1-17中任一项所述的方法,其中所述至少一个任 务包括域分类。

19.根据权利要求1-18中任一项所述的方法,其中所述至少一个任 务包括自然语言分析。

20.根据权利要求1-19中任一项所述的方法,其中所述至少一个任 务包括查询解析。

21.根据权利要求1-20中任一项所述的方法,其中所述至少一个任 务包括自然语言合成。

22.根据权利要求1-21中任一项所述的方法,其中所述至少一个任 务包括用户接口解析。

23.根据权利要求1-22中任一项所述的方法,其中所述至少一个任 务包括文本-语音转换。

24.根据权利要求1-23中任一项所述的方法,还包括:

响应于所述传输,在所述电子设备处接收与所述可执行代 码的执行相关联的信息。

25.根据权利要求1-24中任一项所述的方法,其中所述导致所述执 行是使用所述电子设备上的个人数据来执行,其中个人数据保 持在所述电子设备上。

26.根据权利要求1-25中任一项所述的方法,还包括在所述导致所 述执行之后,从所述电子设备传输所述导致所述执行的结果。

27.根据权利要求1-26中任一项所述的方法,其中对于至少两个分 立的任务重复所述估计和所述确定。

28.根据权利要求1-27中任一项所述的方法,其中所述导致所述执 行还包括:

将可执行代码存储在所述电子设备上;

其中所述导致所述执行包括导致在所述电子设备上执行所 存储的代码。

29.根据权利要求1-28中任一项所述的方法,其中所述用户请求是 非结构化自然语言格式。

30.根据权利要求1-29中任一项所述的方法,其中所述至少一个性 能特征包括所估计的完成所述至少一个任务的持续时间。

31.根据权利要求1-30中任一项所述的方法,其中所述虚拟助理分 布在所述电子设备和所述服务器之间,并且其中传输所述可执 行代码包括传输所述可执行代码给所述服务器。

32.根据权利要求1-31中任一项所述的方法,其中传输所述可执行 代码包括传输所述可执行代码给第二电子设备。

33.根据权利要求32所述的方法,其中所述第二电子设备通过本地 网络连接到所述电子设备。

34.根据权利要求1-33中任一项所述的方法,其中传输所述可执行 代码包括传输所述可执行代码给第二电子设备;

所述方法还包括在所述第二电子设备处满足所述用户请 求。

35.一种电子设备,包括:

一个或多个处理器;

存储器;以及

一个或多个程序,其中所述一个或多个程序存储在所述存 储器中并被配置为由所述一个或多个处理器执行,所述一个或 多个程序包括用于执行根据权利要求1-34所述的方法中的任一 方法的指令。

36.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储 介质存储一个或多个程序,所述一个或多个程序包括指令,所 述指令当由具有显示器的电子设备的一个或多个处理器执行 时,使得所述设备执行根据权利要求1-34所述的方法中的任一 种方法。

37.一种电子设备,包括用于执行权利要求1-34中任一项的装置。

38.一种电子设备,包括:

显示器;

存储器;

麦克风;

传输器;

接收器;以及

耦接至所述显示器、所述存储器、所述麦克风、所述传输 器和所述接收器的处理器;所述处理器被配置为:

接收针对来自虚拟助理的服务的用户请求;

确定响应于所述用户请求执行至少一个任务;

基于至少一个启发,估计以所述电子设备完成所述至少一 个任务的至少一个性能特征;

基于所述估计,确定是否在所述电子设备处执行所述至少 一个任务;

根据确定在所述电子设备处执行所述至少一个任务,导致 在所述电子设备处执行所述至少一个任务;

根据确定在所述电子设备之外执行所述至少一个任务:

生成用于执行所述至少一个任务的可执行代码;以及

从所述电子设备传输所述可执行代码。

39.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储 介质存储一个或多个程序,所述一个或多个程序包括指令,所 述指令当由电子设备执行时,使得所述电子设备:

接收针对来自虚拟助理的服务的用户请求;

确定响应于所述用户请求执行至少一个任务;

基于至少一个启发,估计以所述电子设备完成所述至少一 个任务的至少一个性能特征;

基于所述估计,确定是否在所述电子设备处执行所述至少 一个任务;

根据确定在所述电子设备处执行所述至少一个任务,导致 在所述电子设备处执行所述至少一个任务;

根据确定在所述电子设备之外执行所述至少一个任务:

生成用于执行所述至少一个任务的可执行代码;以及

从所述电子设备传输所述可执行代码。

40.一种利用具有显示器的电子设备的系统,所述系统包括:

用于接收针对来自虚拟助理的服务的用户请求的装置;

用于确定响应于所述用户请求执行至少一个任务的装置;

用于基于至少一个启发估计以所述电子设备完成所述至少 一个任务的至少一个性能特征的装置;

基于所述估计,用于确定是否在所述电子设备处执行所述 至少一个任务的装置;

根据确定在所述电子设备处执行所述至少一个任务,用于 导致在所述电子设备处执行所述至少一个任务的装置;

根据确定在所述电子设备之外执行所述至少一个任务:

用于生成用于执行所述至少一个任务的可执行代码的装 置;以及

用于从所述电子设备传输所述可执行代码的装置。

41.一种电子设备,包括:

处理单元,所述处理单元包括传输单元、接收单元、确定 单元、估计单元、导致单元、和生成单元;所述处理单元被配 置为:

使用所述接收单元接收针对来自虚拟助理的服务的用户请 求;

使用所述确定单元,确定响应于所述用户请求执行至少一 个任务;

使用所述估计单元,基于至少一个启发,估计以所述电子 设备完成所述至少一个任务的至少一个性能特征;

基于所述估计,使用所述确定单元确定是否在所述电子设 备处执行所述至少一个任务;

根据确定在所述电子设备处执行所述至少一个任务,使用 所述导致单元导致在所述电子设备处执行所述至少一个任务;

根据确定在所述电子设备之外执行所述至少一个任务:

使用所述生成单元生成用于执行所述至少一个任务的可执 行代码;以及

使用所述传输单元从所述电子设备传输所述可执行代码。

42.根据权利要求41所述的电子设备,其中所述电子设备包括电 池,其中所述至少一个启发包括所述电子设备的电池寿命。

43.根据权利要求41-42中任一项所述的电子设备,其中所述至少 一个启发包括所述电子设备处符合IEEE 802.11x标准的高频无 线联网服务的可用性。

44.根据权利要求41-43中任一项所述的电子设备,其中所述至少 一个启发包括所述电子设备可用的网络速度。

45.根据权利要求41-44中任一项所述的电子设备,其中所述至少 一个启发包括所述电子设备的可用存储器空间。

46.根据权利要求41-45中任一项所述的电子设备,其中所述至少 一个启发包括所述电子设备的处理速度。

47.根据权利要求41-46中任一项所述的电子设备,其中所述至少 一个启发包括所述电子设备的操作系统。

48.根据权利要求41-47中任一项所述的电子设备,其中所述至少 一个启发包括所述电子设备处的可用缓存空间。

49.根据权利要求41-48中任一项所述的电子设备,其中所述至少 一个启发包括电子设备的类型。

50.根据权利要求41-49中任一项所述的电子设备,其中所述至少 一个启发包括与所述至少一个任务相关联的隐私设置。

51.根据权利要求41-50中任一项所述的电子设备,其中所述至少 一个启发包括与所述至少一个任务相关联的数据传输限制。

52.根据权利要求41-51中任一项所述的电子设备,其中所述至少 一个启发包括所述电子设备的位置。

53.根据权利要求41-52中任一项所述的电子设备,其中所述至少 一个启发包括所述至少一个任务的特征。

54.根据权利要求41-53中任一项所述的电子设备,其中所述至少 一个启发包括与所述任务相关联的用户偏好。

55.根据权利要求41-54中任一项所述的电子设备,其中所述至少 一个任务包括语境解析。

56.根据权利要求41-55中任一项所述的电子设备,其中所述至少 一个任务包括语音识别。

57.根据权利要求41-56中任一项所述的电子设备,其中所述至少 一个任务包括自动语音识别。

58.根据权利要求41-57中任一项所述的电子设备,其中所述至少 一个任务包括域分类。

59.根据权利要求41-58中任一项所述的电子设备,其中所述至少 一个任务包括自然语言分析。

60.根据权利要求41-59中任一项所述的电子设备,其中所述至少 一个任务包括查询解析。

61.根据权利要求41-60中任一项所述的电子设备,其中所述至少 一个任务包括自然语言合成。

62.根据权利要求41-61中任一项所述的电子设备,其中所述至少 一个任务包括用户接口解析。

63.根据权利要求41-62中任一项所述的电子设备,其中所述至少 一个任务包括文本-语音转换。

64.根据权利要求41-63中任一项所述的电子设备,还包括:

响应于从所述电子设备传输可执行代码,所述处理单元被 配置为使用所述接收单元接收与所述可执行代码的执行相关联 的信息。

65.根据权利要求41-64中任一项所述的电子设备,其中所述处理 单元被配置为使用所述导致单元导致所述执行是使用所述电子 设备上的个人数据来执行,其中个人数据保持在所述电子设备 上。

66.根据权利要求41-65中任一项所述的电子设备,其中所述处理 单元被配置为使用所述导致单元导致所述执行是在所述电子设 备处在沙箱中执行。

67.根据权利要求41-66中任一项所述的电子设备,其中在所述导 致所述执行之后,所述处理单元被配置为使用所述传输单元从 所述电子设备传输所述导致所述执行的结果。

68.根据权利要求41-67中任一项所述的电子设备,其中所述处理 单元被配置为对于至少两个分立的任务,使用所述估计单元进 行估计并使用所述确定单元进行确定。

69.根据权利要求41-68中任一项所述的电子设备,其中所述处理 单元还包括存储单元;其中所述处理单元被进一步配置为使用 所述导致单元导致以下动作的执行:

使用所述存储单元将可执行代码存储在所述电子设备上;

使用所述导致单元导致在所述电子设备上执行所存储的代 码。

70.根据权利要求41-69中任一项所述的电子设备,其中所述用户 请求是非结构化自然语言格式。

71.根据权利要求41-70中任一项所述的电子设备,其中一个性能 特征是所估计的完成所述至少一个任务的持续时间。

72.根据权利要求41-71中任一项所述的电子设备,其中所述虚拟 助理分布在所述电子设备和所述服务器之间,并且其中所述处 理单元被配置为使用所述传输单元传输所述可执行代码给所述 服务器。

73.根据权利要求41-72中任一项所述的电子设备,其中所述处理 单元被配置为使用所述传输单元传输所述可执行代码给第二电 子设备。

74.根据权利要求73所述的电子设备,其中所述第二电子设备通过 本地网络连接到所述电子设备。

75.一种使用分布在服务器和电子设备之间的虚拟助理的方法,包 括:

接收针对来自虚拟助理的服务的用户请求;

确定响应于所述用户请求执行至少一个任务;

基于至少一个启发,估计以所述服务器完成所述至少一个 任务的至少一个性能特征;

基于所述估计,确定是否在所述服务器处执行所述至少一 个任务;

根据确定在所述服务器处执行所述至少一个任务,导致在 所述服务器处执行所述至少一个任务;

根据确定在所述服务器之外执行所述至少一个任务:

生成用于执行所述至少一个任务的可执行代码;以及

从所述服务器传输所述可执行代码。

76.根据权利要求75所述的方法,其中所述至少一个启发包括所述 电子设备和所述服务器之间的网络延迟。

77.根据权利要求75-76中任一项所述的方法,其中所述至少一个 启发包括所述服务器可用的网络速度。

78.根据权利要求75-77中任一项所述的方法,其中所述至少一个 启发包括所述服务器处的负荷。

79.根据权利要求75-78中任一项所述的方法,其中所述至少一个 启发包括所述服务器处的可用容量。

80.根据权利要求75-79中任一项所述的方法,其中所述至少一个 启发包括服务器状态。

81.根据权利要求75-80中任一项所述的方法,其中所述至少一个 启发包括与所述至少一个任务相关联的隐私设置。

82.根据权利要求75-81中任一项所述的方法,其中所述至少一个 启发包括与所述至少一个任务相关联的数据传输限制。

83.根据权利要求75-82中任一项所述的方法,其中所述至少一个 启发包括所述至少一个任务的特征。

84.根据权利要求75-83中任一项所述的方法,其中所述至少一个 启发包括所述服务器处的业务量。

85.根据权利要求75-84中任一项所述的方法,其中所述至少一个 启发包括与所述任务相关联的用户偏好。

86.根据权利要求75-85中任一项所述的方法,其中所述至少一个 启发包括所述服务器处的数据连接的特征。

87.根据权利要求75-86中任一项所述的方法,还包括:

响应于所述传输,在所述服务器处接收与所述可执行代码 的执行相关联的信息。

88.根据权利要求75-87中任一项所述的方法,还包括在所述导致 所述执行之后,从所述服务器传输所述导致所述执行的结果。

89.根据权利要求75-88中任一项所述的方法,其中对于至少两个 分立的任务重复所述估计和所述确定。

90.根据权利要求75-89中任一项所述的方法,其中所述导致所述 执行还包括:

将可执行代码存储在所述服务器上;

其中所述导致所述执行包括在所述服务器上执行所存储的 代码。

91.根据权利要求75-90中任一项所述的方法,其中所述虚拟助理 分布在所述电子设备和所述服务器之间,并且其中传输所述可 执行代码包括传输所述可执行代码给所述电子设备。

92.根据权利要求75-91中任一项所述的方法,其中传输所述可执 行代码包括传输所述可执行代码给第二电子设备。

93.根据权利要求75-92中任一项所述的方法,其中传输所述可执 行代码包括传输所述可执行代码给第二电子设备;

所述方法还包括在所述第二电子设备处满足所述用户请 求。

94.一种电子设备,包括:

一个或多个处理器;

存储器;以及

一个或多个程序,其中所述一个或多个程序存储在所述存 储器中并被配置为由所述一个或多个处理器执行,所述一个或 多个程序包括用于执行根据权利要求75-93所述的方法中的任 一方法的指令。

95.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储 介质存储一个或多个程序,所述一个或多个程序包括指令,所 述指令当由具有显示器的电子设备的一个或多个处理器执行 时,使得所述设备执行根据权利要求75-93所述的方法中的任 一种方法。

96.一种电子设备,包括用于执行权利要求75-93中任一项的装 置。

97.一种电子设备,包括:

存储器;

传输器;

接收器;以及

耦接至所述存储器、所述传输器和所述接收器的处理器; 所述处理器被配置为:

接收针对来自虚拟助理的服务的用户请求;

确定响应于所述用户请求执行至少一个任务;

基于至少一个启发,估计以所述服务器完成所述至少一个 任务的至少一个性能特征;

基于所述估计,确定是否在所述服务器处执行所述至少一 个任务;

根据确定在所述服务器处执行所述至少一个任务,导致在 所述服务器处执行所述至少一个任务;

根据确定在所述服务器之外执行所述至少一个任务:

生成用于执行所述至少一个任务的可执行代码;以及

从所述服务器传输所述可执行代码。

98.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储 介质存储一个或多个程序,所述一个或多个程序包括指令,所 述指令当由电子设备执行时,使得所述电子设备:

接收针对来自虚拟助理的服务的用户请求;

确定响应于所述用户请求执行至少一个任务;

基于至少一个启发,估计以所述服务器完成所述至少一个 任务的至少一个性能特征;

基于所述估计,确定是否在所述服务器处执行所述至少一 个任务;

根据确定在所述服务器处执行所述至少一个任务,导致在 所述服务器处执行所述至少一个任务;

根据确定在所述服务器之外执行所述至少一个任务:

生成用于执行所述至少一个任务的可执行代码;以及

从所述服务器传输所述可执行代码。

99.一种利用具有显示器的电子设备的系统,所述系统包括:

用于接收针对来自虚拟助理的服务的用户请求的装置;

用于确定响应于所述用户请求执行至少一个任务的装置;

用于基于至少一个启发估计以所述服务器完成所述至少一 个任务的至少一个性能特征的装置;

基于所述估计,用于确定是否在所述服务器处执行所述至 少一个任务的装置;

根据确定在所述服务器处执行所述至少一个任务,用于导 致在所述服务器处执行所述至少一个任务的装置;

根据确定在所述服务器之外执行所述至少一个任务:

用于生成用于执行所述至少一个任务的可执行代码的装 置;以及

用于从所述服务器传输所述可执行代码的装置。

100.一种服务器,所述服务器包括:

处理单元,所述处理单元包括接收单元、传输单元、确定 单元、估计单元、生成单元、和导致单元;所述处理单元被配 置为:

接收针对来自虚拟助理的服务的用户请求;

确定响应于所述用户请求执行至少一个任务;

基于至少一个启发,估计以所述服务器完成所述至少一个 任务的至少一个性能特征;

基于所述估计,确定是否在所述服务器处执行所述至少一 个任务;

根据确定在所述服务器处执行所述至少一个任务,导致在 所述服务器处执行所述至少一个任务;

根据确定在所述服务器之外执行所述至少一个任务:

生成用于执行所述至少一个任务的可执行代码;以及

从所述服务器传输所述可执行代码。

101.根据权利要求100所述的服务器,其中所述至少一个启发包括 所述服务器和电子设备之间的网络延迟。

102.根据权利要求100-101中任一项所述的服务器,其中所述至少 一个启发包括所述服务器可用的网络速度。

103.根据权利要求100-102中任一项所述的服务器,其中所述至少 一个启发包括所述服务器处的负荷。

104.根据权利要求100-103中任一项所述的服务器,其中所述至少 一个启发包括所述服务器处的可用容量。

105.根据权利要求100-104中任一项所述的服务器,其中所述至少 一个启发包括服务器状态。

106.根据权利要求100-105中任一项所述的服务器,其中所述至少 一个启发包括与所述至少一个任务相关联的隐私设置。

107.根据权利要求100-106中任一项所述的服务器,其中所述至少 一个启发包括与所述至少一个任务相关联的数据传输限制。

108.根据权利要求100-107中任一项所述的服务器,其中所述至少 一个启发包括所述至少一个任务的特征。

109.根据权利要求100-108中任一项所述的服务器,其中所述至少 一个启发包括所述服务器处的业务量。

110.根据权利要求100-109中任一项所述的服务器,其中所述至少 一个启发包括与所述任务相关联的用户偏好。

111.根据权利要求100-110中任一项所述的服务器,其中所述至少 一个启发包括从所述服务器到服务提供方的连接的特征。

112.根据权利要求100-111中任一项所述的服务器,还包括:

响应于所述传输,所述处理单元被配置为使用所述接收单 元接收与所述可执行代码的执行相关联的信息。

113.根据权利要求100-112中任一项所述的服务器,其中所述处理 单元被进一步配置为在使用所述导致单元导致所述执行之后:

使用所述传输单元从所述服务器传输所述导致所述执行的 结果。

114.根据权利要求100-113中任一项所述的服务器,其中所述处理 单元被配置为对于至少两个分立的任务,使用所述估计单元进 行估计并使用所述确定单元进行确定。

115.根据权利要求100-114中任一项所述的服务器,其中所述处理 单元还包括存储单元;其中所述处理单元被进一步配置为使用 所述导致单元导致以下动作的执行:

使用所述存储单元将可执行代码存储在所述服务器上;

使用所述导致单元导致在所述服务器上执行所存储的代 码。

116.根据权利要求100-115中任一项所述的服务器,其中所述虚拟 助理分布在所述服务器和电子设备之间,并且其中所述处理单 元被配置为使用所述传输单元传输所述可执行代码给所述电子 设备。

117.根据权利要求116所述的服务器,其中所述处理单元被配置为 使用所述传输单元传输所述可执行代码给第二电子设备。

118.一种使用分布在服务器和客户端之间的虚拟助理的方法,包 括:

在电子设备处接收针对来自虚拟助理的服务的用户请求;

确定响应于所述用户请求执行多个任务;

基于至少一个启发,估计以所述电子设备和以所述服务器 完成至少一个任务的至少一个性能特征;

基于所述估计,确定是否在所述电子设备和所述服务器中 的一者处执行所述至少一个任务;

根据确定在所述电子设备处执行所述至少一个任务,导致 在所述电子设备处执行所述至少一个任务;

根据确定在所述服务器处执行所述至少一个任务,导致在 所述服务器处执行所述至少一个任务。

119.根据权利要求118所述的方法,其中所述电子设备包括电池, 其中所述至少一个启发包括所述电子设备的电池寿命。

120.根据权利要求118-119中任一项所述的方法,其中所述至少一 个启发包括所述电子设备处符合IEEE 802.11x标准的高频无线 联网带宽的可用性。

121.根据权利要求118-120中任一项所述的方法,其中所述至少一 个启发包括所述电子设备和所述服务器之间的网络延迟。

122.根据权利要求118-121中任一项所述的方法,其中所述至少一 个启发包括所述电子设备和所述服务器可用的网络速度。

123.根据权利要求118-122中任一项所述的方法,其中所述至少一 个启发包括所述电子设备和所述服务器之间的连接状态。

124.根据权利要求118-123中任一项所述的方法,其中所述至少一 个启发包括所述服务器处的负荷。

125.根据权利要求118-124中任一项所述的方法,其中所述至少一 个启发包括所述服务器处的可用容量。

126.根据权利要求118-125中任一项所述的方法,其中所述至少一 个启发包括服务器状态。

127.根据权利要求118-126中任一项所述的方法,其中所述至少一 个启发包括所述电子设备的可用存储器空间。

128.根据权利要求118-127中任一项所述的方法,其中所述至少一 个启发包括所述电子设备的处理速度。

129.根据权利要求118-128中任一项所述的方法,其中所述至少一 个启发包括所述电子设备的操作系统。

130.根据权利要求118-129中任一项所述的方法,其中所述至少一 个启发包括所述电子设备处的可用缓存空间。

131.根据权利要求118-130中任一项所述的方法,其中所述至少一 个启发包括电子设备的类型。

132.根据权利要求118-131中任一项所述的方法,其中所述至少一 个启发包括与所述至少一个任务相关联的隐私设置。

133.根据权利要求118-132中任一项所述的方法,其中所述至少一 个启发包括与所述至少一个任务相关联的数据传输限制。

134.根据权利要求118-133中任一项所述的方法,其中所述至少一 个启发包括所述电子设备的位置。

135.根据权利要求118-134中任一项所述的方法,其中所述至少一 个启发包括所述至少一个任务的特征。

136.根据权利要求118-135中任一项所述的方法,其中所述至少一 个启发包括所述服务器处的业务量。

137.根据权利要求118-136中任一项所述的方法,其中所述至少一 个启发包括与所述任务相关联的用户偏好。

138.根据权利要求118-137中任一项所述的方法,其中所述至少一 个启发包括从所述服务器到服务提供方的连接的特征。

139.根据权利要求118-138中任一项所述的方法,还包括在所述电 子设备和所述服务器二者处保持每个任务的状态。

140.根据权利要求118-139中任一项所述的方法,其中所述估计包 括:

确定所述电子设备和所述服务器中每一者能够执行所述至 少一个任务的速度;以及

将所述电子设备能够执行所述至少一个任务的速度与所述 服务器能够执行该任务的速度进行比较。

141.根据权利要求140所述的方法,其中所述比较包括确定所述电 子设备能够执行至少一个任务的速度与所述服务器能够执行该 任务的速度之间的差值大于阈值;并且还包括:响应于确定所 述差值大于所述阈值,选择所述电子设备和所述服务器中较快 者执行至少一个任务。

142.根据权利要求140所述的方法,其中所述比较包括确定所述电 子设备能够执行所述至少一个任务的速度与所述服务器能够执 行该任务的速度之间的差值小于阈值;并且还包括:响应于确 定所述差值小于所述阈值:

导致所述电子设备和所述服务器二者执行所述至少一个任 务;

在所述电子设备处利用所述电子设备和所述服务器中第一 者执行所述至少一个任务的结果;以及

在所述电子设备处丢弃所述电子设备和所述服务器中第二 者执行所述至少一个任务的结果。

143.根据权利要求118-142中任一项所述的方法,其中所述导致所 述执行包括:

在所述电子设备和所述服务器中的一者处生成用于执行所 述至少一个任务的可执行代码;

将所生成的可执行代码传输给所述电子设备和所述服务器 中的另一者;以及

在所述电子设备和所述服务器中接收所述可执行代码的一 者处执行所述可执行代码。

144.根据权利要求143所述的方法,其中所述执行是在沙箱中执行 的。

145.根据权利要求118-144中任一项所述的方法,还包括在所述导 致所述执行之后,从所述电子设备传输所述导致所述执行的结 果。

146.一种电子设备,包括:

一个或多个处理器;

存储器;以及

一个或多个程序,其中所述一个或多个程序存储在所述存 储器中并被配置为由所述一个或多个处理器执行,所述一个或 多个程序包括用于执行根据权利要求118-145所述的方法中的 任一方法的指令。

147.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储 介质存储一个或多个程序,所述一个或多个程序包括指令,所 述指令当由具有显示器的电子设备的一个或多个处理器执行 时,使得所述设备执行根据权利要求118-145所述的方法中的 任一种方法。

148.一种电子设备,包括用于执行权利要求118-145中任一项的装 置。

149.一种电子设备,包括:

显示器;

存储器;以及

耦接至所述显示器和所述存储器的处理器;所述处理器被 配置为:

在电子设备处接收针对来自虚拟助理的服务的用户请求;

确定响应于所述用户请求执行多个任务;

基于至少一个启发,估计以所述电子设备和以所述服务器 完成所述至少一个任务的至少一个性能特征;

基于所述估计,确定是否在所述电子设备和所述服务器中 的一者处执行所述至少一个任务;

根据确定在所述电子设备处执行所述至少一个任务,导致 在所述电子设备处执行所述至少一个任务;

根据确定在所述服务器处执行所述至少一个任务,导致在 所述服务器处执行所述至少一个任务。

150.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储 介质存储一个或多个程序,所述一个或多个程序包括指令,所 述指令当由电子设备执行时,使得所述电子设备:

接收针对来自虚拟助理的服务的用户请求;

确定响应于所述用户请求执行多个任务;

基于至少一个启发,估计以所述电子设备和以所述服务器 完成所述至少一个任务的至少一个性能特征;

基于所述估计,确定是否在所述电子设备和所述服务器中 的一者处执行所述至少一个任务;

根据确定在所述电子设备处执行所述至少一个任务,导致 在所述电子设备处执行所述至少一个任务;

根据确定在所述服务器处执行所述至少一个任务,导致在 所述服务器处执行所述至少一个任务。

151.一种利用具有显示器的电子设备的系统,所述系统包括:

用于在电子设备处接收针对来自虚拟助理的服务的用户请 求的装置;

用于确定响应于所述用户请求执行多个任务的装置;

用于基于至少一个启发估计以所述电子设备和以所述服务 器完成所述至少一个任务的至少一个性能特征的装置;

基于所述估计,用于确定是否在所述电子设备和所述服务 器中的一者处执行所述至少一个任务的装置;

根据确定在所述电子设备处执行所述至少一个任务,用于 导致在所述电子设备处执行所述至少一个任务的装置;

根据确定在所述服务器处执行所述至少一个任务,用于导 致在所述服务器处执行所述至少一个任务的装置。

152.一种第一电子设备,包括:

处理单元,所述处理单元包括接收单元、确定单元、估计 单元、和导致单元;所述处理单元被配置为:

使用所述接收单元在所述第一电子设备处接收针对来自虚 拟助理的服务的用户请求;

使用所述确定单元,确定响应于所述用户请求执行多个任 务;

使用所述估计单元,基于至少一个启发,估计以所述第一 电子设备和以第二电子设备完成所述至少一个任务的至少一个 性能特征;

基于所述估计,使用所述确定单元确定是否在所述第一电 子设备和所述第二电子设备中的一者处执行所述至少一个任 务;

根据确定在所述第一电子设备处执行所述至少一个任务, 使用所述导致单元导致在所述第一电子设备处执行所述至少一 个任务;

根据确定在所述第二电子设备处执行所述至少一个任务, 使用所述导致单元导致在所述第二电子设备处执行所述至少一 个任务。

153.根据权利要求152所述的第一电子设备,其中所述第一电子设 备包括电池,并且其中所述至少一个启发包括所述电子设备的 电池寿命。

154.根据权利要求152-153中任一项所述的第一电子设备,其中所 述至少一个启发包括所述第一电子设备处符合IEEE 802.11x标 准的高频无线联网带宽的可用性。

155.根据权利要求152-154中任一项所述的第一电子设备,其中所 述至少一个启发包括所述第一电子设备和所述第二电子设备之 间的网络延迟。

156.根据权利要求152-155中任一项所述的第一电子设备,其中所 述至少一个启发包括所述第一电子设备和所述第二电子设备可 用的网络速度。

157.根据权利要求152-156中任一项所述的第一电子设备,其中所 述至少一个启发包括所述第一电子设备和所述第二电子设备之 间的连接状态。

158.根据权利要求152-157中任一项所述的第一电子设备,其中所 述至少一个启发包括所述第二电子设备处的负荷。

159.根据权利要求152-158中任一项所述的第一电子设备,其中所 述至少一个启发包括所述第二电子设备处的可用容量。

160.根据权利要求152-159中任一项所述的第一电子设备,其中所 述至少一个启发包括所述第二电子设备的状态。

161.根据权利要求152-160中任一项所述的第一电子设备,其中所 述至少一个启发包括所述第一电子设备的可用存储器空间。

162.根据权利要求152-161中任一项所述的第一电子设备,其中所 述至少一个启发包括所述第一电子设备的处理速度。

163.根据权利要求152-162中任一项所述的第一电子设备,其中所 述至少一个启发包括所述第一电子设备的操作系统。

164.根据权利要求152-163中任一项所述的第一电子设备,其中所 述至少一个启发包括所述第一电子设备处的可用缓存空间。

165.根据权利要求152-164中任一项所述的第一电子设备,其中所 述至少一个启发包括第一电子设备的类型。

166.根据权利要求152-165中任一项所述的第一电子设备,其中所 述至少一个启发包括与所述至少一个任务相关联的隐私设置。

167.根据权利要求152-166中任一项所述的第一电子设备,其中所 述至少一个启发包括与所述至少一个任务相关联的数据传输限 制。

168.根据权利要求152-167中任一项所述的第一电子设备,其中所 述至少一个启发包括所述第二电子设备的位置。

169.根据权利要求152-168中任一项所述的第一电子设备,其中所 述至少一个启发包括所述第一电子设备的位置。

170.根据权利要求152-169中任一项所述的第一电子设备,其中所 述至少一个启发包括所述至少一个任务的特征。

171.根据权利要求152-170中任一项所述的第一电子设备,其中所 述至少一个启发包括所述第二电子设备处的业务量。

172.根据权利要求152-171中任一项所述的第一电子设备,其中所 述至少一个启发包括与所述任务相关联的用户偏好。

173.根据权利要求152-172中任一项所述的第一电子设备,其中所 述至少一个启发包括从所述第二电子设备到服务提供方的连接 的特征。

174.根据权利要求152-173中任一项所述的第一电子设备,其中所 述处理单元还包括保持单元,并且其中所述保持单元被配置 为:

在所述第一电子设备和所述第二电子设备二者处保持每个任务的状 态。

175.根据权利要求152-174中任一项所述的第一电子设备,其中所 述处理单元还包括比较单元;其中所述处理单元被进一步配置 为使用所述确定单元确定是否在所述第一电子设备和所述第二 电子设备中的一者处执行所述至少一个任务;所述处理单元被 配置为:

使用所述确定单元确定所述第一电子设备和所述第二电子 设备中每一者能够执行所述至少一个任务的速度;以及

使用所述估计单元估计所述第一电子设备能够执行所述至 少一个任务的速度和所述第二电子设备能够执行该任务的速 度。

176.根据权利要求175所述的第一电子设备,其中所述处理单元被 进一步配置为使用所述确定单元确定所述第一电子设备能够执 行所述至少一个任务的速度与所述第二电子设备能够执行该任 务的速度之间的差值大于阈值;并且其中所述处理单元被进一 步配置为:

响应于确定所述差值大于所述阈值,使用所述确定单元确 定所述第一电子设备和所述第二电子设备中较快者执行所述至 少一个任务。

177.根据权利要求175所述的第一电子设备,其中所述处理单元被 进一步配置为使用所述确定单元确定所述第一电子设备能够执 行所述至少一个任务的速度与所述第二电子设备能够执行该任 务的速度之间的差值小于阈值;并且其中所述处理单元被进一 步配置为:

响应于确定所述差值小于所述阈值,使用所述导致单元导 致所述第一电子设备和所述第二电子设备二者执行所述至少一 个任务;

使用所述导致单元在所述第一电子设备处导致所述第一电 子设备和所述第二电子设备中第一者被用于执行所述至少一个 任务的结果;以及

使用所述导致单元在所述第一电子设备处导致所述第一电 子设备和所述第二电子设备中第二者执行所述至少一个任务的 结果被丢弃。

178.根据权利要求152-177中任一项所述的第一电子设备,其中所 述处理单元还包括生成单元;并且其中所述处理单元被进一步 配置为使用所述导致单元导致所述执行:所述处理单元被配置 为:

使用所述生成单元在所述第一电子设备和所述第二电子设 备中的一者处生成用于执行所述至少一个任务的可执行代码;

使用所述传输单元将所生成的可执行代码传输给所述第一 电子设备和所述第二电子设备中的另一者;以及

使用所述导致单元导致在所述第一电子设备和所述第二电 子设备中接收所述可执行代码的一者处执行所述可执行代码。

处于解释的目的,已经参考具体实施方案对上述描述进行了描述。然 而,上面的示例性讨论并非旨在为穷尽的或将本发明限制为所公开的精确 形式。根据以上教导内容,很多修改形式和变型形式均为可能的。选择并 描述这些实施方案是为了最好地解释这些技术的原理及其实际应用。本领 域的其他技术人员由此能够最好地利用这些技术以及具有适合于所设想的 特定用途的各种修改的各种实施方案。

虽然参照附图对本公开以及示例进行了全面的描述,但应当注意,各 种变化和修改对于本领域内的技术人员而言将变得显而易见。应当理解, 此类变化和修改被认为被包括在由权利要求书所限定的本公开和示例的范 围内。

如上文所述,本发明技术的一个方面在于采集和使用得自各种来源的 数据,以改进向用户递送其可能感兴趣的内容。本公开设想,在一些实例 中,该所采集的数据可包括唯一地识别或可用于联系或定位特定人员的个 人信息数据。此类个人信息数据可包括人口数据、基于位置的数据、电话 号码、电子邮件地址、家庭地址或任何其他识别信息。

本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受 益。例如,该个人信息数据可用于递送用户较感兴趣的目标内容。因此, 使用此类个人信息数据使得能够对所递送的内容进行有计划的控制。此 外,本公开还设想个人信息数据有益于用户的其他用途。

本公开还预期负责此类个人信息数据的收集、分析、公开、传输、存 储或其他用途的实体将遵守已确立的隐私政策和/或隐私实践。具体地,此 类实体应实施并坚持使用被公认为满足或超出对维护个人信息数据的隐私 性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个人 信息应被收集用于实体的合法且合理的用途,并且不在这些合法使用之外 共享或出售。另外,此类收集应仅在用户知情同意之后进行。此外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据的访问, 并且确保有权访问个人信息数据的其他人遵守他们的隐私政策和程序。另 外,此类实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政 策和实践。

不管前述情况如何,本公开还设想用户选择性地阻止使用或访问个人 信息数据的实施方案。即本公开设想可提供硬件元件和/或软件元件,以防 止或阻止对此类个人信息数据的访问。例如,就广告递送服务而言,本发 明的技术可被配置为在注册服务期间允许用户选择“加入”或“退出”参 与对个人信息数据的收集。又如,用户可选择不为目标内容递送服务提供 位置信息。再如,用户可选择不提供精确的位置信息,但准许传输位置区 域信息。

因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个 各种所公开的实施方案,但本公开还设想各种实施方案也可在无需访问此 类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由 于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可通过 基于非个人信息数据或绝对最低限度的个人信息诸如与用户相关联的设备 所请求的内容、对内容递送服务可用的其他非个人信息或公开可用信息来 推断偏好,从而选择内容并递送至用户。

相关技术
  • 个人数字助理以及个人数字助理的按键装置
  • 分布式个人助理
技术分类

06120113117618