CN112732623A - 数字助理硬件抽象 - Google Patents

数字助理硬件抽象 Download PDF

Info

Publication number
CN112732623A
CN112732623A CN202011003474.3A CN202011003474A CN112732623A CN 112732623 A CN112732623 A CN 112732623A CN 202011003474 A CN202011003474 A CN 202011003474A CN 112732623 A CN112732623 A CN 112732623A
Authority
CN
China
Prior art keywords
context
electronic device
sharing group
collector
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011003474.3A
Other languages
English (en)
Inventor
B·汉森
N·戈特比
桂一枫
X·黄
B·S·菲普斯
E·雷
M·R·尚巴尔
J·泰卡罗
S·瓦特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/990,868 external-priority patent/US11038934B1/en
Application filed by Apple Inc filed Critical Apple Inc
Priority claimed from CN202010998524.XA external-priority patent/CN113641619A/zh
Publication of CN112732623A publication Critical patent/CN112732623A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/02Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开涉及数字助理硬件抽象。本公开涉及智能自动化助理,并且更具体地讲,涉及在具有智能自动化助理能力的设备的集合中的智能上下文共享和任务执行。一种示例性方法包括,在参与与第一位置相关联的上下文共享组的第一电子设备处:接收用户语音输入;从上下文收集器接收所述上下文共享组的聚合上下文;向远程设备提供所述聚合上下文的至少一部分和与所述用户语音输入对应的数据;从所述远程设备接收用于执行一个或多个任务的命令和对应于第二电子设备的设备标识符;并且基于所述设备标识符将所述命令发送到所述第二电子设备,其中所述命令使得所述第二电子设备执行所述一个或多个任务。

Description

数字助理硬件抽象
分案声明
本申请是申请日为2020年9月21日、发明名称为“数字助理硬件抽 象”、申请号为:202010998524.X的中国发明专利申请的分案申请。
技术领域
本公开整体涉及智能自动化助理,并且更具体地讲,涉及具有智能自 动化助理能力的设备的集合中的智能上下文共享和任务执行。
背景技术
智能自动化助理(或数字助理)可在人类用户与电子设备之间提供有 利界面。此类助理可允许用户使用自然语言以语音形式和/或文本形式与设 备或系统进行交互。例如,用户可向正在电子设备上运行的数字助理提供 包含用户请求的语音输入。数字助理可从该语音输入解译用户意图并且将 用户意图操作化成任务。随后可通过执行电子设备的一项或多项服务来执 行这些任务,并且可将响应于用户请求的相关输出返回给用户。
发明内容
诸如家庭或办公室的位置可包含具有数字助理能力的多个设备。因此, 可能期望该多个设备彼此共享上下文信息,使得该多个设备的数字助理可 基于例如在每个设备处发生(以及最近发生)的事件、用户相对于每个设 备的位置和/或任务需要什么设备能力来响应于用户请求智能地协调任务的 执行。这样,即使用户不直接向设备的数字助理提供用户请求,用户请求 的任务也可在该多个设备中的一个设备处执行。这继而创建了跨多个设备 与用户交互的单个数字助理的外观,而不是在多个设备中的每个设备处的 多个单独数字助理。
本文公开了示例方法。一种示例性方法包括,在第一电子设备处:加 入与第一位置相关联的上下文共享组,其中所述上下文共享组是至少两个 电子设备的集合,所述电子设备各自与所述集合中包括的至少一个其他电 子设备共享上下文信息,并且其中所述集合包括至少第二电子设备。在加 入所述上下文共享组之后,挑选所述至少两个电子设备的集合中的一个电 子设备作为所述上下文共享组的上下文收集器,其中挑选所述上下文收集 器包括:至少基于所述第一电子设备与所述第一位置的无线网络之间的连 接性的强度来确定与所述第一电子设备对应的第一上下文收集器得分;从 至少所述第二电子设备接收与至少所述第二电子设备对应的一个或多个上 下文收集器得分;以及基于所述第一上下文收集器得分和与至少所述第二 电子设备对应的所述一个或多个上下文收集器得分,确定挑选所述上下文 共享组中包括的所述电子设备中的哪个电子设备作为所述上下文共享组的 所述上下文收集器。根据确定挑选所述第一电子设备作为所述上下文收集 器,响应于至少所述第二电子设备经历设备状态改变而从至少所述第二电 子设备接收上下文信息。
另一种示例性方法包括,在参与与第一位置相关联的上下文共享组的 第一电子设备处,其中所述上下文共享组是至少两个电子设备的集合,所 述电子设备各自与所述集合中包括的至少一个其他电子设备共享上下文信 息,并且其中所述集合包括至少第二电子设备和上下文收集器:接收用户 语音输入;从所述上下文收集器接收所述上下文共享组的聚合上下文;在 接收到所述聚合上下文之后,向不参与所述上下文共享组的远程设备提供 所述聚合上下文的至少一部分和与所述用户语音输入对应的数据;从所述 远程设备接收用于执行一个或多个任务的命令和与所述第二电子设备对应 的设备标识符,其中所述远程设备基于与所述用户语音输入对应的所述数 据和在所述聚合上下文的所述至少一部分中包括的上下文信息来确定所述 一个或多个任务和所述设备标识符;并且基于所述设备标识符将所述命令 发送到所述第二电子设备,其中所述命令使得所述第二电子设备执行所述 一个或多个任务。
另一种示例性方法包括,在一个或多个服务器处:从参与与第一位置 相关联的上下文共享组的第一电子设备接收用户语音输入以及所述上下文 共享组的聚合上下文的至少一部分,其中所述上下文共享组是多个电子设 备的集合,所述电子设备各自与所述集合中包括的至少一个其他电子设备 共享上下文信息;基于所述用户语音输入来确定用户意图;确定与所述用 户意图对应的一个或多个任务;基于所述一个或多个任务和在所述聚合上 下文的所述至少一部分中包括的上下文信息来识别所述多个电子设备中的 第二电子设备以执行所述一个或多个任务;以及向第一电子设备发送用于 执行所述一个或多个任务的命令和与所述第二电子设备对应的设备标识符, 其中所述第一电子设备基于所述设备标识符将所述命令发送到所述第二电 子设备,并且其中所述命令使得所述第二电子设备执行所述一个或多个任 务。
另一种示例性方法包括,在参与与第一位置相关联的上下文共享组的 第一电子设备处,其中所述上下文共享组是多个电子设备的集合,所述电 子设备各自与所述集合中包括的至少一个其他电子设备共享上下文信息, 并且其中所述集合包括上下文收集器:接收用户语音输入;从所述上下文 收集器接收所述上下文共享组的聚合上下文;在接收到所述聚合上下文之 后,向不参与所述上下文共享组的远程设备提供所述聚合上下文的至少一 部分和与所述用户语音输入对应的数据,其中所述远程设备基于与所述用 户语音输入对应的所述数据来确定多个任务;从所述远程设备接收:用于 执行所述多个任务中的第一组任务的第一命令和用于执行所述多个任务中 的第二组任务的第二命令;以及与所述多个电子设备中的第二电子设备对 应的第一设备标识符和与所述多个电子设备中的第三电子设备对应的第二 设备标识符;基于所述第一设备标识符将所述第一命令发送到所述第二电 子设备,其中所述第一命令使得所述第二电子设备执行所述第一组任务; 以及基于所述第二设备标识符将所述第二命令发送到所述第三电子设备, 其中所述第二命令使得所述第三电子设备执行所述第二组任务。
另一种示例性方法包括,在包括参与与第一位置相关联的上下文共享 组的至少第一电子设备和第二电子设备的系统处,其中所述上下文共享组 是至少两个电子设备的集合,所述电子设备各自与所述集合中包括的至少 一个其他电子设备共享上下文信息,并且其中所述集合包括上下文收集器: 在所述第一电子设备处接收第一用户语音输入;在所述第一电子设备处, 基于所述第一用户语音输入输出第一数字助理响应,其中所述第一电子设 备在输出所述第一数字助理响应之后将包括所述第一电子设备的数字助理 对话会话历史的上下文信息发送到所述上下文收集器;在所述第二电子设 备处接收第二用户语音输入;在所述第二电子设备处,从所述上下文收集 器接收所述上下文共享组的更新的聚合上下文,其中所述更新的聚合上下 文包括所述第一电子设备的所述数字助理对话会话历史;以及在所述第二 电子设备处,基于所述第二用户语音输入和所述第一电子设备的所述数字 助理对话历史输出第二数字助理响应。
另一种示例性方法包括,在参与与第一位置相关联的上下文共享组的 第一电子设备处,其中所述上下文共享组是至少两个电子设备的集合,所 述电子设备各自与参与所述集合的至少一个其他电子设备共享上下文信息, 并且其中所述集合包括至少第二电子设备和上下文收集器:接收用户语音 输入,其中所述用户语音输入包括数字助理触发器;响应于检测到所述数 字助理触发器,将第一触发器通告发送到所述上下文收集器,其中所述第 一触发器通告指示所述数字助理触发器根据所述第一电子设备结束时的第 一时间;从所述上下文收集器接收第二触发器通告,其中所述第二触发器 通告指示所述数字助理触发器根据所述第二电子设备结束时的第二时间; 确定所述第二时间是否在所述第一时间之前的预定时间范围内;并且根据 确定所述第二时间在所述第一时间之前的所述预定时间范围内,放弃进一 步处理所述用户语音输入。
本文公开了示例非暂态计算机可读介质。一种示例非暂态计算机可读 存储介质存储一个或多个程序。所述一个或多个程序包括指令,所述指令 当由第一电子设备的一个或多个处理器执行时,使得所述第一电子设备: 加入与第一位置相关联的上下文共享组,其中所述上下文共享组是至少两 个电子设备的集合,所述电子设备各自与所述集合中包括的至少一个其他 电子设备共享上下文信息,并且其中所述集合包括至少第二电子设备;在 加入所述上下文共享组之后,挑选所述至少两个电子设备的集合中的一个 电子设备作为所述上下文共享组的上下文收集器,其中挑选所述上下文收 集器包括:至少基于所述第一电子设备与所述第一位置的无线网络之间的 连接性的强度来确定与所述第一电子设备对应的第一上下文收集器得分; 从至少所述第二电子设备接收与至少所述第二电子设备对应的一个或多个 上下文收集器得分;以及基于所述第一上下文收集器得分和与至少所述第 二电子设备对应的所述一个或多个上下文收集器得分,确定挑选所述上下 文共享组中包括的所述电子设备中的哪个电子设备作为所述上下文共享组 的所述上下文收集器;并且根据确定挑选所述第一电子设备作为所述上下 文收集器,响应于至少所述第二电子设备经历设备状态改变而从至少所述 第二电子设备接收上下文信息。
另一种示例性非暂态计算机可读存储介质存储一个或多个程序,所述 一个或多个程序包括指令,所述指令当由第一电子设备的一个或多个处理 器执行时,使得所述第一电子设备:在所述第一电子设备参与与第一位置 相关联的上下文共享组时,其中所述上下文共享组是至少两个电子设备的 集合,所述电子设备各自与所述集合中包括的至少一个其他电子设备共享 上下文信息,并且其中所述集合包括至少第二电子设备和上下文收集器: 接收用户语音输入;从所述上下文收集器接收所述上下文共享组的聚合上 下文;在接收到所述聚合上下文之后,向不参与所述上下文共享组的远程 设备提供所述聚合上下文的至少一部分和与所述用户语音输入对应的数据; 从所述远程设备接收用于执行一个或多个任务的命令和与所述第二电子设 备对应的设备标识符,其中所述远程设备基于与所述用户语音输入对应的 所述数据和在所述聚合上下文的所述至少一部分中包括的上下文信息来确 定所述一个或多个任务和所述设备标识符;以及基于所述设备标识符将所 述命令发送到所述第二电子设备,其中所述命令使得所述第二电子设备执 行所述一个或多个任务。
另一种示例性非暂态计算机可读存储介质存储一个或多个程序,所述 一个或多个程序包括指令,所述指令当由一个或多个服务器的一个或多个 处理器执行时,使得所述一个或多个服务器:从参与与第一位置相关联的 上下文共享组的第一电子设备接收用户语音输入以及所述上下文共享组的 聚合上下文的至少一部分,其中所述上下文共享组是多个电子设备的集合, 所述电子设备各自与所述集合中包括的至少一个其他电子设备共享上下文 信息;基于所述用户语音输入来确定用户意图;确定与所述用户意图对应 的一个或多个任务;基于所述一个或多个任务和在所述聚合上下文的所述 至少一部分中包括的上下文信息来识别所述多个电子设备中的第二电子设 备以执行所述一个或多个任务;以及向第一电子设备发送用于执行所述一 个或多个任务的命令和与所述第二电子设备对应的设备标识符,其中所述 第一电子设备基于所述设备标识符将所述命令发送到所述第二电子设备, 并且其中所述命令使得所述第二电子设备执行所述一个或多个任务。
另一种示例性非暂态计算机可读存储介质存储一个或多个程序,所述 一个或多个程序包括指令,所述指令当由第一电子设备的一个或多个处理 器执行时,使得所述第一电子设备:在所述第一电子设备参与与第一位置 相关联的上下文共享组时,其中所述上下文共享组是多个电子设备的集合, 所述电子设备各自与所述集合中包括的至少一个其他电子设备共享上下文 信息,并且其中所述集合包括上下文收集器:接收用户语音输入;从所述 上下文收集器接收所述上下文共享组的聚合上下文;在接收到所述聚合上 下文之后,向不参与所述上下文共享组的远程设备提供所述聚合上下文的 至少一部分和与所述用户语音输入对应的数据,其中所述远程设备基于与 所述用户语音输入对应的所述数据来确定多个任务;从所述远程设备接收: 用于执行所述多个任务中的第一组任务的第一命令和用于执行所述多个任 务中的第二组任务的第二命令;以及与所述多个电子设备中的第二电子设 备对应的第一设备标识符和与所述多个电子设备中的第三电子设备对应的第二设备标识符;基于所述第一设备标识符将所述第一命令发送到所述第 二电子设备,其中所述第一命令使得所述第二电子设备执行所述第一组任 务;以及基于所述第二设备标识符将所述第二命令发送到所述第三电子设 备,其中所述第二命令使得所述第三电子设备执行所述第二组任务。
一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或 多个程序包括指令,所述指令当由第一电子设备的一个或多个处理器执行 时,使得所述第一电子设备:在第一电子设备和第二电子设备参与与第一 位置相关联的上下文共享组时,其中所述上下文共享组是至少两个电子设 备的集合,所述电子设备各自与所述集合中包括的至少一个其他电子设备 共享上下文信息,并且其中所述集合包括上下文收集器:在所述第一电子 设备处接收第一用户语音输入;在所述第一电子设备处,基于所述第一用 户语音输入输出第一数字助理响应,其中所述第一电子设备在输出所述第 一数字助理响应之后将包括所述第一电子设备的数字助理对话会话历史的 上下文信息发送到所述上下文收集器;在所述第二电子设备处接收第二用 户语音输入;在所述第二电子设备处,从所述上下文收集器接收所述上下 文共享组的更新的聚合上下文,其中所述更新的聚合上下文包括所述第一 电子设备的所述数字助理对话会话历史;以及在所述第二电子设备处,基 于所述第二用户语音输入和所述第一电子设备的所述数字助理对话历史输 出第二数字助理响应。
一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或 多个程序包括指令,所述指令当由第一电子设备的一个或多个处理器执行 时,使得所述第一电子设备:在所述第一电子设备参与与第一位置相关联 的上下文共享组时,其中所述上下文共享组是至少两个电子设备的集合, 所述电子设备各自与参与所述集合的至少一个其他电子设备共享上下文信 息,并且其中所述集合包括至少第二电子设备和上下文收集器:接收用户 语音输入,其中所述用户语音输入包括数字助理触发器;响应于检测到所 述数字助理触发器,将第一触发器通告发送到所述上下文收集器,其中所 述第一触发器通告指示所述数字助理触发器根据所述第一电子设备结束时 的第一时间;从所述上下文收集器接收第二触发器通告,其中所述第二触 发器通告指示所述数字助理触发器根据所述第二电子设备结束时的第二时 间;确定所述第二时间是否在所述第一时间之前的预定时间范围内;并且 根据确定所述第二时间在所述第一时间之前的所述预定时间范围内,放弃 进一步处理所述用户语音输入。
本文公开了示例性电子设备和系统。一种示例性第一电子设备包括一 个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程 序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一 个或多个程序包括用于以下操作的指令:加入与第一位置相关联的上下文 共享组,其中所述上下文共享组是至少两个电子设备的集合,所述电子设 备各自与所述集合中包括的至少一个其他电子设备共享上下文信息,并且 其中所述集合包括至少第二电子设备。在加入所述上下文共享组之后,挑 选所述至少两个电子设备的集合中的一个电子设备作为所述上下文共享组 的上下文收集器,其中挑选所述上下文收集器包括:至少基于所述第一电 子设备与所述第一位置的无线网络之间的连接性的强度来确定与所述第一 电子设备对应的第一上下文收集器得分;从至少所述第二电子设备接收与 至少所述第二电子设备对应的一个或多个上下文收集器得分;以及基于所 述第一上下文收集器得分和与至少所述第二电子设备对应的所述一个或多 个上下文收集器得分,确定挑选所述上下文共享组中包括的所述电子设备 中的哪个电子设备作为所述上下文共享组的所述上下文收集器。根据确定 挑选所述第一电子设备作为所述上下文收集器,响应于至少所述第二电子 设备经历设备状态改变而从至少所述第二电子设备接收上下文信息。
另一种示例性第一电子设备包括一个或多个处理器;存储器;以及一 个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为 由所述一个或多个处理器执行,所述一个或多个程序包括用于以下操作的 指令:在所述第一电子设备参与与第一位置相关联的上下文共享组时,其 中所述上下文共享组是至少两个电子设备的集合,所述电子设备各自与所 述集合中包括的至少一个其他电子设备共享上下文信息,并且其中所述集 合包括至少第二电子设备和上下文收集器:接收用户语音输入;从所述上 下文收集器接收所述上下文共享组的聚合上下文;在接收到所述聚合上下 文之后,向不参与所述上下文共享组的远程设备提供所述聚合上下文的至 少一部分和与所述用户语音输入对应的数据;从所述远程设备接收用于执 行一个或多个任务的命令和与所述第二电子设备对应的设备标识符,其中 所述远程设备基于与所述用户语音输入对应的所述数据和在所述聚合上下 文的所述至少一部分中包括的上下文信息来确定所述一个或多个任务和所 述设备标识符;并且基于所述设备标识符将所述命令发送到所述第二电子 设备,其中所述命令使得所述第二电子设备执行所述一个或多个任务。
一种示例性系统包括一个或多个处理器;存储器;以及一个或多个程 序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个 或多个处理器执行,所述一个或多个程序包括用于以下操作的指令:从参 与与第一位置相关联的上下文共享组的第一电子设备接收用户语音输入以 及所述上下文共享组的聚合上下文的至少一部分,其中所述上下文共享组 是多个电子设备的集合,所述电子设备各自与所述集合中包括的至少一个 其他电子设备共享上下文信息;基于所述用户语音输入来确定用户意图; 确定与所述用户意图对应的一个或多个任务;基于所述一个或多个任务和 在所述聚合上下文的所述至少一部分中包括的上下文信息来识别所述多个 电子设备中的第二电子设备以执行所述一个或多个任务;以及向第一电子 设备发送用于执行所述一个或多个任务的命令和与所述第二电子设备对应 的设备标识符,其中所述第一电子设备基于所述设备标识符将所述命令发 送到所述第二电子设备,并且其中所述命令使得所述第二电子设备执行所 述一个或多个任务。
另一种示例性第一电子设备包括一个或多个处理器;存储器;以及一 个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为 由所述一个或多个处理器执行,所述一个或多个程序包括用于以下操作的 指令:在所述第一电子设备参与与第一位置相关联的上下文共享组时,其 中所述上下文共享组是多个电子设备的集合,所述电子设备各自与所述集 合中包括的至少一个其他电子设备共享上下文信息,并且其中所述集合包 括上下文收集器:接收用户语音输入;从所述上下文收集器接收所述上下 文共享组的聚合上下文;在接收到所述聚合上下文之后,向不参与所述上 下文共享组的远程设备提供所述聚合上下文的至少一部分和与所述用户语 音输入对应的数据,其中所述远程设备基于与所述用户语音输入对应的所 述数据来确定多个任务;从所述远程设备接收:用于执行所述多个任务中 的第一组任务的第一命令和用于执行所述多个任务中的第二组任务的第二 命令;以及与所述多个电子设备中的第二电子设备对应的第一设备标识符 和与所述多个电子设备中的第三电子设备对应的第二设备标识符;基于所 述第一设备标识符将所述第一命令发送到所述第二电子设备,其中所述第 一命令使得所述第二电子设备执行所述第一组任务;以及基于所述第二设 备标识符将所述第二命令发送到所述第三电子设备,其中所述第二命令使 得所述第三电子设备执行所述第二组任务。
另一种示例性系统包括一个或多个处理器;存储器;以及一个或多个 程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一 个或多个处理器执行,所述一个或多个程序包括用于以下操作的指令:在 第一电子设备和第二电子设备参与与第一位置相关联的上下文共享组时, 其中所述上下文共享组是至少两个电子设备的集合,所述电子设备各自与 所述集合中包括的至少一个其他电子设备共享上下文信息,并且其中所述 集合包括上下文收集器:在所述第一电子设备处接收第一用户语音输入; 在所述第一电子设备处,基于所述第一用户语音输入输出第一数字助理响 应,其中所述第一电子设备在输出所述第一数字助理响应之后将包括所述 第一电子设备的数字助理对话会话历史的上下文信息发送到所述上下文收 集器;在所述第二电子设备处接收第二用户语音输入;在所述第二电子设 备处,从所述上下文收集器接收所述上下文共享组的更新的聚合上下文, 其中所述更新的聚合上下文包括所述第一电子设备的所述数字助理对话会 话历史;以及在所述第二电子设备处,基于所述第二用户语音输入和所述 第一电子设备的所述数字助理对话历史输出第二数字助理响应。
另一种示例性第一电子设备包括一个或多个处理器;存储器;以及一 个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为 由所述一个或多个处理器执行,所述一个或多个程序包括用于以下操作的 指令:在所述第一电子设备参与与第一位置相关联的上下文共享组时,其 中所述上下文共享组是至少两个电子设备的集合,所述电子设备各自与参 与所述集合的至少一个其他电子设备共享上下文信息,并且其中所述集合 包括至少第二电子设备和上下文收集器:接收用户语音输入,其中所述用 户语音输入包括数字助理触发器;响应于检测到所述数字助理触发器,将 第一触发器通告发送到所述上下文收集器,其中所述第一触发器通告指示 所述数字助理触发器根据所述第一电子设备结束时的第一时间;从所述上 下文收集器接收第二触发器通告,其中所述第二触发器通告指示所述数字 助理触发器根据所述第二电子设备结束时的第二时间;确定所述第二时间 是否在所述第一时间之前的预定时间范围内;并且根据确定所述第二时间 在所述第一时间之前的所述预定时间范围内,放弃进一步处理所述用户语 音输入。
一种示例性第一电子设备包括用于加入与第一位置相关联的上下文共 享组的装置,其中所述上下文共享组是至少两个电子设备的集合,所述电 子设备各自与所述集合中包括的至少一个其他电子设备共享上下文信息, 并且其中所述集合包括至少第二电子设备。在加入所述上下文共享组之后, 用于挑选所述至少两个电子设备的集合中的一个电子设备作为所述上下文 共享组的上下文收集器的装置,其中挑选所述上下文收集器包括:至少基 于所述第一电子设备与所述第一位置的无线网络之间的连接性的强度来确 定与所述第一电子设备对应的第一上下文收集器得分;从至少所述第二电 子设备接收与至少所述第二电子设备对应的一个或多个上下文收集器得分; 以及基于所述第一上下文收集器得分和与至少所述第二电子设备对应的所 述一个或多个上下文收集器得分,确定挑选所述上下文共享组中包括的所 述电子设备中的哪个电子设备作为所述上下文共享组的所述上下文收集器。 根据确定挑选所述第一电子设备作为所述上下文收集器,用于响应于至少所述第二电子设备经历设备状态改变而从至少所述第二电子设备接收上下 文信息的装置。
另一种示例性第一电子设备包括用于以下操作的装置:在所述第一电 子设备参与与第一位置相关联的上下文共享组时,其中所述上下文共享组 是至少两个电子设备的集合,所述电子设备各自与所述集合中包括的至少 一个其他电子设备共享上下文信息,并且其中所述集合包括至少第二电子 设备和上下文收集器:接收用户语音输入;用于从所述上下文收集器接收 所述上下文共享组的聚合上下文的装置;在接收到所述聚合上下文之后, 用于向不参与所述上下文共享组的远程设备提供所述聚合上下文的至少一 部分和与所述用户语音输入对应的数据的装置;用于从所述远程设备接收 用于执行一个或多个任务的命令和与所述第二电子设备对应的设备标识符 的装置,其中所述远程设备基于与所述用户语音输入对应的所述数据和在 所述聚合上下文的所述至少一部分中包括的上下文信息来确定所述一个或 多个任务和所述设备标识符;以及用于基于所述设备标识符将所述命令发 送到所述第二电子设备的装置,其中所述命令使得所述第二电子设备执行 所述一个或多个任务。
另一个示例性系统包括用于以下操作的装置:用于从参与上下文共享 组的第一电子设备接收用户语音输入以及所述上下文共享组的聚合上下文 的至少一部分的装置,所述上下文共享组与第一位置相关联,其中所述上 下文共享组是多个电子设备的集合,所述电子设备各自与所述集合中包括 的至少一个其他电子设备共享上下文信息;用于基于所述用户语音输入来 确定用户意图的装置;用于确定与所述用户意图对应的一个或多个任务的 装置;用于基于所述一个或多个任务和在所述聚合上下文的所述至少一部 分中包括的上下文信息来识别所述多个电子设备中的第二电子设备以执行 所述一个或多个任务的装置;以及用于向第一电子设备发送用于执行所述 一个或多个任务的命令和与所述第二电子设备对应的设备标识符的装置, 其中所述第一电子设备基于所述设备标识符将所述命令发送到所述第二电 子设备,并且其中所述命令使得所述第二电子设备执行所述一个或多个任 务。
另一种示例性第一电子设备包括用于以下操作的装置:在所述第一电 子设备参与与第一位置相关联的上下文共享组时,其中所述上下文共享组 是多个电子设备的集合,所述电子设备各自与所述集合中包括的至少一个 其他电子设备共享上下文信息,并且其中所述集合包括上下文收集器:接 收用户语音输入;用于从所述上下文收集器接收所述上下文共享组的聚合 上下文的装置;在接收到所述聚合上下文之后,用于向不参与所述上下文 共享组的远程设备提供所述聚合上下文的至少一部分和与所述用户语音输 入对应的数据的装置,其中所述远程设备基于与所述用户语音输入对应的 所述数据来确定多个任务;用于从所述远程设备接收以下内容的装置:用 于执行所述多个任务中的第一组任务的第一命令和用于执行所述多个任务 中的第二组任务的第二命令;以及与所述多个电子设备中的第二电子设备 对应的第一设备标识符和与所述多个电子设备中的第三电子设备对应的第 二设备标识符;用于基于所述第一设备标识符将所述第一命令发送到所述 第二电子设备的装置,其中所述第一命令使得所述第二电子设备执行所述 第一组任务;以及用于基于所述第二设备标识符将所述第二命令发送到所 述第三电子设备的装置,其中所述第二命令使得所述第三电子设备执行所 述第二组任务。
另一个示例性系统包括用于以下操作的装置:在第一电子设备和第二 电子设备参与与第一位置相关联的上下文共享组时,其中所述上下文共享 组是至少两个电子设备的集合,所述电子设备各自与所述集合中包括的至 少一个其他电子设备共享上下文信息,并且其中所述集合包括上下文收集 器:在所述第一电子设备处接收第一用户语音输入;用于在所述第一电子 设备处,基于所述第一用户语音输入输出第一数字助理响应的装置,其中 所述第一电子设备在输出所述第一数字助理响应之后将包括所述第一电子 设备的数字助理对话会话历史的上下文信息发送到所述上下文收集器;用 于在所述第二电子设备处接收第二用户语音输入的装置;用于在所述第二 电子设备处,从所述上下文收集器接收所述上下文共享组的更新的聚合上 下文的装置,其中所述更新的聚合上下文包括所述第一电子设备的所述数 字助理对话会话历史;以及用于在所述第二电子设备处,基于所述第二用 户语音输入和所述第一电子设备的所述数字助理对话历史输出第二数字助 理响应的装置。
另一个示例性第一电子设备包括用于以下操作的装置:在所述第一电 子设备参与与第一位置相关联的上下文共享组时,其中所述上下文共享组 是至少两个电子设备的集合,所述电子设备各自与参与所述集合的至少一 个其他电子设备共享上下文信息,并且其中所述集合包括至少第二电子设 备和上下文收集器:接收用户语音输入,其中所述用户语音输入包括数字 助理触发器;响应于检测到所述数字助理触发器,将第一触发器通告发送 到所述上下文收集器,其中所述第一触发器通告指示所述数字助理触发器 根据所述第一电子设备结束时的第一时间;从所述上下文收集器接收第二 触发器通告,其中所述第二触发器通告指示所述数字助理触发器根据所述 第二电子设备结束时的第二时间;确定所述第二时间是否在所述第一时间 之前的预定时间范围内;并且根据确定所述第二时间在所述第一时间之前 的所述预定时间范围内,放弃进一步处理所述用户语音输入。
在一些示例中,至少基于第一电子设备与第一位置的无线网络之间的 连接性的强度来确定对应于第一电子设备的第一上下文收集器得分,并且 随后基于第一上下文收集器得分和对应于至少第二电子设备的一个或多个 上下文收集器得分来确定要挑选上下文共享组中包括的电子设备中的哪个 电子设备作为上下文共享组的上下文收集器,可改善用户的数字助理体验。 具体地讲,至少基于第一电子设备与第一位置的无线网络之间的连接性的 强度来确定第一上下文收集器得分有助于确保与无线网络具有强连接的电 子设备将被挑选为上下文收集器,因为该上下文收集器挑选基于所确定的 上下文收集器得分。这继而改善了上下文收集器的稳定性,因为上下文收 集器不太可能失去其与无线网络的连接和离开上下文共享组。这样,收集 器将能够一致地接收上下文信息并将其发送到参与上下文共享组的电子设 备,这将允许电子设备的数字助理基于提供给上下文收集器和从上下文收 集器接收的上下文信息来对用户请求进行响应。
在一些示例中,向不参与上下文共享组的远程设备提供聚合上下文的 至少一部分和对应于用户语音输入的数据,使得远程设备可基于对应于用 户语音输入的数据和在聚合上下文中的至少一部分中包括的上下文信息来 确定一个或多个任务和设备标识符,可改善用户的数字助理体验。具体地 讲,通过执行上述操作,远程设备能够例如更准确地确定对应于用户语音 输入的用户意图,因为当相对于参与上下文共享组的所有设备而不是仅接 收用户语音输入的第一电子设备提供用户语音输入时,在聚合上下文中包 括的上下文信息通知远程设备用户的上下文。这继而允许远程设备基于对 应于所确定的用户意图的一个或多个任务和在聚合上下文中包括的上下文 信息来确定用于对用户作出响应的最佳电子设备。因此,即使第一电子设 备接收用户语音输入,第一电子设备也可基于由远程设备提供的设备标识 符将一个或多个任务发送到更适合于执行该一个或多个任务的另一个电子 设备(例如,定位成更靠近用户,用于执行该一个或多个任务的更好的设 备能力等)。因此,第一电子设备向远程设备提供聚合上下文,以及第一 电子设备基于所接收的设备标识符向第二电子设备发送一个或多个任务, 允许参与上下文共享组的电子设备的数字助理彼此智能地协调任务的执行, 这创建了跨多个设备与用户交互的单个数字助理的外观,而不是在多个设 备中的每个设备处的多个单独数字助理。
在一些示例中,基于一个或多个任务和在上下文共享组的聚合上下文 的至少一部分中包括的上下文信息来识别参与上下文共享组的多个电子设 备中的第二电子设备来执行该一个或多个任务可改善用户的数字助理体验。 具体地讲,如上所述,接收用户的数字助理请求的电子设备可能不是用于 执行所请求的任务的最佳设备。例如,接收用户请求的电子设备可能因为 该设备可具有小显示器(或根本没有显示器)而不是最佳设备,该请求可 涉及在另一个电子设备处发生的事件(例如,闹钟、定时器、媒体回放 等),和/或可存在相对于用户更方便地定位的另一个电子设备。因此,因 为聚合上下文包括指示例如设备能力、设备位置以及当前和/或先前的设备 活动和用户交互的上下文信息(与参与上下文共享组的多个设备相关联), 远程设备(例如,一个或多个服务器)可基于上下文信息识别用于执行一 个或多个任务的第二更合适的电子设备,而不是简单地指示接收用户的执 行一个或多个任务的请求的电子设备。这继而改善了用户的数字助理体验, 因为其创建了跨多个设备智能地与用户进行交互的单个数字助理的外观, 以便提供对用户请求的最佳响应。
将用于执行多个任务中的第一组任务的第一命令发送到第二电子设备 并且将用于执行多个任务中的第二组任务的第二命令发送到第三电子设备 可改善用户的数字助理体验。具体地讲,当用户的数字助理请求需要执行 多个任务(诸如例如数字助理响应的输出和对应的数据/信息的显示)时, 将某些任务的执行分配给不同的设备有助于确保那些任务正由最佳设备执 行。例如,虽然第二电子设备可具有用于提供数字助理响应的合适的音频 能力,但其可能具有小显示器(或根本不具有显示器)。因此,代替在小 显示器上显示数据/信息(或根本不显示数据/信息),可经由第一命令指示 第二电子设备提供音频数字助理响应,同时可指示第三电子设备(例如, 具有比第二电子设备更大的显示器)显示对应的数据/信息。这继而改善了 用户的数字助理体验,因为其创建了跨多个设备智能地与用户进行交互的 单个数字助理的外观,以便提供对用户请求的最佳响应。
在一些示例中,在第二电子设备处基于第二用户语音输入和第一电子 设备的数字助理对话历史输出第二数字助理响应可改善用户的数字助理体 验。具体地讲,使用第一电子设备的数字助理对话历史来确定第二数字助 理响应允许第二电子设备的数字助理提供基于第一用户输入和/或促进第一 用户输入的数字助理响应,即使第一用户输入被提供给第一电子设备而不 是第二电子设备。这样,第二电子设备的用户可以更自然和会话式的方式 提供数字助理请求(例如,在第二用户输入中提供),并且如果已经在第 一用户输入中引入请求的某些方面,则不必重复那些方面。例如,如果第 一用户语音输入包括用户请求“嘿,Siri,帕罗奥图天气怎么样?”,则第 二电子设备的用户随后可通过提供第二用户语音输入“嘿,Siri,纽约呢?” 而不是必须重复该天气信息是期望的(例如,“嘿,Siri,纽约天气怎么 样?”)来请求关于纽约的天气信息。这继而改善了用户的数字助理体验, 因为它创建了跨多个设备与用户进行交互的单个数字助理的外观,而不是 在多个设备中的每个设备处的多个单独数字助理。
在一些示例中,确定包括在用户语音输入中的数字助理触发器根据第 二电子设备结束时的第二时间是否在该数字助理触发器根据第一电子设备 结束时的第一时间之前的预定时间范围内,并且根据确定第二时间在第一 时间之前的预定时间范围内而放弃进一步处理用户语音输入,可改善用户 的数字助理体验。具体地讲,如果电子设备的数字助理触发器检测被延迟, 则电子设备将开始处理用户语音输入,即使附近的另一个电子设备(不具 有延迟的数字助理触发器检测)已经开始处理用户语音输入和/或已经提供 对用户语音输入的响应。这继而可导致多个设备在不同时间提供对相同用 户语音输入的响应,从而可导致用户的数字助理体验不佳(例如,由于用 户混淆和/或烦恼)。因此,在电子设备确定另一个电子设备已检测到数字 助理触发器(在预定时间范围内)的情况下放弃进一步处理用户语音输入 将确保多个设备不会在不同时间提供对相同用户语音输入的响应,这继而 将改善用户的数字助理体验。
附图说明
图1为示出了根据各种示例的用于实现数字助理的系统和环境的框图。
图2A为示出了根据各种示例的实现数字助理的客户端侧部分的便携式 多功能设备的框图。
图2B为示出了根据各种示例的用于事件处理的示例性部件的框图。
图3示出了根据各种示例的实现数字助理的客户端侧部分的便携式多 功能设备。
图4为根据各种示例的具有显示器和触敏表面的示例性多功能设备的 框图。
图5A示出了根据各种示例的便携式多功能设备上的应用程序的菜单的 示例性用户界面。
图5B示出了根据各种示例的具有与显示器分开的触敏表面的多功能设 备的示例性用户界面。
图6A示出了根据各种示例的个人电子设备。
图6B为示出了根据各种示例的个人电子设备的框图。
图7A为示出了根据各种示例的数字助理系统或其服务器部分的框图。
图7B示出了根据各种示例的在图7A中所示的数字助理的功能。
图7C示出了根据各种示例的知识本体的一部分。
图8示出了根据各种示例的用于选择上下文共享组的上下文收集器的 系统和技术。
图9示出了根据各种示例的用于执行上下文共享组中的一个或多个任 务的系统和技术。
图10示出了根据各种示例的用于使用上下文共享组的上下文收集器来 抑制延迟数字助理触发器检测的系统和技术。
图11是示出根据各种示例的用于上下文共享组中的任务确定和设备选 择的系统的框图。
图12A至图12B示出了根据各种示例的用于上下文共享组中的多模态 任务执行的系统和技术。
图13示出了根据各种示例的用于跨参与上下文共享组的多个设备进行 持续数字助理会话的系统和技术。
图14A至图14C示出了根据各种示例的表示用于选择上下文共享组的 上下文收集器的过程的流程图。
图15A至图15B示出了根据各种示例的表示用于在上下文共享组中执 行一个或多个任务的过程的流程图。
图16A至图16E示出了根据各种示例的表示用于识别参与上下文共享 组的电子设备来执行一个或多个任务的过程的流程图。
图17A至图17C示出了根据各种示例的表示用于上下文共享组中的多 模态任务执行的过程的流程图。
图18A至图18B示出了根据各种示例的表示跨参与上下文共享组的多 个电子设备的持续数字助理会话的过程的流程图。
图19A至图19B示出了根据各种示例的表示用于使用上下文共享组的 上下文收集器来抑制延迟数字助理触发器检测的过程的流程图。
具体实施方式
在以下对示例的描述中将引用附图,在附图中以例示的方式示出了可 被实施的特定示例。应当理解,在不脱离各个示例的范围的情况下,可使 用其他示例并且可作出结构性改变。
尽管以下描述使用术语“第一”、“第二”等来描述各种元件,但这 些元件不应受术语的限制。这些术语只是用于将一个元件与另一元件区分 开。例如,在不脱离各种所述示例的范围的情况下,第一输入可被称为第 二输入,并且类似地,第二输入可被称为第一输入。第一输入和第二输入 均为输入,并且在一些情况下为独立且不同的输入。
在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示 例的目的,而并非旨在进行限制。如在对各种所述示例的描述和所附权利 要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨 在也包括复数形式,除非上下文另外明确地指示。还将理解的是,本文中 所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多 个项目的任何和全部可能的组合。还将理解的是,术语“包括” (“includes”、“including”、“comprises”和/或“comprising”)在本 说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或 部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、 元件、部件和/或其分组。
根据上下文,术语“如果”可被解释为意指“当…时”(“when”或 “upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文, 短语“如果确定…”或“如果检测到[所陈述的条件或事件]”可被解释为意 指“在确定…时”或“响应于确定…”或“在检测到[所陈述的条件或事件] 时”或“响应于检测到[所陈述的条件或事件]”。
1.系统和环境
图1示出了根据各种示例的系统100的框图。在一些示例中,系统100 实现数字助理。术语“数字助理”、“虚拟助理”、“智能自动化助理” 或“自动数字助理”是指解译口头形式和/或文本形式的自然语言输入来推 断用户意图并且基于推断出的用户意图来执行动作的任何信息处理系统。 例如,为了作用于推断出的用户意图,系统执行下述步骤中的一个或多个: 识别具有设计用于实现推断出的用户意图的步骤和参数的任务流,根据推 断出的用户意图将特定要求输入到任务流中;通过调用程序、方法、服务、 API等执行任务流;以及以可听(例如,语音)和/或可视形式来生成对用 户的输出响应。
具体地,数字助理能够接受至少部分地为自然语言命令、请求、声明、 讲述和/或询问的形式的用户请求。通常,用户请求寻求数字助理作出信息 性回答或执行任务。对用户请求的令人满意的响应包括提供所请求的信息 性回答、执行所请求的任务或这两者的组合。例如,用户向数字助理提出 问题,诸如“我现在在哪里?”。基于用户的当前位置,数字助理回答“你 在中央公园西门附近。”用户还请求执行任务,例如“请邀请我的朋友们 下周来参加我女朋友的生日聚会。”作为响应,数字助理可通过讲出“好 的,马上”来确认请求,然后代表用户将合适的日历邀请发送到用户电子 地址簿中列出的用户朋友中的每位朋友。在执行所请求的任务期间,数字 助理有时在很长时间段内在涉及多次信息交换的持续对话中与用户进行交 互。存在与数字助理进行交互以请求信息或执行各种任务的许多其他方法。 除提供言语响应并采取经编程的动作之外,数字助理还提供其他视频或音 频形式的响应,例如作为文本、警报、音乐、视频、动画等。
如图1所示,在一些示例中,数字助理根据客户端-服务器模型来实现。 数字助理包括在用户设备104上执行的客户端侧部分102(后文称作“DA 客户端102”)以及在服务器系统108上执行的服务器侧部分106(后文称 作“DA服务器106”)。DA客户端102通过一个或多个网络110与DA服 务器106通信。DA客户端102提供客户端侧功能,诸如面向用户的输入和 输出处理,以及与DA服务器106通信。DA服务器106为各自位于相应用 户设备104上的任意数量的DA客户端102提供服务器侧功能。
在一些示例中,DA服务器106包括面向客户端的I/O接口112、一个 或多个处理模块114、数据与模型116,以及到外部服务的I/O接口118。面 向客户端的I/O接口112有利于DA服务器106的面向客户端的输入和输出 处理。一个或多个处理模块114利用数据与模型116来处理语音输入,并基 于自然语言输入来确定用户意图。此外,一个或多个处理模块114基于推断 出的用户意图来执行任务执行。在一些示例中,DA服务器106通过一个或 多个网络110与外部服务120通信以完成任务或采集信息。到外部服务的 I/O接口118有利于此类通信。
用户设备104可以是任何合适的电子设备。在一些示例中,用户设备 104是便携式多功能设备(例如,下文参考图2A所述的设备200)、多功 能设备(例如,下文参考图4所述的设备400)或个人电子设备(例如,下 文参考图6A至图6B所述的设备600)。便携式多功能设备为例如还包含其 他功能诸如PDA和/或音乐播放器功能的移动电话。便携式多功能设备的特 定示例包括来自Apple Inc.(Cupertino,California)的Apple
Figure BDA0002695099990000191
iPod
Figure BDA0002695099990000192
Figure BDA0002695099990000193
设备。便携式多功能设备的其他示例包括但不限于耳塞 式耳机/头戴式耳机、扬声器以及膝上型电脑或平板电脑。此外,在一些示 例中,用户设备104是非便携式多功能设备。具体地,用户设备104是台式 计算机、游戏机、扬声器、电视或电视机顶盒。在一些示例中,用户设备 104包括触敏表面(例如,触摸屏显示器和/或触控板)。此外,用户设备 104任选地包括一个或多个其他物理用户接口设备,诸如物理键盘、鼠标和 /或操纵杆。下文更详细地描述了电子设备诸如多功能设备的各种示例。
一个或多个通信网络110的示例包括局域网(LAN)和广域网(WAN),例 如互联网。一个或多个通信网络110使用任何已知的网络协议来实现,包括 各种有线或无线协议,诸如以太网、通用串行总线(USB)、FIREWIRE、全 球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、码分多址(CDMA)、 时分多址(TDMA)、蓝牙、Wi-Fi、互联网协议语音(VoIP)、Wi-MAX或任何 其他合适的通信协议。
服务器系统108在一个或多个独立式数据处理设备或分布式计算机网 络上实现。在一些示例中,服务器系统108还采用第三方服务提供方(例如, 第三方云服务提供方)的各种虚拟设备和/或服务来提供服务器系统108的 潜在计算资源和/或基础结构资源。
在一些示例中,用户设备104经由第二用户设备122与DA服务器106 通信。第二用户设备122与用户设备104相似或相同。例如,第二用户设备 122类似于下文参考图2A、图4和图6A至图6B所述的设备200、400或 600。用户设备104被配置为经由直接通信连接(诸如蓝牙、NFC、BTLE等) 或者经由有线或无线网络(诸如局域Wi-Fi网络)而被通信地耦接到第二用 户设备122。在一些示例中,第二用户设备122被配置为充当用户设备104 与DA服务器106之间的代理。例如,用户设备104的DA客户端102被配 置为经由第二用户设备122向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客户端为仅提供面向用户的输入和输出处理功能 并将数字助理的所有其他功能委派给后端服务器的瘦客户端。
2.电子设备
现在将注意力转至用于实现数字助理的客户端侧部分的电子设备的实 施方案。图2A是示出了根据一些实施方案的具有触敏显示器系统212的便 携式多功能设备200的框图。触敏显示器212有时为了方便被叫做“触摸 屏”,并且有时被称为或被叫做“触敏显示器系统”。设备200包括存储器 202(其任选地包括一个或多个计算机可读存储介质)、存储器控制器222、 一个或多个处理单元(CPU)220、外围设备接口218、RF电路208、音频电 路210、扬声器211、麦克风213、输入/输出(I/O)子系统206、其他输入控 制设备216和外部端口224。设备200任选地包括一个或多个光学传感器 264。设备200任选地包括用于检测设备200(例如设备200的触敏表面诸 如触敏显示器系统212)上的接触的强度的一个或多个接触强度传感器265。 设备200任选地包括用于在设备200上生成触觉输出(例如,在触敏表面诸 如设备200的触敏显示器系统212或设备400的触控板455上生成触觉输 出)的一个或多个触觉输出发生器267。这些部件任选地通过一个或多个通 信总线或信号线203进行通信。
如在本说明书和权利要求书中所使用的,术语触敏表面上的接触的 “强度”是指触敏表面上的接触(例如,手指接触)的力或压力(每单位 面积的力),或是指触敏表面上的接触的力或压力的替代物(代用物)。 接触的强度具有值范围,该值范围包括至少四个不同的值并且更典型地包 括上百个不同的值(例如,至少256个)。接触的强度任选地使用各种方法 和各种传感器或传感器的组合来确定(或测量)。例如,在触敏表面下方 或相邻于触敏表面的一个或多个力传感器任选地用于测量触敏表面上的不 同点处的力。在一些具体实施中,来自多个力传感器的力测量值被组合 (例如,加权平均)以确定所估计的接触力。类似地,触笔的压敏顶端任 选地用于确定触笔在触敏表面上的压力。另选地,在触敏表面上检测到的 接触区域的大小和/或其变化、接触附近的触敏表面的电容和/或其变化以及/或者接触附近的触敏表面的电阻和/或其变化任选地被用作触敏表面上的接 触的力或压力的替代物。在一些具体实施中,接触力或压力的替代物测量 直接用于确定是否已经超过强度阈值(例如,强度阈值以对应于替代物测 量的单位来描述)。在一些具体实施中,接触力或压力的替代物测量被转 换成估计的力或压力,并且估计的力或压力用于确定是否已超过强度阈值 (例如,强度阈值是以压力的单位进行测量的压力阈值)。使用接触的强 度作为用户输入的属性,从而允许用户访问用户在实地面积有限的尺寸更 小的设备上本来不可访问的附加设备功能,该尺寸更小的设备用于(例如, 在触敏显示器上)显示示能表示和/或接收用户输入(例如,经由触敏显示 器、触敏表面或物理控件/机械控件,诸如旋钮或按钮)。
如本说明书和权利要求书中所使用的,术语“触觉输出”是指将由用 户利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备 的部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物 理位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与 用户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触 的情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感对 应于设备或设备的部件的物理特征的所感知的变化。例如,触敏表面(例 如,触敏显示器或触控板)的移动任选地由用户解释为对物理致动按钮的 “按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如 “按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压 (例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。又如, 即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用户解 释或感测为触敏表面的“粗糙度”。虽然用户对触摸的此类解释将受到用 户的个体化感官知觉的限制,但是对触摸的许多感官知觉是大多数用户共 有的。因此,当触觉输出被描述为对应于用户的特定感官知觉(例如, “按下点击”、“松开点击”、“粗糙度”)时,除非另外陈述,否则所 生成的触觉输出对应于设备或其部件的物理位移,该物理位移将会生成典 型(或普通)用户的所述感官知觉。
应当理解,设备200仅是便携式多功能设备的一个示例,并且设备200 任选地具有比所示出的更多或更少的部件,任选地组合两个或更多个部件, 或者任选地具有这些部件的不同配置或布置。图2A中所示的各种部件以硬 件、软件、或硬件与软件两者的组合来实现,包括一个或多个信号处理和/ 或应用专用集成电路。
存储器202包括一个或多个计算机可读存储介质。这些计算机可读存 储介质例如为有形的和非暂态的。存储器202包括高速随机存取存储器,并 且还包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设 备或其他非易失性固态存储器设备。存储器控制器222控制设备200的其他 部件访问存储器202。
在一些示例中,存储器202的非暂态计算机可读存储介质用于存储指 令(例如,用于执行下文描述的过程的各方面)以供指令执行系统、装置 或设备诸如基于计算机的系统、包含处理器的系统或可从指令执行系统、 装置或设备取出指令并执行指令的其他系统使用或与其结合使用。在其他 示例中,指令(例如,用于执行下文描述的过程的各方面)存储在服务器 系统108的非暂态计算机可读存储介质(未示出)上,或在存储器202的非 暂态计算机可读存储介质与服务器系统108的非暂态计算机可读存储介质之 间划分。
外围设备接口218用于将设备的输入和输出外围设备耦接到CPU 220 和存储器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、IEEE 802.11g、IEEE802.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任选地包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击轮等。 在一些另选实施方案中,输入控制器260任选地耦接至以下各项中的任一者(或不耦接至以下各项中的任一者):键盘、红外线端口、USB端口以及 指向设备诸如鼠标。一个或多个按钮(例如,图3中的308)任选地包括用 于扬声器211和/或麦克风213的音量控制的增大/减小按钮。一个或多个按钮任选地包括下压按钮(例如,图3中的306)。
快速按下下压按钮会脱离触摸屏212的锁定或者开始使用触摸屏上的 手势来对设备进行解锁的过程,如在2005年12月23日提交的名称为 “Unlocking a Device byPerforming Gestures on an Unlock Image”的美国专 利7,657,849的美国专利申请11/322,549中所述,该美国专利申请据此全文 以引用方式并入本文。较长地按下下压按钮(例如,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)的
Figure BDA0002695099990000251
和iPod
Figure BDA0002695099990000252
中使用的技术。
在一些实施方案中,触摸屏212的触敏显示器类似于以下美国专利: 6,323,846(Westerman等人)、6,570,557(Westerman等人)和/或6,677,932 (Westerman)和/或美国专利公开2002/0015024A1中所述的多点触敏触控 板,这些专利申请均据此全文以引用方式并入本文。然而,触摸屏212显示 来自设备200的视觉输出,而触敏触控板不提供视觉输出。
在一些实施方案中,触摸屏212的触敏显示器如以下申请所述:(1) 2006年5月2日提交的名称为“Multipoint Touch Surface Controller”的美国 专利申请11/381,313;(2)2004年5月6日提交的名称为“Multipoint Touchscreen”的美国专利申请No.10/840,862;(3)2004年7月30日提交的 名称为“Gestures For Touch Sensitive Input Devices”的美国专利申请No. 10/903,964;(4)2005年1月31日提交的名称为“Gestures For TouchSensitive Input Devices”的美国专利申请No.11/048,264;(5)2005年1月18日提交的 名称为“Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices”的美国专利申请No.11/038,590;(6)2005年9月16日提交的名称 为“Virtual InputDevice Placement On A Touch Screen User Interface”的美国 专利申请No.11/228,758;(7)2005年9月16日提交的名称为“Operation Of A Computer With A Touch ScreenInterface”的美国专利申请No.11/228,700; (8)2005年9月16日提交的名称为“Activating Virtual Keys Of A Touch- Screen Virtual Keyboard”的美国专利申请No.11/228,737;以及(9)2006年3 月3日提交的名称为“Multi-Functional Hand-HeldDevice”的美国专利申请 No.11/367,749。所有这些申请全文以引用方式并入本文。
触摸屏212例如具有超过100dpi的视频分辨率。在一些实施方案中, 触摸屏具有约160dpi的视频分辨率。用户使用任何合适的对象或附加物诸 如触笔、手指等与触摸屏212进行接触。在一些实施方案中,将用户界面设 计为主要通过基于手指的接触和手势来工作,由于手指在触摸屏上的接触 区域较大,因此这可能不如基于触笔的输入精确。在一些实施方案中,设 备将基于手指的粗略输入转化为精确的指针/光标位置或命令以用于执行用 户所期望的动作。
在一些实施方案中,除了触摸屏之外,设备200还包括用于激活或去 激活特定功能的触控板(未示出)。在一些实施方案中,触控板是设备的 触敏区域,与触摸屏不同,该触敏区域不显示视觉输出。触控板是与触摸 屏212分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸。
设备200还包括用于为各种部件供电的电力系统262。电力系统262包 括电力管理系统、一个或多个电源(例如,电池、交流电(AC))、再充电 系统、电力故障检测电路、功率转换器或逆变器、电力状态指示器(例如, 发光二极管(LED))和与便携式设备中电力的生成、管理和分配相关联的任 何其他部件。
设备200还包括一个或多个光学传感器264。图2A示出了耦接到I/O 子系统206中的光学传感器控制器258的光学传感器。光学传感器264包括 电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。光学传 感器264从环境接收通过一个或多个透镜而投射的光,并且将光转换为表示 图像的数据。结合成像模块243(也叫做相机模块),光学传感器264捕获 静态图像或视频。在一些实施方案中,光学传感器位于设备200的后部,与 设备前部的触摸屏显示器212相背对,使得触摸屏显示器被用作用于静态图 像和/或视频图像采集的取景器。在一些实施方案中,光学传感器位于设备 的前部,使得在用户在触摸屏显示器上查看其他视频会议参与者的同时获 取该用户的图像以用于视频会议。在一些实施方案中,光学传感器264的位 置可由用户改变(例如,通过旋转设备外壳中的透镜和传感器),使得单 个光学传感器264与触摸屏显示器一起使用,以用于视频会议和静态图像和 /或视频图像采集两者。
设备200任选地还包括一个或多个接触强度传感器265。图2A示出了 耦接到I/O子系统206中的强度传感器控制器259的接触强度传感器。接触 强度传感器265任选地包括一个或多个压阻应变仪、电容式力传感器、电气 力传感器、压电力传感器、光学力传感器、电容式触敏表面或其他强度传 感器(例如,用于测量触敏表面上的接触的力(或压力)的传感器)。接 触强度传感器265从环境接收接触强度信息(例如,压力信息或压力信息的 代用物)。在一些实施方案中,至少一个接触强度传感器与触敏表面(例 如,触敏显示器系统212)并置排列或邻近。在一些实施方案中,至少一个 接触强度传感器位于设备200的后部上,与位于设备200的前部上的触摸屏 显示器212相背对。
设备200还包括一个或多个接近传感器266。图2A示出了耦接到外围 设备接口218的接近传感器266。另选地,接近传感器266耦接到I/O子系 统206中的输入控制器260。接近传感器266如以下美国专利申请中所述的 那样执行:11/241,839,名称为“ProximityDetector In Handheld Device”; No.11/240,788,名称为“Proximity Detector InHandheld Device”;No. 11/620,702,名称为“Using Ambient Light Sensor To AugmentProximity Sensor Output”;No.11/586,862,名称为“Automated Response To AndSensing Of User Activity In Portable Devices”;以及No.11/638,251,名称为“Methods And Systems For Automatic Configuration 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如以下美国专利公开中所述那样执行: 美国专利公开20050190059,“Acceleration-based Theft Detection System for Portable Electronic Devices”和美国专利公开20060017692,“Methods And Apparatuses For Operating A Portable Device Based OnAn Accelerometer”, 这两个美国专利公开全文以引用方式并入本文。在一些实施方案中,基于 对从一个或多个加速度计接收的数据的分析来在触摸屏显示器上以纵向视 图或横向视图显示信息。设备200任选地除了一个或多个加速度计268之外 还包括磁力仪(未示出)和GPS(或GLONASS或其他全球导航系统)接 收器(未示出),以用于获取关于设备200的位置和取向(例如,纵向或横 向)的信息。
在一些实施方案中,存储于存储器202中的软件部件包括操作系统226、 通信模块(或指令集)228、接触/运动模块(或指令集)230、图形模块 (或指令集)232、文本输入模块(或指令集)234、全球定位系统(GPS)模 块(或指令集)235、数字助理客户端模块229以及应用程序(或指令集) 236。此外,存储器202存储数据与模型,诸如用户数据与模型231。此外,在一些实施方案中,存储器202(图2A)或470(图4)存储设备/全局内部 状态257,如图2A和图4中所示。设备/全局内部状态257包括以下中的一 者或多者:活动应用程序状态,其指示哪些应用程序(如果有的话)当前 是活动的;显示状态,其指示什么应用程序、视图或其他信息占据触摸屏 显示器212的各个区域;传感器状态,包括从设备的各个传感器和输入控制 设备216获取的信息;以及关于设备的位置和/或姿态的位置信息。
操作系统226(例如,Darwin、RTXC、LINUX、UNIX、OS X、iOS、 WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般 系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件 部件和/或驱动程序,并且促进各种硬件部件和软件部件之间的通信。
通信模块228便于通过一个或多个外部端口224来与其他设备进行通 信,并且还包括用于处理由RF电路208和/或外部端口224所接收的数据的 各种软件组件。外部端口224(例如,通用串行总线(USB)、火线等)适于 直接耦接到其他设备,或间接地通过网络(例如,互联网、无线LAN等) 进行耦接。在一些实施方案中,外部端口是与
Figure BDA0002695099990000291
(Apple Inc.的商标)设 备上所使用的30针连接器相同的或类似的和/或与其兼容的多针(例如,30 针)连接器。
接触/运动模块230任选地检测与触摸屏212(结合显示控制器256)和 其他触敏设备(例如,触控板或物理点击式转盘)的接触。接触/运动模块 230包括各种软件部件以用于执行与接触检测相关的各种操作,诸如确定是 否已发生接触(例如,检测手指按下事件)、确定接触强度(例如,接触 的力或压力,或者接触的力或压力的替代物)、确定是否存在接触的移动 并跟踪在触敏表面上的移动(例如,检测一个或多个手指拖动事件),以 及确定接触是否已停止(例如,检测手指抬起事件或接触断开)。接触/运 动模块230从触敏表面接收接触数据。确定接触点的移动任选地包括确定接 触点的速率(量值)、速度(量值和方向)和/或加速度(量值和/或方向的 改变),所述接触点的移动由一系列接触数据表示。这些操作任选地被应 用于单点接触(例如,单指接触)或者多点同时接触(例如,“多点触摸” /多个手指接触)。在一些实施方案中,接触/运动模块230和显示控制器 256检测触控板上的接触。
在一些实施方案中,接触/运动模块230使用一组一个或多个强度阈值 来确定操作是否已由用户执行(例如,确定用户是否已“点击”图标)。 在一些实施方案中,根据软件参数来确定强度阈值的至少一个子集(例如, 强度阈值不是由具体物理致动器的激活阈值来确定的,并且可在不改变设 备200的物理硬件的情况下被调节)。例如,在不改变触控板或触摸屏显示 器硬件的情况下,触控板或触摸屏的鼠标“点击”阈值可被设定成预定义 的阈值的大范围中的任一个阈值。另外,在一些具体实施中,向设备的用 户提供用于调节一组强度阈值中的一个或多个强度阈值(例如,通过调节 各个强度阈值和/或通过利用对“强度”参数的系统级点击来一次调节多个 强度阈值)的软件设置。
接触/运动模块230任选地检测用户的手势输入。触敏表面上的不同手 势具有不同的接触模式(例如,所检测到的接触的不同运动、计时和/或强 度)。因此,任选地通过检测特定接触模式来检测手势。例如,检测手指 轻击手势包括检测手指按下事件,然后在与手指按下事件相同的位置(或 基本上相同的位置)处(例如,在图标的位置处)检测手指抬起(抬离) 事件。作为另一个示例,在触敏表面上检测手指轻扫手势包括检测手指按 下事件,然后检测一个或多个手指拖动事件,并且随后检测手指抬起(抬 离)事件。
图形模块232包括用于在触摸屏212或其他显示器上呈现和显示图形的 各种已知的软件部件,包括用于改变所显示的图形的视觉冲击(例如,亮 度、透明度、饱和度、对比度或其他视觉特征)的部件。如本文所用,术 语“图形”包括可被显示给用户的任何对象,非限制性地包括文本、网页、 图标(诸如,包括软键的用户界面对象)、数字图像、视频、动画等。
在一些实施方案中,图形模块232存储表示待使用的图形的数据。每 个图形任选地被分配有对应的代码。图形模块232从应用程序等接收指定待 显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数据和其 他图形属性数据,并且然后生成屏幕图像数据,以输出至显示控制器256。
触觉反馈模块233包括用于生成指令的各种软件部件,该指令由一个 或多个触觉输出发生器267使用,以便响应于用户与设备200的交互而在设 备200上的一个或多个位置处产生触觉输出。
在一些示例中作为图形模块232的部件的文本输入模块234提供用于在 各种应用程序(例如,联系人237、电子邮件240、IM 241、浏览器247和 需要文本输入的任何其他应用程序)中输入文本的软键盘。
GPS模块235确定设备的位置,并提供该信息以供在各种应用程序中 使用(例如提供给电话238以供在基于位置的拨号中使用;提供给相机243 作为图片/视频元数据;以及提供给提供基于位置的服务的应用,诸如天气 桌面小程序、本地黄页桌面小程序和地图/导航桌面小程序)。
数字助理客户端模块229包括各种客户端侧数字助理指令,以提供数 字助理的客户端侧功能。例如,数字助理客户端模块229能够通过便携式多 功能设备200的各种用户接口(例如,麦克风213、一个或多个加速度计 268、触敏显示器系统212、一个或多个光学传感器264、其他输入控制设备 216等)接受声音输入(例如,语音输入)、文本输入、触摸输入和/或手 势输入。数字助理客户端模块229还能够通过便携式多功能设备200的各种 输出接口(例如,扬声器211、触敏显示器系统212、一个或多个触觉输出 生成器267等)提供音频形式的输出(例如,语音输出)、视觉形式的输出 和/或触觉形式的输出。例如,将输出提供为语音、声音、警报、文本消息、 菜单、图形、视频、动画、振动和/或以上两者或更多者的组合。在操作期 间,数字助理客户端模块229使用RF电路208与DA服务器106通信。
用户数据与模型231包括与用户相关联的各种数据(例如,用户特定 的词汇数据、用户偏好数据、用户指定的名称发音、来自用户电子地址簿 的数据、待办事项、购物清单等)以提供数字助理的客户端侧功能。此外, 用户数据与模型231包括用于处理用户输入并且确定用户意图的各种模型(例如,语音识别模型、统计语言模型、自然语言处理模型、知识本体、 任务流模型、服务模型等)。
在一些示例中,数字助理客户端模块229利用便携式多功能设备200的 各种传感器、子系统和外围设备来从便携式多功能设备200的周围环境采集 附加信息,以建立与用户、当前用户交互和/或当前用户输入相关联的上下 文。在一些示例中,数字助理客户端模块229将上下文信息或其子集与用户 输入一起提供至DA服务器106以帮助推断用户意图。在一些示例中,数字 助理还使用上下文信息来确定如何准备输出并将其传送给用户。上下文信 息被称为上下文数据。
在一些示例中,伴随用户输入的上下文信息包括传感器信息,例如照 明、环境噪声、环境温度、周围环境的图像或视频等。在一些示例中,上 下文信息还可包括设备的物理状态,例如设备取向、设备位置、设备温度、 功率电平、速度、加速度、运动模式、蜂窝信号强度等。在一些示例中, 将与DA服务器106的软件状态相关的信息,例如便携式多功能设备200的 运行过程、已安装程序、过去和当前的网络活动、后台服务、错误日志、 资源使用等,作为与用户输入相关联的上下文信息提供至DA服务器106。
在一些示例中,数字助理客户端模块229响应于来自DA服务器106的 请求而选择性地提供存储在便携式多功能设备200上的信息(例如,用户数 据231)。在一些示例中,数字助理客户端模块229还在DA服务器106请 求时引出来自用户经由自然语言对话或其他用户接口的附加输入。数字助 理客户端模块229将该附加输入传送至DA服务器106,以帮助DA服务器 106进行意图推断和/或实现在用户请求中表达的用户意图。
下面参考图7A至图7C对数字助理进行更详细的描述。应当认识到, 数字助理客户端模块229可包括下文所述的数字助理模块726的任意数量的 子模块。
应用程序236包括以下模块(或指令集)或者其子集或超集:
·联系人模块237(有时称为通讯录或联系人列表);
·电话模块238;
·视频会议模块239;
·电子邮件客户端模块240;
·即时消息(IM)模块241;
·健身支持模块242;
·用于静态图像和/或视频图像的相机模块243;
·图像管理模块244;
·视频播放器模块;
·音乐播放器模块;
·浏览器模块247;
·日历模块248;
·桌面小程序模块249,在一些示例中,其包括以下各项中的一项或 多项:天气桌面小程序249-1、股市桌面小程序249-2、计算器桌 面小程序249-3、闹钟桌面小程序249-4、词典桌面小程序249-5和 由用户获取的其他桌面小程序以及用户创建的桌面小程序249-6;
·用于形成用户创建的桌面小程序249-6的桌面小程序创建器模块 250;
·搜索模块251;
·视频和音乐播放器模块252,其合并了视频播放器模块和音乐播放 器模块;
·记事本模块253;
·地图模块254;以及/或者
·在线视频模块255。
存储在存储器202中的其他应用程序236的示例包括其他文字处理应用 程序、其他图像编辑应用程序、绘图应用程序、呈现应用程序、支持JAVA 的应用程序、加密、数字权限管理、声音识别和声音复制。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、 和文本输入模块234,联系人模块237用于管理通讯录或联系人列表(例如, 存储在存储器202或存储器470中的联系人模块237的应用程序内部状态 292中),包括:将一个或多个姓名添加到通讯录;从通讯录删除姓名;将 电话号码、电子邮件地址、物理地址或其他信息与姓名相关联;将图像与 姓名相关联;对姓名进行归类和分类;提供电话号码或电子邮件地址来发 起和/或促进通过电话238、视频会议模块239、电子邮件240或IM 241进 行的通信;等等。
结合RF电路208、音频电路210、扬声器211、麦克风213、触摸屏 212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块 234,电话模块238用于输入对应于电话号码的字符序列、访问联系人模块 237中的一个或多个电话号码、修改已经输入的电话号码、拨打相应的电话 号码、进行会话以及当会话完成时断开或挂断。如上所述,无线通信使用 多种通信标准、协议和技术中的任一种。
结合RF电路208、音频电路210、扬声器211、麦克风213、触摸屏 212、显示控制器256、光学传感器264、光学传感器控制器258、接触/运动 模块230、图形模块232、文本输入模块234、联系人模块237和电话模块 238,视频会议模块239包括根据用户指令来发起、进行和终止用户与一个 或多个其他参与方之间的视频会议的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、 图形模块232和文本输入模块234,电子邮件客户端模块240包括响应于用 户指令来创建、发送、接收和管理电子邮件的可执行指令。结合图像管理 模块244,电子邮件客户端模块240使得非常容易创建和发送具有由相机模 块243拍摄的静态图像或视频图像的电子邮件。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、 图形模块232和文本输入模块234,即时消息模块241包括用于以下操作的 可执行指令:输入与即时消息对应的字符序列、修改先前输入的字符、传 输相应即时消息(例如,使用短消息服务(SMS)或多媒体消息服务 (MMS)协议以用于基于电话的即时消息或者使用XMPP、SIMPLE、或 IMPS以用于基于互联网的即时消息)、接收即时消息以及查看所接收的即 时消息。在一些实施方案中,所传输和/或接收的即时消息包括图形、照片、 音频文件、视频文件和/或如MMS和/或增强型消息服务(EMS)中支持的其 他附件。如本文所用,“即时消息”是指基于电话的消息(例如,使用 SMS或MMS发送的消息)和基于互联网的消息(例如,使用XMPP、 SIMPLE或IMPS发送的消息)两者。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、 图形模块232、文本输入模块234、GPS模块235、地图模块254和音乐播 放器模块,健身支持模块242包括用于以下各项的可执行指令:创建健身 (例如,具有时间、距离和/或卡路里燃烧目标);与健身传感器(运动设 备)进行通信;接收健身传感器数据;校准用于监视健身的传感器;为健身选择和播放音乐;以及显示、存储和传输健身数据。
结合触摸屏212、显示控制器256、一个或多个光学传感器264、光学 传感器控制器258、接触/运动模块230、图形模块232和图像管理模块244, 相机模块243包括用于以下操作的可执行指令:捕获静态图像或视频(包括 视频流)并且将它们存储到存储器202中、修改静态图像或视频的特征,或 从存储器202删除静态图像或视频。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、 文本输入模块234、和相机模块243,图像管理模块244包括用于排列、修 改(例如,编辑)、或以其他方式操控、加标签、删除、呈现(例如,在 数字幻灯片或相册中)、以及存储静态图像和/或视频图像的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、 图形模块232和文本输入模块234,浏览器模块247包括用于根据用户指令 来浏览互联网,包括搜索、链接至、接收和显示网页或其部分,以及链接 至网页的附件和其他文件的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、 图形模块232、文本输入模块234、电子邮件客户端模块240和浏览器模块 247,日历模块248包括根据用户指令来创建、显示、修改和存储日历以及 与日历相关联的数据(例如,日历条目、待办事项等)的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、 图形模块232、文本输入模块234和浏览器模块247,桌面小程序模块249 是可由用户下载并使用的微型应用程序(例如,天气桌面小程序249-1、股 市桌面小程序249-2、计算器桌面小程序249-3、闹钟桌面小程序249-4和词 典桌面小程序249-5)或由用户创建的微型应用程序(例如,用户创建的桌 面小程序249-6)。在一些实施方案中,桌面小程序包括HTML(超文本标 记语言)文件、CSS(层叠样式表)文件和JavaScript文件。在一些实施方 案中,桌面小程序包括XML(可扩展标记语言)文件和JavaScript文件(例 如,Yahoo!桌面小程序)。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、 图形模块232、文本输入模块234和浏览器模块247,桌面小程序创建器模 块250被用户用于创建桌面小程序(例如,使将网页的用户指定部分变成桌 面小程序)。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232 和文本输入模块234,搜索模块251包括用于根据用户指令来搜索存储器 202中与一个或多个搜索条件(例如,一个或多个用户指定的搜索词)匹配 的文本、音乐、声音、图像、视频和/或其他文件的可执行指令。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、 音频电路210、扬声器211、RF电路208和浏览器模块247,视频和音乐播 放器模块252包括允许用户下载和回放以一种或多种文件格式(诸如MP3 或AAC文件)存储的所记录的音乐和其他声音文件的可执行指令,以及用 于显示、呈现或以其他方式回放视频(例如,在触摸屏212上或在经由外部 端口224连接的外部显示器上)的可执行指令。在一些实施方案中,设备 200任选地包括MP3播放器诸如iPod(Apple Inc.的商标)的功能。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232 和文本输入模块234,记事本模块253包括根据用户指令来创建和管理记事 本、待办事项等的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、 图形模块232、文本输入模块234、GPS模块235和浏览器模块247,地图 模块254用于根据用户指令接收、显示、修改和存储地图以及与地图相关联 的数据(例如,驾驶方向、与特定位置处或附近的商店及其他兴趣点有关 的数据,以及其他基于位置的数据)。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、 音频电路210、扬声器211、RF电路208、文本输入模块234、电子邮件客 户端模块240和浏览器模块247,在线视频模块255包括允许用户访问、浏 览、接收(例如,通过流式传输和/或下载)、回放(例如,在触摸屏上或 经由外部端口224在所连接的外部显示器上)、发送具有至特定在线视频的 链接的电子邮件,以及以其他方式管理一种或多种文件格式(诸如,H.264) 的在线视频的指令。在一些实施方案中,使用即时消息模块241而不是电子 邮件客户端模块240来发送特定在线视频的链接。在线视频应用程序的其他 描述可见于2007年6月20日提交的名称为“Portable Multifunction Device, Method,and Graphical User Interface forPlaying Online Videos”的美国临时专 利申请No.60/936,562和2007年12月31日提交的名称为“Portable Multifunction Device,Method,and Graphical User Interface forPlaying Online Videos”的美国专利申请No.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或者具有对它们的访问权限。在一些实施方案中, 数据更新器276、对象更新器277和GUI更新器278被包括在相应应用程序 236-1或应用程序视图291的单个模块中。在其他实施方案中,它们被包括 在两个或更多个软件模块中。
应当理解,关于触敏显示器上的用户触摸的事件处理的上述论述还适 用于利用输入设备来操作多功能设备200的其他形式的用户输入,并不是所 有用户输入都是在触摸屏上发起的。例如,任选地与单次或多次键盘按下 或按住协作的鼠标移动和鼠标按钮按下;触控板上的接触移动,诸如轻击、 拖动、滚动等;触笔输入;设备的移动;口头指令;检测到的眼睛移动; 生物特征输入;和/或它们的任何组合任选地被用作对应于限定要识别的事 件的子事件的输入。
图3示出了根据一些实施方案的具有触摸屏212的便携式多功能设备 200。触摸屏任选地在用户界面(UI)300内显示一个或多个图形。在本实施 方案以及下文所述的其他实施方案中,用户能够通过例如利用一根或多根 手指302(在图中未按比例绘制)或一支或多支触笔303(在图中未按比例 绘制)在图形上作出手势来选择这些图形中的一个或多个图形。在一些实 施方案中,当用户中断与一个或多个图形的接触时,将发生对一个或多个 图形的选择。在一些实施方案中,手势任选地包括一次或多次轻击、一次 或多次轻扫(从左向右、从右向左、向上和/或向下)和/或已与设备200发 生接触的手指的滚动(从右向左、从左向右、向上和/或向下)。在一些具 体实施中或在一些情况下,不经意地与图形接触不会选择图形。例如,当 与选择对应的手势是轻击时,在应用程序图标上方扫动的轻扫手势任选地 不会选择对应的应用程序。
设备200还包括一个或多个物理按钮,诸如“home”或菜单按钮304。 如前所述,菜单按钮304用于导航到在设备200上执行的一组应用程序中的 任何应用程序236。另选地,在一些实施方案中,菜单按钮被实现为被显示 在触摸屏212上的GUI中的软键。
在一些实施方案中,设备200包括触摸屏212、菜单按钮304、用于使 设备通电/断电和用于锁定设备的下压按钮306、一个或多个音量调节按钮 308、用户身份模块(SIM)卡槽310、耳麦插孔312和对接/充电外部端口224。 下压按钮306任选地用于通过压下该按钮并且将该按钮保持在压下状态持续 预定义的时间间隔来对设备进行开/关机;通过压下该按钮并在该预定义的 时间间隔过去之前释放该按钮来锁定设备;和/或对设备进行解锁或发起解 锁过程。在另选实施方案中,设备200还通过麦克风213接受用于激活或去 激活某些功能的言语输入。设备200还任选地包括用于检测触摸屏212上的 接触的强度的一个或多个接触强度传感器265,和/或用于为设备200的用户 生成触觉输出的一个或多个触觉输出发生器267。
图4是根据一些实施方案的具有显示器和触敏表面的示例性多功能设 备的框图。设备400不必是便携式的。在一些实施方案中,设备400为膝上 型计算机、台式计算机、平板电脑、多媒体播放器设备、导航设备、教育 设备(诸如儿童学习玩具)、游戏系统或控制设备(例如,家用控制器或 工业用控制器)。设备400通常包括一个或多个处理单元(CPU)410、一个 或多个网络或其他通信接口460、存储器470和用于使这些部件互连的一个 或多个通信总线420。通信总线420任选地包括使系统部件互连并且控制系 统部件之间的通信的电路(有时称作芯片组)。设备400包括具有显示器 440的输入/输出(I/O)接口430,该显示器通常是触摸屏显示器。I/O接口430 还任选地包括键盘和/或鼠标(或其他指向设备)450和触控板455、用于在 设备400上生成触觉输出的触觉输出发生器457(例如,类似于上文参考图2A所述的一个或多个触觉输出发生器267)、传感器459(例如,光学传感 器、加速度传感器、接近传感器、触敏传感器和/或接触强度传感器(类似 于上文参考图2A所述的一个或多个接触强度传感器265))。存储器470 包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存 取固态存储器设备;并且任选地包括非易失性存储器,诸如一个或多个磁 盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设 备。存储器470任选地包括远离CPU 410定位的一个或多个存储设备。在 一些实施方案中,存储器470存储与便携式多功能设备200(图2A)的存 储器202中存储的程序、模块和数据结构类似的程序、模块和数据结构或其 子集。此外,存储器470任选地存储在便携式多功能设备200的存储器202中不存在的附加程序、模块和数据结构。例如,设备400的存储器470任选 地存储绘图模块480、呈现模块482、文字处理模块484、网站创建模块486、 盘编辑模块488、和/或电子表格模块490,而便携式多功能设备200(图2A) 的存储器202任选地不存储这些模块。
图4中的上述元件中的每一者在一些示例中存储在一个或多个先前提 到的存储器设备中。上述模块中的每个模块对应于用于执行上述功能的指 令集。上述模块或程序(例如,指令集)不必被实现为独立的软件程序、 过程或模块,因此这些模块的各种子集在各种实施方案中组合或以其他方 式重新布置。在一些实施方案中,存储器470存储上述模块和数据结构的子 集。此外,存储器470存储上文未描述的附加模块和数据结构。
现在将注意力转到可在例如便携式多功能设备200上实现的用户界面 的实施方案。
图5A示出了根据一些实施方案的便携式多功能设备200上的应用程序 菜单的示例性用户界面。类似的用户界面在设备400上实现。在一些实施方 案中,用户界面500包括以下元件或者其子集或超集:
一个或多个无线通信诸如蜂窝信号和Wi-Fi信号的一个或多个信号强度 指示器502;
·时间504;
·蓝牙指示符505;
·电池状态指示符506;
·具有常用应用程序的图标的托盘508,该图标诸如:
ο电话模块238的被标记为“电话”的图标516,该图标任选地 包括未接来电或语音留言的数量的指示符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 Graphical UserInterface 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 具有总线612,该总线将I/O部分614与一个或多个计算机处理器616和存 储器618操作性地耦接。I/O部分614被连接到显示器604,该显示器可具 有触敏部件622,并且任选地还具有触摸强度敏感部件624。此外,I/O部分 614与通信单元630连接,以用于使用Wi-Fi、蓝牙、近场通信(NFC)、蜂窝 和/或其他无线通信技术来接收应用程序和操作系统数据。设备600包括输 入机构606和/或608。例如,输入机构606是可旋转输入设备或者可按压输 入设备以及可旋转输入设备。在一些示例中,输入机构608是按钮。
在一些示例中,输入机构608是麦克风。个人电子设备600包括例如各 种传感器,诸如GPS传感器632、加速度计634、定向传感器640(例如, 罗盘)、陀螺仪636、运动传感器638和/或它们的组合,所有这些设备均可 操作地连接到I/O部分614。
个人电子设备600的存储器618是用于存储计算机可执行指令的非暂态 计算机可读存储介质,该指令当由一个或多个计算机处理器616执行时例如 使得计算机处理器执行上述技术和过程。该计算机可执行指令也例如在任 何非暂态计算机可读存储介质内进行存储和/或传送,以供指令执行系统、 装置或设备诸如基于计算机的系统、包含处理器的系统或可从指令执行系 统、装置或设备获取指令并执行指令的其他系统使用或与其结合。个人电 子设备600不限于图6B的部件和配置,而是可包括多种配置中的其他部件 或附加部件。
如本文所用,术语“示能表示”是指例如在设备200、400和/或600 (图2A、图4和图6A-图6B)的显示屏上显示的用户交互式图形用户界面 对象。例如,图像(例如,图标)、按钮和文本(例如,超链接)各自构 成示能表示。
如本文所用,术语“焦点选择器”是指用于指示用户正与之进行交互 的用户界面的当前部分的输入元件。在包括光标或其他位置标记的一些具 体实施中,光标充当“焦点选择器”,使得当光标在特定用户界面元素 (例如,按钮、窗口、滑块或其他用户界面元素)上方时在触敏表面(例 如,图4中的触控板455或图5B中的触敏表面551)上检测到输入(例如, 按压输入)的情况下,该特定用户界面元素根据所检测到的输入而被调节。 在包括能够实现与触摸屏显示器上的用户界面元素的直接交互的触摸屏显 示器(例如,图2A中的触敏显示器系统212或图5A中的触摸屏212)的一 些具体实施中,在触摸屏上所检测到的接触充当“焦点选择器”,使得当 在触摸屏显示器上在特定用户界面元素(例如,按钮、窗口、滑块或其他 用户界面元素)的位置处检测到输入(例如,由接触进行的按压输入)时, 该特定用户界面元素根据所检测到的输入而被调节。在一些具体实施中, 焦点从用户界面的一个区域移动到用户界面的另一个区域,而无需光标的 对应移动或触摸屏显示器上的接触的移动(例如,通过使用制表键或箭头 键将焦点从一个按钮移动到另一个按钮);在这些具体实施中,焦点选择 器根据焦点在用户界面的不同区域之间的移动而移动。不考虑焦点选择器 所采取的具体形式,焦点选择器通常是由用户控制的以便递送与用户界面 的用户预期的交互(例如,通过向设备指示用户界面的用户期望与其进行 交互的元素)的用户界面元素(或触摸屏显示器上的接触)。例如,在触 敏表面(例如,触控板或触摸屏)上检测到按压输入时,焦点选择器(例 如,光标、接触或选择框)在相应按钮上方的位置将指示用户期望激活相 应按钮(而不是设备显示器上示出的其他用户界面元素)。
如说明书和权利要求中所使用的,接触的“特征强度”这一术语是指 基于接触的一个或多个强度的接触的特征。在一些实施方案中,特征强度 基于多个强度样本。特征强度任选地基于相对于预定义事件(例如,在检 测到接触之后,在检测到接触抬离之前,在检测到接触开始移动之前或之 后,在检测到接触结束之前,在检测到接触的强度增大之前或之后和/或在 检测到接触的强度减小之前或之后)而言在预定时间段(例如,0.05秒、 0.1秒、0.2秒、0.5秒、1秒、2秒、5秒、10秒)期间采集的预定义数量的 强度样本或一组强度样本。接触的特征强度任选地基于以下各项中的一者 或多者:接触强度的最大值、接触强度的均值、接触强度的平均值、接触 强度的前10%处的值、接触强度的半最大值、接触强度的90%最大值等。 在一些实施方案中,在确定特征强度时使用接触的持续时间(例如,在特征强度是接触的强度在时间上的平均值时)。在一些实施方案中,将特征 强度与一组一个或多个强度阈值进行比较,以确定用户是否已执行操作。 例如,该组一个或多个强度阈值包括第一强度阈值和第二强度阈值。在该 示例中,特征强度未超过第一阈值的接触导致第一操作,特征强度超过第 一强度阈值但未超过第二强度阈值的接触导致第二操作,而特征强度超过 第二阈值的接触导致第三操作。在一些实施方案中,使用特征强度与一个 或多个阈值之间的比较来确定是否要执行一个或多个操作(例如,是执行 相应操作还是放弃执行相应操作),而不是用于确定执行第一操作还是第 二操作。
在一些实施方案中,识别手势的一部分以用于确定特征强度。例如, 触敏表面接收连续的轻扫接触,该连续的轻扫接触从起始位置过渡并到达 结束位置,在该结束位置处,接触的强度增加。在该示例中,接触在结束 位置处的特征强度仅基于连续轻扫接触的一部分,而不是整个轻扫接触 (例如,轻扫接触仅位于结束位置处的部分)。在一些实施方案中,在确 定接触的特征强度之前向轻扫接触的强度应用平滑化算法。例如,平滑化 算法任选地包括以下各项中的一种或多种:不加权滑动平均平滑化算法、 三角平滑化算法、中值滤波器平滑化算法和/或指数平滑化算法。在一些情 况下,这些平滑化算法消除了轻扫接触的强度中的窄的尖峰或凹陷,以实 现确定特征强度的目的。
相对于一个或多个强度阈值诸如接触检测强度阈值、轻按压强度阈值、 深按压强度阈值和/或一个或多个其他强度阈值来表征触敏表面上的接触的 强度。在一些实施方案中,轻按压强度阈值对应于这样的强度:在该强度 下设备将执行通常与点击物理鼠标或触控板的按钮相关联的操作。在一些 实施方案中,深按压强度阈值对应于这样的强度:在该强度下设备将执行 与通常与点击物理鼠标或触控板的按钮相关联的操作不同的操作。在一些 实施方案中,当检测到特征强度低于轻按压强度阈值(例如,并且高于标 称接触检测强度阈值,比标称接触检测强度阈值低的接触不再被检测到) 的接触时,设备将根据接触在触敏表面上的移动来移动焦点选择器,而不 执行与轻按压强度阈值或深按压强度阈值相关联的操作。一般来讲,除非 另有陈述,否则这些强度阈值在不同组的用户界面附图之间是一致的。
接触特征强度从低于轻按压强度阈值的强度增大到介于轻按压强度阈 值与深按压强度阈值之间的强度有时被称为“轻按压”输入。接触特征强 度从低于深按压强度阈值的强度增大到高于深按压强度阈值的强度有时被 称为“深按压”输入。接触特征强度从低于接触检测强度阈值的强度增大 到介于接触检测强度阈值与轻按压强度阈值之间的强度有时被称为检测到 触摸表面上的接触。接触特征强度从高于接触检测强度阈值的强度减小到 低于接触检测强度阈值的强度有时被称为检测到接触从触摸表面抬离。在 一些实施方案中,接触检测强度阈值为零。在一些实施方案中,接触检测 强度阈值大于零。
在本文中所述的一些实施方案中,响应于检测到包括相应按压输入的 手势或响应于检测到利用相应接触(或多个接触)执行的相应按压输入来 执行一个或多个操作,其中至少部分地基于检测到该接触(或多个接触) 的强度增大到高于按压输入强度阈值而检测到相应按压输入。在一些实施 方案中,响应于检测到相应接触的强度增大到高于按压输入强度阈值(例 如,相应按压输入的“向下冲程”)来执行相应操作。在一些实施方案中, 按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接触的 强度随后减小到低于按压输入强度阈值,并且响应于检测到相应接触的强 度随后减小到低于按压输入阈值(例如,相应按压输入的“向上冲程”) 来执行相应操作。
在一些实施方案中,设备采用强度滞后以避免有时被称为“抖动”的 意外输入,其中设备限定或选择与按压输入强度阈值具有预定义关系的滞 后强度阈值(例如,滞后强度阈值比按压输入强度阈值低X个强度单位, 或滞后强度阈值是按压输入强度阈值的75%、90%或某个合理比例)。因此, 在一些实施方案中,按压输入包括相应接触的强度增大到高于按压输入强 度阈值以及该接触的强度随后减小到低于对应于按压输入强度阈值的滞后强度阈值,并且响应于检测到相应接触的强度随后减小到低于滞后强度阈 值(例如,相应按压输入的“向上冲程”)来执行相应操作。类似地,在 一些实施方案中,仅在设备检测到接触强度从等于或低于滞后强度阈值的 强度增大到等于或高于按压输入强度阈值的强度并且任选地接触强度随后 减小到等于或低于滞后强度的强度时才检测到按压输入,并且响应于检测 到按压输入(例如,根据环境,接触强度增大或接触强度减小)来执行相 应操作。
为了容易解释,任选地,响应于检测到以下各种情况中的任一种情况 而触发对响应于与按压输入强度阈值相关联的按压输入或响应于包括按压 输入的手势而执行的操作的描述:接触强度增大到高于按压输入强度阈值、 接触强度从低于滞后强度阈值的强度增大到高于按压输入强度阈值的强度、 接触强度减小到低于按压输入强度阈值、和/或接触强度减小到低于与按压 输入强度阈值对应的滞后强度阈值。另外,在将操作描述为响应于检测到 接触的强度减小到低于按压输入强度阈值而执行的示例中,任选地响应于 检测到接触的强度减小到低于对应于并且小于按压输入强度阈值的滞后强 度阈值来执行操作。
3.数字助理系统
图7A示出了根据各种示例的数字助理系统700的框图。在一些示例中, 数字助理系统700在独立式计算机系统上实现。在一些示例中,数字助理系 统700跨多个计算机分布。在一些示例中,数字助理的模块和功能中的一些 被划分成服务器部分和客户端部分,其中客户端部分位于一个或多个用户 设备(例如,设备104、设备122、设备200、设备400或设备600)上并通 过一个或多个网络与服务器部分(例如,服务器系统108)通信,例如,如图1中所示。在一些示例中,数字助理系统700是图1中所示的服务器系统 108(和/或DA服务器106)的具体实施。应当指出,数字助理系统700仅 为数字助理系统的一个示例,且该数字助理系统700具有比所示更多或更少 的部件、组合两个或更多个部件,或者可具有部件的不同配置或布局。图 7A中所示的各种部件在硬件、用于在由一个或多个处理器执行的软件指令、 固件(包括一个或多个信号处理集成电路和/或专用集成电路),或它们的 组合中实现。
数字助理系统700包括存储器702、输入/输出(I/O)接口706、网络通信 接口708,以及一个或多个处理器704。这些部件可通过一条或多条通信总 线或信号线710彼此通信。
在一些示例中,存储器702包括非暂态计算机可读介质,诸如高速随 机存取存储器和/或非易失性计算机可读存储介质(例如,一个或多个磁盘 存储设备、闪存存储器设备或其他非易失性固态存储器设备)。
在一些示例中,I/O接口706将数字助理系统700的输入/输出设备716 诸如显示器、键盘、触摸屏和麦克风耦接至用户界面模块722。I/O接口706 与用户界面模块722一起接收用户输入(例如,语音输入、键盘输入、触摸 输入等)并相应地对这些输入进行处理。在一些示例中,例如,当数字助 理在独立式用户设备上实现时,数字助理系统700包括分别相对于图2A、 图4、图6A至图6B中的设备200、设备400或设备600所描述的部件和I/O 通信接口中的任一者。在一些示例中,数字助理系统700代表数字助理具体 实施的服务器部分,并且可通过位于用户设备(例如,设备104、设备200、 设备400或设备600)上的客户端侧部分与用户进行交互。
在一些示例中,网络通信接口708包括一个或多个有线通信端口712和 /或无线传输和接收电路714。一个或多个有线通信端口经由一个或多个有 线接口例如以太网、通用串行总线(USB)、FIREWIRE等接收和发送通信信 号。无线电路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的计算机可读存储介质存储 用于执行上述过程的指令。一个或多个处理器704执行这些程序、模块和指 令,并从数据结构读取数据或将数据写到数据结构。
操作系统718(例如,Darwin、RTXC、LINUX、UNIX、iOS、OS X、 WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般 系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件 部件和/或驱动器,并且有利于各种硬件、固件和软件部件之间的通信。
通信模块720有利于数字助理系统700与其他设备之间通过网络通信接 口708进行的通信。例如,通信模块720与电子设备(诸如分别在图2A、 图4、图6A至图6B中所示的设备200、400或600)的RF电路208通信。 通信模块720还包括各种部件,用于处理由无线电路714和/或有线通信端 口712所接收的数据。
用户界面模块722经由I/O接口706接收来自用户(例如,来自键盘、 触摸屏、指向设备、控制器和/或麦克风)的命令和/或输入,并在显示器上 生成用户界面对象。用户界面模块722还准备输出(例如,语音、声音、动 画、文本、图标、振动、触觉反馈、光照等)并将其经由I/O接口706(例 如,通过显示器、音频通道、扬声器、触控板等)传送给用户。
应用程序724包括被配置为由所述一个或多个处理器704执行的程序和 /或模块。例如,如果数字助理系统在独立式用户设备上实施,则应用程序 724包括用户应用程序,诸如游戏、日历应用程序、导航应用程序或邮件应 用程序。如果数字助理系统700在服务器上实现,则应用程序724包括例如 资源管理应用程序、诊断应用程序、或调度应用程序。
存储器702还存储数字助理模块726(或数字助理的服务器部分)。在 一些示例中,数字助理模块726包括以下子模块或者其子集或超集:输入/ 输出处理模块728、语音转文本(STT)处理模块730、自然语言处理模块732、 对话流处理模块734、任务流处理模块736、服务处理模块738和语音合成 处理模块740。这些模块中的每一者均具有对以下数字助理模块726的系统 或数据与模型中的一者或多者或者其子集或超集的访问权限:知识本体760、 词汇索引744、用户数据748、任务流模型754、服务模型756和ASR系统 758。
在一些示例中,使用在数字助理模块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系统758。该一个或多个ASR 系统758可处理通过I/O处理模块728接收到的语音输入,以产生识别结果。 每个ASR系统758包括前端语音预处理器。前端语音预处理器从语音输入 中提取代表性特征。例如,前端语音预处理器对语音输入执行傅里叶变换, 以提取表征语音输入的频谱特征作为代表性多维向量的序列。另外,每个 ASR系统758包括一个或多个语音识别模型(例如,声学模型和/或语言模 型)并且实现一个或多个语音识别引擎。语音识别模型的示例包括隐马尔 可夫模型、高斯混合模型、深层神经网络模型、n元语法语言模型以及其他 统计模型。语音识别引擎的示例包括基于动态时间规整的引擎和基于加权 有限状态变换器(WFST)的引擎。使用一个或多个语音识别模型和一个或多 个语音识别引擎来处理前端语音预处理器的所提取的代表性特征以产生中 间识别结果(例如,音素、音素串和子单词),并且最终产生文本识别结 果(例如,单词、单词串、或符号序列)。在一些示例中,语音输入至少 部分地由第三方服务处理或在用户的设备(例如,设备104、设备200、设 备400或设备600)上处理,以产生识别结果。一旦STT处理模块730产生 包含文本串(例如,单词,或单词的序列,或符号序列)的识别结果,识 别结果即被传送至自然语言处理模块732以供意图推断。在一些示例中, STT处理模块730产生语音输入的多个候选文本表示。每个候选文本表示是 与语音输入对应的单词或符号的序列。在一些示例中,每个候选文本表示 与语音识别置信度得分相关联。基于语音识别置信度得分,STT处理模块 730对候选文本表示进行排名并将n个最佳(例如,n个排名最高)候选文 本表示提供给自然语言处理模块732以供意图推断,其中n为大于零的预定 整数。例如,在一个示例中,仅将排名最高的(n=1)候选文本表示递送至自 然语言处理模块732以供意图推断。又如,将5个排名最高的(n=5)候选文 本表示传递给自然语言处理模块732以供意图推断。
有关语音转文本处理的更多细节在提交于2011年9月20日的名为“Consolidating Speech Recognition Results”的美国实用新型专利申请序列 号13/236,942中有所描述,其全部公开内容以引用方式并入本文。
在一些示例中,STT处理模块730包括可识别单词的词汇和/或经由语 音字母转换模块731访问该词汇。每个词汇单词与语音识别语音字母表中表 示的单词的一个或多个候选发音相关联。具体地,可识别单词的词汇包括 与多个候选发音相关联的单词。例如,该词汇包括与
Figure BDA0002695099990000551
Figure BDA0002695099990000552
的候选发音相关联的单词“tomato”。另外,词汇单词与基于来自用户的先 前语音输入的自定义候选发音相关联。此类自定义候选发音存储在STT处 理模块730中,并且经由设备上的用户配置文件与特定用户相关联。在一些 示例中,单词的候选发音基于单词的拼写以及一个或多个语言学和/或语音 学规则确定。在一些示例中,候选发音手动生成,例如,基于已知的标准 发音而手动生成。
在一些示例中,基于候选发音的普遍性来对候选发音进行排名。例如, 候选发音
Figure BDA0002695099990000553
的排名高于
Figure BDA0002695099990000554
因为前者是更常用的发音(例如, 在所有用户中,对于特定地理区域的用户而言,或者对于任何其他合适的 用户子集而言)。在一些示例中,基于候选发音是否为与用户相关联的自 定义候选发音来对候选发音进行排名。例如,自定义候选发音的排名高于 标准候选发音。这可用于识别具有偏离规范发音的独特发音的专有名词。 在一些示例中,候选发音与一个或多个语音特征诸如地理起源、国家或种 族相关联。例如,候选发音
Figure BDA0002695099990000561
与美国相关联,而候选发音
Figure BDA0002695099990000562
与英国相关联。此外,候选发音的排名基于存储在设备上的用户配置文件 中的用户的一个或多个特征(例如,地理起源、国家、种族等)。例如, 可从用户配置文件确定该用户与美国相关联。基于用户与美国相关联,候 选发音
Figure BDA0002695099990000563
(与美国相关联)可比候选发音
Figure BDA0002695099990000564
(与英国相关联) 排名更高。在一些示例中,经排名的候选发音中的一个可被选作预测发音 (例如,最可能的发音)。
接收到语音输入时,STT处理模块730被用来(例如,使用声音模型) 确定对应于该语音输入的音素,然后尝试(例如,使用语言模型)确定匹 配该音素的单词。例如,如果STT处理模块730首先识别对应于该语音输 入的一部分的音素序列
Figure BDA0002695099990000565
那么它随后可基于词汇索引744确定该 序列对应于单词“tomato”。
在一些示例中,STT处理模块730使用模糊匹配技术来确定话语中的 单词。因此,例如,STT处理模块730确定音素序列
Figure BDA0002695099990000566
对应于单词 “tomato”,即使该特定音素序列不是该单词的候选音素序列。
数字助理的自然语言处理模块732(“自然语言处理器”)获取由STT 处理模块730生成的n个最佳候选文字表示(“单词序列”或“符号序 列”),并尝试将每个候选文本表示与由数字助理所识别的一个或多个 “可执行意图”相关联。“可执行意图”(或“用户意图”)表示可由数 字助理执行并且可具有在任务流模型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以确定“朋友”是哪些人以及“生日派对”将 于何时何地举行,而不需要用户在其请求中明确地提供此类信息。
应认识到,在一些示例中,利用一个或多个机器学习机构(例如,神 经网络)来实现自然语言处理模块732。具体地,一个或多个机器学习机构 被配置为接收候选文本表示和与候选文本表示相关联的上下文信息。基于 候选文本表示和相关联的上下文信息,一个或多个机器学习机构被配置为 基于一组候选可执行意图确定意图置信度得分。自然语言处理模块732可基 于所确定的意图置信度得分从一组候选可执行意图中选择一个或多个候选 可执行意图。在一些示例中,还利用知识本体(例如,知识本体760)从一 组候选可执行意图中选择一个或多个候选可执行意图。
基于符号串搜索知识本体的其他细节在提交于2008年12月22日的名 为“Methodand Apparatus for Searching Using An Active Ontology”的美国实 用新型专利申请序列号12/341,743中有所描述,其全部公开内容以引用方式 并入本文。
在一些示例中,一旦自然语言处理模块732基于用户请求识别出可执 行意图(或域),自然语言处理模块732便生成结构化查询以表示所识别的 可执行意图。在一些示例中,结构化查询包括针对可执行意图的域内的一 个或多个节点的参数,并且所述参数中的至少一些参数填充有用户请求中 指定的特定信息和要求。例如,用户说“帮我在寿司店预订晚上7点的座 位。”在这种情况下,自然语言处理模块732能够基于用户输入将可执行意图正确地识别为“餐厅预订”。根据知识本体,“餐厅预订”域的结构化 查询包括参数诸如{菜系}、{时间}、{日期}、{派对人数}等。在一些示例 中,基于语音输入和使用STT处理模块730从语音输入得出的文本,自然 语言处理模块732针对餐厅预订域生成部分结构化查询,其中部分结构化查 询包括参数{菜系=“寿司类”}以及{时间=“晚上7点”}。然而,在该示例 中,用户话语包含不足以完成与域相关联的结构化查询的信息。因此,基 于当前可用信息,在结构化查询中未指定其他必要参数诸如{派对人数}和 {日期}。在一些示例中,自然语言处理模块732用所接收的上下文信息来填 充结构化查询的一些参数。例如,在一些示例中,如果用户请求“附近的” 寿司店,自然语言处理模块732用来自用户设备的GPS坐标来填充结构化 查询中的{位置}参数。
在一些示例中,自然语言处理模块732识别针对从STT处理模块730 所接收的每个候选文本表示的多个候选可执行意图。另外,在一些示例中, 针对每个所识别的候选可执行意图生成相应的结构化查询(部分地或全部 地)。自然语言处理模块732确定针对每个候选可执行意图的意图置信度得 分,并基于意图置信度得分对候选可执行意图进行排名。在一些示例中, 自然语言处理模块732将所生成的一个或多个结构化查询(包括任何已完成的参数)传送至任务流处理模块736(“任务流处理器”)。在一些示例中, 针对m个最佳(例如,m个排名最高的)候选可执行意图的一个或多个结 构化查询被提供给任务流处理模块736,其中m为预定大于零的整数。在一 些示例中,将针对m个最佳候选可执行意图的一个或多个结构化查询连同 对应的一个或多个候选文本表示提供给任务流处理模块736。
基于根据语音输入的多个候选文本表示所确定的多个候选可执行意图 推断用户意图的其他细节在2014年6月6日提交的名称为“System and Method for Inferring UserIntent From Speech Inputs”的美国实用新型专利申 请14/298,725中有所描述,其全部公开内容以引用方式并入本文。
任务流处理模块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咖啡馆的服务器或诸如
Figure BDA0002695099990000621
的餐厅预订系统,(2)以网站上的 形式输入日期、时间和派对人数信息,(3)提交表单,以及(4)在用户的日历 中形成针对预订的日历条目。
在一些示例中,任务流处理模块736在服务处理模块738(“服务处理 模块”)的辅助下完成用户输入中所请求的任务或者提供用户输入中所请 求的信息性回答。例如,服务处理模块738代表任务流处理模块736发起电 话呼叫、设定日历条目、调用地图搜索、调用用户设备上安装的其他用户 应用程序或与所述其他应用程序进行交互,以及调用第三方服务(例如, 餐厅预订门户网站、社交网站、银行门户网站等)或与第三方服务进行交 互。在一些示例中,通过服务模型756中的相应服务模型指定每项服务所需 的协议和应用程序编程接口(API)。服务处理模块738针对服务访问适当的 服务模型,并依据服务模型根据该服务所需的协议和API生成针对该服务 的请求。
例如,如果餐厅已启用在线预订服务,则餐厅提交服务模型,该服务 模型指定进行预订的必要参数以及将必要参数的值传送至在线预订服务的 API。在被任务流处理模块736请求时,服务处理模块738可使用存储在服 务模型中的Web地址来建立与在线预订服务的网络连接,并将预订的必要 参数(例如,时间、日期、派对人数)以根据在线预订服务的API的格式 发送至在线预订界面。
在一些示例中,自然语言处理模块732、对话流处理模块734以及任务 流处理模块736被共同且反复地使用,以推断并限定用户的意图、获取信息 以进一步明确并细化用户意图并最终生成响应(即,输出至用户,或完成 任务)以满足用户的意图。所生成的响应是至少部分地满足用户意图的对 语音输入的对话响应。另外,在一些示例中,所生成的响应被输出为语音 输出。在这些示例中,所生成的响应被发送到语音合成处理模块740(例如,语音合成器),其中可处理所生成的响应以将对话响应以语音形式合成。 在其他示例中,所生成的响应是与满足语音输入中的用户请求相关的数据 内容。
在任务流处理模块736接收到来自自然语言处理模块732的多个结构化 查询的示例中,任务流处理模块736首先处理所接收结构化查询的第一结构 化查询以试图完成第一结构化查询和/或执行由第一结构化查询所表示的一 个或多个任务或动作。在一些示例中,第一结构化查询对应于排名最高的 可执行意图。在其他示例中,第一结构化查询选自基于对应的语音识别置 信度得分和对应的意图置信度得分的组合而接收的结构化查询。在一些示 例中,如果任务流处理模块736在第一结构化查询的处理期间(例如,由于 无法确定必要的参数)遇到错误,任务流处理模块736可继续选择和处理所 接收的结构化查询中与排名较低的可执行意图对应的第二结构化查询。例 如基于对应候选文本表示的语音识别置信度得分、对应候选可执行意图的 意图置信度得分、第一结构化查询中的缺失的必要参数或它们的任何组合 来选择第二结构化查询。
语音合成处理模块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 to Perform”的美国实用新型专利申请13/251,088中,其全 部公开内容以引用方式并入本文。
4.用于选择上下文共享组的上下文收集器的系统和技术
图8示出了根据各种示例的用于选择设备圈的上下文收集器的系统和 技术。系统800包括用户设备802、公共设备804、用户设备806和用户设 备808。用户设备802、用户设备806和用户设备808全部是客户端设备 (例如,用户设备104、122、200、400或600)。例如,用户设备802是
Figure BDA0002695099990000641
用户设备806是Apple
Figure BDA0002695099990000642
用户设备808是
Figure BDA0002695099990000643
客户端设备注册到单个用户。例如,用户设备802可注册到第一用户,并且用户设备 806和用户设备808可注册到第二用户。公共设备804是具有与各种用户设 备相同或类似的数字助理能力的智能音箱。公共设备是未注册到单个用户 的电子设备或者注册到多个用户的电子设备(例如,使得该公共设备可由 多个用户使用而无需附加的用户注册和/或用户认证要求)。例如,公共设 备804是
Figure BDA0002695099990000644
公共设备的另一个示例是智能电视(例如,Apple
Figure BDA0002695099990000645
)。
系统800还包括网络810。网络810是无线通信网络(例如,网络 110)。在一些示例中,系统800包括一个或多个远程设备(例如,一个或 多个远程服务器(例如,DA服务器106)、本地服务器、云计算系统等)。 应当认识到,在这些示例中,由用户设备802、公共设备804、用户设备 806和/或用户设备808执行的任何操作可替代地由该一个或多个远程设备执 行。例如,该一个或多个服务器可执行用户设备802、公共设备804、用户 设备806和/或用户设备808的相应DA客户端模块(例如,DA客户端模块 229)的操作。
如箭头812所示,用户设备802连接到网络810。在该过程的此时,公 共设备804、用户设备806和用户设备808也连接到网络810。在用户设备 802连接到网络810之后,用户设备802加入上下文共享组814,该上下文 共享组还包括公共设备804、、用户设备806和用户设备808。“上下文共 享组”(也称为“设备圈”)是两个或更多个电子设备(例如,在特定位置内)的集合,这些电子设备与参与该上下文共享组的至少一个电子设备 (例如,与该上下文共享组的“上下文收集器”)共享上下文信息。上下 文共享组814与特定位置(例如,家、办公室等)相关联。因此,参与上下 文共享组814的电子设备各自位于特定位置的区域(例如,房间、楼层等) 中。在一些示例中,上下文共享组814不与特定位置相关联,因此参与上下文共享组814的电子设备不需要位于单个位置中(例如,电子设备可位于两 个独立的家中)。
在一些示例中,响应于经历“设备状态改变”(下文更详细地描述设 备状态改变),参与上下文共享组的电子设备自动与该上下文共享组的 “上下文收集器”共享上下文信息。上下文收集器是从参与上下文共享组 的电子设备接收、聚合并存储上下文信息的电子设备。此外,上下文收集 器将上下文共享组的“聚合上下文”(其包括从参与上下文共享组的一个 或多个电子设备接收的上下文信息)提供给参与上下文共享组的一个或多 个电子设备(例如,响应于例如从一个或多个电子设备接收的对聚合上下 文信息的请求)。在一些示例中,上下文共享组的上下文收集器是参与上 下文共享组的电子设备(例如,用户设备或公共设备)。在其他示例中, 上下文收集器是不参与上下文共享组的远程设备,因此不与参与上下文共 享组的电子设备共享其自己的上下文信息。可用作上下文收集器的远程设备的示例包括一个或多个服务器(例如,DA服务器106)、一个或多个云 计算系统、一个或多个本地服务器等。
如下文将参考图8所述,参与上下文共享组的电子设备在开始从参与 上下文共享组的其他电子设备接收上下文信息并聚合上下文信息之前首先 被“挑选”(即,被选择)作为上下文收集器。需注意,虽然图8和下面的 对应描述讨论了针对上下文共享组814的单个上下文收集器的选择,但是在 一些示例中,上下文共享组814包括多于一个上下文收集器(例如,两个或 三个上下文收集器)。
在一些示例中,用户设备802响应于连接到网络810而自动加入上下文 共享组814。在一些示例中,用户设备802必须连接到网络810以便加入上 下文共享组814。在这些示例中,参与上下文共享组814的电子设备中的每 个电子设备也连接到网络810。换句话讲,在这些示例中,参与上下文共享 组814的每个电子设备必须连接到网络810。在一些示例中,用户设备802 加入上下文共享组814而不必连接到网络810。在这些示例中的一些示例中, 用户设备802在与已经参与上下文共享组的至少一个电子设备(例如,与公 共设备804)建立通信连接(例如,短距离通信连接(例如,蓝牙连接、蓝 牙低功耗(BTLE)连接等))时加入上下文共享组814。
在一些示例中,用户设备802必须在上下文共享组814中登记以便加入 上下文共享组814。例如,在上下文共享组814中登记用户设备802可包括 用户设备802的用户经由存储在用户设备802上的具有上下文共享组功能的 软件应用程序(例如,经由
Figure BDA0002695099990000661
应用程序)和/或经由具有上下文共享 组功能的网站向上下文共享组814注册用户设备802。这可包括用户设备 802向已经存在的上下文共享组814(例如,由参与上下文共享组814的另 一个电子设备创建)注册,或者创建上下文共享组814并且随后在上下文共 享组814创建之后向该上下文共享组814注册。在一些示例中,在上下文共 享组814中登记包括用户设备802准许对登记在上下文共享组814中的其他 电子设备的访问/允许登记在上下文共享组814中的其他电子设备接收、共 享、存储和/或利用与用户设备802相关联的上下文信息、个人信息(例如, 电子邮件地址、家庭地址、支付信息等)和/或用户数据(例如,用户的媒体、联系人、语音配置文件、偏好等)(其包括本地存储在用户设备802上 和/或远程存储在一个或多个远程设备上(例如,从用户设备802同步到一 个或多个服务器上)的上下文信息、用户数据和/或个人信息)。
在上述示例中,在用户设备802加入上下文共享组814之前,用户设备 802确定其是否被登记在上下文共享组814中。然后,用户设备802仅在其 确定其被登记在上下文共享组814中的情况下加入上下文共享组813。如果 用户设备802确定其未被登记在上下文共享组814中,则用户设备802放弃 加入上下文共享组814。
在用户设备802加入上下文共享组814之后(例如,紧接之后或之后不 久(例如,几分钟之后)),参与上下文共享组814的电子设备执行上下文 收集器“挑选”,这是用来挑选(即,选择)参与上下文共享组814的电子 设备中的一个电子设备作为上下文共享组的上下文收集器的过程。如上所 述,在一些示例中,参与上下文共享组814的多于一个电子设备被挑选为上 下文收集器。在一些示例中,用户设备802(和参与上下文共享组814的其 他电子设备)响应于加入上下文共享组814(例如,紧接在加入之后)而执 行上下文收集器挑选。在一些示例中,用户设备802(和参与上下文共享组 814的其他电子设备)响应于参与上下文共享组814的电子设备(例如,当 前上下文收集器)离开上下文共享组(例如,与网络810断开连接,从与参 与上下文共享组814的另一个电子设备的通信连接断开连接,和/或离开与上下文共享组814相关联的特定位置)而执行上下文收集器挑选。需注意, 如下文将讨论的,即使上下文共享组814已经包括上下文收集器,并且即使 上下文共享组814仅允许单个上下文收集器,参与上下文共享组814的电子 设备也可执行上下文收集器挑选。
上下文收集器挑选开始于用户设备802(以及参与上下文共享组814的 其他电子设备中的每一个电子设备)基于用户设备802和网络810之间的连 接性的强度和/或基于用户设备802的电源状态(例如,有线电源连接对比 电池电量和/或剩余电池电量)确定收集器得分。例如,用户设备802和网 络810之间更强的连接将导致更高的上下文收集器得分。类似地,用户设备 802的电源越稳定,用户设备802的上下文收集器得分将越高(例如,有线电源连接比电池电源更稳定,并且全电池电量比低电池电量更稳定)。在 一些示例中,收集器得分还基于用户设备802移进和移出上下文共享组814 的频率(例如,用户设备802连接到网络810/从网络810断开连接的频率和 /或用户设备802进入和/或离开与上下文共享组814相关联的特定位置的频 率)。在一些示例中,上下文收集器得分还基于用户设备802将上下文信息 保持在其存储器中的稳定性。在一些示例中,上下文收集器得分还基于用 户设备802和参与上下文共享组814的其他电子设备之间的通信连接的稳定 性。在一些示例中,上下文收集器得分还基于用户设备802到参与上下文共 享组814的其他电子设备的可达性(例如,用户设备802通过各种网络/其 他通信协议可达到的设备越多,上下文收集器得分越高)。在确定上下文 收集器得分时考虑的上述因素重视电子设备参与上下文共享组的稳定性、 与其他电子设备通信的能力和/或存储上下文信息的能力,因为希望上下文 共享组814具有尽可能频繁地可用以接收、聚合、存储和/或发送上下文信 息的上下文收集器。
如箭头816所示,在用户设备802确定上下文收集器得分之后,用户设 备802经由网络810将上下文收集器得分(例如,对应于上下文收集器得分 的数据)发送到参与上下文共享组814的每个其他电子设备(即,公共设备 804、用户设备806和用户设备808)。在一些示例中,用户设备802还发 送指示用户设备802当前是否是上下文收集器的上下文收集器指示(也称为 上下文收集器“标记”)。例如,用户设备802在发送上下文收集器得分的 同时或之后不久发送上下文收集器指示。如果(1)用户设备802先前在加入 上下文共享组814之后(即,在如箭头812所示连接到网络810之后)被挑 选为上下文收集器和/或如果(2)用户设备802在用户设备802最后一次参与 上下文共享组814(即,在离开上下文共享组814之前,并且在如箭头812 所示连接到网络810之后再次加入上下文共享组814)时被挑选为上下文收 集器,则用户设备802的上下文收集器指示将指示用户设备802是上下文收 集器。否则,上下文收集器指示将指示用户设备802不是上下文收集器。
如箭头818所示,公共设备804、用户设备806和用户设备808各自在 用户设备802发送其上下文收集器得分(以及在一些示例中,其上下文收集 器指示,如箭头816所示)之前、同时或之后不久将这三者相应的上下文收 集器得分(以及在一些示例中,其相应的上下文收集器指示)发送到用户 设备802。虽然在图8中未示出,但是公共设备804、用户设备806和用户 设备808还将其相应的上下文收集器得分(并且在一些示例中,其相应的上 下文收集器指示)彼此发送。这样,在箭头816和箭头818之后,参与上下 文共享组814的每个电子设备将具有对应于参与上下文共享组814的其他电 子设备中的每个电子设备的上下文收集器得分(并且在一些示例中,具有 这样的上下文收集器指示)。
在接收到上下文收集器得分之后,用户设备802(以及参与上下文共享 组814的其他电子设备)基于上下文收集器得分确定参与上下文共享组814 的电子设备中的哪个电子设备将挑选为上下文收集器。其他电子设备还基 于已提供的上下文收集器得分来进行该确定。确定上下文共享组814中包括 的电子设备中的哪个电子设备将挑选为上下文收集器包括用户设备802将其 自己的上下文收集器得分与从公共设备804、用户设备806和用户设备808 接收的上下文收集器得分进行比较。其他电子设备还将自己的上下文收集 器得分与接收到的得分进行比较。然后,基于该比较,用户设备802(和参 与上下文共享组814的其他电子设备)识别最高上下文收集器得分,并挑选 具有最高上下文收集器得分的电子设备作为上下文收集器。
由于公共设备804、用户设备806和用户设备808基于与用户设备802 相同的数据和信息进行上述确定,因此它们各自还挑选与用户设备802相同 的电子设备作为上下文收集器。因此,参与上下文共享组814的电子设备将 基于其自己的上下文收集器得分比较来知道其是否被挑选为上下文收集器。 然而,在一些示例中,参与上下文共享组814的每个电子设备向其他电子设 备发送挑选指示,该挑选指示指示每个电子设备所挑选的上下文收集器。
在用户设备802、公共设备804、用户设备806和用户设备808各自发 送上下文收集指示的上述示例中,确定参与上下文共享组814的电子设备中 的哪个电子设备将挑选为上下文收集器还包括用户设备802(以及参与上下 文共享组814的其他电子设备)基于所接收的上下文收集者指示确定上下文 共享组814当前是否包括上下文收集器。在这些示例中,如果用户设备802 确定上下文共享组814已经包括上下文收集器,则用户设备802挑选现有上 下文收集器作为上下文共享组814的上下文收集器,而不管上下文收集器得 分比较结果如何。如果用户设备802确定上下文共享组814已经包括两个或 更多个上下文收集器,则用户设备802基于所确定的上下文收集器得分来挑 选上下文收集器(如上所述)。这继而改善了上下文收集器的稳定性,因 为其确保上下文共享组814的上下文收集器将不会改变,除非现有上下文收 集器离开上下文共享组814。
需注意,在上下文共享组814包括多于一个(例如,两个)上下文收 集器的上述示例中,如果所接收的上下文收集器指示指示上下文共享组814 包括多于允许的上下文收集器数量,则用户设备802(以及参与上下文共享 组814的其他电子设备)将基于所确定的上下文收集器得分的比较来挑选上 下文收集器。例如,如果上下文共享组可包括两个上下文收集器,并且所 接收的上下文收集器指示指示当前有两个上下文收集器参与上下文共享组 814,则无论上下文收集器得分比较结果如何,用户设备802都将挑选这两 个现有上下文收集器。然而,如果所接收的上下文收集器指示指示当前存 在三个或更多个上下文收集器参与上下文共享组814,则用户设备802将基 于所确定的上下文收集器得分的比较来挑选上下文收集器。
例如,如果用户设备802(和参与上下文共享组814的其他电子设备) 挑选用户设备802作为上下文共享组814的上下文收集器,则用户设备802 将与公共设备804、用户设备806以及用户设备808(经由网络810)建立 通信连接,使得用户设备802可从那些电子设备中的一个或多个电子设备接 收上下文信息并且将上下文共享组的聚合上下文(例如,从参与上下文共 享组814的一个或多个(例如,每个)电子设备接收的所存储的上下文信息 集合)发送到那些电子设备中的一个或多个电子设备(例如,响应于接收 到的对聚合上下文的请求)。如果挑选公共设备804、用户设备806和用户 设备808中的一个电子设备作为上下文收集器,则那些设备将类似地建立与 参与上下文共享组814的另一个电子设备的通信连接。
如上所述,在一些示例中,响应于经历“设备状态改变”,参与上下 文共享组的电子设备自动与上下文共享组的上下文收集器共享上下文信息。 设备状态改变的示例包括媒体回放、所存储的软件应用程序的激活(例如, 打开)、定时器事件(例如,电子设备的定时器响起)、闹钟事件(例如, 电子设备的闹钟响起)、电源状态的改变(例如,电子设备开机或关机)、 显示器可见性的改变(例如,电子设备的显示器从显示器向下位置重新定 位到显示器向上位置(使得显示器对于电子设备的处于显示器向上位置的 用户可见)),检测到数字助理触发器单词或短语(例如,“嘿,Siri”、 “Siri”等),经由按压或保持设备上的物理按钮发起数字助理对话会话, 以及数字助理对话会话的结束(例如,在电子设备的数字助理提供/输出对 用户请求的数字助理响应之后)。
例如,如图8所示,一旦闹钟事件820开始,用户设备808就经历设备 状态改变。因此,用户设备808在闹钟事件820开始之后不久(例如,紧接 在该闹钟事件之后或之后几秒(例如,之后0.5秒、之后1秒等))将与用 户设备808相关联的上下文信息发送到上下文共享组814的所挑选的上下文 收集器。如箭头822a所示,如果用户设备802被挑选为上下文收集器,则 用户设备808将上下文信息发送到用户设备802。另选地,如箭头822b所 示,如果公共设备804被挑选为上下文收集器,则用户设备808将上下文信 息发送到公共设备804。除了将上下文信息发送到上下文收集器(例如,用 户设备802或公共设备804)之外,用户设备808还将设备标识(也称为设 备标识符)发送到上下文收集器(例如,与上下文信息一起)。在一些示 例中,设备标识符是预定(例如,预定序列号等)。在一些示例中,设备 标识符由用户设备808随机生成(例如,随机生成的数字)。在一些示例中, 在加入上下文共享组814时,由上下文共享组814的上下文收集器为用户设 备808分配设备标识符。
响应于接收到设备标识符,上下文收集器存储用户设备808和设备标 识符之间的关联。如将在下文参考图9更详细地描述的,所存储的电子设备 与其设备标识符之间的关联用于将命令发送到特定电子设备。具体地讲, 在一些示例中,上下文收集器通知参与上下文共享组的电子设备所存储的 关联,使得每个电子设备能够基于对应于一个或多个其他电子设备的设备 标识符来将命令(例如,从远程设备接收的命令)中继/发送到该一个或多 个其他电子设备。当将从用户设备808接收的上下文信息添加到上下文共享 组814的所存储的聚合上下文时,上下文收集器还将对应于用户设备808的 设备标识符与该上下文信息相关联。这样,可基于聚合上下文中包括的上 下文信息的相关联的设备标识符来组织该上下文信息。如将在下文参考图9 更详细地描述的,当选择一个或多个电子设备以响应于用户请求而执行一 个或多个任务时,一个或多个远程设备(例如,一个或多个服务器)使用在聚合上下文中包括的设备标识符。
由电子设备(例如,用户设备808)响应于经历设备状态改变而发送的 上下文信息包括与该电子设备相关联的各种类型的上下文信息。电子设备 响应于经历设备状态改变而发送的上下文信息的示例包括设备状态改变信 息(例如,状态改变类型(例如,定时器事件、闹钟事件、数字助理对话 会话的结束等)、状态改变时间等)、设备能力信息(例如,设备的类型、 处理能力、存储器可用性、显示器信息(例如,设备是否具有显示器和/或 显示器的尺寸)、扬声器信息(例如,设备是否具有扬声器和/或扬声器的 响度)等),以及上下文状态信息(例如,设备位置(例如,基于来自 GPS模块235的GPS数据和/或来自具有上下文共享组功能的软件应用程序 (例如,
Figure BDA0002695099990000711
)的信息)、显示器可见性(例如,显示器向上或显示 器向下)、用户注意力信息(例如,用户当前是否正在查看设备显示器 (例如,基于来自设备的前部和/或后部上的光学传感器264的信息))、 网络连接(例如,到网络810)的强度、电池电量、电源类型(例如,电池 对比有线电源)等)。
如上所述,上下文共享组814的所挑选的上下文收集器从参与上下文 共享组814的一个或多个电子设备接收上述上下文信息,并且随后聚合该上 下文信息并将其存储在聚合上下文中。此外,上下文收集器在其从该一个 或多个电子设备接收附加的上下文信息时更新聚合上下文。例如,如果用 户设备808将在闹钟事件820之后经历另一设备状态改变,则用户设备808 将其最新/最近的上下文信息发送到上下文共享组814的上下文收集器,使 得该上下文收集器可将与用户设备808相关联的新上下文信息结合到聚合上 下文中和/或从聚合上下文中移除与用户设备808相关联的过期/先前上下文 信息(例如,移除与新接收的上下文信息不同/冲突的先前上下文信息)。
在一些示例中,上下文收集器仅存储从参与上下文共享组814的每个 电子设备接收的最近上下文信息(因为上下文收集器在接收到与设备相关 联的新上下文信息之后移除/删除先前接收到的与同一设备相关联的上下文 信息)。在一些示例中,上下文收集器在移除/删除与电子设备相关联的上 下文信息之前将该上下文信息存储预定时间段(例如,1小时、1天、1周 等)。在一些示例中,上下文收集器存储来自预先确定次数(例如,3、5、 10等)的先前上下文信息发送的与电子设备相关联的上下文信息。例如, 上下文收集器可存储来自每个电子设备的最后五次上下文信息发送的上下 文信息。在一些示例中,上下文收集器存储每个电子设备的短事件历史。 在一些实施例中,该短历史基于事件的类型。例如,上下文收集器可存储 对应于每个电子设备的最后三次闹钟事件的数据。在一些示例中,当电子 设备离开上下文共享组814时,上下文收集器移除/删除该电子设备的上下 文信息。
然后,如将在下文参考图9和图11至图13更详细地描述的,响应于从 参与上下文共享组814的一个或多个电子设备接收到对聚合上下文的请求, 上下文收集器将聚合上下文(或聚合上下文的至少一部分)发送到该一个 或多个电子设备。在一些示例中,将聚合上下文发送到该一个或多个电子 设备使得该一个或多个电子设备基于聚合上下文(或基于聚合上下文的至 少一部分)获得对用户请求的数字助理响应。
5.用于在上下文共享组中执行任务的系统和技术
图9示出了根据各种示例的用于执行上下文共享组中的一个或多个任 务的系统和技术。系统900包括公共设备904、用户设备906、公共设备908 和用户设备910,所有这些设备都参与上下文共享组914(其与特定位置 (例如,家、办公室等)相关联)。用户设备906和用户设备910均为客户 端设备(例如,用户设备104、122、200、400或600)。例如,用户设备906和用户设备910均为
Figure BDA0002695099990000721
在下面描述的示例中,用户设备906注 册到用户902,而用户设备910未注册到用户902。公共设备904是具有与 用户设备相同或类似的数字助理能力的智能音箱。公共设备908是具有与用 户设备相同或类似的数字助理能力的智能电视(连接的显示器未示出)。 公共设备908是上下文共享组914的上下文收集器(例如,因为公共设备 908先前被挑选为上下文收集器)。如上文参考图8所讨论的,公共设备未 注册到单个用户,或者注册到多个用户(例如,使得公共设备可由多个用 户使用而无需附加的用户注册和/或用户认证要求)。例如,公共设备904 是
Figure BDA0002695099990000731
公共设备910是Apple
Figure BDA0002695099990000732
系统900还包括网络912和服务器916(例如,DA服务器106)。网 络912是无线通信网络(例如,网络110)。如图所示,公共设备904、用 户设备906、公共设备908和用户设备910经由网络912彼此通信并且与服 务器916通信(并且因此各自连接到网络912)。此外,服务器916是不参 与上下文共享组914的远程设备。在一些示例中,系统900包括一个或多个 其他远程设备(例如,本地服务器、云计算系统等)来代替服务器916。应 当认识到,在这些示例中,由公共设备904、用户设备906、公共设备908 和/或用户设备910执行的任何操作可替代地由服务器916执行。例如,服 务器916可执行公共设备904、用户设备906、公共设备908、用户设备806 和/或用户设备910的相应DA客户端模块(例如,DA客户端模块229)的 操作。
如图9所示,用户902提供由公共设备904接收的用户语音输入918 (例如,“嘿,Siri,停止定时器”或“嘿,Siri,播放音乐”)。用户语 音输入918包括数字助理触发器。数字助理触发器是发起与电子设备的数字 助理的对话会话的单词或短语(例如,“嘿,Siri”、“Siri”等)。因此, 在接收到用户语音输入918之后,公共设备904检测数字助理触发器(例如,确定用户语音输入918包括数字助理触发器),确定用户语音输入918 表示数字助理请求(基于对数字助理触发器的检测),并且开始处理用户 语音输入918以确定和/或获得对用户语音输入918的响应(例如,执行一 个或多个任务和/或输出数字助理响应)。
通常,从公共设备/用户设备检测到数字助理触发器起,公共设备/用户 设备需要少于2秒(例如,1秒、1.5秒等)来开始如上所述处理用户语音 输入。在此期间,公共设备/用户设备(例如,经由无线网络(例如,网络 912)和/或短距离通信连接(例如,蓝牙、BTLE等))与一个或多个附近 的电子设备(例如,参与同一上下文共享组的第二公共设备/用户设备)通 信,该第二公共设备/用户设备也接收到用户语音输入并检测到在用户语音 输入中包括的数字助理触发器,以便确定哪个设备应处理所接收的用户语 音输入。
然而,在一些示例中,接收用户语音输入的公共设备/用户设备(例如, 参与上下文共享组)需要超过2秒(例如,3秒、5秒等)来检测在语音输 入中包括的数字助理触发器,并且因此错过了与在两秒窗口内检测到数字 助理触发器的其他附近电子设备进行通信并确定哪个设备将对用户语音输 入作出响应的机会。因此,即使另一公共设备/用户设备(其不具有延迟的 数字助理触发器检测)已经开始处理用户语音输入和/或已经提供对用户语音输入的响应,具有延迟的数字助理触发器检测的公共设备/用户设备也将 开始处理该用户语音输入。这继而可导致多个设备(参与相同的上下文共 享组)在不同的时间提供对相同用户语音输入的响应,这可导致不良的用 户体验(例如,由于用户混淆和/或烦恼)。例如,如果用户设备906也接 收到用户语音输入918但在公共设备904检测到包括在其中的数字助理触发 器之后3秒才检测到该数字助理触发器,则结果是用户设备906和公共设备904可各自提供对用户语音输入918的响应(例如,在不同时间)。因此, 可期望抑制公共设备和/或用户设备的延迟的数字助理触发器检测。
图10示出了根据各种示例的用于使用上下文共享组的上下文收集器来 抑制延迟数字助理触发器检测的系统和技术。系统1000类似于系统900。 具体地讲,系统1000包括公共设备1004(对应于公共设备904)、用户设 备1006(对应于用户设备906)和公共设备1008(对应于公共设备908), 所有这些设备都参与上下文共享组1012(对应于上下文共享组914)。系统 1000还包括网络1010(对应于网络912)。为简单起见,未示出对应于用 户设备910的用户设备和对应于服务器916的服务器。与系统900一样,在 下文描述的示例中,公共设备1008是上下文共享组1012的上下文收集器 (例如,因为公共设备1008先前被挑选为上下文收集器)。
应当认识到,在这些示例中,由公共设备1004、用户设备1006和公共 设备1008执行的任何操作可替代地由一个或多个服务器(例如,对应于服 务器916的服务器)和/或一个或多个其他远程设备(例如,云计算系统) 执行。例如,一个或多个服务器可执行公共设备1004、用户设备1006和/或 公共设备1008的相应DA客户端模块(例如,DA客户端模块229)的操作。
如图10所示,用户设备1002提供包括数字助理触发器的用户语音输入 1014(例如,对应于用户语音输入918(例如,“嘿,Siri,停止定时器” 或“嘿,Siri,播放音乐。”))。用户语音输入1014由公共设备1004和 用户设备1006接收(例如,因为公共设备1004和用户设备1006位于彼此 附近(例如,在同一房间中))。然而,公共设备1004先于用户设备1006 检测到数字助理触发器。因此,在用户设备仍然在确定用户语音输入1014 是否包括数字助理触发器时,公共设备1004发起数字助理对话会话。此外, 如箭头1016所示,公共设备1004将上下文信息(和对应于公共设备1004 的设备标识符)发送到公共设备1008(因为数字助理触发器的检测是设备 状态改变并且公共设备1008是上下文收集器)。例如,公共设备1004响应 于检测到数字助理触发器而发送上下文信息和设备标识符。
因为公共设备1004的设备状态改变是数字助理触发器的检测,所以发 送到公共设备1008的上下文信息包括触发器通告(例如,连同其他设备状 态改变信息)。触发器通告包括数字助理触发器结束时间,该时间是数字 助理触发器根据公共设备1004结束时的时间(例如,公共设备1004停止接 收对应于数字助理触发器的音频信号的时间)。在一些示例中,触发器通 告还包括指示数字助理触发器的能量水平(例如,分贝水平)(例如,对 应于数字助理触发器的音频信号的能量水平)的数据。在一些示例中,第 一触发器通告还包括指示对应于公共设备1004关于用户语音输入1014包括 数字助理触发器的置信度的置信度得分的数据。
在从公共设备1004接收到上下文信息和触发器通告之后,公共设备 1008更新上下文共享组1012的聚合上下文以包括该上下文信息和触发器通 告。此外,如箭头1017所示,响应于接收到触发器通告,公共设备1008检 索已经包括在聚合上下文中的触发器通告(与参与上下文共享组的一个或 多个其他电子设备相关联)并将其发送到公共设备1004(例如,在预定时 间段内(例如,在最后30秒内、在最后一分钟内、在最后5分钟内等)接 收的触发器通告)。在一些示例中,公共设备1008将聚合上下文(包括所 接收的触发器通告)发送到公共设备1004,而不是仅发送触发器通告。如 将在下文相对于用户设备1006更详细地描述的,公共设备1004使用从公共 设备1008接收的触发器通告(例如,在触发器通告中包括的数据)来确定 其是否应抑制其自己的数字助理触发器检测(并且因此放弃进一步处理用 户语音输入1014)。
然而,在这种情况下,公共设备1004不抑制数字助理触发器的检测 (例如,因为公共设备1004是检测在用户语音输入1014中包括的数字助理 触发器的第一电子设备)并继续处理用户语音输入1014(例如,以确定/获 得对用户语音输入1014的响应(例如,执行一个或多个任务和/或输出数字 助理响应))。因此,如箭头1018所示,公共设备1004将对上下文共享组 1012的聚合上下文的请求发送到公共设备1008。如箭头1020所示,响应于 接收到对聚合上下文的请求,公共设备1008将聚合上下文发送到公共设备 1004。在公共设备1008在箭头1017处发送聚合上下文而不是仅发送触发器 通告的上述示例中的一些示例中,箭头1018和1020不发生,因为公共设备 已经接收到聚合上下文。在公共设备1004接收到聚合上下文(如箭头1020 所示,或者在一些示例中,如箭头1017所示)并确定其应继续处理用户语 音输入1014之后,公共设备1004基于用户语音输入1014和在聚合上下文 中包括的上下文信息获得对用户语音输入1014的响应(如将在下文参考图 9更详细地描述)。
如箭头1022所示,响应于检测到在用户语音输入1014中包括的数字助 理触发器,用户设备1006将上下文信息(和对应于用户设备1006的设备标 识符)发送到公共设备1008(因为数字助理触发器的检测是设备状态改变 并且公共设备1008是上下文收集器)。需注意,虽然图10示出了用户设备 1006在箭头1020之后将上下文信息发送到公共设备1008,但用户设备1006 在公共设备1004检测到数字助理触发器并将上下文信息发送到公共设备1008(如箭头1016所示)之后的任何时间发送上下文信息。例如,用户设 备1006可在公共设备1004从公共设备1008接收到聚合上下文(由箭头 1020表示)之前将上下文信息发送到公共设备1008。如上所述,因为用户 设备1006的设备状态改变是数字助理触发器的检测,所以发送到公共设备 1008的上下文信息包括对应于用户设备1006的数字助理触发器检测的触发 器通告。由用户设备1006发送的触发器通告包括先前由公共设备1004发送 的触发器通告中包括的相同类型的数据和信息(例如,指示数字助理触发 器结束的时间(例如,用户设备1006停止接收对应于数字助理触发器的音 频信号的时间)的数据)。
在从用户设备1006接收到上下文信息和触发器通告之后,公共设备 1008更新上下文共享组1012的聚合上下文以包括该上下文信息和触发器通 告。此外,如箭头1024所示,响应于从用户设备1006接收到触发器通告, 公共设备1008检索已经包括在聚合上下文中的触发器通告(与参与上下文 共享组的一个或多个其他电子设备包括公共设备1004相关联)并将其发送 到用户设备1006(例如,在预定时间段内(例如,在最后30秒内、在最后一分钟内、在最后5分钟内等)接收的触发器通告)。在一些示例中,公共 设备1008将聚合上下文(包括所接收的触发器通告)发送到用户设备1006, 而不是仅发送触发器通告。
在一些示例中,除了(经由网络1010)将上下文信息和触发器通告发 送到公共设备1008之外,用户设备1006还将触发器通告(例如,对应于触 发器通告的数据)发送到用户设备1006与之共享短距离通信连接(例如, 蓝牙、BTLE等)的一个或多个电子设备。例如,如果用户设备1006和公 共设备1004共享BTLE连接,则用户设备1006将经由该BTLE连接将触发 器通告直接发送到公共设备1004(例如,在将上下文信息和触发器通告发 送到公共设备1008之前或之后不久)。然后,响应于从用户设备1006接收 到触发器通告,该一个或多个电子设备经由其相应的短距离通信连接将其 自己的触发器通告发送到用户设备1006。例如,该一个或多个电子设备发 送对应于其在预定时间段内(例如,在最后5秒内、在最后30秒内、在最 后一分钟内等)检测到的数字助理触发器的触发器通告。
在从公共设备1008(并且在一些示例中,从用户设备1006与之共享短 距离通信连接的一个或多个电子设备)接收到触发器通告之后,用户设备 1006确定其是否应抑制其自己的数字助理触发器检测(并且因此放弃进一 步处理用户语音输入1014)。具体地讲,用户设备1006基于在每个触发器 通告中包括的数字助理触发器结束时间(即,数字助理触发器根据电子设 备结束时的时间)来确定其已经(例如,在最后一秒内)接收到的每个触 发器通告是否“合理”。如果触发器通告的数字助理触发器结束时间落在 用户设备1006的数字助理触发器结束时间(即,在用户语音输入1014中包 括的数字助理触发器根据用户设备1006结束时的时间)之前的预定时间范 围(例如,750毫秒、500毫秒、100毫秒等)内,则该触发器通告合理。
如果用户设备1006确定其已经接收到的触发器通告中的一个或多个触 发器通告合理(即,包括落在用户设备1006的数字助理触发器结束时间之 前的预定时间范围内的数字助理触发器结束时间),则用户设备1006放弃 进一步处理用户语音输入1014。例如,如果用户设备1006确定对应于公共 设备1004的触发器通告(例如,从公共设备1008接收和/或从公共设备 1004接收的触发器通告)合理,则用户设备放弃进一步处理用户语音输入1014,使得公共设备1004将是提供对用户语音输入1014的响应的唯一电子 设备。然而,在一些示例中,公共设备1004(例如,从公共设备1008(例 如,如箭头1017所示))接收到对应于检测到数字助理触发器的一个或多 个其他电子设备的一个或多个合理触发器通告,因此也放弃进一步处理用 户语音输入1014(例如,而不是将对聚合上下文的请求发送到公共设备 1008(例如,如箭头1018所示))。
如果用户设备1006确定其已经接收到的触发器通告中没有一个合理 (即,触发器通告中没有一个包括落在用户设备1006的数字助理触发器结 束时间之前的预定时间范围内的数字助理触发器结束时间),则用户设备 1006继续处理用户语音输入1014(例如,通过将对聚合上下文的请求发送 到公共设备1008)。这种情形将在例如以下条件下发生:(1)用户设备1006 的触发器通告对应于在公共设备1004检测到用户语音输入1014中包括的数字助理触发器之后30秒检测到的数字助理触发器,并且(2)预定时间范围是 在对应于由用户设备1006检测到数字助理触发器的数字助理触发器结束时 间之前500毫秒。在该示例中,公共设备1004的数字助理触发器结束时间 明显没有落在用户设备1006的数字助理触发器结束时间之前的500毫秒时 间范围内。因此,由用户设备1006接收的用户语音输入表示用户设备1006 应继续处理的单独的用户请求(例如,与用户语音输入1014的用户请求分开)。
返回图9,在一些示例中,用户语音输入918不包括数字助理触发器。 例如,公共设备904可在响应于用户902按压或保持公共设备904上的物理 按钮而发起的数字助理对话会话期间接收用户语音输入918。在这些示例中, 公共设备904确定用户语音输入918表示数字助理请求并开始处理用户语音 输入918(例如,如箭头920所示)以确定和/或获得对用户语音输入918的 响应,而无需确定其是否应抑制对数字助理触发器的检测(例如,根据上文参考图10所述的过程)。需注意,在这些示例中,经由按压或保持公共 设备904上的物理按钮来发起数字助理对话会话表示设备状态改变,并且因 此公共设备904响应于发起该对话会话而将上下文信息(和对应于公共设备 904的设备标识符)发送到公共设备908。
如箭头920所示,响应于接收到用户语音输入918(或者,在一些示例 中,响应于检测到用户语音输入918中包括的数字助理触发器),公共设备 904(经由网络912)向公共设备908(即,上下文共享组914的上下文收集 器)发送对公共设备908将上下文共享组914的聚合上下文发送到公共设备 904的请求。因为数字助理触发器的检测是设备状态改变,所以公共设备 904还在发送对聚合上下文的请求之前将上下文信息(和对应于公共设备 904的设备标识符)发送到公共设备908(尽管该步骤未在图9中示出)。
如箭头922所示,在从公共设备904接收到对聚合上下文的请求之后, 公共设备908将聚合上下文(或者,在一些示例中,聚合上下文的至少一部 分)发送到公共设备904。在一些示例中,对聚合上下文的请求使得公共设 备908将聚合上下文(例如,对应于聚合上下文的数据)或聚合上下文的至 少一部分发送到公共设备904。发送到公共设备904的聚合上下文包括与至 少公共设备904、用户设备906和用户设备910相关联的上下文信息(例如,设备状态改变信息、上下文状态信息、设备能力信息等)(例如,因为公 共设备904、用户设备906和用户设备910各自最近响应于经历设备状态改 变(例如,定时器事件)而将上下文信息发送到公共设备908)。具体地讲, 上下文信息基于公共设备908连同来自至少公共设备904、用户设备906和 用户设备910的上下文信息一起接收的设备标识符而与至少公共设备904、 用户设备906和用户设备910相关联。在一些示例中,聚合上下文不包括除 与聚合上下文中包括的上下文信息一起接收的设备标识符之外的任何其他 类型的设备标识或识别信息。这继而有助于确保当服务器916接收到聚合上 下文(例如,如箭头924所示)时参与上下文共享组914的电子设备的匿名 性。
在其他示例中,聚合上下文确实包括(除了设备标识之外)其他类型 的设备标识和/或识别每个电子设备的注册用户的信息。这继而允许服务器 916确定参与上下文共享组的电子设备是注册到单个用户还是注册到两个或 更多个不同用户(因为该信息可影响服务器916提供的命令)。在一些示例 中,设备标识和/或识别在聚合上下文中包括的每个电子设备的注册用户的 信息允许服务器916确定用户语音输入是否由注册用户提供。此外,如下所 述,在一些示例中,服务器916使用该附加识别信息来访问和/或利用存储 在服务器916上并且与电子设备中的一个或多个电子设备相关联的用户数据 (例如,参与上下文共享组914的电子设备先前(例如,在自动和/或周期 性用户数据同步期间)同步/发送到远程设备的用户数据)。
如箭头924所示,在从公共设备908接收到聚合上下文之后,公共设备 904将对应于用户语音输入918的数据和聚合上下文的至少一部分提供(例 如,发送)给服务器916。
在一些示例中,公共设备904将对应于用户语音输入918的音频数据提 供给服务器916。在一些示例中,公共设备904(例如,使用STT处理模块 730)执行用户语音输入918的语音转文本处理,并且向服务器916提供对 应于用户语音输入918的文本数据(例如,用户语音输入918的文本表示)。 在一些示例中,公共设备904还(例如,使用自然语言处理模块732)执行 对应于用户语音输入918的文本数据的自然语言处理,并向服务器916提供 该自然语言处理的结果(例如,一个或多个用户意图)。
在一些示例中,公共设备904将所有聚合上下文提供给服务器916。在 一些示例中,公共设备904确定聚合上下文中包括的哪些上下文信息与用户 语音输入918相关(例如,当公共设备904执行用户语音输入918的自然语 言处理时),并且仅将该相关上下文信息提供给服务器916。在一些示例中, 公共设备904基于对应于用户语音输入918的活动知识本体(例如,知识本 体760)的一个或多个域来确定哪些上下文信息是相关的(例如,通过识别 与对应于用户语音输入918的一个或多个域相关或相关联的上下文信息)。 在一些示例中,公共设备904在将聚合上下文提供给服务器916之前移除聚 合上下文中包括的个人信息(例如,电子邮件地址、家庭地址、支付信息 等)和/或用户数据(例如,用户的偏好、媒体、联系人、语音配置文件 等)。在一些示例中,公共设备904在将聚合上下文提供给服务器916之前 加密聚合上下文中包括的个人信息和/或用户数据。
在一些示例中,在将聚合上下文的至少一部分发送到服务器916之前, 公共设备904将对每个设备向公共设备904提供其是否检测到用户语音输入 918中包括的数字助理触发器的指示的请求发送到参与上下文共享组914的 电子设备(包括用户设备906、公共设备908和用户设备910)。在一些示 例中,公共设备904请求每个电子设备向公共设备904提供该电子设备是否 已在预定时间段内(例如,在最后2秒、5秒或10秒内)检测到数字助理触发器的指示。响应于接收到该请求,电子设备发送所请求的指示(也称 为触发器指示)以及其相应设备标识符。
在从参与上下文共享组914的电子设备中的一个或多个电子设备(例 如,全部)接收到触发器指示(指示该一个或多个电子设备中的每个电子 设备是否检测到用户语音输入918中包括的数字助理触发器)之后,公共设 备904基于与触发器指示一起接收的设备标识符来将触发器指示结合到聚合 上下文中。具体地讲,公共设备904将从每个电子设备接收的触发器指示结 合到在聚合上下文的至少一部分中包括的电子设备的上下文信息中(根据 每个电子设备的设备标识符)。例如,公共设备904将从用户设备906接收 的触发器指示结合到与在聚合上下文的至少一部分中包括的用户设备906的 设备标识符相关联的上下文信息中。在一些示例中,触发器指示包括指示 所检测到的数字助理触发器的能量水平(例如,分贝水平)(例如,当由 电子设备接收时数字助理触发器的能量水平)的数据。在一些示例中,触 发器指示包括对应于电子设备(例如,用户设备906)的关于用户语音输入918包括数字助理触发器的置信度的置信度得分。
需注意,在一些示例中,参与上下文共享组的用户设备不知道同样参 与该上下文共享组(并且不是上下文收集器)的其他用户设备。例如,用 户设备906不知道用户设备910。因此,在这些示例中,用户设备不能将触 发器指示请求或触发器指示直接发送到其他用户设备。因此,在这些示例 中,用户设备将触发器指示请求发送到上下文共享组的上下文收集器,使 得上下文收集器可将触发器指示请求发送到参与该上下文共享组的所有其他电子设备。然后,上下文收集器将其接收的所有触发器指示发送回向上 下文收集器发送了触发器指示请求的用户设备。例如,为了从用户设备910 接收触发器指示,用户设备906将触发器指示请求发送到公共设备908,使 得公共设备908可将该触发器指示请求发送到用户设备910和公共设备904 两者。因此,公共设备将从公共设备904和用户设备910接收触发器指示, 并且随后将那些触发器指示(连同其自己的触发器指示)发送到用户设备 906。在一些示例中,用户设备906将触发器指示请求直接发送到公共设备904(例如,除了将该请求发送到公共设备908之外),因为用户设备906 仍然知道公共设备参与上下文共享组914。
如将在下文更详细地描述的,在一些示例中,服务器916基于在聚合 上下文中包括的对应于用户设备906、公共设备908和/或用户设备910的触 发器指示来确定用户设备906、公共设备908和/或用户设备910与公共设备 904的物理接近度(例如,在与上下文共享组914相关联的特定位置内)。 例如,基于触发器指示(例如,在触发器指示中包括的数据),服务器916 可确定用户设备906或公共设备908是否更靠近公共设备904和/或确定用 户设备906或公共设备908是否在与上下文共享组914相关联的位置的与公 共设备904相同的区域内(例如,在同一房间或办公室内)。在一些示例中, 每个单独的设备确定其自身与公共设备904的物理接近度。在这些示例中, 触发器指示包括指示相关联的电子设备(例如,用户设备906、公共设备 908或用户设备910)与公共设备904的物理接近度的数据,并且因此基于 触发器指示中包括的该数据向服务器916通知每个设备与公共设备904的接 近度(而不是服务器916确定每个设备与公共设备904的物理接近度)。
如将在下文参考图11更详细地描述的,在接收到对应于用户语音输入 918的数据时,服务器916(具体地讲,服务器916的一个或多个模块) (例如,基于聚合上下文中包括的上下文信息)处理对应于用户语音输入 918的数据,并且确定对应于用户语音输入918的一个或多个用户意图、对 应于该一个或多个用户意图的一个或多个任务、参与上下文共享组914的将 执行该一个或多个任务的一个或多个电子设备,以及用于执行该一个或多 个任务的一个或多个命令。需注意,在一些示例中,公共设备904不将对应 于用户语音输入918的数据和聚合上下文发送到服务器916。在这些示例中, 公共设备904(具体地讲,公共设备的一个或多个模块)(例如,基于聚合 上下文中包括的上下文信息)处理对应于用户语音输入918的数据,并执行 上面列出的确定(而不是服务器916执行)。
图11是示出根据各种示例的用于上下文共享组中的任务确定和设备选 择的系统的框图。系统1100在通信地连接(例如,经由一个或多个网络 (例如,网络912))到参与上下文共享组(例如,上下文共享组914)的 一个或多个电子设备(例如,一个或多个用户设备和/或一个或多个公共设 备)的一个或多个远程设备上实现。例如,系统1100在服务器916上实现。 在一些示例中,系统1100被实现为参与上下文共享组的一个或多个电子设 备(例如,公共设备904、用户设备906、公共设备908和/或用户设备 910)。在一些示例中,系统1100的模块和功能分布在一个或多个远程设备 与参与上下文共享组的一个或多个电子设备之间。
系统1100使用硬件、软件或硬件和软件的组合来实现,以执行本文所 讨论的功能。此外,系统1100是示例性的,因此系统1100可具有比图示的 部件更多或更少的部件,可组合两个或更多个部件,或者可具有不同的部 件配置或布置。尽管下文的讨论描述了在系统1100的单个模块处执行的功 能,但是应当理解,这些功能可在系统1100的其他模块处执行,并且这些 功能可在系统1100的多于一个模块处执行。
为了示出本文所讨论的示例,参考图9和系统900的各种部件描述了系 统1100。除非另有说明,否则系统1100在下文所述的示例中在服务器916 上实现。
系统1100包括语音输入接收器模块1102。语音输入接收器模块1102 从参与上下文共享组的电子设备(例如,从公共设备904)接收对应于用户 语音输入的数据(例如,音频数据、文本数据、自然语言处理结果等)。 例如,语音输入接收器模块1102从公共设备904接收对应于用户语音输入 918的数据(例如,如箭头924所示)。在一些示例中,语音输入接收器模 块1102直接从用户接收用户语音输入。例如,当系统1100或仅语音输入接 收器模块1102在公共设备904上实现时,语音输入接收器模块1102直接从 用户902接收用户语音输入918(因为公共设备904从用户902接收用户语 音输入918)。在语音输入接收器模块1102接收到对应于用户语音输入的 数据之后,语音输入接收器模块1102将对应于用户语音输入的数据提供给 用户意图模块1106。
系统1100包括聚合上下文接收器模块1104。聚合上下文接收器模块 1104从参与上下文共享组的电子设备(例如,从公共设备904)接收上下文 共享组的聚合上下文的至少一部分。如上所述,聚合上下文的至少一部分 包括对应于参与上下文共享组的一个或多个电子设备的一个或多个设备标 识符。例如,聚合上下文接收器模块1104从公共设备904接收上下文共享 组914的聚合上下文的至少一部分(例如,如箭头924所示)。在一些示例 中,聚合上下文接收器模块1104从上下文共享组的上下文收集器接收聚合 上下文的至少一部分。例如,当系统1100或仅聚合上下文接收器模块1104 在公共设备904上实现时,聚合上下文接收器模块1104从公共设备908(上 下文共享组914的上下文收集器)接收聚合上下文的至少一部分(因为公共 设备904从公共设备908接收聚合上下文的至少一部分(例如,如箭头922 所示))。在接收到上下文共享组的聚合上下文的至少一部分之后,聚合 上下文接收器模块1104将上下文信息(例如,设备状态改变信息、上下文 状态信息和/或设备能力信息)和与上下文信息相关联的设备标识符提供给 用户意图模块1106、设备选择模块1110和/或命令模块1112。
系统1100包括用户意图模块1106。用户意图模块1106基于对应于(从 语音输入接收器模块1102接收的)用户语音输入的数据来确定一个或多个 用户意图。例如,用户意图模块1106基于对应于用户语音输入918的数据 来确定一个或多个用户意图。在确定一个或多个用户意图之后,用户意图 模块1106将该一个或多个用户意图提供给任务确定模块1108。
在一些示例中,确定一个或多个用户意图包括用户意图模块1106基于 对应于用户语音输入的数据执行语音转文本处理、自然语言处理等。在这 些示例中,用户意图模块1106包括语音转文本处理模块(例如,STT处理 模块730)、自然语言处理模块(例如,自然语言处理模块732)等。例如, 如果对应于用户语音输入918的数据是音频数据(例如,用户语音输入918 的音频信号),则确定一个或多个用户意图包括用户意图模块1106基于该 音频数据来执行语音转文本处理。又如,如果对应于用户语音输入918的数 据是文本数据(例如,用户语音输入918的文本表示),则确定一个或多个 用户意图包括用户意图模块1106基于该文本数据来执行自然语言处理(但 不是语音转文本处理,因为用户语音输入918已经被识别(例如,由公共设 备904识别))。
在用户意图模块1106对对应于用户语音输入的数据执行语音转文本处 理的示例中的一些示例中,用户意图模块1106基于与提供用户语音输入的 用户相关联的用户数据(例如,所存储的联系人、用户语音配置文件、媒 体(例如,歌曲)等)确定对应于用户语音输入的一个或多个识别结果 (例如,一个或多个候选文本表示)。例如,如果用户语音输入918包括独 特和/或不常见的单词和/或姓名(例如,“嘿,Siri,呼叫Daenerys Targaryen。”),则用户意图模块1106可利用与用户902相关联的语音配 置文件数据(例如,与用户902的存储联系人相关联的语音配置文件数据) 来识别该独特和/或不常见的单词和/或姓名。例如,用户意图模块1106可 将用户语音输入918中包括的“Daenerys Targaryen”的话语(例如,对应 于该话语的音频信号或中间识别结果)与用户902的用户语音配置文件中包 括的所存储联系人姓名“Daenerys Targaryen”的话语匹配。
在一些示例中,用户意图模块1106利用的用户数据包括存储在向语音 输入接收器模块1102(例如,公共设备904)提供对应于用户语音输入的数 据的电子设备上的用户数据。例如,当将对应于用户语音输入918的数据发 送到服务器916时,公共设备904可将所存储的用户数据发送到服务器916 (例如,用户数据可包括在聚合上下文中)。然后,用户意图模块1106可 访问和利用用户数据。在一些示例中,用户意图模块1106利用的用户数据 包括存储在正在实现用户意图模块1106的远程设备(例如,服务器916) 上的用户数据。例如,用户数据可能已经存储在服务器916上,因为公共设 备904先前已将用户数据同步/发送到服务器916(例如,在自动和/或周期 性用户数据同步期间)。
在一些示例中,用户意图模块1106利用的用户数据包括与电子设备相 关联的用户数据,该电子设备(1)参与上下文共享组并且(2)不向语音输入接 收器模块1102提供对应于用户语音输入的数据。例如,用户意图模块1106 在执行对应于用户语音输入918的数据的语音转文本处理时使用的用户数据 可包括用户设备906先前同步/发送到服务器916的用户数据。例如,如果 用户语音输入918包括独特姓名“Daenerys Targaryen”,则用户意图模块 1106可基于用户设备906先前同步/发送到服务器916的与用户902相关联 的语音配置文件数据来识别该独特姓名。在该示例中,与用户设备906相关 联的用户数据未存储在公共设备904上,并且未由公共设备904同步/发送 到服务器916。
在一些示例中,参与上下文共享组的未向语音输入接收器模块1102提 供对应于用户语音输入的数据的电子设备(例如,用户设备906、公共设备 908、或用户设备910)必须注册到提供该用户语音输入的用户(例如,用 户902),以便用户意图模块1106利用与该电子设备相关联的用户数据。 例如,如果用户设备906未注册到用户902,则用户意图模块1106将不能 利用与用户设备906相关联的用户数据来识别在用户语音输入918中包括的独特姓名“Daenerys Targaryen”。在一些示例中,用户意图模块1106仅在 注册到提供用户语音输入的用户的电子设备参与与接收该用户语音输入的 电子设备相同的上下文共享组的情况下利用来自前一种电子设备的用户数 据。例如,如果注册到用户902的电子设备不参与上下文共享组914,则用 户意图模块1106在处理对应于用户语音输入918的数据时不能访问与该电 子设备相关联的用户数据。又如,如果用户设备906注册到用户902,但是 用户设备906在用户意图模块1106接收到对应于用户语音输入918的数据 之前离开上下文共享组914(例如,通过与网络912断开连接),则用户意 图模块1106将不能利用与用户设备906相关联的(例如,存储在服务器916 上的)用户数据来识别用户语音输入918。需注意,在一些示例中,公共设 备(例如,公共设备904)不存储用户数据和/或不将用户数据同步到远程 设备(例如,服务器916)。在这些示例中,用户意图模块1106只能访问 和利用与注册到提供用户语音输入的用户的用户设备(例如,用户设备906 和/或用户设备910)相关联的用户数据。
如上所述,聚合上下文接收器模块1104向用户意图模块1106提供上下 文信息(例如,设备状态改变信息、上下文状态信息和/或设备能力信息) 和与上下文信息相关联的设备标识符。在一些示例中,用户意图模块1106 还基于从聚合上下文接收器模块1104接收的上下文信息(与一个或多个电 子设备相关联)来确定一个或多个用户意图。
在一些示例中,还基于在聚合上下文的至少一部分中包括的上下文信 息确定一个或多个用户意图包括用户意图模块1106基于上下文信息消除用 户语音输入的歧义。例如,如果用户语音输入918相对于用户请求的任务是 有歧义的(例如,“嘿,Siri,停止。”相对于用户902希望设备执行什么 任务是有歧义的,因为不清楚用户902是否想要停止媒体回放、停止闹钟、 停止定时器等),用户意图模块1106可使用与公共设备904、用户设备906、公共设备908和/或用户设备910相关联的设备状态改变信息(例如,设备 状态改变的类型和/或设备状态改变的时间)来确定用户902在用户语音输 入918中提及的是什么任务/消除该任务的歧义。例如,如果与用户设备906 相关联的设备状态改变信息(例如,指示用户设备906处的设备状态改变的 类型的数据)指示当前在用户设备906处发生定时器事件(例如,定时器在 用户设备906处响起),则用户意图模块1106可确定用户902想要在用户 设备906处停止该定时器事件。因此,在该示例中,用户意图模块1106将 确定停止定时器的用户意图。
在一些示例中,当用户语音输入相对于用户请求的任务有歧义并且两 个或更多个事件(例如,定时器事件、闹钟事件、媒体回放等)在上下文 共享组中的两个或更多个独立的电子设备处发生时,用户意图模块1106使 用设备状态改变时间信息(例如,指示每个事件开始的时间的数据)基于 最近的设备状态改变来确定一个或多个用户意图。例如,如果在上述示例 中(其中用户语音输入918是“嘿,Siri,停止。”),则设备状态改变信 息还指示在公共设备904处存在正在发生的媒体回放事件(例如,公共设备 904当前正在播放音乐,同时定时器在用户设备906处(例如,在另一个房 间中)响起),用户意图模块1106可基于指示每个事件开始的时间的设备 状态改变时间信息来消除用户语音输入918的歧义。具体地讲,用户意图模 块1106可基于设备状态改变时间数据来确定哪个事件最近开始,因为该事 件是用户902最可能提到的事件。因此,如果用户设备906处的定时器事件 比公共设备904处的媒体回放事件更近开始,则用户意图模块1106将确定 停止定时器的用户意图而不是停止媒体回放的用户意图。
在一些示例中,当用户语音输入相对于用户请求的任务有歧义并且两 个或更多个事件(例如,定时器事件、闹钟事件、媒体回放等)在上下文 共享组中的两个或更多个独立的电子设备处发生时,用户意图模块1106使 用设备状态改变类型信息(例如,指示事件类型的数据)基于在该两个或 更多个独立电子设备处发生的事件的类型来确定一个或多个用户意图。具 体地讲,在这些示例中,用户意图模块1106基于事件优先级规则确定一个或多个用户意图,该事件优先级规则在确定用户意图时指示哪些事件类型 被优先考虑。例如,事件类型优先级规则可指示闹钟事件优先于媒体回放 事件。因此,如果在上述示例中(其中用户语音输入918是“嘿,Siri,停 止。”),则设备状态改变信息还指示在公共设备904处存在正在发生的媒 体回放事件(例如,公共设备904当前正在播放音乐,而定时器在用户设备 906(例如,在另一个房间中)响起),用户意图模块1106可基于事件优先 级规则消除用户语音输入918的歧义,从而确定停止定时器的用户意图而不 是停止媒体回放的用户意图(因为定时器事件优先于媒体回放事件)。
类似地,在又一示例中,如果用户语音输入918是“嘿,Siri,恢复。” 并且在聚合上下文的至少一部分中包括的设备状态改变信息指示先前在用 户设备906处播放的音乐在10分钟之前停止,而在公共设备908处播放的 电影在5分钟之前停止(因为停止或暂停媒体回放是设备状态改变),用户 意图模块1106将基于设备状态改变时间数据确定在公共设备908处播放的 电影更近停止或暂停。因此,用户意图模块1106将确定恢复电影的用户意 图而不是恢复音乐的用户意图。
如将在下文参考图13更详细地描述的,在一些示例中,用户意图模块 1106使用(在聚合上下文中包括的)与一个或多个电子设备相关联的一个 或多个数字助理对话会话历史来消除用户语音输入的歧义并确定对应于用 户语音输入的一个或多个用户意图。
系统1100包括任务确定模块1108。任务确定模块1108基于从用户意 图模块1106接收的一个或多个用户意图来确定要由参与上下文共享组的一 个或多个电子设备执行的一个或多个任务。例如,基于用户意图模块1106 基于对应于由语音输入接收器模块1102接收的用户语音输入918的数据 (并且,在一些示例中,还基于在由聚合上下文接收器模块1104接收的聚 合上下文中包括的上下文信息)确定的一个或多个用户意图,任务确定模块1108确定要由公共设备904、用户设备906、公共设备908和/或用户设 备910执行的一个或多个任务。在确定一个或多个任务之后,任务确定模块 1108将该一个或多个任务和该一个或多个用户意图提供给设备选择模块 1110。
如下面将更详细地描述的,该一个或多个任务由参与上下文共享组的 一个或多个电子设备执行以满足该一个或多个用户意图。例如,如果用户 意图模块1106确定停止闹钟的用户意图(例如,基于用户语音输入“嘿, Siri,停止。”或“嘿,Siri,停止闹钟。”),任务确定模块1108将确定 当由电子设备执行时将导致电子设备停止闹钟的一个或多个任务。在一些 示例中,任务确定模块1108确定的一个或多个任务是基于一个或多个用户 意图而预定(例如,所确定的用户意图对应于一个或多个任务)。可由任 务确定模块1108确定的一个或多个任务的示例包括执行搜索、检索信息/数 据、打开存储在电子设备上的应用程序、播放媒体(例如,歌曲、视频、 电影等)、进行购买、用户认证、显示所检索的信息/数据等。
如将在下文参考图13更详细地描述的,在一些示例中,任务确定模块 1108使用与一个或多个电子设备相关联的一个或多个数字助理对话会话历 史来消除用户语音输入的歧义,并且确定基于对应于用户语音输入的用户 意图所确定的一个或多个任务的一个或多个参数。
系统1100包括设备选择模块1110。设备选择模块1110至少基于(从 聚合上下文接收器模块1104接收的)聚合上下文中包括的上下文信息来选 择/识别参与上下文共享组的一个或多个电子设备以执行(从任务确定模块 1108接收的)一个或多个任务。例如,设备选择模块1110可选择参与上下 文共享组914的一个电子设备(例如,用户设备906)来执行该一个或多个 任务。又如,如将在下文中参考图12A至图12B更详细地讨论的,设备选 择模块1110可选择参与上下文共享组914的两个或更多个电子设备(例如, 公共设备904和用户设备906)以各自执行至少一个任务(例如,当任务确 定模块1108确定至少两个任务时)。在一些示例中,设备选择模块1110选 择向语音输入接收器模块1102提供对应于用户语音输入的数据的电子设备 (例如,公共设备904)。在一些示例中,设备选择模块1110选择不向语音输入接收器模块1102提供对应于用户语音输入的数据的电子设备(例如, 用户设备906、公共设备908和/或用户设备910)。在一些示例中,设备选 择模块1110选择上下文共享组的上下文收集器(例如,公共设备908)。
在接收到一个或多个任务、一个或多个用户意图和聚合上下文之后, 设备选择模块1110基于聚合上下文中包括的设备状态改变信息(例如,与 参与上下文共享组的一个或多个电子设备相关联的设备状态改变信息)来 确定:对应于该一个或多个用户意图中的用户意图的事件(例如,定时器 事件、闹钟事件、媒体回放等)当前是否在参与上下文共享组的一个或多 个电子设备处发生。例如,如果设备选择模块1110接收到停止定时器的用 户意图(例如,基于用户语音输入“嘿,Siri,停止。”),用户意图模块 1110将基于设备状态改变信息(例如,指示设备状态改变的类型的数据) (例如,与聚合上下文中包括的一个或多个电子设备的设备标识符相关联) 确定在一个或多个电子设备处是否存在正在发生的定时器事件。又如,如 果设备选择模块1110接收到播放下一首歌曲的用户意图(例如,基于用户 语音输入“嘿,Siri,播放下一首歌曲”),则设备选择模块1110将基于与 电子设备相关联的设备状态改变信息来确定在一个或多个电子设备处是否 存在音乐回放事件。
如果设备选择模块1110确定在参与上下文共享组的单个电子设备处当 前正在发生对应于用户意图的事件,则设备选择模块1110选择该单个电子 设备(该事件发生在该单个电子设备处)以执行一个或多个任务。
如果设备选择模块1110确定在参与上下文共享组的两个或更多个电子 设备处当前正在发生对应于用户意图的事件,则设备选择模块1110基于在 与该两个或更多个电子设备相关联的设备状态改变信息中包括的指示设备 状态改变的时间的数据来确定(该两个或更多个事件中的)哪个事件最近 开始。例如,如果设备选择模块1110接收到停止闹钟的用户意图(例如, 基于用户语音输入“嘿,Siri,停止。”)并且设备选择模块1110确定闹钟事件正在用户设备906和用户设备910处发生(即,单独的闹钟在每个设备 处响起),则设备选择模块1110将(基于指示每个闹钟事件的开始时间的 设备状态改变数据)确定用户设备906处的闹钟事件是否比用户设备910处 的闹钟事件更近开始。然后,在设备选择模块1110确定(该两个或更多个 事件中的)哪个事件最近开始之后,设备选择模块1110选择该事件最近开 始的电子设备来执行一个或多个任务。返回前一示例,如果设备选择模块 1110确定用户设备910处的闹钟事件比用户设备906处的闹钟事件更近开 始(例如,当用户设备906处的闹钟已经响起时,用户设备910处的闹钟才 开始响起),设备选择模块1110将选择用户设备910(具体地讲,设备选 择模块1110将选择对应于用户设备910的设备标识符)。
在一些示例中,如果设备选择模块1110确定对应于用户意图的事件当 前正在参与上下文共享组的两个或更多个电子设备处发生,则设备选择模 块1110基于聚合上下文中包括的接近度信息来确定该两个或更多个电子设 备中的哪个电子设备在物理上最靠近向语音输入接收器模块1102提供用户 语音输入数据的电子设备。然后,设备选择模块1110选择在物理上最靠近 提供用户语音输入数据的电子设备的电子设备。例如,如果设备选择模块 1110接收到停止闹钟的用户意图(例如,基于用户语音输入“嘿,Siri,停 止。”)并且设备选择模块1110确定闹钟事件正在用户设备906和用户设 备910处发生(即,单独的闹钟在每个设备处响起),则设备选择模块 1110将(基于与用户设备906和用户设备910相关联的接近度信息)确定 用户设备906或用户设备910是否在物理上最靠近公共设备904。然后,如 果设备选择模块1110确定用户设备906在物理上最靠近公共设备904,则 设备选择模块1110将选择用户设备906。
在一些示例中,设备选择模块1110基于聚合上下文中包括的设备状态 改变信息(例如,与参与上下文共享组的一个或多个电子设备相关联的设 备状态改变信息)来确定:对应于该一个或多个用户意图中的用户意图的 事件先前是否在预定时间段内(例如,在最后5分钟、10分钟、30分钟等 内)在一个或多个电子设备(参与上下文共享组)处发生。例如,如果一 个或多个用户意图包括恢复电影回放的用户意图,并且预定时间段是10分 钟,则设备选择模块1110将确定是否在最后10分钟内在参与上下文共享组 914的电子设备中的一个或多个电子设备处暂停电影(基于指示在设备状态 改变信息中包括的设备状态改变的类型和设备状态改变的时间),因为暂 停电影的事件对应于恢复电影回放的用户意图。在一些示例中,设备选择 模块1110响应于确定对应于一个或多个用户意图中的用户意图的事件当前 不在参与上下文共享组的一个或多个电子设备处发生而作出该确定。在一 些示例中,响应于确定一个或多个用户意图包括恢复媒体回放(例如,恢 复音乐回放、电影回放等)的用户意图,设备选择模块1110确定对应于该 一个或多个用户意图中的用户意图的事件先前是否在一个或多个电子设备 处发生。在这些示例的一些示例中,响应于确定一个或多个用户意图包括 恢复媒体回放的用户意图,设备选择模块1110确定对应于该一个或多个用 户意图中的用户意图的事件先前是否在预定时间段内在一个或多个电子设 备处发生,而不是确定对应于该一个或多个用户意图中的用户意图的事件 当前是否在一个或多个电子设备处发生。
在上述示例中,如果设备选择模块1110确定对应于该一个或多个用户 意图中的用户意图的事件先前在预定时间段内在参与上下文共享组的单个 电子设备处发生,则设备选择模块1110选择该单个电子设备(事件先前在 该单个电子设备处发生)来执行一个或多个任务。例如,如果用户意图是 恢复音乐回放并且设备选择模块1110确定公共设备904是参与上下文共享 组914的在预定时间段(例如,30分钟)内暂停音乐回放的唯一电子设备, 则设备选择模块1110选择公共设备904。
另选地,如果设备选择模块1110确定对应于该一个或多个用户意图中 的用户意图的事件先前在预定时间段内在参与上下文共享组的两个或更多 个电子设备处发生,则设备选择模块1110基于聚合上下文中包括的接近度 信息(例如,与参与上下文共享组的一个或多个电子设备相关联的接近度 信息)确定该两个或更多个电子设备中的哪个电子设备在物理上最靠近向 语音输入接收器模块1102提供用户语音输入数据的电子设备(例如,因为 该电子设备可能是最靠近提供用户语音输入的用户的设备)。返回前一示 例,如果设备选择模块1110确定用户设备906也在预定时间段内暂停音乐 回放(除了公共设备904之外),则设备选择模块1110将确定用户设备906 或公共设备904是否更靠近公共设备904(即,向语音输入接收器模块1102 提供对应于用户语音输入918的数据的设备)。在这种情况下,公共设备 904是最近的设备,因为公共设备904本身将对应于用户语音输入918的数据提供给语音输入接收器模块1102。因此,在该示例中,设备选择模块 1110将选择公共设备904以执行一个或多个任务。在这些示例中确定哪个 电子设备最近将防止选择位于与上下文共享组相关联的位置的完全不同区 域中(例如,不同于用户所在的地方)的电子设备(例如,以及随后恢复 媒体回放)。
在一些示例中,接近度信息基于在聚合上下文中包括的一个或多个触 发器指示中包括的数据(例如,与参与上下文共享组的一个或多个电子设 备相关联)。具体地讲,如上所述,每个触发器指示包括指示电子设备是 否检测到用户语音输入中包括的数字助理触发器的数据,诸如指示所检测 到的数字助理触发器的能量水平(例如,分贝水平)的数据(例如,当被 电子设备接收时数字助理触发器的能量水平)。在这些示例中,确定该两 个或更多个电子设备中的哪个电子设备在物理上最靠近向语音输入接收器 模块1102提供用户语音输入数据的电子设备包括:设备选择模块1110将该 两个或更多个电子设备的数字助理触发器能量水平进行比较并且确定哪个 电子设备对应于最高能量水平。然后,设备选择模块选择具有最高数字助 理触发器能量水平的电子设备来执行一个或多个任务。
在一些示例中,设备选择模块1110基于聚合上下文中包括的上下文状 态信息(例如,代替接近度信息或除了接近度信息之外)来确定该两个或 更多个电子设备中的哪个电子设备在物理上最靠近向语音输入接收器模块1102提供用户语音输入数据的电子设备。具体地讲,在上下文状态信息包 括参与上下文共享组的电子设备的当前位置的示例中(例如,基于来自 GPS模块235的GPS数据和/或来自具有上下文共享组功能的软件应用程序(例如,
Figure BDA0002695099990000931
)的信息),设备选择模块1110比较该两个或更多个电 子设备的当前位置,并且基于该比较来确定哪个电子设备在物理上最靠近 向语音输入接收器模块1102提供语音输入数据的电子设备。然后,设备选 择模块1110选择最近的电子设备来执行一个或多个任务。
在一些示例中,如果设备选择模块1110基于在聚合上下文中包括的接 近度信息和/或上下文状态信息来确定该两个或更多个电子设备在物理上同 样靠近向语音输入接收器模块1102提供用户语音输入数据的电子设备,则 设备选择模块1110选择该两个或更多个电子设备(而不是选择单个电子设 备)。在一些示例中,如果相应的数字助理触发器能量水平之间的差值小 于预定阈值(例如,小于5分贝),则两个或更多个电子设备在物理上同样 靠近向语音输入接收器模块1102提供用户语音输入数据的电子设备。例如, 如果公共设备904和用户设备906的数字助理触发器能量水平分别为40分 贝和42分贝,并且预定阈值为5分贝,则设备选择模块1110将确定公共设 备904和用户设备906在物理上同样靠近公共设备904(即,提供对应于用 户语音输入918的数据的设备)。在一些示例中,如果与两个或多个电子设 备中的每个电子设备相关联的上下文状态信息指示该两个或多个电子设备 当前各自位于与上下文共享组相关联的位置的同一区域内(例如,同一房 间、同一办公室等),则该两个或多个电子设备在物理上同样靠近向语音 输入接收器模块1102提供用户语音输入数据的电子设备。
在一些示例中,响应于确定对应于一个或多个用户意图中的用户意图 的事件先前在预定时间段内在两个或更多个电子设备处发生,设备选择模 块1110简单地选择该两个或更多个电子设备,而不是确定该两个或更多个 电子设备中的哪个电子设备在物理上最靠近向语音输入接收器模块1102提 供用户语音输入数据的电子设备。
如将在下文更详细地描述的,当设备选择模块1110在上述示例中选择 两个或更多个电子设备时,设备选择模块1110向命令模块1112提供(1)对 应于该两个或更多个电子设备的设备标识符,(2)一个或多个任务,以及(3) 用于提供命令的指令,该命令使得向语音输入接收器模块1102提供用户语 音输入数据的电子设备(例如,公共设备904)输出查询,该查询请求用户 选择该两个或更多个电子设备中的电子设备来执行该一个或多个任务。
如果设备选择模块1110确定对应于一个或多个用户意图中的用户意图 的事件当前不在参与上下文共享组的电子设备处发生(并且,在一些示例 中,对应于用户意图的事件先前未在预定时间段内在电子设备处发生)时, 设备选择模块1110确定该用户意图对应于使得新事件在参与上下文共享组 的一个或多个电子设备处发生的用户请求。例如,如果用户意图是播放音 乐(例如,基于用户语音输入“嘿,Siri,播放Taylor Swift的歌曲。”)并且设备选择模块1110(基于聚合上下文中包括的设备状态改变信息)确定 音乐回放事件不在参与上下文共享组914的任何电子设备处发生,则设备选 择模块1110将确定用户意图对应于使得新事件(在这种情况下为音乐回放) 在上下文共享组914的一个或多个电子设备处发生的用户请求。
在确定用户意图对应于使得新事件发生的用户请求之后,设备选择模 块1110基于聚合上下文中包括的设备状态改变信息(例如,设备状态改变 的时间、设备状态改变的类型等)确定参与上下文共享组的一个或多个电 子设备是否可用于执行一个或多个任务。在一些示例中,设备选择模块 1110还基于与电子设备相关联的上下文状态信息(例如,指示电子设备的 显示器可见性的数据)来确定一个或多个电子设备是否可用。如果与电子设备相关联的设备状态改变信息和/或上下文状态信息指示电子设备当前正 在被用户使用(例如,打开/活动的软件应用程序)、当前正在执行任务和/ 或当前不能提供音频和/或视觉输出(例如,因为电子设备面朝下、静音、 播放媒体等),则该电子设备不可用于执行一个或多个任务。例如,如果 与公共设备908相关联的设备状态改变信息指示公共设备908当前正在播放 电影,则设备选择模块1110将确定公共设备908不可用于执行一个或多个 任务。又如,如果与用户设备906相关联的设备状态改变信息指示存储在用 户设备906上的游戏软件应用程序当前打开(例如,使得用户正在与游戏软 件应用程序进行交互),则设备选择模块1110将确定用户设备906不可用 于执行一个或多个任务。
如果设备选择模块1110确定一个或多个电子设备可用于执行一个或多 个任务,则设备选择模块1110基于聚合上下文中包括的设备能力信息(例 如,设备的类型、处理能力、存储器可用性、显示器信息(例如,显示器 的尺寸)、扬声器信息(例如,扬声器的响度)等)确定该一个或多个可 用电子设备中的每个可用电子设备是否能够执行一个或多个任务。例如, 如果该一个或多个任务包括显示信息、图像、视频等的任务,则电子设备 仅在该设备具有显示器(或通信地连接到显示器)的情况下才能执行该一 个或多个任务。又如,如果执行该一个或多个任务要求电子设备具有最小 量的处理能力和/或存储器,而与电子设备相关联的设备能力信息指示该电 子设备不具有最小量的处理能力和/或存储器,则该电子设备将不能够执行 该一个或多个任务。在一些示例中,设备选择模型还基于与一个或多个可 用电子设备相关联的上下文状态信息(例如,网络连接的强度、电池电量 等)来确定该一个或多个可用电子设备是否能够执行一个或多个任务。在 一些示例中,如果电子设备能够执行一个或多个任务中的至少一个任务, 则设备选择模块1110确定该电子设备是有能力的电子设备。
如果设备选择模块1110确定只有参与上下文共享组的单个电子设备可 用而且能够执行一个或多个任务,则设备选择模块选择该单个电子设备来 执行一个或多个任务。
如果设备选择模块1110确定参与上下文共享组的两个或更多个电子设 备可用而且能够执行一个或多个任务,则设备选择模块1110基于与该两个 或更多个可用而且有能力的电子设备相关联的接近度信息来确定该两个或 更多个电子设备中的哪一个电子设备在物理上最靠近向语音输入接收器模 块1102提供用户语音输入数据的电子设备。例如,如果设备选择模块1110 确定用户设备906和公共设备908两者可用而且能够执行一个或多个任务, 则设备选择模块1110将确定用户设备906或公共设备908在物理上更靠近 公共设备904。确定哪个电子设备在物理上最靠近公共设备904确保例如如 果用户设备906相对于公共设备904(并且因此相对于用户902(例如,因 为用户通常位于向语音输入接收器模块1102提供用户语音输入数据的电子 设备附近))在与上下文共享组914相关联的位置的不同区域中(例如,在 不同的房间、在不同的楼层等),则设备选择模块1110不会选择用户设备 906来执行一个或多个任务。这继而改善了用户的体验。
如上所述,在一些示例中,接近度信息基于在聚合上下文中包括的一 个或多个触发器指示中包括的数据。具体地讲,每个触发器指示包括指示 电子设备是否检测到用户语音输入中包括的数字助理触发器的数据,诸如 指示所检测到的数字助理触发器的能量水平(例如,分贝水平)的数据 (例如,当被电子设备接收时数字助理触发器的能量水平)。在这些示例 中,确定该两个或更多个可用而且有能力的电子设备中的哪个电子设备在 物理上最靠近向语音输入接收器模块1102提供用户语音输入数据的电子设 备包括:设备选择模块1110将该两个或更多个可用而且有能力的电子设备 的数字助理触发器能量水平进行比较并且确定哪个电子设备对应于最高能 量水平。然后,设备选择模块选择具有最高数字助理触发器能量水平的电 子设备来执行一个或多个任务。
在一些示例中,设备选择模块1110基于聚合上下文中包括的上下文状 态信息(例如,代替接近度信息或除了接近度信息之外)来确定该两个或 更多个可用而且有能力的电子设备中的哪个电子设备在物理上最靠近向语 音输入接收器模块1102提供用户语音输入数据的电子设备。具体地讲,在 上下文状态信息包括参与上下文共享组的电子设备的当前位置的示例中 (例如,基于来自GPS模块235的GPS数据和/或来自具有上下文共享组功 能的软件应用程序(例如,
Figure BDA0002695099990000961
)的信息),设备选择模块1110比较 该两个或更多个可用而且有能力的电子设备的当前位置,并且基于该比较 来确定哪个电子设备在物理上最靠近向语音输入接收器模块1102提供语音 输入数据的电子设备。然后,设备选择模块1110选择最近的电子设备来执 行一个或多个任务。
在一些示例中,如果设备选择模块1110基于聚合上下文中包括的接近 度信息和/或上下文状态信息确定两个或更多个可用而且有能力的电子设备 在物理上同样靠近向语音输入接收器模块1102提供用户语音输入数据的电 子设备,则设备选择模块1110基于聚合上下文中包括的用户注意力信息 (例如,指示用户当前是否正在查看电子设备的显示器的数据(例如,基 于来自电子设备的前部和/或后部的光学传感器264的信息))确定向语音输入接收器模块1102提供语音输入数据的电子设备的用户(例如,提供用 户语音输入的用户)是否正在查看该两个或更多个可用而且有能力的电子 设备中的电子设备的显示器。如上所述,在一些示例中,如果相应的数字 助理触发器能量水平之间的差值小于预定阈值(例如,小于5分贝),则两 个或更多个电子设备在物理上同样靠近向语音输入接收器模块1102提供用 户语音输入数据的电子设备。在一些示例中,如果与两个或多个电子设备 中的每个电子设备相关联的上下文状态信息指示该两个或多个电子设备当 前各自位于与上下文共享组相关联的位置的同一区域内(例如,同一房间、 同一办公室等),则该两个或多个电子设备在物理上同样靠近向语音输入 接收器模块1102提供用户语音输入数据的电子设备。
在一些示例中,如果设备选择模块1110基于与两个或更多个可用而且 有能力的电子设备相关联的用户注意力信息确定向语音输入接收器模块 1102提供用户语音输入数据的电子设备的用户正在查看该两个或更多个可 用而且有能力的电子设备中的单个电子设备,则设备选择模块1110选择该 单个电子设备来执行两个或更多个任务。例如,如果用户设备906和用户设 备910两者(1)可用而且能够执行一个或多个任务并且(2)物理上同样靠近公 共设备904(例如,两个设备都在同一房间中),但是与设备相关联的用户 注意力信息指示用户902正在查看用户设备906(而不是用户设备910), 则设备选择模块1110将选择用户设备906来执行一个或多个任务。在两个 或更多个可用而且有能力的电子设备在物理上同样靠近(如上所述)时选 择用户正在查看的电子设备改善了用户的体验。例如,如果一个或多个任 务包括显示信息、图像、视频等,则用户将已经查看正确的显示器以查看 所显示的信息、图像、视频等,而不是必须将他或她的注意力转向另一个 电子设备的显示器。这继而改善了用户的体验。
在上述示例的一些示例中,如果两个或更多个可用、有能力而且在物 理上靠近的电子设备包括向语音输入接收器模块1102提供用户语音输入数 据的电子设备,但是设备选择模块1110确定用户仅查看该两个或更多个可 用而且有能力的电子设备中的另一个电子设备,则设备选择模块1110选择 向语音输入接收器模块1102提供用户语音输入数据的电子设备。如将在下 文更详细地描述的,在一些示例中,在进行上述选择之后,设备选择模块 1110指示命令模块1112提供使得所选择的电子设备执行一个或多个任务的 命令和/或输出(例如,作为音频输出和/或在显示器上输出)将一个或多个 任务的执行切换到用户正在查看的电子设备的通知。除了向命令模块1112 提供对应于所选择的电子设备的设备标识符和一个或多个任务之外,设备 选择模块还提供上述指令。
在一些示例中,如果设备选择模块1110基于与两个或更多个可用而且 有能力的电子设备相关联的用户注意力信息来确定向语音输入接收器模块1102提供用户语音输入数据的电子设备的用户没在查看该两个或更多个可 用而且有能力的电子设备中的任一个电子设备(例如,因为该两个或更多 个可用而且有能力的电子设备都不具有显示器或通信地连接的显示器), 则设备选择模块1110基于在与该两个或更多个可用而且有能力的电子设备 相关联的设备能力信息中包括的指示显示器尺寸的数据来确定该两个或更 多个可用而且有能力的电子设备中的哪个电子设备具有最大显示器(包括 可通信地连接的显示器(例如,可通信地连接到智能电视的显示器))。 例如,如果设备选择模块1110确定(1)用户设备906和公共设备908两者可 用而且能够执行一个或多个任务,(2)用户设备906和公共设备908两者在 物理上同样靠近公共设备904(例如,两个设备都在同一房间中),并且(3) 用户902没在查看用户设备906或公共设备908,则设备选择模块1110将 确定用户设备906或公共设备908是否具有最大显示器(或通信地连接到最 大显示器)。然后,设备选择模块1110选择该两个或更多个可用而且有能 力的电子设备中的具有最大显示器(或通信地连接到最大显示器)的单个 电子设备。
在一些示例中,如果设备选择模块1110基于与两个或更多个可用而且 有能力的电子设备相关联的用户注意力信息来确定向语音输入接收器模块 1102提供用户语音输入数据的电子设备的用户没在查看该两个或更多个可 用而且有能力的电子设备中的任一个电子设备,则设备选择模块1110基于 在与该两个或更多个可用而且有能力的电子设备相关联的设备能力信息中 包括的指示扬声器响度(例如,最大分贝水平)的数据来确定该两个或更 多个可用而且有能力的电子设备中的哪个电子设备具有声音最大的扬声器 (或通信地连接到声音最大的扬声器)。例如,如果设备选择模块1110确 定(1)用户设备906和公共设备908两者可用而且能够执行一个或多个任务, (2)用户设备906和公共设备908两者在物理上同样靠近公共设备904(例如, 两个设备都在同一房间中),并且(3)用户902没在查看用户设备906或公 共设备908,则设备选择模块1110将确定用户设备906或公共设备908是 否具有最大扬声器(或通信地连接到最大扬声器)。然后,设备选择模块 1110选择该两个或更多个可用而且有能力的电子设备中的具有声音最大的 扬声器(或通信地连接到声音最大的器)的单个电子设备。
在一些示例中,如果设备选择模块1110基于与两个或更多个可用而且 有能力的电子设备相关联的用户注意力信息确定向语音输入接收器模块 1102提供用户语音输入数据的电子设备的用户没在查看该两个或更多个可 用而且有能力的电子设备中的任一个电子设备,则设备选择模块1110简单 地选择该两个可用而且有能力的电子设备。如将在下文更详细地描述的, 当设备选择模块1110在上述示例中选择两个或更多个可用而且有能力的电 子设备时,设备选择模块1110向命令模块1112提供(1)对应于该两个或更 多个可用而且有能力的电子设备的设备标识符,(2)一个或多个任务,以及 (3)用于提供命令的指令,该命令使得向语音输入接收器模块1102提供用户 语音输入数据的电子设备(例如,公共设备904)输出查询,该查询请求用 户选择该两个或更多个电子设备中的电子设备来执行该一个或多个任务。
如将在下文中参考图12A至图12B更详细地描述的,在一些示例中, 如果任务确定模块1108确定多个任务(例如,多于一个任务)并且设备选 择模块1110基于聚合上下文中包括的接近度信息和/或上下文状态信息确定 两个或更多个可用而且有能力的电子设备在物理上同样靠近向语音输入接 收器模块1102提供用户语音输入数据的电子设备,则设备选择模块1110选 择该两个或更多个电子设备中的至少两个电子设备来各自执行该多个任务 中的至少一个任务。这些示例被称为“多模态任务执行”,因为上述选择 使得两个或更多个电子设备同时执行(该多个任务中的)任务以满足用户 请求。例如,如果设备选择模块1110确定用户设备906和公共设备908两 者可用、有能力而且邻近公共设备904(例如,在同一房间中),则设备选 择模块可选择用户设备906和公共设备908两者来执行该多个任务中的至少 一个任务。在这些示例中,在选择至少两个电子设备来执行一个或多个任 务之后,设备选择模块1110将该多个任务中的一组任务分配给所选择的电 子设备中的每个电子设备。一组任务可包括该多个任务中的一个任务或该 多个任务中的多个任务。返回上例,设备选择模块1110可将第一组任务分 配给用户设备906(例如,执行搜索、检索数据/信息,以及提供包括所检 索的数据/信息的音频输出(例如,数字助理响应)),将第二组任务分配 给公共设备908(例如,执行搜索、检索数据/信息,以及提供(例如,显 示)包括所检索的数据/信息的视觉输出(例如,由用户设备906输出的数 字助理响应的文本表示))。如上述示例中所述,在一些示例中,设备选 择模块将相同任务中的一个或多个任务分配给至少两个所选择的电子设备 中的每个电子设备。例如,设备选择模块1110可将执行搜索和基于搜索检 索数据/信息的任务分配给所有所选择的电子设备(例如,使得每个电子设 备能够提供包括所检索的数据/信息的输出)。
在一些示例中,设备选择模块1110选择两个或更多个可用、有能力而 且邻近的电子设备中的至少两个电子设备用于多模态任务执行,而不是基 于聚合上下文中包括的用户注意力信息来确定用户是否正在查看该两个或 更多个电子设备中的电子设备。在一些示例中,设备选择模块1110选择两 个或更多个可用、有能力而且邻近的电子设备中的至少两个电子设备用于 多模态任务执行,即使设备选择模块1110确定向语音输入接收器模块1102 提供用户语音输入数据的电子设备的用户正在查看该两个或更多个可用、 有能力而且邻近的电子设备中的单个电子设备。
在一些示例中,设备选择模块1110基于包括一个或多个特定任务的多 个任务来选择该至少两个电子设备用于多模态任务执行(例如,如果该多 个任务包括显示特定类型的信息(例如,图像、配方等),如果该多个任 务包括提供音频输出和视觉输出,如果该多个任务包括用户认证(例如, 为了进行购买)等)。在这些示例中,如果设备选择模块1110确定该多个 任务包括一个或多个特定任务,则设备选择模块1110选择该至少两个电子 设备用于多模态任务执行,而不是(1)确定用户是否正在查看电子设备和/或 (2)选择用户正在查看的单个电子设备。例如,如果设备选择模块1110确定 该多个任务包括用户认证任务,则设备选择模块1110可选择该至少两个电 子设备用于多模态任务执行。
在一些示例中,设备选择模块基于对应于该多个任务的所确定的用户 意图来选择该至少两个电子设备用于多模态任务执行。在这些示例中,设 备选择模块选择该至少两个电子设备用于多模态任务执行,而不是(1)确定 用户是否正在查看电子设备和/或(2)选择用户正在查看的单个电子设备。例 如,如果该多个任务对应于提供食物配方的用户意图或购买电影的用户意 图,则设备选择模块1110将响应于确定至少两个电子设备可用、有能力而 且邻近向语音输入接收器模块1102提供用户语音输入数据的电子设备来选 择该至少两个电子设备用于多模态任务执行。
如将在下文更详细地描述的,当设备选择模块1110在上述示例中选择 至少两个电子设备用于多模态任务执行时,设备选择模块1110向命令模块 1112提供(1)对应于该至少两个电子设备的设备标识符,(2)与每个设备标识 符相关联的(多个任务中的)一组任务,以及(3)向所选择的电子设备中的 每个电子设备提供命令的指令,该命令使得每个电子设备执行其相关联的 一组任务。
在一些示例中,设备选择模块1110确定参与上下文共享组的电子设备 都不可用。例如,如果在聚合上下文中包括的上下文信息指示用户设备906 和用户设备910面朝下(并且因此不具有可见显示器)并且如果公共设备 904和公共设备908已经为用户执行任务和/或具有打开/活动的软件应用程 序(例如,用户正与之交互的软件应用程序),则上下文共享组中的所有 电子设备将不可用。在这些示例中,设备选择模块1110如上所述选择单个有能力和/或邻近的电子设备(邻近向语音输入接收器模块1102提供语音输 入数据的电子设备)。在一些示例中,设备选择模块选择多于一个有能力 和/或邻近的电子设备。然后,如将在下文更详细地描述的,设备选择模块 1110向命令模块1112提供(1)对应于所选择的电子设备的设备标识符,(2)一 个或多个任务,以及(3)用于提供命令的指令,该命令使得所选择的电子设 备在通知内输出该一个或多个任务的执行的结果(例如,基于该一个或多个任务的执行而检索的数据,基于该一个或多个任务的执行而生成的音频 和/或文本输出数据等)。在一些示例中,该通知包括所检索的数据/信息。 在一些示例中,该通知提供链接或示能表示,该链接或示能表示当由电子 设备的用户选择(例如,按压)时,使得电子设备输出数字助理响应作为 音频输出和/或作为电子设备的显示器上的文本(例如,包括所检索的数据/ 信息的数字助理响应)。
如上所述,在一些示例中,当与参与上下文共享组的一个或多个电子 设备相关联的用户数据例如存储在实现系统1100的一个或多个远程设备 (例如,服务器916)上时,系统1100能够访问和利用这些用户数据。例 如,用户意图模块1106可在确定一个或多个用户意图时访问和利用用户数 据。类似地,在上述示例的一些中,在设备选择模块1110选择要执行一个 或多个任务的电子设备之后(例如,在设备选择模块向命令模块1112提供 设备标识符、一个或多个任务和/或指令之前),设备选择模块1110基于所 确定的用户意图和/或一个或多个任务确定是否存在存储在一个或多个远程 设备上的执行该一个或多个任务所需的用户数据(例如,用户的媒体、联 系人、语音配置文件、偏好等)。例如,如果该一个或多个任务包括播放 特定歌曲(例如,特定艺术家的歌曲(例如,基于用户语音输入“嘿,Siri, 播放Taylor Swift的歌曲。”))的任务,则设备选择模块可确定需要对应 于该特定歌曲的音频数据来执行该一个或多个任务。
如果设备选择模块1110确定存在执行该一个或多个任务所需的所存储 的用户数据,则设备选择模块确定所选择的电子设备是否具有对所存储的 用户数据的访问权限(例如,如果所存储的用户数据也本地存储在所选择 的电子设备上,使得所选择的电子设备可在执行该一个或多个任务时访问 和利用该用户数据)。设备选择模块1110基于存储在一个或多个远程设备 上的与所选择的电子设备相关联的用户数据来作出该确定(例如,因为存储在一个或多个远程设备上的用户数据指示当例如所选择的电子设备将其 存储的用户数据周期性地同步/发送到一个或多个远程设备时哪些用户数据 存储在所选择的电子设备上)。具体地讲,如果执行一个或多个任务所需 的用户数据未包括在存储在一个或多个远程设备上的与所选择的电子设备 相关联的用户数据中(例如,该用户数据仅包括在与参与上下文共享组的 另一个电子设备相关联的所存储的用户数据中),则设备选择模块1110确定所选择的电子设备不具有对所需的用户数据的访问权限。返回前一示例, 如果所选择的电子设备是用户设备906并且设备选择模块确定(存储在服务 器916上的)与用户设备906相关联的用户数据不包括对应于特定歌曲的音 频数据(例如,该音频数据仅包括在与一个或多个其他电子设备(例如, 用户设备910)相关联的所存储的用户数据中),则设备选择模块1110将 确定用户设备906不具有该音频数据的访问权限。
如果设备选择模块1110确定所选择的电子设备不具有对执行一个或多 个任务所需的用户数据的访问权限,则设备选择模块检索所存储的用户数 据并向命令模块1112提供该用户数据(例如,当设备选择模块1110向命令 模块1112提供设备标识符、一个或多个任务和/或指令时)。具体地讲,设 备选择模块为命令模块1112提供(1)对应于所选择的电子设备的设备标识符, (2)与该设备标识符相关联的一个或多个任务,(3)所检索的用户数据,以及 (4)向所选择的电子设备提供命令的指令,该命令使得所选择的电子设备基 于所检索的用户数据执行一个或多个任务。返回前一示例,在确定用户设 备906不具有对应于特定歌曲的所存储的音频数据的访问权限之后,设备选 择模块1110将从与参与上下文共享组914的另一个电子设备(例如,用户 设备910)相关联的所存储的用户数据中检索该音频并且随后向命令模块 1112提供该音频数据以及对应于用户设备906的设备标识符,使得命令模 块1112可生成将使得用户设备906使用所检索的音频数据来播放特定歌曲 的命令。
在一些示例中,与所检索的用户数据相关联的另一个电子设备(例如, 用户设备910)必须注册到提供用户语音输入的用户(例如,用户902), 以便设备选择模块1110检索用于在所选择的电子设备(例如,用户设备 906)处执行任务的用户数据。例如,如果用户设备906和用户设备910被 注册到两个独立的用户,则设备选择模块1110将不能检索与用户设备910 相关联的所存储的用户数据以用于在用户设备906处执行任务(反之亦然)。 在其他示例中,设备选择模块1110可检索与当前参与上下文共享组的任何 电子设备相关联的所存储的用户数据(即使电子设备的注册用户不同于提 供用户语音输入的注册用户)。
在一些示例中,仅在注册到提供用户语音输入的用户的电子设备参与 和所选择的电子设备相同的上下文共享组的情况下,设备选择模块1110才 检索与前一种电子设备相关联的所存储的用户数据。例如,如果用户902是 当前未参与上下文共享组914的另一个电子设备的注册用户,则设备选择模 块1110不能检索与该另一个电子设备相关联的用户数据,直到该另一个电 子设备加入上下文共享组914为止。又如,如果用户设备910注册到用户 902,但是用户设备910在设备选择模块1110从与用户设备910相关联的所 存储的用户数据中检索用户数据之前离开上下文共享组914(例如,通过与 网络912断开连接),则设备选择模块1110将不能从与用户设备910相关 联的所存储的用户数据中检索用户数据,或者将该用户数据提供给命令模 块1112。需注意,在一些示例中,公共设备(例如,公共设备904)不存储 用户数据和/或不将用户数据同步到远程设备(例如,服务器916)。在这 些示例中,设备选择模块1110只能检索和提供与注册到提供用户语音输入 的用户的用户设备(例如,用户设备906和/或用户设备910)相关联的用户 数据。
系统1100包括命令模块1112。命令模块1112(1)从设备选择模块1110 接收设备标识符、任务、指令和/或用户数据,(2)基于所接收的设备标识符、 任务、指令和/或用户数据生成一个或多个命令,以及(3)将该一个或多个命 令和相关联的设备标识符(以及,在一些示例中,用户数据)提供给向语 音输入接收器模块1102提供语音输入数据的电子设备(例如,因为这是参 与上下文共享组的与远程设备(例如,服务器916)通信的唯一电子设备)。例如,在确定一个或多个命令之后,命令模块1112将该一个或多个命令和 与每个命令相关联的设备标识符发送到公共设备904。如上所述,由命令模 块1112生成的命令将使得电子设备基于由设备选择模块1110进行的确定和 选择来执行各种任务。具体地讲,由命令模块1112用来生成一个或多个命 令的若干方式可基于从设备选择模块1110接收的设备标识符、任务、指令 和/或用户数据而变化,其中每一种情况下在下文中依次讨论。
如果命令模块1112接收到(1)对应于所选择的电子设备的单个设备标识 符和(2)一个或多个任务,则命令模块1112将生成将使得所选择的电子设备 执行一个或多个任务的命令。在一些示例中,该命令进一步使得所选择的 电子设备基于一个或多个任务的执行来输出音频和/或视觉数字助理响应 (例如,“我已经停止了您的闹钟。”或“现在播放Taylor Swift的歌 曲。”)。在一些示例中,命令模块1112生成附加命令,该附加命令将使得向语音输入接收器模块1102提供用户语音输入数据的电子设备(例如, 公共设备904)输出音频和/或视觉数字助理响应,该响应指示哪个电子设 备被选择来执行一个或多个任务(例如,“到圣何塞机场的路线说明在您 的电话上准备就绪。”或“现在在您的电视上显示照片。”)。
如果命令模块1112接收到(1)对应于两个或更多个电子设备的两个或更 多个设备标识符,(2)一个或多个任务,以及(3)提供命令的指令,该命令使 得向语音输入接收器模块1102提供用户语音输入数据的电子设备(例如, 公共设备904)输出请求用户选择该两个或更多个电子设备中的电子设备以 执行一个或多个任务的查询,则命令模块1112将生成两个命令。第一命令 将使得用户选择的电子设备执行一个或多个任务。第二命令将使得向语音 输入接收器模块1102提供用户语音输入数据的电子设备(1)输出查询(例如, 作为音频输出和/或作为显示器上的文本),该查询请求用户选择该两个或 更多个所选择的电子设备中的电子设备以执行一个或多个任务(例如, “您想要在您的iPhone或您的iPad上看到您的照片吗?”)以及(2)将第一 命令发送到用户选择的电子设备(例如,在接收到用户对该查询的响应之 后(例如,用户的响应是第二用户语音输入或对所显示的对应于该两个或 更多个电子设备中的一个电子设备的示能表示的选择))。
在一些示例中,第一命令进一步使得用户选择的电子设备基于一个或 多个任务的执行来输出音频和/或视觉数字助理响应(例如,“我已经停止 了您的闹钟。”或“现在播放Taylor Swift的歌曲。”)。在一些示例中, 第二命令进一步使得向语音输入接收器模块1102提供用户语音输入数据的 电子设备在接收到指示被选择用于执行一个或多个任务的电子设备的用户 选择之后输出音频和/或视觉数字助理响应(例如,“现在在您的iPad上显示照片。”)。
如果命令模块1112接收到(1)对应于所选择的电子设备的设备标识符, (2)一个或多个任务,以及(3)提供命令的指令,该命令使得所选择的电子设 备在通知内输出执行该一个或多个任务的结果,则命令模块1112将生成将 使得所选择的电子设备执行该一个或多个任务的命令,并且随后提供包括 执行该一个或多个任务的结果的通知(例如,出现在所选择的电子设备的 锁定屏幕界面上,在所选择的电子设备的通知历史界面中的通知等)。在 一些示例中,该命令进一步使得所选择的电子设备在提供通知时输出音频 指示。在一些示例中,命令模块1112生成附加命令,该附加命令将使得向 语音输入接收器模块1102提供用户语音输入数据的电子设备(例如,公共 设备904)输出音频和/或视觉数字助理响应,该响应指示参与上下文共享 组的电子设备都不可用于执行该一个或多个任务,和/或指示可在所选择的 电子设备上找到与用户的请求相关的进一步信息(例如,“此刻您的设备 中没有一个能显示照片。请查看您的iPhone了解更多信息。”)。
如果命令模块1112接收到(1)对应于所选择的电子设备的设备标识符, (2)一个或多个任务,(3)提供命令的指令,该命令使得所选择的电子设备输 出(例如,作为音频输出和/或在显示器上输出)将一个或多个任务的执行 切换到另一个电子设备(例如,用户正在查看的电子设备)的通知,以及 (4)对应于该另一个电子设备的第二设备标识符,则命令模块1112将生成命 令,该命令将使得所选择的电子设备输出将一个或多个任务的执行切换到 对应于第二设备标识符的另一个电子设备的通知(例如,“您是否更愿意 在您的iPad上查看千层面配方?”)。在一些示例中,该命令进一步使得 所选择的电子设备执行一个或多个任务,并且随后输出将该一个或多个任 务的执行连同该一个或多个任务的执行的结果一起切换到另一个电子设备 的通知(例如,“这里是我找到的千层面配方。您想要在您的iPad上查看 它吗?”)。
如果命令模块接收到(1)对应于两个或更多个所选择的电子设备的设备 标识符,(2)与每个设备标识符相关联的一组任务,以及(3)向该两个或更多 个所选择的电子设备中的每个电子设备提供提供命令的指令,该命令使得 每个电子设备执行其相关联的一组任务,则命令模块1112将针对每个设备 标识符生成命令。例如,如果命令模块1112接收到对应于用户设备906的 设备标识符、对应于公共设备908的设备标识符以及与每个设备标识符相关 联的一组任务,则命令模块1112将生成将使得用户设备906执行其相关联 的一组任务的第一命令和将使得公共设备908执行其相关联的一组任务的第 二命令。在一些示例中,命令模块1112生成的两个或更多个命令中的至少 一个命令进一步使得所选择的电子设备基于一个或多个任务的执行来输出 音频和/或视觉数字助理响应(例如,“有几部《星球大战》电影供您选择, 如在您的电视上显示的。第一部电影是…”)。
在一些示例中,命令模块1112确定从设备选择模块1110接收的一组任 务是否包括用户认证(例如,为了进行购买所需的用户认证)任务。在这 些示例中,如果命令模块1112确定一组任务包括用户认证任务,则命令模 块1112将该组任务发送到向语音输入接收器模块1102提供用户语音输入数 据的电子设备(例如,公共设备904),并且放弃发送对应于剩余任务组的 命令。命令模块1112将放弃发送对应于剩余任务组的命令,直到命令模块 1112(或系统1100的一个或多个其他模块)认证用户(例如,基于所存储 的用户认证数据与提供给执行包括用户认证任务的一组任务的电子设备的 认证数据的比较来认证)为止,或者直到命令模块1112(或系统1100的一 个或多个其他模块)从提供用户语音输入数据的电子设备接收到用户已被 认证的指示为止(例如,当执行该组任务的电子设备在本地认证用户而不 是为命令模块1112提供认证数据来验证用户时)。在认证用户或接收到用户已被认证的指示之后,命令模块将对应于剩余任务组的命令发送到提供 用户语音输入数据的电子设备。下文参考图12B更详细地描述该过程的示 例。
如果命令模块1112接收到(1)对应于所选择的电子设备的设备标识符, (2)与该设备标识符相关联的一个或多个任务,(3)所检索的用户数据,以及 (4)向所选择的电子设备提供命令的指令,该命令使得所选择的电子设备基 于所检索的用户数据执行一个或多个任务,则命令模块1112将生成将使得 所选择的电子设备基于所检索的用户数据执行一个或多个任务的命令。在 一些示例中,该命令进一步使得所选择的电子设备基于一个或多个任务的 执行来输出音频和/或视觉数字助理响应(例如,“现在播放Taylor Swift的 歌曲。”或“呼叫Daenerys Targaryen。”)。在一些示例中,命令模块 1112生成附加命令,该附加命令将使得向语音输入接收器模块1102提供用 户语音输入数据的电子设备(例如,公共设备904)输出音频和/或视觉数 字助理响应,该响应指示哪个电子设备被选择来执行一个或多个任务(例 如,“现在在您的HomePod上播放Taylor Swift的歌曲。”或“在您的 iPhone上呼叫Daenerys Targaryen。”)。
需注意,虽然以上描述单独地描述了命令模块1112生成的不同类型的 命令,但应当理解,在一些示例中,命令模块1112响应于单个用户语音输 入而生成多于一种类型的命令。例如,如果用户语音输入918是“嘿,Siri, 播放Taylor Swift的歌曲”,则设备选择模块1110可向命令模块1112提供 (1)提供命令的指令,该命令使得公共设备904输出请求用户902选择电子 设备以执行一个或多个任务的查询,(2)所检索的对应于Taylor Swift的歌曲 的音频数据,以及(3)向用户选择的电子设备提供命令的指令,该命令使得 用户选择的电子设备基于所检索的音频数据执行一个或多个任务。作为响 应,命令模块1112可生成将使得用户选择的电子设备基于所检索的音频数 据执行一个或多个任务的第一命令,和将使得公共设备904(1)输出查询 (例如,作为音频输出和/或作为显示器上的文本输出),该查询请求用户 选择两个或更多个所选择的电子设备中的电子设备以基于所检索的音频数据来执行一个或多个任务并且(2)将第一命令与所检索的音频数据一起发送 到用户所选择的电子设备的第二命令。因此,如上述示例所示,命令模块 1112响应于单个用户语音输入而生成第一类型的命令(例如,涉及基于所 检索的用户数据执行一个或多个任务)和第二类型的命令(例如,涉及用 户选择将执行该一个或多个任务的电子设备)。
在生成一个或多个命令(例如,如上所述)之后,命令模块1112将该 一个或多个命令(和相关联的设备标识符)发送到向语音输入接收器模块 1102提供用户语音输入数据的电子设备。在命令模块1112接收由设备选择 模块1110检索的用户数据的上述示例中,命令模块1112进一步将用户数据 (和相关联的设备标识符)发送到向语音输入接收器模块1102提供用户语 音输入数据的电子设备。如将在下文中参考图9更详细地描述的,在接收到 一个或多个命令(以及,在一些示例中,用户数据)之后,向语音输入接 收器模块1102提供用户语音输入数据的电子设备基于与参与上下文共享组 的一个或多个电子设备相关联的设备标识符来将该一个或多个命令发送到 该一个或多个电子设备。
返回图9,如箭头926所示,公共设备904从服务器916接收用于执行 一个或多个任务的命令(例如,由命令模块1112生成的命令)和对应于用 户设备906的设备标识符(与命令相关联)。在一些示例中,公共设备904 还接收存储在服务器916上的用户数据(例如,当命令是基于用户数据执行 一个或多个任务时)。应当理解,尽管箭头926表示公共设备接收在单个所 选择的电子设备处执行一个或多个任务的单个命令,但是公共设备904可另 选地或除此之外接收上文参考命令模块1112所述的任何类型的命令(或那 些命令类型的任何组合)。
如箭头928和928a所示,在接收到执行一个或多个任务的命令和对应 于用户设备906的设备标识符之后,公共设备904将该命令发送到用户设备 906(例如,基于所存储的参与上下文共享组914的电子设备之间的关联及 其设备标识符)。在用户设备906接收到该命令之后,该命令使得用户设备 906执行一个或多个任务。如上所述,在一些示例中,公共设备904从服务 器916接收到附加命令,该附加命令使得公共设备904输出音频和/或视觉 数字助理响应,该响应指示用户设备906被选择来执行一个或多个任务(例 如,“我已经停止您的iPhone上的闹钟。”“现在在您的iPhone上显示照 片。”)。
在一些示例中,在将命令发送到电子设备之前(例如,如箭头928和 928a所示),公共设备904确定与命令相关联的设备标识符是否对应于客 户端设备(例如,用户设备906或用户设备910)。如果公共设备904确定 设备标识符对应于客户端设备,则公共设备确定用户902是否是该客户端设 备的注册用户。例如,如果公共设备接收的设备标识符对应于用户设备910 (而不是用户设备906),则公共设备904可确定用户902是否是用户设备 910的注册用户。然后,如果公共设备确定用户902不是用户设备910的注 册用户,则公共设备904确定用户902是否是用户设备910的授权用户。
在一些示例中,授权用户是已经由注册用户授予对控制的访问权限的 客户端设备的用户和/或在客户端设备上提出用户请求的用户(除客户端设 备的注册用户之外)。在一些示例中,只有当客户端设备参与上下文共享 组时,客户端设备的授权用户才可控制客户端设备和/或在客户端设备上提 出用户请求。授权用户信息由客户端设备的注册用户经由存储在客户端设 备上的软件应用程序(例如,经由
Figure BDA0002695099990001091
应用程序)和/或经由具有上下 文共享组功能的网站提供(例如,当注册用户正在上下文共享组中登记客 户端设备时,或之后的任何时间提供)。因此,返回前一示例,公共设备 904通过访问与用户设备910相关联的授权用户信息(例如,经由软件应用 程序和/或网站)来确定用户902是否是用户设备910的授权用户。在一些 示例中,确定用户902是否是用户设备910的授权用户包括公共设备输出对 用户认证(例如,语音认证、密码认证和/或生物识别认证(例如,面部和/ 或指纹认证))的请求。然后,在从用户902接收到用户认证数据之后,公 共设备将用户认证数据与在与用户设备910相关联的授权用户信息中包括的 用户认证数据进行比较,以确定用户902是否是用户设备910的授权用户。 如箭头928和928b所示,响应于确定用户902是用户设备910的授权用户, 公共设备904将命令发送到用户设备910。
需注意,在一些示例中,服务器916(例如,设备选择模块1110)在 向公共设备904发送命令和设备标识符(对应于用户设备910)(例如,如 箭头926所示)之前确定用户902是否是用户设备910的注册用户。例如, 服务器916基于存储在服务器916上的与用户设备910相关联的用户数据 (例如,与用户设备910的注册用户相关联的用户语音配置文件信息)确定 用户902是否是用户设备910的注册用户。在这些示例中,如箭头925所 示,如果服务器916确定用户902不是用户设备910的注册用户,则服务器 916(例如,命令模块1112)将命令发送到公共设备904,该命令使得公共 设备904输出对用户认证的请求,接收用户认证数据(来自用户902),然 后基于所接收的认证数据确定用户902是否是用户设备910的授权用户。然 后,如箭头927所示,如果公共设备904确定用户902是用户设备910的授 权用户,则公共设备904将用户902是用户设备910的授权用户的指示发送 到服务器916。在接收到该指示之后,服务器916将命令和设备标识符(对 应于用户设备910)发送到公共设备904(例如,如箭头926所示),并且 公共设备904将命令发送到用户设备910,如箭头928和928b所示。
6.用于上下文共享组中的多模态任务执行的系统和技术
图12A至图12B示出了根据各种示例的用于上下文共享组中的多模态 任务执行的系统和技术。如图12A至图12B所示,系统1200包括公共设备 1204、公共设备1206和用户设备1210,所有这些设备都参与上下文共享组 1214(其与特定位置(例如,家、办公室等)相关联)。用户设备1210是 客户端设备(例如,用户设备104、122、200、400或600)。例如,用户 设备1210是
Figure BDA0002695099990001101
在下面描述的示例中,用户设备1210注册到用户 1202。公共设备1204是具有与用户设备1210相同或类似的数字助理能力的 智能音箱。公共设备1206是具有与用户设备相同或类似的数字助理能力的 智能电视。公共设备1206通信地连接到显示器1208(例如,电视、监视器 等)。此外,公共设备1206是上下文共享组1214的上下文收集器(例如, 因为公共设备1206先前被挑选为上下文收集器)。如上文参考图8所讨论 的,公共设备未注册到单个用户,或者注册到多个用户(例如,使得公共 设备可由多个用户使用而无需附加的用户注册和/或用户认证要求)。例如, 公共设备1204是
Figure BDA0002695099990001102
公共设备1206是Apple
Figure BDA0002695099990001103
系统1200还包括网络1212和服务器1216(例如,DA服务器106)。 网络1212是无线通信网络(例如,网络110)。如图所示,公共设备1204、 公共设备1206和用户设备1210经由网络1212彼此通信并且与服务器1216 通信(并且因此各自连接到网络1212)。服务器1216是不参与上下文共享 组1214的远程设备。在一些示例中,系统1200包括一个或多个其他远程设 备(例如,本地服务器、云计算系统等)来代替服务器1216。应当认识到, 在这些示例中,由公共设备1204、公共设备1206和/或用户设备1210执行 的任何操作可替代地由服务器1216执行。例如,服务器1216可执行公共设 备1204、公共设备1206和/或用户设备1210的相应DA客户端模块(例如, DA客户端模块229)的操作。
如图12A所示,用户1202提供由公共设备1204接收的用户语音输入 1218(例如,“嘿,Siri,给我播放《星球大战》电影。”或“嘿,Siri, 什么是星球大战。”)。
如箭头1220所示,响应于接收到用户语音输入1218(或者,在一些示 例中,响应于检测到用户语音输入1218中包括的数字助理触发器),公共 设备1204(经由网络1212)向公共设备1206(即,上下文共享组1214的 上下文收集器)发送对公共设备1206将上下文共享组1214的聚合上下文发 送到公共设备1204的请求。
如箭头1222所示,在从公共设备1204接收到对聚合上下文的请求之 后,公共设备1206将聚合上下文(或者,在一些示例中,聚合上下文的至 少一部分)发送到公共设备1204。在一些示例中,对聚合上下文的请求使 得公共设备1206将聚合上下文(例如,对应于聚合上下文的数据)或聚合 上下文的至少一部分发送到公共设备1204。发送到公共设备1204的聚合上 下文包括与至少公共设备1204、公共设备1206和用户设备1210相关联的 上下文信息(例如,设备状态改变信息、上下文状态信息、设备能力信息、 接近度信息等)(例如,因为公共设备1204、公共设备1206和用户设备 1210各自最近经历设备状态改变(例如,定时器事件、检测数字助理触发 器、播放电影等))。具体地讲,上下文信息基于公共设备1206连同来自 至少公共设备1204、公共设备1206和用户设备1210的上下文信息一起接 收的设备标识符而与至少公共设备1204、公共设备1206和用户设备1210相 关联。在一些示例中,聚合上下文不包括除与聚合上下文中包括的上下文 信息一起接收的设备标识符之外的任何其他类型的设备标识或识别信息。
在其他示例中,聚合上下文确实包括(除了设备标识之外)其他类型 的设备标识和/或识别每个电子设备的注册用户的信息。这继而允许服务器 1216确定参与上下文共享组的电子设备是注册到单个用户还是注册到两个 或更多个不同用户(因为该信息可影响服务器1216提供的命令)。在一些 示例中,设备标识和/或识别在聚合上下文中包括的每个电子设备的注册用 户的信息允许服务器1216确定用户语音输入是否由注册用户提供。此外, 在一些示例中,服务器1216使用该附加识别信息来访问和/或利用存储在服 务器1216上并且与电子设备中的一个或多个电子设备相关联的用户数据 (例如,参与上下文共享组914的电子设备先前(例如,在自动和/或周期 性用户数据同步期间)同步/发送到远程设备的用户数据)。
如箭头1224所示,在从公共设备1206接收到聚合上下文之后,公共设 备1204将对应于用户语音输入1218的数据和聚合上下文的至少一部分提供 (例如,发送)给服务器1216。
在一些示例中,公共设备1204将对应于用户语音输入1218的音频数据 提供给服务器1216。在一些示例中,公共设备1204(例如,使用STT处理 模块730)执行用户语音输入1218的语音转文本处理,并且向服务器1216 提供对应于用户语音输入1218的文本数据(例如,用户语音输入1218的文 本表示)。在一些示例中,公共设备1204还(例如,使用自然语言处理模 块732)执行对应于用户语音输入1218的文本数据的自然语言处理,并向 服务器1216提供该自然语言处理的结果(例如,一个或多个用户意图)。
在一些示例中,公共设备1204将所有聚合上下文提供给服务器1216。 在一些示例中,公共设备1204确定聚合上下文中包括的哪些上下文信息与 用户语音输入1218相关(例如,当公共设备1204执行用户语音输入1218 的自然语言处理时),并且仅将该相关上下文信息提供给服务器1216。在 一些示例中,公共设备1204基于对应于用户语音输入1218的活动知识本体 (例如,知识本体760)的一个或多个域来确定哪些上下文信息是相关的 (例如,通过识别与对应于用户语音输入1218的一个或多个域相关或相关 联的上下文信息)。在一些示例中,公共设备1204在将聚合上下文提供给 服务器1216之前移除聚合上下文中包括的个人信息(例如,电子邮件地址、 家庭地址、支付信息等)和/或用户数据(例如,用户的偏好、媒体、联系 人、语音配置文件等)。在一些示例中,公共设备1204在向服务器1216提供聚合上下文之前加密聚合上下文中包括的个人信息和/或用户数据(而不 是移除个人信息和/或用户数据)。
在接收到对应于用户语音输入1218的数据和聚合上下文的至少一部分 之后,服务器1216:(1)确定一个或多个用户意图,(2)确定对应于该一个或 多个用户意图的多个任务,(3)选择两个电子设备以执行该多个任务,以及 (4)生成两个单独的命令(基于对应于用户语音输入1218的数据和在聚合上 下文的至少一部分中包括的上下文信息),如上文参考图11和系统1100的 模块所述。具体地讲,服务器1216(例如,设备选择模块1110)确定公共 设备1204和公共设备1206两者可用、能够执行该多个任务中的至少一个任 务而且邻近公共设备1204(即,向服务器1216(例如,向语音输入接收器 模块1102)提供对应于用户语音输入1218的数据的设备)。因此,服务器 1216选择公共设备1204和公共设备1206用于多模态任务执行,并且将一 组任务分配给每个设备(其中每组任务包括该多个任务中的至少一个任 务)。因此,服务器1216(例如,命令模块1112)生成用于执行第一组任 务的第一命令和用于执行第二组任务的第二命令。第一命令与对应于公共 设备1204的设备标识符相关联,并且第二命令与对应于公共设备1206的设 备标识符相关联。需注意,在一些示例中,第一组任务中的一个或多个任 务与第二组任务中的一个或多个任务相同(例如,第一组和第二组均包括 执行搜索的任务和基于该搜索检索数据/信息的任务)。此外,在一些示例中,服务器1216选择多于两个电子设备用于多模态任务执行(例如,三个 电子设备、四个电子设备等),并且因此将一组任务分配给该多于两个电 子设备中的每个电子设备,并且生成用于执行每组任务的独立命令。
如箭头1226所示,服务器1216将第一命令和第二命令连同其相关联的 设备标识符发送到公共设备1204。在一些示例中,服务器1216还将存储在 服务器1216上的用户数据发送到公共设备1204(例如,使得公共设备1204 和/或公共设备1206可基于该用户数据来执行一个或多个任务)。
如箭头1228所示,在接收到第一命令和第二命令以及其相关联的设备 标识符之后,公共设备1204基于对应于公共设备1206的设备标识符(例 如,基于所存储的参与上下文共享组1214的电子设备与其设备标识符之间 的关联)将第二命令发送到公共设备1206。此外,基于对应于公共设备 1204的设备标识符与第一命令相关联,公共设备1204确定它要执行第一组 任务。因此,在公共设备1206接收到第二命令之后,公共设备1204执行第 一组任务,并且公共设备1206执行第二组任务。在一些示例中,公共设备 1204和公共设备1206同时执行其相应的一组任务,使得每个设备同时输出 其相应的一组任务的执行结果。
在一些示例中,第一组任务(由公共设备1204执行)和第二组任务 (由公共设备1206执行)的执行导致在公共设备1204和公共设备1206之 间划分对任务的执行结果的音频输出和视觉输出。例如,如果用户语音输 入1218是“嘿,Siri,给我播放《星球大战》电影”,则第一组任务和第二 组任务将各自包含执行对《星球大战》电影的搜索和检索《星球大战》电 影的数据/信息(例如,电影标题、上映年份、导演等)的任务。然而,第 一组任务将包括在音频输出内(例如,在数字助理响应内)输出所检索的 数据/信息的任务,而第二组任务将包括在视觉音频输出内输出所检索的数 据/信息的任务。因此,如音频输出1230所示,在执行第一组任务之后,公 共设备1204将例如(经由一个或多个扬声器)输出音频数字助理响应,该 音频数字助理响应包括所检索的数据/信息的至少一部分(例如,“我找到 了几部《星球大战》电影。星球大战:新希望。星球大战:帝国反击 战。…”)。此外,如结果界面1232所示,在执行第二组任务之后,公共 设备906将例如显示(在显示器1208上显示)包括所检索的数据/信息(例 如,具有对应图像的《星球大战》电影标题)的至少一部分的界面。尽管 在上述示例中两个单独的设备正在提供输出,但该输出中包括的数据/信息 是相同的。这样,用户1202将能够在听到音频输出1230中包括的对应数据 /信息时查看界面中包括的数据/信息。因此,在至少两个电子设备之间划分 音频输出和视觉输出(如上所述)改善了用户的数字助理体验,因为这确 保即使最初接收到用户请求的设备不(例如)具有显示器,用户也能够查 看和听到对用户请求的响应。
在一些示例中,第一组任务(由公共设备1204执行)和第二组任务 (由公共设备1206执行)的执行使得一个设备提供概要响应,并且另一个 设备提供更详细的响应。例如,如果用户语音输入1218是“嘿,Siri,什么 是星球大战?”,则第一组任务和第二组任务将各自包含执行对“星球大 战”的搜索和检索与“星球大战”相关联的数据/信息(例如,流派信息、 创建者信息、绘图信息、原产国家等)的任务。然而,第一组任务将包括 输出所检索的数据/信息的简短摘要的任务,诸如输出数据/信息的短列表和 /或数据/信息的高级概览。因此,如音频输出1230所示,在执行第一组任 务之后,公共设备1204将例如(经由一个或多个扬声器)输出音频数字助 理响应,该音频数字助理响应包括由公共设备1204检索的数据/信息的简短 摘要。在一些示例中,音频输出1230进一步指示用户1202查看公共设备1206以获得更详细的响应(例如,“您的电视上显示了关于《星球大战》 的更多信息”)。如结果界面1232所示,在执行第二组任务之后,公共设 备1206将例如(在显示器1208上)显示包括所检索的数据/信息的详细摘 要的界面,该详细摘要包括在由公共设备1204输出的简短摘要中未包括的 超链接、图像和/或其他信息(例如,具有对应图像的《星球大战》电影标题,《星球大战》粉丝页面超链接,《星球大战》电影购买链接等)。需 注意,虽然上述示例将简短摘要和详细摘要在音频输出和视觉输出之间分 开,但是在一些示例中,简短摘要和详细摘要都作为视觉输出提供(例如, 在两个单独设备的显示器上提供)。响应于用户请求而提供所检索的数据/ 信息的简短摘要和详细摘要(如上所述)改善了用户的数字助理体验,因 为这确保用户能够查看和/或听到对用户请求的简短响应,同时如果用户希 望了解所请求的主题的更多信息,则具有快速查看和/或听到更详细响应的 选项(例如,而不是必须提供后续用户请求或执行对更多详细信息的手动 搜索)。
尽管图12A中未示出,但在公共设备1204提供音频输出1230之后, 公共设备1204将上下文信息发送到公共设备1206(例如,因为音频输出 1230的提供是设备状态改变(例如,数字助理对话会话的结束))。上下 文信息包括数字助理对话会话历史,该数字助理对话会话历史包括对应于 音频输出1230的数据(例如,文本数据),以及指示由于执行第一组任务 而检索到的数据/信息的数据。在从公共设备1204接收上下文信息时,公共 设备1206将该上下文信息结合到聚合上下文中。类似地,在公共设备1206 (经由显示器1208)提供结果界面1232之后,公共设备将其自己的上下文 信息结合到聚合上下文中(例如,因为结果界面1232的提供是设备状态改 变(例如,数字助理响应的结束和/或软件应用程序的打开/激活))。公共 设备结合到聚合上下文中的上下文信息包括指示在结果界面1232中显示的数据/信息的数据(例如,指示执行第二组任务的结果的数据)。包括与公 共设备1204和公共设备1206相关联的新上下文信息的聚合上下文在下面的 描述中被称为“更新的聚合上下文”。
如图12B所示,在公共设备1204提供音频输出1230并且公共设备1206 提供结果界面1232之后,用户1202提供用户语音输入1234,该用户语音 输入由公共设备1204接收。在下面的示例中,用户语音输入1234是购买对 应于结果界面1232中包括的媒体项(例如,图像、视频、歌曲、电影、电 子书、游戏软件应用程序等的表示)的媒体的用户请求。例如,如果结果 界面1232包括对应于《星球大战》电影的媒体项(或用于购买媒体的链接 和/或示能表示),则用户语音输入1234可以是“嘿,Siri,购买《星球大 战:帝国反击战》。”
如箭头1236所示,响应于接收到用户语音输入1234(或者,在一些示 例中,响应于检测到用户语音输入1234中包括的数字助理触发器),公共 设备1204(经由网络1212)向公共设备1206发送对公共设备1206将上下 文共享组1214的聚合上下文发送到公共设备1204的请求。
如箭头1238所示,在从公共设备1204接收到对聚合上下文的请求之 后,公共设备1206将更新的聚合上下文发送到公共设备1204。如上所述, 更新的聚合上下文包括与公共设备1204相关联的更新的上下文信息和与公 共设备1206相关联的更新的上下文信息。
如箭头1240所示,公共设备1204将对应于用户语音输入1234的数据 和更新的聚合上下文的至少一部分发送到服务器1216(例如,发送到语音 输入接收器模块1102和聚合上下文接收器模块1104)。在接收到对应于用 户语音输入1234的数据和更新的聚合上下文的至少一部分之后,服务器 1216:(1)确定一个或多个用户意图,(2)确定对应于该一个或多个用户意图 的多个任务,(3)选择两个电子设备以执行该多个任务,以及(4)生成两个单独的命令(基于对应于用户语音输入1234的数据和在更新的聚合上下文的 至少一部分中包括的上下文信息),如上文参考图11和系统1100的模块所 述。具体地讲,服务器1216(例如,设备选择模块1110)确定公共设备 1206和用户设备1210两者可用、能够执行该多个任务中的至少一个任务而 且邻近公共设备1204(即,向服务器1216提供对应于用户语音输入1234的 数据的设备)。因此,服务器1216选择公共设备1206和用户设备1210用 于多模态任务执行,并且将一组任务分配给每个设备(其中每组任务包括 该多个任务中的至少一个任务)。
因为用户语音输入1234是购买媒体的用户请求,所以服务器1216将包 括用于用户认证的一个或多个任务的一组任务(称为第三组任务)分配给 用户设备1210。此外,服务器1216将包括用于购买所请求的媒体的一个或 多个任务的单独一组任务(称为第四组任务)分配给公共设备1206。因此, 服务器1216(例如,命令模块1112)生成用于执行第三组任务的第三命令 和用于执行第四组任务的第四命令。第三命令与对应于用户设备1210的设备标识符相关联,并且第四命令与对应于公共设备1206的设备标识符相关 联。
在发送第三命令和第四命令之前,服务器916(例如,命令模块1112) 确定第三组任务包括用于用户认证的一个或多个任务。因此,如箭头1242 所示,服务器1216:(1)将第三命令和对应于用户设备1210的设备标识符发 送到公共设备1204,并且(2)放弃发送第四命令和对应于公共设备1206的设 备标识符。
如箭头1244所示,在接收到第三命令和对应于用户设备1210的设备标 识符之后,公共设备1204将第三命令发送到用户设备1210。第三命令然后 使得用户设备1210执行第三组任务,包括用于用户认证的一个或多个任务。 例如,第三组任务包括输出对用户(例如,用户1202)向用户设备1210提 供用户认证数据(例如,语音认证数据、密码认证数据和/或生物识别认证 数据(例如,对应于面部和/或指纹认证的数据))的请求。在一些示例中,该请求包括用户设备1210显示用户认证界面(例如,密码输入界面)。
在该示例中,第三组任务包括将所接收的用户认证数据发送到公共设 备1204的任务。因此,如箭头1246所示,在用户设备1210从用户接收到 用户认证数据之后,用户设备1210将用户认证数据发送到公共设备1204。 然后,如箭头1248所示,公共设备将用户认证数据发送到服务器1216。在 接收到用户认证数据时,服务器1216将所接收的用户认证数据与和用户设 备1210相关联的所存储的用户认证数据(例如,包括在与用户设备1210相 关联的先前同步到服务器1216的所存储的用户数据中)进行比较。
如箭头1250所示,如果服务器1216基于上述比较确定提供用户认证数 据的用户被授权进行所请求的购买(例如,因为服务器1216确定所接收的 用户认证数据与所存储的用户认证数据匹配),则服务器1216向公共设备 1204发送第四命令和对应于公共设备1206的设备标识符。另选地,如果服 务器1216确定提供用户认证数据的用户未被授权进行所请求的购买(例如, 因为服务器1216确定所接收的用户认证数据与所存储的用户认证数据不匹 配或者因为服务器1216确定与用户相关联的所存储的限制(例如,家长管 制)阻止用户进行所请求的购买),则服务器1216放弃将第四命令发送到 公共设备1204。
在一些示例中,第三组任务包括基于所接收的用户认证数据本地认证 用户的任务,而不是将所接收的用户认证数据发送到公共设备1204的任务。 因此,在这些示例中,在用户设备1210从用户接收到用户认证数据之后, 用户设备1210将所接收的用户认证与存储在用户设备1210上的用户认证数 据进行比较,并且确定提供用户认证数据的用户是否被授权进行所请求的 购买。如果用户设备1210确定用户被授权进行所请求的购买,则用户设备 1210将用户被授权进行所请求的购买的指示发送到公共设备1204。公共设 备1204然后将该指示发送到服务器1216。响应于接收到该指示,服务器 1216向公共设备1204发送第四命令和对应于公共设备1206的设备标识符。
在第三组任务包括基于所接收的用户认证数据本地认证用户的任务而 不是将所接收的用户认证数据发送到公共设备1204的任务的示例中的一些 示例中,服务器1216同时将第三命令和第四命令发送到公共设备1204。然 后,公共设备将第三组任务发送到用户设备1210,但放弃将第四命令发送 到公共设备1206,直到公共设备1204从用户设备1210接收到用户被授权 进行所请求的购买的指示。因此,如果用户设备1210确定用户未被授权进行所请求的购买,则公共设备1204将不会将第四命令发送到公共设备1206。
如箭头1252所示,公共设备1204将第四命令发送到公共设备1206。 第四命令使得公共设备1206执行第四组任务,这导致公共设备1206购买所 请求的媒体。在一些示例中,在购买所请求的媒体之后,公共设备1206经 由显示器1208输出所请求的媒体,如媒体输出1254所表示的。需注意,虽 然上述示例涉及购买数字媒体,但是上述系统和过程适用于其他类型的用 户请求的购买,诸如从网站购买实物(例如,书籍、杂货等)。将用于用 户认证和购买的任务分配给单独的电子设备(如上所述)允许用户在例如 要进行用户请求的购买的电子设备更远离用户和/或仅具有不太有效的用户 认证能力(例如,仅经由手动密码输入执行用户认证)时快速而且容易地 提供用户认证数据。
总体而言,多模态任务执行改善了用户的数字助理体验,因为其创建 了知道用户的上下文和周围环境并且跨多个设备与用户进行交互的单个数 字助理的外观(而不是每个设备的单独数字助理)。
7.用于上下文共享组中的持续数字助理会话的系统和技术
图13示出了根据各种示例的用于跨参与上下文共享组的多个设备进行 持续数字助理会话的系统和技术。如图13所示,系统1300包括用户设备 1304、用户设备1306和公共设备1308,所有这些设备都参与上下文共享组 1312(其与特定位置(例如,家、办公室等)相关联)。用户设备1304和 用户设备1306均为客户端设备(例如,用户设备104、122、200、400或 600)。例如,用户设备1304是
Figure BDA0002695099990001191
用户设备1306是Apple
Figure BDA0002695099990001192
在下面描述的示例中,用户设备1304和用户设备1306注册到用户1302。 在一些示例中,用户设备1304和用户设备1306中只有一者注册到用户1302。 公共设备1308是具有与用户设备1304和用户设备1306相同或类似的数字 助理能力的智能音箱。此外,公共设备1308是上下文共享组1312的上下文 收集器(例如,因为公共设备1308先前被挑选为上下文收集器)。如上文 参考图8所讨论的,公共设备未注册到单个用户,或者注册到多个用户(例 如,使得公共设备可由多个用户使用而无需附加的用户注册和/或用户认证 要求)。例如,公共设备1308是
Figure BDA0002695099990001193
系统1300还包括网络1310和服务器1314(例如,DA服务器106)。 网络1310是无线通信网络(例如,网络110)。如图所示,用户设备1304、 用户设备1306和公共设备1308经由网络1310彼此通信并且与服务器1314 通信(并且因此各自连接到网络1310)。服务器1314是不参与上下文共享 组1312的远程设备。在一些示例中,系统1300包括一个或多个其他远程设 备(例如,本地服务器、云计算系统等)来代替服务器1314。应当认识到, 在这些示例中,由用户设备1304、用户设备1306和/或公共设备1308执行 的任何操作可替代地由服务器1314执行。例如,服务器1314可执行用户设 备1304、用户设备1306和/或公共设备1308的相应DA客户端模块(例如, DA客户端模块229)的操作。
如图13所示,用户1302提供用户语音输入1316(例如,“嘿,Siri, 帕罗奥图的温度是多少?”),该用户语音输入由用户设备1304接收。
如箭头1318所示,响应于接收到用户语音输入1316(或者,在一些示 例中,响应于检测到用户语音输入1316中包括的数字助理触发器),用户 设备1304(经由网络1310)向公共设备1308(即,上下文共享组1312的 上下文收集器)发送对公共设备1308将上下文共享组1312的聚合上下文发 送到用户设备1304的请求。
如箭头1320所示,在从用户设备1304接收到对聚合上下文的请求之 后,公共设备1308将聚合上下文(或者,在一些示例中,聚合上下文的至 少一部分)发送到用户设备1304。在一些示例中,对聚合上下文的请求使 得公共设备1308将聚合上下文(例如,对应于聚合上下文的数据)或聚合 上下文的至少一部分发送到用户设备1304。发送到用户设备1304的聚合上 下文包括与至少用户设备1304、用户设备1306和公共设备1308相关联的 上下文信息(例如,设备状态改变信息、上下文状态信息、设备能力信息、 接近度信息等)(例如,因为用户设备1304、用户设备1306和公共设备 1308各自最近经历设备状态改变(例如,定时器事件、检测数字助理触发 器、播放电影等))。具体地讲,上下文信息基于公共设备1308连同来自 至少用户设备1304、用户设备1306和公共设备1308的上下文信息一起接 收的设备标识符而与至少用户设备1304、用户设备1306和公共设备1308相 关联。在一些示例中,聚合上下文不包括除与聚合上下文中包括的上下文 信息一起接收的设备标识符之外的任何其他类型的设备标识或识别信息。
在其他示例中,聚合上下文确实包括(除了设备标识之外)其他类型 的设备标识和/或识别每个电子设备的注册用户的信息。这继而允许服务器 1314确定参与上下文共享组的电子设备是注册到单个用户还是注册到两个 或更多个不同用户(因为该信息可影响服务器1314提供的命令)。在一些 示例中,设备标识和/或识别在聚合上下文中包括的每个电子设备的注册用 户的信息允许服务器1314确定用户语音输入是否由注册用户提供。此外, 在一些示例中,服务器1314使用该附加识别信息来访问和/或利用存储在服 务器1314上并且与电子设备中的一个或多个电子设备相关联的用户数据 (例如,参与上下文共享组1312的电子设备先前(例如,在自动和/或周期 性用户数据同步期间)同步/发送到远程设备的用户数据)。
如箭头1322所示,在从公共设备1308接收到聚合上下文之后,用户设 备1304将对应于用户语音输入1316的数据和聚合上下文的至少一部分发送 到服务器1314。
在一些示例中,用户设备1304将对应于用户语音输入1316的音频数据 提供给服务器1314。在一些示例中,用户设备1304(例如,使用STT处理 模块730)执行用户语音输入1316的语音转文本处理,并且向服务器1314 提供对应于用户语音输入1316的文本数据(例如,用户语音输入1316的文 本表示)。在一些示例中,用户设备1304还(例如,使用自然语言处理模 块732)执行对应于用户语音输入1316的文本数据的自然语言处理,并向 服务器1314提供该自然语言处理的结果(例如,一个或多个用户意图)。
在一些示例中,用户设备1304将所有聚合上下文提供给服务器1314。 在一些示例中,用户设备1304确定聚合上下文中包括的哪些上下文信息与 用户语音输入1316相关(例如,当用户设备1304执行用户语音输入1316 的自然语言处理时),并且仅将该相关上下文信息提供给服务器1314。在 一些示例中,用户设备1304基于对应于用户语音输入1316的活动知识本体 (例如,知识本体760)的一个或多个域来确定哪些上下文信息是相关的 (例如,通过识别与对应于用户语音输入1316的一个或多个域相关或相关 联的上下文信息)。在一些示例中,用户设备1304在将聚合上下文提供给 服务器1314之前移除聚合上下文中包括的个人信息(例如,电子邮件地址、 家庭地址、支付信息等)和/或用户数据(例如,用户的偏好、媒体、联系 人、语音配置文件等)。在一些示例中,用户设备1304在向服务器1314提供聚合上下文之前加密聚合上下文中包括的个人信息和/或用户数据(而不 是移除个人信息和/或用户数据)。
如箭头1324所示,服务器1314向用户设备1304发送用于执行一个或 多个任务的第一命令和对应于用户设备1304的设备标识符。在用户设备 1304接收到第一命令并且基于对应于用户设备1304的相关联的设备标识符 确定其要执行该一个或多个任务之后,用户设备1304执行该一个或多个任 务。例如,如果用户语音输入1316是“嘿,Siri,帕罗奥图的温度是多 少?”,则该一个或多个任务包括执行对与帕罗奥图相关联的天气数据的 搜索,检索所请求的天气数据(例如,温度数据),并且生成包括所检索 的天气数据的数字助理响应。第一命令还使得用户设备1304基于该一个或 多个任务的执行来输出数字助理响应。因此,如图13所示,用户设备1304 将数字助理响应1326作为音频输出(例如,经由一个或多个扬声器)输出。 返回前一示例,如果用户语音输入1316是“嘿,Siri,帕罗奥图的温度是多 少?”,则数字助理响应1326可以是“帕罗奥图当前68度。”
如箭头1327所示,在用户设备1304提供数字助理响应1326之后,用 户设备1304将上下文信息发送到公共设备1308(例如,因为数字助理响应 1326的输出是设备状态改变(例如,数字助理对话会话结束))。上下文 信息包括数字助理对话会话历史,该历史包括对应于用户语音输入1316和 数字助理响应1326的数据(例如,文本数据),以及作为该一个或多个任 务的执行的结果而检索的数据/信息(例如,与帕罗奥图相关联的天气数 据)。在一些示例中,数字助理对话会话历史包括对应于在用户设备1304 处发生的最近数字助理对话会话的数据(例如,语音识别结果,自然语言 处理结果,和/或在最近数字助理对话会话期间检索和/或提供的数据(例如, 对应于最近用户语音输入和数字助理响应的数据))。在一些示例中,数 字助理对话会话历史包括对应于在预定时间段内(例如,在过去一小时内、在过去一天内等)在用户设备1304处发生的所有数字助理对话会话的数据。 在从用户设备1304接收到上下文信息之后,公共设备1308将上下文信息结 合到聚合上下文中,并且因此生成更新的聚合上下文,该更新的聚合上下 文现在还包括用户设备1304在其上下文信息中包括的数字助理对话会话历 史。
如图13所示,有时在用户设备1304输出数字助理响应1326之后,用 户1302从用户设备1304所在的与上下文共享组1312相关的位置(例如, 用户1302的家、用户1302工作的办公楼等)的第一区域(例如,客厅、办 公室等)移动到第二区域(例如,卧室、另一个办公室、该位置的不同楼 层等)。在该位置的第二区域处,用户1302提供用户语音输入1328(例如, “嘿,Siri,我开车到那里需要多长时间?”或者“嘿,Siri,纽约 呢?”),该用户语音输入由用户设备1306接收。在这种情况下,用户设 备1306是可穿戴用户设备(例如,Apple
Figure BDA0002695099990001221
),因此当其接收到用户 语音输入1328时也位于第二区域中。在一些示例中,当用户设备1306接收 到用户语音输入1328时,用户设备1306位于该位置的第一区域(用户设备1304所在的位置)中。
如箭头1330所示,响应于接收到用户语音输入1328(或者,在一些示 例中,响应于检测到用户语音输入1328中包括的数字助理触发器),用户 设备1306向公共设备1308发送对公共设备1308将上下文共享组1312的聚 合上下文发送到用户设备1306的请求。
如箭头1332所示,在从用户设备1306接收到对聚合上下文的请求之 后,公共设备1308将更新的聚合上下文(或者,在一些示例中,更新的聚 合上下文的至少一部分)发送到用户设备1306。如上所述,更新的聚合上 下文包括用户设备1304向公共设备1308提供的数字助理对话会话历史(例 如,除了在聚合上下文中包括的与参与上下文共享组1312的一个或多个电 子设备相关联的其他上下文信息之外)。
如箭头1334所示,在从公共设备1308接收到更新的聚合上下文之后, 用户设备1306将对应于用户语音输入1328的数据和更新的聚合上下文的至 少一部分发送到服务器1314。更新的聚合上下文的至少一部分包括用户设 备1304向公共设备1308提供的数字助理对话会话历史。
在接收到对应于用户语音输入1328的数据和更新的聚合上下文的至少 一部分之后,服务器1314:(1)确定一个或多个用户意图,(2)确定对应于该 一个或多个用户意图的一个或多个任务,(3)选择电子设备以执行该一个或 多个任务(在这种情况下,用户设备1306),以及(4)生成用于执行该一个 或多个任务的命令(基于对应于用户语音输入1328的数据和在更新的聚合 上下文的至少一部分中包括的上下文信息),如上文参考图11和系统1100 的模块所述。具体地讲,服务器1314使用在数字助理对话会话历史(公共 设备1308将该数字助理对话会话历史添加到更新的聚合上下文)中包括的 对应于用户语音输入1316的数据来消除用户语音输入1328的歧义。
在一些示例中,服务器1314(例如,任务确定模块1108)使用对应于 用户语音输入1316的数据来确定基于对应于用户语音输入1328的用户意图 所确定的一个或多个任务的一个或多个参数。例如,如果用户语音输入 1328是“嘿,Siri,我开车到那里需要多长时间?”,则服务器1314将确 定导航到某个位置的用户意图。然而,用户语音输入1328相对于导航任务 的位置参数是不明确的。因此,服务器1314基于对应于用户语音输入1316 的数据来确定“帕罗奥图”的位置参数,因为“帕罗奥图”是用于用户语 音输入1316的位置参数。
在一些示例中,服务器1314(例如,用户意图模块1106)使用对应于 用户语音输入1316的数据来确定对应于用户语音输入1328的用户意图。例 如,如果用户语音输入1328是“嘿,Siri,纽约呢?”,则服务器1314将 使用对应于用户语音输入1316的数据(例如,对应于用户语音输入1316的 文本数据,对应于用户语音输入1316的自然语言处理结果等)来确定用户 语音输入1328表示对数字助理使用用户语音输入1328中提供的参数(例 如,位置参数“纽约”)来执行先前由用户设备1304的数字助理执行的任 务的用户请求。因此,如果对应于用户语音输入1316的用户意图是获取天 气信息的用户意图(例如,因为用户语音输入1316是“嘿,Siri,帕罗奥图 的温度是多少?”),则服务器1314将确定对应于用户语音输入1328的用 户意图也是获取天气信息(但相对于纽约而不是帕罗奥图)。
如箭头1336所示,服务器1314向用户设备1306发送用于执行一个或 多个任务的第二命令和对应于用户设备1306的设备标识符。在用户设备 1306接收到第二命令并且基于对应于用户设备1306的相关联的设备标识符 确定其要执行该一个或多个任务之后,用户设备1306执行该一个或多个任 务。例如,如果用户语音输入1328是“嘿,Siri,纽呢?”,并且服务器 1314确定对应于用户语音输入1328的用户意图是获取天气信息(如上所 述),则该一个或多个任务将包括执行对与纽约相关联的天气数据的搜索, 检索所请求的天气数据(例如,温度数据),并且生成包括所检索的天气 数据的数字助理响应。第二命令还使得用户设备1306基于该一个或多个任 务的执行来输出数字助理响应。因此,如图13所示,用户设备1306将数字 助理响应1338作为音频输出(例如,经由一个或多个扬声器)输出,并且在一些示例中,将其作为视觉输出(例如,文本)在用户设备1306的显示 器上输出。返回前一示例,如果用户语音输入1316是“嘿,Siri,纽约 呢?”,则数字助理响应1338可以是“纽约当前45度。”
如箭头1340所示,在用户设备1306提供数字助理响应1338之后,用 户设备1306将上下文信息发送到公共设备1308(例如,因为数字助理响应 1338的输出是设备状态改变(例如,数字助理对话会话结束))。上下文 信息包括数字助理对话会话历史,该历史包括对应于用户语音输入1328和 数字助理响应1338的数据(例如,文本数据),以及作为该一个或多个任 务的执行的结果而检索的数据/信息(例如,与纽约相关联的天气数据)。 在从用户设备1306接收到上下文信息之后,公共设备1308将上下文信息结 合到更新的聚合上下文中,并且因此生成第二更新的聚合上下文,该更新 的聚合上下文现在还包括用户设备1306在其上下文信息中包括的数字助理 对话会话历史。
8.用于在包括至少两个电子设备的上下文共享组中提供数字助理的过程
图14A至图14C示出了根据各种示例的表示用于选择上下文共享组的 上下文收集器的过程的流程图。例如,使用实现数字助理的一个或多个电 子设备来执行过程1400。在一些示例中,过程1400的一个或多个框由一个 或多个远程设备(例如,一个或多个远程服务器(例如,DA服务器106)、 一个或多个本地服务器、云计算系统等)执行。例如,过程1400的框以任 何方式在一个或多个服务器(例如,DA服务器106)和客户端设备之间划 分。在其他示例中,过程1400的框在一个或多个服务器和多个客户端设备 (例如,移动电话和智能手表)之间划分。因此,虽然过程1400的部分在 本文中被描述为由特定设备执行,但应当理解,过程1400不限于此。在其 他示例中,使用仅客户端设备(例如,用户设备104)或仅多个客户端设备 来执行过程1400。在过程1400中,一些框被任选地组合,一些框的次序被 任选地改变,并且一些框被任选地省略。在一些示例中,可结合过程1400 来执行附加步骤。
在一些示例中,在框1402处,第一电子设备(例如,个人或客户端电 子设备(例如,移动设备(例如,
Figure BDA0002695099990001251
)、平板电脑(例如,
Figure BDA0002695099990001252
)、 智能手表(例如,Apple
Figure BDA0002695099990001253
)、台式计算机(例如,
Figure BDA0002695099990001254
)或膝上型 计算机(例如,
Figure BDA0002695099990001255
))或公共电子设备(例如,智能电视(例如, Apple
Figure BDA0002695099990001256
)或智能音箱(例如,
Figure BDA0002695099990001257
)))(例如,用户设备802)连接到第一位置的无线网络(例如,局域Wi-Fi网络(例如,用户的家、办 公室等的Wi-Fi网络))(例如,如图8的箭头812所示)。
在一些示例中,在框1404处,第一电子设备确定第一电子设备是否登 记在与第一位置相关联的上下文共享组中。在一些示例中,根据确定第一 电子设备未登记在该上下文共享组中,第一电子设备请求登记到该上下文 共享组中。在一些示例中,第一电子设备必须登记在该上下文共享组中以 便加入该上下文共享组(例如,先前经由存储在第一电子设备上的软件应 用程序(例如,HomeKit)或经由具有上下文共享组功能的网站登记)。
在框1406处,第一电子设备加入与第一位置相关联的上下文共享组 (例如,响应于设备状态改变而自动共享上下文信息(例如,与上下文收 集器共享)的一个或多个电子设备的集合(例如,在特定位置内))(例 如,如图8的上下文共享组814所示)。与第一位置相关联的上下文共享组 是至少两个电子设备的集合,每个电子设备与该集合中包括的至少一个其 他电子设备共享上下文信息。该上下文共享组包括至少第二电子设备。在 一些示例中,第一电子设备必须连接到无线网络,以便加入第一位置的上 下文共享组。在一些示例中,参与上下文共享组的每个电子设备连接到无 线网络。在一些示例中,第一电子设备通过与参与上下文共享组的至少一 个其他电子设备建立通信连接(例如,可经由该通信连接无线地发送上下 文信息和其他数据)来加入该上下文共享组。
在框1408处,在加入与第一位置相关联的上下文共享组之后,第一电 子设备挑选(例如,选择)至少两个电子设备的集合中的一个电子设备作 为该上下文共享组的上下文收集器。在一些示例中,第一电子设备响应于 加入上下文共享组(例如,紧接在加入之后)而挑选上下文收集器。在一 些示例中,第一电子设备响应于参与上下文共享组的电子设备(例如,当 前上下文收集器)离开该上下文共享组(例如,与第一位置的无线网络断 开连接)而挑选上下文收集器。
在框1410处,第一电子设备至少基于第一电子设备和第一位置的无线 网络之间的连接性的强度来确定对应于第一电子设备的第一上下文收集器 得分。在一些示例中,第一上下文收集器得分还基于第一电子设备的电源 状态(例如,有线电源连接对比电池电量和/或剩余电池电量)。在一些示 例中,第一上下文收集器得分还基于第一电子设备移进和移出上下文共享 组的频率(例如,连接到第一位置的无线网络/从第一位置的无线网络断开 连接的频率)。
在一些示例中,在框1412处,第一电子设备将第一上下文收集器得分 发送到至少在上下文共享组中包括的第二电子设备(例如,如箭头816所 示)。
在框1414处,第一电子设备从至少第二电子设备接收对应于至少第二 电子设备的一个或多个上下文收集器得分(例如,如图8的箭头818所示)。 在一些示例中,第一电子设备进一步发送指示第一电子设备先前是否被挑 选为该上下文共享组的上下文收集器的上下文收集器指示(例如,当第一 电子设备先前参与该上下文共享组时)。
在框1416处,第一电子设备基于第一上下文收集器得分和对应于至少 第二电子设备的一个或多个上下文收集器得分确定挑选该上下文共享组中 包括的电子设备中的哪个电子设备作为该上下文共享组的上下文收集器。 在一些示例中,第一电子设备确定挑选上下文共享组中包括的电子设备中 的哪个电子设备作为上下文共享组的上下文收集器包括将第一上下文收集 器得分与对应于至少第二电子设备的一个或多个上下文收集器得分进行比 较,并且基于该比较来识别最高上下文收集器得分,其中具有最高上下文 收集器得分的电子设备被挑选为上下文收集器。
在一些示例中,在框1418处,第一电子设备从至少第二电子设备接收 一个或多个上下文收集器指示(例如,如图8的箭头818所示)。上下文收 集器指示指示电子设备当前是否是上下文收集器。
在一些示例中,在框1420处,第一电子设备基于对应于第一电子设备 的上下文收集器指示和从至少第二电子设备接收的一个或多个上下文收集 器指示来确定上下文共享组当前是否包括上下文收集器。
在一些示例中,在框1422处,第一电子设备还基于上下文共享组当前 是否包括上下文收集器来确定挑选上下文共享组中包括的电子设备中的哪 个电子设备作为上下文共享组的上下文收集器。
在一些示例中,在框1424处,根据确定上下文共享组当前包括上下文 收集器,第一电子设备挑选当前上下文收集器作为该上下文共享组的上下 文收集器。在一些示例中,第二电子设备是该上下文共享组的上下文收集 器。
在一些示例中,在框1426处,根据确定上下文共享组包括多于一个上 下文收集器(例如,因为当先前参与该上下文共享组时,第一电子设备先 前被挑选为该上下文共享组的上下文收集器),基于第一上下文收集器得 分和对应于至少第二电子设备的一个或多个上下文收集器得分来确定挑选 该上下文共享组中包括的电子设备中的哪个电子设备作为该上下文共享组 的上下文收集器。
在框1428处,根据确定挑选第一电子设备作为上下文收集器,第一电 子设备响应于至少第二电子设备经历设备状态改变(媒体回放、应用程序 激活、定时器事件、闹钟事件、电源状态改变(例如,开机/关机)、显示 器可见性改变(例如,将第二电子设备从显示器向下位置转到显示器向上 位置(例如,在显示器向上位置,第二电子设备的显示器对于第二电子设 备的用户是可见的))、数字助理触发器(例如,“嘿,Siri”、“Siri” 等)检测和/或数字助理对话会话的结束)而从至少第二电子设备接收上下 文信息(例如,设备状态改变信息(例如,设备状态改变类型、设备状态 改变时间等)、设备能力信息、上下文状态信息(例如,当前位置、加速 度、显示器可见性、用户注意力等)、用户特定信息(例如,对应于电子 设备的注册用户)等(例如,如由图8的闹钟事件820和箭头822a表示)。
在一些示例中,在框1430处,第一电子设备从第二电子设备接收对上 下文共享组的聚合上下文(例如,从参与上下文共享组的一个或多个(例 如,每个)电子设备接收的上下文信息的所存储的集合(例如,当该一个 或多个电子设备经历设备状态改变时))的请求。在一些示例中,响应于 从第二电子设备的用户接收到用户语音输入,第二电子设备将该请求发送 到第一电子设备。
在一些示例中,在框1432处,第一电子设备将聚合上下文发送到第二 电子设备。在一些示例中,将聚合上下文发送到第二电子设备使得第二电 子设备基于聚合上下文中包括的上下文信息来获得对用户语音输入的数字 助理响应。在一些示例中,获得数字助理响应包括将用户语音输入和聚合 上下文的至少一部分发送到不参与上下文共享组的远程设备(例如,一个 或多个服务器、本地服务器、云计算系统等),使得该远程设备确定数字助理响应或确定用于第二电子设备执行的一个或多个任务。在远程设备确 定一个或多个任务的示例中,第二电子设备执行该一个或多个任务,并且 基于该一个或多个任务的执行的结果来确定数字助理响应。
在一些示例中,在框1434处,根据确定挑选第二电子设备作为上下文 收集器,第一电子设备响应于第一电子设备经历设备状态改变而将与第一 电子设备相关联的上下文信息发送到第二电子设备(例如,如图8的闹钟事 件820和箭头822b所示)。
图15A至图15B示出了根据各种示例的表示用于在上下文共享组中执 行一个或多个任务的过程的流程图。例如,使用实现数字助理的一个或多 个电子设备来执行过程1500。在一些示例中,过程1500的一个或多个框由 一个或多个远程设备(例如,一个或多个远程服务器(例如,DA服务器 106)、一个或多个本地服务器、云计算系统等)执行。例如,过程1500的 框以任何方式在一个或多个服务器(例如,DA服务器106)和客户端设备 之间划分。在其他示例中,过程1500的框在一个或多个服务器和多个客户 端设备(例如,移动电话和智能手表)之间划分。因此,虽然过程1500的 部分在本文中被描述为由特定设备执行,但应当理解,过程1500不限于此。 在其他示例中,使用仅客户端设备(例如,用户设备104)或仅多个客户端 设备来执行过程1500。在过程1500中,一些框被任选地组合,一些框的次 序被任选地改变,并且一些框被任选地省略。在一些示例中,可结合过程 1500来执行附加步骤。
在框1502处,参与与第一位置相关联的上下文共享组的第一电子设备 (例如,公共设备904)接收用户语音输入(例如,“嘿,Siri,停止定时 器”,嘿,Siri,播放音乐”等)(例如,如图9的用户语音输入918所 示)。该上下文共享组是至少两个电子设备的集合,这两个电子设备各自 与该集合中包括的至少一个其他电子设备共享上下文信息的(例如,如图9的上下文共享组914所示)。该集合至少包括第二电子设备(例如,用户设 备906、用户设备910或公共设备908)和上下文收集器(例如,公共设备 908)。在一些示例中,第二电子设备是上下文收集器。在一些示例中,上 下文收集器是参与该上下文共享组的第三电子设备。在一些示例中,参与 该上下文共享组的每个电子设备连接到第一位置的单个无线网络(例如, Wi-Fi网络)。
在一些示例中,在框1504处,响应于接收到用户语音输入,第一电子 设备向上下文收集器发送对上下文收集器将该上下文共享组的聚合上下文 发送到第一电子设备的请求(例如,如箭头920所示)。该请求使得上下文 收集器将聚合上下文发送到第一电子设备(例如,如图9的箭头922所示)。
在框1506处,第一电子设备从上下文收集器接收该上下文共享组的聚 合上下文(例如,从参与该上下文共享组的一个或多个(例如,每个)电 子设备接收的上下文信息的集合(例如,设备状态改变信息(例如,状态 改变的类型和状态改变的时间)、上下文状态信息(例如,设备位置、显 示器可见性(例如,显示器向上或显示器向下)、用户注意力信息(例如, 用户是否正在查看设备显示器)、网络连接的强度、电池电量、电源类型 (例如,电池对比有线电源)等)和/或设备能力信息(例如,设备类型、 处理能力、存储器可用性、显示器信息、扬声器信息等))(例如,如图9 的箭头922所示)。在一些示例中,聚合上下文中包括的上下文信息指示电 子设备是否可用(例如,电子设备当前是否正在被使用(例如,打开/活动的应用程序)、当前是否正在执行任务,和/或当前是否不能提供音频和/或 视觉输出(例如,因为电子设备面朝下))。
在一些示例中,在接收聚合上下文之前,至少第一电子设备和第二电 子设备将聚合上下文中包括的上下文信息提供给上下文收集器。在一些示 例中,第一电子设备和第二电子设备各自响应于经历设备状态改变而向上 下文收集器提供其相应的上下文信息。在一些示例中,上下文信息包括对 应于至少第一电子设备和第二电子设备的设备状态改变信息(例如,指示 设备状态改变的类型和/或设备状态改变的时间的数据)。在一些示例中,上下文信息包括对应于至少第一电子设备和第二电子设备的上下文状态信 息(例如,设备位置、显示器可见性(例如,显示器向上或显示器向下)、 用户注意力信息(例如,用户是否正在查看设备显示器)、网络连接的强 度、电池电量、电源类型(例如,电池对比有线电源)等)。在一些示例 中,上下文信息包括对应于至少第一电子设备和第二电子设备的设备能力 信息(例如,设备类型、处理能力、存储器可用性、显示器信息、扬声器 信息等)。
在一些示例中,在框1508处,在将聚合上下文的至少一部分发送到不 参与上下文共享组的远程设备(例如,一个或多个服务器)之前,第一电 子设备向第二电子设备发送对第二电子设备向第一电子设备提供指示(例 如,触发器指示)的请求,该指示是第二电子设备是否检测到(例如,接 收到或听到)用户语音输入中包括的数字助理触发器。当用户语音输入包 括数字助理触发器(例如,发起与电子设备的数字助理的对话会话的单词 或短语(例如,“嘿,Siri”、“Siri”等))时,第一电子设备发送该请 求。在一些示例中,第一电子设备请求第二电子设备向第一电子设备提供 关于第二电子设备是否已在预定时间段内(例如,在最后2秒、5秒或10秒 内)检测到数字助理触发器的指示(例如,触发器指示)。在一些示例中, 第一电子设备向参与上下文共享组的每个电子设备发送对触发器指示的请 求。在这些示例中,该请求是有关每个电子设备提供每个电子设备是否检 测到数字助理触发器的指示。
在一些示例中,在框1510处,在从第二电子设备接收到该指示(例如, 指示第二电子设备检测到或未检测到数字助理触发器)之后,第一电子设 备将该指示结合到聚合上下文中包括的与第二电子设备相关联的上下文信 息中(例如,将该指示作为设备接近度信息来结合)。在接收到包括该指 示的上下文信息之后,远程设备基于该指示(例如,基于该指示中包括的 数据)确定第二电子设备与第一电子设备的物理接近度(例如,当确定一 个或多个任务和/或选择电子设备以执行该一个或多个任务时)。在一些示 例中,该指示包括指示数字助理触发器的能量水平(例如,分贝水平) (例如,当由第二电子设备接收时数字助理触发器的能量水平)的数据。 在一些示例中,该指示包括对应于第二电子设备的关于该用户语音输入包 括数字助理触发器的置信度的置信度得分。
在框1512处,第一电子设备向不参与上下文共享组的远程设备(例如, 一个或多个服务器)提供(例如,发送)聚合上下文的至少一部分和对应 于用户语音输入的数据(例如,如图9的箭头924所示)。
在一些示例中,第一电子设备向远程设备提供所有聚合上下文。在一 些示例中,第一电子设备确定聚合上下文中包括的哪些上下文信息与用户 语音输入相关(例如,当第一电子设备执行第一用户输入的自然语言处理 时),并且仅向远程设备提供相关的上下文信息。在一些示例中,第一电 子设备基于对应于用户语音输入的活动知识本体的一个或多个域(例如, 通过识别与该一个或多个域相关的上下文信息)来确定哪些上下文信息是 相关的。在一些示例中,第一电子设备在向远程设备提供聚合上下文之前 移除聚合上下文中包括的个人数据(例如,个人信息和/或用户数据)。在 一些示例中,第一电子设备在向远程设备提供聚合上下文之前加密聚合上 下文中包括的个人数据(例如,个人信息和/或用户数据)。
在一些示例中,第一电子设备向远程设备提供音频数据。在一些示例 中,第一电子设备执行用户语音输入的语音识别处理(例如,语音转文本 处理),并且向远程设备提供对应于用户语音输入的文本数据(例如,用 户语音输入的文本表示)。在一些示例中,第一电子设备执行用户语音输 入的自然语言处理,并且向远程设备提供该自然语言处理的结果(例如, 一个或多个用户意图)。
在一些示例中,用户语音输入相对于定义将对用户语音输入进行响应 的电子设备是有歧义的(例如,当事件(例如,定时器事件或闹钟事件) 发生在参与上下文共享组的两个独立电子设备处时的用户语音输入诸如 “嘿,Siri,停止”)。在这些示例中的一些示例中,在远程设备(例如, 图11的语音输入接收器模块1102和聚合上下文接收器模块1104)从第一 电子设备接收到对应于用户语音输入的数据和聚合上下文的至少一部分之 后,远程设备(例如,图11的用户意图模块1106))基于聚合上下文的至 少一部分中包括的上下文信息来消除用户语音输入的歧义(例如,远程设 备使用指示聚合上下文中包括的设备状态改变的时间的数据来确定哪个事 件最近开始,因为该事件是用户最可能提到的事件(并且因此确定用户最 可能提到的电子设备))。
在一些示例中,第一电子设备和第二电子设备两者是各自注册到单个 用户的个人电子设备(例如,客户端设备)。在这些示例的一些中,在远 程设备(例如,图11的语音输入接收器模块1102和聚合上下文接收器模块 1104)从第一电子设备接收到对应于用户语音输入的数据和聚合上下文的 至少一部分之后,远程设备(例如,图11的用户意图模块1106)基于与第 二电子设备相关联的用户数据来消除用户语音输入中包括的一个或多个单 词的歧义。在一些示例中,与第二电子设备相关联的用户数据包括存储在 第二电子设备上的联系人、基于在第二电子设备处接收的用户语音输入而 生成的用户语音配置文件,和/或存储在第二电子设备上的媒体(例如,歌 曲、图像等)。在一些示例中,与第二电子设备相关联的用户数据存储在 远程设备上(例如,第二电子设备周期性地将用户数据同步到远程设备)。 在一些示例中,远程设备使用与第二电子设备相关联的用户语音配置文件 数据和/或与第二电子设备相关联的所存储的联系人信息来消除用户语音输 入的歧义(例如,识别用户语音输入中包括的一个或多个单词)。
在框1514处,第一电子设备从远程设备接收用于执行一个或多个任务 (例如,要由上下文共享组的电子设备执行以便满足对应于用户语音输入 的用户意图的一个或多个任务)的命令以及对应于第二电子设备的设备标 识符(例如,指示第二电子设备的数据)(例如,如图9的箭头926所示)。 在一些示例中,在电子设备加入上下文共享组时,为电子设备分配设备标 识符。在一些示例中,聚合上下文的至少一部分包括当前参与上下文共享组的每个电子设备的设备标识符(例如,与每个电子设备的上下文信息相 关联)。远程设备(例如,图11的任务确定模块1108和设备选择模块1110) 确定该一个或多个任务,并且基于对应于用户语音输入的数据和聚合上下 文的至少一部分中包括的上下文信息来选择设备标识符。
在一些示例中,上下文共享组还包括第四电子设备。在一些示例中, 第一电子设备、第二电子设备和第四电子设备全部是各自注册到单个用户 的个人电子设备(例如,客户端设备)。在这些示例中的一些示例中,在 框1516处,在(基于对应于第二电子设备的设备标识符)向第二电子设备 发送命令之前,第一电子设备从远程设备接收与第四电子设备相关联的用 户数据(例如,第一电子设备在接收命令之前、同时或之后不久接收该用 户数据)。在一些示例中,与第四电子设备相关联的用户数据包括存储在 第四电子设备上的联系人信息和/或存储在第四电子设备上的媒体(例如, 歌曲、图像、视频等)。在一些示例中,与第四电子设备相关联的用户数 据也存储在远程设备上(例如,第四电子设备周期性地将用户数据同步到 远程设备)。
在一些示例中,第一电子设备和第二电子设备两者是各自注册到不同 用户的个人电子设备(例如,客户端设备)。在这些示例中的一些示例中, 在框1518处,在将命令发送到第二电子设备之前,第一电子设备输出对用 户认证(例如,语音认证、密码认证和/或生物识别认证(例如,面部和/或 指纹认证))的请求。在一些示例中,第一电子设备确定第二电子设备注 册到不同用户,并且响应于该确定,输出对用户认证的请求。在一些示例 中,远程设备确定第一电子设备和第二电子设备各自注册到不同的用户。 在这些示例中,在输出对用户认证的请求之前,第一电子设备从远程设备 接收第二命令以及对应于第一电子设备的设备标识符(例如,如图9的箭头 925所示)。第二命令然后使得第一电子设备输出对认证的请求。在一些示 例中,在接收到命令(在框1514处接收)的同时接收到第二命令,并且第 一电子设备在将命令发送到第二电子设备之前执行第二命令。
在一些示例中,在框1520处,第一电子设备从第一电子设备的用户接 收认证数据。
在一些示例中,在框1522处,在接收到认证数据之后,响应于基于所 接收的认证数据确定第一电子设备的用户是第二电子设备的授权用户,第 一电子设备发送命令。在一些示例中,用户先前向第二电子设备注册而成 为第二电子设备的授权用户。在一些示例中,第二电子设备的用户将第一 电子设备的用户注册为第二电子设备的授权用户。在一些示例中,第一电 子设备的用户经由存储在第一电子设备和/或第二电子设备上的软件应用程 序(例如,HomeKit)和/或经由网站而被注册为第二电子设备的授权用户。 在一些示例中,第一电子设备将从用户接收的认证信息发送到远程设备 (例如,如图9的箭头927所示)。在这些示例中,远程设备确定用户是第 二电子设备的授权用户,并且因此指示第一电子设备将命令发送到第二电 子设备(例如,经由第二命令)。
在框1524处,第一电子设备基于设备标识符将命令发送到第二电子设 备(例如,如图9的箭头928a或928b所示)。该命令使得第二电子设备执 行一个或多个任务。在一些示例中,该命令进一步使得第二电子设备在执 行一个或多个任务之后输出用户查询(例如,作为音频输出和/或经由显示 器输出)。在一些示例中,该用户查询询问是否将用于执行一个或多个任 务的第二命令发送到参与上下文共享组的第四电子设备。在一些示例中, 该命令使得第二电子设备在执行一个或多个任务之前输出该用户查询。
在上述示例中的第一电子设备接收(在框1516处)与第四电子设备相 关联的用户数据的一些示例中,在框1526处,第一电子设备将与第四电子 设备相关联的用户数据连同命令发送到第二电子设备(例如,响应于用户 语音输入“嘿,Siri,播放Taylor Swift的歌曲”,服务器向第一电子设备提 供存储在第四电子设备上的对应于Taylor Swift的歌曲的数据(例如,音频 数据),使得第二电子设备可随后播放Taylor Swift的歌曲,尽管该歌曲没 有存储在第二电子设备上)。在这些示例中,发送到第二电子设备的命令 使得第二电子设备基于用户数据来执行一个或多个任务。
图16A至图16E示出了根据各种示例的表示用于识别参与上下文共享 组的电子设备来执行一个或多个任务的过程的流程图。过程1600例如由一 个或多个服务器(例如,DA服务器106)执行。在一些示例中,过程1600 例如由一个或多个其他远程设备或远程设备的组合(例如,一个或多个本 地服务器、云计算系统等)执行。在一些示例中,使用实现数字助理的一 个或多个电子设备来执行过程1600的一个或多个框。例如,过程1600的框 以任何方式在一个或多个服务器(例如,DA服务器106)和客户端设备之 间划分。在其他示例中,过程1600的框在一个或多个服务器和多个客户端 设备(例如,移动电话和智能手表)之间划分。因此,虽然过程1600的部 分在本文中被描述为由特定设备执行,但应当理解,过程1600不限于此。 在其他示例中,使用仅客户端设备(例如,用户设备104)或仅多个客户端 设备来执行过程1600。在过程1600中,一些框被任选地组合,一些框的次 序被任选地改变,并且一些框被任选地省略。在一些示例中,可结合过程 1600来执行附加步骤。
在框1602处,一个或多个服务器(例如,服务器916(例如,图11的 语音输入接收器模块1102和聚合上下文接收器模块1104))从参与与第一 位置相关联的上下文共享组的第一电子设备(例如,公共设备904)接收用 户语音输入和该上下文共享组的聚合上下文的至少一部分(例如,如图9的 箭头924所示)。该上下文共享组(例如,上下文共享组914)是多个电子 设备的集合,每个电子设备与该集合中包括的至少一个其他电子设备共享 上下文信息。在一些示例中,该多个电子设备中的每个电子设备连接到第 一位置的单个无线网络(例如,Wi-Fi网络)。在一些示例中,参与该上下 文共享组的电子设备中的至少一个电子设备连接到该单个无线网络,并且 参与该上下文共享组的其余电子设备经由一个或多个无线通信连接(例如, 短距离通信连接(例如,蓝牙和/或BTLE))连接到该至少一个电子设备。
聚合上下文是例如从参与上下文共享组的一个或多个(例如,每个) 电子设备接收的上下文信息的集合(例如,设备状态改变信息(例如,状 态改变的类型和状态改变的时间)、上下文状态信息(例如,设备位置、 显示器可见性(例如,显示器向上或显示器向下)、用户注意力信息(例 如,用户是否正在查看设备显示器)、网络连接的强度、电池电量、电源类型(例如,电池对比有线电源)等)和/或设备能力信息(例如,设备类 型、处理能力、存储器可用性、显示器信息、扬声器信息等))。在一些 示例中,上下文信息(例如,设备状态改变信息和/或上下文状态信息)指 示电子设备是否可用(例如,电子设备当前是否正被使用(例如,是否存 在打开的/活动的应用程序等)、当前是否正在执行任务和/或当前是否不能提供音频和/或视觉输出(例如,因为电子设备面朝下、静音、在播放媒体 等))。在一些示例中,聚合上下文中包括的上下文信息包括指示参与上 下文共享组的一个或多个电子设备与第一电子设备的物理接近程度的设备 接近度信息。在一些示例中,设备接近度信息基于指示参与上下文共享组 的一个或多个电子设备是否检测到(例如,听到)用户语音输入中包括的 数字助理触发器单词或短语的数据(例如,一个或多个触发器指示中包括 的数据)。
在框1604处,一个或多个服务器(例如,图11的用户意图模块1106) 基于用户语音输入确定用户意图。在一些示例中,确定用户意图包括一个 或多个服务器执行用户语音输入的语音识别处理和/或自然语言处理。在一 些示例中,一个或多个服务器还基于聚合上下文的至少一部分中包括的上 下文信息确定用户意图。在这些示例中的一些示例中,上下文信息包括与 参与上下文共享组的第二电子设备相关联的设备状态改变信息(例如,指示参与上下文共享组的电子设备的设备状态改变的时间、位置和/或类型的 上下文信息)。在设备状态改变信息指示第二电子设备的最近设备状态改 变的设备状态改变的类型和设备状态改变的时间的一些示例中,确定用户 意图包括基于设备状态改变的类型和设备状态改变的时间来消除用户语音 输入的歧义。例如,如果用户语音输入是“嘿,Siri,停止”并且上下文信 息指示定时器事件正在设备处发生,则一个或多个服务器可基于定时器事 件指示确定停止定时器的用户意图。在一些示例中,当两个或更多个事件 (例如,定时器、闹钟、媒体回放等)在两个或更多个独立的电子设备处 发生时,一个或多个服务器使用设备状态改变时间信息来基于最近设备状 态改变来确定用户意图(例如,如果定时器事件比媒体回放事件更近,则 一个或多个服务器可响应于用户语音输入“嘿,Siri,停止。”确定停止定 时器事件的用户意图)。
在框1606处,一个或多个服务器(例如,图11的任务确定模块1108) 确定对应于用户意图的一个或多个任务(例如,将由电子设备执行以满足 用户意图的一个或多个任务)。在一些示例中,对应于用户意图的一个或 多个任务基于所确定的用户意图而被预先确定。在一些示例中,一个或多 个任务包括执行搜索、检索信息/数据、打开存储在电子设备上的软件应用 程序、播放媒体、进行购买、显示所检索的信息/数据等。
在框1608处,一个或多个服务器(例如,图11的设备选择模块1110) 识别(例如,选择)该多个电子设备中的第二电子设备(例如,个人电子 设备或公共电子设备)以基于一个或多个任务和聚合上下文的至少一部分 中包括的上下文信息(例如,与第二电子设备相关联的上下文信息和/或与 该多个电子设备中的一个或多个电子设备相关联的上下文信息)来执行一 个或多个任务。在一些示例中,一个或多个服务器还基于所确定的用户意 图来识别第二电子设备。在一些示例中,第一电子设备是第二电子设备(例如,当一个或多个服务器将向一个或多个服务器提供用户语音输入的 电子设备识别为执行一个或多个任务的最佳电子设备时)。在一些示例中, 一个或多个服务器识别多个电子设备中的两个或更多个电子设备,而不是 仅识别一个电子设备(例如,用于多模态任务执行)。
在一些示例中,在框1610处,识别第二电子设备(在框1608处)包括 一个或多个服务器基于上下文信息中包括的设备状态改变信息(例如,与 第二电子设备相关联和/或与该多个电子设备中的一个或多个其他电子设备 相关联的设备状态改变信息(例如,设备状态改变的时间、设备状态改变 的类型(例如,定时器事件、闹钟事件、媒体回放等)等))来确定对应 于用户意图(例如,停止定时器、停止闹钟、停止或更新媒体回放(例如, 暂停或改变歌曲)等的用户意图)的事件(例如,定时器事件、闹钟事件、 媒体回放等)当前是否在该多个电子设备中的一个或多个电子设备处发生。
在一些示例中,在框1612处,根据确定对应于用户意图的事件当前仅 在第二电子设备处发生,一个或多个服务器识别(例如,选择)第二电子 设备。
在一些示例中,在框1614处,根据确定对应于用户意图的事件当前正 在第二电子设备和该多个电子设备中的至少一个其他电子设备处发生,一 个或多个服务器基于指示设备状态改变信息中包括的设备状态改变的时间 的数据来确定哪个事件最近开始。
在一些示例中,在框1616处,根据确定在第二电子设备处发生的事件 最近开始,一个或多个服务器识别(例如,选择)第二电子设备。
在一些示例中,在框1618处,识别第二电子设备(在框1608处)包括 一个或多个服务器基于上下文信息中包括的设备状态改变信息(例如,设 备状态改变的时间、设备状态改变的类型(例如,定时器事件、闹钟事件、 媒体回放等)等)来确定对应于用户意图(例如,重新启动定时器、恢复 媒体回放等的用户意图)的事件(例如,停止定时器、暂停媒体回放等) 先前是否在预定时间段内(例如,在最后5分钟、10分钟或15分钟内)在 该多个电子设备中的一个或多个电子设备处发生。
在一些示例中,在框1620处,根据确定对应于用户意图的事件先前在 预定时间段内仅在第二电子设备处发生,一个或多个服务器识别(例如, 选择)第二电子设备。
在一些示例中,在框1622处,根据确定对应于用户意图的事件先前在 预定时间段内在第二电子设备和该多个电子设备中的至少一个其他电子设 备处发生,一个或多个服务器基于上下文信息中包括的接近度信息(例如, 与第二电子设备和该至少一个其他电子设备相关联的接近度信息)确定是 第二电子设备还是该至少一个其他电子设备在物理上更靠近第一电子设备。 在一些示例中,一个或多个服务器基于上下文信息中包括的上下文状态信 息(例如,第二电子设备和该至少一个其他电子设备的当前位置)来确定 是第二电子设备还是该至少一个其他电子设备在物理上更靠近第一电子设 备。
在一些示例中,在框1624处,根据确定第二电子设备比该至少一个其 他电子设备在物理上更靠近第一电子设备,一个或多个服务器识别(例如, 选择)第二电子设备。在一些示例中,一个或多个服务器将命令发送到第 一电子设备(例如,在用于执行一个或多个任务的命令之前或与其同时), 该命令使得第一电子设备请求第一电子设备的用户选择该多个电子设备中 的电子设备以执行一个或多个任务(例如,而不是确定哪个电子设备最靠近第一电子设备,或者第二电子设备和该至少一个其他电子设备何时在物 理上同样靠近第一电子设备(或在第一位置的相同区域(例如,同一房间) 内)。
在一些示例中,上述接近度信息基于指示该多个电子设备中的一个或 多个电子设备是否检测到用户语音输入中包括的数字助理触发器的数据 (例如,指示电子设备是否检测到数字助理触发器的数据被包括在聚合上 下文中包括的上下文信息中(例如,包括在聚合上下文中包括的一个或多 个触发器通告中))。在一些示例中,指示该多个电子设备中的一个或多 个电子设备是否检测到用户语音输入中包括的数字助理触发器的数据包括指示数字助理触发器的能量水平(例如,分贝水平)的数据(例如,当被 电子设备接收时数字助理触发器单词或短语的能量水平)。
在一些示例中,在框1626处,识别第二电子设备(在框1608处)包括 一个或多个服务器基于上下文信息中包括的设备状态改变信息(例如,设 备状态改变的时间,设备状态改变的类型(例如,定时器事件、闹钟事件、 媒体回放等))来确定该多个电子设备中的一个或多个电子设备是否可用 于执行一个或多个任务。例如,如果聚合上下文中包括的上下文信息(具 体地讲,设备状态改变信息和/或上下文状态信息)指示电子设备当前正被 使用(例如,打开/活动的应用程序)、当前正在执行任务和/或当前不能提 供音频和/或视觉输出(例如,因为电子设备面朝下、静音、播放媒体等), 则该电子设备不可用。在一些示例中,一个或多个服务器还基于上下文信 息中包括的上下文状态信息(例如,还基于一个或多个电子设备的显示器 可见性)来确定一个或多个电子设备是否可用。
在一些示例中,在框1628处,根据确定第二电子设备可用于执行一个 或多个任务,一个或多个服务器基于上下文信息中包括的设备能力信息 (例如,与第二电子设备相关联的设备能力信息(例如,设备类型、处理 能力、存储器可用性、显示器信息、扬声器信息等))来确定第二电子设 备是否能够执行该一个或多个任务。例如,如果该一个或多个任务包括显 示信息(例如,任务执行的结果)的任务,则电子设备必须至少具有显示 器以便能够执行该一个或多个任务。在一些示例中,一个或多个服务器还 基于上下文信息中包括的上下文状态信息(例如,与第二电子设备相关联 的上下文状态信息,诸如网络连接的强度、电池电量、电源类型(例如, 电池对比有线电源)等)来确定第二电子设备是否能够执行该一个或多个 任务。
在一些示例中,在框1630处,根据确定第二电子设备能够执行该一个 或多个任务,一个或多个服务器确定该多个电子设备中的至少一个其他电 子设备是否可用而且能够执行该一个或多个任务。
在一些示例中,在框1632处,根据确定该多个电子设备中没有其他电 子设备可用而且能够执行该一个或多个任务,一个或多个服务器识别(例 如,选择)第二电子设备。
在一些示例中,在框1634处,根据确定该多个电子设备中的至少一个 其他电子设备可用而且能够执行该一个或多个任务,一个或多个服务器基 于上下文信息中包括的接近度信息(例如,与第二电子设备和该至少一个 其他电子设备相关联的接近度信息)来确定是第二电子设备还是该至少一 个其他电子设备在物理上更靠近第一电子设备。接近度信息基于指示该多 个电子设备中的一个或多个电子设备是否检测到用户语音输入中包括的数 字助理触发器的数据(例如,在一个或多个触发器指示中包括的数据)。 指示该多个电子设备中的一个或多个电子设备是否检测到用户语音输入中 包括的数字助理触发器的数据包括指示根据第二电子设备的数字助理触发 器的第一能量水平的数据和指示根据该至少一个其他电子设备的数字助理 触发器的第二能量水平的数据。在一些示例中,一个或多个服务器还基于 上下文信息中包括的上下文状态信息(例如,第二电子设备的当前位置和 该至少一个其他电子设备的当前位置)来确定是第二电子设备还是该至少 一个其他电子设备在物理上更靠近第一电子设备。
在一些示例中,在框1636处,确定是第二电子设备还是该至少一个其 他电子设备在物理上更靠近第一电子设备(在框1634处)包括一个或多个 服务器将根据第二电子设备的数字助理触发器的第一能量水平和根据该至 少一个其他电子设备的数字助理触发器的第二能量水平进行比较。
在一些示例中,在框1638处,一个或多个服务器确定第一能量水平和 第二能量水平之间的差值是否小于预定阈值(例如,预定分贝水平差值 (例如,2分贝、5分贝等))。
在一些示例中,在框1640处,根据确定该差值小于预定阈值,一个或 多个服务器基于上下文信息中包括的用户注意力信息来确定第一电子设备 的用户是正在查看第二电子设备的显示器还是查看该至少一个其他电子设 备的显示器。
在一些示例中,在框1642处,根据确定用户正在查看第二电子设备的 显示器,一个或多个服务器识别(例如,选择)第二电子设备。
在一些示例中,在框1642处,根据确定第二电子设备比该至少一个其 他电子设备在物理上更靠近第一电子设备(在框1634处),一个或多个服 务器识别(例如,选择)第二电子设备。
在一些示例中,在框1646处,一个或多个服务器基于一个或多个任务 和上下文信息识别(例如,选择)该多个电子设备中的第三电子设备以执 行该一个或多个任务中的至少一个任务(例如,显示所检索的信息/数据, 基于所检索的信息/数据提供音频输出等)(例如,在第二电子设备执行其 余任务之前、之后或同时执行)。
在框1648处,一个或多个服务器(例如,命令模块1112)向第一电子 设备发送用于执行一个或多个任务的命令和对应于第二电子设备的设备标 识符(例如,指示第二电子设备的数据)(例如,如图9的箭头926所示)。 在接收到该命令之后,第一电子设备基于设备标识符将该命令发送到第二 电子设备。该命令然后使得第二电子设备执行一个或多个任务。在一些示 例中,该命令进一步使得第二电子设备基于该一个或多个任务的执行来提 供音频和/或视觉数字助理响应(例如,“现在播放Taylor Swift的歌曲”或 “恢复《星球大战:帝国反击战》。”)。
在一些示例中,在电子设备加入上下文共享组时,为电子设备分配设 备标识符。在一些示例中,聚合上下文的至少一部分包括当前参与上下文 共享组的每个电子设备的设备标识符(例如,与每个电子设备的上下文信 息相关联)。
在上述示例中的一个或多个服务器识别第三电子设备以执行该一个或 多个任务中的至少一个任务(在框1646处)的一些示例中,在框1650处, 一个或多个服务器向第一电子设备发送用于执行该至少一个任务的第二命 令和对应于第三电子设备的设备标识符。在一些示例中,一个或多个服务 器将命令和第二命令同时发送到第一电子设备。
图17A至图17C示出了根据各种示例的表示用于上下文共享组中的多 模态任务执行的过程的流程图。例如,使用实现数字助理的一个或多个电 子设备来执行过程1700。在一些示例中,过程1700的一个或多个框由一个 或多个远程设备(例如,一个或多个远程服务器(例如,DA服务器106)、 一个或多个本地服务器、云计算系统等)执行。例如,过程1700的框以任 何方式在一个或多个服务器(例如,DA服务器106)和客户端设备之间划 分。在其他示例中,过程1700的框在一个或多个服务器和多个客户端设备 (例如,移动电话和智能手表)之间划分。因此,虽然过程1700的部分在 本文中被描述为由特定设备执行,但应当理解,过程1700不限于此。在其 他示例中,使用仅客户端设备(例如,用户设备104)或仅多个客户端设备 来执行过程1700。在过程1700中,一些框被任选地组合,一些框的次序被 任选地改变,并且一些框被任选地省略。在一些示例中,可结合过程1700 来执行附加步骤。
在框1702处,参与与第一位置相关联的上下文共享组的第一电子设备 (例如,公共设备1204)接收用户语音输入(例如,用户语音输入1218)。 该上下文共享组是多个电子设备的集合,每个电子设备与该集合中包括的 至少一个其他电子设备共享上下文信息。该集合包括上下文收集器(例如, 公共设备1206)。
在框1704处,第一电子设备从上下文收集器接收该上下文共享组的聚 合上下文(例如,如图12A的箭头1222所示)。
在框1706处,在接收到聚合上下文之后,第一电子设备向不参与该上 下文共享组的远程设备提供该聚合上下文的至少一部分和对应于用户语音 输入的数据(例如,如图12A的箭头1224所示)。远程设备基于对应于用 户语音输入的数据来确定多个任务(例如,将由参与上下文共享组的一个 或多个电子设备执行以便满足对应于用户语音输入的用户意图的多个任 务)。在一些示例中,远程设备还基于聚合上下文的至少一部分中包括的 上下文信息(例如,还基于设备状态改变信息)来确定多个任务。
在一些示例中,第一电子设备向远程设备提供所有聚合上下文。在一 些示例中,第一电子设备确定聚合上下文中包括的哪些上下文信息与用户 语音输入相关(例如,当第一电子设备执行第一用户输入的自然语言处理 时),并且仅向远程设备提供相关的上下文信息。在一些示例中,第一电 子设备基于对应于用户语音输入的活动知识本体的一个或多个域(例如, 通过识别与该一个或多个域相关的上下文信息)来确定哪些上下文信息是 相关的。在一些示例中,第一电子设备在向远程设备提供聚合上下文之前 移除聚合上下文中包括的个人数据(例如,个人信息和/或用户数据)。在 一些示例中,第一电子设备在向远程设备提供聚合上下文之前加密聚合上 下文中包括的个人数据(例如,个人信息和/或用户数据)。
在框1708处,第一电子设备从远程设备接收用于执行该多个任务中的 第一组任务的第一命令和用于执行该多个任务中的第二组任务的第二命令 (例如,如图12A的箭头1226所示)。在一些示例中,第一组任务中的一 个或多个任务与第二组任务中的一个或多个任务相同(例如,执行搜索、 基于该搜索检索信息/数据、打开存储在第一电子设备和第二电子设备上的 软件应用程序等)。
在一些示例中,聚合上下文的至少一部分包括与第二电子设备相关联 的上下文信息和与该多个电子设备中的第三电子设备相关联的上下文信息。 在这些示例中的一些示例中,远程设备基于与第二电子设备相关联的上下 文信息中包括的设备能力信息(例如,第二电子设备是否具有显示器和/或 显示器的尺寸,第二电子设备是否具有扬声器和/或扬声器的响度,设备处 理功率等)来确定第一组任务,并且远程设备基于与第三电子设备相关联 的上下文信息中包括的设备能力信息(例如,第三电子设备是否具有显示 器和/或显示器的尺寸、第三电子设备是否具有扬声器和/或扬声器的响度、 设备处理电力等)来确定第二组任务。此外,在这些示例中的一些示例中, 响应于基于与第二电子设备相关联的上下文信息和与第三电子设备相关联 的上下文信息确定第二电子设备和第三电子设备两者可用(例如,当前未 被使用(例如,打开/活动的应用程序),当前未在执行任务,和/或当前能 够提供音频和/或视觉输出(例如,因为电子设备面朝上)),能够执行该 多个任务中的至少一个任务,而且邻近第一电子设备(例如,位于与第一 电子设备相同的第一位置的区域(例如,同一房间)内),远程设备确定 第一组任务和第二组任务。在一些示例中,远程设备基于上下文信息中包 括的接近度信息(例如,基于分别根据第二电子设备和第三电子设备的数 字助理触发器单词或短语的能量水平(例如,分贝水平)(例如,在被第 二电子设备接收时数字助理触发器单词或短语的能量水平与在被第三电子 设备接收时数字助理触发器单词或短语的能量水平相比))来确定电子设 备是否位于与第一电子设备相同的第一位置的区域内。
在框1710处,第一电子设备从远程设备接收对应于该多个电子设备中 的第二电子设备的第一设备标识符(例如,指示第二电子设备的数据)和 对应于该多个电子设备中的第三电子设备的第二设备标识符(例如,如图 12A的箭头1226所示)。在一些示例中,第二电子设备或第三电子设备是 第一电子设备。
在框1712处,第一电子设备基于第一设备标识符将第一命令发送到第 二电子设备(例如,如图12A的箭头1228所示)。第一命令使得第二电子 设备执行第一组任务。如上所述,在一些示例中,第一电子设备是第二电 子设备。在这些示例中,第一电子设备响应于从远程设备接收到第一命令 而执行第一组任务(而不是发送第一命令)。
在框1714处,第一电子设备基于第二设备标识符将第二命令发送到第 三电子设备。第二命令使得第三电子设备执行第二组任务。如上所述,在 一些示例中,第一电子设备是第三电子设备。在这些示例中,第一电子设 备响应于从远程设备接收到第二命令而执行第二组任务(而不是发送第二 命令)。
在一些示例中,第二电子设备基于第一组任务的执行而仅输出音频输 出(例如,说出所有《星球大战》电影的片名的数字助理响应),并且第 三电子设备基于第二组任务的执行而仅显示视觉输出(例如,显示《星球 大战》电影的片名以及对应的电影海报图像)。
在一些示例中,响应于执行第一组任务,第二电子设备输出(例如, 在第二电子设备的显示器上和/或作为音频输出)基于第一组任务的执行而 检索的数据或信息的简短摘要(例如,对应于《星球大战》电影片名、历 史信息、演员信息等的文本、超链接、图像等的简短摘要)。
在一些示例中,响应于执行第二组任务,第三电子设备输出(例如, 在第三电子设备的显示器上和/或作为音频输出)基于第二组任务的执行而 检索的数据或信息的详细摘要(例如,对应于《星球大战》电影片名、历 史信息、演员信息等的文本、超链接、图像等的详细摘要)。在一些示例 中,详细摘要包括未包括在简短摘要中的超链接、图像、音频数据或文本 数据中的至少一者。
在一些示例中,在框1716处,第一电子设备接收表示进行购买的用户 请求的第二用户语音输入(例如,用户语音输入1234)(例如,“嘿,Siri, 购买《星球大战:帝国反击战》。”)。
在一些示例中,在框1718处,第一电子设备从上下文收集器接收更新 的聚合上下文(例如,如图12B的箭头1238所示)。更新的聚合上下文包 括与第二电子设备相关联的更新的上下文信息和与第三电子设备相关联的 更新的上下文信息(例如,这两个设备的更新的上下文信息包括分别指示 第一组任务的执行结果和第二组任务的执行结果的数据(例如,提供的任 何音频输出、当前显示的内容等))。在一些示例中,第二电子设备在执 行第一组任务之后将与第二电子设备相关联的更新的上下文信息发送到上 下文收集器,并且第三电子设备在执行第二组任务之后将与第三电子设备 相关联的更新的上下文信息发送到上下文收集器。
在一些示例中,在框1720处,第一电子设备向远程设备发送对应于第 二用户语音输入的数据和更新的聚合上下文的至少一部分(例如,如图12B 的箭头1240所示)。然后,远程设备基于对应于第二用户语音输入的数据 确定第二多个任务。在一些示例中,远程设备还基于更新的聚合上下文的 至少一部分中包括的上下文信息(例如,还基于设备状态改变信息)来确 定多个任务。
在一些示例中,在框1722处,第一电子设备从远程设备接收用于执行 第二多个任务中的第三组任务的第三命令以及对应于该多个电子设备中的 第四电子设备的第三设备标识符(例如,如图12B的箭头1242所示)。第 三组任务包括用户认证任务。在一些示例中,第四电子设备是第二电子设 备。
在一些示例中,在框1724处,第一电子设备基于第三设备标识符将第 三命令发送到第四电子设备(例如,如图12B的箭头1244所示)。第三命 令使得第四电子设备执行第三组任务。
在一些示例中,在将第三命令发送到第四电子设备之后(在框1724 处),在框1726处,第一电子设备从第四电子设备接收对应于第一电子设 备的用户的用户认证数据(例如,语音认证数据、密码认证数据和/或生物 识别认证数据(例如,对应于面部和/或指纹认证的数据))(例如,如图 12B的箭头1246所示)。
在一些示例中,在框1728处,第一电子设备将该用户认证数据发送到 远程设备(例如,如图12B的箭头1248所示)。
在一些示例中,在框1730处,第一电子设备从远程设备接收用于执行 第二多个任务中的第四组任务的第四命令以及对应于第三电子设备的第二 设备标识符(例如,如图12B的箭头1250所示)。响应于基于用户认证数 据确定第一电子设备的用户被授权进行所请求的购买,远程设备将第四命 令发送到第一电子设备。第四组任务包括执行所请求的购买的任务。在一 些示例中,远程设备在第三命令之前、同时或之后不久发送第四命令。在这些示例中,直到远程设备通知第一电子设备有关第一电子设备的用户被 授权进行所请求的购买,第一电子设备才会将第四命令发送到第三电子设 备。
在一些示例中,在框1732处,第一电子设备基于第二设备标识符将第 四命令发送到第三电子设备(例如,如图12B的箭头1252所示)。第四命 令使得第三电子设备执行第四组任务。
在一些示例中,在将第三命令发送到第四电子设备(在框1724处)之 后,在框1734处,第一电子设备从第四电子设备接收有关第一电子设备的 用户被授权进行所请求的购买的指示(例如,第四电子设备在本地认证用 户(例如,基于存储在第四电子设备上的用户认证数据)并响应于该认证 而发送该指示)。
在一些示例中,在框1736处,第一电子设备将该指示发送到远程设备。
在一些示例中,在框1738处,第一电子设备从远程设备接收用于执行 第二多个任务中的第五组任务的第五命令以及对应于第三电子设备的第二 设备标识符。响应于接收到有关第一电子设备的用户被授权进行所请求的 购买的指示,远程设备将第五命令发送到第一电子设备。第五组任务包括 执行所请求的购买的任务。
在一些示例中,远程设备在第三命令之前、同时或之后不久发送第五 命令。在这些示例中,直到第一电子设备接收到有关第一电子设备的用户 被授权进行所请求的购买的指示,第一电子设备才会将第五命令发送到第 三电子设备(这样,服务器不参与用户认证决定)。如果用户未被授权进 行所请求的购买,则第一电子设备不将第五命令发送到第三电子设备。
在一些示例中,在框1740处,第一电子设备基于第二设备标识符将第 五命令发送到第三电子设备。第五命令使得第三电子设备执行第五组任务。
图18A至图18B示出了根据各种示例的表示跨参与上下文共享组的多 个电子设备的持续数字助理会话的过程的流程图。例如,使用实现数字助 理的一个或多个电子设备来执行过程1800。在一些示例中,过程1800的一 个或多个框由一个或多个远程设备(例如,一个或多个远程服务器(例如, DA服务器106)、一个或多个本地服务器、云计算系统等)执行。例如, 过程1800的框以任何方式在一个或多个服务器(例如,DA服务器106)和 客户端设备之间划分。在其他示例中,过程1800的框在一个或多个服务器 和多个客户端设备(例如,移动电话和智能手表)之间划分。因此,虽然 过程1800的部分在本文中被描述为由特定设备执行,但应当理解,过程 1800不限于此。在其他示例中,使用仅客户端设备(例如,用户设备104) 或仅多个客户端设备来执行过程1800。在过程1800中,一些框被任选地组 合,一些框的次序被任选地改变,并且一些框被任选地省略。在一些示例 中,可结合过程1800来执行附加步骤。
在框1802处,参与与第一位置相关联的上下文共享组的第一电子设备 (例如,用户设备1304)接收第一用户语音输入(例如,图13的用户语音 输入1316(例如,“嘿,Siri,帕罗奥图的温度是多少?”))。该上下文 共享组是至少两个电子设备的集合,每个电子设备与该集合中包括的至少 一个其他电子设备共享上下文信息。该集合包括第二电子设备(例如,用 户设备1306)和上下文收集器(例如,公共设备1308)。在一些示例中, 上下文收集器是参与该上下文共享组的第三电子设备。在一些示例中,上 下文收集器是第一电子设备或第二电子设备。在一些示例中,第一电子设 备和第二电子设备位于第一位置的两个独立区域(例如,两个独立房间) 内。
在一些示例中,在框1804处,在输出第一数字助理响应之前,第一电 子设备从上下文收集器接收该上下文共享组的聚合上下文(例如,如图13 的箭头1320所示)。在这些示例中,该聚合上下文包括与第一电子设备相 关联的上下文信息和与第二电子设备相关联的上下文信息。
在一些示例中,在框1806处,第一电子设备将对应于第一用户语音输 入的数据和聚合上下文的至少一部分发送到不参与该上下文共享组的远程 设备(例如,一个或多个远程服务器、一个或多个本地服务器、云计算系 统等)(例如,如图13的箭头1322所示)。
在一些示例中,在框1808处,第一电子设备从远程设备接收用于执行 一个或多个任务的第一命令和对应于第一电子设备的第一设备标识符(例 如,如图13的箭头1324所示)。在这些示例中,远程设备至少基于对应于 第一用户语音输入的数据和聚合上下文中包括的上下文信息(例如,与第 一电子设备相关联的上下文信息和/或与参与该上下文共享组的一个或多个 其他电子设备相关联的上下文信息)来确定该一个或多个任务以及对应于 第一电子设备的设备标识符。第一命令使得第一电子设备执行该一个或多 个任务并且基于该一个或多个任务的执行的结果来确定第一数字助理响应。
在框1810处,第一电子设备基于第一用户语音输入输出第一数字助理 响应(例如,数字助理响应1326(例如,“帕罗奥图当前68度。”))。
在输出第一数字助理响应之后(例如,紧接在该输出之后或该输出之 后几秒(例如,在当前对话会话结束之后(例如,在没有在第一电子设备 处接收到附加用户语音输入的情况下,在第一电子设备提供第一数字助理 响应之后1秒或2秒))),在框1812处,第一电子设备将包括第一电子 设备的数字助理对话会话历史的上下文信息发送到上下文收集器(例如, 如图13的箭头1327所示)。在一些示例中,数字助理对话会话历史包括对 应于最近数字助理对话会话的数据(例如,ASR结果、NLP结果和/或在最 近数字助理对话会话期间检索和/或提供的数据(例如,对应于最近用户语 音输入和数字助理响应的数据))。例如,数字助理对话会话历史包括对 应于第一用户语音输入和第一数字助理响应的数据。在一些示例中,数字 助理对话会话历史包括对应于在预定时间段内(例如,在过去一小时内、 在过去一天内等)发生的数字助理对话会话的数据。
在框1814处,第二电子设备接收第二用户语音输入(例如,用户语音 输入1328(例如,“嘿,Siri,我开车到那里需要多长时间?”))。在一 些示例中,第一电子设备和第二电子设备从单个用户接收第一用户语音输 入和第二用户语音输入。在其他示例中,第一电子设备和第二电子设备从 不同的用户接收第一用户语音输入和第二用户语音输入。
在一些示例中,在框1816处,第二电子设备将对上下文共享组的更新 的聚合上下文的请求发送到上下文收集器(例如,如图13的箭头1330所 示)。在一些示例中,第二电子设备响应于接收到第二用户语音输入而发 送对更新的聚合上下文的请求。
在框1818处,第二电子设备从上下文收集器接收该上下文共享组的更 新的聚合上下文(例如,如图13的箭头1332所示)。更新的聚合上下文包 括第一电子设备的数字助理对话会话历史。在一些示例中,上下文收集器 生成更新的聚合上下文(例如,响应于从第一电子设备接收到上下文信 息)。在这些示例中,生成更新的聚合上下文包括上下文收集器至少基于 第一电子设备的数字助理对话会话历史来更新上下文共享组的聚合上下文 中包括的与第一电子设备相关联的上下文信息。
在一些示例中,在框1820处,在第二电子设备输出第二数字助理响应 之前,第二电子设备将对应于第二用户语音输入的数据和更新的聚合上下 文的至少一部分发送到不参与该上下文共享组的远程设备(例如,一个或 多个远程服务器、一个或多个本地服务器、云计算系统等)(例如,如图 13的箭头1334所示)。在这些示例中,更新的聚合上下文的至少一部分包 括第一电子设备的数字助理对话会话历史。
在一些示例中,在框1822处,第二电子设备从远程设备接收用于执行 一个或多个任务的第二命令和对应于第二电子设备的第二设备标识符(例 如,该设备标识符使得第二电子设备执行一个或多个任务)(例如,如图 13的箭头1336所示)。远程设备(例如,图11的用户意图模块1106和/或 任务确定模块1108)至少基于对应于第二用户语音输入的数据和第一电子 设备的数字助理对话会话历史来确定该一个或多个任务和对应于第二电子 设备的设备标识符。第二命令使得第二电子设备执行该一个或多个任务并 且基于该一个或多个任务的执行的结果来确定第二数字助理响应。
在一些示例中,第一电子设备的数字助理对话会话历史包括对应于第 一用户语音输入的数据。在这些示例中,至少基于对应于第二用户语音输 入的数据和第一电子设备的数字助理对话会话历史来确定该一个或多个任 务包括远程设备基于第一用户语音输入来消除第二用户语音输入的歧义。 在一些示例中,基于第一用户语音输入来消除第二用户语音输入的歧义包 括远程设备(例如,任务确定模块1108)基于用于第一用户语音输入的一 个或多个参数(例如,第一用户语音输入中包括的位置、联系人姓名、网 站、电子邮件地址等)来确定用于第二用户语音输入的一个或多个参数。 在一些示例中,消除第二用户语音输入(例如,“嘿,Siri,纽约呢?”) 的歧义包括远程设备(例如,用户意图模块1106)确定第二用户语音输入 表示对数字助理使用第二用户语音输入中提供的参数(例如,第二用户语 音输入中包括的位置(“纽约”)、联系人姓名、网站、电子邮件地址等) 执行先前由第一电子设备的数字助理执行的任务(例如,天气确定)的用 户请求。
在框1824处,第二电子设备基于第二用户语音输入和第一电子设备的 数字助理对话会话历史输出第二数字助理响应(例如,图13的数字助理响 应1338(例如,“前往帕罗奥图的交通畅通,所以估计途经国王大道过去 需要15分钟。”))。
图19A至图19B示出了根据各种示例的表示用于使用上下文共享组的 上下文收集器来抑制延迟数字助理触发器检测的过程的流程图。例如,使 用实现数字助理的一个或多个电子设备来执行过程1900。在一些示例中, 过程1900的一个或多个框由一个或多个远程设备(例如,一个或多个远程 服务器(例如,DA服务器106)、一个或多个本地服务器、云计算系统等) 执行。例如,过程1900的框以任何方式在一个或多个服务器(例如,DA服 务器106)和客户端设备之间划分。在其他示例中,过程1900的框在一个 或多个服务器和多个客户端设备(例如,移动电话和智能手表)之间划分。 因此,虽然过程1900的部分在本文中被描述为由特定设备执行,但应当理 解,过程1900不限于此。在其他示例中,使用仅客户端设备(例如,用户 设备104)或仅多个客户端设备来执行过程1900。在过程1900中,一些框 被任选地组合,一些框的次序被任选地改变,并且一些框被任选地省略。 在一些示例中,可结合过程1900来执行附加步骤。
在框1902处,参与与第一位置相关联的上下文共享组的第一电子设备 (例如,图10的用户设备1006)接收用户语音输入(例如,图10的用户 语音输入1014)。该用户语音输入包括数字助理触发器(例如,发起与电 子设备的数字助理的对话会话的单词或短语(例如,“嘿,Siri”、“Siri” 等))。该上下文共享组是至少两个电子设备的集合,每个电子设备与参 与该集合的至少一个其他电子设备共享上下文信息。该集合包括至少第二 电子设备(例如,公共设备1004)和上下文收集器(例如,公共设备 1008)。在一些示例中,第二电子设备是上下文收集器。在一些示例中, 上下文收集器是参与该上下文共享组的第三电子设备。在一些示例中,参 与该上下文共享组的每个电子设备连接到第一位置的单个无线网络。
在框1904处,响应于检测到数字助理触发器(例如,确定用户语音输 入包括数字助理触发器),第一电子设备(例如,经由第一位置的无线网 络)向上下文收集器发送第一触发器通告(例如,如图10的箭头1022所 示)。第一触发器通告指示数字助理触发器根据第一电子设备结束时的第 一时间。在一些示例中,第一触发器通告包括指示数字助理触发器单词或 短语的能量水平(例如,分贝水平)的数据(例如,当由第一电子设备接 收时数字助理触发器单词或短语的能量水平)。在一些示例中,第一触发 器通告包括对应于第一电子设备的关于该用户语音输入包括数字助理触发 器单词或短语的置信度的置信度得分。
在一些示例中,第一电子设备和第二电子设备共享短距离通信连接 (例如,蓝牙或蓝牙低功耗(BTLE)连接)。在这些示例中的一些示例中, 在框1906处,响应于检测到数字助理触发器,第一电子设备经由该短距离 通信连接向第二电子设备发送第一触发器通告(例如,第一电子设备在将 第一触发器通告发送到上下文收集器之前、同时或之后不久经由蓝牙或 BTLE发送第一触发器通告)。
在框1908处,第一电子设备从上下文收集器接收第二触发器通告(例 如,如图10的箭头1024所示)。第二触发器通告指示数字助理触发器根据 第二电子设备结束时的第二时间。在一些示例中,响应于检测到用户语音 输入中包括的数字助理触发器,第二电子设备将第二触发器通告发送到上 下文收集器(在上下文收集器将第二触发器通告发送到第一电子设备之 前)。在一些示例中,第二电子设备在检测到用户语音输入中包括的数字 助理触发器之后,将第二触发器通告(例如,对应于第二触发器通告的数 据)包括在第二电子设备发送到上下文收集器的上下文信息中(例如,如 图10的箭头1016所示)。
在第一电子设备和第二电子设备共享短距离通信连接(例如,如上文 参考框1906所述)的示例中的一些示例中,在框1910处,第一电子设备经 由该短距离通信连接从第二电子设备接收第三触发器通告。第三触发器通 告指示数字助理触发器根据第二电子设备结束时的第三时间。在一些示例 中,第三时间与第二触发器通告所指示的第二时间相同。在一些示例中, 响应于经由短距离通信连接从第一电子设备接收到第一触发器通告,第二电子设备经由该短距离通信连接发送第三触发器通告。
在框1912处,第一电子设备确定第二时间是否在第一时间之前的预定 时间范围内(例如,750毫秒、500毫秒、100毫秒等)(例如,确定第二 触发器通告是否“合理”)。
在第一电子设备和第二电子设备共享短距离通信连接(例如,上文参 考框1906和1910所述)的示例中的一些示例中,在框1914处,在确定第 二时间是否在第一时间之前的预定时间范围内之后,第一电子设备确定第 三时间是否在第一时间之前的预定时间范围内(例如,750毫秒、500毫秒、 100毫秒等)(例如,确定第三触发器通告是否“合理”)。
在框1916处,根据确定第二时间在第一时间之前的预定时间范围内 (例如,如果预定时间范围是500毫秒,则第二时间在第一时间之前500毫 秒内),第一电子设备放弃进一步处理用户语音输入。在一些示例中,放 弃进一步处理用户语音输入包括第一电子设备放弃向上下文收集器发送对 上下文共享组的聚合上下文的请求。
在第一电子设备和第二电子设备共享短距离通信连接(例如,上文参 考框1906、1910和1914所述)的示例中的一些示例中,在框1918处,根 据确定第三时间在第一时间之前的预定范围内,即使第二时间不在第一时 间之前的预定时间范围内,第一电子设备也放弃进一步处理用户语音输入。
在一些示例中,在框1920处,根据确定第二时间不在预定时间范围内 (例如,如果预定时间范围是500毫秒,则第二时间在第一时间之前等于或 多于500毫秒),第一电子设备继续处理用户语音输入。在一些示例中,继 续处理用户语音输入包括第一电子设备向上下文收集器发送对上下文共享 组的聚合上下文的请求。
以上参考图14A至图14C、图15A至图15B、图16A至图16E、图17A 至图17C、图18A至图18B和图19A至图19B描述的操作任选地由图1至 图4、图6A至图6B和图7A至图7C中所描绘的部件来实现。例如,过程 1400、过程1500、过程1600、过程1700、过程1800和/或过程1900的操作 可由系统100实现。本领域的普通技术人员会清楚地知道如何基于在图1至 图4、图6A至图6B和图7A至图7C中所描绘的部件来实现其他过程。
根据一些具体实施,提供一种计算机可读存储介质(例如,非暂态计 算机可读存储介质),该计算机可读存储介质存储供电子设备的一个或多 个处理器执行的一个或多个程序,该一个或多个程序包括用于执行本文所 述方法或过程中的任一个的指令。
根据一些具体实施,提供了一种电子设备(例如,便携式电子设备), 该电子设备包括用于执行本文所述的方法和过程中的任一者的装置。
根据一些具体实施,提供了一种电子设备(例如,便携式电子设备), 该电子设备包括处理单元,该处理单元被配置为执行本文所述的方法和过 程中的任一者。
根据一些具体实施,提供了一种电子设备(例如,便携式电子设备), 该电子设备包括一个或多个处理器和存储用以由一个或多个处理器执行的 一个或多个程序的存储器,该一个或多个程序包括用于执行本文所描述的 方法和过程中的任一者的指令。
出于解释的目的,前面的描述是通过参考具体实施方案来描述的。然 而,上面的例示性论述并非旨在是穷尽的或将本公开限制为所公开的精确 形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择并 描述这些实施方案是为了最好地解释这些技术的原理及其实际应用程序。 本领域的其他技术人员由此能够最好地利用这些技术以及具有适合于所预 期的特定用途的各种修改的各种实施方案。
虽然参照附图对本公开以及示例进行了全面的描述,但应当注意,各 种变化和修改对于本领域内的技术人员而言将变得显而易见。应当理解, 此类变化和修改被认为被包括在由权利要求书所限定的本公开和示例的范 围内。
如上所述,本公开技术的一个方面是收集和使用可从各种来源获得的 数据(例如,用户数据、特定于用户的上下文信息等)以帮助/改善视频通 信会话期间对数字助理响应的确定。本公开预期,在一些实例中,这些所 采集的数据可包括唯一地识别或可用于联系或定位特定人员的个人信息数 据。此类个人信息数据可包括人口统计数据、基于位置的数据、电话号码、 电子邮件地址、推特ID、家庭地址、与用户的健康或健康水平有关的数据或记录(例如,生命体征测量、药物信息、锻炼信息)、出生日期或任何 其他识别或个人信息。
本公开认识到在本公开技术中使用此类个人信息数据可用于使用户受 益。例如,个人信息数据可用于确定将由用户设备和/或公共设备的数字助 理响应于用户请求而执行的任务的一个或多个参数。因此,使用此类个人 信息数据使得用户设备的数字助理能够(基于上述任务的执行)提供对用 户而言更有意义和/或更有用的数字助理响应。此外,本公开还预期个人信 息数据有益于用户的其他用途。例如,健康和健身数据可用于向用户的总 体健康状况提供见解,或者可用作使用技术来追求健康目标的个人的积极 反馈。
本公开设想负责采集、分析、公开、传输、存储或其他使用此类个人 信息数据的实体将遵守既定的隐私政策和/或隐私实践。具体地,此类实体 应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和 安全性的行业或政府要求的隐私政策和实践。此类政策应该能被用户方便 地访问,并应随着数据的采集和/或使用变化而被更新。来自用户的个人信 息应当被收集用于实体的合法且合理的用途,并且不在这些合法使用之外 共享或出售。此外,应在收到用户知情同意后进行此类采集/共享。此外, 此类实体应考虑采取任何必要步骤,保卫和保障对此类个人信息数据的访 问,并确保有权访问个人信息数据的其他人遵守其隐私政策和流程。另外, 这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和 实践。此外,应当调整政策和实践,以便采集和/或访问的特定类型的个人 信息数据,并适用于包括管辖范围的具体考虑的适用法律和标准。例如, 在美国,对某些健康数据的收集或获取可能受联邦和/或州法律的管辖,诸 如健康保险流通和责任法案(HIPAA);而其他国家的健康数据可能受到其他 法规和政策的约束并应相应处理。因此,在每个国家应为不同的个人数据 类型保持不同的隐私实践。
不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人 信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防 止或阻止对此类个人信息数据的访问。例如,就收集和使用用户数据以帮 助/改善对数字助理响应的确定而言,本公开技术可被配置为在注册服务期 间或其后的任何时间允许用户选择“选择加入”或“选择退出”参与对个 人信息数据的收集。又如,用户可选择不提供用户数据(例如,用户的媒体、联系人、语音配置文件、偏好等)来帮助/改善对数字助理响应的确定。 再如,用户可选择防止收集和使用某些类型/形式的个人信息数据(例如, 电子邮件地址、家庭地址、支付信息等)用于确定数字助理响应。除了提 供“选择加入”和“选择退出”选项外,本公开设想提供与访问或使用个 人信息相关的通知。例如,可在下载应用时向用户通知其个人信息数据将 被访问,然后就在个人信息数据被应用访问之前再次提醒用户。
此外,本公开的目的是应管理和处理个人信息数据以最小化无意或未 经授权访问或使用的风险。一旦不再需要数据,通过限制数据收集和删除 数据可最小化风险。此外,并且当适用时,包括在某些健康相关应用程序 中,数据去标识可用于保护用户的隐私。在适当的情况下,可以通过移除 特定标识符(例如,出生日期等)、控制存储的数据的量或特征(例如, 在城市级而非地址级收集位置数据)、控制数据的存储方式(例如,在用 户之间聚合数据)和/或其它方法来促进去标识。
因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个 各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此 类个人信息数据的情况下被实现。即,本公开技术的各种实施方案不会由 于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可基于 非个人信息数据/用户数据或绝对最小量的个人信息和/或用户数据(诸如与 用户相关联的设备所请求的内容、可用于数字助理的其他非个人信息或公 开可用信息)来确定数字助理响应。
以下描述本公开的一些示例性方面。
方面1:一种方法,包括:
在第一电子设备处:
加入与第一位置相关联的上下文共享组,其中所述上下文共享组是至 少两个电子设备的集合,所述至少两个电子设备各自与所述集合中包括的 至少一个其他电子设备共享上下文信息,并且其中所述集合包括至少第二 电子设备;
在加入所述上下文共享组之后,挑选所述至少两个电子设备的所述集 合中的一个电子设备作为所述上下文共享组的上下文收集器,其中挑选所 述上下文收集器包括:
至少基于所述第一电子设备与所述第一位置的无线网络之间的连 接性的强度来确定与所述第一电子设备对应的第一上下文收集器得分;
从至少所述第二电子设备接收与至少所述第二电子设备对应的一 个或多个上下文收集器得分;以及
基于所述第一上下文收集器得分和与至少所述第二电子设备对应 的所述一个或多个上下文收集器得分,确定挑选所述上下文共享组中 包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述 上下文收集器;以及
根据确定挑选所述第一电子设备作为所述上下文收集器,响应于至少 所述第二电子设备经历设备状态改变而从至少所述第二电子设备接收上下 文信息。
方面2:根据方面1所述的方法,其中所述上下文共享组的所述至少两 个电子设备各自响应于经历设备状态改变而自动与参与所述上下文共享组 的至少一个其他电子设备共享上下文信息。
方面3:根据方面1至2中任一项所述的方法,还包括:
连接到所述第一位置的所述无线网络,其中所述第一电子设备响应于 连接到所述第一位置的所述无线网络而加入所述上下文共享组。
方面4:根据方面3所述的方法,其中参与所述上下文共享组的每个电 子设备连接到所述无线网络。
方面5:根据方面1至4中任一项所述的方法,还包括:
确定所述第一电子设备是否登记在与所述第一位置相关联的所述上下 文共享组中,其中所述第一电子设备根据确定所述第一电子设备登记在所 述上下文共享组中而加入所述上下文共享组。
方面6:根据方面1至5中任一项所述的方法,其中所述第一电子设备 通过与参与所述上下文共享组的至少一个其他电子设备建立通信连接来加 入所述上下文共享组。
方面7:根据方面1至6中任一项所述的方法,其中所述第一上下文收 集器得分还基于所述第一设备的电源状态。
方面8:根据方面1至7中任一项所述的方法,其中所述第一上下文收 集器得分还基于所述第一电子设备移进和移出所述上下文共享组的频率。
方面9:根据方面1至8中任一项所述的方法,还包括:
在确定挑选所述上下文共享组中包括的所述电子设备中的哪个电子设 备作为所述上下文共享组的所述上下文收集器之前,向至少所述第二电子 设备发送所述第一上下文收集器得分。
方面10:根据方面1至9中任一项所述的方法,还包括:
根据确定挑选所述第二电子设备作为所述上下文收集器,响应于所述 第一电子设备经历设备状态改变而将与所述第一电子设备相关联的上下文 信息发送到所述第二电子设备。
方面11:根据方面1至10中任一项所述的方法,其中挑选所述上下文 收集器还包括:
从至少所述第二电子设备接收一个或多个上下文收集器指示,其中上 下文收集器指示指示电子设备当前是否是所述上下文收集器;以及
基于与所述第一电子设备对应的上下文收集器指示和从至少所述第二 电子设备接收的所述一个或多个上下文收集器指示来确定所述上下文共享 组当前是否包括上下文收集器,其中所述第一电子设备还基于所述上下文 共享组当前是否包括上下文收集器来确定挑选所述上下文共享组中包括的 所述电子设备中的哪个电子设备作为所述上下文共享组的所述上下文收集 器。
方面12:根据方面11所述的方法,还包括:
根据确定所述上下文共享组当前包括上下文收集器,挑选所述当前上 下文收集器作为所述上下文共享组的所述上下文收集器。
方面13:根据方面11所述的方法,还包括:
根据确定所述上下文共享组包括多于一个上下文收集器,基于所述第 一上下文收集器得分和与至少所述第二电子设备对应的所述一个或多个上 下文收集器得分来确定挑选所述上下文共享组中包括的所述电子设备中的 哪个电子设备作为所述上下文共享组的所述上下文收集器。
方面14:根据方面1至13中任一项所述的方法,其中从至少所述第二 电子设备接收的所述上下文信息包括以下中的至少一者:与至少所述第二 电子设备相关联的设备状态改变信息,与至少所述第二电子设备相关联的 设备能力信息,以及与至少所述第二电子设备相关联的上下文状态信息。
方面15:根据方面1至14中任一项所述的方法,还包括:
从所述第二电子设备接收对所述上下文共享组的聚合上下文的请求, 其中所述第二电子设备响应于从所述第二电子设备的用户接收到用户语音 输入而将所述请求发送到所述第一电子设备;以及
将所述聚合上下文发送到所述第二电子设备,其中将所述聚合上下文 发送到所述第二电子设备使所述第二电子设备基于所述聚合上下文中包括 的上下文信息来获得对所述用户语音输入的数字助理响应。
方面16:一种方法,包括:
在参与上下文共享组的第一电子设备处,所述上下文共享组与第一位 置相关联,其中所述上下文共享组是至少两个电子设备的集合,所述至少 两个电子设备各自与所述集合中包括的至少一个其他电子设备共享上下文 信息,并且其中所述集合包括至少第二电子设备和上下文收集器:
接收用户语音输入;
从所述上下文收集器接收所述上下文共享组的聚合上下文;
在接收到所述聚合上下文之后,向不参与所述上下文共享组的远程设 备提供所述聚合上下文的至少一部分和与所述用户语音输入对应的数据;
从所述远程设备接收用于执行一个或多个任务的命令和与所述第二电 子设备对应的设备标识符,其中所述远程设备基于与所述用户语音输入对 应的所述数据和在所述聚合上下文的所述至少一部分中包括的上下文信息 来确定所述一个或多个任务和所述设备标识符;以及
基于所述设备标识符将所述命令发送到所述第二电子设备,其中所述 命令使所述第二电子设备执行所述一个或多个任务。
方面17:根据方面16所述的方法,其中参与所述上下文共享组的每个 电子设备连接到所述第一位置的单个无线网络。
方面18:根据方面16至17中任一项所述的方法,其中所述第二电子 设备是所述上下文收集器。
方面19:根据方面16至17中任一项所述的方法,其中所述上下文收 集器是参与所述上下文共享组的第三电子设备。
方面20:根据方面16至19中任一项所述的方法,还包括:
响应于接收到所述用户语音输入,向所述上下文收集器发送对所述上 下文收集器将所述上下文共享组的所述聚合上下文发送到所述第一电子设 备的请求,其中所述请求使所述上下文收集器将所述聚合上下文发送到所 述第一电子设备。
方面21:根据方面16至20中任一项所述的方法,其中在接收到所述 聚合上下文之前,至少所述第一电子设备和所述第二电子设备向所述上下 文收集器提供所述聚合上下文中包括的所述上下文信息,并且其中所述第 一电子设备和所述第二电子设备各自响应于经历设备状态改变而向所述上 下文收集器提供其相应的上下文信息。
方面22:根据方面21所述的方法,其中所述上下文信息包括与至少所 述第一电子设备和所述第二电子设备对应的设备状态改变信息。
方面23:根据方面21至22中任一项所述的方法,其中所述上下文信 息包括与至少所述第一电子设备和所述第二电子设备对应的上下文状态信 息。
方面24:根据方面21至23中任一项所述的方法,其中所述上下文信 息包括与至少所述第一电子设备和所述第二电子设备对应的设备能力信息。
方面25:根据方面16至24中任一项所述的方法,其中所述命令还使 所述第二电子设备在执行所述一个或多个任务之后输出用户查询,并且其 中所述用户查询询问是否将用于执行所述一个或多个任务的第二命令发送 到参与所述上下文共享组的第四电子设备。
方面26:根据方面16至25中任一项所述的方法,其中所述用户语音 输入相对于定义将对所述用户语音输入进行响应的所述电子设备是有歧义 的,并且其中所述远程设备基于所述聚合上下文的所述至少一部分中包括 的所述上下文信息来消除所述用户语音输入的歧义。
方面27:根据方面16至26中任一项所述的方法,其中所述第一电子 设备和所述第二电子设备两者为各自注册到单个用户的个人电子设备,并 且其中所述远程设备基于与所述第二电子设备相关联的用户数据来消除所 述用户语音输入中包括的一个或多个单词的歧义。
方面28:根据方面16至26中任一项所述的方法,其中所述第一电子 设备和所述第二电子设备两者是各自注册到不同用户的个人电子设备,所 述方法还包括:
在将所述命令发送到所述第二电子设备之前:
输出对用户认证的请求;以及
从所述第一电子设备的用户接收认证数据,其中所述第一电子设备响 应于基于所接收的认证数据确定所述第一电子设备的所述用户是所述第二 电子设备的授权用户而发送所述命令。
方面29:根据方面16至26中任一项所述的方法,其中所述上下文共 享组还包括第四电子设备,并且其中所述第一电子设备、所述第二电子设 备和所述第四电子设备全部是各自注册到单个用户的个人电子设备,所述 方法还包括:
在将所述命令发送到所述第二电子设备之前,从所述远程设备接收与 所述第四电子设备相关联的用户数据;以及
将所述用户数据连同所述命令发送到所述第二电子设备,其中所述命 令使所述第二电子设备基于所述用户数据执行所述一个或多个任务。
方面30:根据方面16至29中任一项所述的方法,其中所述用户语音 输入包括数字助理触发器,所述方法还包括:
在将所述聚合上下文的所述至少一部分发送到所述远程设备之前:
向所述第二电子设备发送对所述第二电子设备向所述第一电子设备提 供指示的请求,所述指示是所述第二电子设备是否检测到在所述用户语音 输入中包括的所述数字助理触发器;以及
在从所述第二电子设备接收到所述指示之后,将所述指示结合到所述 聚合上下文中包括的与所述第二电子设备相关联的上下文信息中,其中所 述远程设备基于所述指示来确定所述第二电子设备与所述第一电子设备的 物理接近度。
方面31:一种方法,包括:
在一个或多个服务器处:
从参与上下文共享组的第一电子设备接收用户语音输入以及所述上下 文共享组的聚合上下文的至少一部分,所述上下文共享组与第一位置相关 联,其中所述上下文共享组是多个电子设备的集合,所述多个电子设备各 自与所述集合中包括的至少一个其他电子设备共享上下文信息;
基于所述用户语音输入来确定用户意图;
确定与所述用户意图对应的一个或多个任务;
基于所述一个或多个任务和在所述聚合上下文的所述至少一部分中包 括的上下文信息来识别所述多个电子设备中的第二电子设备以执行所述一 个或多个任务;以及
向所述第一电子设备发送用于执行所述一个或多个任务的命令和与所 述第二电子设备对应的设备标识符,
其中所述第一电子设备基于所述设备标识符将所述命令发送到所述第 二电子设备,并且
其中所述命令使所述第二电子设备执行所述一个或多个任务。
方面32:根据方面31所述的方法,其中所述多个电子设备中的每个电 子设备连接到所述第一位置的单个无线网络。
方面33:根据方面31至32中任一项所述的方法,其中所述聚合上下 文是与参与所述上下文共享组的所述多个电子设备中的一个或多个电子设 备相关联的上下文信息的集合,并且其中在所述第一电子设备从用户接收 到所述用户语音输入之后,所述第一电子设备从所述上下文共享组的上下 文收集器接收所述聚合上下文。
方面34:根据方面31至33中任一项所述的方法,其中所述聚合上下 文中包括的所述上下文信息包括以下中的至少一者:与所述第二电子设备 相关联的设备状态改变信息、上下文状态信息、设备能力信息和设备接近 度信息。
方面35:根据方面31至34中任一项所述的方法,其中还基于所述聚 合上下文中包括的上下文信息来确定所述用户意图。
方面36:根据方面35所述的方法,其中所述上下文信息包括与所述第 二电子设备相关联的设备状态改变信息,其中所述设备状态改变信息指示 关于所述第二电子设备的最近设备状态改变的设备状态改变的类型和设备 状态改变的时间,并且其中确定所述用户意图包括基于所述设备状态改变 的所述类型和所述设备状态改变的所述时间来消除所述用户语音输入的歧 义。
方面37:根据方面31至36中任一项所述的方法,其中识别所述第二 电子设备包括:
基于所述上下文信息中包括的设备状态改变信息来确定当前是否在所 述多个电子设备中的一个或多个电子设备处发生与所述用户意图对应的事 件;以及
根据确定当前仅在所述第二电子设备处发生与所述用户意图对应的事 件,识别所述第二电子设备。
方面38:根据方面37所述的方法,还包括:
根据确定当前正在所述第二电子设备和所述多个电子设备中的至少一 个其他电子设备处发生与所述用户意图对应的事件:
基于指示所述设备状态改变信息中包括的设备状态改变的时间的数据 来确定哪个事件最近开始;以及
根据确定在所述第二电子设备处发生的所述事件最近开始,识别所述 第二电子设备。
方面39:根据方面31至36中任一项所述的方法,其中识别所述第二 电子设备包括:
基于所述上下文信息中包括的设备状态改变信息,确定先前是否在预 定时间段内在所述多个电子设备中的一个或多个电子设备处发生与所述用 户意图对应的事件;以及
根据确定先前在所述预定时间段内仅在所述第二电子设备处发生与所 述用户意图对应的事件,识别所述第二电子设备。
方面40:根据方面39所述的方法,还包括:
根据确定先前在所述预定时间段内在所述第二电子设备和所述多个电 子设备中的至少一个其他电子设备处发生与所述用户意图对应的事件:
基于所述上下文信息中包括的接近度信息,确定是所述第二电子设备 还是所述至少一个其他电子设备在物理上更靠近所述第一电子设备;以及
根据确定所述第二电子设备比所述至少一个其他电子设备在物理上更 靠近所述第一电子设备,识别所述第二电子设备。
方面41:根据方面40所述的方法,其中所述接近度信息基于指示所述 多个电子设备中的一个或多个电子设备是否检测到所述用户语音中包括的 数字助理触发器的数据。
方面42:根据方面31至36中任一项所述的方法,其中识别所述第二 电子设备包括基于所述上下文信息中包括的设备状态改变信息来确定所述 多个电子设备中的一个或多个电子设备是否能够用于执行所述一个或多个 任务。
方面43:根据方面42所述的方法,还包括:
根据确定所述第二电子设备能够用于执行所述一个或多个任务,基于 所述上下文信息中包括的设备能力信息来确定所述第二电子设备是否能够 执行所述一个或多个任务。
方面44:根据方面43所述的方法,还包括:
根据确定所述第二电子设备能够执行所述一个或多个任务:
确定所述多个电子设备中的至少一个其他电子设备是否可用而且能够 执行所述一个或多个任务;以及
根据确定所述多个电子设备中没有其他电子设备可用而且能够执行所 述一个或多个任务,识别所述第二电子设备。
方面45:根据方面44所述的方法,还包括:
根据确定所述多个电子设备中的至少一个其他电子设备可用而且能够 执行所述一个或多个任务:
基于所述上下文信息中包括的接近度信息,确定是所述第二电子设备 还是所述至少一个其他电子设备在物理上更靠近所述第一电子设备;以及
根据确定所述第二电子设备比所述至少一个电子设备在物理上更靠近 所述第一电子设备,识别所述第二电子设备。
方面46:根据方面45所述的方法,其中所述接近度信息基于指示所述 多个电子设备中的一个或多个电子设备是否检测到在所述用户语音输入中 包括的数字助理触发器的数据,并且其中指示所述多个电子设备中的一个 或多个电子设备是否检测到在所述用户语音输入中包括的数字助理触发器 的所述数据包括:
指示根据所述第二电子设备的、所述数字助理触发器的第一能量水平 的数据,以及
指示根据所述至少一个其他电子设备的、所述数字助理触发器的第二 能量水平的数据,其中确定是所述第二电子设备还是所述至少一个其他电 子设备在物理上更靠近所述第一电子设备包括将所述第一能量水平与所述 第二能量水平进行比较。
方面47:根据方面46所述的方法,还包括:
确定所述第一能量水平和所述第二能量水平之间的差值是否小于预定 阈值;
根据确定所述差值小于所述预定阈值,基于所述上下文信息中包括的 用户注意力信息来确定所述第一电子设备的用户是正在查看所述第二电子 设备的显示器还是查看所述至少一个其他电子设备的显示器;以及
根据确定所述用户正在查看所述第二电子设备的所述显示器,识别所 述第二电子设备。
方面48:根据方面31至36中任一项所述的方法,还包括:
基于所述一个或多个任务和所述上下文信息,识别所述多个电子设备 中的第三电子设备以执行所述一个或多个任务中的至少一个任务;以及
向所述第一电子设备发送用于执行所述至少一个任务的第二命令和对 应于所述第三电子设备的设备标识符。
方面49:一种方法,包括:
在参与上下文共享组的第一电子设备处,所述上下文共享组与第一位 置相关联,其中所述上下文共享组是多个电子设备的集合,所述多个电子 设备各自与所述集合中包括的至少一个其他电子设备共享上下文信息,并 且其中所述集合包括上下文收集器:
接收用户语音输入;
从所述上下文收集器接收所述上下文共享组的聚合上下文;
在接收到所述聚合上下文之后,向不参与所述上下文共享组的远程设 备提供所述聚合上下文的至少一部分和与所述用户语音输入对应的数据, 其中所述远程设备基于与所述用户语音输入对应的所述数据来确定多个任 务;
从所述远程设备接收:
用于执行所述多个任务中的第一组任务的第一命令和用于执行所 述多个任务中的第二组任务的第二命令;和
与所述多个电子设备中的第二电子设备对应的第一设备标识符以 及与所述多个电子设备中的第三电子设备对应的第二设备标识符;
基于所述第一设备标识符将所述第一命令发送到所述第二电子设备, 其中所述第一命令使所述第二电子设备执行所述第一组任务;以及
基于所述第二设备标识符将所述第二命令发送到所述第三电子设备, 其中所述第二命令使所述第三电子设备执行所述第二组任务。
方面50:根据方面49所述的方法,其中所述第一组任务中的一个或多 个任务与所述第二组任务中的一个或多个任务相同。
方面51:根据方面49至50中任一项所述的方法,其中:
所述聚合上下文的所述至少一部分包括与所述第二电子设备相关联的 上下文信息和与所述第三电子设备相关联的上下文信息,
所述远程设备基于在与所述第二电子设备相关联的所述上下文信息中 包括的设备能力信息来确定所述第一组任务,并且
所述远程设备基于在与所述第三电子设备相关联的所述上下文信息中 包括的设备能力信息来确定所述第二组任务。
方面52:根据方面51所述的方法,其中所述远程设备响应于基于与所 述第二电子设备相关联的所述上下文信息和与所述第三电子设备相关联的 所述上下文信息确定所述第二电子设备和所述第三电子设备两者是可用的、 能够执行所述多个任务中的至少一个任务并且邻近所述第一电子设备来确 定所述第一组任务和所述第二组任务。
方面53:根据方面49至52中任一项所述的方法,其中所述第二电子 设备基于所述第一组任务的执行来仅输出音频输出,并且其中所述第三电 子设备基于所述第二组任务的执行来仅显示视觉输出。
方面54:根据方面49至53中任一项所述的方法,其中响应于执行所 述第一组任务,所述第二电子设备输出基于所述第一组任务的所述执行而 检索的数据或信息的简短摘要。
方面55:根据方面54所述的方法,其中响应于执行所述第二组任务, 所述第三电子设备输出基于所述第二组任务的所述执行而检索的数据或信 息的详细摘要,其中所述详细摘要包括所述简短摘要中未包括的超链接、 图像、媒体项或文本数据中的至少一者。
方面56:根据方面49至55中任一项所述的方法,还包括:
接收表示进行购买的用户请求的第二用户语音输入;
从所述上下文收集器接收更新的聚合上下文,其中所述更新的聚合上 下文包括与所述第二电子设备相关联的更新的上下文信息和与所述第三电 子设备相关联的更新的上下文信息;以及
向所述远程设备发送与所述第二用户语音输入对应的数据和所述更新 的聚合上下文的至少一部分,其中所述远程设备基于与所述第二用户语音 输入对应的所述数据来确定第二多个任务。
方面57:根据方面56所述的方法,其中所述第二电子设备在执行所述 第一组任务之后发送与所述第二电子设备相关联的所述更新的上下文信息, 并且其中所述第三电子设备在执行所述第二组任务之后发送与所述第三电 子设备相关联的所述更新的上下文信息。
方面58:根据方面49至57中任一项所述的方法,还包括:
从所述远程设备接收用于执行所述第二多个任务中的第三组任务的第 三命令以及对应于所述多个电子设备中的第四电子设备的第三设备标识符, 其中所述第三组任务包括用户认证任务;以及
基于所述第三设备标识符将所述第三命令发送到所述第四电子设备, 其中所述第三命令使所述第四电子设备执行所述第三组任务。
方面59:根据方面58所述的方法,还包括:
从所述第四电子设备接收与所述第一电子设备的用户对应的用户认证 数据;
将所述用户认证数据发送到所述远程设备;
从所述远程设备接收用于执行所述第二多个任务中的第四组任务的第 四命令以及对应于所述第三电子设备的所述第二设备标识符,
其中响应于基于所述用户认证数据确定所述第一电子设备的所述 用户被授权进行所请求的购买,所述远程设备将所述第四命令发送到 所述第一电子设备,并且
其中所述第四组任务包括执行所请求的购买的任务;以及
基于所述第二设备标识符将所述第四命令发送到所述第三电子设备, 其中所述第四命令使所述第三电子设备执行所述第四组任务。
方面60:根据方面58所述的方法,还包括:
从所述第四电子设备接收所述第一电子设备的用户被授权进行所请求 的购买的指示;
将所述指示发送到所述远程设备;
从所述远程设备接收用于执行所述第二多个任务中的第五组任务的第 五命令以及对应于所述第三电子设备的所述第二设备标识符,
其中响应于接收到所述第一电子设备的所述用户被授权进行所请 求的购买的所述指示,所述远程设备将所述第五命令发送到所述第一 电子设备,并且
其中所述第五组任务包括执行所请求的购买的任务;以及
基于所述第二设备标识符将所述第五命令发送到所述第三电子设备, 其中所述第五命令使所述第三电子设备执行所述第五组任务。
方面61:一种方法,包括:
在包括参与上下文共享组的至少第一电子设备和第二电子设备的系统 处,所述上下文共享组与第一位置相关联,其中所述上下文共享组是至少 两个电子设备的集合,所述至少两个电子设备各自与所述集合中包括的至 少一个其他电子设备共享上下文信息,并且其中所述集合包括上下文收集 器:
在所述第一电子设备处接收第一用户语音输入;
在所述第一电子设备处,基于所述第一用户语音输入输出第一数字助 理响应,其中所述第一电子设备在输出所述第一数字助理响应之后将包括 所述第一电子设备的数字助理对话会话历史的上下文信息发送到所述上下 文收集器;
在所述第二电子设备处接收第二用户语音输入;
在所述第二电子设备处,从所述上下文收集器接收所述上下文共享组 的更新的聚合上下文,其中所述更新的聚合上下文包括所述第一电子设备 的所述数字助理对话会话历史;以及
在所述第二电子设备处,基于所述第二用户语音输入和所述第一电子 设备的所述数字助理对话历史输出第二数字助理响应。
方面62:根据方面61所述的方法,其中所述第一电子设备和所述第二 电子设备位于所述第一位置的两个独立区域内。
方面63:根据方面61至62中任一项所述的方法,其中所述第一电子 设备和所述第二电子设备从单个用户接收所述第一用户语音输入和所述第 二用户语音输入。
方面64:根据方面61至62中任一项所述的方法,其中所述第一电子 设备和所述第二电子设备从两个不同的用户接收所述第一用户语音输入和 所述第二用户语音输入。
方面65:根据方面61至64中任一项所述的方法,还包括:
在输出所述第一数字助理响应之前:
在所述第一电子设备处,从所述上下文收集器接收所述上下文共享组 的聚合上下文,其中所述聚合上下文包括与所述第一电子设备相关联的上 下文信息和与所述第二电子设备相关联的上下文信息,
将与所述第一用户语音输入对应的数据和所述聚合上下文的至少一部 分从所述第一电子设备发送到不参与所述上下文共享组的远程设备;以及
在所述第一电子设备处,从所述远程设备接收用于执行一个或多个任 务的第一命令和与所述第一电子设备对应的第一设备标识符,
其中所述远程设备至少基于与所述第一用户语音输入对应的所述数据 和所述聚合上下文中包括的上下文信息来确定所述一个或多个任务和与所 述第一电子设备对应的所述设备标识符,并且
其中所述第一命令使所述第一电子设备执行所述一个或多个任务并且 基于所述一个或多个任务的所述执行的结果来确定所述第一数字助理响应。
方面66:根据方面61至65中任一项所述的方法,其中所述数字助理 对话会话历史包括与所述第一用户语音输入对应的数据和所述第一数字助 理响应。
方面67:根据方面61至66中任一项所述的方法,还包括:
在从所述上下文收集器接收所述更新的聚合上下文之前,将对所述更 新的聚合上下文的请求从所述第二电子设备发送到所述上下文收集器。
方面68:根据方面61至67中任一项所述的方法,其中所述上下文收 集器生成所述更新的聚合上下文,并且其中生成所述更新的聚合上下文包 括至少基于所述第一电子设备的所述数字助理对话会话历史来更新在所述 上下文共享组的聚合上下文中包括的与所述第一电子设备相关联的上下文 信息。
方面69:根据方面61至68中任一项所述的方法,还包括:
在输出所述第二数字助理响应之前:
将与所述第二用户语音输入对应的数据和所述更新的聚合上下文的至 少一部分从所述第二电子设备发送到不参与所述上下文共享组的远程设备, 其中所述更新的聚合上下文的所述至少一部分包括所述第一电子设备的所 述数字助理对话会话历史;以及
在所述第二电子设备处,从所述远程设备接收用于执行一个或多个任 务的第二命令和与所述第二电子设备对应的第二设备标识符,
其中所述远程设备至少基于与所述第二用户语音输入对应的所述数据 和所述第一电子设备的所述数字助理对话会话历史来确定所述一个或多个 任务和与所述第二电子设备对应的所述设备标识符,并且
其中所述第二命令使所述第二电子设备执行所述一个或多个任务并且 基于所述一个或多个任务的所述执行的结果来确定所述第二数字助理响应。
方面70:根据方面69所述的方法,其中所述数字助理对话会话历史包 括与所述第一用户语音输入对应的数据,并且其中至少基于与所述第二用 户语音输入对应的所述数据和所述第一电子设备的所述数字助理对话会话 历史来确定所述一个或多个任务包括所述远程设备基于所述第一用户语音 来消除所述第二用户语音输入的歧义。
方面71:一种方法,包括:
在参与上下文共享组的第一电子设备处,所述上下文共享组与第一位 置相关联,其中所述上下文共享组是至少两个电子设备的集合,所述至少 两个电子设备各自与参与所述集合的至少一个其他电子设备共享上下文信 息,并且其中所述集合包括至少第二电子设备和上下文收集器:
接收用户语音输入,其中所述用户语音输入包括数字助理触发器;
响应于检测到所述数字助理触发器,将第一触发器通告发送到所述上 下文收集器,其中所述第一触发器通告指示所述数字助理触发器根据所述 第一电子设备结束时的第一时间;
从所述上下文收集器接收第二触发器通告,其中所述第二触发器通告 指示所述数字助理触发器根据所述第二电子设备结束时的第二时间;
确定所述第二时间是否在所述第一时间之前的预定时间范围内;以及
根据确定所述第二时间在所述第一时间之前的所述预定时间范围内, 放弃进一步处理所述用户语音输入。
方面72:根据方面71所述的方法,还包括:
根据确定所述第二时间不在所述预定时间范围内,继续处理所述用户 语音输入。
方面73:根据方面71至72中任一项所述的方法,其中参与所述上下 文共享组的每个电子设备连接到所述第一位置的单个无线网络。
方面74:根据方面73所述的方法,其中所述第一电子设备经由所述单 个无线网络将所述第一触发器通告发送到所述上下文收集器。
方面75:根据方面71至74中任一项所述的方法,其中所述上下文收 集器响应于接收到所述第一触发器通告而经由所述单个无线网络将所述第 二触发器通告发送到所述第一电子设备。
方面76:根据方面71至75中任一项所述的方法,其中所述第二电子 设备响应于检测到在所述用户语音输入中包括的所述数字助理触发器而将 所述第二触发器通告发送到所述上下文收集器。
方面77:根据方面71至76中任一项所述的方法,其中所述第一电子 设备和所述第二电子设备共享短距离通信连接,所述方法还包括:
响应于检测到所述数字助理触发器,经由所述短距离通信连接将所述 第一触发器通告发送到所述第二电子设备;
经由所述短距离通信连接从所述第二电子设备接收第三触发器通告, 其中所述第三触发器通告指示所述数字助理触发器根据所述第二电子设备 结束时的第三时间;
在确定所述第二时间是否在所述第一时间之前的所述预定时间范围内 之后,确定所述第三时间是否在所述第一时间之前的所述预定时间范围内; 以及
根据确定所述第三时间在所述第一时间之前的所述预定范围内,即使 所述第二时间不在所述第一时间之前的所述预定时间范围内,也放弃进一 步处理所述用户语音输入。
方面78:一种第一电子设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被 配置为由所述一个或多个处理器执行,其中所述一个或多个程序包括用于 以下操作的指令:
加入与第一位置相关联的上下文共享组,其中所述上下文共享组是至 少两个电子设备的集合,所述至少两个电子设备各自与所述集合中包括的 至少一个其他电子设备共享上下文信息,并且其中所述集合包括至少第二 电子设备;
在加入所述上下文共享组之后,挑选所述至少两个电子设备的所述集 合中的一个电子设备作为所述上下文共享组的上下文收集器,其中挑选所 述上下文收集器包括:
至少基于所述第一电子设备与所述第一位置的无线网络之间的连 接性的强度来确定与所述第一电子设备对应的第一上下文收集器得分; 从至少所述第二电子设备接收与至少所述第二电子设备对应的一 个或多个上下文收集器得分;以及
基于所述第一上下文收集器得分和与至少所述第二电子设备对应 的所述一个或多个上下文收集器得分,确定挑选所述上下文共享组中 包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述 上下文收集器;以及
根据确定挑选所述第一电子设备作为所述上下文收集器,响应于至少 所述第二电子设备经历设备状态改变而从至少所述第二电子设备接收上下 文信息。
方面79:一种第一电子设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被 配置为由所述一个或多个处理器执行,其中所述一个或多个程序包括用于 以下操作的指令:
当所述第一电子设备参与上下文共享组时,所述上下文共享组与第一 位置相关联,其中所述上下文共享组是至少两个电子设备的集合,所述至 少两个电子设备各自与所述集合中包括的至少一个其他电子设备共享上下 文信息,并且其中所述集合包括至少第二电子设备和上下文收集器:
接收用户语音输入;
从所述上下文收集器接收所述上下文共享组的聚合上下文;
在接收到所述聚合上下文之后,向不参与所述上下文共享组的远程设 备提供所述聚合上下文的至少一部分和与所述用户语音输入对应的数据;
从所述远程设备接收用于执行一个或多个任务的命令和与所述第二电 子设备对应的设备标识符,其中所述远程设备基于与所述用户语音输入对 应的所述数据和在所述聚合上下文的所述至少一部分中包括的上下文信息 来确定所述一个或多个任务和所述设备标识符;以及
基于所述设备标识符将所述命令发送到所述第二电子设备,其中所述 命令使所述第二电子设备执行所述一个或多个任务。
方面80:一种系统,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被 配置为由所述一个或多个处理器执行,其中所述一个或多个程序包括用于 以下操作的指令:
从参与上下文共享组的第一电子设备接收用户语音输入以及所述上下 文共享组的聚合上下文的至少一部分,所述上下文共享组与第一位置相关 联,其中所述上下文共享组是多个电子设备的集合,所述多个电子设备各 自与所述集合中包括的至少一个其他电子设备共享上下文信息;
基于所述用户语音输入来确定用户意图;
确定与所述用户意图对应的一个或多个任务;
基于所述一个或多个任务和在所述聚合上下文的所述至少一部分中包 括的上下文信息来识别所述多个电子设备中的第二电子设备以执行所述一 个或多个任务;以及
向所述第一电子设备发送用于执行所述一个或多个任务的命令和与所 述第二电子设备对应的设备标识符,
其中所述第一电子设备基于所述设备标识符将所述命令发送到所述第 二电子设备,并且
其中所述命令使所述第二电子设备执行所述一个或多个任务。
方面81:一种第一电子设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被 配置为由所述一个或多个处理器执行,其中所述一个或多个程序包括用于 以下操作的指令:
当所述第一电子设备参与上下文共享组时,所述上下文共享组与第一 位置相关联,其中所述上下文共享组是多个电子设备的集合,所述多个电 子设备各自与所述集合中包括的至少一个其他电子设备共享上下文信息, 并且其中所述集合包括上下文收集器:
接收用户语音输入;
从所述上下文收集器接收所述上下文共享组的聚合上下文;
在接收到所述聚合上下文之后,向不参与所述上下文共享组的远程设 备提供所述聚合上下文的至少一部分和与所述用户语音输入对应的数据, 其中所述远程设备基于与所述用户语音输入对应的所述数据来确定多个任 务;
从所述远程设备接收:
用于执行所述多个任务中的第一组任务的第一命令和用于执行所 述多个任务中的第二组任务的第二命令;以及
与所述多个电子设备中的第二电子设备对应的第一设备标识符以 及与所述多个电子设备中的第三电子设备对应的第二设备标识符;
基于所述第一设备标识符将所述第一命令发送到所述第二电子设备, 其中所述第一命令使所述第二电子设备执行所述第一组任务;以及
基于所述第二设备标识符将所述第二命令发送到所述第三电子设备, 其中所述第二命令使所述第三电子设备执行所述第二组任务。
方面82:一种系统,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被 配置为由所述一个或多个处理器执行,其中所述一个或多个程序包括用于 以下操作的指令:
当第一电子设备和第二电子设备参与上下文共享组时,所述上下文共 享组与第一位置相关联,其中所述上下文共享组是至少两个电子设备的集 合,所述至少两个电子设备各自与所述集合中包括的至少一个其他电子设 备共享上下文信息,并且其中所述集合包括上下文收集器:
在所述第一电子设备处接收第一用户语音输入;
在所述第一电子设备处,基于所述第一用户语音输入输出第一数字助 理响应,其中所述第一电子设备在输出所述第一数字助理响应之后将包括 所述第一电子设备的数字助理对话会话历史的上下文信息发送到所述上下 文收集器;
在所述第二电子设备处接收第二用户语音输入;
在所述第二电子设备处,从所述上下文收集器接收所述上下文共享组 的更新的聚合上下文,其中所述更新的聚合上下文包括所述第一电子设备 的所述数字助理对话会话历史;以及
在所述第二电子设备处,基于所述第二用户语音输入和所述第一电子 设备的所述数字助理对话历史输出第二数字助理响应。
方面83:一种第一电子设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被 配置为由所述一个或多个处理器执行,其中所述一个或多个程序包括用于 以下操作的指令:
当所述第一电子设备参与上下文共享组时,所述上下文共享组与第一 位置相关联,其中所述上下文共享组是至少两个电子设备的集合,所述至 少两个电子设备各自与参与所述集合的至少一个其他电子设备共享上下文 信息,并且其中所述集合包括至少第二电子设备和上下文收集器:
接收用户语音输入,其中所述用户语音输入包括数字助理触发器;
响应于检测到所述数字助理触发器,将第一触发器通告发送到所述上 下文收集器,其中所述第一触发器通告指示所述数字助理触发器根据所述 第一电子设备结束时的第一时间;
从所述上下文收集器接收第二触发器通告,其中所述第二触发器通告 指示所述数字助理触发器根据所述第二电子设备结束时的第二时间;
确定所述第二时间是否在所述第一时间之前的预定时间范围内;以及
根据确定所述第二时间在所述第一时间之前的所述预定时间范围内, 放弃进一步处理所述用户语音输入。
方面84:一种存储一个或多个程序的非暂态计算机可读存储介质,所 述一个或多个程序包括指令,所述指令当由第一电子设备的一个或多个处 理器执行时,使所述第一电子设备执行以下操作:
加入与第一位置相关联的上下文共享组,其中所述上下文共享组是至 少两个电子设备的集合,所述至少两个电子设备各自与所述集合中包括的 至少一个其他电子设备共享上下文信息,并且其中所述集合包括至少第二 电子设备;
在加入所述上下文共享组之后,挑选所述至少两个电子设备的所述集 合中的一个电子设备作为所述上下文共享组的上下文收集器,其中挑选所 述上下文收集器包括:
至少基于所述第一电子设备与所述第一位置的无线网络之间的连 接性的强度来确定与所述第一电子设备对应的第一上下文收集器得分;
从至少所述第二电子设备接收与至少所述第二电子设备对应的一 个或多个上下文收集器得分;以及
基于所述第一上下文收集器得分和与至少所述第二电子设备对应 的所述一个或多个上下文收集器得分,确定挑选所述上下文共享组中 包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述 上下文收集器;以及
根据确定挑选所述第一电子设备作为所述上下文收集器,响应于至少 所述第二电子设备经历设备状态改变而从至少所述第二电子设备接收上下 文信息。
方面85:一种存储一个或多个程序的非暂态计算机可读存储介质,所 述一个或多个程序包括指令,所述指令当由第一电子设备的一个或多个处 理器执行时,使所述第一电子设备执行以下操作:
当所述第一电子设备参与上下文共享组时,所述上下文共享组与第一 位置相关联,其中所述上下文共享组是至少两个电子设备的集合,所述至 少两个电子设备各自与所述集合中包括的至少一个其他电子设备共享上下 文信息,并且其中所述集合包括至少第二电子设备和上下文收集器:
接收用户语音输入;
从所述上下文收集器接收所述上下文共享组的聚合上下文;
在接收到所述聚合上下文之后,向不参与所述上下文共享组的远程设 备提供所述聚合上下文的至少一部分和与所述用户语音输入对应的数据;
从所述远程设备接收用于执行一个或多个任务的命令和与所述第二电 子设备对应的设备标识符,其中所述远程设备基于与所述用户语音输入对 应的所述数据和在所述聚合上下文的所述至少一部分中包括的上下文信息 来确定所述一个或多个任务和所述设备标识符;以及
基于所述设备标识符将所述命令发送到所述第二电子设备,其中所述 命令使所述第二电子设备执行所述一个或多个任务。
方面86:存储一个或多个程序的非暂态计算机可读存储介质,所述一 个或多个程序包括指令,所述指令在由一个或多个服务器的一个或多个处 理器执行时,使所述一个或多个服务器:
从参与上下文共享组的第一电子设备接收用户语音输入以及所述上下 文共享组的聚合上下文的至少一部分,所述上下文共享组与第一位置相关 联,其中所述上下文共享组是多个电子设备的集合,所述多个电子设备各 自与所述集合中包括的至少一个其他电子设备共享上下文信息;
基于所述用户语音输入来确定用户意图;
确定与所述用户意图对应的一个或多个任务;
基于所述一个或多个任务和在所述聚合上下文的所述至少一部分中包 括的上下文信息来识别所述多个电子设备中的第二电子设备以执行所述一 个或多个任务;以及
向所述第一电子设备发送用于执行所述一个或多个任务的命令和与所 述第二电子设备对应的设备标识符,
其中所述第一电子设备基于所述设备标识符将所述命令发送到所述第 二电子设备,并且
其中所述命令使所述第二电子设备执行所述一个或多个任务。
方面87:一种存储一个或多个程序的非暂态计算机可读存储介质,所 述一个或多个程序包括指令,所述指令当由第一电子设备的一个或多个处 理器执行时,使所述第一电子设备执行以下操作:
当所述第一电子设备参与上下文共享组时,所述上下文共享组与第一 位置相关联,其中所述上下文共享组是多个电子设备的集合,所述多个电 子设备各自与所述集合中包括的至少一个其他电子设备共享上下文信息, 并且其中所述集合包括上下文收集器:
接收用户语音输入;
从所述上下文收集器接收所述上下文共享组的聚合上下文;
在接收到所述聚合上下文之后,向不参与所述上下文共享组的远程设 备提供所述聚合上下文的至少一部分和与所述用户语音输入对应的数据, 其中所述远程设备基于与所述用户语音输入对应的所述数据来确定多个任 务;
从所述远程设备接收:
用于执行所述多个任务中的第一组任务的第一命令和用于执行所 述多个任务中的第二组任务的第二命令;和
与所述多个电子设备中的第二电子设备对应的第一设备标识符以 及与所述多个电子设备中的第三电子设备对应的第二设备标识符;
基于所述第一设备标识符将所述第一命令发送到所述第二电子设备, 其中所述第一命令使得所述第二电子设备执行所述第一组任务;以及
基于所述第二设备标识符将所述第二命令发送到所述第三电子设备, 其中所述第二命令使所述第三电子设备执行所述第二组任务。
方面88:一种存储一个或多个程序的非暂态计算机可读存储介质,所 述一个或多个程序包括指令,所述指令当由第一电子设备的一个或多个处 理器执行时,使所述第一电子设备执行以下操作:
当第一电子设备和第二电子设备参与上下文共享组时,所述上下文共 享组与第一位置相关联,其中所述上下文共享组是至少两个电子设备的集 合,所述至少两个电子设备各自与所述集合中包括的至少一个其他电子设 备共享上下文信息,并且其中所述集合包括上下文收集器:
在所述第一电子设备处接收第一用户语音输入;
在所述第一电子设备处,基于所述第一用户语音输入输出第一数字助 理响应,其中所述第一电子设备在输出所述第一数字助理响应之后将包括 所述第一电子设备的数字助理对话会话历史的上下文信息发送到所述上下 文收集器;
在所述第二电子设备处接收第二用户语音输入;
在所述第二电子设备处,从所述上下文收集器接收所述上下文共享组 的更新的聚合上下文,其中所述更新的聚合上下文包括所述第一电子设备 的所述数字助理对话会话历史;以及
在所述第二电子设备处,基于所述第二用户语音输入和所述第一电子 设备的所述数字助理对话历史输出第二数字助理响应。
方面89:一种存储一个或多个程序的非暂态计算机可读存储介质,所 述一个或多个程序包括指令,所述指令当由第一电子设备的一个或多个处 理器执行时,使所述第一电子设备执行以下操作:
当所述第一电子设备参与上下文共享组时,所述上下文共享组与第一 位置相关联,其中所述上下文共享组是至少两个电子设备的集合,所述至 少两个电子设备各自与参与所述集合的至少一个其他电子设备共享上下文 信息,并且其中所述集合包括至少第二电子设备和上下文收集器:
接收用户语音输入,其中所述用户语音输入包括数字助理触发器;
响应于检测到所述数字助理触发器,将第一触发器通告发送到所述上 下文收集器,其中所述第一触发器通告指示所述数字助理触发器根据所述 第一电子设备结束时的第一时间;
从所述上下文收集器接收第二触发器通告,其中所述第二触发器通告 指示所述数字助理触发器根据所述第二电子设备结束时的第二时间;
确定所述第二时间是否在所述第一时间之前的预定时间范围内;以及
根据确定所述第二时间在所述第一时间之前的所述预定时间范围内, 放弃进一步处理所述用户语音输入。
方面90:一种第一电子设备,包括:
用于加入与第一位置相关联的上下文共享组的装置,其中所述上下文 共享组是至少两个电子设备的集合,所述至少两个电子设备各自与所述集 合中包括的至少一个其他电子设备共享上下文信息,并且其中所述集合包 括至少第二电子设备;
在加入所述上下文共享组之后,用于挑选所述至少两个电子设备的所 述集合中的一个电子设备作为所述上下文共享组的上下文收集器的装置, 其中挑选所述上下文收集器包括:
至少基于所述第一电子设备与所述第一位置的无线网络之间的连 接性的强度来确定与所述第一电子设备对应的第一上下文收集器得分;
从至少所述第二电子设备接收与至少所述第二电子设备对应的一 个或多个上下文收集器得分;以及
基于所述第一上下文收集器得分和与至少所述第二电子设备对应 的所述一个或多个上下文收集器得分,确定挑选所述上下文共享组中 包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述 上下文收集器;以及
根据确定挑选所述第一电子设备作为所述上下文收集器,用于响应于 至少所述第二电子设备经历设备状态改变而从至少所述第二电子设备接收 上下文信息的装置。
方面91:一种第一电子设备,包括:
当所述第一电子设备参与上下文共享组时,所述上下文共享组与第一 位置相关联,其中所述上下文共享组是至少两个电子设备的集合,所述至 少两个电子设备各自与所述集合中包括的至少一个其他电子设备共享上下 文信息,并且其中所述集合包括至少第二电子设备和上下文收集器:
用于接收用户语音输入的装置;
用于从所述上下文收集器接收所述上下文共享组的聚合上下文的装置;
在接收到所述聚合上下文之后,用于向不参与所述上下文共享组的远 程设备提供所述聚合上下文的至少一部分和与所述用户语音输入对应的数 据的装置;
用于从所述远程设备接收用于执行一个或多个任务的命令和与所述第 二电子设备对应的设备标识符的装置,其中所述远程设备基于与所述用户 语音输入对应的所述数据和在所述聚合上下文的所述至少一部分中包括的 上下文信息来确定所述一个或多个任务和所述设备标识符;和
用于基于所述设备标识符将所述命令发送到所述第二电子设备的装置, 其中所述命令使所述第二电子设备执行所述一个或多个任务。
方面92:一种系统,包括:
用于从参与上下文共享组的第一电子设备接收用户语音输入以及所述 上下文共享组的聚合上下文的至少一部分的装置,所述上下文共享组与第 一位置相关联,其中所述上下文共享组是多个电子设备的集合,所述多个 电子设备各自与所述集合中包括的至少一个其他电子设备共享上下文信息;
用于基于所述用户语音输入来确定用户意图的装置;
用于确定与所述用户意图对应的一个或多个任务的装置;
用于基于所述一个或多个任务和在所述聚合上下文的所述至少一部分 中包括的上下文信息来识别所述多个电子设备中的第二电子设备以执行所 述一个或多个任务的装置;和
用于向所述第一电子设备发送用于执行所述一个或多个任务的命令以 及与所述第二电子设备对应的设备标识符的装置,
其中所述第一电子设备基于所述设备标识符将所述命令发送到所述第 二电子设备,并且
其中所述命令使所述第二电子设备执行所述一个或多个任务。
方面93:一种第一电子设备,包括:
当所述第一电子设备参与上下文共享组时,所述上下文共享组与第一 位置相关联,其中所述上下文共享组是多个电子设备的集合,所述多个电 子设备各自与所述集合中包括的至少一个其他电子设备共享上下文信息, 并且其中所述集合包括上下文收集器:
用于接收用户语音输入的装置;
用于从所述上下文收集器接收所述上下文共享组的聚合上下文的装置;
在接收到所述聚合上下文之后,用于向不参与所述上下文共享组的远 程设备提供所述聚合上下文的至少一部分和与所述用户语音输入对应的数 据的装置,其中所述远程设备基于与所述用户语音输入对应的所述数据来 确定多个任务;
用于从所述远程设备接收以下内容的装置:
用于执行所述多个任务中的第一组任务的第一命令和用于执行所 述多个任务中的第二组任务的第二命令;和
与所述多个电子设备中的第二电子设备对应的第一设备标识符以 及与所述多个电子设备中的第三电子设备对应的第二设备标识符;
用于基于所述第一设备标识符将所述第一命令发送到所述第二电子设 备的装置,其中所述第一命令使得所述第二电子设备执行所述第一组任务; 和
用于基于所述第二设备标识符将所述第二命令发送到所述第三电子设 备的装置,其中所述第二命令使得所述第三电子设备执行所述第二组任务。
方面94:一种系统,包括:
当第一电子设备和第二电子设备参与上下文共享组时,所述上下文共 享组与第一位置相关联,其中所述上下文共享组是至少两个电子设备的集 合,所述至少两个电子设备各自与所述集合中包括的至少一个其他电子设 备共享上下文信息,并且其中所述集合包括上下文收集器:
用于在所述第一电子设备处接收第一用户语音输入的装置;
用于在所述第一电子设备处基于所述第一用户语音输入输出第一数字 助理响应的装置,其中所述第一电子设备在输出所述第一数字助理响应之 后将包括所述第一电子设备的数字助理对话会话历史的上下文信息发送到 所述上下文收集器;
用于在所述第二电子设备处接收第二用户语音输入的装置;
用于在所述第二电子设备处从所述上下文收集器接收所述上下文共享 组的更新的聚合上下文的装置,其中所述更新的聚合上下文包括所述第一 电子设备的所述数字助理对话会话历史;和
用于在所述第二电子设备处基于所述第二用户语音输入和所述第一电 子设备的所述数字助理对话历史输出第二数字助理响应的装置。
方面95:一种第一电子设备,包括:
当所述第一电子设备参与上下文共享组时,所述上下文共享组与第一 位置相关联,其中所述上下文共享组是至少两个电子设备的集合,所述至 少两个电子设备各自与参与所述集合的至少一个其他电子设备共享上下文 信息,并且其中所述集合包括至少第二电子设备和上下文收集器:
用于接收用户语音输入的装置,其中所述用户语音输入包括数字助理 触发器;
响应于检测到所述数字助理触发器,用于将第一触发器通告发送到所 述上下文收集器的装置,其中所述第一触发器通告指示所述数字助理触发 器根据所述第一电子设备结束时的第一时间;
用于从所述上下文收集器接收第二触发器通告的装置,其中所述第二 触发器通告指示所述数字助理触发器根据所述第二电子设备结束时的第二 时间;
用于确定所述第二时间是否在所述第一时间之前的预定时间范围内的 装置;和
根据确定所述第二时间在所述第一时间之前的所述预定时间范围内, 用于放弃进一步处理所述用户语音输入的装置。
方面96:一种第一电子设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被 配置为由所述一个或多个处理器执行,并且其中所述一个或多个程序包括 用于执行根据方面1至15中任一项所述的方法的指令。
方面97:一种第一电子设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被 配置为由所述一个或多个处理器执行,并且其中所述一个或多个程序包括 用于执行根据方面16至30中任一项所述的方法的指令。
方面98:一种系统,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被 配置为由所述一个或多个处理器执行,并且其中所述一个或多个程序包括 用于执行根据方面31至48中任一项所述的方法的指令。
方面99:一种第一电子设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被 配置为由所述一个或多个处理器执行,并且其中所述一个或多个程序包括 用于执行根据方面49至60中任一项所述的方法的指令。
方面100:一种系统,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被 配置为由所述一个或多个处理器执行,并且其中所述一个或多个程序包括 用于执行根据方面61至70中任一项所述的方法的指令。
方面101:一种第一电子设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被 配置为由所述一个或多个处理器执行,并且其中所述一个或多个程序包括 用于执行根据方面71至77中任一项所述的方法的指令。
方面102:一种存储一个或多个程序的非暂态计算机可读存储介质,其 中所述一个或多个程序包括指令,所述指令当由第一电子设备的一个或多 个处理器执行时,使所述第一电子设备执行根据方面1至15中任一项所述 的方法。
方面103:一种存储一个或多个程序的非暂态计算机可读存储介质,其 中所述一个或多个程序包括指令,所述指令当由第一电子设备的一个或多 个处理器执行时,使所述第一电子设备执行根据方面16至30中任一项所述 的方法。
方面104:一种存储一个或多个程序的非暂态计算机可读存储介质,其 中所述一个或多个程序包括指令,所述指令当由系统的一个或多个处理器 执行时,使所述系统执行根据方面31至48中任一项所述的方法。
方面105:一种存储一个或多个程序的非暂态计算机可读存储介质,其 中所述一个或多个程序包括指令,所述指令当由第一电子设备的一个或多 个处理器执行时,使所述第一电子设备执行根据方面49至60中任一项所述 的方法。
方面106:一种存储一个或多个程序的非暂态计算机可读存储介质,其 中所述一个或多个程序包括指令,所述指令当由系统的一个或多个处理器 执行时,使所述系统执行根据方面61至70中任一项所述的方法。
方面107:一种存储一个或多个程序的非暂态计算机可读存储介质,其 中所述一个或多个程序包括指令,所述指令当由第一电子设备的一个或多 个处理器执行时,使所述第一电子设备执行根据方面71至77中任一项所述 的方法。
方面108:一种第一电子设备,包括:
用于执行根据方面1-15中任一项所述的方法的装置。
方面109:一种第一电子设备,包括:
用于执行根据方面16至30中任一项所述的方法的装置。
方面110:一种系统,包括:
用于执行根据方面31至48中任一项所述的方法的装置。
方面111:一种第一电子设备,包括:
用于执行根据方面49至60中任一项所述的方法的装置。
方面112:一种系统,包括:
用于执行根据方面61至70中任一项所述的方法的装置。
方面113:一种第一电子设备,包括:
用于执行根据方面71至77中任一项所述的方法的装置。

Claims (46)

1.一种方法,包括:
在第一电子设备处:
加入与第一位置相关联的上下文共享组,其中所述上下文共享组是至少两个电子设备的集合,所述至少两个电子设备各自与所述集合中包括的至少一个其他电子设备共享上下文信息,并且其中所述集合包括至少第二电子设备;
在加入所述上下文共享组之后,挑选所述至少两个电子设备的所述集合中的一个电子设备作为所述上下文共享组的上下文收集器,其中挑选所述上下文收集器包括:
至少基于所述第一电子设备与所述第一位置的无线网络之间的连接性的强度来确定与所述第一电子设备对应的第一上下文收集器得分;
从至少所述第二电子设备接收与至少所述第二电子设备对应的一个或多个上下文收集器得分;以及
基于所述第一上下文收集器得分和与至少所述第二电子设备对应的所述一个或多个上下文收集器得分,确定挑选在所述上下文共享组中包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述上下文收集器;以及根据确定挑选所述第一电子设备作为所述上下文收集器,响应于至少所述第二电子设备经历设备状态改变而从至少所述第二电子设备接收上下文信息。
2.根据权利要求1所述的方法,其中所述上下文共享组的所述至少两个电子设备各自响应于经历设备状态改变而自动与参与所述上下文共享组的至少一个其他电子设备共享上下文信息。
3.根据权利要求1至2中任一项所述的方法,还包括:
连接到所述第一位置的所述无线网络,其中所述第一电子设备响应于连接到所述第一位置的所述无线网络而加入所述上下文共享组。
4.根据权利要求3所述的方法,其中参与所述上下文共享组的每个电子设备连接到所述无线网络。
5.根据权利要求1至4中任一项所述的方法,还包括:
确定所述第一电子设备是否登记在与所述第一位置相关联的所述上下文共享组中,其中所述第一电子设备根据确定所述第一电子设备登记在所述上下文共享组中而加入所述上下文共享组。
6.根据权利要求1至5中任一项所述的方法,其中所述第一电子设备通过与参与所述上下文共享组的至少一个其他电子设备建立通信连接来加入所述上下文共享组。
7.根据权利要求1至6中任一项所述的方法,其中所述第一上下文收集器得分还基于所述第一设备的电源状态。
8.根据权利要求1至7中任一项所述的方法,其中所述第一上下文收集器得分还基于所述第一电子设备移进和移出所述上下文共享组的频率。
9.根据权利要求1至8中任一项所述的方法,还包括:
在确定挑选在所述上下文共享组中包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述上下文收集器之前,向至少所述第二电子设备发送所述第一上下文收集器得分。
10.根据权利要求1至9中任一项所述的方法,还包括:
根据确定挑选所述第二电子设备作为所述上下文收集器,响应于所述第一电子设备经历设备状态改变而将与所述第一电子设备相关联的上下文信息发送到所述第二电子设备。
11.根据权利要求1至10中任一项所述的方法,其中挑选所述上下文收集器还包括:
从至少所述第二电子设备接收一个或多个上下文收集器指示,其中上下文收集器指示指示电子设备当前是否是所述上下文收集器;以及
基于与所述第一电子设备对应的上下文收集器指示和从至少所述第二电子设备接收的所述一个或多个上下文收集器指示来确定所述上下文共享组当前是否包括上下文收集器,其中所述第一电子设备还基于所述上下文共享组当前是否包括上下文收集器来确定挑选在所述上下文共享组中包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述上下文收集器。
12.根据权利要求11所述的方法,还包括:
根据确定所述上下文共享组当前包括上下文收集器,挑选该当前上下文收集器作为所述上下文共享组的所述上下文收集器。
13.根据权利要求11所述的方法,还包括:
根据确定所述上下文共享组包括多于一个上下文收集器,基于所述第一上下文收集器得分和与至少所述第二电子设备对应的所述一个或多个上下文收集器得分来确定挑选在所述上下文共享组中包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述上下文收集器。
14.根据权利要求1至13中任一项所述的方法,其中从至少所述第二电子设备接收的所述上下文信息包括以下中的至少一者:与至少所述第二电子设备相关联的设备状态改变信息,与至少所述第二电子设备相关联的设备能力信息,以及与至少所述第二电子设备相关联的上下文状态信息。
15.根据权利要求1至14中任一项所述的方法,还包括:
从所述第二电子设备接收对所述上下文共享组的聚合上下文的请求,其中所述第二电子设备响应于从所述第二电子设备的用户接收到用户语音输入而将所述请求发送到所述第一电子设备;以及
将所述聚合上下文发送到所述第二电子设备,其中将所述聚合上下文发送到所述第二电子设备使所述第二电子设备基于所述聚合上下文中包括的上下文信息来获得对所述用户语音输入的数字助理响应。
16.一种第一电子设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,其中所述一个或多个程序包括用于以下操作的指令:
加入与第一位置相关联的上下文共享组,其中所述上下文共享组是至少两个电子设备的集合,所述至少两个电子设备各自与所述集合中包括的至少一个其他电子设备共享上下文信息,并且其中所述集合包括至少第二电子设备;
在加入所述上下文共享组之后,挑选所述至少两个电子设备的所述集合中的一个电子设备作为所述上下文共享组的上下文收集器,其中挑选所述上下文收集器包括:
至少基于所述第一电子设备与所述第一位置的无线网络之间的连接性的强度来确定与所述第一电子设备对应的第一上下文收集器得分;
从至少所述第二电子设备接收与至少所述第二电子设备对应的一个或多个上下文收集器得分;以及
基于所述第一上下文收集器得分和与至少所述第二电子设备对应的所述一个或多个上下文收集器得分,确定挑选在所述上下文共享组中包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述上下文收集器;以及根据确定挑选所述第一电子设备作为所述上下文收集器,响应于至少所述第二电子设备经历设备状态改变而从至少所述第二电子设备接收上下文信息。
17.根据权利要求16所述的第一电子设备,其中所述上下文共享组的所述至少两个电子设备各自响应于经历设备状态改变而自动与参与所述上下文共享组的至少一个其他电子设备共享上下文信息。
18.根据权利要求16至17中任一项所述的第一电子设备,其中所述一个或多个程序包括用于以下操作的另外的指令:
连接到所述第一位置的所述无线网络,其中所述第一电子设备响应于连接到所述第一位置的所述无线网络而加入所述上下文共享组。
19.根据权利要求18所述的第一电子设备,其中参与所述上下文共享组的每个电子设备连接到所述无线网络。
20.根据权利要求16至19中任一项所述的第一电子设备,其中所述一个或多个程序包括用于以下操作的另外的指令:
确定所述第一电子设备是否登记在与所述第一位置相关联的所述上下文共享组中,其中所述第一电子设备根据确定所述第一电子设备登记在所述上下文共享组中而加入所述上下文共享组。
21.根据权利要求16至20中任一项所述的第一电子设备,其中所述第一电子设备通过与参与所述上下文共享组的至少一个其他电子设备建立通信连接来加入所述上下文共享组。
22.根据权利要求16至21中任一项所述的第一电子设备,其中所述第一上下文收集器得分还基于所述第一设备的电源状态。
23.根据权利要求16至22中任一项所述的第一电子设备,其中所述第一上下文收集器得分还基于所述第一电子设备移进和移出所述上下文共享组的频率。
24.根据权利要求16至23中任一项所述的第一电子设备,其中所述一个或多个程序包括用于以下操作的另外的指令:
在确定挑选在所述上下文共享组中包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述上下文收集器之前,向至少所述第二电子设备发送所述第一上下文收集器得分。
25.根据权利要求16至24中任一项所述的第一电子设备,其中所述一个或多个程序包括用于以下操作的另外的指令:
根据确定挑选所述第二电子设备作为所述上下文收集器,响应于所述第一电子设备经历设备状态改变而将与所述第一电子设备相关联的上下文信息发送到所述第二电子设备。
26.根据权利要求16至25中任一项所述的第一电子设备,其中挑选所述上下文收集器还包括:
从至少所述第二电子设备接收一个或多个上下文收集器指示,其中上下文收集器指示指示电子设备当前是否是所述上下文收集器;以及
基于与所述第一电子设备对应的上下文收集器指示和从至少所述第二电子设备接收的所述一个或多个上下文收集器指示来确定所述上下文共享组当前是否包括上下文收集器,其中所述第一电子设备还基于所述上下文共享组当前是否包括上下文收集器来确定挑选在所述上下文共享组中包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述上下文收集器。
27.根据权利要求26所述的第一电子设备,其中所述一个或多个程序包括用于以下操作的另外的指令:
根据确定所述上下文共享组当前包括上下文收集器,挑选该当前上下文收集器作为所述上下文共享组的所述上下文收集器。
28.根据权利要求26所述的第一电子设备,其中所述一个或多个程序包括用于以下操作的另外的指令:
根据确定所述上下文共享组包括多于一个上下文收集器,基于所述第一上下文收集器得分和与至少所述第二电子设备对应的所述一个或多个上下文收集器得分来确定挑选在所述上下文共享组中包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述上下文收集器。
29.根据权利要求16至28中任一项所述的第一电子设备,其中从至少所述第二电子设备接收的所述上下文信息包括以下中的至少一者:与至少所述第二电子设备相关联的设备状态改变信息,与至少所述第二电子设备相关联的设备能力信息,以及与至少所述第二电子设备相关联的上下文状态信息。
30.根据权利要求16至29中任一项所述的第一电子设备,其中所述一个或多个程序包括用于以下操作的另外的指令:
从所述第二电子设备接收对所述上下文共享组的聚合上下文的请求,其中所述第二电子设备响应于从所述第二电子设备的用户接收到用户语音输入而将所述请求发送到所述第一电子设备;以及
将所述聚合上下文发送到所述第二电子设备,其中将所述聚合上下文发送到所述第二电子设备使所述第二电子设备基于所述聚合上下文中包括的上下文信息来获得对所述用户语音输入的数字助理响应。
31.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由第一电子设备的一个或多个处理器执行时,使所述第一电子设备执行以下操作:
加入与第一位置相关联的上下文共享组,其中所述上下文共享组是至少两个电子设备的集合,所述至少两个电子设备各自与所述集合中包括的至少一个其他电子设备共享上下文信息,并且其中所述集合包括至少第二电子设备;
在加入所述上下文共享组之后,挑选所述至少两个电子设备的所述集合中的一个电子设备作为所述上下文共享组的上下文收集器,其中挑选所述上下文收集器包括:
至少基于所述第一电子设备与所述第一位置的无线网络之间的连接性的强度来确定与所述第一电子设备对应的第一上下文收集器得分;
从至少所述第二电子设备接收与至少所述第二电子设备对应的一个或多个上下文收集器得分;以及
基于所述第一上下文收集器得分和与至少所述第二电子设备对应的所述一个或多个上下文收集器得分,确定挑选在所述上下文共享组中包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述上下文收集器;以及
根据确定挑选所述第一电子设备作为所述上下文收集器,响应于至少所述第二电子设备经历设备状态改变而从至少所述第二电子设备接收上下文信息。
32.根据权利要求31所述的计算机可读存储介质,其中所述上下文共享组的所述至少两个电子设备各自响应于经历设备状态改变而自动与参与所述上下文共享组的至少一个其他电子设备共享上下文信息。
33.根据权利要求31至32中任一项所述的计算机可读存储介质,其中所述一个或多个程序包括用于以下操作的另外的指令:
连接到所述第一位置的所述无线网络,其中所述第一电子设备响应于连接到所述第一位置的所述无线网络而加入所述上下文共享组。
34.根据权利要求33所述的计算机可读存储介质,其中参与所述上下文共享组的每个电子设备连接到所述无线网络。
35.根据权利要求31至34中任一项所述的计算机可读存储介质,其中所述一个或多个程序包括另外的指令,所述另外的指令当由所述第一电子设备的所述一个或多个处理器执行时,使所述第一电子设备:
确定所述第一电子设备是否登记在与所述第一位置相关联的所述上下文共享组中,其中所述第一电子设备根据确定所述第一电子设备登记在所述上下文共享组中而加入所述上下文共享组。
36.根据权利要求31至35中任一项所述的计算机可读存储介质,其中所述第一电子设备通过与参与所述上下文共享组的至少一个其他电子设备建立通信连接来加入所述上下文共享组。
37.根据权利要求31至36中任一项所述的计算机可读存储介质,其中所述第一上下文收集器得分还基于所述第一设备的电源状态。
38.根据权利要求31至37中任一项所述的计算机可读存储介质,其中所述第一上下文收集器得分还基于所述第一电子设备移进和移出所述上下文共享组的频率。
39.根据权利要求31至38中任一项所述的计算机可读存储介质,其中所述一个或多个程序包括另外的指令,所述另外的指令当由所述第一电子设备的所述一个或多个处理器执行时,使所述第一电子设备:
在确定挑选在所述上下文共享组中包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述上下文收集器之前,向至少所述第二电子设备发送所述第一上下文收集器得分。
40.根据权利要求31至39中任一项所述的计算机可读存储介质,其中所述一个或多个程序包括另外的指令,所述另外的指令当由所述第一电子设备的所述一个或多个处理器执行时,使所述第一电子设备:
根据确定挑选所述第二电子设备作为所述上下文收集器,响应于所述第一电子设备经历设备状态改变而将与所述第一电子设备相关联的上下文信息发送到所述第二电子设备。
41.根据权利要求31至40中任一项所述的计算机可读存储介质,其中挑选所述上下文收集器还包括:
从至少所述第二电子设备接收一个或多个上下文收集器指示,其中上下文收集器指示指示电子设备当前是否是所述上下文收集器;以及
基于与所述第一电子设备对应的上下文收集器指示和从至少所述第二电子设备接收的所述一个或多个上下文收集器指示来确定所述上下文共享组当前是否包括上下文收集器,其中所述第一电子设备还基于所述上下文共享组当前是否包括上下文收集器来确定挑选在所述上下文共享组中包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述上下文收集器。
42.根据权利要求41所述的计算机可读存储介质,其中所述一个或多个程序包括另外的指令,所述另外的指令当由所述第一电子设备的所述一个或多个处理器执行时,使所述第一电子设备:
根据确定所述上下文共享组当前包括上下文收集器,挑选该当前上下文收集器作为所述上下文共享组的所述上下文收集器。
43.根据权利要求41所述的计算机可读存储介质,其中所述一个或多个程序包括另外的指令,所述另外的指令当由所述第一电子设备的所述一个或多个处理器执行时,使所述第一电子设备:
根据确定所述上下文共享组包括多于一个上下文收集器,基于所述第一上下文收集器得分和与至少所述第二电子设备对应的所述一个或多个上下文收集器得分来确定挑选在所述上下文共享组中包括的所述电子设备中的哪个电子设备作为所述上下文共享组的所述上下文收集器。
44.根据权利要求31至43中任一项所述的计算机可读存储介质,其中从至少所述第二电子设备接收的所述上下文信息包括以下中的至少一者:与至少所述第二电子设备相关联的设备状态改变信息,与至少所述第二电子设备相关联的设备能力信息,以及与至少所述第二电子设备相关联的上下文状态信息。
45.根据权利要求31至44中任一项所述的计算机可读存储介质,其中所述一个或多个程序包括另外的指令,所述另外的指令当由所述第一电子设备的所述一个或多个处理器执行时,使所述第一电子设备:
从所述第二电子设备接收对所述上下文共享组的聚合上下文的请求,其中所述第二电子设备响应于从所述第二电子设备的用户接收到用户语音输入而将所述请求发送到所述第一电子设备;以及
将所述聚合上下文发送到所述第二电子设备,其中将所述聚合上下文发送到所述第二电子设备使所述第二电子设备基于所述聚合上下文中包括的上下文信息来获得对所述用户语音输入的数字助理响应。
46.一种电子设备,包括:
用于执行根据权利要求1至2中任一项所述的方法的装置。
CN202011003474.3A 2020-05-11 2020-09-21 数字助理硬件抽象 Pending CN112732623A (zh)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US202063022942P 2020-05-11 2020-05-11
US63/022,942 2020-05-11
US16/990,868 US11038934B1 (en) 2020-05-11 2020-08-11 Digital assistant hardware abstraction
US16/990,876 2020-08-11
US16/990,894 US11183193B1 (en) 2020-05-11 2020-08-11 Digital assistant hardware abstraction
US16/990,876 US11043220B1 (en) 2020-05-11 2020-08-11 Digital assistant hardware abstraction
US16/990,894 2020-08-11
US16/990,868 2020-08-11
DKPA202070546 2020-08-24
DKPA202070546A DK180653B1 (en) 2020-05-11 2020-08-24 Digital assistant hardware abstraction
CN202010998524.XA CN113641619A (zh) 2020-05-11 2020-09-21 数字助理硬件抽象

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202010998524.XA Division CN113641619A (zh) 2020-05-11 2020-09-21 数字助理硬件抽象

Publications (1)

Publication Number Publication Date
CN112732623A true CN112732623A (zh) 2021-04-30

Family

ID=75613861

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202011003474.3A Pending CN112732623A (zh) 2020-05-11 2020-09-21 数字助理硬件抽象
CN202011003469.2A Pending CN112732622A (zh) 2020-05-11 2020-09-21 数字助理硬件抽象
CN202011004874.6A Pending CN112732624A (zh) 2020-05-11 2020-09-21 数字助理硬件抽象

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN202011003469.2A Pending CN112732622A (zh) 2020-05-11 2020-09-21 数字助理硬件抽象
CN202011004874.6A Pending CN112732624A (zh) 2020-05-11 2020-09-21 数字助理硬件抽象

Country Status (1)

Country Link
CN (3) CN112732623A (zh)

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9082408B2 (en) * 2011-06-13 2015-07-14 Mmodal Ip Llc Speech recognition using loosely coupled components
US10079013B2 (en) * 2013-11-27 2018-09-18 Sri International Sharing intents to provide virtual assistance in a multi-person dialog
US11093971B2 (en) * 2015-02-27 2021-08-17 Keypoint Technologies India Pvt Ltd. Contextual discovery
US10157350B2 (en) * 2015-03-26 2018-12-18 Tata Consultancy Services Limited Context based conversation system
US10223066B2 (en) * 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10586535B2 (en) * 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179343B1 (en) * 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
US20180018331A1 (en) * 2016-07-12 2018-01-18 Microsoft Technology Licensing, Llc Contextual suggestions from user history
US11301477B2 (en) * 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK179745B1 (en) * 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
US20180336892A1 (en) * 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US20180336275A1 (en) * 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
US10395659B2 (en) * 2017-05-16 2019-08-27 Apple Inc. Providing an auditory-based interface of a digital assistant
US10466962B2 (en) * 2017-09-29 2019-11-05 Sonos, Inc. Media playback system with voice assistance
US10818288B2 (en) * 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
EP3872620B1 (en) * 2018-06-01 2023-11-22 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
DK179822B1 (da) * 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device

Also Published As

Publication number Publication date
CN112732624A (zh) 2021-04-30
CN112732622A (zh) 2021-04-30

Similar Documents

Publication Publication Date Title
CN111656439B (zh) 基于延迟控制电子设备的方法、电子设备及存储介质
US11038934B1 (en) Digital assistant hardware abstraction
CN111901481B (zh) 计算机实现的方法、电子设备和存储介质
CN111480134B (zh) 注意力感知虚拟助理清除
CN112567323B (zh) 用户活动快捷方式建议
CN110021300B (zh) 数字助理服务的远场延伸
CN110058834B (zh) 智能设备仲裁和控制
CN108604449B (zh) 说话者识别
CN115088250A (zh) 视频通信会话环境中的数字助理交互
CN112567332A (zh) 语音命令的多模态输入
CN109257941B (zh) 用于数字助理的同步和任务委派的方法、电子设备和系统
CN115268624A (zh) 播报通知
CN115438330A (zh) 用于数字助理请求的基于附件设备的认证
CN111399714A (zh) 用户活动快捷方式建议
CN111524506A (zh) 维护个人信息的隐私的自然语言输入的客户端服务器处理
KR102586188B1 (ko) 디지털 어시스턴트 하드웨어 추출
CN110574023A (zh) 脱机个人助理
EP3910467A1 (en) Digital assistant hardware abstraction
US20240146776A1 (en) Digital assistant hardware abstraction
CN112732623A (zh) 数字助理硬件抽象
CN113641619A (zh) 数字助理硬件抽象
CN112017672A (zh) 数字助理系统中的声音识别
CN111899739A (zh) 语音通知

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination