CN107490971A - 家庭环境中的智能自动化助理 - Google Patents

家庭环境中的智能自动化助理 Download PDF

Info

Publication number
CN107490971A
CN107490971A CN201710393185.0A CN201710393185A CN107490971A CN 107490971 A CN107490971 A CN 107490971A CN 201710393185 A CN201710393185 A CN 201710393185A CN 107490971 A CN107490971 A CN 107490971A
Authority
CN
China
Prior art keywords
equipment
user
input
language input
language
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710393185.0A
Other languages
English (en)
Other versions
CN107490971B (zh
Inventor
G·内尔
R·马拉尼
S·P·布朗
B·L·布伦博
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 Computer 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 DKPA201670577A external-priority patent/DK179309B1/en
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN107490971A publication Critical patent/CN107490971A/zh
Application granted granted Critical
Publication of CN107490971B publication Critical patent/CN107490971B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/26Pc applications
    • G05B2219/2642Domotique, domestic, home control, automation, smart house
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

本发明题为“家庭环境中的智能自动化助理”。本发明提供用于操作智能自动化助理的系统和过程。在一个示例性过程中,可以接收表示用户请求的话语输入。所述过程可以确定对应于所述话语输入的一个或多个可能设备特征。可以检索表示具有已建立位置的一组设备的数据结构。所述过程可以基于所述数据结构从所述一组设备中确定一个或多个候选设备。所述一个或多个候选设备可以对应于所述话语输入。所述过程可以基于所述一个或多个可能设备特征和所述一个或多个候选设备的一个或多个实际设备特征来确定对应于所述话语输入的用户意图。可以提供致使所述一个或多个候选设备中的设备执行对应于所述用户意图的动作的指令。

Description

家庭环境中的智能自动化助理
相关申请的交叉引用
本申请要求2016年6月9日提交的标题为“INTELLIGENT AUTOMATED ASSISTANT INA HOME ENVIRONMENT”的美国临时序 列号62/348,015、2016年9月23日提交的标题为“INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT”的美国非临时 序列号15/274,859、2016年8月3日提交的标题为“INTELLIGENT AUTOMATED ASSISTANT IN A HOMEENVIRONMENT”的丹麦申请号 PA201670577,以及2016年8月3日提交的标题为“INTELLIGENTAUTOMATED ASSISTANT IN A HOME ENVIRONMENT”的丹麦申请号 PA201670578的优先权,所有这些申请的全文均据此出于所有目的以引用 方式并入本文中。
本申请还与以下共同未决的申请相关:2014年9月30日提交的标题为“INTELLIGENT ASSISTANT FOR HOME AUTOMATION”的美国非临时 专利申请序列号14/503,105(代理人案卷号106842108200(P23013US1)), 其全文据此出于所有目的以引用方式并入本文中。
技术领域
本发明整体涉及智能自动化助理,更具体地讲,涉及家庭环境中的智 能自动化助理。
背景技术
智能自动化助理(或数字助理)可在人类用户与电子设备之间提供有 利界面。此类助理可允许用户使用自然语言以语音形式和/或文本形式与设 备或系统进行交互。例如,用户可向正在电子设备上运行的数字助理提供 包含用户请求的语音输入。数字助理可从该语音输入解译用户意图并且将 用户意图操作化成任务。随后可通过执行电子设备的一项或多项服务来执 行这些任务,并且可将响应于用户请求的相关输出返回给用户。
可使用在计算设备诸如移动电话、平板电脑、膝上型计算机、台式计 算机等上运行的软件应用程序来远程控制具有已建立位置(例如,家庭、 办公室、企业、公共机构)的设备(例如,电子设备)。例如,许多制造 商生产可由移动电话上运行的软件应用程序控制以调节灯泡的亮度和/或颜 色的灯泡。具有类似控制的其他设备诸如门锁、恒温器等同样可用。
尽管这些设备可向用户提供较高水平的控制和便利,但随着家庭中的 受远程控制的设备的数量和受远程控制的设备的类型数量增大,管理这些 设备可能变得非常困难。例如,典型的家庭可包括放置在家中各个房间的 40至50个灯泡。使用常规软件应用程序,向每个灯泡给予唯一标识符,并 且试图控制这些设备中的一者的用户必须从图形用户界面内的可用设备列 表选择适当的标识符。记住特定灯泡的正确标识符并且从40至50个标识 符的列表中找出该标识符可能是一个困难且耗时的过程。例如,用户可能 会将一个设备的标识符与另一个设备的标识符弄混并因此不能够控制所需 设备。不同制造商通常提供控制其相应设备时必须使用的不同软件应用程 序,这也增加了管理和控制大量远程受控设备的难度。因此,用户必须定 位并打开一个软件应用程序以开启/关闭相应的灯泡,然后必须定位并打开 另一个软件应用程序以设置其恒温器的温度。
发明内容
本发明提供用于操作智能自动化助理的系统和过程。在一个示例性过 程中,接收表示用户请求的话语输入。该过程确定对应于该话语输入的一 个或多个可能设备特征。检索表示具有已建立位置的一组设备的数据结 构。该过程基于数据结构来从该组设备确定一个或多个候选设备。所述一 个或多个候选设备对应于该话语输入。该过程基于一个或多个可能设备特 征和一个或多个候选设备的一个或多个实际设备特征来确定对应于该话语输入的用户意图。提供致使一个或多个候选设备中的设备执行对应于用户 意图的动作的指令。
在另一个示例性过程中,接收表示用户请求的话语输入。该过程确定 该话语输入是否涉及具有已建立位置的设备。响应于确定该话语输入涉及 具有已建立位置的设备,检索表示所述具有已建立位置的一组设备的数据 结构。该过程使用该数据结构确定对应于该话语输入的用户意图,该用户 意图与将由该组设备中的设备执行的动作和在执行该动作之前要满足的标 准相关联。该动作和该设备与该标准相关联地存储,其中根据确定该标准 得到满足,由设备执行该动作。
附图说明
图1是示出根据各种示例的用于实现数字助理的系统和环境的框图。
图2A是示出根据各种示例的实现数字助理的客户端侧部分的便携式 多功能设备的框图。
图2B是示出根据各种示例的用于事件处理的示例性部件的框图。
图3示出了根据各种示例的实现数字助理的客户端侧部分的便携式多 功能设备。
图4是根据各种示例的具有显示器和触敏表面的示例性多功能设备的 框图。
图5A示出了根据各种示例的便携式多功能设备上的应用程序菜单的 示例性用户界面。
图5B示出了根据各种示例的具有与显示器分开的触敏表面的多功能设 备的示例性用户界面。
图6A示出了根据各种示例的个人电子设备。
图6B是示出根据各种示例的个人电子设备的框图。
图7A是示出根据各种示例的数字助理系统或其服务器部分的框图。
图7B示出了根据各种示例的图7A所示的数字助理的功能。
图7C示出了根据各种示例的知识本体的一部分。
图8示出了根据各种示例的用于操作数字助理的过程。
图9是示出根据各种示例的表示具有已建立位置的一组设备的数据结 构的分级图。
图10A示出了根据各种示例的对应于示例性话语输入的可能设备特 征。
图10B示出了根据各种示例的与数据结构中所表示的设备相关联的实 际设备特征。
图11示出了根据各种示例的用于操作数字助理的过程。
图12示出了根据各种示例的电子设备的功能框图。
图13示出了根据各种示例的电子设备的功能框图。
具体实施方式
在以下对示例的描述中将引用附图,在附图中以例示的方式示出了可 被实施的特定示例。应当理解,在不脱离各个示例的范围的情况下,可使 用其他示例并且可作出结构性变更。
如上所述,利用数字助理来控制具有已建立位置的设备诸如用户家中 的设备,对于用户而言可能既方便又有利。优选地,用户采用自然语言来 向数字助理传达预期动作和用于执行该动作的预期设备,而不必参考预定 义的命令或预定义的设备标识符。例如,如果用户提供自然语言命令“开 门”,则可能需要数字助理准确理解用户是指哪个门以及预期动作是开门 还是打开门锁。因此,用户将不需要记住无数预定义的命令和设备标识符来向数字助理传达用户意图。这改善了用户体验并且允许与数字助理进行 更自然且更加人性化的交互。
虽然自然语言交互是改善用户体验所需要的,但自然语言经常包括数 字助理难以消除歧义的模糊词语。例如,对于自然语言命令“开门”,用 户的家可能具有能够打开或解锁的若干扇门。因此,数字助理需要依赖其 他信息来补充自然语言命令以便准确地确定预期动作和用于执行该动作的 预期设备。根据本文所述的一些示例性系统和过程,利用定义具有已建立 位置的设备的数据结构来帮助从用户的自然语言命令确定用户意图。在一个示例性过程中,接收表示用户请求的话语输入。该过程确定对应于该话 语输入的一个或多个可能设备特征。检索表示具有已建立位置的一组设备 的数据结构。该过程基于数据结构来从该组设备确定一个或多个候选设 备。所述一个或多个候选设备对应于该话语输入。该过程基于一个或多个 可能设备特征和一个或多个候选设备的一个或多个实际设备特征来确定对 应于该话语输入的用户意图。提供致使该一个或多个候选设备中的设备执 行对应于用户意图的动作的指令。
数字助理还可处理用于响应于指定条件来执行未来动作的用户命令。 该动作或条件相对于已建立位置中的一个或多个设备。例如,用户提供自 然语言命令“在达到80度时闭合百叶窗”。在该示例中,数字助理确定用 户希望响应于检测到等于或大于80度的温度的条件而执行闭合百叶窗的动 作。具体地讲,数字助理将需要确定用户希望闭合哪个“百叶窗”以及用 户希望相对于“80度”的标准监视哪个温度计。上文提到的数据结构还用于帮助做出此类确定。例如,在一个示例性过程中,接收表示用户请求的 话语输入。该过程确定该话语输入是否涉及具有已建立位置的设备。响应 于确定该话语输入涉及具有已建立位置的设备,检索表示所述具有已建立 位置的一组设备的数据结构。该过程使用该数据结构确定对应于话语输入 的用户意图,该用户意图与将由该组设备中的设备执行的动作和在执行该 动作之前要满足的标准相关联。该动作和该设备与该标准相关联地存储, 其中根据确定该标准得到满足,由设备执行该动作。
尽管以下描述使用术语“第一”、“第二”等来描述各种元件,但这 些元件不应受术语的限制。这些术语只是用于将一个元件与另一元件区分 开。例如,在不脱离各种所述示例的范围的情况下,第一设备可被称为第 二设备,并且类似地,第二设备可被称为第一设备。在一些示例中,第一 设备和第二设备两者均为设备,而在某些情况下,它们是独立的不同设 备。
在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示 例的目的,而并非旨在进行限制。如在对各种所述示例的描述和所附权利 要求书中所使用的那样,单数形式“一个(“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来处理语音输入, 并基于自然语言输入来确定用户意图。在一些示例中,数据与模型存储器 116存储与被配置为由用户设备104和/或服务器系统108控制的设备(例 如,设备130,132,134和136)中的一者或多者相关联的数据结构(例如, 数据结构900)和任何其他相关信息。此外,一个或多个处理模块114基于 推断出的用户意图来执行任务执行。在一些示例中,DA服务器106通过一 个或多个网络110与外部服务120通信以完成任务或采集信息。到外部服 务的I/O接口118促成此类通信。
用户设备104可以是任何合适的电子设备。在一些示例中,用户设备 是便携式多功能设备(例如,下面参考图2A描述的设备200)、多功能设 备(例如,下面参考图4描述的设备400)或个人电子设备(例如,下面参 考图6A至图6B描述的设备600)。便携式多功能设备是例如还包含诸如 PDA和/或音乐播放器功能的其他功能的移动电话。便携式多功能设备的特 定示例包括来自Apple Inc.(Cupertino,California)的iPod设备。便携式多功能设备的其他示例包括但不限于膝上型电脑或平板 电脑。此外,在一些示例中,用户设备104是非便携式多功能设备。具体 地讲,用户设备104是台式计算机、游戏机、电视或电视机顶盒。在一些 示例中,用户设备104包括触敏表面(例如,触摸屏显示器和/或触控 板)。此外,用户设备104任选地包括一个或多个其他物理用户接口设备,诸如物理键盘、鼠标和/或操纵杆。下文更详细地描述了电子设备诸如 多功能设备的各种示例。
一个或多个通信网络110的示例包括局域网(LAN)和广域网(WAN), 例如互联网。一个或多个通信网络110使用任何已知的网络协议来实现, 包括各种有线或无线协议,诸如以太网、通用串行总线(USB)、火线 (FIREWIRE)、全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、 码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi、互联网协议语音(VoIP)、Wi-MAX或任何其他合适的通信协议。
服务器系统108在一个或多个独立式数据处理设备或分布式计算机网 络上实现。在一些示例中,服务器系统108还采用第三方服务提供方(例 如,第三方云服务提供方)的各种虚拟设备和/或服务来提供服务器系统 108的潜在计算资源和/或基础结构资源。
在一些示例中,用户设备104经由第二用户设备122与DA服务器106 通信。第二用户设备122与用户设备104相似或相同。例如,第二用户设 备122类似于下文参考图2A、图4和图6A至图6B描述的设备200、设备 400或设备600。用户设备104被配置为经由直接通信连接诸如蓝牙、 NFC、BTLE等或者经由有线或无线网络诸如局域Wi-Fi网络而通信耦接到 第二用户设备122。在一些示例中,第二用户设备122被配置为充当用户设 备104与DA服务器106之间的代理。例如,用户设备104的DA客户端 102被配置为经由第二用户设备122向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通信的任意数量和类型的用户设备。
用户设备104和/或服务器系统108经由网络110还耦接到设备130, 132,134和136。设备130,132,134和136可包括任何类型的受远程控制的 设备,诸如灯泡(例如,具有二进制开/关操作状态、数值可调操作状态、 颜色操作状态等)、车库门(例如,具有二进制开/关操作状态)、门锁(例如,具有二进制锁定/解锁操作状态)、恒温器(例如,具有一个或多 个数值温度设定点操作状态,诸如高温、低温、基于时间的温度等)、电 源插座(例如,具有二进制开/关操作状态)、开关(例如,具有二进制开/ 关操作状态)、音乐播放器、电视机等。设备130-136被配置为从服务器系 统108和/或用户设备104接收指令。如下文参考图8至图11更详细的论 述,用户设备104可响应于用户向用户设备104所提供的自然语言对话输 入来发出命令(或致使DA服务器106发出命令)以控制设备130-136中的 任一者。
虽然在图1中仅示出了四个设备130,132,134和136,但应当理解,系 统100可包括任意数量的设备。另外,虽然图1中所示的数字助理包括客 户端侧部分(例如,DA客户端102)和服务器侧部分(例如,DA服务器 106)两者,但在一些示例中,数字助理的功能被实现为安装在用户设备上 的独立式应用程序。此外,数字助理的客户端部分与服务器部分之间的功 能划分在不同的具体实施中可变化。例如,在一些示例中,DA客户端为仅 提供面向用户的输入和输出处理功能,并将数字助理的所有其他功能委派 给后端服务器的瘦客户端。
2.电子设备
现在将注意力转至用于实现数字助理的客户端侧部分的电子设备的实 施方案。图2A是示出根据一些实施方案的具有触敏显示器系统212的便携 式多功能设备200的框图。触敏显示器212有时为了方便被叫做“触摸 屏”,并且有时可被称为或被叫做“触敏显示器系统”。设备200包括存 储器202(其任选地包括一个或多个计算机可读存储介质)、存储器控制器 222、一个或多个处理单元(CPU)220、外围设备接口218、RF电路208、音 频电路210、扬声器211、麦克风213、输入/输出(I/O)子系统206、其他输 入控制设备216和外部端口224。设备200任选地包括一个或多个光学传感 器264。设备200任选地包括用于检测设备200(例如,触敏表面,诸如设 备200的触敏显示器系统212)上的接触的强度的一个或多个接触强度传感 器265。设备200任选地包括用于在设备200上生成触觉输出的一个或多个触觉输出发生器267(例如,在触敏表面诸如设备200的触敏显示器系统 212或设备400的触摸板455上生成触觉输出)。这些部件任选地通过一个 或多个通信总线或信号线203进行通信。
如在本说明书和权利要求书中所使用的,术语触敏表面上的接触的 “强度”是指触敏表面上的接触(例如,手指接触)的力或压力(每单位 面积的力),或是指触敏表面上的接触的力或压力的替代物(代用物)。 接触的强度具有值范围,该值范围包括至少四个不同的值并且更典型地包 括上百个不同的值(例如,至少256个)。接触的强度任选地使用各种方 法和各种传感器或传感器的组合来确定(或测量)。例如,在触敏表面下 方或相邻于触敏表面的一个或多个力传感器任选地用于测量触敏表面上的 不同点处的力。在一些具体实施中,来自多个力传感器的力测量值被组合 (例如,加权平均)以确定所估计的接触力。类似地,触笔的压敏顶端任 选地用于确定触笔在触敏表面上的压力。另选地,在触敏表面上检测到的 接触区域的大小和/或其变化、接触附近的触敏表面的电容和/或其变化以及/或者接触附近的触敏表面的电阻和/或其变化任选地被用作触敏表面上的接 触的力或压力的替代物。在一些具体实施中,接触力或压力的替代物测量 直接用于确定是否已经超过强度阈值(例如,强度阈值以对应于替代物测 量的单位来描述)。在一些具体实施中,接触力或压力的替代物测量被转 换成估计的力或压力,并且估计的力或压力用于确定是否已超过强度阈值 (例如,强度阈值是以压力的单位进行测量的压力阈值)。使用接触的强 度作为用户输入的属性,从而允许用户访问用户在实地面积有限的尺寸更 小的设备上本来不可访问的附加设备功能,该尺寸更小的设备用于(例 如,在触敏显示器上)显示示能表示和/或接收用户输入(例如,经由触敏 显示器、触敏表面或物理控件/机械控件,诸如旋钮或按钮)。
如本说明书和权利要求书中所使用的,术语“触觉输出”是指将由用 户利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备 的部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物 理位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与 用户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触 的情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感对 应于设备或设备的部件的物理特征的所感知的变化。例如,触敏表面(例 如,触敏显示器或触控板)的移动任选地由用户解释为对物理致动按钮的 “按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如 “按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压(例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。又 如,即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用 户解释或感测为触敏表面的“粗糙度”。虽然用户对触摸的此类解释将受 到用户的个体化感官知觉的限制,但是对触摸的许多感官知觉是大多数用 户共有的。因此,当触觉输出被描述为对应于用户的特定感官知觉(例 如,“按下点击”、“松开点击”、“粗糙度”)时,除非另外陈述,否 则所生成的触觉输出对应于设备或其部件的物理位移,该物理位移将会生 成典型(或普通)用户的所述感官知觉。
应当理解,设备200仅仅是便携式多功能设备的一个示例,并且设备 200任选地具有比所示出的部件更多或更少的部件,任选地组合两个或更多 个部件,或者任选地具有这些部件的不同配置或布置。图2A中所示的各种 部件以硬件、软件、或硬件与软件两者的组合来实现,包括一个或多个信 号处理电路和/或专用集成电路。
存储器202包括一个或多个计算机可读存储介质。这些计算机可读存 储介质例如为有形的和非暂态的。存储器202包括高速随机存取存储器, 并且还包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器 设备或其他非易失性固态存储器设备。存储器控制器222控制设备200的 其他部件访问存储器202。
在一些示例中,存储器202的非暂态计算机可读存储介质用于存储指 令(例如,用于执行下文描述的过程的各方面)以供指令执行系统、装置 或设备诸如基于计算机的系统、包含处理器的系统或可从指令执行系统、 装置或设备取出指令并执行指令的其他系统使用或与其结合使用。在其他 示例中,指令(例如,用于执行下文描述的过程的各方面)存储在服务器 系统108的非暂态计算机可读存储介质(未示出)上,或在存储器202的 非暂态计算机可读存储介质与服务器系统108的非暂态计算机可读存储介 质之间划分。
外围设备接口218用于将设备的输入和输出外围设备耦接到CPU 220 和存储器202。所述一个或多个处理器220运行或执行存储器202中所存储 的各种软件程序和/或指令集以执行设备200的各种功能并处理数据。在一 些实施方案中,外围设备接口218、CPU220和存储器控制器222在单个芯 片诸如芯片204上实现。在一些其他实施方案中,它们在独立的芯片上实 现。
RF(射频)电路208接收和发送也被称作电磁信号的RF信号。RF电 路208将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁 信号与通信网络和其他通信设备进行通信。RF电路208任选地包括用于执 行这些功能的熟知的电路,包括但不限于天线系统、RF收发器、一个或多 个放大器、调谐器、一个或多个振荡器、数字信号处理器、编解码芯片 组、用户身份模块(SIM)卡、存储器等等。RF电路208任选地通过无线通 信来与网络和其他设备进行通信,这些网络为诸如互联网(也被称为万维 网(WWW))、内联网和/或无线网络(诸如,蜂窝电话网络、无线局域网 (LAN)和/或城域网(MAN))。RF电路208任选地包括用于检测近场通信 (NFC)场的熟知的电路,诸如通过近程通信无线电部件来进行检测。无线通 信任选地使用多种通信标准、协议和技术中的任一种,包括但不限于全球 移动通信系统(GSM)、增强型数据GSM环境(EDGE)、高速下行链路分组接 入(HSDPA)、高速上行链路分组接入(HSUPA)、演进、纯数据(EV-DO)、 HSPA、HSPA+、双小区HSPA(DC-HSPDA)、长期演进(LTE)、近场通信 (NFC)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址 (TDMA)、蓝牙、蓝牙低功耗(BTLE)、无线保真(Wi-Fi)(例如,IEEE 802.11a、IEEE 802.11b、IEEE802.11g、IEEE 802.11n和/或IEEE 802.11ac)、互联网协议语音(VoIP)、Wi-MAX、电子邮件协议(例如,互 联网消息访问协议(IMAP)和/或邮局协议(POP))、即时消息(例如,可扩 展消息处理和存在协议(XMPP)、用于即时消息和存在利用扩展的会话发起 协议(SIMPLE)、即时消息和存在服务(IMPS))和/或短消息服务(SMS),或 者任何其他适当的通信协议,包括在本文档提交日期时尚未开发出的通信 协议。
音频电路210、扬声器211和麦克风213提供用户与设备200之间的音 频接口。音频电路210从外围设备接口218接收音频数据,将音频数据转 换为电信号,并将电信号传输到扬声器211。扬声器211将电信号转换为人 类可听到的声波。音频电路210还接收由麦克风213从声波转换的电信 号。音频电路210将电信号转换为音频数据,并且将音频数据传输到外围 设备接口218以用于处理。音频数据通过外围设备接口218检索自和/或传 输至存储器202和/或RF电路208。在一些实施方案中,音频电路210还包 括耳麦插孔(例如,图3中的312)。耳麦插孔提供音频电路210和可移除 的音频输入/输出外围设备之间的接口,该可移除的音频输入/输出外围设备 诸如仅输出的耳机或者具有输出(例如,单耳耳机或双耳耳机)和输入 (例如,麦克风)两者的耳麦。
I/O子系统206将设备200上的输入/输出外围设备诸如触摸屏212和 其他输入控制设备216耦接到外围设备接口218。I/O子系统206任选地包 括显示控制器256、光学传感器控制器258、强度传感器控制器259、触觉 反馈控制器261,以及用于其他输入或控制设备的一个或多个输入控制器 260。该一个或多个输入控制器260从其他输入控制设备216接收电信号/将 电信号发送到其他输入控制设备116。其他输入控制设备216任选地包括物 理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、 点击式转盘等等。在一些另选实施方案中,输入控制器260任选地耦接至 以下各项中的任一者(或不耦接至以下各项中的任一者):键盘、红外线 端口、USB端口以及指针设备诸如鼠标。一个或多个按钮(例如,图3中 的308)任选地包括用于扬声器211和/或麦克风213的音量控制的增大/减 小按钮。一个或多个按钮任选地包括下压按钮(例如,图3中的306)。
快速按下下压按钮可解除触摸屏212的锁定或者开始使用触摸屏上的 手势来对设备进行解锁的过程,如在2005年12月23日提交的标题为 “Unlocking a Device byPerforming Gestures on an Unlock Image”的美国专 利申请11/322,549,美国专利7,657,849中所述,上述美国专利申请据此全 文以引用的方式并入本文。较长地按下下压按钮(例如,306)使设备200 开机或关机。用户能够自定义一个或多个按钮的功能。触摸屏212用于实 现虚拟按钮或软按钮以及一个或多个软键盘。
触敏显示器212提供设备和用户之间的输入接口和输出接口。显示控 制器256从触摸屏212接收电信号和/或将电信号发送至触摸屏112。触摸 屏212向用户显示视觉输出。视觉输出包括图形、文本、图标、视频及其 任何组合(统称为“图形”)。在一些实施方案中,一些视觉输出或全部 视觉输出对应于用户界面对象。
触摸屏212具有基于触觉和/或触感接触来接受来自用户的输入的触敏 表面、传感器或传感器组。触摸屏212和显示控制器256(与存储器202中 的任何相关联的模块和/或指令集一起)检测触摸屏212上的接触(和该接 触的任何移动或中断),并且将所检测到的接触转换为与被显示在触摸屏 212上的用户界面对象(例如,一个或多个软键、图标、网页或图像)的交 互。在一个示例性实施方案中,触摸屏212与用户之间的接触点对应于用 户的手指。
触摸屏212使用LCD(液晶显示器)技术、LPD(发光聚合物显示 器)技术或LED(发光二极管)技术,但在其他实施方案中可使用其他显 示技术。触摸屏212和显示控制器256使用目前已知或以后将开发的多种 触摸感测技术中的任何技术,以及其他接近传感器阵列或用于确定与触摸 屏212接触的一个或多个点的其他元件来检测接触及其任何移动或中断, 所述多种触摸感测技术包括但不限于电容式、电阻式、红外和表面声波技 术。在一个示例性实施方案中,使用投射式互电容感测技术,诸如在来自 Apple Inc.(Cupertino,California)的和iPod中使用的技术。
触摸屏212的一些实施方案中的触敏显示器类似于以下美国专利中所 述的多点触敏触控板,所述美国专利为:6,323,846(Westerman等人)、 6,570,557(Westerman等人)和/或6,677,932(Westerman);和/或美国专利 公开2002/0015024A1,这些专利文献中的每个专利文献据此全文以引用方 式并入本文。然而,触摸屏212显示来自设备200的视觉输出,而触敏触 摸板不提供视觉输出。
触摸屏212的一些实施方案中的触敏显示器如在以下专利申请中所描 述:(1)于2006年5月2日提交的标题为“Multipoint Touch Surface Controller”的美国专利申请11/381,313;(2)于2004年5月6日提交的标题 为“Multipoint Touchscreen”的美国专利申请10/840,862;(3)于2004年7 月30日提交的标题为“Gestures For Touch SensitiveInput Devices”的美国 专利申请10/903,964;(4)于2005年1月31日提交的标题为“Gestures For Touch Sensitive Input Devices”的美国专利申请11/048,264;(5)于2005年1 月18日提交的标题为“Mode-Based Graphical User Interfaces For TouchSensitive Input Devices”的美国专利申请11/038,590;(6)于2005年9月16 日提交的标题为“Virtual Input Device Placement On A Touch Screen User Interface”的美国专利申请11/228,758;(7)于2005年9月16日提交的标题 为“Operation Of A Computer WithA Touch Screen Interface”的美国专利申 请11/228,700;(8)于2005年9月16日提交的标题为“Activating Virtual Keys Of A Touch-Screen Virtual Keyboard”的美国专利申请11/228,737;和 (9)于2006年3月3日提交的标题为“Multi-Functional Hand-HeldDevice” 的美国专利申请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,“Proximity Detector InHandheld Device”; 11/240,788,“Proximity Detector In Handheld Device”;11/620,702, “Using Ambient Light Sensor To Augment Proximity Sensor Output”; 11/586,862,“Automated Response To And Sensing Of User Activity In Portable Devices”;以及11/638,251,“Methods And Systems For Automatic Configuration OfPeripherals”,这些美国专利申请据此全文以引用方式并入 本文。在一些实施方案中,当多功能设备被置于用户的耳朵附近时(例 如,当用户正在进行电话呼叫时),接近传感器关闭并且禁用触摸屏212。
设备200任选地还包括一个或多个触觉输出发生器267。图2A示出了 耦接到I/O子系统206中的触觉反馈控制器261的触觉输出发生器。触觉输 出发生器267任选地包括一个或多个电声设备,诸如扬声器或其他音频部 件;和/或将能量转换成线性运动的机电设备,诸如马达、螺线管、电活性 聚合器、压电致动器、静电致动器或其他触觉输出生成部件(例如,将电 信号转换成设备上的触觉输出的部件)。接触强度传感器265从触觉反馈 模块233接收触觉反馈生成指令,并且在设备200上生成能够由设备200 的用户感觉到的触觉输出。在一些实施方案中,至少一个触觉输出发生器 与触敏表面(例如,触敏显示器系统212)并置排列或邻近,并且任选地通 过竖直地(例如,向设备200的表面内/外)或侧向地(例如,在与设备 200的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一 些实施方案中,至少一个触觉输出发生器传感器位于设备200的与位于设 备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等) 耦接。在一些实施方案中,外部端口是与(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、光学传感器229、其他输入控制设备216等)接受声音输 入(例如,语音输入)、文本输入、触摸输入和/或手势输入。数字助理客 户端模块229还能够通过便携式多功能设备200的各种输出接口(例如, 扬声器211、触敏显示器系统212、触觉输出生成器267等)提供音频形式 的输出(例如,语音输出)、视觉形式的输出和/或触觉形式的输出。例 如,将输出提供为语音、声音、警报、文本消息、菜单、图形、视频、动 画、振动和/或以上两者或更多者的组合。在操作期间,数字助理客户端模 块229使用RF电路208与DA服务器106通信。
用户数据与模型231包括与用户相关联的各种数据(例如,用户特定 的词汇数据、用户偏好数据、用户指定的名称发音、来自用户电子通讯录 的数据、待办事项、购物清单等)以提供数字助理的客户端侧功能。此 外,用户数据与模型231包括用于处理用户输入并且确定用户意图的各种 模型(例如,语音识别模型、统计语言模型、自然语言处理模型、知识本 体、任务流模型、服务模型等)。
在一些示例中,数字助理客户端模块229利用便携式多功能设备200 的各种传感器、子系统和外围设备来从便携式多功能设备200的周围环境 采集附加信息,以建立与用户、当前用户交互和/或当前用户输入相关联的 上下文。在一些示例中,数字助理客户端模块229将上下文信息或其子集 与用户输入一起提供至DA服务器106以帮助推断用户意图。在一些示例 中,数字助理还使用上下文信息来确定如何准备输出并将其传送给用户。 上下文信息被称为上下文数据。
在一些示例中,伴随用户输入的上下文信息包括传感器信息,例如照 明、环境噪声、环境温度、周围环境的图像或视频等。在一些示例中,上 下文信息还可包括设备的物理状态,例如设备取向、设备位置、设备温 度、功率电平、速度、加速度、运动模式、蜂窝信号强度等。在一些示例 中,将与DA服务器106的软件状态相关的信息,例如便携式多功能设备200的运行过程、已安装程序、过去和当前的网络活动、后台服务、错误日 志、资源使用等,作为与用户输入相关联的上下文信息提供至DA服务器 106。
在一些示例中,数字助理客户端模块229响应于来自DA服务器106 的请求而选择性地提供存储在便携式多功能设备200上的信息(例如,用 户数据231)。在一些示例中,数字助理客户端模块229还在DA服务器 106请求时引出来自用户经由自然语言对话或其他用户接口的附加输入。数 字助理客户端模块229将该附加输入传送至DA服务器106,以帮助DA服 务器106进行意图推断和/或满足在用户请求中表达的用户意图。
下文参考图7A至图7C更详细地描述数字助理。应当认识到,数字助 理客户端模块229可包括下文所述的数字助理模块726的任何数量的子模 块。
应用程序236包括以下模块(或指令集)或者其子集或超集:
·联系人模块237(有时称为通讯录或联系人列表);
·电话模块238;
·视频会议模块239;
·电子邮件客户端模块240;
·即时消息(IM)模块241;
·健身支持模块242;
·用于静止图像和/或视频图像的相机模块243;
·图像管理模块244;
·视频播放器模块;
·音乐播放器模块;
·浏览器模块247;
·日历模块248;
·桌面小程序模块249,其在一些示例中包括以下各项中的一者或多 者:天气桌面小程序249-1、股票桌面小程序249-2、计算器桌面小 程序249-3、闹钟桌面小程序249-4、词典桌面小程序249-5和用户 获取的其他桌面小程序,以及用户创建的桌面小程序249-6;
·用于制作用户创建的桌面小程序249-6的桌面小程序创建器模块 250;
·搜索模块251;
·视频和音乐播放器模块252,其合并视频播放器模块和音乐播放器 模块;
·记事本模块253;
·地图模块254;和/或
·在线视频模块255。
存储在存储器202中的其他应用程序236的示例包括其他文字处理应 用程序、其他图像编辑应用程序、绘图应用程序、呈现应用程序、支持 JAVA的应用程序、加密、数字版权管理、声音识别和声音复制。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232 和文本输入模块234,联系人模块237用于管理通讯录或联系人列表(例 如,被存储在存储器202或存储器470中的联系人模块237的应用程序内 部状态292中),包括:将一个或多个姓名添加到通讯录;从通讯录删除 一个或多个姓名;使一个或多个电话号码、一个或多个电子邮件地址、一个或多个物理地址或其他信息与姓名相关联;使图像与姓名相关联;对姓 名进行分类和排序;提供电话号码或电子邮件地址以发起和/或促进通过电 话238、视频会议模块239、电子邮件240或IM 241进行的通信等。
结合RF电路208、音频电路210、扬声器211、麦克风213、触摸屏 212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块 234,电话模块238用于输入对应于电话号码的字符序列、访问联系人模块 237中的一个或多个电话号码、修改已经输入的电话号码、拨打相应的电话 号码、进行会话以及当会话完成时断开或挂断。如上所述,无线通信使用 多种通信标准、协议和技术中的任一种。
结合RF电路208、音频电路210、扬声器211、麦克风213、触摸屏 212、显示控制器256、光学传感器264、光学传感器控制器258、接触/运 动模块230、图形模块232、文本输入模块234、联系人模块237和电话模 块238,视频会议模块239包括根据用户指令来发起、进行和终止用户与一 个或多个其他参与方之间的视频会议的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块 230、图形模块232和文本输入模块234,电子邮件客户端模块240包括响 应于用户指令来创建、发送、接收和管理电子邮件的可执行指令。结合图 像管理模块244,电子邮件客户端模块240使得非常容易创建和发送具有由 相机模块243拍摄的静态图像或视频图像的电子邮件。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块 230、图形模块232和文本输入模块234,即时消息模块241包括用于以下 操作的可执行指令:输入与即时消息对应的字符序列、修改先前输入的字 符、传输相应即时消息(例如,使用短消息服务(SMS)或多媒体消息服务 (MMS)协议以用于基于电话的即时消息或者使用XMPP、SIMPLE、或 IMPS以用于基于互联网的即时消息)、接收即时消息以及查看所接收的即 时消息。在一些实施方案中,所传输和/或接收的即时消息包括图形、照 片、音频文件、视频文件和/或如MMS和/或增强型消息服务(EMS)中支持 的其他附件。如本文所用,“即时消息”是指基于电话的消息(例如,使 用SMS或MMS发送的消息)和基于互联网的消息(例如,使用XMPP、 SIMPLE或IMPS发送的消息)两者。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块 230、图形模块232、文本输入模块234、GPS模块235、地图模块254和音 乐播放器模块,健身支持模块242包括用于以下操作的可执行指令:创建 健身(例如,具有时间、距离和/或卡路里燃烧目标);与健身传感器(移 动设备)进行通信;接收健身传感器数据;校准用于监测健身的传感器; 选择并播放健身音乐;以及显示、存储和传输健身数据。
结合触摸屏212、显示控制器256、一个或多个光学传感器264、光学 传感器控制器258、接触/运动模块230、图形模块232和图像管理模块 244,相机模块243包括用于以下操作的可执行指令:捕获静态图像或视频 (包括视频流)并且将它们存储到存储器202中、修改静态图像或视频的 特征,或从存储器202删除静态图像或视频。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块 232、文本输入模块234、和相机模块243,图像管理模块244包括用于排 列、修改(例如,编辑)、或以其他方式操控、加标签、删除、呈现(例 如,在数字幻灯片或相册中)、以及存储静态图像和/或视频图像的可执行 指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块 230、图形模块232和文本输入模块234,浏览器模块247包括用于根据用 户指令来浏览互联网(包括搜索、链接至、接收和显示网页或其部分,以 及链接至网页的附件和其他文件)的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块 230、图形模块232、文本输入模块234、电子邮件客户端模块240和浏览 器模块247,日历模块248包括用于根据用户指令来创建、显示、修改和存 储日历以及与日历相关联的数据(例如,日历条目、待办事项等)的可执 行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块 230、图形模块232、文本输入模块234和浏览器模块247,桌面小程序模 块249是可由用户下载并使用的微型应用程序(例如,天气桌面小程序 249-1、股市桌面小程序249-2、计算器桌面小程序249-3、闹钟桌面小程序 249-4和词典桌面小程序249-5)或由用户创建的微型应用程序(例如,用 户创建的桌面小程序249-6)。在一些实施方案中,桌面小程序包括HTML (超文本标记语言)文件、CSS(层叠样式表)文件和JavaScript文件。在 一些实施方案中,桌面小程序包括XML(可扩展标记语言)文件和 JavaScript文件(例如,Yahoo!桌面小程序)。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块 230、图形模块232、文本输入模块234和浏览器模块247,桌面小程序创 建器模块250被用户用于创建桌面小程序(例如,使网页的用户指定部分 变成桌面小程序)。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232 和文本输入模块234,搜索模块251包括用于根据用户指令来搜索存储器 202中的匹配一个或多个搜索条件(例如,一个或多个用户指定的搜索词) 的文本、音乐、声音、图像、视频和/或其他文件的可执行指令。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块 232、音频电路系统210、扬声器211、RF电路系统208和浏览器模块 247,视频和音乐播放器模块252包括允许用户下载和回放以一种或多种文 件格式(诸如MP3或AAC文件)存储的所记录的音乐和其他声音文件的 可执行指令,以及用于显示、呈现或以其他方式回放视频(例如,在触摸 屏212上或在经由外部端口224连接的外部显示器上)的可执行指令。在 一些实施方案中,设备200任选地包括MP3播放器诸如iPod(Apple Inc.的 商标)的功能。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232 和文本输入模块234,记事本模块253包括根据用户指令来创建和管理记事 本、待办事项等的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块 230、图形模块232、文本输入模块234、GPS模块235和浏览器模块247, 地图模块254用于根据用户指令接收、显示、修改和存储地图以及与地图 相关联的数据(例如,驾驶方向、与特定位置处或附近的商店及其他兴趣 点有关的数据,以及其他基于位置的数据)。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块 232、音频电路210、扬声器211、RF电路208、文本输入模块234、电子 邮件客户端模块240和浏览器模块247,在线视频模块255包括允许用户访 问、浏览、接收(例如,通过流式传输和/或下载)、回放(例如,在触摸 屏上或经由外部端口224在所连接的外部显示器上)、发送具有至特定在线视频的链接的电子邮件,以及以其他方式管理一种或多种文件格式(诸 如,H.264)的在线视频的指令。在一些实施方案中,使用即时消息模块 241而不是电子邮件客户端模块240来发送特定在线视频的链接。在线视频 应用程序的其他描述可在于2007年6月20日提交的名称为“Portable Multifunction Device,Method,and Graphical User Interface forPlaying Online Videos”的美国临时专利申请60/936,562和于2007年12月31日提交的名称为“Portable Multifunction Device,Method,and Graphical User Interface forPlaying Online Videos”的美国专利申请11/968,067中找到,这两个专利申 请的内容据此全文以引用方式并入本文。
上述每个模块和应用程序对应于用于执行上述一种或多种功能以及在 本专利申请中所述的方法(例如,本文所述的计算机实现的方法和其他信 息处理方法)的可执行指令集。这些模块(例如,指令集)不必被实现为 独立的软件程序、过程或模块,并因此在各种实施方案中可组合或以其他 方式重新布置这些模块的各种子集。例如,视频播放器模块可与音乐播放 器模块组合成单个模块(例如,图2A中的视频和音乐播放器模块252)。 在一些实施方案中,存储器202存储上述模块和数据结构的子集。此外, 存储器202存储上文未描述的另外的模块和数据结构。
在一些实施方案中,设备200是该设备上的预定义的一组功能的操作 唯一地通过触摸屏和/或触摸板来执行的设备。通过使用触摸屏和/或触控板 作为用于设备200的操作的主要输入控制设备,减少设备200上的物理输 入控制设备(诸如下压按钮、拨盘等)的数量。
唯一地通过触摸屏和/或触控板来执行的预定义的一组功能任选地包括 在用户界面之间的导航。在一些实施方案中,当用户触摸触摸板时,将设 备200从设备200上显示的任何用户界面导航到主菜单、home菜单或根菜 单。在此类实施方案中,使用触摸板来实现“菜单按钮”。在一些其他实 施方案中,菜单按钮是物理下压按钮或者其他物理输入控制设备,而不是 触摸板。
图2B是示出根据一些实施方案的用于事件处理的示例性部件的框图。 在一些实施方案中,存储器202(图2A)或存储器470(图4)包括事件分 类器270(例如,在操作系统226中)以及相应的应用程序236-1(例如, 前述应用程序237-251、255、480-490中的任一个应用程序)。
事件分类器270接收事件信息并确定要将事件信息递送到的应用程序 236-1和应用程序236-1的应用程序视图291。事件分类器270包括事件监 视器271和事件分配器模块274。在一些实施方案中,应用程序236-1包括 应用程序内部状态292,该应用程序内部状态指示当应用程序是活动的或正 在执行时被显示在触敏显示器212上的一个或多个当前应用程序视图。在 一些实施方案中,设备/全局内部状态257被事件分类器270用来确定哪个(哪些)应用程序当前是活动的,并且应用程序内部状态292被事件分类 器270用来确定要将事件信息递送到的应用程序视图291。
在一些实施方案中,应用程序内部状态292包括附加信息,诸如以下 各项中的一者或多者:当应用程序236-1恢复执行时将被使用的恢复信息、 指示正被应用程序236-1显示的信息或准备好用于被应用程序236-1显示的 信息的用户界面状态信息、用于使得用户能够返回到应用程序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、DDRRAM或其他随机存取固态存储器设备,并且任选地包括非易失性存储器诸 如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易 失性固态存储设备。存储器470任选地包括远离CPU 410定位的一个或多 个存储设备。在一些实施方案中,存储器470存储与便携式多功能设备200 (图2A)的存储器202中存储的程序、模块和数据结构类似的程序、模块 和数据结构或其子集。此外,存储器470任选地存储在便携式多功能设备200的存储器202中不存在的附加程序、模块和数据结构。例如,设备400 的存储器470任选地存储绘图模块480、呈现模块482、文字处理模块 484、网站创建模块486、盘编辑模块488、和/或电子表格模块490,而便 携式多功能设备200(图2A)的存储器202任选地不存储这些模块。
图4中的上述元件中的每一者在一些示例中存储在一个或多个先前提 到的存储器设备中。上述模块中的每个模块对应于用于执行上述功能的指 令集。上述模块或程序(例如,指令集)不必被实现为独立的软件程序、 过程或模块,因此这些模块的各种子集在各种实施方案中组合或以其他方 式重新布置。在一些实施方案中,存储器470存储上述模块和数据结构的 子集。此外,存储器470存储上文未描述的另外的模块和数据结构。
现在将注意力转到可在例如便携式多功能设备200上实现的用户界面 的实施方案。
图5A示出了根据一些实施方案的便携式多功能设备200上的应用程序 菜单的示例性用户界面。类似的用户界面在设备400上实现。在一些实施 方案中,用户界面500包括以下元件或者其子集或超集:
一种或多种无线通信(诸如蜂窝信号和Wi-Fi信号)的一个或多个信 号强度指示器502;
·时间504;
·蓝牙指示符505;
·电池状态指示符506;
·具有常用应用程序的图标的托盘508,所述图标诸如:
○电话模块238的被标记为“电话”的图标516,该图标516任选 地包括未接来电或语音留言的数量的指示符514;
○电子邮件客户端模块240的被标记为“邮件”的图标518,该图 标518任选地包括未读电子邮件的数量的指示符510;
○浏览器模块247的被标记为“浏览器”的图标520;以及
○视频和音乐播放器模块252(也称为iPod(Apple Inc.的商标)模 块252)的被标记为“iPod”的图标522;以及
·其他应用程序的图标,诸如:
○IM模块241的被标记为“消息”的图标524;
○日历模块248的被标记为“日历”的图标526;
○图像管理模块244的被标记为“照片”的图标528;
○相机模块243的被标记为“相机”的图标530;
○在线视频模块255的被标记为“在线视频”的图标532;
○股票桌面小程序249-2的被标记为“股票”的图标534;
○地图模块254的被标记为“地图”的图标536;
○天气桌面小程序249-1的被标记为“天气”的图标538;
○闹钟桌面小程序249-4的被标记为“时钟”的图标540;
○健身支持模块242的被标记为“健身支持”的图标542;
○记事本模块253的被标记为“记事本”的图标544;和
○用于设置应用程序或模块的被标记为“设置”的图标546,该图 标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 DisplayingUser Interface Objects Corresponding to an Application”的国际 专利申请序列号PCT/US2013/040061,以及于2013年11月11日提交的标 题为“Device,Method,andGraphical User Interface for Transitioning Between Touch Input to DisplayOutput Relationships”的国际专利申请序列号PCT/US2013/069483,这两个专利申请中的每个专利申请据此全文以引用方 式并入本文。
在一些实施方案中,设备600具有一个或多个输入机构606和608。输 入机构606和608(如果包括的话)是物理形式的。物理输入机构的示例包 括下压按钮和可旋转机构。在一些实施方案中,设备600具有一个或多个 附接机构。此类附接机构(如果包括的话)可允许将设备600与例如帽 子、眼镜、耳环、项链、衬衣、夹克、手镯、表带、手链、裤子、皮带、 鞋子、钱包、背包等附接。这些附接机构允许用户穿戴设备600。
图6B示出了示例性个人电子设备600。在一些实施方案中,设备600 包括相对于图2A、图2B和图4所述的部件中的一些或全部部件。设备600 具有总线612,该总线将I/O部分614与一个或多个计算机处理器616和存 储器618操作性地耦接。I/O部分614被连接到显示器604,该显示器可具 有触敏部件622并且任选地还具有触摸强度敏感部件624。此外,I/O部分 614与通信单元630连接,以用于使用Wi-Fi、蓝牙、近场通信(NFC)、蜂 窝和/或其他无线通信技术来接收应用程序和操作系统数据。设备600包括 输入机构606和/或608。例如,输入机构606是可旋转输入设备或者可按 压输入设备以及可旋转输入设备。在一些示例中,输入机构608是按钮。
在一些示例中,输入机构608是麦克风。个人电子设备600包括例如 各种传感器,诸如GPS传感器632、加速度计634、定向传感器640(例 如,罗盘)、陀螺仪636、运动传感器638和/或其组合,所有这些设备均 可操作性连接到I/O部分614。
个人电子设备600的存储器618包括用于存储计算机可执行指令的一 个或多个非暂态计算机可读存储介质,该指令当由一个或多个计算机处理 器616执行时例如使得计算机处理器执行上述技术和过程。该计算机可执 行指令也例如在任何非暂态计算机可读存储介质内进行存储和/或传送,以 供指令执行系统、装置或设备诸如基于计算机的系统、包含处理器的系统 或可从指令执行系统、装置或设备获取指令并执行指令的其他系统使用或 与其结合。个人电子设备600不限于图6B的部件和配置,而是可包括多种 配置中的其他部件或附加部件。
如本文所用,术语“示能表示”是指在设备200、400和/或600(图 2、图4和图6)的显示屏上显示的用户交互式图形用户界面对象。例如, 图像(例如,图标)、按钮和文本(例如,超链接)各自构成示能表示。
如本文所用,术语“焦点选择器”是指用于指示用户正与之进行交互 的用户界面的当前部分的输入元件。在包括光标或其他位置标记的一些具 体实施中,光标充当“焦点选择器”,使得当光标在特定用户界面元素 (例如,按钮、窗口、滑块或其他用户界面元素)上方时在触敏表面(例 如,图4中的触摸板455或图5B中的触敏表面551)上检测到输入(例如,按压输入)的情况下,该特定用户界面元素根据所检测到的输入而被 调节。在包括能够实现与触摸屏显示器上的用户界面元素的直接交互的触 摸屏显示器(例如,图2A中的触敏显示器系统212或图5A中的触摸屏 212)的一些具体实施中,触摸屏上的所检测到的接触充当“焦点选择 器”,使得当在触摸屏显示器上在特定用户界面元素(例如,按钮、窗 口、滑块或其他用户界面元素)的位置处检测到输入(例如,由接触进行 的按压输入)时,该特定用户界面元素根据所检测到的输入而被调节。在 一些具体实施中,焦点从用户界面的一个区域移动到用户界面的另一个区 域,而无需光标的对应移动或触摸屏显示器上的接触的移动(例如,通过 使用制表键或箭头键将焦点从一个按钮移动到另一个按钮);在这些具体实施中,焦点选择器根据用户界面的不同区域之间的焦点移动而移动。不 考虑焦点选择器所采取的具体形式,焦点选择器通常是由用户控制的以便 递送与用户界面的用户预期的交互(例如,通过向设备指示用户界面的用 户期望与其进行交互的元素)的用户界面元素(或触摸屏显示器上的接 触)。例如,在触敏表面(例如,触摸板或触摸屏)上检测到按压输入 时,焦点选择器(例如,光标、接触或选择框)在相应按钮上方的位置将 指示用户期望激活相应按钮(而不是设备显示器上示出的其他用户界面元 素)。
如说明书和权利要求中所使用的,接触的“特征强度”这一术语是指 基于接触的一个或多个强度的接触的特征。在一些实施方案中,特征强度 基于多个强度样本。特征强度任选地基于相对于预定义事件(例如,在检 测到接触之后,在检测到接触抬离之前,在检测到接触开始移动之前或之 后,在检测到接触结束之前,在检测到接触的强度增大之前或之后和/或在 检测到接触的强度减小之前或之后)而言在预先确定的时间段(例如,0.05秒、0.1秒、0.2秒、0.5秒、1秒、2秒、5秒、10秒)期间采集的预定义数 量的强度样本或一组强度样本。接触的特征强度任选地基于以下各项中的 一者或多者:接触强度的最大值、接触强度的均值、接触强度的平均值、 接触强度的前10%处的值、接触强度的半最大值、接触强度的90%最大值 等。在一些实施方案中,在确定特征强度时使用接触的持续时间(例如,在特征强度是接触的强度在时间上的平均值时)。在一些实施方案中,将 特征强度与一组一个或多个强度阈值进行比较,以确定用户是否已执行操 作。例如,该组一个或多个强度阈值包括第一强度阈值和第二强度阈值。 在该示例中,特征强度未超过第一阈值的接触导致第一操作,特征强度超 过第一强度阈值但未超过第二强度阈值的接触导致第二操作,而特征强度 超过第二阈值的接触导致第三操作。在一些实施方案中,使用特征强度与 一个或多个阈值之间的比较来确定是否要执行一个或多个操作(例如,是 执行相应操作还是放弃执行相应操作),而不是用于确定执行第一操作还 是第二操作。
在一些实施方案中,识别手势的一部分以用于确定特征强度。例如, 触敏表面接收连续的轻扫接触,该连续的轻扫接触从起始位置过渡并到达 结束位置,在该结束位置处,接触的强度增加。在该示例中,接触在结束 位置处的特征强度仅基于连续轻扫接触的一部分,而不是整个轻扫接触 (例如,仅轻扫接触在结束位置处的部分)。在一些实施方案中,在确定 接触的特征强度之前向轻扫手势的强度应用平滑化算法。例如,平滑化算 法任选地包括以下各项中的一种或多种:不加权滑动平均平滑化算法、三 角平滑化算法、中值滤波器平滑化算法和/或指数平滑化算法。在一些情况 下,这些平滑化算法消除了轻扫接触的强度中的窄的尖峰或凹陷,以实现 确定特征强度的目的。
相对于一个或多个强度阈值诸如接触检测强度阈值、轻按压强度阈 值、深按压强度阈值和/或一个或多个其他强度阈值来表征触敏表面上的接 触的强度。在一些实施方案中,轻按压强度阈值对应于这样的强度:在该 强度下设备将执行通常与点击物理鼠标或触摸板的按钮相关联的操作。在 一些实施方案中,深按压强度阈值对应于这样的强度:在该强度下设备将 执行与通常与点击物理鼠标或触控板的按钮相关联的操作不同的操作。在一些实施方案中,当检测到特征强度低于轻按压强度阈值(例如,并且高 于标称接触检测强度阈值,比标称接触检测强度阈值低的接触不再被检测 到)的接触时,设备将根据接触在触敏表面上的移动来移动焦点选择器, 而不执行与轻按压强度阈值或深按压强度阈值相关联的操作。一般来讲, 除非另有陈述,否则这些强度阈值在不同组的用户界面附图之间是一致 的。
接触特征强度从低于轻按压强度阈值的强度增大到介于轻按压强度阈 值与深按压强度阈值之间的强度有时被称为“轻按压”输入。接触特征强 度从低于深按压强度阈值的强度增大到高于深按压强度阈值的强度有时被 称为“深按压”输入。接触特征强度从低于接触检测强度阈值的强度增大 到介于接触检测强度阈值与轻按压强度阈值之间的强度有时被称为检测到 触摸表面上的接触。接触特征强度从高于接触检测强度阈值的强度减小到 低于接触检测强度阈值的强度有时被称为检测到接触从触摸表面抬离。在 一些实施方案中,接触检测强度阈值为零。在一些实施方案中,接触检测 强度阈值大于零。
在本文中所述的一些实施方案中,响应于检测到包括相应按压输入的 手势或响应于检测到利用相应接触(或多个接触)执行的相应按压输入来 执行一个或多个操作,其中至少部分地基于检测到该接触(或多个接触) 的强度增大到高于按压输入强度阈值而检测到相应按压输入。在一些实施 方案中,响应于检测到相应接触的强度增大到高于按压输入强度阈值(例 如,相应按压输入的“向下冲程”)来执行相应操作。在一些实施方案 中,按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接 触的强度随后减小到低于按压输入强度阈值,并且响应于检测到相应接触 的强度随后减小到低于按压输入阈值(例如,相应按压输入的“向上冲 程”)来执行相应操作。
在一些实施方案中,设备采用强度滞后以避免有时被称为“抖动”的 意外输入,其中设备限定或选择与按压输入强度阈值具有预定义关系的滞 后强度阈值(例如,滞后强度阈值比按压输入强度阈值低X个强度单位, 或滞后强度阈值是按压输入强度阈值的75%、90%或某个合理比例)。因 此,在一些实施方案中,按压输入包括相应接触的强度增大到高于按压输 入强度阈值以及该接触的强度随后减小到低于对应于按压输入强度阈值的 滞后强度阈值,并且响应于检测到相应接触的强度随后减小到低于滞后强 度阈值(例如,相应按压输入的“向上冲程”)来执行相应操作。类似 地,在一些实施方案中,仅在设备检测到接触强度从等于或低于滞后强度 阈值的强度增大到等于或高于按压输入强度阈值的强度并且任选地接触强 度随后减小到等于或低于滞后强度的强度时才检测到按压输入,并且响应 于检测到按压输入(例如,根据环境,接触强度增大或接触强度减小)来 执行相应操作。
为了容易解释,任选地,响应于检测到以下各种情况中的任一种情况 而触发对响应于与按压输入强度阈值相关联的按压输入或响应于包括按压 输入的手势而执行的操作的描述:接触强度增大到高于按压输入强度阈 值、接触强度从低于滞后强度阈值的强度增大到高于按压输入强度阈值的 强度、接触强度减小到低于按压输入强度阈值、和/或接触强度减小到低于 与按压输入强度阈值对应的滞后强度阈值。另外,在将操作描述为响应于检测到接触的强度减小到低于按压输入强度阈值而执行的示例中,任选地 响应于检测到接触的强度减小到低于对应于并且小于按压输入强度阈值的 滞后强度阈值来执行操作。
3.数字助理系统
图7A示出根据各种示例的数字助理系统700的框图。在一些示例中, 数字助理系统700在独立式计算机系统上实现。在一些示例中,数字助理 系统700跨多个计算机分布。在一些示例中,数字助理的模块和功能中的 一些被划分成服务器部分和客户端部分,其中客户端部分位于一个或多个 用户设备(例如,设备104、设备122、设备200、设备400或设备600) 上并通过一个或多个网络与服务器部分(例如,服务器系统108)通信,例 如,如图1中所示。在一些示例中,数字助理系统700是图1中所示的服 务器系统108(和/或DA服务器106)的具体实施。应当指出,数字助理系 统700仅为数字助理系统的一个示例,且该数字助理系统700具有比所示 更多或更少的部件、组合两个或更多个部件,或者可具有部件的不同配置 或布局。图7A中所示的各种部件在硬件、用于由一个或多个处理器执行的 软件指令、固件(包括一个或多个信号处理集成电路和/或专用集成电 路),或其组合中实现。
数字助理系统700包括存储器702、输入/输出(I/O)接口706、网络通 信接口708,以及一个或多个处理器704。这些部件可通过一条或多条通信 总线或信号线710彼此通信。
在一些示例中,存储器702包括非暂态计算机可读介质,诸如高速随 机存取存储器和/或非易失性计算机可读存储介质(例如,一个或多个磁盘 存储设备、闪存存储器设备或其他非易失性固态存储器设备)。
在一些示例中,I/O接口706将数字助理系统700的输入/输出设备716 诸如显示器、键盘、触摸屏和麦克风耦接至用户界面模块722。I/O接口 706,与用户界面模块722结合,接收用户输入(例如,语音输入、键盘输 入、触摸输入等)并相应地对这些输入进行处理。在一些示例中,例如, 当数字助理在独立式用户设备上实现时,数字助理系统700包括相对于图 2A、图4、图6A至图6B中各自的设备200、设备400或设备600所描述 的部件和I/O通信接口中的任一者。在一些示例中,数字助理系统700代表 数字助理具体实施的服务器部分,并且可通过位于用户设备(例如,设备 104、设备200、设备400或设备600)上的客户端侧部分与用户进行交 互。
在一些示例中,网络通信接口708包括一个或多个有线通信端口 712,以及/或者无线传输和接收电路714。一个或多个有线通信端口经由一 个或多个有线接口例如以太网、通用串行总线(USB)、火线等接收和发送通 信信号。无线电路714从通信网络及其他通信设备接收RF信号和/或光学 信号以及将RF信号和/或光学信号发送至通信网络及其他通信设备。无线 通信使用多种通信标准、协议和技术中的任一种,诸如GSM、EDGE、 CDMA、TDMA、蓝牙、Wi-Fi、VoIP、Wi-MAX、或任何其他合适的通信 协议。网络通信接口708使数字助理系统700通过网络,诸如互联网、内 联网和/或无线网络诸如蜂窝电话网络、无线局域网(LAN)和/或城域网 (MAN),与其他设备之间的通信成为可能。
在一些示例中,存储器702或存储器702的计算机可读存储介质存储 程序、模块、指令和数据结构,包括以下内容中的全部或其子集:操作系 统718、通信模块720、用户界面模块722、一个或多个应用程序724和数 字助理模块726。具体地讲,存储器702或存储器702的计算机可读存储介 质存储用于执行上述过程的指令。一个或多个处理器704执行这些程序、 模块和指令,并从数据结构读取数据或将数据写到数据结构。
操作系统718(例如,Darwin、RTXC、LINUX、UNIX、iOS、OS X、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理 一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种 软件组件和/或驱动器,并且有利于各种硬件、固件和软件组件之间的通 信。
通信模块720促成数字助理系统700与其他设备之间通过网络通信接 口708进行的通信。例如,通信模块720与电子设备诸如分别在图2A、图 4、图6A至图6B中所示的设备200,400或600的RF电路208通信。通信 模块720还包括各种部件,用于处理由无线电路714和/或有线通信端口 712所接收的数据。
用户界面模块722经由I/O接口706接收来自用户(例如,来自键 盘、触摸屏、指向设备、控制器和/或麦克风)的命令和/或输入,并在显示 器上生成用户界面对象。用户界面模块722还准备输出(例如,语音、声 音、动画、文本、图标、振动、触觉反馈、光照等)并将其经由I/O接口 706(例如,通过显示器、音频通道、扬声器、触控板等)传送给用户。
应用程序724包括被配置为由所述一个或多个处理器704执行的程序 和/或模块。例如,如果数字助理系统在独立式用户设备上实施,则应用程 序724包括用户应用程序,诸如游戏、日历应用程序、导航应用程序或邮 件应用程序。如果数字助理系统700在服务器上实现,则应用程序724包 括例如资源管理应用程序、诊断应用程序、或调度应用程序。
存储器702还存储数字助理模块726(或数字助理的服务器部分)。 在一些示例中,数字助理模块726包括以下子模块或者其子集或超集:输 入/输出处理模块728、语音转文本(STT)处理模块730、自然语言处理模块 732、对话流处理模块734、任务流处理模块736、服务处理模块738和语 音合成模块740。这些模块中的每一者均具有对以下数字助理模块726的系 统或数据与模型中的一者或多者或者其子集或超集的访问权限:知识本体 760、词汇索引744、用户数据748、任务流模型754、服务模型756和 ASR系统。
在一些示例中,使用在数字助理模块726上实现的处理模块、数据和 模型,数字助理可执行以下内容中的至少一些:将语音输入转换为文本; 识别从用户接收的自然语言输入中表达的用户的意图;主动引出并获取用 于充分推断用户意图所需的信息(例如,通过消除字词、游戏、意向等的歧 义);确定用于满足推断出的意图的任务流;以及执行任务流以满足推断出 的意图。
在一些示例中,如图7B中所示,I/O处理模块728可通过图7A中的 I/O设备716与用户交互或通过图7A中的网络通信接口708与用户设备 (例如,设备104、设备200、设备400或设备600)交互,以获取用户输 入(例如,语音输入)并提供对用户输入的响应(例如,作为语音输 出)。I/O处理模块728随同接收到用户输入一起或在接收到用户输入之后 不久任选地获得与来自用户设备的用户输入相关联的上下文信息。上下文 信息包括特定于用户的数据、词汇,和/或与用户输入相关的偏好。在一些 示例中,上下文信息还包括在接收到用户请求时用户设备的软件和硬件状 态,和/或与在接收到用户请求时用户周围环境相关的信息。在一些示例 中,I/O处理模块728还向用户发送与用户请求有关的跟进问题,并从用户 接收回答。在用户请求被I/O处理模块728接收且用户请求包括语音输入 时,I/O处理模块728将语音输入转发至STT处理模块730(或语音识别 器)以进行语音文本转换。
STT处理模块730包括一个或多个ASR系统。一个或多个ASR系统 可处理通过I/O处理模块728接收到的语音输入,以产生识别结果。每个 ASR系统包括前端语音预处理器。前端语音预处理器从语音输入中提取代 表性特征。例如,前端语音预处理器对语音输入执行傅里叶变换,以提取 表征语音输入的光谱特征作为代表性多维向量的序列。另外,每个ASR系 统包括一个或多个语音识别模型(例如,声学模型和/或语言模型)并且实 现一个或多个语音识别引擎。语音识别模型的示例包括隐马尔可夫模型、 高斯混合模型、深层神经网络模型、n元语言模型以及其他统计模型。语音 识别引擎的示例包括基于动态时间规整的引擎和基于加权有限状态变换器 (WFST)的引擎。使用一个或多个语音识别模型和一个或多个语音识别引擎 来处理前端语音预处理器的所提取的代表性特征以产生中间识别结果(例 如,音素、音素串和子字词),并且最终产生文本识别结果(例如,字 词、字词串、或符号序列)。在一些示例中,语音输入至少部分地由第三 方服务处理或在用户的设备(例如,设备104、设备200、设备400或设备 600)上处理,以产生识别结果。一旦STT处理模块730产生包含文本串 (例如,字词,或字词的序列,或符号序列)的识别结果,识别结果即被 传送至自然语言处理模块732以供意图推断。
有关语音转文本处理的更多细节在提交于2011年9月20日的名为“ConsolidatingSpeech Recognition Results”的美国实用新型专利申请序列 号13/236,942中有所描述,其全部公开内容以引用方式并入本文。
在一些示例中,STT处理模块730包括可识别字词的词汇和/或经由语 音字母转换模块731访问该词汇。每个词汇字词与语音识别语音字母表中 表示的字词的一个或多个候选发音相关联。具体地讲,可识别字词的词汇 包括与多个候选发音相关联的字词。例如,该词汇包括与 的候选发音相关联的字词“tomato”。另外,词汇字词与基于来自 用户的先前语音输入的自定义候选发音相关联。此类自定义候选发音存储在STT处理模块730中,并且经由设备上的用户配置文件与特定用户相关 联。在一些示例中,字词的候选发音基于字词的拼写以及一个或多个语言 学和/或语音学规则确定。在一些示例中,候选发音手动生成,例如,基于 已知的标准发音而手动生成。
在一些示例中,基于候选发音的普遍性来对候选发音进行排名。例 如,候选语音的排序高于因为前者是更常用的发音 (例如,在所有用户中,对于特定地理区域的用户而言,或者对于任何其 他合适的用户子集而言)。在一些示例中,基于候选发音是否为与用户相 关联的自定义候选发音来对候选发音进行排序。例如,自定义候选发音的 排名高于标准候选发音。这可用于识别具有偏离规范发音的独特发音的专 有名词。在一些示例中,候选发音与一个或多个语音特征(诸如地理起 源、国家或种族)相关联。例如,候选发音与美国相关联,而候 选发音与英国相关联。此外,候选发音的排序基于存储在设备上 的用户配置文件中的用户的一个或多个特征(例如,地理起源、国家、种 族等)。例如,可从用户配置文件确定该用户与美国相关联。基于用户与 美国相关联,候选发音(与美国相关联)可比候选发音 (与英国相关联)排名更高。在一些示例中,经排序的候选发音中的一个 可被选作预测发音(例如,最可能的发音)。
接收到语音输入时,STT处理模块730被用来(例如,使用声音模 型)确定对应于该语音输入的音素,然后尝试(例如,使用语言模型)确 定匹配该音素的字词。例如,如果STT处理模块730首先识别对应于该语 音输入的一部分的音素序列那么它随后可基于词汇索引744确 定该序列对应于字词“tomato”。
在一些示例中,STT处理模块730使用模糊匹配技术来确定话语中的 字词。因此,例如,STT处理模块730可确定音素序列对应于字 词“tomato”,即使该特定音素序列不是该字词的候选音素序列。
数字助理的自然语言处理模块732(“自然语言处理器”)可取得由 STT处理模块730生成的字词或符号的序列(“符号序列”),并尝试将 该符号序列与由数字助理所识别的一个或多个“可执行意图”相关联。 “可执行意图”表示可由数字助理执行并且可具有在任务流模型754中实 现的相关联的任务流的任务。相关联任务流是数字助理为了执行任务而采 取的一系列经编程的动作和步骤。数字助理的能力范围取决于已在任务流 模型754中实现并存储的任务流的数量和种类,或换言之,取决于数字助 理所识别的“可执行意图”的数量和种类。然而,数字助理的有效性还取 决于助理从以自然语言表达的用户请求中推断出正确的“一个或多个可执 行意图”的能力。
在一些示例中,除从STT处理模块730获取的字词或符号的序列之 外,自然语言处理模块732还(例如,从I/O处理模块728)接收与用户请 求相关联的上下文信息。自然语言处理模块732任选地使用上下文信息来 明确、补充和/或进一步限定在从STT处理模块730接收的符号序列中包含 的信息。上下文信息包括例如用户偏好,用户设备的硬件和/或软件状态, 在用户请求之前、期间或之后不久收集的传感器信息,数字助理与用户之 间的先前交互(例如,对话),等等。如本文所述,在一些示例中,上下 文信息是动态的,并且随对话的时间、位置、内容、以及其他因素而变 化。
在一些示例中,自然语言处理基于例如知识本体760。知识本体760 为包含许多节点的分级结构,每个节点表示“可执行意图”或与“可执行 意图”或其他“属性”中的一者或多者相关的“属性”。如上所述,“可 执行意图”表示数字助理能够执行的任务,即,该任务为“可执行的”或 可被进行的。“属性”代表与可执行意图或另一属性的子方面相关联的参数。知识本体760中可执行意图节点与属性节点之间的连接定义由属性节 点表示的参数如何从属于由可执行意图节点表示的任务。
在一些示例中,知识本体760由可执行意图节点和属性节点组成。在 知识本体760内,每个可执行意图节点直接连接至或通过一个或多个中间 属性节点连接至一个或多个属性节点。类似地,每个属性节点直接连接至 或通过一个或多个中间属性节点连接至一个或多个可执行意图节点。例 如,如图7C所示,知识本体760包括“餐厅预订”节点(即,可执行意图 节点)。属性节点“餐厅”、“日期/时间”(针对预订)和“同行人数”均 直接连接至可执行意图节点(即,“餐厅预订”节点)。
此外,属性节点“菜系”、“价格区间”、“电话号码”和“位置” 是属性节点“餐厅”的子节点,并且均通过中间属性节点“餐厅”连接至 “餐厅预订”节点(即,可执行意图节点)。又如,如图7C所示,知识本体 760还包括“设定提醒”节点(即,另一个可执行意图节点)。属性节点“日 期/时间”(针对设定提醒)和“主题”(针对提醒)均连接至“设定提 醒”节点。由于属性“日期/时间”与进行餐厅预订的任务和设定提醒的任 务二者相关,因此属性节点“日期/时间”连接至知识本体760中的“餐厅 预订”节点和“设定提醒”节点二者。
可执行意图节点连同其连接的概念节点一起,被描述为“域”。在本 讨论中,每个域与相应的可执行意图相关联,并涉及与特定可执行意图相 关联的一组节点(以及这些节点之间的关系)。例如,图7C中示出的知识 本体760包括在知识本体760内的餐厅预订域762的示例以及提醒域764 的示例。餐厅预订域包括可执行意图节点“餐厅预订”、属性节点“餐厅”、“日期/时间”和“同行人数”以及子属性节点“菜系”、“价格区 间”、“电话号码”和“位置”。提醒域764包括可执行意图节点“设定 提醒”和属性节点“主题”和“日期/时间”。在一些示例中,知识本体 760由多个域组成。每个域与一个或多个其他域共享一个或多个属性节点。 例如,除了餐厅预订域762和提醒域764之外,“日期/时间”属性节点还 与许多不同域(例如,行程安排域、旅行预订域、电影票域等)相关联。
尽管图7C示出知识本体760内的两个示例性域,但其他域包括例如 “查找电影”、“发起电话呼叫”、“查找方向”、“安排会议”、“发 送消息”以及“提供问题的回答”、“阅读列表”、“提供导航指令”、 “提供针对任务的指令”等。“发送消息”域与“发送消息”可执行意图节点相关联,并且进一步包括属性节点诸如“一个或多个接收人”、“消 息类型”和“消息正文”。属性节点“接收人”进一步例如由子属性节点 诸如“接收人姓名”和“消息地址”来限定。
在一些示例中,知识本体760包括数字助理能够理解并对其起作用的 所有域(以及因而可执行意图)。在一些示例中,知识本体760诸如通过 添加或移除整个域或节点,或者通过修改知识本体760内的节点之间的关 系进行修改。
在一些示例中,将与多个相关可执行意图相关联的节点群集在知识本 体760中的“超级域”下。例如,“旅行”超级域包括与旅行相关的属性 节点和可执行意图节点的群集。与旅行相关的可执行意图节点包括“机票 预订”、“酒店预订”、“汽车租赁”、“路线规划”、“寻找感兴趣的 点”,等等。同一超级域(例如,“旅行”超级域)下的可执行意图节点 具有多个共用的属性节点。例如,针对“机票预订”、“酒店预订”、 “汽车租赁”、“路线规划”和“寻找感兴趣的点”的可执行意图节点共 享属性节点“起始位置”、“目的地”、“出发日期/时间”、“到达日期/ 时间”和“同行人数”中的一者或多者。
在一些示例中,知识本体760中的每个节点与跟由节点代表的属性或 可执行意图有关的一组字词和/或短语相关联。与每个节点相关联的相应组 的字词和/或短语是所谓的与节点相关联的“词汇”。将与每个节点相关联 的相应组的字词和/或短语存储在与由节点所代表的属性或可执行意图相关 联的词汇索引744中。例如,返回图7B,与“餐厅”属性的节点相关联的 词汇包括字词诸如“美食”、“酒水”、“菜系”、“饥饿”、“吃”、 “披萨”、“快餐”、“膳食”等。又如,与“发起电话呼叫”可执行意 图的节点相关联的词汇包括字词和短语诸如“呼叫”、“打电话”、“拨 打”、“与……通电话”、“呼叫该号码”、“打电话给”等。词汇索引 744任选地包括不同语言的字词和短语。
自然语言处理模块732从STT处理模块730接收符号序列(例如,文 本串),并确定符号序列中的字词牵涉哪些节点。在一些示例中,如果发 现符号序列中的字词或短语(经由词汇索引744)与知识本体760中的一个 或多个节点相关联,则所述字词或短语“触发”或“激活”这些节点。基 于已激活节点的数量和/或相对重要性,自然语言处理模块732选择可执行 意图中的一个可执行意图作为用户意图使数字助理执行的任务。在一些示 例中,选择具有最多“已触发”节点的域。在一些示例中,选择具有最高 置信度(例如,基于其各个已触发节点的相对重要性)的域。在一些示例 中,基于已触发节点的数量和重要性的组合来选择域。在一些示例中,在 选择节点的过程中还考虑附加因素,诸如数字助理先前是否已正确解译来 自用户的类似请求。
用户数据748包括特定于用户的信息,诸如特定于用户的词汇、用户 偏好、用户地址、用户的默认语言和第二语言、用户的联系人列表,以及 每位用户的其他短期或长期信息。在一些示例中,自然语言处理模块732 使用特定于用户的信息来补充用户输入中所包含的信息以进一步限定用户 意图。例如,针对用户请求“邀请我的朋友参加我的生日派对”,自然语 言处理模块732能够访问用户数据748以确定“朋友”是哪些人以及“生 日派对”将于何时何地举行,而不需要用户在其请求中明确地提供此类信 息。
基于符号串搜索知识本体的其他细节在提交于2008年12月22日的名 为“Methodand Apparatus for Searching Using An Active Ontology”的美国 实用新型专利申请序列号12/341,743中有所描述,其全部公开内容以引用 方式并入本文。
在一些示例中,一旦自然语言处理模块732基于用户请求识别出可执 行意图(或域),自然语言处理模块732便生成结构化查询以表示所识别 的可执行意图。在一些示例中,结构化查询包括针对可执行意图的域内的 一个或多个节点的参数,并且所述参数中的至少一些参数填充有用户请求 中指定的特定信息和要求。例如,用户说“帮我在寿司店预订晚上7点的 座位。”在这种情况下,自然语言处理模块732能够基于用户输入将可执 行意图正确地识别为“餐厅预订”。根据知识本体,“餐厅预订”域的结 构化查询包括参数诸如{菜系}、{时间}、{日期}、{同行人数}等。在一些 示例中,基于语音输入和使用STT处理模块730从语音输入得出的文本, 自然语言处理模块732针对餐厅预订域生成部分结构化查询,其中部分结 构化查询包括参数{菜系=“寿司类”}以及{时间=“晚上7点”}。然而, 在该示例中,用户话语包含不足以完成与域相关联的结构化查询的信息。 因此,基于当前可用信息,在结构化查询中未指定其他必要参数,诸如{同 行人数}和{日期}。在一些示例中,自然语言处理模块732用所接收的上下 文信息来填充结构化查询的一些参数。例如,在一些示例中,如果请求 “附近的”寿司店,自然语言处理模块732用来自用户设备的GPS坐标来 填充结构化查询中的{位置}参数。
在一些示例中,自然语言处理模块732被配置为确定与使用具有已建 立位置的设备执行任务相关联的用户意图(例如,可执行意图)。具体地 讲,知识本体760包括与使用具有已建立位置的设备执行任务相关的域或 节点。例如,知识本体760包括与控制与用户的家相关联的设备相关的 “家庭”域、或与控制与用户的办公室相关联的设备相关的“办公室” 域。词汇索引744包括与一个或多个已建立位置(例如,家庭、办公室、 企业和公共机构)中的设备相关联的字词和短语。例如,字词和短语包括 命令字词,诸如“设定”、“打开”、“锁定”、“激活”、“打印”、 “开启”等。另外,字词和短语包括设备相关字词,诸如“门”、“恒温器”、“烤面包机”、“加湿器”等。在一些示例中,词汇索引包括查找 表、模型或分类器,其使得自然语言处理模块732能够确定给定术语的一 个或多个另选术语。例如,词汇索引744将术语“恒温器”映射到一个或 多个另选术语,诸如“加热器”、“空调”、“A/C”、“HVAC”和“气候控制”。用户数据748包括一个或多个数据结构(例如,数据结构 900),每个数据结构表示具有相应已建立位置的一组设备。
为了确定与使用具有已建立位置的设备执行任务相关联的可执行意 图,自然语言处理模块732被配置为确定一个或多个可能设备特征和对应 于用户语音输入的一个或多个候选设备。自然语言处理模块732被进一步 配置为确定一个或多个候选设备的一个或多个可能设备特征和实际设备特 征所共有的重叠设备特征。
在一些示例中,自然语言处理模块732被配置为确定用户语音输入中 定义的一个或多个标准。基于识别用户语音输入中的条件术语(例如, “当......时”、“如果”、“一旦”、“在......时”等)来识别一个或多个 标准。在一些示例中,确定一个或多个标准包括确定对应于用户语音输入 中的模糊定性短语的定性标准。例如,自然语言处理模块732被配置为访 问一个或多个知识来源以确定用户语音输入中的模糊定性短语“太热”对 应于“大于90华氏度”的定性标准。例如,一个或多个知识来源可以包括 将定性术语(例如,形容词)映射到可测量特征的特定值或范围的查找 表。一个或多个知识来源存储在数字助理系统上(例如,在存储器702 中)或远程系统上。在一些示例中,一个或多个标准与具有已建立位置的 设备相关联。自然语言处理模块732被配置为使用知识本体760、词汇索引 744以及存储在用户数据748中的一个或多个数据结构来确定与一个或多个 标准相关联的设备。
在一些示例中,自然语言处理模块732将所生成的结构化查询(包括 任何已完成的参数)传送至任务流处理模块736(“任务流处理器”)。任 务流处理模块736被配置为接收来自自然语言处理模块732的结构化查 询,(必要时)完成结构化查询,以及执行“完成”用户最终请求所需的 动作。在一些示例中,完成这些任务所必需的各种过程在任务流模型754 中提供。在一些示例中,任务流模型754包括用于获取来自用户的附加信 息的过程,以及用于执行与可执行意图相关联的动作的任务流。
如上所述,为了完成结构化查询,任务流处理模块736需要发起与用 户的附加对话,以便获取附加信息和/或弄清可能有歧义的话语。当有必要 进行此类交互时,任务流处理模块736调用对话流处理模块734来参与同 用户的对话。在一些示例中,对话流处理器模块734确定如何(和/或何 时)向用户请求附加信息,并且接收和处理用户响应。通过I/O处理模块 728将问题提供给用户并从用户接收回答。在一些示例中,对话处理模块 734经由音频和/或视频输出向用户呈现对话输出,并接收经由口头或物理 (例如,点击)响应的来自用户的输入。继续上述示例,在任务流处理模 块736调用对话流处理模块734来确定针对与域“餐厅预订”相关联的结 构化查询的“同行人数”和“日期”信息时,对话流处理模块734生成诸 如“一行几位?”和“预订哪天?”之类的问题传递给用户。一旦收到来自 用户的回答,对话流处理模块734就用缺失信息填充结构化查询,或将信 息传递给任务流处理模块736以根据结构化查询完成缺失信息。
一旦任务流处理模块736已针对可执行意图完成结构化查询,任务流 处理模块736便开始执行与可执行意图相关联的最终任务。因此,任务流 处理模块736根据结构化查询中包含的特定参数来执行任务流模型中的步 骤和指令。例如,针对可执行意图“餐厅预订”的任务流模型包括用于联 系餐厅并实际上请求在特定时间针对特定同行人数的预订的步骤和指令。 例如,通过使用结构化查询诸如:{餐厅预订,餐厅=ABC咖啡馆,日期 =2012/3/12,时间=下午7点,同行人数=5人},任务流处理模块736可执 行以下步骤:(1)登录到ABC咖啡馆的服务器或餐厅预订系统诸如 (2)在网站上的表格中输入日期、时间和同行人数信息,(3) 提交表格,以及(4)在用户日历中针对该预订制作日历条目。
在一些示例中,任务流处理模块736在服务处理模块738(“服务处 理模块”)的辅助下完成用户输入中所请求的任务或者提供用户输入中所 请求的信息性回答。例如,服务处理模块738代表任务流处理模块736发 起电话呼叫、设定日历条目、调用地图搜索、调用用户设备上安装的其他 用户应用程序或与所述其他应用程序进行交互,以及调用第三方服务(例 如,餐厅预订门户网站、社交网站、银行门户网站等)或与第三方服务进 行交互。在一些示例中,通过服务模型756中的相应服务模型指定每项服 务所需的协议和应用程序编程接口(API)。服务处理模块738针对服务访问 适当的服务模型,并依据服务模型根据该服务所需的协议和API生成针对 该服务的请求。
例如,如果餐厅已启用在线预订服务,则餐厅提交服务模型,该服务 模型指定进行预订的必要参数以及将必要参数的值传送至在线预订服务的 API。在被任务流处理模块736请求时,服务处理模块738可使用存储在服 务模型中的web地址来建立与在线预订服务的网络连接,并将预订的必要 参数(例如,时间、日期、同行人数)以根据在线预订服务的API的格式 发送至在线预订接口。
在一些示例中,自然语言处理模块732、对话处理模块734以及任务 流处理模块736被共同且反复地使用,以推断并限定用户的意图、获取信 息以进一步明确并细化用户意图、并最终生成响应(即,输出至用户,或 完成任务)以满足用户的意图。所生成的响应是至少部分地满足用户意图 的对语音输入的对话响应。另外,在一些示例中,所生成的响应被输出为 语音输出。在这些示例中,所生成的响应被发送到语音合成模块740(例 如,语音合成器),在语音合成模块中,可处理所生成的响应以将对话响 应以语音形式合成。在其他示例中,所生成的响应是与满足语音输入中的 用户请求相关的数据内容。
对于与使用一个或多个具有已建立位置的设备执行一个或多个任务相 关联的可执行意图和结构化查询,服务处理模块738被配置为使得一个或 多个具有已建立位置的设备执行一个或多个任务。例如,服务处理模块738 被配置为(例如,经由网络110)向一个或多个具有已建立位置的设备提供 指令或命令以使得所述一个或多个设备执行一个或多个任务。
语音合成模块740被配置为合成用于呈现给用户的语音输出。语音合 成模块740基于数字助理提供的文本来合成语音输出。例如,所生成的对 话响应是文本串的形式。语音合成模块740将文本串转换成可听语音输 出。语音合成模块740使用任何适当语音合成技术,以便从文本生成语音 输出,包括但不限于:拼接合成、单元选择合成、双音素合成、域特定合 成、共振峰合成、发音合成、基于隐马尔可夫模型(HMM)的合成,以及正 弦波合成。在一些示例中,语音合成模块740被配置为基于对应于这些字 词的音素串来合成各个字词。例如,音素串与所生成的对话响应中的字词 相关联。音素串存储在与字词相关联的元数据中。语音合成模型740被配 置为直接处理元数据中的音素串,以合成语音形式的字词。
在一些示例中,替代使用语音合成模块740(或除此之外),在远程 设备(例如,服务器系统108)上执行语音合成,并且将合成的语音发送至 用户设备以输出给用户。例如,这可发生在一些具体实施中,其中在服务 器系统处生成数字助理的输出。而且由于服务器系统通常比用户设备具有 更强的处理能力或更多的资源,其有可能获得比客户端侧合成将实现的质 量更高的语音输出。
有关数字助理的另外细节可见于提交于2011年1月10日的名称为 “IntelligentAutomated Assistant”的美国实用新型专利申请号12/987,982和 提交于2011年9月30日的名称为“Generating and Processing Task Items That Represent Tasks toPerform”的美国实用新型专利申请号13/251,088 中,其全部公开内容以引用方式并入本文。
4.数字助理操作过程
图8示出了根据各种示例的操作数字助理的过程800。例如,过程800 使用实现数字助理的一个或多个电子设备(例如,设备104,106,200,400 或600)执行。在一些示例中,该过程在实现数字助理的客户端-服务器系 统(例如,系统100)处执行。可通过任何方式在服务器(例如,DA服务 器106)与客户端(例如,用户设备104)之间划分过程的框。在过程800中,一些框被任选地组合,一些框的顺序被任选地改变,并且一些框被任 选地省略。在一些示例中,仅执行以下参考图8所述的特征或框的子集。
在框802处,接收表示用户请求的话语输入(例如,在麦克风213处 或在I/O处理模块728处)。该话语输入是例如语音输入或文本输入。此 外,该话语输入是例如自然语言的形式。在一些示例中,用户请求是对设 备(例如,设备130,132,134或136)执行动作的请求。该设备是独立于且 不同于接收或处理话语输入的电子设备(例如,设备104,106,200,400或 600)的设备。在一些示例中,话语输入借以自然语言形式包含一个或多个 模糊词语。一个或多个模糊词语例如各自具有不止一个可能解释。例如, 话语输入是“将恒温器设定为60”。在该示例中,话语输入相对于限定用 于执行所请求的动作的设备是模糊的。具体地讲,在已建立位置的上下文 诸如用户的家中,可存在与术语“恒温器”相关联的若干个设备,诸如中 央加热单元、卧室空间加热器或客厅空调单元。因此,关于用户在话语输 入中提到的是哪个设备是模糊的。另外,在相同的示例中,话语输入相对 于限定所请求的特定动作是模糊的。例如,已建立位置中的一个或多个设 备能够调节温度和湿度。因此,话语输入对用户是否希望将设备温度调节 为60华氏度或将设备湿度调节为60%相对湿度是模糊的。
在框804处,确定话语输入是否对应于与使用具有已建立位置(例 如,用户的主住宅、用户的办公室、用户的度假屋等)的设备执行任务的 可执行意图相关联的域。域是知识本体(例如,知识本体760)的域。在一 个示例中,域是对应于控制已建立位置中的一个或多个设备的可执行意图 的“自动化”域。例如使用自然语言处理(例如,利用自然语言处理模块 732、词汇744和用户数据748)执行框804处的确定。例如,在“将恒温 器设定为60”的示例中,可基于话语输入很可能对应于控制用户家中的设 备的可执行意图的字词“设定”、“恒温器”和“60”来确定。在该示例 中,可执行意图因此与“自动化”域相关联。
如图8所示,响应于确定话语输入对应于与使用具有已建立位置的设 备执行任务的可执行意图相关联的域,执行框806。具体地讲,响应于确定 话语输入对应于与使用具有已建立位置的设备执行任务的可执行意图相关 联的域,自动执行框806而不需要来自用户的进一步输入。另选地,响应 于确定话语输入不对应于与使用具有已建立位置的设备执行任务的可执行 意图相关联的域,执行框805。具体地讲,在框805处,过程800放弃检索 表示具有已建立位置的一组设备的数据结构。
在框806处,检索表示具有已建立位置的一组设备的数据结构。在一 些示例中,从用户设备检索数据结构(例如,用户设备200的用户数据和 模型231)。在其他示例中,从服务器(例如,DA服务器106的数据和模 型116)检索数据结构。数据结构例如限定已建立位置中的多个区域之间的 分级关系。数据结构进一步限定该组设备中的每个设备相对于多个区域的 关系。
建立位置是与建立机构诸如商业组织、家庭或公共机构相关联的位 置。例如,已建立位置与提供话语输入的用户(例如,用户的家庭、用户 的工作地或用户的度假屋)相关联。在其他示例中,已建立位置与公共机 构(例如,教堂、学校或图书馆)相关联。在其他示例中,已建立位置与 商业(例如,商店、公司办公室、餐馆等)相关联。
在一些示例中,过程800确定要从多个数据结构中检索哪个数据结 构。多个数据结构中的每个数据结构与相应的已建立位置相关联。过程800 确定对应于话语输入的位置。例如,过程800在接收到话语输入时(例 如,使用GPS模块235)确定用户设备的位置。然后基于该用户设备的位 置识别已建立位置。例如,在一个示例中,确定用户设备的位置对应于用 户家庭的位置。基于所确定的已建立位置,从多个数据结构识别和检索对 应的数据结构。例如,识别和检索表示用户家中的设备的数据结构。
图9是根据各种示例的示出表示已建立位置的一组设备的示例性数据 结构900的分级图。如图所示,数据结构900包括跨层级960-968以分级结 构组织的多个节点902-950。节点902-950的组织限定如何使已建立位置的 各种设备(例如,车库门、后门、中央恒温器、空间加热器和儿子的灯) 与已建立位置的各种区域(例如,楼层1、楼层2、车库、客厅、主卧室和 儿子的卧室)相关。具体地讲,层级960-964的节点限定如何组织已建立位 置的各种区域。层级960的根节点表示已建立位置(例如,John家),并 且层级962的节点表示已建立位置的主区域(例如,楼层1和楼层2)。层 级964的节点表示每个主区域内的子区域。在本示例中,子区域包括John 家中的独立房间或起居区域(车库、客厅、主卧室和儿子的卧室)。虽然 在本示例中,数据结构900包括用于主区域的一个层级(层级960)和用于 子区域的一个层级(层级964),但是应当认识到,在其他示例中,数据结 构包括任何数量的层级用于组织已建立位置的各种区域。
层级966的节点限定与层级964的每个区域相关联的设备。例如,节 点926和节点928指示存在与John家的车库相关联的车库门设备和后门设 备。类似地,节点930指示恒温器与John家的客厅相关联。由节点908- 914表示的设备与图1的设备130-136类似或相同。例如,由节点908-914 表示的设备经由一个或多个网络(例如,网络110)通信地耦接到电子设备 (例如,用户设备104)或服务器(例如,DA服务器106)。电子设备经 由一个或多个网络提供命令,使得节点908-914的一个或多个设备执行由用 户定义的动作。
层级968的节点限定与层级966的每个设备相关联的实际设备特征。 例如,节点936指示车库门设备具有“位置”的实际设备特征。类似地, 节点938指示后门设备具有“锁定”的实际设备特征。实际设备特征描述 例如可使用电子设备(例如,设备104,200,400或600)控制的设备的实际 功能或特征。例如,可通过控制车库门设备来改变车库门的“位置”,或 者可通过控制后门设备来“锁定”或“解锁”后门。
数据结构900的每个节点包括一个或多个存储的属性。例如,如图9 所示,用户定义标识符(ID)与层级960-966的每个节点相关联地存储。具体 地讲,节点902包括描述已建立位置的用户定义的ID“John家”。类似 地,节点904-914中的每个节点包括描述已建立位置的相应区域的用户定义 的ID。例如,节点912包括用户定义的ID“主卧室”,并且节点914包括 用户定义的ID“儿子的卧室”。此外,节点926-934中的每个节点包括描 述相应设备的用户定义的ID。例如,节点930包括用户定义的ID“中央恒 温器”,并且节点934包括用户定义的ID“儿子的灯”。在一些示例中, 仅存储在用户设备(例如,用户设备104)上的数据结构包括用户定义的 ID。存储在服务器(例如,DA服务器106)上的数据结构包括例如通用ID,诸如用于表示已建立位置中的区域的节点的通用ID“区域1”或“区 域2”,以及用于表示设备的节点的“设备1”或“设备2”。在其他示例 中,数据结构中的每个设备和每个区域相对于与所接收的话语输入相关联 的临时会话密钥来识别。这是在数据结构存储在服务器上时保存用户隐私 的理想选择。
节点902-934中的每个节点还包存储属性(未示出),所述存储属性 定义了例如已建立位置中的每个区域的区域类型或已建立位置中的每个设 备的设备类型。例如,“主卧室”(节点912)和“儿子的卧室”(节点 914)各自具有的区域类型为“卧室”。类似地,“中央恒温器”(节点 930)具有的设备类型为“恒温器”,并且“儿子的灯”(节点934)具有 的设备类型为“光照”。区域类型和设备类型是基于标准区域类型和设备 类型的列表的标准化描述。区域类型的其他示例包括“地下室”、“储藏 室”、“阁楼”、“厨房”等。设备类型的其他示例包括“门锁”、“加 湿器”、“音乐播放器”、“烤面包机”等。
节点926-934进一步包括指示每个设备相对于相关设备特征的操作状 态的附加存储属性。例如,“车库门”(节点936)对于设备特征“位置” 具有操作状态“打开”或“关闭”。在另一个示例中,“中央恒温器” (节点930)对于设备特征“温度”具有操作状态“73华氏度”,并且相 对于设备特征“湿度”具有操作状态“60%”。操作状态的附加示例包括 相对于设备特征“锁”的“锁定”或“解锁”(例如,对于门锁设备), 相对于设备特征“电源”的“开”或“关”(例如,对于音乐播放器设 备),以及相对于设备特征“亮度”的“75%”(例如,对于可调光照设 备)。
基于从具有已建立位置的设备接收的用户输入和/或数据来创建数据结 构(例如,使用设备104或设备200或服务器系统108)。例如,用户设备 提供使用户能够输入用于创建数据结构的信息的用户界面。具体地讲,用 户设备经由用户界面接收关于已建立位置中的各种区域和具有已建立位置 的各种设备的信息。另外,用户设备接收将具有已建立位置的特定设备与 已建立位置的一个或多个区域相关联的信息。例如,经由用户界面接收的用户输入在已建立位置中定义名为“主卧室”(例如,节点912)的区域和 名为“空间加热器”的设备。用户输入进一步将“空间加热器”设备与 “主卧室”区域相关联。在一些示例中,基于从已建立位置的各个设备接 收到的数据来自动填充数据结构中的信息。例如,已建立位置的每个设备 向用户设备传输与所述已建立位置的设备相关联的各种属性。具体地讲,将设备ID、设备特征、操作状态或设备类型传输到用户设备。然后,用户 设备将该数据自动填充到相应的数据结构中。
在一些示例中,该用户设备的数字助理基于关于具有已建立位置的各 种设备接收到的信息,自动提出对数据结构的添加或修改。所接收的信息 例如包括限定具有设备ID“卧室1_灯”的建立位置的第一设备和具有设备 ID“卧室1_收音机”的具有已建立位置的第二设备的设备信息。基于第一 设备和第二设备的设备ID中的每一个的通用短语“卧室1”,过程800确 定两个设备很可能与已建立位置中的共用区域“卧室1”相关联。除此之外 或另选地,所接收的信息包括第一设备和第二设备的位置信息。例如,位 置信息指示第一设备和第二设备设置在已建立位置的共用区域内。在另一 示例中,位置信息指示第一设备和第二设备定位在已建立位置中隔开的阈 值距离内。基于位置信息,相对于已建立位置的一个或多个区域来确定第 一设备和第二设备之间的关系。例如,确定第一设备和第二设备与已建立 位置的“卧室1”区域相关联。基于第一设备和第二设备之间所确定的关系 向用户提供表明对数据结构进行修改的提示。例如,提供提示询问用户 “您想创建包括设备‘卧室1_灯’和‘卧室1_收音机’的房间‘卧室1’吗?”。响 应于所提供的提示来接收用户输入(例如,对用户界面按钮的选择)。用 户输入确认由提示提出的修改。响应于接收用户输入,修改数据结构以相 对于已建立位置定义第一设备和第二设备之间所确定的关系。例如,在数 据结构中创建表示已建立位置中的区域“卧室1”的节点。此外,将表示设 备“卧室1_灯”和“卧室1_收音机”的节点与表示区域“卧室1”的节点 相关联。
应当理解,上述数据结构900是表示具有已建立位置的一组设备的数 据结构的非限制性示例,并且鉴于上述描述,数据结构900的各种修改和 变化是可能的。例如,数据结构可包括任意数量的嵌套层次的节点。在一 些示例中,任选地移除数据结构900中的一个或多个层次的节点,和/或任 选地添加附加层次的节点。在一个示例中,在数据结构900中任选地移除 层级962的节点,并且层级964的节点直接嵌套在根节点902之下。在其 他示例中,任选地将表示子区域的一个或多个附加层级的节点添加到数据 结构900。具体地讲,任选地将表示子区域的一个或多个附加层级的节点包 括在数据结构900的层级962和964之间或层级964和966之间。此外,应 当认识到,在一些示例中,表示设备的节点不需要嵌套在表示主区域或子 区域的节点之下。例如,在一些示例中,数据结构900中的节点926-934中的任一节点任选地直接嵌套在根节点960或层级962的节点之下。
在框808处,确定对应于话语输入的一个或多个可能设备特征。具体 地讲,解析和分析话语输入的字词以识别与话语输入中的字词和/或短语相 关的可能设备特征。例如,使用自然语言处理模块(例如,自然语言处理 模块732),利用适当的模型和词汇(例如,词汇744)来执行框808。具 体地讲,自然语言处理模块的机器学习分类器例如处理话语输入的字词且 确定与字词相关联的可能设备特征。在一个示例中,话语输入是“打开 门”。在该示例中,词语“打开”和“门”被确定为对应于“位置”和 “锁定/解锁”的可能设备特征。
在一些示例中,最初单独分析话语输入的每个词语。例如,参考图 10A,话语输入1002是“将恒温器设定为60%”。在该示例中,词语“设 定”被确定为对应于包括“温度”、“湿度”、“亮度”、“体积”和 “速度”的第一组可能设备特征1004。词语“恒温器”被确定为对应于包 括“温度”和“湿度”的第二组可能设备特征1006。词语“60”被确定为 对应于包括“温度”、“湿度”和“亮度”的第三组可能设备特征1008。 词语“百分比”被确定为对应于包括“亮度”和“湿度”的第四组可能设 备特征1010。
一个或多个可能设备特征是基于对应于话语输入中的单独词语的可能 设备特征组(例如,1004,1006,1008,1010)确定的。例如,在框808处确 定的一个或多个可能设备特征是可能设备特征的组合。在一些示例中,一 个或多个可能设备特征是基于可能设备特征组中的每个可能设备特征的频 率确定的。例如,一个或多个可能设备特征被确定为包括可能设备特征 “湿度”,该可能设备特征具有跨可能设备特征组1004,1006,1008,1010 的最大频率。
在一些示例中,一个或多个可能设备特征是基于可能设备特征(例如, 1004,1006,1008,1010)组中的每个可能设备特征的普遍性确定的。普遍性 是指由用户群体请求与设备特征相关联的动作的频率。例如,如果与“温 度”相关的动作比与其他设备特征相关的动作被更频繁地请求,则在框808 处确定一个或多个可能设备特征时,可能设备特征“温度”具有更大的权 重。在其他示例中,基于话语输入中的每个词语的突出性来确定一个或多 个可能设备特征。例如,词语“恒温器”在话语输入中的词语间具有最大 的突出性,并且因此在框808处确定一个或多个可能设备特征时,可能设 备特征组1006比其他可能设备特征组具有更大的权重。因此,在该示例 中,一个或多个可能设备特征更有可能包括来自可能设备特征组1006的 “温度”和“湿度”的可能设备特征。
在框810处,基于数据结构确定该组设备中的一个或多个候选设备。 一个或多个候选设备对应于话语输入。在一些示例中,使用自然语言处理 模块(例如,自然语言处理模块732),基于合适的模型和词汇(例如,词 汇744)执行框808。具体地讲,自然语言处理模块的机器学习分类器例如 处理话语输入的字词且从最可能对应于话语输入的数据结构中的该组设备 确定候选设备。例如,在话语输入为“将恒温器设定为60%”的情况下, 话语输入中的字词“恒温器”被认为是与数据结构中的节点的各种属性和 ID相关且与之相比较(例如,基于语义或语法相似性)来确定对应于话语 输入的候选设备。具体地讲,基于话语输入中的字词“恒温器”,将设备 “中央恒温器”(例如,节点930)和“小型取暖器”(例如,节点932) 确定为一个或多个候选设备。
在另一示例中,话语输入是“将客厅设定为60%”。在该示例中,字 词“客厅”被认为是与数据结构中的节点的各种属性和ID相关且与之相比 较。在该示例中,话语输入中的“客厅”被确定为对应于在数据结构900 中限定的“客厅”区域(例如,节点910)。因为“客厅”区域(例如,节 点910)与数据结构900中的“中央恒温器”设备(例如,节点930)相关 联,所以确定一个或多个候选设备包括“中央恒温器设备”。
在一些示例中,基于从话语输入中的一个或多个词语得出的一个或多 个另选词语来确定一个或多个候选设备。返回话语输入示例“将恒温器设 定为60%”,确定与“恒温器”相关联的一个或多个另选词语。具体地 讲,“恒温器”被确定为与另选词语“加热器”、“A/C、“散热器”、 “调节器”、“温度计”和“加湿器”相关联。在该示例中,另选词语用 于搜索数据结构的节点以确定一个或多个候选设备。例如,具有用户限定 的设备ID“John的加热器”和“办公室A/C”的设备是基于另选词语识别 的,并且设备包括于在框808处确定的一个或多个候选设备中。
在一些示例中,一个或多个另选词语基于通常用于指代动作或设备的 短语。例如,话语输入“打开门”通常可表达为“打开后面”、“打开后 门”、“打开后锁”、“打开锁”、“打开门锁”或“打开门闩。”在该 示例中,词语“门”被确定为与另选词语“后”、“后门”、“锁”、“门锁”、“后锁”、“后门锁”和“门闩”相关联。使用另选词语从数 据结构识别候选设备。例如,与用户限定的ID相关联的设备或在数据结构 中包含另选词语“后”、“锁”或“后门”的其他属性被识别为一个或多 个候选设备且包括在一个或多个候选设备中。
使用查找表、模型或分类器确定一个或多个另选词语。具体地讲,查 找表、模型或分类器将词语与一个或多个另选词语相关联。该关联是基于 语义映射。在一些示例中,关联是用户限定的。例如,在框802处接收到 话语输入之前,接收限定另选词语的用户输入。用户输入可例如包括陈述 “‘电视机’可称为‘电视’。”的话语。基于用户输入,更新相关的查找表、 模型或分类器,使得“电视机”与另选词语“电视”相关联,反之亦然。 因此,一个或多个另选词语基于所接收的用户输入。
在一些示例中,使用检索到的上下文信息确定一个或多个候选设备。 在一个示例中,话语输入是“打开John的灯”。过程800确定“灯”与数 据结构中表示的光照设备相关联。然而,在数据结构中可表示有几种光照 设备。在该示例中,检索到的上下文信息用于减少所识别的候选设备的数 量。具体地讲,词语“John”被确定为与联系人信息相关联,并且作为响 应,根据词语“John”搜索用户设备上的联系人信息。通过搜索联系人信 息,检索到指示用户具有名为“John”的儿子的信息。因此,基于该检索 到的联系人信息来确定一个或多个候选设备。具体地讲,过程800从数据 结构识别出已建立位置包括与光照设备“儿子的灯”(例如,节点934)相 关联的名为“儿子的卧室”的区域(例如,图9中的节点914)。因此,在该示例中,确定一个或多个候选设备包括儿子的卧室中的设备“儿子的 灯”。
应认识到,在一些示例中,框808或810整合到框812中。例如,作 为在框812处确定用户意图的一部分来执行框808或810。
在框812处,确定对应于话语输入的用户意图。用户意图是指用户在 提供话语输入时的推断意图。例如,用户意图是上面参考图7B描述的可执 行意图。在特定示例中,对应于话语输入“打开门”的推断用户意图是使 用户的房屋的后门解锁。用户意图是基于框808的一个或多个可能设备特 征和框810的一个或多个候选设备的一个或多个实际设备特征确定的。
在一些示例中,在框812处确定用户意图包括从一个或多个候选设备 中确定一个设备。具体地讲,候选设备被缩减至用户最可能提及的设备。 这是基于一个或多个可能设备特征和框810的一个或多个候选设备的一个 或多个实际设备特征确定的。例如,确定在一个或多个可能设备特征与一 个或多个实际设备特征之间共有的一个或多个重叠设备特征,并且设备是 基于重叠设备特征确定的。
在图10B所示的示例中,基于话语输入“将恒温器设定为60%”,一 个或多个候选设备被确定为包括“中央恒温器”(例如,节点930)和“小 型取暖器”(例如,节点932)。根据数据结构900,候选设备“中央恒温 器”的实际设备特征包括“温度”和“湿度”,并且候选设备“小型取暖 器”的实际设备特征包括“温度”和“风扇速度”。另外,基于可能设备 特征组1004-1010中的频繁最高的设备特征,对应于话语输入“将恒温器设 定为60%”的一个或多个可能设备特征被确定为“湿度”(图10A)。因 此,在该示例中,一个或多个可能设备特征和一个或多个实际设备特征之 间共有的一个或多个重叠设备特征被确定为“湿度”。由于重叠设备特征 “湿度”对应于“中央恒温器”(例如,节点930)的设备特征,而不是 “小型取暖器”(例如,节点932)的任何设备特征,因此一个或多个候选 设备被缩减为用户房屋的客厅中的“中央恒温器”(例如,节点930)。因 此基于设备“中央恒温器”(例如,节点930)来确定用户意图。具体来 说,基于设备“中央恒温器”、重叠设备特征“湿度”和话语输入中的字 词“60%”,确定用户意图是将用户的客厅中的中央恒温器的湿度设定点 编程为值60%。
在一些示例中,确定不止一个候选用户意图。例如,可能无法基于一 个或多个重叠特征将候选设备缩减至到单个设备。在这样的一个示例中, 基于话语输入“打开门”,确定一个或多个可能设备特征包括“位置”和 “锁”。另外,基于数据结构900,分别具有实际设备特征“位置”和 “锁”的候选设备“车库门”(例如节点926)和“后门”(例如,节点 928)被确定为对应于该话语输入。在该示例中,一个或多个可能设备特征 和一个或多个实际设备特征之间共有的重叠设备特征被确定为包括“位 置”和“锁”。因此,无法基于这些重叠设备特征来缩减候选设备“车库 门”(例如,节点926)和“后门”(例如,节点928)。具体地讲,基于候选设备“车库门”(例如,节点926)和“后门”(例如,节点928)、 重叠设备特征“位置”和话语输入中的字词“打开”确定了两个用户意 图。第一候选用户意图是激活车库门电机以使车库门升起而打开。第二候 选用户意图是解锁车库的后门入口。在该示例中,需要附加信息才能消除 用户意图的歧义。具体地讲,数字助理从第一候选用户意图和第二候选用 户意图检索附加信息以确定单个用户意图。在一些示例中,数字助理响应 于确定使用数据结构无法消除歧义的不止一个候选用户意图来自动检索附 加信息。
在一些示例中,基于在接收到话语输入时用户的位置来消除用户意图 的歧义。例如,确定用户相对于已建立位置中的区域的相对位置。然后基 于所确定的相对位置确定用户意图。例如,继续“打开门”的话语输入, 在接收到话语输入时确定用户比后门(例如,节点928)更靠近车库门(例 如,节点926)。基于来自用户设备的位置数据(例如,GPS数据等)或来 自设置在已建立位置或周围的各种传感器(例如,接近传感器、图像传感 器、红外传感器、运动传感器等)的数据来确定用户的相对位置。例如, 触发在车库门前方的运动传感器,并且因此,基于从运动传感器获得的数 据确定用户在车库门前面的车道上、在房屋外面。因为用户比后门更靠近 车库门,因此确定第一候选用户意图比第二候选用户意图更有可能。因 此,用户意图被确定为激活车库门电机使车库门升起而打开。
在其他示例中,基于候选设备的操作状态来消除用户意图的歧义。具 体地讲,获得一个或多个候选设备中的每个候选设备的操作状态。在一些 示例中,从数据结构获得操作状态。在一些示例中,具有已建立位置的设 备将其操作状态(例如,周期性地或在操作状态发生改变时)传输到用户 设备,并且在数据结构中更新操作状态。返回话语输入是“打开门”的示 例,从数据结构获得车库门(例如,节点926)和后门(例如,节点928) 的操作状态。操作状态指示例如车库门已经打开,但后门被锁上。因为车 库门已经打开,所以确定在车库处解锁后门入口的第二候选用户意图比激 活车库门电机以使车库门升起而打开的第一候选用户意图更有可能。因 此,基于所获得的车库门和后门的操作状态,确定用户意图是在车库处解 锁后门入口。
在其他示例中,基于与相应候选用户意图相关联的每个动作的突出性 来消除用户意图的歧义。例如,确定与打开车库门相关联的第一突出性和 与解锁后门相关联的第二突出性。在本示例中,第一突出性大于第二突出 性,因为相较于请求打开车库门来说,更少用户会请求解锁后门。另外, 车库门被认为是车库的一个比后门更显著的特征。然后,为候选用户意图 排序。具体地讲,基于第一突出性大于第二突出性,激活车库门电机以使 车库门升起而打开的第一候选用户意图的排序高于在车库处解锁后门的第 二候选用户意图。由于第一候选用户意图具有较高排序,用户意图被确定 为激活车库门电机以使车库门升起而打开。
在一些示例中,基于来自用户的附加信息来消除用户意图的歧义。例 如,在用户设备上输出对话(例如,语音或文本)。该对话请求与该用户 意图有关的用户进行澄清。例如,对话询问用户用户是希望“打开车库 门”还是“解锁后门入口”。接收响应于该输出对话的用户输入。例如, 用户输入是对经由用户设备的用户界面接收的“打开车库门”的用户意图 的选择。基于用户输入,消除了用户意图在第一候选用户意图和第二候选 用户意图之间的歧义。具体地讲,与用户的选择一致的是,用户意图被确 定为激活车库门电机以使车库门升起而打开。应当理解,基于来自用户的 附加信息消除歧义造成用户混乱,并且在某些情况下可能会对用户体验产 生不利影响。因此,在一些示例中,仅当无法基于其他可用信息来源(例 如,上下文信息、候选设备的操作状态、动作的突出性、用户的位置等) 消除用户意图的歧义时,才提示用户将消除用户意图歧义的附加信息作为 最后手段执行。例如,基于用户设备可访问的信息,确定两个或更多个候 选用户意图是否消除了歧义。仅响应于基于用户设备可访问的信息确定两 个或更多个候选用户意图无法消除歧义,输出请求附加信息的对话。
在框814处,提供使得一个或多个候选设备中的设备执行对应于用户 意图的动作的指令。具体地讲,对于示例性话语输入“将恒温器设定为 60%”,所提供的指令使得“中央恒温器”(例如,节点930)将其湿度设 定点改变为60%。对于另一示例性话语输入“打开门”,所提供的指令使 得车库门电机升起车库门而使其打开。在一些示例中,指令被直接传输到 相应设备(例如,恒温器或车库门电机)以使得设备执行相关动作。在其 他示例中,指令被传输到用户设备,并且指令使得用户设备向相应设备传 输命令以执行相关动作。
在一些示例中,响应于接收到用户确认而提供指令。具体地讲,在提 供指令之前,输出确认要执行的动作和执行该动作的设备的对话(例如, 语音或文本)。例如,对话询问用户“您要将客厅恒温器的湿度设定为 60%吗?”或“要打开车库门吗?”接收响应于该输出对话的用户输入。 用户输入确认或拒绝该输出对话。在一个示例中,用户输入是语音输入“是”。响应于接收到确认输出对话的用户输入,提供指令。相反,响应 于接收到拒绝输出对话的用户输入,过程800放弃提供指令。
在一些示例中,用户对用户设备进行编程以识别导致建立位置中的多 个设备的操作状态以预先确定的方式设定的自定义命令。多个设备的这组 预先确定的操作状态称为场景。例如,用户创建自定义场景命令“派对时 间”,其中响应于接收到这个自定义命令,提供使得客厅音乐播放器开 启、客厅灯调至15%的亮度和客厅迪斯科球开启的指令。这些客厅音乐播 放器、客厅灯和客厅迪斯科球的这些预定义的操作状态与自定义场景命令“派对时间”相关联地存储。
在一些示例中,根据一个事件,数字助理检测用于设定多个设备的操 作状态的一个或多个用户输入,然后提示用户创建对应自定义场景命令。 例如,一个或多个用户输入由用户提供以例如开启厨房和客厅灯,将恒温 器设定为75度且开启客厅电视机。在一些示例中,通过检测设备的操作状 态中的一个或多个对应改变来检测一个或多个用户输入。另外,一个或多 个用户输入与用户到家的事件相关联。例如,在检测到与用户到家相关的 一个或多个事件之后,在预先确定的持续时间内检测一个或多个用户输 入。一个或多个事件包括例如检测在车库中被激活的接近传感器或检测正 在打开的后门入口。响应于检测到与事件相关联的一个或多个用户输入, 提供提示。提示询问用户是否希望存储与自定义场景命令相关联的多个设 备的相应操作状态。例如,提示是“我注意到,在到家后,你开启了厨房 和客厅灯,将恒温器设定为75度,并开启了客厅电视机。你想用这些设备 设定创建一个‘到家’场景吗?”接收响应于该提示的用户输入。例如,用户 确认或拒绝用于创建与多个设备的一组操作状态相关联的自定义场景命令 的提示。响应于接收到确认该提示的用户输入,与自定义场景命令相关联 地存储多个设备的相应操作状态,使得响应于接收到自定义场景命令,用 户设备使得多个设备被设定为响应操作状态。相反,响应于接收到拒绝该提示的用户输入,过程800放弃与自定义场景命令相关联地存储多个设备 的相应操作状态。
在一些示例中,数字助理与现有场景相关联地检测使得该组设备中的 附加设备被设定为特定操作状态的用户输入,然后提示用户将现有场景修 改为包括将附加设备设定为特定操作状态。例如,从用户接收到场景命令 “派对时间”,并且响应于接收到场景命令,提供使得客厅音乐播放器打 开、客厅灯调至15%的亮度和客厅迪斯科球开启的指令。然后,在接收到 “派对时间”场景命令的预先确定的持续时间内,检测到使得客厅空调被设定为70度的用户输入。例如,检测到客厅空调的设定点改变为70度。 响应于检测到用户输入,向用户提供提示。提示询问用户是否希望与自定 义场景命令“派对时间”相关联地存储客厅空调设备的操作状态“70 度”。例如,提示询问“您是否想在‘派对时间’场景中添加将客厅空调设定 为70度?”接收到响应于该提示的用户输入。用户输入确认或拒绝该提示。响应于接收到确认该提示的用户输入,客厅空调设备的操作状态“70 度”与自定义“场景”命令相关联地存储。在存储后,响应于接收到自定 义场景命令“派对时间”,(例如,由用户设备或服务器)提供使得客厅 音乐播放器开启、客厅等调至15%的亮度、客厅迪斯科球开启、客厅的空 调被设定为70度的指令。相反,响应于接收到拒绝该提示的用户输入,过程800放弃与自定义“场景”命令相关联地存储客厅空调设备的操作状态 “70度”。
图11示出了根据各种示例的用于操作数字助理的过程1100。例如, 过程1100使用实现数字助理的一个或多个电子设备(例如,设备104,106, 200,400或600)执行。在一些示例中,该过程在实现数字助理的客户端-服 务器系统(例如,系统100)处执行。可通过任何方式在服务器(例如, DA服务器106)与客户端(例如,用户设备104)之间划分该过程的框。在过程1100中,一些框被任选地组合,一些框的顺序被任选地改变,并且 一些框被任选地省略。在一些示例中,仅执行以下参考图11所述的特征或 框的子集。另外,普通技术人员将了解到,上述过程800的细节也以类似 的方式适用于下述过程1100。例如,过程1100可选地包括上述过程800的 特征中的一个或多个特征(反之亦然)。为了简洁起见,下面不再重复这 些细节。
在框1102处,接收表示用户请求的话语输入。框1102与上述框802 类似或完全相同。例如,话语输入是语音输入或文本输入,并且呈自然语 言形式。在一些示例中,用户请求限定对具有已建立位置的设备(例如, 设备130,132,134或136)执行动作的请求。另外,用户请求限定在执行动 作之前需要满足的标准。在一些示例中,该标准与具有已建立位置的第二 设备相关联。例如,话语输入是“在达到80度时关闭百叶窗”。
在框1104处,确定话语输入是否与具有已建立位置的设备有关。具体 地讲,该确定包括确定话语输入是否正在请求具有已建立位置的设备执行 动作。框1104与上述框804类似或完全相同。例如,确定话语输入是否对 应于与可执行意图相关联的域,所述可执行意图是使用具有已建立位置的 设备执行任务。如果话语输入被确定为对应于这个域,那么话语输入被确 定为与具有已建立位置的设备相关。响应于确定话语输入与具有已建立位置的设备相关,执行框1106。相反,响应于确定话语输入与具有已建立位 置的设备无关,执行框1105。具体地讲,在框1105处,过程1100放弃检 索表示具有已建立位置的一组设备的数据结构。
在框1106,检索表示具有已建立位置的一组设备的数据结构。框1106 与上述框806类似或完全相同。具体地讲,从用户设备检索数据结构(例 如,用户设备200的用户数据和模型231)或从服务器检索数据结构(例 如,DA服务器106的数据和模型116)。在一些示例中,数据结构限定已 建立位置中的多个区域之间的分级关系。数据结构进一步限定该组设备中 的每个设备相对于多个区域的关系。数据结构与参考图9描述的数据结构 900类似或完全相同。
在框1108处,使用在框1106检索到的数据结构来确定对应于话语输 入的用户意图。使用自然语言处理(例如,利用自然语言处理模块732、词 汇744和用户数据748)执行框1108。用户意图与要由具有已建立位置的 设备执行的动作相关联。确定用户意图因此包括基于话语输入和数据结构 来确定要由设备执行的动作(例如,如框812所述)。例如,从“在达到 80度时关闭百叶窗”的话语输入且基于数据结构,确定要由设备执行的动 作是致动百叶窗使得百叶窗关闭。
确定要由设备执行的动作包括确定对应于话语输入的一个或多个可能 设备特征(例如,如框808所述)。例如,基于话语输入中的短语“关闭 百叶窗”,确定一个或多个可能设备特征包括“位置”。确定要由设备执 行的动作进一步包括基于数据结构来确定对应于话语输入的建立位置的一 个或多个候选设备(例如,如框810所述)。例如,基于话语输入中的短 语“关闭百叶窗”,确定一个或多个候选设备包括在数据结构中表示的具 有操作状态“打开”的一个或多个“百叶窗”。然后,从一个或多个候选 设备确定执行该动作的设备。例如,基于在一个或多个可能设备特征与一 个或多个候选设备的一个或多个实际设备特征之间共有的一个或多个重叠 设备特征,从一个或多个候选设备确定该设备(例如,如框812所述)。 在需要消除多个动作或设备之间的歧义的示例中,检索附加信息(例如, 上下文信息、候选设备的操作状态、动作的突出性,用户位置等)。如上 文在框812中所讨论的,附加信息用于消除多个动作或设备之间的歧义, 并且确定要由具有已建立位置的设备执行的预期动作。
要由具有已建立位置的设备执行的动作包括使得设备的至少一部分改 变位置。具体地讲,该动作包括致动设备以使得设备的至少一部分改变位 置。例如,基于“在达到80度时关闭百叶窗”的话语输入,动作被确定为 包括致动百叶窗以使得百叶窗从打开位置改变为关闭位置。类似地,对于 话语输入“在我进入房屋后关闭车库门”,动作被确定为包括致动车库电 机以使得车库门从打开位置改变为关闭位置。
在一些示例中,要由设备执行的动作使得设备锁定或解锁。例如,基 于“在园丁到达时打开门”的话语输入,确定动作包括解锁建立位置的侧 门。对应于使得具有已建立位置的设备锁定或解锁的动作的其他示例话语 输入包括“在我离开房屋时锁上保险箱”或“在我睡觉时锁上所有门 窗”。
在一些示例中,要由设备执行的动作使得设备将被激活或去激活。例 如,基于“在我离开房屋时打开安保装置”的话语输入,确定动作包括启 动房屋安保装置。使得设备激活或去激活的其他示例性动作包括打开或关 闭设备的电源,使得设备置于“活动”模式或“睡眠”模式,或者使得设 备“设防”或“撤防”。
在一些示例中,要由设备执行的动作使得设备的设定点改变。例如, 基于“在我回家时将恒温器设定为76”的话语输入,动作被确定为包括使 得恒温器的温度设定点改变。使得设备的设定点改变的其他示例性动作包 括设定加湿器的湿度或设定烤箱的温度。在其他示例中,要由设备执行的 动作使得设备的参数值改变。例如,动作使得音乐播放器的音量级别改变 为特定值(例如,1至10),使得风扇的风扇速度改变为特定设置(例 如,高、中、低),使得喷洒站的喷洒持续时间改变为特定持续时间,或 者使得窗户打开一定的百分比。在一些示例中,在话语输入中使用相对或 有歧义的词语来限定该动作。例如,在话语输入“随着火车经过使电视机 的声音越来越大”中,“越来越大”一词是有歧义的相对词语。过程1100 可以确定对应于具有相对或有歧义的词语的这种话语输入的明确动作。具 体地讲,在本示例中,过程1100可以确定动作包括使电视机的音量级别相 对于当前音量级别或相对于检测到的环境噪声水平增加预先确定的量。
在一些示例中,用户意图与在执行动作之前满足的标准相关联。在这 些示例中,确定用户意图进一步包括基于话语输入和数据结构来确定要在 执行动作之前要满足的标准。例如,返回“在达到80度时关闭百叶窗”的 话语输入,基于话语输入和数据结构确定要在关闭百叶窗之前满足的标准 是在建立位置的特定温度传感器处检测到温度值等于或大于80华氏度。
该标准与建立位置的第二设备的设备特征相关联。例如,话语输入 “在达到80度时关闭百叶窗”的标准与已建立位置的温度传感器的设备特 征“温度”相关联。确定用户意图包括基于话语输入和数据结构来确定与 标准相关联的第二设备的设备特征。以与上文在框808-812所述的类似的方 式确定第二设备。具体地讲,从话语输入的限定标准的部分确定一个或多 个第二可能设备特征和一个或多个第二候选设备。然后,基于一个或多个第二可能设备特征与一个或多个候选设备的一个或多个实际设备特征共有 的一个或多个第二重叠设备特征确定第二设备(例如,如框812所述)。 另外,在一些示例中,当确定第二设备时,考虑第二设备相对于执行动作 的设备的关系。例如,如果存在无法基于数据结构而消除歧义的两个恒温 器,则第二设备被确定为定位在更靠近百叶窗的位置或与百叶窗相相同的 区域相关联的恒温器。
在一些示例中,该标准与第二设备的操作状态相关联。具体地讲,该 标准包括第二设备的操作状态为参考操作状态的要求。例如,话语输入为 “当车库门打开时将恒温器设为72度”。在该示例中,该标准为检测到车 库门具有操作状态“打开”。更具体地讲,该标准包括第二设备的操作状 态从第二参考操作状态转变为第三参考操作状态的要求。例如,该标准包 括检测到车库门的操作状态从“关闭”操作状态转变为“打开”操作状 态。在另一个示例中,其中话语输入为“在打开电视的同时打开客厅 灯”,该标准包括检测到电视的操作状态从“关闭”操作状态转变为“打 开”操作状态。
在一些示例中,该标准包括表示实际设备特征的实际值大于、等于或 小于阈值的要求。例如,话语输入为“当温度降到低于68度时关闭窗 户”。在该示例中,该标准与具有已建立位置的温度传感器的设备特征 “温度”相关联。具体地讲,该标准包括检测到表示电子温度计的设备特 征“温度”的实际值(例如,温度读数)小于阈值68度。
在一些示例中,该标准是在话语输入中使用一个或多个相对的或有歧 义的词语来限定的。使用一个或多个相对的或有歧义的词语来限定该标准 的话语示例包括“当外面阳光明媚时关闭百叶窗”、“当冷时打开加热 器”、“当变得嘈杂时加大电视音量”。确切地,在这些示例中,该标准 是在话语输入中使用相对的或有歧义的词语诸如“阳光明媚”、“冷”和 “嘈杂”来限定的。如以下更详细论述,过程1100可以根据话语输入确定 明确的标准,而不管是否在话语输入中使用了相对的或有歧义的词语来限 定该标准。
在一些示例中,确定用户意图包括基于话语输入而确定与该标准相关 联的阈值。具体地讲,该阈值在话语输入中是有歧义的并且因此可能需要 根据话语输入来解释定量的阈值。例如,话语输入为“当太热时打开厨房 风扇”。在该示例中,基于字词“当太热时”,该标准被确定为检测到电 子温度计的温度超过阈值。该阈值是基于短语“太热”和一个或多个知识 来源而确定的。确切地,来自一个或多个知识来源的信息是根据短语“太 热”而检索的。例如,知识来源可以提供已建立位置的历史温度分布并且 因此阈值被确定为温度分布的预定百分比数(例如,80%或90%)。在另 一个示例中,知识来源使词语“热”与对应设备特征的数字阈值相关联。 例如,“热”与大于在具有已建立位置的电子温度计处所测量的90度相关 联。类似地,对于其中基于有歧义的形容词来限定标准的其他示例性话语 输入来说,知识来源为相应的设备特征提供一个对应的阈值。例如,基于 知识来源,标准“当天黑时”与小于0.2勒克斯相关联,并且标准“当嘈杂 时”与大于90分贝相关联。
应当认识到,该标准可以与具有已建立位置的任何传感器的任何设备 特征相关联。例如,该传感器是具有已建立位置的独立传感器(例如,独 立电子温度计、独立光传感器、独立运动传感器等)或集成在具有已建立 位置的设备中的传感器(例如,中心加热器所用的恒温器的温度计、夜灯 的光电二极管等)。例如,该标准与具有已建立位置的湿度传感器的设备 特征“湿度”相关联。具体地讲,话语输入为“当开始下雨时关闭浴室窗 户”或“当变得太干时打开加湿器”。如上所述,有歧义的标准“太干” 或“开始下雨”的对应定量值是基于一个或多个知识来源而确定的。例 如,“太干”被确定为对应于检测到相对湿度小于预定阈值(例如, 25%)的标准。类似地,“开始下雨”被确定为对应于在湿度传感器处检 测到相对湿度等于100%或在具有已建立位置的水分传感器处检测到水分含 量大于预定阈值(例如,50%)的标准。
在一些示例中,该标准与具有已建立位置的亮度传感器(例如,光传 感器、光电二极管)的设备特征“亮度”相关联。具体地讲,话语输入为 “当天变黑时打开客厅灯”、“在有阳光直射的情况下关闭百叶窗”或 “当变得太亮时将遮光物降下一半”。在这些示例中,确定有歧义的标准 “黑”、“直射阳光”或“太亮”的对应定量值。例如,“黑”被确定为 对应于在具有已建立位置的亮度传感器处检测到亮度小于预定值(例如, 0.2勒克斯)的标准。类似地,“直射阳光”或“太亮”对应于检测到亮度 大于第二预定值(例如,25000勒克斯)的标准。
在一些示例中,该标准与具有已建立位置的空气质量传感器的设备特 征“空气质量”相关联。空气质量传感器可以例如是测量空气中的颗粒的 尺寸和浓度的颗粒传感器或用于测量一种或多种特定气体(例如,一氧化 碳、臭氧、二氧化氮、二氧化硫、丙酮、醇类等)的浓度的气体传感器。 具有与具有已建立位置的空气质量传感器的设备特征“空气质量”相关联 的标准的示例性话语输入包括“当空气质量不安全时打开空气过滤器”或 “当检测到危险性气体时关闭窗户”。在这些示例中,该标准是检测到 (例如,在具有已建立位置的空气质量传感器处)空气中的颗粒水平或特 定气体的浓度水平超过预定阈值。
在一些示例中,该标准与已建立位置处的认证传感器的认证特征相关 联。认证特征是例如声纹、密码、指纹、个人标识号码等。认证设备是被 配置为获得或接收认证数据的设备(例如,相机、电容触摸传感器、麦克 风、小键盘、安全控制台等)。例如,话语输入为“当保姆到达时打开 门”或“当John到达时打开门”。在这些示例中,该标准包括与认证设备 的认证特征相关联的置信度值大于或等于预定阈值的要求。例如,保姆或 John在具有已建立位置的前门处与认证设备进行交互以提供认证数据(例 如,语音样本、指纹、密码、面部图像等)。对认证数据进行处理并将其 与参考认证数据(例如,参考声纹、参考指纹、参考密码等)进行比较以 确定置信度值。具体地讲,该置信度值表示从认证设备接收的认证数据与参考认证数据匹配的概率。在这些示例中,用于将门打开或开锁的标准是 获得大于或等于预定阈值的置信度值。
在一些示例中,该标准是使用所检索的上下文信息来确定的。具体地 讲,话语输入使用一个或多个相对的或有歧义的词语来定义该标准并且确 定该标准要求例如利用上下文信息来消除这一个或多个相对的或有歧义的 词语的歧义。例如,在一个示例中,话语输入为“当她到达时打开门”。 在该示例中,话语输入限定了用于使用有歧义的词语“她”来打开门的标 准。因此,确定该标准要求使用例如上下文信息来消除词语“她”的歧 义。在一个示例中,在接收到话语输入之前,接收到保姆的陈述她将在15 分钟内到达的文本消息。确切地,当电子设备显示保姆的文本消息时,从 用户接收到话语输入“当她到达时打开前门”。在该示例中,来自保姆的 文本消息是可以用于消除该话语输入中的词语“她”的歧义的上下文信 息。具体地讲,基于该文本消息,确定“她”是指保姆。因此,在该示例 中,基于话语输入和文本消息,该标准被确定为包括在与用户房屋的前门 相关联的认证设备处接收到对应于保姆的认证数据。
在一些示例中,该标准包括该动作已在预定时间段内执行少于预定次 数这一要求。例如,话语输入为“允许Owen一周内三次访问TV”。在该 示例中,该标准要求确认识别为Owen的个体在当前周内访问TV少于三 次。在另一示例中,话语输入为“允许保姆在每天下午3点至4点之间进 入一次”。在该示例中,该标准包括对于识别为保姆的个体来说,前门在这一天下午3点至4点之间开锁少于一次这一确定。应当认识到,在这些 示例中,该标准进一步包括确认个体的身份(例如,“Owen”和“保 姆”)。具体地讲,个体的身份(例如,Owen或保姆)是基于从个体接收 的认证数据来确认的。例如,可以确定,在下午3点至4点之间从前门的 个体接收的认证数据对应于保姆。如果确定对于保姆来说,前门在这一天 下午3点至4点之间少于一次开锁,那么将前门开锁。
在一些示例中,该标准包括在电子设备上指出的时间等于参考时间或 在参考时间之后或在参考时间范围内的要求。该参考时间是关于小时和分 钟或关于特定日期的。在一些示例中,该参考时间为绝对时间。例如,话 语输入为“在下午7点时打开门厅灯”。在该示例中,该标准包括检测到 当前时间为下午7点。在另一示例中,话语输入为“在下午7点之后关闭 车库门”。在该示例中,该标准为检测到当前时间是在下午7点以后。在 又一示例中,话语输入为“在下午10点至上午7点打开夜灯”。在该示例 中,该标准为检测到当前时间是在下午10点至上午7点范围内。
在一些示例中,确定用户意图包括根据话语输入确定参考时间。具体 地讲,对于话语输入“在圣诞前夜打开圣诞灯”来说,执行数据库搜索以 确定“圣诞前夜”是指12月24日。另外,作出打开灯的动作是通常在晚 上执行的一个动作这一确定。基于该确定,确定参考时间是在12月24日 的傍晚(例如,下午5点)。在其他示例中,话语输入为“在春节禁用喷洒装置”或“在下一个满月期间关闭门厅灯”。在这些示例中,获得对应 于“春节”和“下一个满月”的相关日期并且因此基于该相关日期确定参 考时间。
在一些示例中,话语输入指定相对时间而不是绝对时间。例如,话语 输入为“在圣诞节之前的两周打开圣诞灯”。在该示例中,过程1100首先 确定对应于“圣诞节”(12月25日)的初始参考时间并且随后确定与话语 输入中的初始参考时间相关联的持续时间(例如,两周)。因此,与该标 准相关联的参考时间是基于初始参考时间和持续时间而确定的。确切地, 该参考时间被确定为12月11日,这是圣诞节(12月25日)之前两周。在 该示例中,话语输入中的所确定的标准因此检测到当前时间为参考时间12 月11日。
在一些示例中,用户意图与在执行动作之前满足的不止一个标准相关 联。例如,话语输入“允许John在每天下午3点至5点之间打开电视一 次”包括三个标准:成功认证请求者为“John”这一认证标准;在下午3 点至5点的时间范围内这一时间标准;以及John已在这一天的下午3点至 5点的时间范围内打开电视少于一次这一频率标准。在另一示例中,话语输 入“让房屋清洁员在上午9点至10点之间进入”包括多个认证标准,该多 个认证标准包括:由接近传感器检测到有人站在前门;基于前门在认证设 备处接收的认证数据而成功地认证这个人;以及从与房屋清洁员相关联的 设备处接收到文本消息。
在一些示例中,用户意图与第一标准和第二标准相关联并且满足第二 标准要求第一标准得到满足。例如,话语输入为“在我离开房屋后的15分 钟打开喷洒装置”。在该示例中,话语输入定义两个标准。第一标准要求 检测到用户离开房屋(例如,使用运动传感器和/或基于车库门的打开和关 闭)。第二标准要求当前时间为参考时间,该参考时间为检测到用户离开 房屋的时间之后15分钟。在该示例中,在第一标准没有得到满足的情况下 无法满足第二标准,由于第二标准是基于正得到满足的相对于第一标准的 参考标准的。
虽然以上描述的示例主要涉及由具有已建立位置的设备执行的动作, 但应当认识到,在一些示例中,用户意图与由与具有已建立位置的该组设 备分开的设备所执行的动作相关联。具体地讲,该设备可能并不以数据结 构表示。例如,用户意图与由用户设备(例如,用户设备104)或服务器 (例如,DA服务器106)执行的动作相关联。在一个这样的示例中,该动 作包括提供与该标准相关联的通知。例如,基于话语输入“当前门打开时 告诉我”,所确定的用户意图与检测到前门正打开这一标准相关联。在确 定该标准得到满足时由用户设备执行的动作包括在用户设备处提供通知 (例如,文本或语音)。该通知指出前门已打开。对应于由用户设备执行 的动作的话语输入的其他示例包括“当保姆到达时发短信告诉她进入密 码”、“当家用报警器被触发时提醒我”、“当有人打开电视时告诉 我”、“当烟雾报警器发出声音时呼叫消防部门”。在这些示例中,该标 准与具有已建立位置的设备相关联,而该动作将由用户设备执行。
在框1110处,所确定的动作和所确定的用于执行该动作的设备是联系 所确定的标准而存储的。例如,指令是基于所确定的动作、设备和标准而 存储的。具体地讲,这些指令致使用户设备连续地或周期性地监视与该标 准相关联的数据以确定该标准是否得到满足。与该标准相关联的数据为例 如用户设备的数据、具有已建立位置的传感器的数据或指出已建立位置处 的设备的操作状态的数据。在一些示例中,与该标准相关联的数据由该设备主动地检索。在一些示例中,该设备被动地接收与该标准相关联的数据 并分析该数据以确定该标准是否得到满足。
所存储的指令还致使用户设备响应于确定该标准得到满足而执行任 务。例如,这些指令致使用户设备发射致使该动作由该设备执行的命令。 该动作因此由该设备根据确定该标准得到满足来执行。
在框1112处,接收与该标准相关联的数据。如上所述,该数据是从具 有已建立位置的设备接收的。具体地讲,返回示例性话语输入“当达到80 度时关闭百叶窗”,所接收的数据是从具有已建立位置的恒温器处获得的 温度数据。该温度数据由恒温器周期性地发送并且由用户设备接收。在一 些示例中,用户设备主动地检索从恒温器获得的温度数据。在其他示例 中,该数据是数据生成的或是从用户设备获得的(例如,时间数据、电子 邮件数据、消息数据、位置数据、传感器数据等)。在其他示例中,该数 据是从数据结构中检索的(例如,操作状态,诸如接通/断开、锁定/解锁、 打开/关闭等)。
在框1114处,从框1112的所接收数据来确定该标准是否得到满足。 具体地讲,分析所接收的数据以确定该标准是否得到满足。例如,所接收 的数据表明恒温器正检测到84度的温度。基于话语输入“当达到80度时 关闭百叶窗”,该标准是检测到恒温器的温度等于或大于80度的参考温 度。在该示例中,根据所接收的数据,确定该标准已得到满足。
响应于确定该标准已得到满足,执行框1116。相反地,响应于确定该 标准已得到满足,过程1100回到框1112,在该框处,接收与该标准相关联 的新的数据或更新的数据。过程1100因此响应于确定该标准已得到满足而 放弃执行框1116。
在框1116处,提供致使该组设备中的该设备执行该动作的指令。返回 示例性话语输入“当达到80度时关闭百叶窗”,提供致使百叶窗关闭的指 令。框1116与上述框814类似或完全相同。
5.电子设备
图12示出根据各种所述示例的原理进行配置的电子设备1200的功能 框图。该设备的功能块可以任选地由执行各种所述示例的原理的硬件、软 件或硬件和软件的组合来实现。本领域的技术人员应当理解,图12中所述 的功能块可以任选地被组合或被分离为子块,以便实现各种所述示例的原 理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合、 分离或进一步限定。
如图12所示,电子设备1200包括:触摸屏显示器单元1202,该触摸 屏显示器单元被配置为显示图形用户界面并且从用户接收输入(例如,文 本输入);音频输入单元1204,该音频输入单元被配置为从用户接收音频 输入(例如,语音输入);以及通信单元1206,该通信单元被配置为发送 和接收信息。电子设备1200进一步包括处理单元1208,该处理单元耦接至 触摸屏显示器单元1202、音频输入单元1204和通信单元1206。在一些示 例中,处理单元1208包括接收单元1210、确定单元1212、检索单元 1214、提供单元1216、获取单元1218、修改单元1220、输出单元1222、 检测单元1224和存储单元1226。
根据一些实施方案,处理单元1208被配置为(例如,利用接收单元 1212并且经由触摸屏显示器单元1202或音频输入单元)接收表示用户请求 的话语输入(例如,框802的话语输入)。处理单元1208被进一步配置为 (例如,利用确定单元1212)确定对应于话语输入的一个或多个可能设备 特征(例如,框808的可能设备特征)。处理单元1208被进一步配置为 (例如,利用检索单元1214)检索表示具有已建立位置的一组设备的数据 结构(例如,框806的数据结构)。处理单元1208被进一步配置为基于数 据结构而(例如,利用确定单元1212)从该组设备中确定一个或多个候选 设备(例如,框810的候选设备)。该一个或多个候选设备对应于话语输 入。处理单元1208被进一步配置为基于一个或多个可能设备特征和一个或 多个候选设备的一个或多个实际设备特征,(例如,利用确定单元1212) 确定对应于话语输入的用户意图(例如,框812的用户意图)。处理单元 1208被进一步配置为(例如,利用提供单元1216和通信单元1206)提供 致使一个或多个候选设备中的设备执行对应于用户意图的动作的指令(例 如,框814的指令)。
在一些示例中,确定用户意图进一步包括确定对应于话语输入的一个 或多个候选用户意图(例如,框812的候选用户意图),以及基于一个或 多个可能设备特征和一个或多个实际设备特征而从一个或多个候选用户意 图中确定用户意图。
在一些示例中,确定用户意图进一步包括基于一个或多个可能设备特 征和一个或多个实际设备特征而从一个或多个候选设备中确定设备(例 如,框812的设备)。
在一些示例中,处理单元1208被进一步配置为(例如,利用确定单元 1212)确定在一个或多个可能设备特征与一个或多个实际设备特征之间共 同的一个或多个重叠设备特征(例如,框812的重叠设备特征)。该用户 意图是基于一个或多个重叠设备特征来确定的。
在一些示例中,处理单元1208被进一步配置为(例如,利用确定单元 1212)确定用户相对于已建立位置中的区域的相对位置(例如,框812)。 话语输入与用户相关联并且用户意图是基于相对位置确定的。
在一些示例中,处理单元1208被进一步配置为(例如,利用获取单元 1218)获得一个或多个候选设备各自的操作状态(例如,框812)。用户意 图是基于一个或多个候选设备中每个候选设备的操作状态确定的。
在一些示例中,确定用户意图进一步包括:基于一个或多个可能设备 特征和一个或多个实际设备特征而确定对应于话语输入的第一候选用户意 图和对应于话语输入的第二候选用户意图;确定与第一候选用户意图相关 联的第一动作的第一突出性和与第二候选用户意图相关联的第二动作的第 二突出性;以及将第一用户意图和第二用户意图基于第一突出性和第二突 出性排序(例如,框812)。该用户意图是基于该排序确定的。
在一些示例中,确定用户意图进一步包括基于一个或多个可能设备特 征和一个或多个实际设备特征,确定对应于话语输入的两个或更多个候选 用户意图以及确定该两个或更多个候选用户意图是否能够消除歧义(例 如,框812)。确定用户意图进一步包括响应于确定该两个或更多个候选用 户意图不能消除歧义,输出请求附加信息的对话(例如,框812)。确定用 户意图进一步包括接收响应于输出对话的用户输入以及基于用户输入而将 这两个或更多个候选用户意图消除歧义以确定用户意图(例如,框812)。
在一些示例中,确定一个或多个可能设备特征进一步包括确定对应于 话语输入中的第一词语的一个或多个第二可能设备特征以及确定对应于话 语输入中的第二词语的一个或多个第三可能设备特征,其中该一个或多个 可能设备特征是基于一个或多个第二可能设备特征和一个或多个第三可能 设备特征确定的(例如,框808)。
在一些示例中,处理单元1208被进一步配置为(例如,利用确定单元 1212)确定话语输入是否对应于域(例如,框804),该域与基于具有已建 立位置的设备执行任务的可执行意图相关联。检索表示具有已建立位置的 该组设备的数据结构是响应于确定话语输入对应于域来执行的。
在一些示例中,处理单元1208被进一步配置为基于话语输入中的词语 (例如,利用检索单元1214)检索联系人信息,其中该组设备的一个或多 个候选设备是基于所检索的联系人信息而确定的(例如,框810)。
在一些示例中,确定该组设备中的一个或多个候选设备进一步包括确 定与话语输入中的第二词语相关联的一个或多个另选词语,其中一个或多 个候选设备是基于一个或多个另选词语而确定的(例如,框810)。
在一些示例中,一个或多个另选词语中的另选词语是基于在接收话语 输入之前在电子设备处接收的第二用户输入的(例如,框810)。
在一些示例中,处理单元1208被进一步配置为(例如,利用确定单元 1212)确定对应于话语输入的位置。处理单元1208被进一步配置为基于该 位置,(例如,利用确定单元1212)从多个已建立位置中确定已建立位置 (例如,框806)。
在一些示例中,数据结构定义已建立位置中的多个区域之间的分级关 系以及该组设备中的每个设备与这多个区域之间的关系(例如,框806)。
在一些示例中,该组设备中的每个设备和多个区域中的每个区域是在 数据结构中相对于与所接收的话语输入相关联的临时会话密钥而识别的 (例如,框806)。
在一些示例中,数据结构定义与该组设备中的每个设备相关联的一个 或多个实际设备特征(例如,框806)。在一些示例中,数据结构定义该组 设备中的每个设备的操作状态(例如,框806)。
在一些示例中,处理单元1208被进一步配置为(例如,利用接收单元 1210)接收已建立位置中的第一设备的第一属性和已建立位置中的第二设 备的第二属性。处理单元1208被进一步配置为基于第一属性和第二属性而 相对于已建立位置(例如,利用确定单元1212)确定第一设备与第二设备 之间的关系。处理单元1208被进一步配置为(例如,利用提供单元1216) 提供基于所确定的关系修改数据结构的提示。处理单元1208被进一步配置为(例如,利用接收单元1210并且经由触摸屏显示器单元1202或音频输 入单元1204)接收响应于该提示的第三用户输入。处理单元1208被进一步 配置为响应于接收到该第三用户输入,(例如,利用修改单元1220)修改 数据结构以相对于已建立位置定义第一设备与第二设备之间的所确定的关 系(例如,框806)。
在一些示例中,话语输入呈自然语言形式,并且话语输入相对于定义 该动作是有歧义的(例如,框802)。在一些示例中,话语输入呈自然语言 形式,并且话语输入相对于定义用于执行该动作的该设备是有歧义的(例 如,框802)。
在一些示例中,处理单元1208被进一步配置为在提供指令之前,(例 如,输出单元1222)输出确认该动作已执行并且该设备执行该动作的第二 会话(例如,框814)。处理单元1208被进一步配置为在提供指令之前, (例如,利用接收单元1210并且经由触摸屏显示器单元1202或音频输入 单元1204)接收响应于该第二输出会话的第四用户输入(例如,框814)。这些指令是响应于接收到第四用户输入而提供的。
在一些示例中,处理单元1208被进一步配置为根据一个事件,(例 如,利用检测单元1224)检测致使该组设备中的多个设备被设置为相应操 作状态的一个或多个用户输入。处理单元1208被进一步配置为响应于检测 到一个或多个用户输入,根据自定义命令(例如,利用提供单元1216)提 供存储多个设备的相应操作状态的第二提示。处理单元1208被进一步配置 为(例如,利用接收单元1210并且经由触摸屏显示器单元1202或音频输 入单元1204)接收响应于该第二提示的用户输入。处理单元1208被配置为 响应于接收到第五用户输入,根据自定义命令(例如,利用存储单元)存 储多个设备的相应操作状态,其中响应于接收到该自定义命令,该电子设 备致使多个设备被设置为相应的操作状态(例如,框814)。
在一些示例中,处理单元1208被进一步配置为根据该组设备中正被设 置为第二相应操作状态的第二多个设备,(例如,利用检测单元1224)检 测致使该组设备中的第三设备被设置为第三操作状态的第六用户输入,其 中第二多个设备的第二相应操作状态是根据第二自定义命令而存储的。处 理单元1208被进一步配置为响应于检测到第六用户输入,根据第二自定义 命令(例如,利用提供单元1216)提供存储第三设备的第三操作状态的第三提示。处理单元1208被进一步配置为(例如,利用接收单元1210并且 经由触摸屏显示器单元1202或音频输入单元1204)接收响应于该第三提示 的第七用户输入。处理单元1208被进一步配置为响应于接收到该第七用户 输入,根据第二自定义命令存储第三设备的第三操作状态,其中响应于在 根据第二自定义命令存储第三设备的第三操作状态之后接收到第二自定义 命令,该电子设备致使第二多个设备被设置为第二相应操作状态并且第三 设备被设置为第三操作状态(例如,框814)。
以上参考图8描述的操作任选地由图1至图4、图6A至图6B、图7A 和图12描绘的部件来实现。例如,过程800的操作可以由以下各项中的一 者或多者来实现:操作系统718;应用程序模块724;I/O处理模块728; STT处理模块730;自然语言处理模块732;任务流处理模块736;服务处 理模块738;或处理器220,410,704。本领域人员会清楚地知道如何基于在图1至图4、图6A至图6B和图7A中所描绘的部件来实现其他过程。
图13示出根据各种所述示例的原理进行配置的电子设备13200的功能 框图。该设备的功能块可以任选地由执行各种所述示例的原理的硬件、软 件或硬件和软件的组合来实现。本领域的技术人员应当理解,图13中所述 的功能块可以任选地被组合或被分离为子块,以便实现各种所述示例的原 理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合、 分离或进一步限定。
如图13所示,电子设备1300包括:触摸屏显示器单元1302,该触摸 屏显示器单元被配置为显示图形用户界面并且从用户接收输入(例如,文 本输入);音频输入单元1304,该音频输入单元被配置为从用户接收音频 输入(例如,语音输入);以及通信单元1306,该通信单元被配置为发送 和接收信息。电子设备1300进一步包括处理单元1308,该处理单元耦接至 触摸屏显示器单元1302、音频输入单元1304和通信单元1306。在一些示 例中,处理单元1308包括接收单元1310、确定单元1312、检索单元 1314、提供单元1316和存储单元1318。
根据一些实施方案,处理单元1308被配置为(例如,利用接收单元 1310并且经由触摸屏显示器单元1302或音频输入单元1304)接收表示用 户请求的话语输入(例如,块1102的话语输入)。处理单元1708被进一 步配置为(例如,利用确定单元1312)确定话语输入是否与具有已建立位 置的设备相关(例如,块1104)。处理单元1308被进一步配置为响应于确 定话语输入与具有已建立位置的设备相关,(例如,利用检索单元1314) 检索表示具有已建立位置的一组设备的数据结构(例如,块1106的数据结 构)。处理单元1308被进一步配置为使用数据结构,(例如,利用确定单 元1312)确定对应于话语输入的用户意图(例如,块1108的用户意图)。 该用户意图与将由该组设备中的设备执行的动作和在执行该动作之前满足 的标准相关联。处理单元1308被进一步配置为(例如,利用存储单元 1318)存储与该标准关联的动作和设备,其中该动作由该设备根据确定该 标准得到满足来执行(例如,块1110)。
在一些示例中,该标准与该组设备中的第二设备的实际设备特征相关 联(例如,块1108)。
在一些示例中,确定用户意图进一步包括1)基于话语输入和数据结构 确定第二设备的实际设备特征(例如,块1108);以及2)基于数据结构和 话语输入确定该组设备中的第二设备(例如,块1108)。
在一些示例中,该标准包括表示实际设备特征的实际值大于、等于或 小于阈值(例如,块1108的阈值)的要求。
在一些示例中,确定用户意图进一步包括基于话语输入来确定阈值 (例如,块1108)。
在一些示例中,实际设备特征为湿度,并且第二设备包括湿度传感器 (例如,块1108)。在一些示例中,实际设备特征为温度,并且第二设备 包括温度传感器(例如,块1108)。在一些示例中,实际设备特征为亮 度,并且第二设备包括亮度传感器(例如,块1108)。在一些示例中,实 际设备特征为空气质量,并且第二设备包括空气质量传感器(例如,块 1108)。在一些示例中,实际设备特征为认证特征,并且第二设备包括认 证设备(例如,块1108)。
在一些示例中,该标准包括置信度值大于或等于阈值的要求(例如, 块1108)。该置信度值表示从认证设备接收的认证数据与参考认证数据匹 配的概率。
在一些示例中,该标准与该组设备中第三设备的操作状态相关联(例 如,块1108)。在一些示例中,该标准包括第三设备的操作状态等于参考 操作状态的要求(例如,块1108)。在一些示例中,该标准包括第三设备 的操作状态从第二参考操作状态转变为第三参考操作状态的要求(例如, 块1108)。在一些示例中,该标准包括动作已在预定时间段内执行少于预 定次数的要求(例如,块1108)。
在一些示例中,该标准包括电子设备1300的时间等于或大于参考时间 的要求(例如,块1108)。在一些示例中,确定用户意图进一步包括根据 话语输入确定参考时间(例如,块1108)。在一些示例中,确定参考时间 进一步包括1)根据话语输入确定第二参考时间(例如,块1108);以及2) 确定与参考时间相关联的持续时间,其中参考时间是基于第二参考时间和 持续时间而确定的(例如,块1108)。
在一些示例中,处理单元1308被进一步配置为(例如,利用接收单元 1310并且经由通信单元1306)接收与该标准相关联的数据(例如,块1112 的数据)。处理单元1308被进一步配置为根据所接收的数据(例如,利用 确定单元1312)确定该标准是否已得到满足(例如,块1114)。处理单元 1308被进一步配置为响应于确定该标准已得到满足,(例如,利用提供单 元1316)提供致使该组设备中的该设备执行该动作的指令(例如,块1116 的指令)。
在一些示例中,用户意图与在执行动作之前满足的第二标准相关联 (例如,块1108)。在一些示例中,满足第二标准要求该标准得到满足 (例如,块1108)。
在一些示例中,处理单元1308被进一步配置为(例如,利用接收单元 1310并且经由通信单元1306)接收与第二标准相关联的第二数据(例如, 块1112)。处理单元1308被进一步配置为根据所接收的第二数据(例如, 利用确定单元1312)确定第二标准是否得到满足(例如,块1114),其中 这些指令是响应于确定第二标准得到满足而提供的(例如,块1116)。
在一些示例中,该动作包括提供与该标准相关联的通知(例如,块 1108)。在一些示例中,由该设备执行该动作致使该设备的一部分改变位 置(例如,块1108)。在一些示例中,由该设备执行该动作致使设备锁定 或解锁(例如,块1108)。在一些示例中,由该设备执行该动作致使该设 备被激活或去激活(例如,块1108)在一些示例中,由该设备执行该动作致使该设备的设定点改变(例如,块1108)。
在一些示例中,处理单元1308被进一步配置为响应于确定该标准得到 满足,(例如,利用提供单元1316)提供使用该设备执行该动作的提示 (例如,块1116)。处理单元1308被进一步配置为(例如,利用接收单元 1310)接收响应于该提示的用户输入(例如,块1116)。处理单元1308被 进一步配置为响应于接收到该用户输入,(例如,利用提供单元1316)提 供致使该设备执行该动作的指令(例如,块1116)。
以上参考图11描述的操作任选地由图1至图4、图6A至图6B、图 7A和图13描绘的部件来实现。例如,过程1100的操作由以下各项中的一 者或多者来实现:操作系统718;应用程序模块724;I/O处理模块728; STT处理模块730;自然语言处理模块732;任务流处理模块736;服务处 理模块738;或处理器220,410,704。本领域人员会清楚地知道如何基于在 图1至图4、图6A至图6B和图7A中所描绘的部件来实现其他过程。
根据一些具体实施,提供一种计算机可读存储介质(例如,非暂态计算 机可读存储介质),该计算机可读存储介质存储供电子设备的一个或多个处 理器执行的一个或多个程序,该一个或多个程序包括用于执行本文所述方 法或过程中的任一个的指令。
根据一些具体实施,提供了一种电子设备(例如,便携式电子设 备),该电子设备包括用于执行本文所述的方法和过程中的任一个的装 置。
根据一些具体实施,提供了一种电子设备(例如,便携式电子设 备),该电子设备包括处理单元,该处理单元被配置为执行本文所述的方 法和过程中的任一个。
根据一些具体实施,提供了一种电子设备(例如,便携式电子设 备),该电子设备包括一个或多个处理器和存储用以由一个或多个处理器 执行的一个或多个程序的存储器,该一个或多个程序包括用于执行本文所 描述的方法和过程中的任一个的指令。
出于解释的目的,前面的描述是通过参考具体实施方案来描述的。然 而,上面的例示性论述并非旨在是穷尽的或将本发明限制为所公开的精确 形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择并 描述这些实施方案是为了最好地解释这些技术的原理及其实际应用。本领 域的其他技术人员由此能够最好地利用这些技术以及具有适合于所预期的 特定用途的各种修改的各种实施方案。
虽然参照附图对本公开以及示例进行了全面的描述,但应当注意,各 种变化和修改对于本领域内的技术人员而言将变得显而易见。应当理解, 此类变化和修改被认为被包括在由权利要求书所限定的本公开和示例的范 围内。
如上所述,本发明技术的一个方面在于采集和使用得自各种来源的数 据,以改进向用户递送其可能感兴趣的启发内容或任何其他内容。本公开 预期,在一些实例中,这些所采集的数据可包括唯一地识别或可用于联系 或定位特定人员的个人信息数据。此类个人信息数据可包括人口数据、基 于位置的数据、电话号码、电子邮件地址、家庭地址、个人设备的设备特 征或任何其他识别信息。
本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受 益。例如,该个人信息数据可用于递送用户较感兴趣的目标内容。因此, 使用此类个人信息数据使得能够对所递送的内容进行有计划的控制。此 外,本公开还预期个人信息数据有益于用户的其他用途。
本公开还预期负责此类个人信息数据的收集、分析、公开、发送、存 储或其他用途的实体将遵守已确立的隐私政策和/或隐私实践。具体地,此 类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐 私性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个 人信息应当被收集用于实体的合法且合理的用途,并且不在这些合法使用 之外共享或出售。另外,此类收集应当仅在用户知情同意之后进行。另外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据 的访问,并且确保能够访问个人信息数据的其他人遵守他们的隐私政策和 程序。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受 的隐私政策和实践。
不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人 信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防 止或阻止对此类个人信息数据的访问。例如,就广告递送服务而言,本发 明的技术可被配置为在注册服务期间允许用户选择“加入”或“退出”参 与对个人信息数据的收集。又如,用户可选择不为目标内容递送服务提供 位置信息。再如,用户可选择不提供精确的位置信息,但准许传输位置区 域信息。
因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个 各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此 类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由 于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可通过 基于非个人信息数据或绝对最低限度的个人信息诸如与用户相关联的设备 所请求的内容、对内容递送服务可用的其他非个人信息或公开可用信息来 推断偏好,从而选择内容并递送给用户。

