CN107493374B - 具有数字助理的应用集成装置及方法 - Google Patents

具有数字助理的应用集成装置及方法 Download PDF

Info

Publication number
CN107493374B
CN107493374B CN201710395240.XA CN201710395240A CN107493374B CN 107493374 B CN107493374 B CN 107493374B CN 201710395240 A CN201710395240 A CN 201710395240A CN 107493374 B CN107493374 B CN 107493374B
Authority
CN
China
Prior art keywords
intent
user
software application
intent object
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710395240.XA
Other languages
English (en)
Other versions
CN107493374A (zh
Inventor
R·A·瓦尔克二世
B·J·纽厄多普
R·达萨里
R·D·朱利
T·R·格鲁伯
C·E·拉德鲍格
A·加格
V·科斯拉
J·H·拉塞尔
C·彼得森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from DKPA201670540A external-priority patent/DK201670540A1/en
Application filed by Apple Inc filed Critical Apple Inc
Publication of CN107493374A publication Critical patent/CN107493374A/zh
Application granted granted Critical
Publication of CN107493374B publication Critical patent/CN107493374B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0412Digitisers structurally integrated in a display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Abstract

本发明题为“具有数字助理的应用集成”。本发明提供了用于与数字助理的应用集成的系统和过程。根据一个实施例,方法包括,在具有一个或多个处理器和存储器的电子设备处,接收自然语言用户输入,利用所述一个或多个处理器,来识别一组意图对象中的意图对象以及与所述意图相关联的参数,其中所述意图对象和所述参数从所述自然语言用户输入获得。该方法还包括识别与所述一组意图对象中的意图对象相关联的软件应用;以及将所述意图对象和参数提供给所述软件应用。

Description

具有数字助理的应用集成装置及方法
技术领域
本公开一般涉及与应用交互,并且更具体地涉及具有数字助理的应用集成的技术。
背景技术
数字助理可有助于用户在用户设备上执行各种功能。例如,数字助理可设定闹钟,提供天气更新以及在本地和互联网上两者执行搜索,同时为用户提供自然语言界面。然而,现有数字助理无法有效地与应用,诸如本地存储在用户设备上的那些应用,尤其第三方应用结合。因此,现有数字助理无法为此类应用提供自然语言界面。
发明内容
本文公开了示例性方法。示例性方法包括,在具有一个或多个处理器的电子设备处,接收自然语言用户输入,以及利用所述一个或多个处理器,识别一组意图中的意图以及与所述意图相关联的参数,其中所述意图和参数从所述自然语言用户输入获得。该方法还包括识别与所述一组意图中的意图相关联的软件应用以及将所述意图和参数提供给所述软件应用。
示例性方法包括,在每个均具有一个或多个处理器的一个或多个电子设备处,接收自然语言用户输入;基于所述自然语言用户输入,确定一组意图中的意图以及与所述意图相关联的参数;基于所述意图或参数中的至少一个识别软件应用;以及将所述意图和参数提供给所述软件应用。
示例性方法包括,在每个均具有一个或多个处理器的一个或多个电子设备处,接收自然语言用户输入;基于所述自然语言用户输入,识别一组意图中的意图以及与所述意图相关联的参数;以及基于所述意图或参数中的至少一个确定是否可满足对应于所述意图的任务。该方法还包括,根据确定可满足对应于所述意图的任务,将所述意图和参数提供给与所述意图相关联的软件应用,以及根据确定不能满足对应于所述意图的任务,提供与所述意图相关联的一个或多个软件应用列表。
示例性方法包括,在具有一个或多个处理器的第一电子设备处,接收自然语言用户输入,其中自然语言用户输入指示一组意图中的意图;将所述自然语言用户输入提供给第二电子设备;以及从所述第二电子设备接收与所述意图相关联的软件应用不位于所述第一电子设备上的指示。该方法还包括,响应于所述通知,来获得与所述意图相关联的应用列表;利用所述第一电子设备的触敏显示器,在用户界面中显示与所述意图相关联的应用列表;接收指示对所述应用列表中的应用的选择的用户输入;以及将所述一组意图中的所述意图提供给所述应用。
本文公开了示例性非暂态计算机可读介质。示例性非暂态计算机可读存储介质存储一个或多个程序。一个或多个程序包括指令,在由电子设备的一个或多个处理器执行时,所述指令使得所述电子设备接收自然语言用户输入;利用所述一个或多个处理器识别一组意图中的意图以及与所述意图相关联的参数,其中所述意图和参数从所述自然语言用户输入获得;识别与所述一组意图中的所述意图相关联的软件应用;以及将所述意图和参数提供给所述软件应用。
示例性非暂态计算机可读存储介质存储一个或多个程序。所述一个或多个程序包括指令,在由一个或多个电子设备的一个或多个处理器执行时,所述指令使得所述一个或多个电子设备接收自然语言用户输入;基于所述自然语言用户输入,确定一组意图中的意图以及与所述意图相关联的参数;基于所述意图或参数中至少一个识别软件应用;以及将所述意图和参数提供给所述软件应用。
示例性非暂态计算机可读存储介质存储一个或多个程序。所述一个或多个程序包括指令,在由一个或多个电子设备的一个或多个处理器执行时,所述指令使得所述一个或多个电子设备接收自然语言用户输入;基于所述自然语言用户输入,识别一组意图中的意图以及与所述意图相关联的参数;基于所述意图或参数中的至少一个,确定是否可满足对应于所述意图的任务;根据确定可满足对应于所述意图的任务,将所述意图和参数提供给与所述意图相关联的软件应用;以及根据确定不能满足对应于所述意图的任务,提供与所述意图相关联的一个或多个软件应用列表。
示例性非暂态计算机可读存储介质存储一个或多个程序。所述一个或多个程序包括指令,在由电子设备的一个或多个处理器执行时,所述指令使得所述电子设备接收自然语言用户输入,其中所述自然语言用户输入指示一组意图中的意图;将所述自然语言用户输入提供给第二电子设备;从所述第二电子设备接收与所述意图相关联的软件应用不位于所述第一电子设备上的指示;响应于所述通知,获得与所述意图相关联的应用列表;利用所述第一电子设备的触敏显示器,在用户界面中显示与所述意图相关联的应用列表;接收指示对所述应用列表中的应用的选择的用户输入;以及将所述一组意图中所述意图提供给所述应用。
本文公开了示例性电子设备和系统。示例性电子设备包括:一个或多个处理器;存储器;一个或多个程序,其中所述一个或多个程序存储在所述存储器中并且配置为将由所述一个或多个处理器执行,所述一个或多个程序包括指令,用于接收自然语言用户输入;利用所述一个或多个处理器识别一组意图中的意图以及与所述意图相关联的参数,其中所述意图和参数从所述自然语言用户输入获得;识别与所述一组意图中的所述意图相关联的软件应用;以及将所述意图和参数提供给所述软件应用。
示例性系统包括一个或多个电子设备的一个或多个处理器;一个或多个电子设备的一个或多个存储器;以及一个或多个程序,其中所述一个或多个程序存储在所述一个或多个存储器中并且配置为将由所述一个或多个处理器执行,所述一个或多个程序包括指令,用于接收自然语言用户输入;基于所述自然语言用户输入确定一组意图中的意图以及与所述意图相关联的参数;基于所述意图或参数中的至少一个识别软件应用;以及将所述意图和参数提供给所述软件应用。
示例性系统包括一个或多个电子设备的一个或多个处理器;一个或多个电子设备的一个或多个存储器;以及一个或多个程序,其中所述一个或多个程序存储在所述一个或多个存储器中并且配置为将由所述一个或多个处理器执行,所述一个或多个程序包括指令,用于接收自然语言用户输入;基于所述自然语言用户输入,识别一组意图中的意图以及与所述意图相关联的参数;基于所述意图或参数中的至少一个,确定是否可满足对应于所述意图的任务;根据确定可满足对应于所述意图的任务,将所述意图和参数提供给与所述意图相关联的软件应用;以及根据确定不能满足对应于所述意图的任务,提供与所述意图相关联的一个或多个软件应用列表。
示例性电子设备包括一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序存储在所述存储器中并且配置为将由所述一个或多个处理器执行,所述一个或多个程序包括指令,用于接收自然语言用户输入,其中所述自然语言用户输入指示一组意图中的意图;将所述自然语言用户输入提供给第二电子设备;从所述第二电子设备接收与所述意图相关联的软件应用不位于所述第一电子设备上的指示;响应于所述通知,来获得与所述意图相关联的应用列表;利用所述第一电子设备的触敏显示器,在用户界面中显示与所述意图相关联的应用列表;接收指示对所述应用列表中的应用的选择的用户输入;以及将所述一组意图中所述意图提供给所述应用。
示例性电子设备包括用于接收自然语言用户输入的装置;用于识别一组意图中的意图以及与所述意图相关联的参数的装置,其中所述意图和参数从所述自然语言用户输入获得;用于识别与所述一组意图中的意图相关联的软件应用的装置;以及用于将所述意图和参数提供给所述软件应用的装置。
示例性系统包括用于接收自然语言用户输入的装置;用于基于所述自然语言用户输入确定一组意图中的意图以及与所述意图相关联的参数的装置;用于基于所述意图或参数中至少一个识别软件应用的装置;以及用于将所述意图和参数提供给所述软件应用的装置。
示例性系统包括用于接收自然语言用户输入的装置;用于基于所述自然语言用户输入识别一组意图中的意图以及与所述意图相关联的参数的装置;用于基于所述意图或参数中的至少一个确定是否可满足对应于所述意图的任务的装置;用于根据确定可满足对应于所述意图的任务将所述意图和参数提供给与所述意图相关联的软件应用的装置;以及用于根据确定不能满足对应于所述意图的任务提供与所述意图相关联的一个或多个软件应用列表的装置。
示例性电子设备包括用于接收自然语言用户输入的装置,其中所述自然语言用户输入指示一组意图中的意图;用于将所述自然语言用户输入提供给第二电子设备的装置;用于从所述第二电子设备接收与所述意图相关联的软件应用不位于所述第一电子设备上的指示的装置;用于响应于所述通知来获得与所述意图相关联的应用列表的装置;用于利用所述第一电子设备的触敏显示器在用户界面中显示与所述意图相关联的应用列表的装置;用于接收指示对所述应用列表中的应用的选择的用户输入的装置;以及用于将所述一组意图中所述意图提供给所述应用的装置。
附图说明
为了更好地理解各种所述实施方案,应该结合以下附图参考下面的具体实施方式,在附图中,类似的附图标号在所有附图中指示对应的部分。
图1是示出根据各个实施例的用于实现数字助理的系统和环境的框图。
图2A是示出根据一些实施方案的实现数字助理的客户端侧部分的便携式多功能设备的框图。
图2B是示出根据各个实施例的用于事件处理的示例性部件的框图。
图3示出根据各个实施例的实现数字助理的客户端侧部分的便携式多功能设备。
图4是根据各个实施例的具有显示器和触敏表面的示例性多功能设备的框图。
图5A示出了根据各个实施例的便携式多功能设备上的应用程序菜单的示例性用户界面。
图5B示出了根据各个实施例的具有与显示器分开的触敏表面的多功能设备的示例性用户界面。
图6A示出了根据各个实施例的个人电子设备。
图6B是示出了根据各个实施例的个人电子设备的框图。
图7A为示出根据各个实施例的数字助理系统或其服务器部分的框图。
图7B示出了根据各个实施例的图7A示出的数字助理的功能。
图7C示出了根据各个实施例的知识本体的部分。
图8示出了根据一些实施方案的用于操作数字助理的过程的流程图。
图9示出了根据一些实施方案的用于操作数字助理的过程的流程图。
图10A至图10C示出根据一些实施方案的电子设备的示例性用户界面。
图10D至图10E示出根据一些实施方案的数字助理系统的示例性数据流。
图11至图14示出根据一些实施方案的电子设备的功能框图。
具体实施方式
在以下对本公开和实施方案的描述中将引用附图,在附图中以举例的方式示出了可被实施的特定实施方案。应当理解,在不脱离本公开的范围的情况下,可实践其他实施方案和实施例并且可进行变更。
尽管以下描述使用术语“第一”、“第二”等来描述各种元件,但这些元件不应受术语的限制。这些术语只是用于将一个元件与另一元件区分开。例如,第一输入可被命名为第二输入并且类似地第二输入可被命名为第一输入,而不脱离各种所述实施例的范围。第一输入和第二输入两者可为输出,并且在一些情况下,可为独立的不同输入。
在本文中对各种所述实施例的描述中所使用的术语只是为了描述特定实施例的目的,而并非旨在进行限制。如在对各种所述实施例的描述和所附权利要求书中所使用的那样,单数形式“一个(“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可为任意数量的DA客户端102提供服务器侧功能,所述任意数量的DA客户端102各自位于相应的用户设备104上。
在一些实施例中,DA服务器106可包括面向客户端的I/O接口112、一个或多个处理模块114、数据与模型116,以及到外部服务的I/O接口118。面向客户端的I/O接口112可促成DA服务器106的面向客户端的输入和输出处理。一个或多个处理模块114可利用数据和模块116来处理语音输入并且基于自然语言输入确定用户的意图。而且,一个或多个处理模块114基于推断的用户意图执行任务执行。在一些实施例中,DA服务器106可通过一个或多个网络110与外部服务120通信以完成任务或采集信息。到外部服务的I/O接口 118可促成此类通信。
用户设备104可为任何适合的电子设备。例如,用户设备可为便携式多功能设备(例如,参考图2A下文描述的设备200)、多功能设备(例如,参考图4下文描述的设备400)、或个人电子设备(参考图6A至图6B下文描述的设备600)。便携式多功能设备例如可为还包含其他功能,诸如PDA和/或音乐播放器功能的移动电话。便携式多功能设备的特定实施例可包括来自 Apple Inc.(Cupertino,California)的
Figure GDA0001402367880000071
Figure GDA0001402367880000072
设备。便携式多功能设备的其他实施例可包括但不限于膝上型电脑或平板电脑。而且,在一些实施例中,用户设备104可为非便携式多功能设备。具体地,用户设备104可为台式计算机、游戏机、电视机、或电视机顶盒。在一些实施例中,用户设备104可包括触敏表面(例如,触摸屏显示器和/或触控板)。然而,用户设备104任选地可包括一个或多个其他物理用户接口设备,诸如物理键盘、鼠标和/或操纵杆。下文更详细地描述了电子设备的各个实施例,诸如多功能设备。
一个或多个通信网络110的实施例可包括局域网(LAN)和广域网(WAN),例如互联网。一个或多个通信网络110可使用任何已知的网络协议,包括各种有线或无线协议,诸如例如以太网、通用串行总线(USB)、火线(FIREWIRE)、全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、码分多址 (CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi、互联网电话协议(VoIP)、Wi- MAX、或任何其他合适的通信协议来实施。
服务器系统108可在计算机的一个或多个独立式数据处理设备或分布式网络上实施。在一些实施例中,服务器系统108还可采用第三方服务提供方 (例如,第三方云服务提供方)的各种虚拟设备和/或服务来提供服务器系统 108的潜在计算资源和/或基础结构资源。
在一些实施例中,用户设备104可经由第二用户设备122与DA服务器 106通信。第二用户设备122可类似于或等同于用户设备104。例如,第二用户设备122可类似于参考图2A、图4和图6A至图6B下文描述的设备200, 400或600。用户设备104可配置为经由直接通信连接,诸如蓝牙、NFC、 BTLE等或经由有线或无线网络,诸如本地Wi-Fi网络通信耦接到第二用户设备122。在一些实施例中,第二用户设备122可配置为在用户设备104与DA 服务器106之间充当代理。例如,用户设备104的DA客户端102可配置为经由第二用户设备122将信息(例如,在用户设备104处接收的用户请求)传输到DA服务器106。DA服务器106可处理信息并且经由第二用户设备122将相关数据(例如,响应于用户请求的数据内容)返回到用户设备104。
在一些实施例中,用户设备104可配置为将缩写的对数据的请求传送到第二用户设备122以减小从用户设备104传输的信息量。第二用户设备122可配置为确定添加到缩写请求的补充信息生成完整请求来传输到DA服务器 106。该系统架构可有利地允许具有有限通信性能和/或有限电池电力的用户设备104(例如,手表或类似紧凑型电子设备)通过使用具有较强通信性能和/ 或电池电力(的第二用户设备122诸如,移动电话、膝上型计算机、平板电脑等)作为DA服务器106的代理访问DA服务器106提供的服务。虽然在图1 中只示出了两个用户设备104和122,但应当理解,系统100可包括配置在该代理配置中来与DA服务器系统106通信的任意数量和类型的用户设备。
尽管图1中所示的数字助理可包括客户端侧部分(例如,DA客户端 102)和服务器侧部分(例如,DA服务器106)两者,但在一些实施例中,数字助理的功能可被实现为安装在用户设备上的独立式应用程序。此外,数字助理的客户端部分与服务器部分之间的功能划分在不同的具体实施中可变化。例如,在一些实施例中,DA客户端可为仅提供面向用户的输入和输出处理功能,且将数字助理的所有其他功能委派给后端服务器的瘦客户端。
2.电子设备
现在注意力关注在用于实现数字助理的客户端侧部分的电子设备的实施方案。图2A是示出了根据一些实施方案的具有触敏显示器系统212的便携式多功能设备200的框图。触敏显示器212有时为了方便被叫做“触摸屏”,并且有时可被称为或被叫做“触敏显示器系统”。设备200包括存储器202(其任选地包括一个或多个计算机可读存储介质)、存储器控制器222、一个或多个处理单元(CPU)220、外围设备接口218、RF电路208、音频电路210、扬声器211、麦克风213、输入/输出(I/O)子系统206、其他输入控制设备216、和外部端口224。设备200任选地包括一个或多个光学传感器264。设备200 任选地包括用于检测设备200(例如,触敏表面,诸如设备200的触敏显示器系统212)上的接触的强度的一个或多个接触强度传感器265。设备200任选地包括用于在设备200上生成触觉输出的一个或多个触觉输出发生器267(例如,在触敏表面诸如设备200的触敏显示器系统212或设备400的触摸板455 上生成触觉输出)。这些部件任选地通过一个或多个通信总线或信号线203进行通信。
如在本说明书和权利要求书中所使用的,术语触敏表面上的接触的“强度”是指触敏表面上的接触(例如,手指接触)的力或压力(每单位面积的力),或是指触敏表面上的接触的力或压力的替代物(代用物)。接触的强度具有值范围,该值范围包括至少四个不同的值并且更典型地包括上百个不同的值(例如,至少256个)。接触的强度任选地使用各种方法和各种传感器或传感器的组合来确定(或测量)。例如,在触敏表面下方或相邻于触敏表面的一个或多个力传感器任选地用于测量触敏表面上的不同点处的力。在一些具体实施中,来自多个力传感器的力测量被合并(例如,加权平均)以确定估计的接触力。类似地,触笔的压敏顶端任选地用于确定触笔在触敏表面上的压力。另选地,在触敏表面上检测到的接触面积的大小和/或其变化、邻近接触的触敏表面的电容和/或其变化和/或邻近接触的触敏表面的电阻和/或其变化任选地被用作触敏表面上的接触的力或压力的替代物。在一些具体实施中,接触力或压力的替代物测量直接用于确定是否已超过强度阈值(例如,强度阈值是以与替代物测量对应的单位来描述的)。在一些具体实施中,接触力或压力的替代物测量被转换成估计的力或压力,并且估计的力或压力用于确定是否已超过强度阈值(例如,强度阈值是以压力的单位进行测量的压力阈值)。使用接触的强度作为用户输入的属性,从而允许用户访问用户在尺寸更小的设备上可能本来不能访问的附加设备功能,该尺寸更小的设备具有有限的实地面积用于(例如,在触敏显示器上)显示示能表示和/或接收用户输入(例如,经由触敏显示器、触敏表面或物理控件/机械控件,诸如旋钮或按钮)。
如本说明书和权利要求书中所使用的,术语“触觉输出”是指将由用户利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备的部件 (例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物理位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与用户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触的情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感与设备或设备的部件的物理特征的所感知的变化对应。例如,触敏表面(例如,触敏显示器或触控板)的移动任选地由用户解释为对物理致动按钮的“按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如“按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压(例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。作为另一个实施例,即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用户解释为或感测为触敏表面的“粗糙度”。虽然由用户对触摸的此类解释将受到用户的个体化感官知觉的限制,但是存在触摸的许多感官知觉是大多数用户共有的。因此,当触觉输出被描述为对应于用户的特定感官知觉(例如,“按下点击”、“松开点击”、“粗糙度”)时,除非另外陈述,否则所生成的触觉输出对应于设备或其部件的物理位移,该物理位移将会生成典型(或普通)用户的感官知觉。
应当理解,设备200仅是便携式多功能设备的一个实施例,并且设备200 任选地具有比所示出的更多或更少的部件,任选地组合两个或更多个部件,或者任选地具有这些部件的不同配置或布置。图2A中所示的各种部件以硬件、软件、或硬件与软件两者的组合来实现,包括一个或多个信号处理电路和/或专用集成电路。
存储器202可包括一个或多个计算机可读存储介质。该计算机可读存储介质可以是有形的和非暂态的。存储器202可包括高速随机存取存储器并且还可包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备、或其他非易失性固态存储器设备。存储器控制器222可控制设备200的其他部件访问存储器202。
在一些实施例中,存储器202的非暂态计算机可读存储介质可用来存储指令(例如,用于执行下文描述的过程1100的方面),以供指令执行系统、装置或设备诸如基于计算机的系统、包含处理器的系统或可从指令执行系统、装置或设备取指令并执行指令的其他系统使用或与其结合。在其他实施例中,指令(例如,用于执行下文描述的过程1100的方面)可存储在服务器系统 108的非暂态计算机可读存储介质(未示出)上或者可划分在存储器202的非暂态计算机可读存储介质与服务器系统108的非暂态计算机可读存储介质之间。在本文的语境中,“非暂态计算机可读存储介质”可以是可包括或存储程序以供指令执行系统、装置和设备使用或与其结合的任何介质。
外围设备接口218可被用于将设备的输入外围设备和输出外围设备耦接到CPU220和存储器202。所述一个或多个处理器220运行或执行存储在存储器202中的各种软件程序和/或指令集以执行设备200的各种功能并处理数据。在一些实施例中,外围设备接口218、CPU 220、和存储器控制器222可在单个芯片诸如芯片204上实现。在一些其他实施例中,它们可在单独的芯片上实现。
RF(射频)电路208接收和发送也被叫做电磁信号的RF信号。RF电路 208将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号来与通信网络以及其他通信设备进行通信。RF电路208任选地包括用于执行这些功能的熟知的电路,包括但不限于天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编解码芯片组、用户身份模块(SIM)卡、存储器等等。RF电路208任选地通过无线通信与网络以及其他设备进行通信,该网络为诸如互联网(也被称为万维网(WWW))、内联网和/ 或无线网络(诸如蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN))。 RF电路208任选地包括用于检测近场通信(NFC)场的熟知的电路,诸如通过近程通信无线电部件来进行检测。无线通信任选地使用多种通信标准、协议和技术中的任一种通信标准、协议和技术,包括但不限于全球移动通信系统 (GSM)、增强型数据GSM环境(EDGE)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、演进、纯数据(EV-DO)、HSPA、HSPA+、双单元HSPA(DC-HSPDA)、长期演进(LTE)、近场通信(NFC)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、蓝牙低功耗、无线保真(Wi-Fi)(例如,IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、IEEE 802.11n和/或IEEE 802.11ac)、互联网协议语音(VoIP)、Wi-MAX、电子邮件协议(例如,互联网消息访问协议(IMAP)和/或邮局协议(POP))、即时消息 (例如,可扩展消息处理和存在协议(XMPP)、用于即时消息和存在利用扩展的会话发起协议(SIMPLE)、即时消息和存在服务(IMPS))、和/或短消息服务 (SMS)、或者包括在本文档提交日期时还未开发出的通信协议的任何其他适当的通信协议。
音频电路210、扬声器211和麦克风213提供用户和设备200之间的音频接口。音频电路210从外围设备接口218接收音频数据,将音频数据转换为电信号,并将电信号传输到扬声器211。扬声器211将电信号转换为人类可听的声波。音频电路210还接收由麦克风213从声波转换的电信号。音频电路210 将电信号转换为音频数据,并将音频数据传输到外围设备接口218以用于处理。音频数据可由外围设备接口218从存储器202和/或RF电路208进行检索和/或被传输至存储器102和/或RF电路108。在一些实施方案中,音频电路 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以及美国专利申请No.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)的
Figure GDA0001402367880000131
Figure GDA0001402367880000132
发现的技术。
触摸屏212的一些实施方案中的触敏显示器可类似于以下美国专利中所述的多点触敏触摸板:6,323,846(Westerman等人)、6,570,557(Westerman 等人)和/或6,677,932(Westerman);和/或美国专利公开2002/0015024A1,这些专利申请中的每个专利申请据此全文以引用方式并入本文。然而,触摸屏 212显示来自设备200的视觉输出,而触敏触摸板不提供视觉输出。
触摸屏212的一些实施方案中的触敏显示器可如在以下专利申请中那样进行描述:(1)于2006年5月2日提交的美国专利申请11/381,313, “Multipoint Touch SurfaceController”;(2)于2004年5月6日提交的美国专利申请10/840,862,“MultipointTouchscreen”;(3)于2004年7月30日提交的美国专利申请10/903,964,“Gestures ForTouch Sensitive Input Devices”;(4)于 2005年1月31日提交的美国专利申请11/048,264,“Gestures For Touch Sensitive Input Devices”;(5)于2005年1月18日提交的美国专利申请 11/038,590,“Mode-Based Graphical User Interfaces For Touch SensitiveInput Devices”;(6)于2005年9月16日提交的美国专利申请11/228,758,“Virtual InputDevice Placement On A Touch Screen User Interface”;(7)于2005年9月 16日提交的美国专利申请11/228,700,“Operation Of A Computer With A Touch ScreenInterface";(8)于2005年9月16日提交的美国专利申请11/228,737, “ActivatingVirtual Keys Of A Touch-Screen Virtual Keyboard”;和(9)于2006 年3月3日提交的美国专利申请11/367,749,“Multi-Functional Hand-Held Device”。所有这些专利申请均全文以引用方式并入本文。
触摸屏212可具有超过100dpi的视频分辨率。在一些实施方案中,触摸屏具有约160dpi的视频分辨率。用户可使用任何合适的物体或附加物诸如触笔、手指等等来与触摸屏212接触。在一些实施方案中,用户界面被设计用于主要与基于手指的接触和手势工作,由于手指在触摸屏上的接触区域较大,因此这可能不如基于触笔的输入精确。在一些实施方案中,设备将基于手指的粗略输入翻译为精确的指针/光标位置或命令,以用于执行用户所期望的动作。
在一些实施方案中,除了触摸屏之外,设备200可包括用于激活或去激活特定功能的触摸板(未示出)。在一些实施方案中,触摸板是设备的触敏区域,该触敏区域与触摸屏不同,其不显示视觉输出。触摸板可以是与触摸屏 212分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸部分。
设备200还包括用于为各种部件供电的电力系统262。电力系统262可包括电力管理系统、一个或多个电源(例如,电池、交流电(AC))、再充电系统、电力故障检测电路、功率变换器或逆变器、电源状态指示器(例如,发光二极管(LED))和与便携式设备中的电力的生成、管理和分配相关联的任何其他部件。
设备200也可包括一个或多个光学传感器264。图2A示出了耦接到I/O 子系统206中的光学传感器控制器258的光学传感器。光学传感器264可包括电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。光学传感器264从环境接收通过一个或多个透镜而投射的光,并且将光转换为表示图像的数据。结合成像模块243(也称为相机模块),光学传感器264可捕获静态图像或视频。在一些实施方案中,光学传感器位于设备200的与设备的前部上的触摸屏显示器212相背对的后部上,使得触摸屏显示器可被用作用于静态图像和/或视频图像采集的取景器。在一些实施方案中,光学传感器位于设备的前部,使得在用户在触摸屏显示器上查看其他视频会议参与者时可获取该用户的图像,以用于视频会议。在一些实施方案中,光学传感器264的位置可由用户改变(例如通过旋转设备外壳中的透镜和传感器),使得单个光学传感器264可与触摸屏显示器一起使用,以用于视频会议和静态图像和/或视频图像采集两者。
设备200任选地还包括一个或多个接触强度传感器265。图2A示出了耦接到I/O子系统206中的强度传感器控制器259的接触强度传感器。接触强度传感器265任选地包括一个或多个压阻应变仪、电容式力传感器、电气力传感器、压电力传感器、光学力传感器、电容式触敏表面或其他强度传感器(例如,用于测量触敏表面上的接触的力(或压力)的传感器)。接触强度传感器 265从环境接收接触强度信息(例如,压力信息或压力信息的代用物)。在一些实施方案中,至少一个接触强度传感器与触敏表面(例如,触敏显示器系统212)并置排列或邻近。在一些实施方案中,至少一个接触强度传感器位于设备200的与位于设备200的前部上的触摸屏显示器212相背对的后部上。
设备200还可包括一个或多个接近传感器266。图2A示出了耦接到外围设备接口218的接近传感器266。另选地,接近传感器266可耦接至I/O子系统206中的输入控制器260。接近传感器266可如以下美国专利申请中所述的那样执行:11/241,839,标题为“ProximityDetector In Handheld Device”; 11/240,788,标题为“Proximity Detector InHandheld Device”;11/620,702,标题为“Using Ambient Light Sensor To AugmentProximity Sensor Output”; 11/586,862,标题为“Automated Response To And SensingOf User Activity In Portable Devices”;和11/638,251,标题为“Methods And SystemsFor Automatic Configuration Of Peripherals”,这些美国专利申请据此全文以引用方式并入本文。在一些实施方案中,当多功能设备被置于用户的耳朵附近时(例如,当用户正在进行电话呼叫时),接近传感器关闭并且禁用触摸屏 212。
设备200任选地还包括一个或多个触觉输出发生器267。图2A示出了耦接到I/O子系统206中的触觉反馈控制器261的触觉输出发生器。触觉输出发生器267任选地包括一个或多个电声设备诸如扬声器或其他音频部件;和/或用于将能量转换成线性运动的机电设备诸如电机、螺线管、电活性聚合器、压电致动器、静电致动器或其他触觉输出生成部件(例如,用于将电信号转换成设备上的触觉输出的部件)。接触强度传感器265从触觉反馈模块233接收触觉反馈生成指令,并且在设备200上生成能够由设备200的用户感觉到的触觉输出。在一些实施方案中,至少一个触觉输出发生器与触敏表面(例如,触敏显示器系统212)并置排列或邻近,并且任选地通过竖直地(例如,向设备 200的表面内/外)或侧向地(例如,在与设备200的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一些实施方案中,至少一个触觉输出发生器传感器位于设备200的与位于设备200的前部上的触摸屏显示器212相背对的后部上。
设备200还可包括一个或多个加速度计268。图2A示出了耦接至外围设备接口218的加速度计268。另选地,加速度计268可耦接至I/O子系统206 中的输入控制器260。加速度计268可如以下美国专利公开中所述的那样执行:20050190059,标题为“Acceleration-based Theft Detection System for Portable Electronic Devices”和20060017692,标题为“Methods And Apparatuses For Operating A Portable Device Based On AnAccelerometer”,这两个美国专利公开均全文以引用方式并入本文。在一些实施方案中,基于对从该一个或多个加速度计所接收的数据的分析来在触摸屏显示器上以纵向视图或横向视图显示信息。设备200任选地除了一个或多个加速度计268之外还包括磁力仪(未示出)和GPS(或GLONASS或其他全球导航系统)接收器(未示出),以用于获取关于设备200的位置和取向(例如,纵向或横向)的信息。
在一些实施方案中,被存储在存储器202中的软件部件包括操作系统 226、通信模块(或指令集)228、接触/运动模块(或指令集)230、图形模块 (或指令集)232、文本输入模块(或指令集)234、全球定位系统(GPS)模块 (或指令集)235、数字助理客户端模块229以及应用程序(或指令集)236。而且,存储器202可存储数据和模型,诸如用户数据和模型231。此外,在一些实施方案中,存储器202(图2A)或470(图4)存储设备/全局内部状态 257,如图2A、和图4中所示的。设备/全局内部状态257包括以下各项中的一者或多者:活动应用程序状态,该活动应用程序状态用于指示哪些应用程序 (如果有的话)当前是活动的;显示状态,该显示状态用于指示什么应用程序、视图或其他信息占据触摸屏显示器212的各个区域;传感器状态,该传感器状态包括从设备的各个传感器和输入控制设备216获得的信息;和关于设备位置和/或姿态的位置信息。
操作系统226(例如,Darwin、RTXC、LINUX、UNIX、OS X、iOS、 WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、功率管理等)的各种软件部件和 /或驱动程序,并且促进各种硬件部件和软件部件之间的通信。
通信模块228促进通过一个或多个外部端口224来与其他设备进行通信,并且还包括用于处理由RF电路208和/或外部端口224所接收的数据的各种软件部件。外部端口224(例如,通用串行总线(USB)、火线等)适于直接耦接到其他设备或者间接地通过网络(例如,互联网、无线LAN等)进行耦接。在一些实施方案中,外部端口是与
Figure GDA0001402367880000171
(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、即时消息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”的美国临时专利申请 No.60/936,562、和于2007年12月31日提交的标题为“Portable Multifunction Device,Method,and Graphical User Interfacefor Playing Online Videos”的美国专利申请No.11/968,067中找到,这两个专利申请的内容据此全文以引用方式并入本文。
上述每个模块和应用程序对应于用于执行上述一种或多种功能以及在本专利申请中所述的方法(例如,本文所述的计算机实现的方法和其他信息处理方法)的可执行指令集。这些模块(例如,指令集)不必被实现为独立的软件程序、过程或模块,并因此在各种实施方案中可组合或以其他方式重新布置这些模块的各种子集。例如,视频播放器模块可与音乐播放器模块组合成单个模块(例如,图2A中的视频和音乐播放器模块252)。在一些实施方案中,存储器202可存储上述模块和数据结构的子集。此外,存储器202可存储上文没有描述的附加模块和数据结构。
在一些实施方案中,设备200是该设备上的预定义的一组功能的操作唯一地通过触摸屏和/或触摸板来执行的设备。通过使用触摸屏和/或触摸板作为用于设备200的操作的主要输入控制设备,可减少设备200上的物理输入控制设备(诸如下压按钮、拨号盘等等)的数量。
唯一地通过触摸屏和/或触摸板执行的该预定义的一组功能任选地包括在用户界面之间进行导航。在一些实施方案中,触摸板在被用户触摸时将设备 200从被显示在设备200上的任何用户界面导航到主菜单、home菜单或根菜单。在此类实施方案中,使用触摸板来实现“菜单按钮”。在一些其他实施方案中,菜单按钮是物理下压按钮或者其他物理输入控制设备,而不是触摸板。
图2B是示出根据一些实施方案的用于事件处理的示例性部件的框图。在一些实施方案中,存储器202(图2A)或存储器470(图4)包括事件分类器 270(例如,在操作系统226中)以及相应的应用程序236-1(例如,前述应用程序237-251,255,480-490中的任一个应用程序)。
事件分类器270接收事件信息并确定要将事件信息递送到的应用程序 236-1和应用程序236-1的应用程序视图291。事件分类器270包括事件监视器 271和事件分配器模块274。在一些实施方案中,应用程序236-1包括应用程序内部状态292,该应用程序内部状态指示当应用程序是活动的或正在执行时被显示在触敏显示器212上的一个或多个当前应用程序视图。在一些实施方案中,设备/全局内部状态257被事件分类器270用于确定哪个(哪些)应用程序当前是活动的,并且应用程序内部状态292被事件分类器270用于确定要将事件信息递送到的应用程序视图291。
在一些实施方案中,应用程序内部状态292包括附加信息,诸如以下各项中的一者或多者:当应用程序236-1恢复执行时将被使用的恢复信息、指示正被应用程序236-1显示的信息或准备好用于被应用程序236-1显示的信息的用户界面状态信息、用于使得用户能够返回到应用程序136-1的前一状态或视图的状态队列、以及用户采取的先前动作的重复/撤销队列。
事件监视器271从外围设备接口218接收事件信息。事件信息包括关于子事件(例如,作为多点触摸手势的一部分的触敏显示器212上的用户触摸) 的信息。外围设备接口218传输其从I/O子系统206或传感器(诸如接近传感器266)、一个或多个加速度计268和/或麦克风213(通过音频电路210)所接收的信息。外围设备接口218从I/O子系统206接收的信息包括来自触敏显示器212或触敏表面的信息。
在一些实施方案中,事件监视器271以预先确定的间隔将请求发送至外围设备接口218。作为响应,外围设备接口218传输事件信息。在其他实施方案中,外围设备接口218仅当存在显著事件(例如,接收到高于预先确定的噪声阈值的输入和/或接收到超过预先确定的持续时间的输入)时才传输事件信息。
在一些实施方案中,事件分类器270还包括命中视图确定模块272和/或活动事件识别器确定模块273。
当触敏显示器212显示多于一个视图时,命中视图确定模块272提供用于确定子事件已在一个或多个视图内的什么地方发生的软件过程。视图由用户能在显示器上看到的控件和其他元件构成。
与应用程序相关联的用户界面的另一方面是一组视图,本文中有时也称为应用程序视图或用户界面窗口,在其中显示信息并且发生基于触摸的手势。在其中检测到触摸的(相应应用程序的)应用程序视图可对应于应用程序的程序化或视图分级结构内的程序化水平。例如,在其中检测到触摸的最低水平视图可被叫做命中视图,并且被识别为正确输入的那组事件可至少部分地基于开始基于触摸的手势的初始触摸的命中视图来确定。
命中视图确定模块272接收与基于触摸的手势的子事件相关的信息。当应用程序具有在分级结构中组织的多个视图时,命中视图确定模块272将命中视图识别为应对子事件进行处理的分级结构中的最低视图。在大多数情况下,命中视图是发起子事件(例如,形成事件或潜在事件的子事件序列中的第一子事件)在其中发生的最低水平视图。一旦命中视图被命中视图确定模块272识别,命中视图便通常接收与其被识别为命中视图所针对的同一触摸或输入源相关的所有子事件。
活动事件识别器确定模块273确定视图分级结构内的哪个或哪些视图应接收特定子事件序列。在一些实施方案中,活动事件识别器确定模块273确定仅命中视图应接收特定子事件序列。在其他实施方案中,活动事件识别器确定模块273确定包括子事件的物理位置的所有视图是活跃参与的视图,并且因此确定所有活跃参与的视图应接收特定子事件序列。在其他实施方案中,即使触摸子事件完全被局限到与一个特定视图相关联的区域,但是分级结构中的更高的视图将仍然保持为活跃参与的视图。
事件分配器模块274将事件信息分配到事件识别器(例如,事件识别器 280)。在包括活动事件识别器确定模块273的实施方案中,事件分配器模块 274将事件信息递送到由活动事件识别器确定模块273确定的事件识别器。在一些实施方案中,事件分配器模块274在事件队列中存储事件信息,该事件信息由相应事件接收器282进行检索。
在一些实施方案中,操作系统226包括事件分类器270。另选地,应用程序236-1包括事件分类器270。在另外实施方案中,事件分类器270是独立的模块,或者是被存储在存储器202中的另一个模块(诸如接触/运动模块230) 的一部分。
在一些实施方案中,应用程序236-1包括多个事件处理程序290和一个或多个应用程序视图291,其中每个应用程序视图包括用于处理发生在应用程序的用户界面的相应视图内的触摸事件的指令。应用程序236-1的每个应用程序视图291包括一个或多个事件识别器280。通常,相应应用程序视图291包括多个事件识别器280。在其他实施方案中,事件识别器280中的一个或多个事件识别器是独立模块的一部分,该独立模块诸如用户界面工具包(未示出)或应用程序236-1从中继承方法和其他属性的更高水平的对象。在一些实施方案中,相应事件处理程序290包括以下各项中的一者或多者:数据更新器276、对象更新器277、GUI更新器278和/或从事件分类器270所接收的事件数据 279。事件处理程序290可利用或调用数据更新器276、对象更新器277或 GUI更新器278,以更新应用程序内部状态292。另选地,应用程序视图291 中的一个或多个包括一个或多个相应事件处理程序290。另外,在一些实施方案中,数据更新器276、对象更新器277和GUI更新器278中的一者或多者被包括在相应应用程序视图291中。
相应的事件识别器280从事件分类器270接收事件信息(例如,事件数据279),并且从事件信息识别事件。事件识别器280包括事件接收器282和事件比较器284。在一些实施方案中,事件识别器280还至少包括以下各项的子集:元数据283、和事件递送指令288(其可包括子事件递送指令)。
事件接收器282接收来自事件分类器270的事件信息。事件信息包括关于子事件(例如触摸或触摸移动)的信息。根据子事件,事件信息还包括附加信息,诸如子事件的位置。当子事件涉及触摸的运动时,事件信息还可包括子事件的速率和方向。在一些实施方案中,事件包括设备从一个取向旋转到另一个取向(例如,从纵向取向旋转到横向取向,或反之亦然),并且事件信息包括关于设备的当前取向(也被称为设备姿态)的对应信息。
事件比较器284将事件信息与预定义的事件或子事件定义进行比较,并且基于该比较来确定事件或子事件,或者确定或更新事件或子事件的状态。在一些实施方案中,事件比较器284包括事件定义286。事件定义286包含事件的定义(例如,预定义的子事件序列),例如事件1(287-1)、事件2(287-2)以及其他事件。在一些实施方案中,事件(287)中的子事件例如包括触摸开始、触摸结束、触摸移动、触摸取消和多点触摸。在一个实施例中,事件 1(287-1)的定义是在被显示对象上的双击。例如,双击包括在被显示对象上的预先确定时长的第一次触摸(触摸开始)、预先确定时长的第一次抬起(触摸结束)、在被显示对象上的预先确定时长的第二次触摸(触摸开始)以及预先确定时长的第二次抬起(触摸结束)。在另一个示例中,事件2(287-2)的定义是被显示对象上的拖动。例如,拖动包括被显示对象上的预先确定时长的触摸 (或接触)、触摸在触敏显示器212上的移动、以及触摸的抬起(触摸结束)。在一些实施方案中,事件还包括用于一个或多个相关联的事件处理程序 290的信息。
在一些实施方案中,事件定义287包括用于相应用户界面对象的事件的定义。在一些实施方案中,事件比较器284执行命中测试以确定哪个用户界面对象与子事件相关联。例如,在触敏显示器212上显示三个用户界面对象的应用程序视图中,当在触敏显示器212上检测到触摸时,事件比较器284执行命中测试以确定这三个用户界面对象中的哪一个用户界面对象与该触摸(子事件)相关联。如果每个所显示的对象与相应的事件处理程序290相关联,则事件比较器使用该命中测试的结果来确定哪个事件处理程序290应当被激活。例如,事件比较器284选择与子事件和触发该命中测试的对象相关联的事件处理程序。
在一些实施方案中,相应事件(287)的定义还包括延迟动作,该延迟动作延迟事件信息的递送,直到已确定子事件序列是否确实对应于或不对应于事件识别器的事件类型。
当相应事件识别器280确定子事件序列不与事件定义286中的任何事件匹配时,该相应事件识别器280进入事件不可能、事件失败或事件结束状态,在此之后忽略基于触摸的手势的后续子事件。在这种情况下,对于命中视图保持活动的其他事件识别器(如果有的话)继续跟踪和处理持续的基于触摸的手势的子事件。
在一些实施方案中,相应事件识别器280包括具有用于指示事件递送系统应该如何执行对活跃参与的事件识别器的子事件递送的可配置属性、标记和 /或列表的元数据283。在一些实施方案中,元数据283包括用于指示事件识别器可彼此如何交互或如何被启用以彼此交互的可配置属性、标志和/或列表。在一些实施方案中,元数据283包括用于指示子事件是否被递送到视图或程序化分级结构中的不同层级的可配置属性、标记和/或列表。
在一些实施方案中,当事件的一个或多个特定子事件被识别时,相应事件识别器280激活与事件相关联的事件处理程序290。在一些实施方案中,相应事件识别器280将与该事件相关联的事件信息递送到事件处理程序290。激活事件处理程序290不同于将子事件发送(和延期发送)到相应的命中视图。在一些实施方案中,事件识别器280抛出与所识别的事件相关联的标记,并且与该标记相关联的事件处理程序290获取该标记并执行预定义的过程。
在一些实施方案中,事件递送指令288包括递送关于子事件的事件信息而不激活事件处理程序的子事件递送指令。相反,子事件递送指令将事件信息递送到与子事件序列相关联的事件处理程序或者递送到活跃参与的视图。与子事件序列或与活跃参与的视图相关联的事件处理程序接收事件信息并执行预先确定的过程。
在一些实施方案中,数据更新器276创建并更新在应用程序236-1中使用的数据。例如,数据更新器276对联系人模块237中所使用的电话号码进行更新,或者对视频播放器模块中所使用的视频文件进行存储。在一些实施方案中,对象更新器277创建和更新在应用程序236-1中使用的对象。例如,对象更新器277创建新的用户界面对象或更新用户界面对象的位置。GUI更新器 278更新GUI。例如,GUI更新器278准备显示信息并将其发送至图形模块 232以用于在触敏显示器上显示。
在一些实施方案中,一个或多个事件处理程序290包括数据更新器276、对象更新器277和GUI更新器278或者具有对数据更新器276、对象更新器 277和GUI更新器278的访问权限。在一些实施方案中,数据更新器276、对象更新器277和GUI更新器278被包括在相应应用程序236-1或应用程序视图 291的单个模块中。在其他实施方案中,它们被包括在两个或更多个软件模块中。
应当理解,关于触敏显示器上的用户触摸的事件处理的上述讨论还适用于利用输入设备来操作多功能设备200的其他形式的用户输入,并不是所有用户输入都是在触摸屏上发起的。例如,任选地与单次或多次键盘按压或保持结合的鼠标移动和鼠标按钮按压;触摸板上的接触移动,诸如轻击、拖动、滚动等;触笔输入;设备的移动;口头指令;所检测到的眼睛移动;生物特征输入;和/或其任意的组合可选地用作对应于子事件的、用于定义要识别的事件的输入。
图3示出了根据一些实施方案的具有触摸屏212的便携式多功能设备 200。触摸屏任选地在用户界面(UI)300内显示一个或多个图形。在本实施方案中以及在下文中描述的其他实施方案中,用户能够通过例如利用一个或多个手指302(在附图中没有按比例绘制)或者利用一个或多个触笔303(在附图中没有按比例绘制)在图形上作出手势来选择这些图形中的一个或多个图形。在一些实施方案中,当用户中断与一个或多个图形的接触时,将发生对一个或多个图形的选择。在一些实施方案中,手势任选地包括一次或多次轻击、一次或多次轻扫(从左向右、从右向左、向上和/或向下)和/或已与设备200发生接触的手指的滚动(从右向左、从左向右、向上和/或向下)。在一些具体实施中或在一些情况下,不经意地与图形接触不会选择图形。例如,当与选择对应的手势是轻击时,在应用程序图标上方扫动的轻扫手势任选地不会选择相应应用程序。
设备200还可包括一个或多个物理按钮,诸如“home”按钮或菜单按钮 304。如前所述,菜单按钮304可被用于导航到可在设备200上执行的应用程序集中的任何应用程序236。另选地,在一些实施方案中,菜单按钮被实现为被显示在触摸屏212上的GUI中的软键。
在一些实施方案中,设备200包括触摸屏212、菜单按钮304、用于使设备通电/断电和用于锁定设备的下压按钮306、一个或多个音量调节按钮308、用户身份模块(SIM)卡槽310、耳麦插孔312和对接/充电外部端口224。下压按钮306被任选地用于:通过按下按钮并使按钮在下压状态保持预先确定的时间间隔来使设备通电/断电;通过按下按钮并在经过预先确定的时间间隔之前释放按钮来锁定设备;和/或对设备进行解锁或发起解锁过程。在另选的实施方案中,设备200还通过麦克风213来接受用于激活或去激活某些功能的语音输入。设备200还任选地包括用于检测触摸屏212上的接触的强度的一个或多个接触强度传感器265,和/或用于为设备200的用户生成触觉输出的一个或多个触觉输出发生器267。
图4是根据一些实施方案的具有显示器和触敏表面的示例性多功能设备的框图。设备400不必是便携式的。在一些实施方案中,设备400是膝上型电脑、台式计算机、平板电脑、多媒体播放器设备、导航设备、教育设备(诸如儿童学习玩具)、游戏系统或控制设备(例如,家用控制器或工业用控制器)。设备400通常包括一个或多个处理单元(CPU)410、一个或多个网络或其他通信接口460、存储器470和用于使这些部件互连的一个或多个通信总线420。通信总线420任选地包括使系统部件互连并且控制系统部件之间的通信的电路(有时叫做芯片组)。设备400包括具有显示器440的输入/输出(I/O) 接口430,该显示器通常是触摸屏显示器。I/O接口430还任选地包括键盘和/ 或鼠标(或其他指向设备)450和触摸板455、用于在设备400上生成触觉输出的触觉输出发生器457(例如,类似于以上参考图2A所述的一个或多个触觉输出发生器267)、传感器459(例如,光学传感器、加速度传感器、接近传感器、触敏传感器、和/或类似于以上参考图2A所述的一个或多个接触强度传感器265的接触强度传感器)。存储器470包括高速随机存取存储器诸如 DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备,并且任选地包括非易失性存储器诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器470任选地包括远离CPU 410定位的一个或多个存储设备。在一些实施方案中,存储器470存储与便携式多功能设备200(图2A)的存储器202中所存储的程序、模块和数据结构类似的程序、模块、和数据结构或它们的子集。此外,存储器470任选地存储在便携式多功能设备200的存储器202中不存在的附加程序、模块和数据结构。例如,设备400的存储器470任选地存储绘图模块480、呈现模块482、文字处理模块484、网站创建模块486、盘编辑模块488、和/或电子表格模块490,而便携式多功能设备200(图2A)的存储器202任选地不存储这些模块。
图4中的上述元件中的每个元件可被存储在一个或多个前面提到的存储器设备中。上述模块中的每个模块对应于用于执行上述功能的指令集。上述模块或程序(例如,指令集)不必被实现为单独的软件程序、过程或模块,并且因此这些模块的各种子集可在各种实施方案中被组合或以其他方式重新布置。在一些实施方案中,存储器470可存储上述模块和数据结构的子集。此外,存储器470可存储上面没有描述的另外的模块和数据结构。
现在将注意力转到可在例如便携式多功能设备200上实现的用户界面的实施方案。
图5A示出了根据一些实施方案的便携式多功能设备200上的应用程序菜单的示例性用户界面。类似的用户界面可在设备400上实现。在一些实施方案中,用户界面500包括以下元素或者其子集或超集:
·无线通信(诸如蜂窝信号和Wi-Fi信号)的信号强度指示器502;
·时间504;
·蓝牙指示器505;
·电池状态指示器506;
·具有常用应用程序图标的托盘508,图标诸如:
○电话模块238的被标记为“电话”的图标516,该图标416任选地包括未接来电或语音留言的数量的指示符514;
○电子邮件客户端模块240的被标记为“邮件”的图标518,该图标任选地包括未读电子邮件的数量的指示符510;
○浏览器模块247的被标记为“浏览器”的图标520;和
○视频和音乐播放器模块252(也称为iPod(Apple Inc.的商标)模块 252)的被标记为“iPod”的图标522;以及
·其它应用程序的图标,图标诸如:
○IM模块241的被标记为“消息”的图标524;
○日历模块248的被标记为“日历”的图标526;
○图像管理模块244的被标记为“照片”的图标528;
○相机模块243的被标记为“相机”的图标530;
○在线视频模块255的被标记为“在线视频”的图标532;
○股市桌面小程序249-2的被标记为“股市”的图标534;
○地图模块254的被标记为“地图”的图标536;
○天气桌面小程序249-1的被标记为“天气”的图标538;
○闹钟桌面小程序249-4的被标记为“时钟”的图标540;
○健身支持模块242的被标记为“健身支持”的图标542;
○记事本模块253的被标记为“记事本”的图标544;和
○用于设置应用程序或模块的被标记为“设置”的图标546,该图标 446提供对设备200及其各种应用程序236的设置的访问。
应当指示的是,图5A中示出的图标标签仅是示例性的。例如,视频和音乐播放器模块252的图标522可任选地被标记为“音乐”或“音乐播放器”。其他标签任选地用于各种应用程序图标。在一些实施方案中,相应应用程序图标的标签包括与该相应应用程序图标对应的应用程序的名称。在一些实施方案中,特定应用程序图标的标签不同于与该特定应用程序图标对应的应用程序的名称。
图5B示出了具有与显示器550(例如,触摸屏显示器212)分开的触敏表面551(例如,图4的平板电脑或触摸板455)的设备(例如,图4的设备 400)上的示例性用户界面。设备400还任选地包括用于检测触敏表面551上的接触的强度的一个或多个接触强度传感器(例如,传感器457中的一个或多个传感器),和/或用于为设备400的用户生成触觉输出的一个或多个触觉输出发生器459。
尽管将参考触摸屏显示器212(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器分开的触敏表面上的输入,如图5B中所示。在一些实施方案中,触敏表面(例如,图5B中的551)具有与显示器(例如,550)上的主轴(例如,图5B中的553)对应的主轴(例如,图5B中的552)。根据这些实施方案,设备检测在与显示器上的相应位置对应的位置(例如,在图5B中,560对应于568 并且562对应于570)处与触敏表面551的接触(例如,图5B中的560和 562)。这样,在触敏表面(例如,图5B中的551)与多功能设备的显示器 (图5B中的550)分开时,由设备在触敏表面上检测到的用户输入(例如,接触560和562以及它们的移动)被该设备用于操控显示器上的用户界面。应当理解,类似的方法任选地用于本文所述的其他用户界面。
另外,虽然主要是参考手指输入(例如,手指接触、单指轻击手势、手指轻扫手势)来给出下面的示例,但是应当理解的是,在一些实施方案中,这些手指输入中的一个或多个手指输入由来自另一输入设备的输入(例如,基于鼠标的输入或触笔输入)替代。例如,轻扫手势任选地由鼠标点击(例如,而不是接触),之后是光标沿着轻扫的路径的移动(例如,而不是接触的移动) 来替代。又如,轻击手势任选地由在光标位于轻击手势的位置上方时的鼠标点击(例如,而不是对接触的检测,之后是终止检测接触)来替代。类似地,当同时检测到多个用户输入时,应当理解的是,多个计算机鼠标任选地被同时使用,或鼠标和手指接触任选地被同时使用。
图6A示出了示例性个人电子设备600。设备600包括主体602。在一些实施方案中,设备600可包括针对设备200和400(例如,图2A至图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执行时例如可使得计算机处理器执行下述技术,包括过程800和900(图8至图9)。该计算机可执行指令也可在任何非暂态计算机可读存储介质内进行存储和/或传送,以供指令执行系统、装置或设备诸如基于计算机的系统、包含处理器的系统或可从指令执行系统、装置或设备获取指令并执行指令的其他系统使用或与其结合。个人电子设备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、一个或多个处理器704、输入/输出 (I/O)接口706以及网络通信接口708。这些部件可通过一条或多条通信总线或信号线710彼此通信。
在一些实施例中,存储器302可包括非暂态计算机可读介质,诸如高速随机存取存储器和/或非易失性计算机可读存储介质(例如,一个或多个磁盘存储设备、闪存存储器设备或其他非易失性固态存储器设备)。
在一些实施例中,I/O接口706可将数字助理系统700的输入/输出设备 716诸如显示器、键盘、触摸屏和麦克风耦接至用户界面模块722。I/O接口 706,与用户界面模块722结合,可接收用户输入(例如,语音输入、键盘输入、触摸输入等)并相应地对这些输入进行处理。在一些实施例中,例如当数字助理在独立式用户设备上实施时,数字助理系统700可包括分别相对于图2A、图4、图6A至图6B中的设备200,400或600所描述的部件和I/O通信接口中的任一者。在一些实施例中,数字助理系统700可代表数字助理具体实施的服务器部分,并且可通过位于用户设备(例如,设备104,200,400或600) 上的客户端侧部分与用户进行交互。
在一些实施例中,网络通信接口708可包括无线传输和接收电路714和/ 或一个或多个有线通信端口712。一个或多个有线通信端口可经由一个或多个有线接口例如以太网、通用串行总线(USB)、火线等接收和发送通信信号。无线电路714可从通信网络及其他通信设备接收RF信号和/或光学信号以及将 RF信号和/或光学信号发送至通信网络及其他通信设备。无线通信可使用多种通信标准、协议和技术中的任一种,诸如GSM、EDGE、CDMA、TDMA、蓝牙、Wi-Fi、VoIP、Wi-MAX、或任何其他合适的通信协议。网络通信接口 708可使数字助理系统700通过网络,诸如互联网、内联网和/或无线网络诸如蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN),与其他设备之间的通信成为可能。
在一些实施例中,存储器702、或存储器702的计算机可读存储介质可存储程序、模块、指令和数据结构,包括以下内容中的全部或其子集:操作系统 718、通信模块720、用户界面模块722、一个或多个应用程序724和数字助理模块726。特别地,存储器702或存储器702的计算机可读存储介质可存储用于执行下文描述的过程800,900的指令。一个或多个处理器704可执行这些程序、模块和指令,并从数据结构读取数据或将数据写到数据结构。
操作系统718(例如,Darwin、RTXC、LINUX、UNIX、iOS、OS X、 WINDOWS、或嵌入式操作系统诸如VxWorks)可包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件组件和/或驱动器,并且有利于各种硬件、固件和软件组件之间的通信。
通信模块720可促成数字助理系统700与其他设备之间通过网络通信接口708进行的通信。例如,通信模块720可与电子设备的RF电路208,诸如分别在图2A、图4、图6A至图6B示出的设备200,400和600通信。通信模块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-gram语言模型和其他统计模型。语音识别引擎的实施例可包括基于动态时间扭曲的引擎以及基于加权有限状态换能器 (WFST)的引擎。一个或多个语音识别模型和一个或多个语音识别引擎可用来处理提取的前端预处理器的代表性特征来产生中间识别结果(例如,音素、语音串和子字词)并且最终产生文本识别结果(例如,字词、字词串或符号序列)。在一些实施例中,语音输入可由第三方服务或在用户设备(例如,设备104,200,400或600)上至少部分地处理来产生识别结果。一旦STT处理模块 730产生包含文本串的识别结果(例如,字词、或字词串、或符号序列),识别结果可被传递到自然语言处理模块732用于意图推断。
有关语音转文本处理的更多细节在提交于2011年9月20日的名为“ConsolidatingSpeech Recognition Results”的美国实用新型专利申请序列号 13/236,942中有所描述,其全部公开内容以引用方式并入本文。
在一些实施例中,STT处理模块730可包括和/或经由语音字母转换模块 731访问可识别字词的词汇。每个词汇字词可与语音识别语音字母中表示的字词的一个或多个候选发音相关联。具体地,可识别字词的词汇可包括与多个候选发音相关联的字词。例如,词汇可包括与
Figure GDA0001402367880000411
Figure GDA0001402367880000412
的候选发音相关联的字词“tomato”。而且,词汇字词可与基于来自用户的先前语音输入的定制候选发音相关联。此类定制候选发音可存储在STT处理模块730中并且可经由设备上的用户的配置文件与特定用户相关联。在一些实施例中,可基于字词的拼写以及一个或多个语言学和/或语音规则来确定字词的候选发音。在一些实施例中,例如可基于已知规范发音手动生成候选发音。
在一些实施例中,可基于候选发音的共同点对候选发音进行排名。例如,候选发音
Figure GDA0001402367880000413
可比
Figure GDA0001402367880000414
排名较高,因为前者为更常用的发音 (例如,在所有用户当中,对于特定地理区域的用户,或者对于任何其他适当的用户子集)。在一些实施例中,候选发音可基于候选发音是否为与用户相关联的定制候选发音来排名。例如,定制候选发音可排名比规范候选发音较高。这对于识别具有偏离规范发音的独特发音的正确名词来说是有用的。在一些实施例中,候选发音可与一个或多个语音特征相关联,诸如,地理起源、国籍或种族。例如,候选发音
Figure GDA0001402367880000421
可与美国相关联,而候选发音
Figure GDA0001402367880000422
可与英国相关联。而且,候选发音的排名可基于存储在设备上的用户的配置文件中的用户的一个或多个特征(例如,地理起源、国籍、种族等)。例如,可根据与美国相关联的用户的配置文件来确定。基于与美国相关联的用户,(与美国相关联的)候选发音
Figure GDA0001402367880000423
可比(与英国相关联的)候选发音排名较高。在一些实施例中,排名的候选发音之一可选择作为预测的发音(例如,最可能的发音)。
当接收语音输入时,STT处理模块730可用来确定对应于语音输入的音素(例如,使用声学模型)并且随后尝试确定匹配音素的字词(例如,使用语言模型)。例如,如果STT处理模块730可首先识别对应于语音输入的一部分的音素序列
Figure GDA0001402367880000424
则可基于词汇索引744确定该序列对应于字词“tomato”。
在一些实施例中,STT处理模块730可使用近似匹配技术来确定话语中的字词。因此,例如,STT处理模块730可确定音素序列
Figure GDA0001402367880000425
对应于字词“tomato”,即使特定音素序列不是该字词的候选音素序列之一。
数字助理的自然语言处理模块732(“自然语言处理器”)可取得由STT 处理模块730生成的字词或符号的序列(“符号序列”),并尝试将该符号序列与由数字助理所识别的一个或多个“可执行意图”相关联。“可执行意图”可表示可由数字助理执行并且可具有在任务流模型754中实施的相关联的任务流的任务。相关联任务流可为数字助理为了执行任务而采取的一系列经编程的动作和步骤。数字助理的能力范围可取决于已在任务流模型754中实施并存储的任务流的数量和种类,或换言之,取决于数字助理所识别的“可执行意图”的数量和种类。然而,数字助理的有效性还可取决于助理从以自然语言表达的用户请求中推断出正确的“一个或多个可执行意图”的能力。
在一些实施例中,除从STT处理模块730获得的字词或符号的序列之外,自然语言处理模块732还可接收与用户请求相关联的上下文信息,例如来自I/O处理模块728。自然语言处理模块732可任选地使用上下文信息来明确、补充和/或进一步定义在从STT处理模块730接收的符号序列中包含的信息。上下文信息可包括例如用户偏好,用户设备的硬件和/或软件状态,在用户请求之前、期间或之后不久收集的传感器信息,数字助理与用户之间的先前交互(例如,对话),等等。如本文所述,上下文信息可以是动态的,并且可随对话的时间、位置、内容、以及其他因素而变化。
在一些实施例中,自然语言处理例如可基于知识本体760。知识本体760 可为包含许多节点的分级结构,每个节点表示“可执行意图”或与“可执行意图”或其他“属性”中的一者或多者相关的“属性”。如上所述,“可执行意图”可表示数字助理能够执行的任务,即,该任务为“可执行的”或可被进行的。“属性”可代表与可执行意图或另一属性的子方面相关联的参数。知识本体760中可执行意图节点与属性节点之间的连接可定义由属性节点代表的参数如何从属于由可执行意图节点代表的任务。
在一些实施例中,知识本体760可由可执行意图节点和属性节点组成。在知识本体760内,每个可执行意图节点可直接连接至或通过一个或多个中间属性节点连接至一个或多个属性节点。类似地,每个属性节点可直接连接至或通过一个或多个中间属性节点连接至一个或多个可执行意图节点。例如,如图 7C所示,知识本体760可包括“餐厅预订”节点(即,可执行意图节点)。属性节点“餐厅”、“日期/时间”(针对预订)和“同行人数”可均直接连接至可执行意图节点(即,“餐厅预订”节点)。
此外,属性节点“菜系”、“价格区间”、“电话号码”和“位置”可为属性节点“餐厅”的子节点,并且可均通过中间属性节点“餐厅”连接至“餐厅预订”节点(即,可执行意图节点)。又如,如图7C所示,知识本体 760还可包括“设定提醒”节点(即,另一可执行意图节点)。属性节点“日期/ 时间”(针对设定提醒)和“主题”(针对提醒)可均连接至“设定提醒”节点。由于属性“日期/时间”可与进行餐厅预订的任务和设定提醒的任务二者相关,因此属性节点“日期/时间”可连接至知识本体760中的“餐厅预订”节点和“设定提醒”节点二者。
可执行意图节点连同其连接的概念节点一起,可被描述为“域”。在本讨论中,每个域可与相应的可执行意图相关联,并涉及与特定可执行意图相关联的一组节点(以及这些节点之间的关系)。例如,图7C中示出的知识本体 760可包括在知识本体760内的餐厅预订域762的实施例以及提醒域764的实施例。餐厅预订域包括可执行意图节点“餐厅预订”、属性节点“餐厅”、“日期/时间”和“同行人数”以及子属性节点“菜系”、“价格区间”、“电话号码”和“位置”。提醒域764可包括可执行意图节点“设置提醒”和属性节点“主题”和“日期/时间”。在一些实施例中,知识本体760可由多个域组成。每个域可与一个或多个其他域共享一个或多个属性节点。例如,除了餐厅预订域762和提醒域764之外,“日期/时间”属性节点还可与许多不同域(例如,行程安排域、旅行预订域、电影票域等)相关联。
尽管图7C示出知识本体760内的两个示例性域,但其他域例如可包括“查找电影”、“发起电话呼叫”、“查找方向”、“安排会议”、“发送消息”以及“提供问题的回答”、“阅读列表”、“提供导航指令”、“提供针对任务的指令”等。“发送消息”域可与“发送消息”可执行意图节点相关联,并且还可包括属性节点诸如“一个或多个接收人”、“消息类型”和“消息正文”。属性节点“接收人”可进一步例如由子属性节点诸如“接收人姓名”和“消息地址”来定义。
在一些实施例中,知识本体760可包括数字助理能够理解并对其起作用的所有域(以及因而可执行意图)。在一些实施例中,知识本体760可诸如通过添加或移除整个域或节点,或者通过修改知识本体760内的节点之间的关系来修改。
在一些实施例中,可将与多个相关可执行意图相关联的节点群集在知识本体760中的“超级域”下。例如,“旅行”超级域可包括与旅行有关的属性节点和可执行意图节点的群集。与旅行有关的可执行意图节点可包括“机票预订”、“酒店预订”、“汽车租赁”、“路线规划”、“寻找兴趣点”,等等。同一超级域(例如,“旅行”超级域)下的可执行意图节点可具有多个共用的属性节点。例如,针对“机票预订”、“酒店预订”、“汽车租赁”、“路线规划”、以及“寻找兴趣点”的可执行意图节点可共享属性节点“起始位置”、“目的地”、“出发日期/时间”、“到达日期/时间”和“同行人数”中的一者或多者。
在一些实施例中,知识本体760中的每个节点可与跟由节点代表的属性或可执行意图有关的一组字词和/或短语相关联。与每个节点相关联的相应组的字词和/或短语可为所谓的与节点相关联的“词汇”。可将与每个节点相关联的相应组的字词和/或短语存储在与由节点所代表的属性或可执行意图相关联的词汇索引744中。例如,返回图7B,与“餐厅”属性的节点相关联的词汇可包括字词诸如“美食”、“酒水”、“菜系”、“饥饿”、“吃”、“披萨”、“快餐”、“膳食”等。又如,与“发起电话呼叫”可执行意图的节点相关联的词汇可包括字词和短语诸如“呼叫”、“打电话”、“拨打”、“与……通电话”、“呼叫该号码”、“打电话给”等。词汇索引744可任选地包括不同语言的字词和短语。
自然语言处理模块732可从STT处理模块730接收符号序列(例如,文本串),并确定符号序列中的字词牵涉哪些节点。在一些实施例中,如果发现符号序列中的字词或短语与知识本体760中的一个或多个节点相关联(经由词汇索引744),则所述字词或短语可将“触发”或“激活”这些节点。基于已激活节点的数量和/或相对重要性,自然语言处理模块732可选择可执行意图中的一个可执行意图作为用户意图使数字助理执行的任务。在一些实施例中,可选择具有最多“已触发”节点的域。在一些实施例中,可选择具有最高置信度(例如,基于其各个已触发节点的相对重要性)的域。在一些实施例中,可基于已触发节点的数量和重要性的组合来选择域。在一些实施例中,在选择节点的过程中还考虑附加因素,诸如数字助理先前是否已正确解译来自用户的类似请求。
用户数据748可包括用户特定的信息,诸如用户特定的词汇、用户偏好、用户地址、用户的默认语言和第二语言、用户的联系人列表,以及每位用户的其他短期或长期信息。在一些实施例中,自然语言处理模块732可使用用户特定的信息来补充用户输入中所包含的信息以进一步限定用户意图。例如,针对用户请求“邀请我的朋友参加我的生日派对”,自然语言处理模块732能够访问用户数据748以确定“朋友”是哪些人以及“生日派对”将于何时何地举行,而不需要用户在其请求中明确地提供此类信息。
基于符号串搜索知识本体的其他细节在提交于2008年12月22日的名为“Methodand Apparatus for Searching Using An Active Ontology”的美国实用新型专利申请序列号12/341,743中有所描述,其全部公开内容以引用方式并入本文。
在一些实施例中,一旦自然语言处理模块732基于用户请求识别出可执行意图(或域),自然语言处理模块732便可生成结构化查询以表示所识别的可执行意图。在一些实施例中,结构化查询可包括针对可执行意图的域内的一个或多个节点的参数,并且所述参数中的至少一些参数填充有在用户请求中指定的特定信息和要求。例如,用户可以说“帮我在寿司店预订晚上7点的座位。”在这种情况下,自然语言处理模块732能够基于用户输入将可执行意图正确地识别为“餐厅预订”。根据知识主体,“餐厅预订”域的结构化查询可包括参数诸如{菜系}、{时间}、{日期}、{同行人数}等。在一些实施例中,基于使用STT处理模块730从语音输入获得的语音输入和文本,自然语言处理模块732可针对餐厅预订域生成部分结构化查询,其中部分结构化查询包括参数{菜系=“寿司类”}以及{时间=“晚上7点”}。然而,在该实施例中,用户话语包含不足以完成与域相关联的结构化查询的信息。因此,基于当前可用信息,在结构化查询中可未指定其他必要参数诸如{同行人数}和{日期}。在一些实施例中,自然语言处理模块732可用所接收的上下文信息来填充结构化查询的一些参数。例如,在一些实施例中,如果用户请求“附近的”寿司店,自然语言处理模块732可用来自用户设备的GPS坐标来填充结构化查询中的{位置} 参数。
在一些实施例中,自然语言处理模块732可将生成的结构化查询(包括任何已完成的参数)传送至任务流处理模块736(“任务流处理器”)。任务流处理模块736可被配置为接收来自自然语言处理模块732的结构化查询,完成结构化查询(必要时),以及执行“完成”用户最终请求所需的动作。在一些实施例中,完成这些任务所必需的各种过程可在任务流模型754中提供。在一些实施例中,任务流模型754可包括用于获取来自用户的附加信息的过程,以及用于执行与可执行意图相关联的动作的任务流。
如上所述,为了完成结构化查询,任务流处理模块736可能需要发起与用户的附加对话,以便获得附加信息,和/或弄清可能有歧义的话语。当此类交互有必要时,任务流处理器736可调用对话流处理器模块734来参与与用户的对话。在一些实施例中,对话流处理器模块734可确定如何(和/或何时) 向用户请求附加信息,并且接收和处理用户响应。可通过I/O处理模块728将问题提供给用户并可从用户接收回答。在一些实施例中,对话处理模块734可经由音频和/或视频输出向用户呈现对话输出,并接收经由口头或物理(例如,点击)响应的来自用户的输入。继续上述实施例,在任务流处理模块736 调用对话流处理模块734来确定针对与域“餐厅预订”相关联的结构化查询的“同行人数”和“日期”信息时,对话流处理模块734可生成诸如“一行几位?”和“预订哪天?”之类的问题传递给用户。一旦接收到来自用户的回答,对话流处理模块734则可用缺失信息填充结构化查询,或将信息传递给任务流处理模块736以根据结构化查询完成缺失信息。
一旦任务流处理模块736已针对可执行意图完成结构化查询,任务流处理模块736就可继续执行与可执行意图相关联的最终任务。因此,任务流处理模块736可根据结构化查询中包含的特定参数来执行任务流模型中的步骤和指令。例如,针对可执行意图“餐厅预订”的任务流模型可包括用于联系餐厅并实际上请求在特定时间针对特定同行人数的预订的步骤和指令。例如,通过使用结构化查询诸如:{餐厅预订,餐厅=ABC咖啡馆,日期=2012/3/12,时间=下午7点,同行人数=5人},任务流处理模块736可执行以下步骤:(1)登录到 ABC咖啡馆的服务器或餐厅预订系统诸如
Figure GDA0001402367880000471
(2)在网站上的表格中输入日期、时间和同行人数信息,(3)提交表格,以及(4)在用户日历中针对该预订制作日历条目。
在一些实施例中,任务流处理模块736可在服务处理模块738(“服务处理模块”)的辅助下完成用户输入中所请求的任务或者提供用户输入中所请求的信息性回答。例如,服务处理模块738可代表任务流处理模块736发起电话呼叫、设置日历条目、调用地图搜索、调用用户设备上安装的其他用户应用程序或与所述其他应用程序交互,以及调用第三方服务(例如,餐厅预订门户网站、社交网站、银行门户网站等)或与第三方服务交互。在一些实施例中,可通过服务模型756中的相应服务模型指定每项服务所需的协议和应用程序编程接口(API)。服务处理模块738可针对服务访问适当的服务模型,并依据服务模型根据该服务所需的协议和API生成针对该服务的请求。
例如,如果餐厅已启用在线预订服务,则餐厅可提交服务模型,该服务模型指定进行预订的必要参数以及将必要参数的值传送至在线预订服务的 API。在被任务流处理模块736请求时,服务处理模块738可使用存储在服务模型中的web地址来建立与在线预订服务的网络连接,并将预订的必要参数 (例如,时间、日期、同行人数)以根据在线预订服务的API的格式发送至在线预订接口。
在一些实施例中,自然语言处理模块732、对话处理模块734以及任务流处理模块736可共同且反复地使用以推断并限定用户的意图、获得信息以进一步明确并提炼用户意图、并最终生成响应(即,输出至用户,或完成任务)以满足用户的意图。生成的应答可为对至少部分满足用户意图的语音输入的对话应答。而且,在一些实施例中,生成的应答可输出为语音输出。在这些实施例中,生成的应答可被发送到语音合成模块740(例如,语音合成器),在那里可被处理来合成语音形式的对话应答。在其他实施例中,生成的应答可为与满足语音输入中的用户请求相关的数据内容。
语音合成模块740可被配置为合成语音输出用于呈现给用户。语音合成模块740基于数字助理提供的文本来合成语音输出。例如,生成的对话应答可为文本串的形式。语音合成模块740可将文本串转换为可听的语音输出。语音合成模块740可使用任何适当语音合成技术从而从文本生成语音输出,包括但不限于,拼接合成,单元选择合成,双音合成,特定域合成,共振峰合成,发音合成,基于隐式马尔可夫模型(HMM)的合成和正弦波合成。在一些实施例中,语音合成模块740可被配置为基于对应于字词的音素串合成各个字词。例如,音素串可与生成的对话应答中的字词相关联。音素串可存储在与字词相关联的元数据中。语音合成模型740可被配置为直接处理元数据中的音素串来合成语音形式的字词。
在一些实施例中,不同于(或除了)使用语音合成模块740,语音合成可在远程设备上执行(例如,服务器系统108)并且可将合成的语音发送到用户设备用户输出到用户。例如,这可在一些具体实施中发生,其中数字助理的输出发生在服务器系统处。以及因为服务器系统通常具有比用户设备更多处理能力或资源,有可能获得比客户端合成实用的更高质量的语音输出。
有关数字助理的另外细节可见于提交于2011年1月10日的名称为“IntelligentAutomated Assistant”的美国专利申请号12/987,982、以及提交于 2011年9月30日的名称为“Generating and Processing Task Items That Represent Tasks to Perform”的美国专利申请号13/251,088中,其全部公开内容以引用方式并入本文。
4.用于操作数字助理的过程
图8示出了根据一些实施方案的用于操作数字助理的过程800的流程图。例如使用实现数字助理的一个或多个电子设备(例如,设备104、108、 200、400或600)执行过程800。在一些实施例中,使用客户端-服务器系统 (例如,系统100)执行过程800,并且过程800的块可在服务器(例如,DA 服务器106)与客户端设备之间以任意方式划分。因此,尽管过程800的部分在本文描述为由客户端-服务器系统的特定设备执行,但是应当理解,过程 800不限于此。在其他实施例中,仅使用客户端设备(例如,用户设备104) 执行过程800。在过程800中,可选地组合一些块,可选地改变一些块的次序,并且可选地省略一些块。在一些实施例中,可与过程800结合地执行另外步骤。
在块805处,自然语言用户输入由用户设备,诸如图1的用户设备104接收。自然语言输入例如为语音输入或文本输入。在一些实施例中,自然语言输入可包括请求用户设备和/或其他设备执行任务。例如,在实施例“派一辆车到1200大街”中,自然语言输入可包括请求用户设备使用乘车预定服务定一辆车。在一些实施例中,自然语言输入还可指定所请求任务的一个或多个参数。“1200大街”例如指定汽车预定的拾取位置。在实施例中,“从Domino's订购”,自然语言输入可包括请求用户设备从披萨连锁店Domino's订餐。“myusual”从上下文来看还可指定想要预定的食物。
在块810处,识别意图以及可选地与该意图相关联的一个或多个参数。意图和参数例如可从自然语言用户输入获得。如所述,意图可对应于用户请求的任务。因此,识别(例如,确定)意图可包括识别自然语言用户输入中指定的任务和/或基于自然语言用户输入的语言和/或上下文推断对应于所请求任务的意图。意图可对应于用户设备执行的任何种类的任务,特别地,可对应于用户设备的一个或多个应用执行的任务,如下文更具体所述。
在一些实施例中,意图与一个或多个域(例如,意图类别、一组意图) 相关联(例如,包括在其中)。每个域可包括特定种类的意图,允许对意图直观分组。例如,预定汽车、取消汽车预定的意图、和/或涉及与乘车预定共同相关联的任务的任何其他意图可包括在乘车预定域中。在其他实施例中,登机、取消航班、重新安排航班、获得航班信息的意图、和/或涉及与飞行旅行共同相关联的任务的任何其他意图可包括在飞行旅行域中。在其他实施例中,提供方向、获取路况信息的意图、和/或涉及与导航共同相关联的任务的任何其他意图可包括在导航域中。在其他实施例中,发出付款、接收付款的意图、和/或涉及与金融交易共同相关联的任务的任何其他意图可包括在金融交易域中。
识别参数可包括识别指定将要执行对应于该意图的任务的方式的自然语言输入的部分。参数例如可指定位置(例如,地址或兴趣点)、时间、日期、联系人、类型、文本(例如,将要插入到电子邮件或消息中)、数量(例如,距离、金钱)并且在一些情况下,执行任务的软件应用的名称。参数还可指定任务的其他条件,本文描述了其他条件的实施例。
参数例如可使用一个或多个检测器来识别。检测器的每一个可配置为分析自然语言用户输入(例如,自然语言用户输入的文本表示)并且识别一个或多个相应数据类型。举例来说,第一检测器可配置为识别用户联系人而第二检测器可配置为识别地址。其他检测器可识别数据类型,包括但不限于,电话号码、名称、感兴趣的人、感兴趣的地方、URL、时间、航班号、包裹跟踪号和日期。
在一些实施例中,定制词汇的字词可识别为参数。例如,一个或多个检测器可配置为分别识别一个或多个应用的定制词汇。应用的定制词汇可包括应用的名称(例如,Uber、Lyft、Instagram、Flickr、WeChat、WhatsApp、 LINE、Viber)和/或可包括与应用唯一相关联的其他术语(例如,UberX、 DM、Lyftline、ZipCar)。
在一些实施例中,一个或多个应用可向应用注册服务登记。服务可由服务器108和/或用户设备104托管或者以另外方式可由服务器108和/或用户设备104访问。以此方式注册可包括指定与应用相关联的一个或多个定制词汇术语,以及可选地,定制词汇术语的一个或多个语言模型。语言模型例如可提供定制词汇术语的每一个的一个或多个发音。以此方式提供的语言模型可随后用来在分析自然语言用户输入期间帮助识别此类定制术语的使用。在一些实施例中,定制词汇可包括在词汇索引744(图7B)中。
在一些实施例中,可从自然语言用户输入推断一个或多个参数。例如在实施例“请开车送我到体育场”中,可推断出与意图相关联的一个参数为用户的位置。在另一实施例“偿还约翰饭钱”中,可推断出与意图相关联的一个参数为钱的数目。
在一些实施例中,基于自然语言用户输入识别意图,并且随后识别与该意图相关联的参数。而且,在一些实施例中,不识别与意图不相关联的参数。举例来说,对应于指向(例如,驾驶方向)的意图可与指定一个或多个定位 (例如,起点和/或目的地)和/或中转模式的参数相关联。例如考虑实施例“请给我到1200大街的实时驾驶指向”。以此方式,识别的意图对应于提供指向的任务,“驾驶”为指定中转模式的参数,而“1200大街”为指定位置的参数。用户输入的部分“实时”不是与所识别意图相关联的参数。因此,尽管“实时”可为一些意图的有效参数,但是在操作期间“实时”将不会被识别为参数。
在其他实施例中,可首先识别一个或多个参数并且可根据识别的一个或多个参数识别意图。在其他实施例中,可同时识别意图以及与意图相关联的参数。
在一些实施例中,自然语言用户输入的意图和参数由用户设备,诸如图1 的用户设备104识别。在其他实施例中,用户设备将自然语言用户输入(或者其表示)提供给服务器,诸如图1的服务器108,并且服务器识别(例如,确定)自然语言用户输入的意图和参数,如所述。随后服务器将识别的意图和参数提供(传输)到用户设备。
可选地,一旦识别出意图和任何参数,用户设备向用户设备的用户确定识别的意图和/或参数,以及在一些情况下,向用户设备的用户确定推断出的参数。以此方式确定可包括响应于自然语言查询提示用户确定识别的意图以及与该意图相关联的所有识别的参数。举例来说,响应于用户输入“请开车送我到机场”,用户设备可提供自然语言查询“你想从你当前位置开车去机场?”用户设备提供的自然语言查询可使用用户设备的触敏显示器作为文本提供给用户,和/或可使用用户设备的音频输出部件(例如,图2的扬声器211)作为语音提供给用户。用户可例如通过将自然语言用户输入提供给用户设备来对自然语言查询做出应答。
可选地,用户设备确定各个参数。在一些实施例中,这可包括提示用户确定一个或多个参数。举例来说,响应于用户输入“请开车送我到车站”,用户设备可提供自然语言查询“你是说宾州车站?”作为另一实施例,响应于用户输入“付给约翰$5”,用户设备可提供自然语言查询“你是说约翰史密斯?”用户设备提供的自然语言查询可使用用户设备的触敏显示器作为文本提供给用户,和/或可使用用户设备的音频输出部件(例如,图2的扬声器211)作为语音提供给用户。用户可例如通过将自然语言用户输入提供给用户设备来对自然语言查询做出应答。
在一些实施例中,一个或多个参数为上下文。因此,用户设备可基于上下文信息确定(例如,解析)一个或多个参数。上下文信息可为用户设备的上下文信息(或者在其中存储的任何数据)和/或用户设备的用户的上下文信息。举例来说,自然语言用户输入可讲出“请把一辆车送到我家”。因为“我家”为上下文参数并且未指定真实位置,所以用户设备可确定用户设备的位置并且将确定的位置识别为参数(即,代替“我家”)。作为另一实施例,自然语言用户输入可讲出“给他回电话”。因为“他”为上下文参数并且未指定特定联系人,所以用户设备可确定“他”想要的联系人并且将联系人作为参数传递(即,代替“他”)。
在一些实施例中,识别的意图和参数实现为意图对象。当如此实现时,每个意图对象为对象(例如,数据结构、编程对象)并且对应于相应意图。每个意图对象可包括分别对应于一个或多个参数的一个或多个字段(例如,实例变量)。例如,对应于乘车预定意图中的意图对象可生成(例如,实例化)如以下伪代码:
Figure GDA0001402367880000521
如本领域技术人员理解的那样,以上的伪代码是例示性的,意图对象可采用其他方式来实现。
通过将意图实现为意图对象,意图可能在语言上不可知。如所述,可从自然语言用户输入获得意图。因此,可从以任何数量的口头语言提供的自然语言输入获得同一意图。举例来说,英语自然语言用户输入“派出Uber到1200 公园大道”和德语自然语言用户输入“派出Uber到1200公园大道”每一个均源自识别的同一意图(以及源自同一意图对象)。
在块815处,可识别(例如,选择)与意图相关联的软件应用。通常,这可包括识别配置为执行对应于意图的任务的一个或多个软件应用。
在一些实施例中,识别软件应用可包括确定对应于意图的一个或多个域以及识别对应于域的应用。如所述,一个或多个软件应用可向应用注册服务登记。以此方式注册可包括指定哪些域(例如,乘车预定域、飞行旅行域、导航域)对应于软件应用。对应于域的应用可支持该域指定的意图的每一个或者可仅支持该域指定的一些意图。在一些实施例中,应用可向各个意图注册,并且识别应用可包括识别对应于所识别意图的应用。
在一些实施例中,根据所识别的参数识别应用。举例来说,基于用户输入“派一辆黑色汽车到机场”,可识别使用乘车预定服务订一辆车的意图以及指定车辆类型的参数(即,“黑色汽车”)。尽管若干可用的应用通常可配置为预定一辆车,但是可识别配置为预定“黑色汽车”的那些应用。作为另一实施例,基于用户输入“向山姆发送消息打招呼“你好””。尽管若干应用可配置为发送消息,但是可识别具有联系人山姆的联系人信息的那些应用。
在一些实施例中,仅识别安装在用户设备上和/或可访问用户设备的应用。例如,尽管若干可用应用可配置为执行任务,识别可访问用户设备的那些应用。可访问的应用包括驻留在和/或安装在用户设备上的应用并且还包括例如在一个或多个其他设备上的用户设备可远程访问的应用。
因此,在至少一些实施方案中,识别的应用为配置为根据识别的参数执行任务并且可访问用户设备的应用。在一些实施例中,多个应用可满足这些准则,然而用户设备可希望识别较少应用,或者单个应用。因此,应用还可基于用户设备的应用的先前使用进行识别。在一些实施例中,对于给定意图,识别最新近用来执行对应于该意图的任务的应用。考虑用户输入“给罗博打电话”,其中可识别意图(即,拨打电话)和参数(即,“罗博”)。在该实施例中,识别最后用来拨打电话的应用。在其他实施例中,识别最常见用来执行对应于意图的任务的应用。对于同一实施例,识别最常见用来拨打电话的应用。在一些实施例中,根据一个或多个参数进一步选择应用。例如,识别最新近用来给联系人罗博拨打电话的应用,或者识别最常见用来给联系人罗博拨打电话的应用。在一些实施例中,例如可由用户或数字助理为一个或多个特定任务和/或参数指定默认应用。用户例如可指定在呼叫第一联系人时使用第一应用以及在呼叫第二联系人时使用第二应用。
如所述,在一些情况下,自然语言用户输入可包括可识别为一个或多个参数的定制词汇。在一些实施例中,此类定制词汇包括应用名称,并且因此可基于输入中的定制词汇的存在识别应用。例如自然语言用户输入可讲出“使用 Skype呼叫罗博”。作为应答,软件应用Skype可为识别的软件应用。在另一实施例中,自然语言输入可讲出“在Spotify上播放披头士”以及作为应答,软件应用Spotify可为识别的软件应用。
定制词汇还可包括与应用唯一相关联的术语。因此,此类术语可识别为参数以及用来识别应用。在实施例“给我派一辆UberX”中,“UberX”为软件应用Uber的定制词汇的术语并且作为结果Uber被识别为软件应用。在实施例“推送我希望鲨鱼队捧杯”中,“Tweet”为软件应用Twitter的定制词汇的术语并且作为结果Twitter被识别为软件应用。
在一些实施例中,没有配置为根据识别的参数执行任务的应用可由用户设备访问。作为结果,用户设备可访问(例如,下载和/或安装)配置为根据所识别的参数执行任务的应用。在一些实施例中,用户设备可识别多个软件应用以及为用户提供软件应用列表。用户可选择一个或多个应用,并且用户设备可访问一个或多个选择的应用。
在块820处,意图和参数被提供给识别的软件应用。在一些实施例中,意图和参数作为意图对象被提供给软件应用。
在一些实施例中,意图和参数可基于用户设备的状态选择性地提供给软件应用。作为实施例,意图和参数可基于用户设备是否处在锁定状态选择性地提供给用户设备。在一些实施例中,在设备处于锁定状态时可允许应用接收特定意图和参数。在其他实施例中,在用户设备未处于锁定状态时可允许应用接收特定意图和参数。应用是否可针对用户设备的特定状态接收特定意图可由软件应用指定,例如,在利用应用注册服务的登记过程期间。
在块825处,用户设备可从软件应用接收一个或多个应答。在一些实施例中,用户设备接收针对提供给软件应用的每个参数的应答。每一个应答例如可指示参数是否有效或者是否需要另外用户输入。如果应答指示参数有效,则针对参数未采取进一步动作。
如果软件应用提供的应答未指示参数有效,应答可指示需要对参数的澄清。例如,参数可能不恰当(即,无效)并且软件应用可从用户请求另外输入。作为实施例,考虑用户输入“派一辆蓝色汽车到1200大街”。尽管用户请求蓝色汽车,但是乘车预定应用(例如,Uber、Lyft)可能不允许选择蓝色汽车(例如,蓝色汽车可能不是支持的参数或者应用可确定当前没有蓝色汽车可用)。因此,在参数不恰当的情况下(例如,用户指定无效类型的汽车),应用可请求提供针对参数(例如,汽车类型)的适当(例如,有效)值。例如,参考图10A,基于来自软件应用的指示参数不恰当的应答,用户设备可提供自然语言查询1002提示用户选择有效参数。在本实施例中,用户设备提供自然语言查询要求用户选择有效的汽车类型。自然语言查询1002可使用用户设备的触敏显示器作为文本提供给用户,和/或可使用用户设备的音频输出部件作为语音提供给用户。如图所示,在一些实施例中,用户设备可将一个或多个候选参数1004提供(例如,显示)给用户用于选择。在本实施例中,候选参数1004包括“预算”、“黑色汽车”、“SUV”和“共享”。在一些实施例中,以此方式提供的候选参数1004可由软件应用提供。用户设备可通过提供触摸输入和/或将自然语言用户输入提供给用户设备来选择候选参数之一,并且作为应答,用户设备可将所选择的候选参数提供给软件应用。
如果软件应用提供的应答未指示参数有效,应答可指示需要对参数的消歧。作为结果,用户设备可从用户请求输入来对参数消歧。在实施例用户输入“呼叫汤姆”中,联系人汤姆的参数可提供给配置为拨打电话的软件应用。如果在确定联系人汤姆的联系人信息(例如,电话号码)时,软件应用确定存在名字为“汤姆”的多个联系人,则软件应用可请求用户指定想要哪个“汤姆”。作为请求的一部分,软件应用在应答中包括具有多个候选参数的消歧列表。用户设备可提供自然语言查询要求用户选择候选参数。而且,消歧列表的候选参数可显示来允许用户选择。用户例如可通过提供触摸输入和/或提供自然语言用户输入来选择候选参数之一,并且,用户设备可将所选择的候选参数提供给软件应用。
执行任务可要求用户指定一个或多个特定类型的参数。在一些实施例中,自然语言用户输入可忽略一个或多个请求的参数。因此,软件应用可选地提供一个或多个应答指示如果存在的话不指定要求的参数。考虑用户输入“派一辆汽车到1200大街”。尽管通常利用用户输入请求汽车,则基于用户输入识别的乘车预定应用可请求选择特定类型的汽车。因此,在参数缺失的情况下 (例如,用户未指定汽车的类型),应用可请求提供针对参数(例如,汽车类型)的认可值。再次参考图10A,用户设备可提供自然语言查询1002提示用户指定有效参数。其后,用户可例如从候选参数列表选择候选参数,并且选择的参数可被提供给软件应用,如上所述。
一旦软件应用指示每个参数有效并且未请求另外信息,在块830处,用户设备可向软件应用确认意图。特别地,用户设备可请求通知,给定意图以及与意图相关联的参数,软件应用可成功执行对应于该意图的任务。
一旦软件应用提供通知指示软件应用可执行任务,可选地,用户设备向用户确认意图。例如,用户设备可提供自然语言查询“我能在你的位置得到 uberX,我要请求它吗?”用户可通过触摸输入或自然语言输入确认或拒绝该意图。在一些实施例中,软件应用提供的通知可包括提供给用户的信息。信息例如可允许用户在被提示确认时做出更知情的决定。例如,用户设备可提供自然语言查询“我能派uberX在9分钟后到你的位置,我要请求它吗?”
其后,用户设备使得(例如,指示)软件应用根据参数执行对应于意图的任务。
在块835处,用户设备从软件应用接收结果应答,指示软件应用是否成功执行该任务。指示未执行任务的结果应答还可指示失败的一个或多个原因。在一些实施例中,用户设备可将输出,诸如自然语言输出提供给用户指示失败的一个或多个原因。
指示成功执行任务的结果应答可包括一个或多个应答项目。每个应答项目可为在执行任务时由软件应用确定的(例如,接收的、生成的)结果。举例来说,对应于利用乘车预定应用预定汽车的应答项目可包括汽车类型、牌照号、驾驶人姓名、到达时间、当前汽车位置、拾取位置、目的地、估计旅程时间、估计成本和估计旅程路线、服务类型(例如,Uberpool vs.uberX)。作为另一实施例,对应于利用健身应用发起锻炼会话的应答项目可包括确认已发起会话、锻炼持续时间、活动类型和一个或多个目标。
在一些实施例中,可将一个或多个应答项目提供给用户。参考图10B,例如,一个或多个应答项目可作为自然语言输出1012,文本输入和/或音频输出提供给用户。也可视觉上提供应答项目。例如,可将估计旅程路线的地图 1014提供给用户。应当理解,应答项目可采用任何理想的方式提供给用户。
在一些实施例中,软件应用可指定一个或多个应答项目提供给用户的方式。即,软件应用可确定应答项目显示和/或说给用户以及数字助理可相应地提供每个应答项目的方式。
在一些实施例中,软件应用可指定使用数字助理的UI扩展提供应答项目的方式。用户设备例如可为软件应用提供一组视图控制器参数(例如,可提供给视图控制器来显示的字段),以及作为响应,软件应用可提供一组视图控制器参数值。该组视图控制器参数值可指示哪些应答项目将要显示在视图控制器的各个字段中和/或应答项目显示在每个字段中的方式。
在其他实施例中,数字助理可确定如何提供应答项目。在其他实施例中,调用软件应用使得用户可直接与软件应用交互。在一些实施例中,以此方式调用应用可终止与数字助理的会话。
在一些实施例中,验证软件应用的许可,例如,在意图和参数提供给软件应用之前。用户设备例如可确定软件应用是否被允许访问与特定意图相关联的数据。确定可基于在用户设备上配置的许可做出。在实施例“派一辆黑色汽车在我的位置”中,“位置”可为需要用户设备的上下文信息(例如,位置数据)的上下文参数。因此,在解决用户设备的位置以及将位置作为参数提供给软件应用之前,用户设备可首先确定软件应用是否被允许访问该信息。如果允许软件应用访问数据,则操作如所述前进。如果不允许软件应用访问数据,则不把意图和参数提供给软件应用并且不执行任务。
在一些实施例中,自然语言输入可包括多个任务请求。因此,基于自然语言输入,可识别多个意图和/或多个应用。可选地也识别与每个意图相关联的参数。自然语言输入“请开车送我到机场并告诉我航班状态”例如可包括预定汽车的意图以及获取用户航班的状态的意图两者。在一些实施例中,可依次或同时执行对应于每个意图的任务。
在一些实施例中,自然语言输入可包括多个相关的任务请求。例如,在一些实施例中,自然语言用户输入的请求任务可取决于自然语言输入的另一请求任务的完成。在实施例“将到机场的指向发电子邮件给我”中,请求两个任务:第一个任务提供指向以及第二任务发送电子邮件。参数“我”指定特定联系人并且为发送电子邮件的意图的参数,参数“机场”为指定提供指向的意图的目的地的参数。因将通过电子邮件发送指向要求首先提供指向,所以第二任务(电子邮件)取决于第一任务(提供指向)。因此,首先执行获取指向的任务。
在一些实施例中,可在应用之间提供意图。例如,应用可向另一应用提供意图对象来使得该应用执行任务。在本实施例中,意图(提供指向和电子邮件)两者可提供给地图应用来提供所请求指向。第二意图或发送电子邮件的意图例如可作为参数提供给地图应用。根据第一意图或提供指向的意图,地图应用可提供所请求指向。随后,地图应用可将第二意图提供给电子邮件应用,例如,包括指向的意图对象作为参数。作为响应,电子邮件应用可如所请求的将指向通过电子邮件发送。
作为另一实施例,用户可在浏览体育应用(例如,ESPN应用)时提供用户输入“请开车送我到鲨鱼队比赛”。作为响应,具有有关比赛的信息的体育应用可将意图(例如,预定汽车)和参数(例如,比赛地址)传递给乘车预定应用。在一些实施例中,意图和参数可提供作为意图对象。
作为另一实施例,用户可在使用乘车预定应用时提供用户输入“支付我兄弟$5”。作为响应,乘车预定应用可将意图(例如,支付)和参数($5)传递给支付应用(例如,PayPal、Venmo、在线支付服务)。如所述,在一些实施例中,意图和参数可提供作为意图对象。
图9示出了根据一些实施方案的用于操作数字助理的过程的流程图。过程900例如可用来实现图8的过程800的至少一部分,包括但不限于图8的块 815和/或块820。例如使用实现数字助理的一个或多个电子设备(例如,设备 104,108,200,400或600)执行过程900。在一些实施例中,使用客户端-服务器系统(例如,系统100)执行过程900,并且过程900的块可在服务器(例如,DA服务器106)与客户端设备之间以任意方式划分。因此,尽管过程 900的部分在本文描述为由客户端-服务器系统的特定设备执行,但是应当理解,过程900不限于此。在其他实施例中,仅使用客户端设备(例如,用户设备104)执行过程900。在过程900中,可选地组合一些块,可选地改变一些块的次序,并且可选地省略一些块。在一些实施例中,可与过程900结合地执行另外步骤。
在块905处,自然语言用户输入由用户设备,诸如图1的用户设备104接收。如所述,自然语言输入可包括对用户设备和/或另一设备的请求来执行任务,并且还可指定所请求任务的一个或多个参数。
在块910处,识别意图以及可选地与该意图相关联的一个或多个参数。意图和参数可从自然语言用户输入获得。如前所述,意图可对应于用户设备执行的任何种类的任务,特别地,可对应于用户设备的一个或多个应用执行的任务。与意图相关联的参数可识别指定将要执行对应于该意图的任务的方式的自然语言输入的部分。在实施例中,“请开车把我送到机场”,意图对应于预定汽车的任务而“机场”为指定目的地的参数。假定用户的意图为预定汽车,则用户的位置也可为参数(例如,推断的参数)。
在块915处,确定是否可满足对应于该意图的任务。在一些实施例中,确定可包括确定根据参数配置为执行任务的应用是否可从用户设备访问。在本实施例中,确定用户设备是否可访问配置为在用户设备的位置预定汽车的应用。如所述,可访问应用为本地存储在用户设备上以及可由用户设备远程访问的那些应用。
根据确定可满足对应于该意图的任务,在块920处,将意图和参数提供给软件应用。例如,如果在块915确定用户设备可访问根据任何识别的参数配置为执行所请求的任务的软件应用,则将意图和参数提供给应用来执行任务。在本实施例中,这包括确定配置为在用户设备的位置预定汽车的软件应用是否可从用户设备访问。例如,乘车预定应用Lyft可安装在用户设备上并且可根据本文所述的实施例用来预定汽车。
根据确定不能满足对应于该意图的任务,在块925处,提供一个或多个软件应用列表。一个或多个软件应用列表例如可包括根据任何识别的参数配置为执行与意图相关联的任务的一个或多个软件应用。在一些实施例中,例如可基于与意图相关联的一个或多个域(取消应用可向一个或多个域注册)识别列表的一个或多个软件应用。参考图10C,一旦确定软件应用列表(例如,乘车预定应用),则用户设备可将列表提供给用户。如所示,提供列表可包括提供自然语言输入1022,请求用户从一个或多个软件应用列表选择应用。在一些实施例中,列表由用户设备生成。在其他实施例中,软件应用列表由服务器生成并且提供给用户设备,用户设备继而可将该列表提供给用户,如所述。
在块930处,用户设备接收指示对一个或多个软件应用列表中的一个或多个软件应用的选择的用户输入。用户输入可为用户设备的触敏显示器上的触摸输入和/或可为自然语言用户输入。
在块935处,意图和参数被提供给用户选择的软件应用。在一些实施例中,提供意图和参数包括下载和/或安装软件应用使得用户设备可本地访问软件应用。在其他实施例中,这包括远程访问所选择的应用。
如所述,响应于意图和参数,软件应用可提供一个或多个应答。一旦参数得到验证,用户设备可向软件应用确认意图并且使得软件应用执行该任务。用户设备其后可接收结果应答并且可选地将结果应答的一个或多个应答项目提供给用户。
本文参考为用户设备的用户提供自然语言输出和/或自然语言查询。在一些实施例中,将自然语言输出和查询提供给用户的方式可取决于用户设备的类型或状态。如果例如用户设备为移动电话,则用户设备可使用文本和音频两者提供查询。如果在另一方面用户设备为扬声器,则用户设备可仅使用音频提供查询。作为另一实施例,如果用户设备为未与耳机配对的移动电话,则用户设备可使用文本和/或相对短的自然语言查询提供查询。如果用户设备与耳机配对,则用户设备可仅使用相对长的自然语言查询提供查询。
图10D示出根据一些实施方案的数字助理系统的示例性数据流。在一些实施例中,可使用过程800,900中的一个或多个实现图10D的数据流。图 10D示出根据一些实施方案的数字助理系统1030的示例性数据流。具体地,图10D示出了应用登记过程的数据流和执行任务的数据流。数据流1031-1041 可与应用登记过程(图10D中示为虚线)相关联而数据流1043-1051可与任务的执行(图10D中示为实线)相关联。
通常,与应用登记过程相关联的数据流涉及应用向应用登记服务的注册 (例如,验证服务),借此应用以及对应于此的定制词汇可由执行任务的数字助理访问和/或利用。
在操作中,在数据流1031,应用被提交到应用浏览模块1032。也可提交对应于应用的语言模型以及应用的意图两者。语言模型可包括应用的定制词汇。反过来,在数据流1033,应用浏览模块1032可将应用、定制词汇和/或应用的意图提供给验证服务1034。验证服务1034可例如基于应用是否与数字助理可操作来确定是否验证该应用。这可例如包括确保应用的任何意图对应于应用的一个或多个域。例如,验证服务可拒绝与预定汽车的意图相关联的即时消息应用,因为域和意图失配。在数据流1035,验证服务1034可提供验证应答指示应用是否有效。
如果验证服务1034指示应用有效,则应用浏览模块1032将应用(如验证的)提供给应用存储装置1036。通常,应用可由用户设备1040经由DA服务器1038下载和/或在应用存储装置1036访问,如数据流1039所指示。在一些实施例中,用户设备1040可为图1的用户设备104,而DA服务器1038可为图1的DA服务器106。这可例如导致用户设备1040的应用列表(例如, info.plist)得到更新和/或与DA服务器1038同步。在数据流1041,验证服务可将应用的定制词汇(例如,运行时词汇)提供给DA服务器1038以有助于解析自然语言输入,如所述。
通常,与执行任务相关联的数据流涉及提供意图,并且可选地,应用的用于执行对应于意图的任务的一个或多个参数。
在操作中,在数据流1043,用户设备1040可将自然语言输入提供给DA 服务器1038。在一些实施例中,自然语言输入可由用户设备1040的数字助理 1042提供。基于自然语言输入,DA服务器1038可识别在自然语言输入中请求的一个或多个任务以及与意图相关联的一个或多个参数。此外,DA服务器 1038可识别用于执行与意图相关联的任务的应用。在一些实施例中,所识别应用1044的名字(或其他形式的标识符)可为意图的参数。在数据流1045, DA服务器1038其后将意图、参数和所识别应用1044的标识提供给用户设备 1040(例如,用户设备1040的数字助理1042)。在一些实施例中,意图和参数可作为意图对象提供给用户设备1040。
作为响应,数字助理确定是否允许所识别应用1044访问与所识别参数相关联的信息。例如,如果参数为用户设备1040的位置,则数字助理查询数据许可1046来确定是否允许应用1044访问位置数据。
在允许应用访问每个参数的数据的情况下,用户设备(例如,用户设备的数字助理1042)将意图提供给应用。如所述,应用可驻留在用户设备1040 上。在其他实施例中,应用可驻留在一个或多个其他设备上,而意图可通过一个或多个网络传输到应用。如所述,如果应用确定一个或多个参数缺失、不恰当和/或不清楚,则应用1044其后可从用户设备1040的用户请求输入。在一些实施例中,用户输入的查询可提供作为由DA服务器1038生成的自然语言查询。因此,在数据流1051,用户设备1040可请求,并且随后接收一个或多个自然语言查询。一旦解决所有参数,应用1044可执行对应于意图的任务以及提供指示是否成功执行该任务的结果应答。
例如使用实现数字助理的一个或多个电子设备(例如,设备104、108、 200、400或600)执行(例如,生成)图10D的数据流中的一个或多个。特别地,在DA服务器1038与用户设备1040的数字助理1042之间提供的数据流示为取决于客户端服务器架构。在其他实施例中,DA服务器1038可实现为在用户设备1040上的过程和/或服务。因此,在一些实施例中,DA服务器 1038与数字助理1042之间交换的数据流可仅在用户设备1040上交换。
图10E示出根据一些实施方案的数字助理系统1060的示例性数据流。特别地,图10E示出应用登记过程的示例性数据流并且可用来实现如在图10D 中讨论的应用登记过程。而且,图10E的若干组件分别对应于图10D的组件,并且可提供有相同标号。出于简洁目的,将不重复对其功能和操作的说明。
在数据流1065,验证词汇从验证服务1034提供给全局应用词汇存储装置 1060。通常,全局应用词汇存储装置可存储用于任意数量和/或版本的软件应用的语言模型和/或词汇。在数据流1061和1063,训练语音训练模块1062和自然语言训练模块1064来识别自然语言以及处理随附验证应用的特定于应用的词汇。基于数据,全局应用词汇存储装置可生成和/或训练允许数字助理识别和处理包含特定于应用的词汇的话语的一个或多个语言模型。
在用户设备,诸如图10D的用户设备1040的操作期间,运行时特定全局应用词汇存储装置可从全局应用词汇存储装置1060接收用于用户设备的一个或多个应用的词汇和/或语言模型。词汇可专用于用户设备的用户的用户ID和/或可专用于用户设备的应用和/或操作系统的版本。基于词汇,自然语言输入的一个或多个术语例如可被识别为参数。
根据一些实施方案,图11示出根据各种所述实施方案的原理进行配置的电子设备1100的功能框图,包括参考图8所述的那些功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原则的硬件、软件、或硬件和软件的组合来实现。本领域的技术人员应当理解,图11中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。
如图11所示,电子设备1100包括触敏显示器单元1102和可选地耦接至触敏显示器单元1102的处理单元1108。在一些实施方案中,处理单元1108 包括接收单元1110、识别单元1112、提供单元1114、以及可选地,输出单元 1116、扬声器单元1118、显示使能单元1120、确定单元1122、请求单元 1124、访问单元1126和促成单元1128。
在一些实施例中,处理单元1108配置为接收(例如,利用接收单元 1110)自然语言用户输入(例如,图8的块805);利用一个或多个处理器识别(例如,利用识别单元1112)一组意图对象中的意图对象以及与意图对象相关联的参数,其中意图对象和参数从自然语言用户输入(例如,图8的块 810)获得;识别(例如,利用识别单元1112)与该组意图对象中的意图对象相关联的软件应用(例如,图8的块815);以及将意图对象和参数提供(例如,利用提供单元1114)给软件应用(例如,图8的块820)。
在一些实施例中,处理单元1108还配置为从软件应用接收(例如,利用接收单元1110)应答,其中应答指示该参数是否有效(例如,图8的块 825)。
在一些实施例中,从软件应用接收(例如,利用接收单元1110)应答包括从软件应用接收(例如,利用接收单元1110)与参数相关联的消歧列表,其中消歧列表包括多个候选参数。
在一些实施例中,处理单元1108还配置为输出(例如,利用输出单元 1116)消歧列表;接收(例如,利用接收单元1110)指示对消歧列表的候选参数值的选择的用户输入;将所选择的消歧列表的候选参数值提供(例如,利用提供单元1114)给软件应用。
在一些实施例中,自然语言用户输入为第一自然语言输入,参数为第一参数,处理单元1108还配置为从软件应用接收(例如,利用接收单元1110) 对与意图对象相关联的第二参数的请求;基于该请求提供(例如,利用提供单元1114)自然语言查询;接收(例如,利用接收单元1110)第二自然语言用户输入;识别(例如,利用识别单元1112)第二参数,其中第二参数从第二自然语言用户输入获得,并且将第二参数提供(例如,利用提供单元1114) 给软件应用。
在一些实施例中,电子设备还包括音频输出部件,以及提供自然语言查询包括经由语音合成通过音频输出部件讲出(例如,利用扬声器单元1118) 自然语言查询。
在一些实施例中,提供自然语言查询包括基于电子设备的类型、电子设备的状态或其组合提供(例如,利用提供单元1114)自然语言查询。
在一些实施例中,处理单元1108还配置为,在将意图对象和参数提供给软件应用后,从软件应用接收(例如,利用接收单元1110)与意图对象相关联的结果应答(例如,图8的块835)。
在一些实施例中,接收结果应答包括从软件应用接收(例如,利用接收单元1110)与意图对象相关联的一组应答项目,并且输出(例如,利用输出单元1116)该组应答项目。
在一些实施例中,处理单元1108还配置为将一组视图控制器参数提供 (例如,利用提供单元1114)给软件应用;以及从软件应用接收(例如,利用接收单元1110)对应于该组视图控制器参数的一组视图控制器参数值,其中输出该组应答项目包括基于接收的视图控制器参数值在用户界面中启用对该组应答项目的显示(例如,利用显示启用单元1120)。
在一些实施例中,该组意图对象中的每个意图对象与软件应用相关联。
在一些实施例中,意图对象为第一意图对象并且其中参数与第一意图对象相关联且不与第二意图对象相关联。
在一些实施例中,处理单元1108还配置为确定(例如,利用确定单元 1122)电子设备是否处于锁定状态;以及根据确定设备处于锁定状态,确定 (例如,利用确定单元1122)在电子设备处于锁定状态时是否允许意图对象提供给软件应用,其中仅根据确定在电子设备处于锁定状态时允许意图对象提供给软件应用来把意图对象和参数值提供给软件应用。
在一些实施例中,通过利用多个检测器中的每一个分析自然语言用户输入,从自然语言用户输入获得参数。
在一些实施例中,处理单元1108还配置为确定(例如,利用确定单元 1122)电子设备的用户上下文,其中参数至少部分基于用户上下文。
在一些实施例中,处理单元1108还配置为请求(例如,利用请求单元 1124)对参数的确认;以及接收(例如,利用接收单元1110)对应于对参数的确认的用户输入,其中响应于接收到用户输入将参数提供给软件应用。
在一些实施例中,识别软件应用包括确定(例如,利用确定单元1122) 软件应用是否驻留在电子设备上;以及根据确定软件应用未驻留在电子设备上,确定(例如,利用确定单元1122)软件应用是否驻留在与电子设备通信的外部设备上。在一些实施例中,将意图对象和参数提供给软件应用包括,根据确定软件应用驻留在与电子设备通信的外部设备上,通过将意图对象和参数提供给外部设备将意图对象和参数提供(例如,利用提供单元1114)给软件应用。
在一些实施例中,识别软件应用包括确定(例如,利用确定单元1122) 软件应用是否驻留在电子设备上;根据确定软件应用未驻留在电子设备上,识别(例如,利用识别单元1112)与意图对象相关联的一组软件应用;在用户界面上启用显示(例如,利用显示启用单元1120)与意图对象相关联的该组软件应用;接收(例如,利用接收单元1110)指示对与意图对象相关联的该组软件应用中的一个或多个软件应用的选择的用户输入;以及访问(例如,利用访问单元1126)选择的与意图对象相关联的该组软件应用的一个或多个软件应用。
在一些实施例中,识别与该组意图对象中的意图对象相关联的软件应用包括基于参数识别(例如,利用识别单元1112)软件应用。
在一些实施例中,处理单元1108还配置为基于自然语言用户输入识别 (例如,利用识别单元1112)来自该组意图对象的第三意图对象;基于所识别的第三意图对象识别(例如,利用识别单元1112)第二软件应用;将第三意图对象和至少一个应答项目提供(例如,利用提供单元1114)给第二软件应用;以及从第二软件应用接收(例如,利用接收单元1110)与第三意图对象相关联的第二应答项目。
在一些实施例中,软件应用为第一软件应用,以及将意图对象和参数提供给软件应用包括使得(例如,利用促成单元1128)第三软件应用将意图对象和参数提供给第一软件应用。
在一些实施例中,接收自然语言用户输入包括接收(例如,利用接收单元1110)包括特定于应用的术语的自然语言用户输入;并且其中识别与该组意图对象中的意图对象相关联的软件应用包括基于特定于应用的术语识别(例如,利用识别单元1112)软件应用。
在一些实施例中,处理单元1108还配置为接收(例如,利用接收单元 1110)包括软件应用的标识的命令;以及响应于该命令,确定(例如,利用确定单元1122)是否允许软件应用访问与意图对象相关联的数据。
在一些实施例中,处理单元1108还配置为基于参数使得(例如,利用促成单元1128)软件应用执行与意图对象相关联的任务。
以上相对于图8所述的操作任选地由图1、图2A、图4、图6A至图 6B、图7A和图11中所描绘的部件来实现。例如,接收操作805,825和835;识别操作810和815;提供操作820以及确认操作830可选地由处理器120实现。本领域的普通技术人员会清楚地知道可如何基于在图1、图2A、图4、图 6A至图6B、图7A和图11中所描绘的部件来实现其他过程。
本领域的技术人员应当理解,图11中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。例如,处理单元 1108可具有与处理单元1108可操作地耦接来启动操作的相关联的“控制器”单元。该控制器单元在图11中未单独示出,但是应当理解为在设计具有处理单元1108的设备,诸如设备1100的本领域技术人员的掌握中。在一些实施方案中,作为另一实施例,一个或多个单元,诸如接收单元1110,可为处理单元1108以外的硬件单元。因此,本文的描述任选地支持本文所述的功能块的组合、分离和/或进一步限定。
根据一些实施方案,图12示出根据各种所述实施方案的原理进行配置的电子设备1200的功能框图,包括参考图8所述的那些功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原则的硬件、软件、或硬件和软件的组合来实现。本领域的技术人员应当理解,图12中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。
如图12中所示,一个或多个电子设备1200包括一个或多个处理单元 1208。在一些实施方案中,一个或多个处理单元1208包括接收单元1210、确定单元1212、识别单元1214和提供单元1216。
在一些实施例中,一个或多个处理单元1208配置为接收(例如,利用接收单元1210)自然语言用户输入(例如,图8的块805);基于自然语言用户输入确定(例如,利用确定单元1212)一组意图对象中的意图对象以及与意图对象相关联的参数(例如,图8的块810)获得;基于意图对象或参数中的至少一个识别(例如,利用识别单元1214)软件应用(例如,图8的块 815);以及将意图对象和参数提供(例如,利用提供单元1216)给软件应用 (例如,图8的块820)。
在一些实施例中,基于自然语言用户输入确定一组意图对象中的意图对象以及与该意图对象相关联的参数包括利用一个或多个电子设备1200的第一电子设备确定(例如,利用确定单元1212)该组意图对象中的意图对象以及与该意图对象相关联的参数;并且其中将意图对象和参数提供给软件应用包括利用一个或多个电子设备1200的第二电子设备将意图对象和参数提供(例如,利用提供单元1216)给软件应用。
在一些实施例中,一个或多个处理单元1208配置为利用一个或多个电子设备1200的第一电子设备将命令提供(例如,利用提供单元1216)给一个或多个电子设备1200的第二电子设备;以及响应于该命令,利用第二电子设备确定(例如,利用确定单元1212)是否允许软件应用访问与意图对象相关联的数据。
在一些实施例中,一个或多个处理单元1208配置为从软件应用接收(例如,利用接收单元1210)应答,其中应答指示该参数是否有效(例如,图8 的块825)。
在一些实施例中,参数指示软件应用。
在一些实施例中,一个或多个处理单元1208配置为基于自然语言用户输入识别(例如,利用识别单元1214)软件应用;以及确定(例如,利用确定单元1212)该组意图对象中的意图对象是否对应于软件应用的登记的意图对象;其中仅根据确定意图对象对应于软件应用的登记的意图对象确定该意图对象和参数。
在一些实施例中,参数为第一参数,以及一个或多个处理单元配置为基于自然语言用户输入确定(例如,利用确定单元1212)第二参数;以及将第二参数提供(例如,利用提供单元1216)给软件应用。
在一些实施例中,应答为第一应答,以及一个或多个处理单元配置为从软件应用接收(例如,利用接收单元1210)第二应答,其中第二应答指示第二参数是否有效。
以上相对于图8所述的操作任选地由图1、图2A、图4、图6A至图 6B、图7A和图12中所描绘的部件来实现。例如,接收操作805,825和835;识别操作810和815;提供操作820以及确认操作830可选地由处理器120实现。本领域的普通技术人员会清楚地知道可如何基于在图1、图2A、图4、图 6A至图6B、图7A和图12中所描绘的部件来实现其他过程。
本领域的技术人员应当理解,图12中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。例如,一个或多个处理单元1208可具有与一个或多个处理单元1208中的至少一个可操作地耦接来启动操作的相关联的“控制器”单元。该控制器单元在图12中未单独示出,但是应当理解为在设计具有一个或多个处理单元1208的设备,诸如设备 1200的本领域技术人员的掌握中。在一些实施方案中,作为另一实施例,一个或多个单元,诸如接收单元1210,可为一个或多个处理单元1208以外的硬件单元。因此,本文的描述任选地支持本文所述的功能块的组合、分离和/或进一步限定。
根据一些实施方案,图13示出根据各种所述实施方案的原理进行配置的电子设备1300的功能框图,包括参考图9所述的那些功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原则的硬件、软件、或硬件和软件的组合来实现。本领域的技术人员应当理解,图13中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。
如图13中所示,一个或多个电子设备1300包括一个或多个处理单元 1308。在一些实施方案中,一个或多个处理单元1308包括接收单元1310、识别单元1312、确定单元1314、提供单元1316以及可选地促成单元1318。
在一些实施例中,一个或多个处理单元1308配置为接收(例如,利用接收单元1310)自然语言用户输入(例如,图9的块905);基于自然语言用户输入识别(例如,利用识别单元1312)一组意图对象中的意图对象以及与意图对象相关联的参数(例如,图9的块910);基于意图对象或参数中的至少一个确定(例如,利用确定单元1314)是否可满足对应于该意图对象的任务(例如,图9的块915);根据确定可满足对应于该意图对象的任务,将意图对象和参数提供(例如,利用提供单元1316)给与意图对象相关联的软件应用(例如,图9的块920);以及根据确定不能满足对应于该意图对象的任务,提供(例如,利用提供单元1316)与意图对象相关联的一个或多个软件应用列表(例如,图9的块925)。
在一些实施例中,一个或多个处理单元1308配置为,在提供与意图对象相关联的一个或多个软件应用列表之后,接收(例如,利用接收单元1310) 指示对一个或多个软件应用列表的软件应用的选择的用户输入(例如,图9的块930);以及响应于用户输入,将该组意图对象中的意图对象提供(例如,利用提供单元1316)给所选择的软件应用(例如,图9的块935)。
在一些实施例中,一个或多个处理单元1308配置为,响应于用户输入,将参数提供(例如,利用提供单元1316)给所选择的软件应用。
在一些实施例中,一个或多个处理单元1308配置为从所选择的软件应用接收(例如,利用接收单元1310)应答,以及该应答指示该参数是否有效。
在一些实施例中,一个或多个处理单元1308配置为使得(例如,利用促成单元1318)所选择的软件应用执行对应于该意图对象的任务,以及在将意图对象提供给所选择的软件应用之后,从所选择的软件应用接收(例如,利用接收单元1310)与意图对象相关联的结果应答。
以上相对于图9所述的操作任选地由图1、图2A、图4、图6A至图 6B、图7A和图13中所描绘的部件来实现。例如,确定操作905;提供操作 910,915和925以及接收操作920可选地由处理器120实现。本领域的普通技术人员会清楚地知道可如何基于在图1、图2A、图4、图6A至图6B、图7A 和图13中所描绘的部件来实现其他过程。
本领域的技术人员应当理解,图13中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。例如,一个或多个处理单元1308可具有与一个或多个处理单元1308中的至少一个可操作地耦接来启动操作的相关联的“控制器”单元。该控制器单元在图13中未单独示出,但是应当理解为在设计具有一个或多个处理单元1308的设备,诸如设备 1300的本领域技术人员的掌握中。在一些实施方案中,作为另一实施例,一个或多个单元,诸如接收单元1310,可为一个或多个处理单元1308以外的硬件单元。因此,本文的描述任选地支持本文所述的功能块的组合、分离和/或进一步限定。
根据一些实施方案,图14示出根据各种所述实施方案的原理进行配置的电子设备1400的功能框图,包括参考图9所述的那些功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原则的硬件、软件、或硬件和软件的组合来实现。本领域的技术人员应当理解,图14中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。
如图14所示,电子设备1400包括触敏显示器单元1402和可选地耦接至触敏显示器单元1402的处理单元1408。在一些实施方案中,处理单元1402 包括接收单元1410、提供单元1412、获得单元1414、显示启用单元1416,以及任选的识别单元1418和促成单元1420。
在一些实施例中,处理单元1408配置为接收(例如,利用接收单元 1410)自然语言用户输入,其中自然语言用户输入指示一组意图对象中的意图对象(例如,图9的块905);将自然语言用户输入提供(例如,利用提供单元1412)给第二电子设备;从第二电子设备接收(例如,利用接收单元 1410)与意图对象相关联的软件应用不在第一电子设备上的指示(例如,图9 的块925);响应于该通知,获得(例如,利用获得单元1414)与意图对象相关联的应用列表;利用第一电子设备的触敏显示器,在用户界面中启用显示 (例如,利用显示启用单元1416)与意图对象相关联的应用列表;接收(例如,利用接收单元1410)指示对应用列表中的应用的选择的用户输入(例如,图9的块930);以及将该组意图对象中的意图对象提供(例如,利用提供单元1412)给该应用(例如,利用图9的块935)。
在一些实施例中,处理单元1408还被配置为识别(例如,利用识别单元 1418)该组意图对象中的意图对象。
在一些实施例中,处理单元1408还配置为识别(例如,利用识别单元 1418)与该组意图对象中的意图对象相关联的参数;以及将该参数提供(例如,利用提供单元1412)给该应用。
在一些实施例中,处理单元1408还配置为从该应用接收(例如,利用接收单元1410)应答,以及该应答指示该参数是否有效。
在一些实施例中,处理单元1408配置为使得(例如,利用促成单元 1420)该应用执行与该意图对象相关联的任务;以及在将意图对象提供给该应用之后,从该应用接收(例如,利用接收单元1410)与意图对象相关联的结果应答。
以上相对于图9所述的操作任选地由图1、图2A、图4、图6A至图 6B、图7A和图14中所描绘的部件来实现。例如,确定操作905;提供操作 910,915和925以及接收操作920可选地由处理器120实现。本领域的普通技术人员会清楚地知道可如何基于在图1、图2A、图4、图6A至图6B、图7A 和图14中所描绘的部件来实现其他过程。
本领域的技术人员应当理解,图14中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。例如,处理单元 1408可具有与处理单元1408可操作地耦接来启动操作的相关联的“控制器”单元。该控制器单元在图14中未单独示出,但是应当理解为在设计具有处理单元1408的设备,诸如设备1400的本领域技术人员的掌握中。在一些实施方案中,作为另一实施例,一个或多个单元,诸如接收单元1410,可为处理单元1408以外的硬件单元。因此,本文的描述任选地支持本文所述的功能块的组合、分离和/或进一步限定。
出于解释的目的,前面的描述是通过参考具体实施方案来描述的。然而,上面的例示性论述并非旨在是穷尽的或将本发明限制为所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择并描述这些实施方案是为了最好地解释这些技术的原理及其实际应用。本领域的其他技术人员由此能够最好地利用这些技术以及具有适合于所预期的特定用途的各种修改的各种实施方案。
虽然参照附图对本公开以及示例进行了全面的描述,但应当注意,各种变化和修改对于本领域内的技术人员而言将变得显而易见。应当理解,此类变化和修改被认为被包括在由权利要求书所限定的本公开和示例的范围内。

Claims (16)

1.一种方法,包括:
在每一个具有一个或多个处理器的一个或多个电子设备处:
接收自然语言用户输入;
基于所述自然语言用户输入识别一组意图对象中的意图对象以及与所述意图对象相关联的参数;
基于所述意图对象或所述参数中的至少一个确定是否能满足对应于所述意图对象的任务;
根据确定可满足对应于所述意图对象的所述任务:
将所述意图对象和所述参数提供给与所述意图对象相关联的软件应用;以及
向所述软件应用确认所述意图对象;以及
根据确定不能满足对应于所述意图对象的所述任务,提供与所述意图对象相关联的一个或多个软件应用的列表。
2.根据权利要求1所述的方法,还包括:
在提供与所述意图对象相关联的一个或多个软件应用的列表之后,接收指示对所述一个或多个软件应用的列表中的软件应用的选择的用户输入;以及
响应于所述用户输入,将所述一组意图对象中的所述意图对象提供给所选择的软件应用。
3.根据权利要求2所述的方法,还包括:
响应于所述用户输入,将所述参数提供给所选择的软件应用。
4.根据权利要求3所述的方法,还包括:
从所选择的软件应用接收应答,其中所述应答指示所述参数是否有效。
5.根据权利要求2至4中任一项所述的方法,还包括:
使得所选择的软件应用执行对应于所述意图对象的所述任务;以及
在将所述意图对象提供给所选择的软件应用之后,从所选择的软件应用接收与所述意图对象相关联的结果应答。
6.一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由电子设备的一个或多个处理器执行时,使得所述电子设备:
接收自然语言用户输入;
基于所述自然语言用户输入识别一组意图对象中的意图对象以及与所述意图对象相关联的参数;
基于所述意图对象或所述参数中的至少一个确定是否能满足对应于所述意图对象的任务;
根据确定可满足对应于所述意图对象的所述任务:
将所述意图对象和所述参数提供给与所述意图对象相关联的软件应用;以及
向所述软件应用确认所述意图对象;以及
根据确定不能满足对应于所述意图对象的所述任务,提供与所述意图对象相关联的一个或多个软件应用的列表。
7.根据权利要求6所述的非暂态计算机可读存储介质,其中所述指令在由所述一个或多个处理器执行时还使得所述电子设备:
在提供与所述意图对象相关联的一个或多个软件应用的列表之后,接收指示对所述一个或多个软件应用的列表中的软件应用的选择的用户输入;以及
响应于所述用户输入,来将所述一组意图对象中的所述意图对象提供给所选择的软件应用。
8.根据权利要求7所述的非暂态计算机可读存储介质,其中所述指令在由所述一个或多个处理器执行时还使得所述电子设备:
响应于所述用户输入,来将所述参数提供给所选择的软件应用。
9.根据权利要求8所述的非暂态计算机可读存储介质,其中所述指令在由所述一个或多个处理器执行时还使得所述电子设备:
从所选择的软件应用接收应答,其中所述应答指示所述参数是否有效。
10.根据权利要求7至9中任一项所述的非暂态计算机可读存储介质,其中所述指令在由所述一个或多个处理器执行时还使得所述电子设备:
使得所选择的软件应用执行对应于所述意图对象的所述任务;以及
在将所述意图对象提供给所选择的软件应用之后,从所选择的软件应用接收与所述意图对象相关联的结果应答。
11.一种电子设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于进行以下操作的指令:
接收自然语言用户输入;
基于所述自然语言用户输入识别一组意图对象中的意图对象以及与所述意图对象相关联的参数;
基于所述意图对象或所述参数中的至少一个确定是否能满足对应于所述意图对象的任务;
根据确定可满足对应于所述意图对象的所述任务:
将所述意图对象和所述参数提供给与所述意图对象相关联的软件应用;以及
向所述软件应用确认所述意图对象;以及
根据确定不能满足对应于所述意图对象的所述任务,提供与所述意图对象相关联的一个或多个软件应用的列表。
12.根据权利要求11所述的电子设备,还包括:
在提供与所述意图对象相关联的一个或多个软件应用的列表之后,接收指示对所述一个或多个软件应用的列表中的软件应用的选择的用户输入;以及
响应于所述用户输入,将所述一组意图对象中的所述意图对象提供给所选择的软件应用。
13.根据权利要求12所述的电子设备,其中所述一个或多个程序还包括用于以下操作的指令:
响应于所述用户输入,来将所述参数提供给所选择的软件应用。
14.根据权利要求13所述的电子设备,其中所述一个或多个程序还包括用于以下操作的指令:
从所选择的软件应用接收应答,其中所述应答指示所述参数是否有效。
15.根据权利要求12至14中任一项所述的电子设备,其中所述一个或多个程序还包括用于以下操作的指令:
使得所选择的软件应用执行对应于所述意图对象的所述任务;以及
在将所述意图对象提供给所选择的软件应用之后,从所选择的软件应用接收与所述意图对象相关联的结果应答。
16.一种系统,包括:
用于执行根据权利要求1至4中任一项所述的方法的装置。
CN201710395240.XA 2016-06-11 2017-05-26 具有数字助理的应用集成装置及方法 Active CN107493374B (zh)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US201662348929P 2016-06-11 2016-06-11
US62/348,929 2016-06-11
DKPA201670540 2016-07-19
DKPA201670540A DK201670540A1 (en) 2016-06-11 2016-07-19 Application integration with a digital assistant
DKPA201670562A DK201670562A1 (en) 2016-06-11 2016-07-28 Application integration with a digital assistant
DKPA201670563 2016-07-28
DKPA201670562 2016-07-28
DKPA201670564A DK179301B1 (en) 2016-06-11 2016-07-28 Application integration with a digital assistant
DKPA201670564 2016-07-28
DKPA201670563A DK201670563A1 (en) 2016-06-11 2016-07-28 Application integration with a digital assistant

Publications (2)

Publication Number Publication Date
CN107493374A CN107493374A (zh) 2017-12-19
CN107493374B true CN107493374B (zh) 2020-06-19

Family

ID=60642137

Family Applications (5)

Application Number Title Priority Date Filing Date
CN201710386931.3A Active CN107491295B (zh) 2016-06-11 2017-05-26 具有数字助理的应用集成
CN201710395240.XA Active CN107493374B (zh) 2016-06-11 2017-05-26 具有数字助理的应用集成装置及方法
CN201710386355.2A Active CN107491468B (zh) 2016-06-11 2017-05-26 具有数字助理的应用集成
CN202110515238.8A Pending CN113238707A (zh) 2016-06-11 2017-05-26 具有数字助理的应用集成
CN202010814076.3A Pending CN111913778A (zh) 2016-06-11 2017-05-26 具有数字助理的应用集成

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201710386931.3A Active CN107491295B (zh) 2016-06-11 2017-05-26 具有数字助理的应用集成

Family Applications After (3)

Application Number Title Priority Date Filing Date
CN201710386355.2A Active CN107491468B (zh) 2016-06-11 2017-05-26 具有数字助理的应用集成
CN202110515238.8A Pending CN113238707A (zh) 2016-06-11 2017-05-26 具有数字助理的应用集成
CN202010814076.3A Pending CN111913778A (zh) 2016-06-11 2017-05-26 具有数字助理的应用集成

Country Status (1)

Country Link
CN (5) CN107491295B (zh)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US20120311585A1 (en) 2011-06-03 2012-12-06 Apple Inc. Organizing task items that represent tasks to perform
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
BR112015018905B1 (pt) 2013-02-07 2022-02-22 Apple Inc Método de operação de recurso de ativação por voz, mídia de armazenamento legível por computador e dispositivo eletrônico
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
EP3149728B1 (en) 2014-05-30 2019-01-16 Apple Inc. Multi-command single utterance input method
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770429A1 (en) 2017-05-12 2018-12-14 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10818288B2 (en) * 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10902211B2 (en) * 2018-04-25 2021-01-26 Samsung Electronics Co., Ltd. Multi-models that understand natural language phrases
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
CN110874201B (zh) * 2018-08-29 2023-06-23 斑马智行网络(香港)有限公司 交互方法、设备、存储介质和操作系统
CN109065047B (zh) * 2018-09-04 2021-05-04 出门问问信息科技有限公司 一种唤醒应用服务的方法及装置
US11462215B2 (en) * 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
CN109857487A (zh) * 2019-02-02 2019-06-07 上海奔影网络科技有限公司 用于任务执行的数据处理方法及装置
US11050884B2 (en) * 2019-02-25 2021-06-29 Liveperson, Inc. Intent-driven contact center
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
CN111399714A (zh) * 2019-05-31 2020-07-10 苹果公司 用户活动快捷方式建议
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11043220B1 (en) 2020-05-11 2021-06-22 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5946647A (en) * 1996-02-01 1999-08-31 Apple Computer, Inc. System and method for performing an action on a structure in computer-generated data
US6839896B2 (en) * 2001-06-29 2005-01-04 International Business Machines Corporation System and method for providing dialog management and arbitration in a multi-modal environment
US8326630B2 (en) * 2008-08-18 2012-12-04 Microsoft Corporation Context based online advertising
US10276170B2 (en) * 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8626511B2 (en) * 2010-01-22 2014-01-07 Google Inc. Multi-dimensional disambiguation of voice commands
US8731939B1 (en) * 2010-08-06 2014-05-20 Google Inc. Routing queries based on carrier phrase registration
CN103135916A (zh) * 2011-11-30 2013-06-05 英特尔公司 手持无线设备中的智能图形界面
US8589911B1 (en) * 2012-07-26 2013-11-19 Google Inc. Intent fulfillment
US9547647B2 (en) * 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
CN103077165A (zh) * 2012-12-31 2013-05-01 威盛电子股份有限公司 自然语言对话方法及其系统
KR101759009B1 (ko) * 2013-03-15 2017-07-17 애플 인크. 적어도 부분적인 보이스 커맨드 시스템을 트레이닝시키는 것
EP3594828A1 (en) * 2013-06-07 2020-01-15 Apple Inc. Intelligent automated assistant
KR101816375B1 (ko) * 2013-06-08 2018-01-08 애플 인크. 제한된 주의 산만 및 비제한된 주의 산만 컨텍스트에 대해 상이한 사용자 인터페이스를 제공하는 애플리케이션 게이트웨이
CN105264524B (zh) * 2013-06-09 2019-08-02 苹果公司 用于实现跨数字助理的两个或更多个实例的会话持续性的设备、方法、和图形用户界面
CN103744761B (zh) * 2014-01-22 2017-02-08 广东欧珀移动通信有限公司 一种控制多台移动终端自动执行任务的方法及系统
KR102223278B1 (ko) * 2014-05-22 2021-03-05 엘지전자 주식회사 글래스 타입 단말기 및 이의 제어방법
EP3149728B1 (en) * 2014-05-30 2019-01-16 Apple Inc. Multi-command single utterance input method
EP3195098A2 (en) * 2014-07-21 2017-07-26 Apple Inc. Remote user interface
CN104867492B (zh) * 2015-05-07 2019-09-03 科大讯飞股份有限公司 智能交互系统及方法

Also Published As

Publication number Publication date
CN107493374A (zh) 2017-12-19
CN107491295A (zh) 2017-12-19
CN107491468B (zh) 2021-06-01
CN107491295B (zh) 2020-08-18
CN111913778A (zh) 2020-11-10
CN107491468A (zh) 2017-12-19
CN113238707A (zh) 2021-08-10

Similar Documents

Publication Publication Date Title
CN107493374B (zh) 具有数字助理的应用集成装置及方法
CN107608998B (zh) 具有数字助理的应用集成
CN108733438B (zh) 应用程序与数字助理集成
CN111418007B (zh) 多轮预制对话
CN110019752B (zh) 多方向对话
CN110288994B (zh) 检测数字助理的触发
CN110058834B (zh) 智能设备仲裁和控制
CN107491469B (zh) 智能任务发现
CN107195306B (zh) 识别提供凭据的语音输入
CN112286428A (zh) 虚拟助理连续性
CN110851101A (zh) 虚拟助理激活
CN110637339A (zh) 使用隐式反馈优化数字助理的对话策略决策
CN111524506B (zh) 维护个人信息的隐私的自然语言输入的客户端服务器处理
AU2018100403A4 (en) Application integration with a digital assistant

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