Claims (61)

1.一种用于操作数字助理的方法,所述方法包括:
在具有处理器和存储器的电子设备处:
接收表示用户请求的话语输入;
确定对应于所述话语输入的一个或多个可能设备特征;
检索表示具有已建立位置的一组设备的数据结构;
基于所述数据结构,从所述一组设备中确定一个或多个候选设备,所述一个或多个候选设备对应于所述话语输入;
基于所述一个或多个可能设备特征和所述一个或多个候选设备的一个或多个实际设备特征,确定对应于所述话语输入的用户意图;以及
提供指令,所述指令致使所述一个或多个候选设备中的设备执行对应于所述用户意图的动作。
2.根据权利要求1所述的方法,其中确定所述用户意图进一步包括:
确定对应于所述话语输入的一个或多个候选用户意图;以及
基于所述一个或多个可能设备特征和所述一个或多个实际设备特征,从所述一个或多个候选用户意图中确定所述用户意图。
3.根据权利要求1-2中任一项所述的方法,其中确定所述用户意图进一步包括:
基于所述一个或多个可能设备特征和所述一个或多个实际设备特征,从所述一个或多个候选设备中确定所述设备。
4.根据权利要求1-3中任一项所述的方法,还包括:
确定在所述一个或多个可能设备特征与所述一个或多个实际设备特征之间共同的一个或多个重叠设备特征,其中基于所述一个或多个重叠设备特征确定所述用户意图。
5.根据权利要求1-4中任一项所述的方法,还包括:
确定用户相对于所述已建立位置中的区域的相对位置,其中所述话语输入与所述用户相关联,并且其中基于所述相对位置确定所述用户意图。
6.根据权利要求1-5中任一项所述的方法,还包括:
获取所述一个或多个候选设备中每个候选设备的操作状态,其中基于所述一个或多个候选设备中每个候选设备的所述操作状态确定所述用户意图。
7.根据权利要求1-6中任一项所述的方法,其中确定所述用户意图进一步包括:
基于所述一个或多个可能设备特征和所述一个或多个实际设备特征,确定对应于所述话语输入的第一候选用户意图和对应于所述话语输入的第二候选用户意图;
确定与所述第一候选用户意图相关联的第一动作的第一突出性和与所述第二候选用户意图相关联的第二动作的第二突出性;以及
基于所述第一突出性和所述第二突出性,将所述第一用户意图和所述第二用户意图排序,其中基于所述排序确定所述用户意图。
8.根据权利要求1-7中任一项所述的方法,其中确定所述用户意图进一步包括:
基于所述一个或多个可能设备特征和所述一个或多个实际设备特征,确定对应于所述话语输入的两个或更多个候选用户意图;
确定所述两个或更多个候选用户意图是否能够消除歧义;
响应于确定所述两个或更多个候选用户意图不能消除歧义,输出请求附加信息的对话;
接收响应于所述输出对话的用户输入;以及
基于所述用户输入将所述两个或更多个候选用户意图消除歧义,以确定所述用户意图。
9.根据权利要求1-8中任一项所述的方法,其中确定所述一个或多个可能设备特征进一步包括:
确定对应于所述话语输入中的第一词语的一个或多个第二可能设备特征;以及
确定对应于所述话语输入中的第二词语的一个或多个第三可能设备特征,其中基于所述一个或多个第二可能设备特征和所述一个或多个第三可能设备特征确定所述一个或多个可能设备特征。
10.根据权利要求1-9中任一项所述的方法,还包括:
确定所述话语输入是否对应于域,所述域与基于具有所述已建立位置的设备执行任务的可执行意图相关联,其中响应于确定所述话语输入对应于所述域,执行对表示具有所述已建立位置的所述一组设备的所述数据结构的检索。
11.根据权利要求1-10中任一项所述的方法,还包括:
基于所述话语输入中的词语来检索联系人信息,其中基于所检索的联系人信息确定所述一组设备中的所述一个或多个候选设备。
12.根据权利要求1-11中任一项所述的方法,其中确定所述一组设备中的所述一个或多个候选设备进一步包括:
确定与所述话语输入中的第二词语相关联的一个或多个另选词语,其中基于所述一个或多个另选词语确定所述一个或多个候选设备。
13.根据权利要求12所述的方法,其中所述一个或多个另选词语中的另选词语基于接收所述话语输入之前在所述电子设备处接收的第二用户输入。
14.根据权利要求1-13中任一项所述的方法,还包括:
确定对应于所述话语输入的位置;以及
基于所述位置,从多个已建立位置中确定所述已建立位置。
15.根据权利要求1-14中任一项所述的方法,其中所述数据结构限定:
所述已建立位置中的多个区域之间的分级关系;和
所述一组设备中的每个设备与所述多个区域之间的关系。
16.根据权利要求15所述的方法,其中在所述数据结构中相对于与所接收的话语输入相关联的临时会话密钥来识别所述一组设备中的每个设备和所述多个区域中的每个区域。
17.根据权利要求1-16中任一项所述的方法,其中所述数据结构限定与所述一组设备中的每个设备相关联的一个或多个实际设备特征。
18.根据权利要求1-17中任一项所述的方法,其中所述数据结构限定所述一组设备中每个设备的操作状态。
19.根据权利要求1-18中任一项所述的方法,还包括:
接收在所述已建立位置的第一设备的第一属性和在所述已建立位置的第二设备的第二属性;
基于所述第一属性和所述第二属性,相对于所述已建立位置确定所述第一设备与所述第二设备之间的关系;
基于所确定的关系提供修改所述数据结构的提示;
接收响应于所述提示的第三用户输入;以及
响应于接收到所述第三用户输入,修改所述数据结构,以相对于所述已建立位置定义所述第一设备与所述第二设备之间的所确定的关系。
20.根据权利要求1-19中任一项所述的方法,其中所述话语输入呈自然语言形式,并且其中所述话语输入相对于限定所述动作是有歧义的。
21.根据权利要求1-20中任一项所述的方法,其中所述话语输入呈自然语言形式,并且其中所述话语输入相对于限定用于执行所述动作的所述设备是有歧义的。
22.根据权利要求1-21中任一项所述的方法,还包括:
在提供所述指令之前:
输出第二对话,所述第二对话确认要执行的所述动作和执行所述动作的所述设备;以及
接收响应于所述第二输出对话的第四用户输入,其中响应于接收到所述第四用户输入提供所述指令。
23.根据权利要求1-22中任一项所述的方法,还包括:
与事件相关联地检测致使所述一组设备中的多个设备被设置为相应操作状态的一个或多个用户输入;
响应于检测到所述一个或多个用户输入,与自定义命令相关联地提供存储所述多个设备的所述相应操作状态的第二提示;
接收响应于所述第二提示的第五用户输入;以及
响应于接收到所述第五用户输入,与所述自定义命令相关联地存储所述多个设备的所述相应操作状态,其中响应于接收到所述自定义命令,所述电子设备致使所述多个设备被设置为所述相应操作状态。
24.根据权利要求1-23中任一项所述的方法,还包括:
与所述一组设备中正被设置为第二相应操作状态的第二多个设备相关联地检测致使所述一组设备中的第三设备被设置为第三操作状态的第六用户输入,其中与第二自定义命令相关联地存储所述第二多个设备的所述第二相应操作状态;
响应于检测到所述第六用户输入,与所述第二自定义命令相关联地提供存储所述第三设备的所述第三操作状态的第三提示;
接收响应于所述第三提示的第七用户输入;以及
响应于接收到所述第七用户输入,与所述第二自定义命令相关联地存储所述第三设备的所述第三操作状态,其中响应于在与所述第二自定义命令相关联地存储所述第三设备的所述第三操作状态之后接收到所述第二自定义命令,所述电子设备致使所述第二多个设备被设置为所述第二相应操作状态并且所述第三设备被设置为所述第三操作状态。
25.一种用于操作数字助理的方法,所述方法包括:
在具有处理器和存储器的电子设备处:
接收表示用户请求的话语输入;
确定所述话语输入是否与具有已建立位置的设备相关;
响应于确定所述话语输入与具有已建立位置的设备相关,检索表示具有所述已建立位置的一组设备的数据结构;
使用所述数据结构确定对应于所述话语输入的用户意图,所述用户意图与将由所述一组设备中的设备执行的动作和在执行所述动作之前要满足的标准相关联;以及
与所述标准相关联地存储所述动作和所述设备,其中所述动作根据确定所述标准得到满足而由所述设备执行。
26.根据权利要求25所述的方法,其中所述标准与所述一组设备中的第二设备的实际设备特征相关联。
27.根据权利要求26所述的方法,其中确定所述用户意图进一步包括:
基于所述话语输入和数据结构,确定所述第二设备的所述实际设备特征;以及
基于所述数据结构和所述话语输入,从所述一组设备中确定所述第二设备。
28.根据权利要求26-27中任一项所述的方法,其中所述标准包括表示所述实际设备特征的实际值大于、等于或小于阈值的要求。
29.根据权利要求28所述的方法,其中确定所述用户意图进一步包括基于所述话语输入确定所述阈值。
30.根据权利要求26-29中任一项所述的方法,其中所述实际设备特征为湿度,并且其中所述第二设备包括湿度传感器。
31.根据权利要求26-29中任一项所述的方法,其中所述实际设备特征为温度,并且其中所述第二设备包括温度传感器。
32.根据权利要求26-29中任一项所述的方法,其中所述实际设备特征为亮度,并且其中所述第二设备包括亮度传感器。
33.根据权利要求26-29中任一项所述的方法,其中所述实际设备特征为空气质量,并且其中所述第二设备包括空气质量传感器。
34.根据权利要求26-29中任一项所述的方法,其中所述实际设备特征为认证特征,并且其中所述第二设备包括认证设备。
35.根据权利要求34所述的方法,其中所述标准包括置信度值大于或等于阈值的要求,并且其中所述置信度值表示从所述认证设备接收的认证数据与参考认证数据匹配的概率。
36.根据权利要求25-35中任一项所述的方法,其中所述标准与所述一组设备中第三设备的操作状态相关联。
37.根据权利要求36所述的方法,其中所述标准包括所述第三设备的所述操作状态等于参考操作状态的要求。
38.根据权利要求36所述的方法,其中所述标准包括所述第三设备的所述操作状态从第二参考操作状态转变为第三参考操作状态的要求。
39.根据权利要求25-38中任一项所述的方法,其中所述标准包括所述动作已在预定时间段内执行少于预定次数的要求。
40.根据权利要求25-39中任一项所述的方法,其中所述标准包括所述电子设备的时间等于或大于参考时间的要求。
41.根据权利要求40所述的方法,其中确定所述用户意图进一步包括从所述话语输入确定所述参考时间。
42.根据权利要求40-41中任一项所述的方法,其中确定所述参考时间进一步包括:
从所述话语输入确定第二参考时间;以及
确定与所述参考时间相关联的持续时间,其中基于所述第二参考时间和所述持续时间确定所述参考时间。
43.根据权利要求25-42中任一项所述的方法,还包括:
接收与所述标准相关联的数据;
根据所接收的数据确定所述标准是否得到满足;以及
响应于确定所述标准得到满足,提供致使所述一组设备中的所述设备执行所述动作的指令。
44.根据权利要求25-43中任一项所述的方法,其中所述用户意图与在执行所述动作之前要满足的第二标准相关联。
45.根据权利要求44所述的方法,其中满足所述第二标准要求所述标准得到满足。
46.根据权利要求44-45中任一项所述的方法,还包括:
接收与所述第二标准相关联的第二数据;以及
从所接收的第二数据确定所述第二标准是否得到满足,其中响应于确定所述第二标准得到满足来提供所述指令。
47.根据权利要求25-46中任一项所述的方法,其中所述动作包括提供与所述标准相关联的通知。
48.根据权利要求25-47中任一项所述的方法,其中由所述设备执行所述动作致使所述设备的一部分改变位置。
49.根据权利要求25-47中任一项所述的方法,其中由所述设备执行所述动作致使设备锁定或解锁。
50.根据权利要求25-47中任一项所述的方法,其中由所述设备执行所述动作致使所述设备被激活或去激活。
51.根据权利要求25-47中任一项所述的方法,其中由所述设备执行所述动作致使所述设备的设定点改变。
52.根据权利要求25-51中任一项所述的方法,还包括:
响应于确定所述标准得到满足,提供使用所述设备执行所述动作的提示;
接收响应于所述提示的用户输入;以及
响应于接收到所述用户输入,提供致使所述设备执行所述动作的指令。
53.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由电子设备的一个或多个处理器执行时,致使所述电子设备执行根据权利要求1-52中任一项所述的方法。
54.一种电子设备,包括:
一个或多个处理器;和
存储一个或多个程序的存储器,所述一个或多个程序包括指令,所述指令当由所述一个或多个处理器执行时,致使所述一个或多个处理器执行根据权利要求1-52中任一项所述的方法。
55.一种电子设备,包括:
用于执行根据权利要求1-52中任一项所述的方法的装置。
56.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由电子设备的一个或多个处理器执行时,致使所述电子设备:
接收表示用户请求的话语输入;
确定对应于所述话语输入的一个或多个可能设备特征;
检索表示具有已建立位置的一组设备的数据结构;
基于所述数据结构,从所述一组设备中确定一个或多个候选设备,所述一个或多个候选设备对应于所述话语输入;
基于所述一个或多个可能设备特征和所述一个或多个候选设备的一个或多个实际设备特征,确定对应于所述话语输入的用户意图;以及
提供指令,所述指令致使所述一个或多个候选设备中的设备执行对应于所述用户意图的动作。
57.一种电子设备,包括:
一个或多个处理器;和
存储一个或多个程序的存储器,所述一个或多个程序包括指令,所述指令当由所述一个或多个处理器执行时,致使所述一个或多个处理器:
接收表示用户请求的话语输入;
确定对应于所述话语输入的一个或多个可能设备特征;
检索表示具有已建立位置的一组设备的数据结构;
基于所述数据结构,从所述一组设备中确定一个或多个候选设备,所述一个或多个候选设备对应于所述话语输入;
基于所述一个或多个可能设备特征和所述一个或多个候选设备的一个或多个实际设备特征,确定对应于所述话语输入的用户意图;以及
提供指令,所述指令致使所述一个或多个候选设备中的设备执行对应于所述用户意图的动作。
58.一种电子设备,包括:
处理单元,所述处理单元被配置为:
接收表示用户请求的话语输入;
确定对应于所述话语输入的一个或多个可能设备特征;
检索表示具有已建立位置的一组设备的数据结构;
基于所述数据结构,从所述一组设备中确定一个或多个候选设备,所述一个或多个候选设备对应于所述话语输入;
基于所述一个或多个可能设备特征和所述一个或多个候选设备的一个或多个实际设备特征,确定对应于所述话语输入的用户意图;以及
提供指令,所述指令致使所述一个或多个候选设备中的设备执行对应于所述用户意图的动作。
59.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由电子设备的一个或多个处理器执行时,致使所述电子设备:
接收表示用户请求的话语输入;
确定所述话语输入是否与具有已建立位置的设备相关;
响应于确定所述话语输入与具有已建立位置的设备相关,检索表示具有所述已建立位置的一组设备的数据结构;
使用所述数据结构确定对应于所述话语输入的用户意图,所述用户意图与将由所述一组设备中的设备执行的动作和在执行所述动作之前要满足的标准相关联;以及
与所述标准相关联地存储所述动作和所述设备,其中所述动作根据确定所述标准得到满足而由所述设备执行。
60.一种电子设备,包括:
一个或多个处理器;和
存储一个或多个程序的存储器,所述一个或多个程序包括指令,所述指令当由所述一个或多个处理器执行时,致使所述一个或多个处理器:
接收表示用户请求的话语输入;
确定所述话语输入是否与具有已建立位置的设备相关;
响应于确定所述话语输入与具有已建立位置的设备相关,检索表示具有所述已建立位置的一组设备的数据结构;
使用所述数据结构确定对应于所述话语输入的用户意图,所述用户意图与将由所述一组设备中的设备执行的动作和在执行所述动作之前要满足的标准相关联;以及
与所述标准相关联地存储所述动作和所述设备,其中所述动作根据确定所述标准得到满足而由所述设备执行。
61.一种电子设备,包括:
处理器单元,所述处理器单元被配置为:
接收表示用户请求的话语输入;
确定所述话语输入是否与具有已建立位置的设备相关;
响应于确定所述话语输入与具有已建立位置的设备相关,检索表示具有所述已建立位置的一组设备的数据结构;
使用所述数据结构确定对应于所述话语输入的用户意图,所述用户意图与将由所述一组设备中的设备执行的动作和在执行所述动作之前要满足的标准相关联;以及
与所述标准相关联地存储所述动作和所述设备,其中所述动作根据确定所述标准得到满足而由所述设备执行。
CN201710393185.0A 2016-06-09 2017-05-27 家庭环境中的智能自动化助理 Active CN107490971B (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201662348015P 2016-06-09 2016-06-09
US62/348,015 2016-06-09
DKPA201670577A DK179309B1 (en) 2016-06-09 2016-08-03 Intelligent automated assistant in a home environment
DKPA201670578 2016-08-03
DKPA201670578A DK179588B1 (en) 2016-06-09 2016-08-03 INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
DKPA201670577 2016-08-03
US15/274,859 2016-09-23
US15/274,859 US10354011B2 (en) 2016-06-09 2016-09-23 Intelligent automated assistant in a home environment

Publications (2)

Publication Number Publication Date
CN107490971A true CN107490971A (zh) 2017-12-19
CN107490971B CN107490971B (zh) 2019-06-11

Family

ID=60642029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710393185.0A Active CN107490971B (zh) 2016-06-09 2017-05-27 家庭环境中的智能自动化助理

Country Status (1)

Country Link
CN (1) CN107490971B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108710947A (zh) * 2018-04-10 2018-10-26 杭州善居科技有限公司 一种基于lstm的智能家居机器学习系统设计方法
CN109360559A (zh) * 2018-10-23 2019-02-19 三星电子(中国)研发中心 多智能设备同时存在时处理语音指令的方法和系统
CN109979463A (zh) * 2019-03-31 2019-07-05 联想(北京)有限公司 一种处理方法和电子设备
CN110097885A (zh) * 2018-01-31 2019-08-06 深圳市锐吉电子科技有限公司 一种语音控制方法及系统
CN110211576A (zh) * 2019-04-28 2019-09-06 北京蓦然认知科技有限公司 一种语音识别的方法、装置和系统
CN112053683A (zh) * 2019-06-06 2020-12-08 阿里巴巴集团控股有限公司 一种语音指令的处理方法、设备及控制系统
CN112292674A (zh) * 2018-04-20 2021-01-29 脸谱公司 为助理系统处理多模态用户输入
CN113160808A (zh) * 2020-01-22 2021-07-23 广州汽车集团股份有限公司 一种语音控制方法及其系统、语音控制设备
CN115510296A (zh) * 2020-05-11 2022-12-23 苹果公司 基于上下文提供相关数据项目
US11682397B2 (en) 2018-04-23 2023-06-20 Google Llc Transferring an automated assistant routine between client devices during execution of the routine

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2367399A (en) * 2000-05-09 2002-04-03 Ibm Voice control enabling device in a service discovery network
CN1393092A (zh) * 2000-09-27 2003-01-22 株式会社Ntt都科摩 家庭设置的电子装置的远程控制方法和管理设备
CN1898721A (zh) * 2003-12-26 2007-01-17 株式会社建伍 设备控制装置、声音识别装置、代理装置、车载设备控制装置、导航装置、音响装置、设备控制方法、声音识别方法、代理处理方法、车载设备控制方法、导航方法、音响装置控制方法和程序
CN102405463A (zh) * 2009-04-30 2012-04-04 三星电子株式会社 利用多模态信息的用户意图推理装置及方法
US20140365226A1 (en) * 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
CN104854583A (zh) * 2012-08-08 2015-08-19 谷歌公司 搜索结果排名和呈现
CN104951077A (zh) * 2015-06-24 2015-09-30 百度在线网络技术(北京)有限公司 基于人工智能的人机交互方法、装置和终端设备
US20150348554A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Intelligent assistant for home automation
CN105247511A (zh) * 2013-06-07 2016-01-13 苹果公司 智能自动化助理
US20160080165A1 (en) * 2012-10-08 2016-03-17 Nant Holdings Ip, Llc Smart home automation systems and methods
CN105471705A (zh) * 2014-09-03 2016-04-06 腾讯科技(深圳)有限公司 一种基于即时通讯的智能控制方法、设备及系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2367399A (en) * 2000-05-09 2002-04-03 Ibm Voice control enabling device in a service discovery network
CN1393092A (zh) * 2000-09-27 2003-01-22 株式会社Ntt都科摩 家庭设置的电子装置的远程控制方法和管理设备
CN1898721A (zh) * 2003-12-26 2007-01-17 株式会社建伍 设备控制装置、声音识别装置、代理装置、车载设备控制装置、导航装置、音响装置、设备控制方法、声音识别方法、代理处理方法、车载设备控制方法、导航方法、音响装置控制方法和程序
CN102405463A (zh) * 2009-04-30 2012-04-04 三星电子株式会社 利用多模态信息的用户意图推理装置及方法
CN104854583A (zh) * 2012-08-08 2015-08-19 谷歌公司 搜索结果排名和呈现
US20160080165A1 (en) * 2012-10-08 2016-03-17 Nant Holdings Ip, Llc Smart home automation systems and methods
US20140365226A1 (en) * 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
CN105247511A (zh) * 2013-06-07 2016-01-13 苹果公司 智能自动化助理
US20150348554A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Intelligent assistant for home automation
CN105471705A (zh) * 2014-09-03 2016-04-06 腾讯科技(深圳)有限公司 一种基于即时通讯的智能控制方法、设备及系统
CN104951077A (zh) * 2015-06-24 2015-09-30 百度在线网络技术(北京)有限公司 基于人工智能的人机交互方法、装置和终端设备

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110097885A (zh) * 2018-01-31 2019-08-06 深圳市锐吉电子科技有限公司 一种语音控制方法及系统
CN108710947A (zh) * 2018-04-10 2018-10-26 杭州善居科技有限公司 一种基于lstm的智能家居机器学习系统设计方法
CN112292674A (zh) * 2018-04-20 2021-01-29 脸谱公司 为助理系统处理多模态用户输入
US11682397B2 (en) 2018-04-23 2023-06-20 Google Llc Transferring an automated assistant routine between client devices during execution of the routine
CN109360559A (zh) * 2018-10-23 2019-02-19 三星电子(中国)研发中心 多智能设备同时存在时处理语音指令的方法和系统
CN109979463A (zh) * 2019-03-31 2019-07-05 联想(北京)有限公司 一种处理方法和电子设备
CN110211576A (zh) * 2019-04-28 2019-09-06 北京蓦然认知科技有限公司 一种语音识别的方法、装置和系统
CN110211576B (zh) * 2019-04-28 2021-07-30 北京蓦然认知科技有限公司 一种语音识别的方法、装置和系统
CN112053683A (zh) * 2019-06-06 2020-12-08 阿里巴巴集团控股有限公司 一种语音指令的处理方法、设备及控制系统
WO2020244573A1 (zh) * 2019-06-06 2020-12-10 阿里巴巴集团控股有限公司 一种语音指令的处理方法、设备及控制系统
CN113160808A (zh) * 2020-01-22 2021-07-23 广州汽车集团股份有限公司 一种语音控制方法及其系统、语音控制设备
CN115510296A (zh) * 2020-05-11 2022-12-23 苹果公司 基于上下文提供相关数据项目

Also Published As

Publication number Publication date
CN107490971B (zh) 2019-06-11

Similar Documents

Publication Publication Date Title
CN107490971B (zh) 家庭环境中的智能自动化助理
CN108885608B (zh) 家庭环境中的智能自动化助理
CN107491285B (zh) 智能设备仲裁和控制
CN107491929B (zh) 数据驱动的自然语言事件检测和分类
US20220043986A1 (en) Intelligent automated assistant in a home environment
CN107430501B (zh) 对语音触发进行响应的竞争设备
CN107408387B (zh) 虚拟助理激活
CN110021301A (zh) 数字助理服务的远场延伸
CN110019752A (zh) 多方向对话
CN109635130A (zh) 用于媒体探索的智能自动化助理
CN108093126A (zh) 用于拒绝来电的智能数字助理
CN107608998A (zh) 具有数字助理的应用集成
CN107493374A (zh) 具有数字助理的应用集成
CN108733438A (zh) 应用程序与数字助理集成
CN107480161A (zh) 用于媒体探究的智能自动化助理
CN107491469A (zh) 智能任务发现
CN108604449A (zh) 说话者识别
CN107978313A (zh) 智能自动化助理
CN107491284A (zh) 提供自动化状态报告的数字助理
CN108351893A (zh) 非常规虚拟助理交互
CN107924313A (zh) 分布式个人助理
CN107735833A (zh) 自动口音检测
CN108292203A (zh) 基于设备间对话通信的主动协助
CN107615276A (zh) 用于媒体回放的虚拟助理
CN107615378A (zh) 设备语音控制

Legal Events

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