CN109463004A - 数字助理服务的远场延伸 - Google Patents

数字助理服务的远场延伸 Download PDF

Info

Publication number
CN109463004A
CN109463004A CN201880002639.XA CN201880002639A CN109463004A CN 109463004 A CN109463004 A CN 109463004A CN 201880002639 A CN201880002639 A CN 201880002639A CN 109463004 A CN109463004 A CN 109463004A
Authority
CN
China
Prior art keywords
electronic equipment
user
equipment
response
electronic
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
CN201880002639.XA
Other languages
English (en)
Other versions
CN109463004B (zh
Inventor
Y·金姆
C·斯苏瓦纳努科恩
D·A·卡尔森
T·R·格鲁贝尔
J·G·宾德尔
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 DKPA201770435A external-priority patent/DK179560B1/en
Application filed by Apple Inc filed Critical Apple Inc
Priority to CN201910065508.2A priority Critical patent/CN110021300B/zh
Priority to CN202310874581.0A priority patent/CN117130574A/zh
Priority to CN201910310783.6A priority patent/CN110021301B/zh
Publication of CN109463004A publication Critical patent/CN109463004A/zh
Application granted granted Critical
Publication of CN109463004B publication Critical patent/CN109463004B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/20Speech recognition techniques specially adapted for robustness in adverse environments, e.g. in noise, of stress induced speech
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/22Interactive procedures; Man-machine interfaces
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/187Phonemic context, e.g. pronunciation rules, phonotactical constraints or phoneme n-grams
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Machine Translation (AREA)

Abstract

本公开提供了用于操作智能自动化助理以提供数字助理服务的延伸的系统和过程。一种示例方法包括:在具有一个或多个处理器的电子设备处,从第一用户接收表示用户请求的第一语音输入。所述方法还包括获得所述第一用户的身份;并且根据所述用户身份,向第二电子设备或第三电子设备中的至少一者提供对所述用户请求的表示。所述方法还包括:基于确定是所述第二电子设备或所述第三电子设备还是其两者将向所述第一电子设备提供所述响应,从所述第二电子设备或所述第三电子设备接收对所述用户请求的所述响应。所述方法还包括向所述第一用户提供对所述响应的表示。

Description

数字助理服务的远场延伸
相关申请的交叉引用
本申请要求以下专利申请的优先权:于2017年5月16日提交的标题为“FAR-FIELDEXTENSION FOR DIGITAL ASSISTANT SERVICES”的美国临时专利申请序列号62/507,151;于2017年6月2日提交的标题为“FAR-FIELD EXTENSION FOR DIGITAL ASSISTANTSERVICES”的丹麦专利申请No.PA 2017 70434;于2017年6月2日提交的标题为“FAR-FIELDEXTENSION FOR DIGITAL ASSISTANT SERVICES”的丹麦专利申请No.PA 2017 70435;以及于2017年8月16日提交的标题为“FAR-FIELD EXTENSION FOR DIGITAL ASSISTANTSERVICES”的美国非临时专利申请序列号15/679,108,以上专利申请中的每个专利申请的内容据此全文以引用方式并入。
技术领域
本发明整体涉及智能自动化助理,并且更具体地讲,涉及数字助理服务的远场延伸。
背景技术
智能自动化助理(或数字助理)可在人类用户与电子设备之间提供有利界面。此类助理可允许用户使用自然语言以语音形式和/或文本形式与设备或系统进行交互。例如,用户可向正在电子设备上运行的数字助理提供包含用户请求的语音输入。数字助理可从该语音输入解译用户意图并且将用户意图操作化成任务。随后可通过执行电子设备的一项或多项服务来执行这些任务,并且可将响应于用户请求的相关输出返回给用户。
使用数字助理通常需要用户和数字助理之间的直接交互。例如,可能需要用户与数字助理在其上操作的电子设备处于非常接近(例如,在同一房间中)。因此,数字助理可以经由其麦克风直接接收用户的语音输入,并经由其扬声器向用户提供响应。在某些情况下,需要用户与电子设备处于非常接近可能会给用户与数字助理进行交互造成困难和不便。例如,如果用户和数字助理在其上操作的电子设备被分开超过一定距离(例如,在不同的房间中),使得数字助理不能够或者难以接收到用户的语音输入,则数字助理可能不能够向用户提供数字助理服务。因此,期望用于数字助理服务的远场延伸的技术。
此外,不同类型的电子设备可能具有不同的能力。因此,在不同设备处提供的数字助理服务可能不同。由于设备能力限制,可能无法在某些设备处提供某些数字助理服务。例如,虽然在智能电话设备上操作的数字助理可以输出对文本消息的语音阅读,但是由于设备限制,在电视机顶盒上操作的数字助理可能不能够做到这一点。因此,期望使用多个设备来提供数字助理服务以减轻设备能力限制。
发明内容
本发明提供了用于提供数字助理服务的系统和过程。
本文公开了示例方法。一种示例方法包括:在具有一个或多个处理器的电子设备处,从第一用户接收表示用户请求的第一语音输入。该方法还包括获得第一用户的身份;并且根据用户身份,向第二电子设备或第三电子设备中的至少一者提供对用户请求的表示。该方法还包括:基于确定是第二电子设备或第三电子设备还是其两者将向第一电子设备提供响应,从第二电子设备或第三电子设备接收对用户请求的响应。该方法还包括向第一用户提供对响应的表示。
本文公开了示例非暂态计算机可读介质。一种示例非暂态计算机可读存储介质存储一个或多个程序。所述一个或多个程序包括指令,该指令当由电子设备的一个或多个处理器执行时使得电子设备从第一用户接收表示用户请求的第一语音输入。所述一个或多个程序还包括指令,该指令使得电子设备获得第一用户的身份;并且根据用户身份,向第二电子设备或第三电子设备中的至少一者提供对用户请求的表示。所述一个或多个程序还包括指令,该指令使得电子设备基于确定是第二电子设备或第三电子设备还是其两者将向第一电子设备提供响应,从第二电子设备或第三电子设备接收对用户请求的响应。所述一个或多个程序还包括指令,该指令使得电子设备向第一用户提供对响应的表示。
本文公开了示例电子设备。一种示例电子设备包括一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在存储器中并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括指令,该指令用于从第一用户接收表示用户请求的第一语音输入。所述一个或多个程序还包括指令,该指令用于获得第一用户的身份;并且根据用户身份,向第二电子设备或第三电子设备中的至少一者提供对用户请求的表示。所述一个或多个程序还包括指令,该指令用于基于确定是第二电子设备或第三电子设备还是其两者将向第一电子设备提供响应,从第二电子设备或第三电子设备接收对用户请求的响应。所述一个或多个程序还包括指令,该指令用于向第一用户提供对响应的表示。
一种示例电子设备包括用于从第一用户接收表示用户请求的第一语音输入的装置。该电子设备还包括用于执行以下操作的装置:获得第一用户的身份;并且根据用户身份,向第二电子设备或第三电子设备中的至少一者提供对用户请求的表示。该电子设备还包括用于执行以下操作的装置:基于确定是第二电子设备或第三电子设备还是其两者将向第一电子设备提供响应,从第二电子设备或第三电子设备接收对用户请求的响应。该电子设备还包括用于向第一用户提供对响应的表示的装置。
本文公开了示例方法。一种示例方法包括:在具有一个或多个处理器的电子设备处,接收对与第一用户相关联的事件的通知。该方法还包括响应于接收到通知而输出对通知的指示。该方法还包括接收一个或多个语音输入;并且根据所述一个或多个语音输入,确定是否将在第一电子设备处提供通知。该方法还包括:根据确定将在第一电子设备处提供通知,在第一电子设备处提供通知。
本文公开了示例非暂态计算机可读介质。一种示例非暂态计算机可读存储介质存储一个或多个程序。所述一个或多个程序包括指令,该指令当由电子设备的一个或多个处理器执行时使得电子设备接收对与第一用户相关联的事件的通知。所述一个或多个程序还包括指令,该指令使得电子设备响应于接收到通知而输出对通知的指示。所述一个或多个程序还包括指令,该指令使得电子设备接收一个或多个语音输入;并且根据所述一个或多个语音输入,确定是否将在第一电子设备处提供通知。所述一个或多个程序还包括指令,该指令使得电子设备:根据确定将在第一电子设备处提供通知,在第一电子设备处提供通知。
本文公开了示例电子设备。一种示例电子设备包括一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在存储器中并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括指令,该指令用于接收对与第一用户相关联的事件的通知。所述一个或多个程序包括指令,该指令用于响应于接收到通知而输出对通知的指示。所述一个或多个程序包括指令,该指令用于接收一个或多个语音输入;并且根据所述一个或多个语音输入,确定是否将在第一电子设备处提供通知。所述一个或多个程序包括指令,该指令用于:根据确定将在第一电子设备处提供通知,在第一电子设备处提供通知。
一种示例电子设备包括用于接收对与第一用户相关联的事件的通知的装置。该电子设备还包括用于响应于接收到通知而输出对通知的指示的装置。该电子设备还包括用于执行以下操作的装置:接收一个或多个语音输入;并且根据所述一个或多个语音输入,确定是否将在第一电子设备处提供通知。该电子设备还包括用于执行以下操作的装置:根据确定将在第一电子设备处提供通知,在第一电子设备处提供通知。
本文公开了示例方法。一种示例方法包括:在具有一个或多个处理器的电子设备处,从第一用户接收表示用户请求的第一语音输入。该方法还包括获得与能够通信地耦接到第一电子设备的一个或多个电子设备相关联的能力数据。该方法还包括:根据能力数据,从能够通信地耦接到第一电子设备的所述一个或多个电子设备识别用于提供对用户请求的响应的至少一部分的第二电子设备。该方法还包括使得第二电子设备向第一用户提供响应的至少一部分。
本文公开了示例非暂态计算机可读介质。一种示例非暂态计算机可读存储介质存储一个或多个程序。所述一个或多个程序包括指令,该指令当由电子设备的一个或多个处理器执行时使得电子设备从第一用户接收表示用户请求的第一语音输入。所述一个或多个程序还包括指令,该指令使得电子设备获得与能够通信地耦接到第一电子设备的一个或多个电子设备相关联的能力数据。所述一个或多个程序还包括指令,该指令使得电子设备:根据能力数据,从能够通信地耦接到第一电子设备的所述一个或多个电子设备识别用于提供对用户请求的响应的至少一部分的第二电子设备。所述一个或多个程序还包括指令,该指令使得电子设备向第一用户提供响应的至少一部分。
本文公开了示例电子设备。一种示例电子设备包括一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在存储器中并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括指令,该指令用于从第一用户接收表示用户请求的第一语音输入。所述一个或多个程序还包括指令,该指令用于获得与能够通信地耦接到第一电子设备的一个或多个电子设备相关联的能力数据。所述一个或多个程序还包括指令,该指令用于:根据能力数据,从能够通信地耦接到第一电子设备的所述一个或多个电子设备识别用于提供对用户请求的响应的至少一部分的第二电子设备。所述一个或多个程序还包括指令,该指令用于使得第二电子设备向第一用户提供响应的至少一部分。
一种示例电子设备包括用于从第一用户接收表示用户请求的第一语音输入的装置。该电子设备还包括用于获得与能够通信地耦接到第一电子设备的一个或多个电子设备相关联的能力数据的装置。该电子设备还包括用于执行以下操作的装置:根据能力数据,从能够通信地耦接到第一电子设备的所述一个或多个电子设备识别用于提供对用户请求的响应的至少一部分的第二电子设备。该电子设备还包括用于使得第二电子设备向第一用户提供响应的至少一部分的装置。
用于由一个或多个服务延伸设备进行的数字助理服务的远场延伸的技术可改进用户交互界面。例如,使用一个或多个服务延伸设备,不再需要用户与用于接收由在电子设备上操作的数字助理提供的数字助理服务的电子设备处于非常接近(例如,在同一房间中)。此外,服务延伸设备可以根据用户请求的内容灵活地从设置在用户附近的设备和/或远程设置的设备获得对用户请求的响应。例如,如果用户请求个人信息(例如,日历事件),则服务延伸设备可从设置在用户附近的设备(例如,用户的智能电话)而不是远程设备获得响应,从而减少了向用户提供服务所需的时间。在一些情况下,从本地设备获得响应还可减轻隐私担忧,因为敏感或机密信息可被包含在本地设备之间的通信中。此外,从不同设备获得响应的能力增强了服务延伸设备向用户提供响应的能力。例如,如果不能从一个设备(例如,用户的智能电话)获得用户请求的信息,则服务延伸设备可从另一设备(例如,服务器)获得响应。因此,服务延伸设备可动态地从一个或多个设备获得响应,并且有效地从多个设备延伸数字助理服务。
一个或多个服务延伸设备可进一步延伸数字助理服务以增强提供数字助理服务的连续性。例如,一个或多个服务延伸设备可根据用户的位置、移动、偏好等确定将在任何特定服务延伸设备处还是在另一电子设备处提供对用户请求的响应(例如,播放音乐)。这种选择最佳设备来提供服务延伸的能力增强了在多个设备之间提供数字助理服务的连续性并且进一步改进了用户交互界面。此外,一个或多个服务延伸设备可被多个用户(例如,家庭成员)共享,并且设备的操作可基于对多个用户的认证。因此,相同的服务延伸设备可从与多个用户相关联的多个电子设备延伸数字助理服务。这种共享服务延伸设备的能力增强了提供数字助理延伸服务的效率。
此外,用于使用一个或多个服务延伸设备来向用户提供通知的技术可在延伸距离内向用户提供即时通知。例如,用户可能与用户设备分开一段距离,并因此可能不能够直接接收由用户设备提供的通知。一个或多个服务延伸设备可从用户设备(例如,用户的智能电话)接收通知,并向用户提供与通知相关联的音频和/或视觉输出。因此,服务延伸设备有效地延伸了用户设备可向用户提供通知的距离。
此外,用于使用多个设备来提供数字助理服务的技术可减轻设备能力限制。例如,由于其能力的限制(例如,屏幕尺寸小、缺少所请求的信息等),用户设备可能无法响应于用户请求而提供服务。用户设备可识别能够提供服务的另一设备并且使得另一设备向用户提供所请求的服务。识别能够提供所请求的服务的另一设备的能力利用一批设备的能力来向用户提供数字助理服务,并通过减少用户在寻求合适设备时的负担来增强用户交互效率。
此外,这些技术增强了设备的可操作性并且使用户-设备界面更有效,这又通过使用户能够更快速且有效地使用设备而减少了电力使用并且延长了设备的电池寿命。
附图说明
图1为示出了根据各种示例的用于实现数字助理的系统和环境的框图。
图2A是示出根据各种示例的实现数字助理的客户端侧部分的便携式多功能设备的框图。
图2B为示出了根据各种示例的用于事件处理的示例性部件的框图。
图3示出了根据各种示例的实现数字助理的客户端侧部分的便携式多功能设备。
图4为根据各种示例的具有显示器和触敏表面的示例性多功能设备的框图。
图5A示出了根据各种示例的便携式多功能设备上的应用程序的菜单的示例性用户界面。
图5B示出了根据各种示例的具有与显示器分开的触敏表面的多功能设备的示例性用户界面。
图6A示出了根据各种示例的个人电子设备。
图6B是示出根据各种示例的个人电子设备的框图。
图7A为示出了根据各种示例的数字助理系统或其服务器部分的框图。
图7B示出了根据各种示例的在图7A中所示的数字助理的功能。
图7C示出了根据各种示例的知识本体的一部分。
图8A至图8B示出了根据各种示例的基于用户输入来在第一电子设备处提供数字助理服务的功能。
图9A至图9C示出了根据各种示例的在第一电子设备处获得用户的身份的功能。
图10A至图10C示出了根据各种示例的基于对信息的用户请求来提供数字助理服务的功能。
图11A至图11D示出了根据各种示例的基于用于执行任务的用户请求来提供数字助理服务的功能。
图12A至图12C示出了根据各种示例的基于对信息的用户请求来提供数字助理服务的功能。
图13A至图13B示出了根据各种示例的在第一电子设备或另外电子设备处提供数字助理服务的功能。
图14示出了根据各种示例的在不同电子设备之间提供数字助理服务的连续性的功能。
图15A至图15G示出了根据各种示例的基于对事件的通知来提供数字助理服务的功能。
图16A至图16I示出了根据各种示例的用于基于用户输入来在第一电子设备处提供数字助理服务的过程。
图17A至图17D示出了根据各种示例的用于基于对事件的通知来提供数字助理服务的过程。
图18A至图18E示出了根据各种示例的用于基于多个电子设备的能力来提供数字助理服务的功能。
图19A至图19D示出了根据各种示例的用于基于多个电子设备的能力来提供数字助理服务的过程。
具体实施方式
在以下对示例的描述中将引用附图,在附图中以例示的方式示出了可被实施的特定示例。应当理解,在不脱离各个示例的范围的情况下,可使用其他示例并且可作出结构性变更。
本公开提供了用于由一个或多个服务延伸设备进行的数字助理服务的远场延伸的技术。如所描述的,使用服务延伸设备可改进用户交互界面。在一些示例中,第一电子设备可以是服务延伸设备。第一电子设备可接收表示用户请求的语音输入。第一电子设备可基于例如第二电子设备和/或第三电子设备对用户的认证来获得用户的身份。在一些示例中,第二电子设备可以是远离第一电子设备设置的设备(例如,远程服务器);并且第三电子设备可以是设置在第一电子设备附近的设备(例如,用户的智能电话)。在获得身份之后,第一电子设备可向第二电子设备和第三电子设备中的至少一者提供对用户请求的表示。第二电子设备和第三电子设备中的一者或两者可确定是否向第一电子设备提供响应。第一电子设备(例如,服务延伸设备)可接收该响应并向用户提供对该响应的表示。这样,第一电子设备有效地延伸了由第二电子设备和第三电子设备中的一者或两者提供的数字助理服务。
本公开还提供了用于使用一个或多个服务延伸设备来提供通知的技术。如上所述,使用一个或多个服务延伸设备,可在延伸距离内即时地向用户提供通知。在一些示例中,第一电子设备可从另一设备(例如,用户的智能电话)接收通知并输出对通知的指示(例如,蜂鸣声)。第一电子设备可接收询问该指示并指示第一电子设备执行通知的操作(例如,输出通知)的一个或多个语音输入。第一电子设备可确定是否应提供通知;并根据确定来提供通知。
本公开还提供了用于使用多个设备来提供数字助理服务的技术。如上所述,用于使用多个设备来提供数字助理服务的技术可减轻设备能力限制。在一些示例中,第一电子设备接收表示用户请求的语音输入,并获得与能够通信地耦接到第一电子设备的一个或多个电子设备相关联的能力数据。能力数据可包括设备能力和信息能力。根据能力数据,第一电子设备可识别用于提供对用户请求的响应的至少一部分的第二电子设备;并且使得第二电子设备提供响应的至少一部分。
尽管以下描述使用术语“第一”、“第二”等来描述各种元件,但这些元件不应受术语的限制。这些术语只是用于将一个元件与另一元件区分开。例如,在不脱离各种所述示例的范围的情况下,第一输入可被称为第二输入,并且类似地,第二输入可被称为第一输入。第一输入和第二输入均为输入,并且在一些情况下为独立且不同的输入。
在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“includes”、“including”、“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其分组。
根据上下文,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
1.系统和环境
图1示出了根据各种示例的系统100的框图。在一些示例中,系统100实现数字助理。术语“数字助理”、“虚拟助理”、“智能自动化助理”或“自动数字助理”是指解译口头形式和/或文本形式的自然语言输入来推断用户意图,并且基于推断出的用户意图来执行动作的任何信息处理系统。例如,为了作用于推断出的用户意图,系统执行下述步骤中的一个或多个:识别具有设计用于实现推断出的用户意图的步骤和参数的任务流,根据推断出的用户意图将特定要求输入到任务流中;通过调用程序、方法、服务、API等执行任务流;以及以可听(例如,语音)和/或可视形式来生成对用户的输出响应。
具体地讲,数字助理能够接受至少部分地为自然语言命令、请求、声明、讲述和/或询问的形式的用户请求。通常,用户请求要么寻求数字助理作出信息性回答,要么寻求数字助理执行任务。对用户请求的令人满意的响应包括提供所请求的信息性回答、执行所请求的任务或这两者的组合。例如,用户向数字助理提出问题,诸如“我现在在哪里?”。基于用户的当前位置,数字助理回答“你在中央公园西门附近。”用户还请求执行任务,例如“请邀请我的朋友们下周来参加我女朋友的生日聚会。”作为响应,数字助理可通过讲出“好的,马上”来确认请求,然后代表用户将合适的日历邀请发送到用户电子通讯录中列出的用户朋友中的每位朋友。在执行所请求的任务期间,数字助理有时在很长时间段内在涉及多次信息交换的持续对话中与用户进行交互。存在与数字助理进行交互以请求信息或执行各种任务的许多其他方法。除提供言语响应并采取经编程的动作之外,数字助理还提供其他视频或音频形式的响应,例如作为文本、警报、音乐、视频、动画等。
如图1所示,在一些示例中,数字助理根据客户端-服务器模型来实现。数字助理包括在用户设备104上执行的客户端侧部分102(后文称作“DA客户端102”)以及在服务器系统108上执行的服务器侧部分106(后文称作“DA服务器106”)。DA客户端102通过一个或多个网络110与DA服务器106通信。DA客户端102提供客户端侧功能,诸如面向用户的输入和输出处理,以及与DA服务器106通信。DA服务器106为各自位于相应用户设备104上的任意数量的DA客户端102提供服务器侧功能。
在一些示例中,DA服务器106包括面向客户端的I/O接口112、一个或多个处理模块114、数据与模型116,以及到外部服务的I/O接口118。面向客户端的I/O接口112有利于DA服务器106的面向客户端的输入和输出处理。一个或多个处理模块114利用数据与模型116来处理语音输入,并基于自然语言输入来确定用户意图。此外,一个或多个处理模块114基于推断出的用户意图来执行任务执行。在一些示例中,DA服务器106通过一个或多个网络110与外部服务120通信以完成任务或采集信息。到外部服务的I/O接口118促成此类通信。
用户设备104可以是任何合适的电子设备。在一些示例中,用户设备是便携式多功能设备(例如,下面参考图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通信的任意数量和类型的用户设备。
虽然图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、CPU 220和存储器控制器222在单个芯片诸如芯片204上实现。在一些其他实施方案中,它们在独立的芯片上实现。
RF(射频)电路208接收和发送也被称作电磁信号的RF信号。RF电路208将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号与通信网络和其他通信设备进行通信。RF电路208任选地包括用于执行这些功能的熟知的电路,包括但不限于天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编解码芯片组、用户身份模块(SIM)卡、存储器等等。RF电路208任选地通过无线通信来与网络和其他设备进行通信,这些网络为诸如互联网(也被称为万维网(WWW))、内联网和/或无线网络(诸如,蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN))。RF电路208任选地包括用于检测近场通信(NFC)场的熟知的电路,诸如通过近程通信无线电部件来进行检测。无线通信任选地使用多种通信标准、协议和技术中的任一种,包括但不限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、演进、纯数据(EV-DO)、HSPA、HSPA+、双小区HSPA(DC-HSPDA)、长期演进(LTE)、近场通信(NFC)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、蓝牙低功耗(BTLE)、无线保真(Wi-Fi)(例如,IEEE802.11a、IEEE 802.11b、IEEE 802.11g、IEEE802.11n和/或IEEE802.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”(通过在解锁图像上执行手势解锁设备)的美国专利No.7,657,849的美国专利申请11/322,549中所述的,该美国专利申请据此全文以引用方式并入本文。较长地按下下压按钮(例如,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”(多点触摸表面控制器)的美国专利申请No.11/381,313;(2)2004年5月6日提交的名称为“Multipoint Touchscreen”(多点触摸屏)的美国专利申请No.10/840,862;(3)2004年7月30日提交的名称为“GesturesFor Touch Sensitive Input Devices”(用于触敏输入设备的手势)的美国专利申请No.10/903,964;(4)2005年1月31日提交的名称为“Gestures For Touch Sensitive InputDevices”(用于触敏输入设备的手势)的美国专利申请No.11/048,264;(5)2005年1月18日提交的名称为“Mode-Based Graphical User Interfaces For Touch Sensitive InputDevices”(用于触敏输入设备的基于模式的图形用户界面)的美国专利申请No.11/038,590;(6)2005年9月16日提交的名称为“Virtual Input Device Placement On A TouchScreen User Interface”(放置在触摸屏用户界面上的虚拟输入设备)的美国专利申请No.11/228,758;(7)2005年9月16日提交的名称为“Operation Of A Computer With ATouch Screen Interface”(具有触摸屏界面的计算机的操作)的美国专利申请No.11/228,700;(8)2005年9月16日提交的名称为“Activating Virtual Keys Of A Touch-ScreenVirtual Keyboard”(激活触摸屏虚拟键盘的虚拟键)的美国专利申请No.11/228,737;以及(9)2006年3月3日提交的名称为“Multi-Functional Hand-Held Device”(多功能手持设备)的美国专利申请No.11/367,749。所有这些申请全文以引用方式并入本文。
触摸屏212例如具有超过100dpi的视频分辨率。在一些实施方案中,触摸屏具有约160dpi的视频分辨率。用户使用任何合适的对象或附加物诸如触笔、手指等与触摸屏212进行接触。在一些实施方案中,将用户界面设计为主要通过基于手指的接触和手势来工作,由于手指在触摸屏上的接触区域较大,因此这可能不如基于触笔的输入精确。在一些实施方案中,设备将基于手指的粗略输入转化为精确的指针/光标位置或命令以用于执行用户所期望的动作。
在一些实施方案中,除了触摸屏之外,设备200还包括用于激活或去激活特定功能的触控板(未示出)。在一些实施方案中,触控板是设备的触敏区域,与触摸屏不同,该触敏区域不显示视觉输出。触控板是与触摸屏212分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸。
设备200还包括用于为各种部件供电的电力系统262。电力系统262包括电力管理系统、一个或多个电源(例如,电池、交流电(AC))、再充电系统、电力故障检测电路、功率转换器或逆变器、电力状态指示器(例如,发光二极管(LED))和与便携式设备中电力的生成、管理和分配相关联的任何其他部件。
设备200还包括一个或多个光学传感器264。图2A示出了耦接到I/O子系统206中的光学传感器控制器258的光学传感器。光学传感器264包括电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。光学传感器264从环境接收通过一个或多个透镜而投射的光,并且将光转换为表示图像的数据。结合成像模块243(也叫做相机模块),光学传感器264捕获静态图像或视频。在一些实施方案中,光学传感器位于设备200的后部,与设备前部的触摸屏显示器212相背对,使得触摸屏显示器被用作用于静态图像和/或视频图像采集的取景器。在一些实施方案中,光学传感器位于设备的前部,使得在用户在触摸屏显示器上查看其他视频会议参与者的同时获取该用户的图像以用于视频会议。在一些实施方案中,光学传感器264的位置可由用户改变(例如,通过旋转设备外壳中的透镜和传感器),使得单个光学传感器264与触摸屏显示器一起使用以用于视频会议和静态图像和/或视频图像采集两者。
设备200任选地还包括一个或多个接触强度传感器265。图2A示出了耦接到I/O子系统206中的强度传感器控制器259的接触强度传感器。接触强度传感器265任选地包括一个或多个压阻应变计、电容式力传感器、电力传感器、压电力传感器、光学力传感器、电容式触敏表面或其他强度传感器(例如,用于测量触敏表面上的接触的力(或压力)的传感器)。接触强度传感器265从环境接收接触强度信息(例如,压力信息或压力信息的代用物)。在一些实施方案中,至少一个接触强度传感器与触敏表面(例如,触敏显示器系统212)并置排列或邻近。在一些实施方案中,至少一个接触强度传感器位于设备200的与位于设备200的前部上的触摸屏显示器212相背对的后部上。
设备200还包括一个或多个接近传感器266。图2A示出了耦接到外围设备接口218的接近传感器266。另选地,接近传感器266耦接到I/O子系统206中的输入控制器260。接近传感器266如以下美国专利申请中所述的那样执行:No.11/241,839,名称为“ProximityDetector In Handheld Device”(手持设备中的接近检测器);No.11/240,788,名称为“Proximity Detector In Handheld Device”(手持设备中的接近检测器);No.11/620,702,名称为“Using Ambient Light Sensor To Augment Proximity Sensor Output”(使用环境光线传感器增强接近传感器输出);No.11/586,862,名称为“Automated ResponseTo And Sensing Of User Activity In Portable Devices”(自动响应和感测便携式设备中的用户活动);以及No.11/638,251,名称为“Methods And Systems For AutomaticConfiguration Of Peripherals”(用于外围设备的自动配置的方法和系统),这些美国专利申请据此全文以引用方式并入本文。在一些实施方案中,当多功能设备被放置在用户的耳朵附近时(例如,当用户正在打电话时),接近传感器关闭并且禁用触摸屏212。
设备200任选地还包括一个或多个触觉输出发生器267。图2A示出了耦接到I/O子系统206中的触觉反馈控制器261的触觉输出发生器。触觉输出发生器267任选地包括一个或多个电声设备,诸如扬声器或其他音频部件;和/或将能量转换成线性运动的机电设备,诸如马达、螺线管、电活性聚合器、压电致动器、静电致动器或其他触觉输出生成部件(例如,将电信号转换成设备上的触觉输出的部件)。接触强度传感器265从触觉反馈模块233接收触觉反馈生成指令,并且在设备200上生成能够由设备200的用户感觉到的触觉输出。在一些实施方案中,至少一个触觉输出发生器与触敏表面(例如,触敏显示器系统212)并置排列或邻近,并且任选地通过竖直地(例如,向设备200的表面内/外)或侧向地(例如,在与设备200的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一些实施方案中,至少一个触觉输出发生器传感器位于设备200的与位于设备200的前部上的触摸屏显示器212相背对的后部上。
设备200还包括一个或多个加速度计268。图2A示出了耦接至外围设备接口218的加速度计268。另选地,加速度计268耦接至I/O子系统206中的输入控制器260。加速度计268如以下美国专利公开中所述那样执行:美国专利公开20050190059,“Acceleration-basedTheft 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或IM241的通信;等等。
结合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、DDR RAM或其他随机存取固态存储器设备;并且任选地包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器470任选地包括远离CPU 410定位的一个或多个存储设备。在一些实施方案中,存储器470存储与便携式多功能设备200(图2A)的存储器202中存储的程序、模块和数据结构类似的程序、模块和数据结构或其子集。此外,存储器470任选地存储在便携式多功能设备200的存储器202中不存在的附加程序、模块和数据结构。例如,设备400的存储器470任选地存储绘图模块480、呈现模块482、文字处理模块484、网站创建模块486、盘编辑模块488、和/或电子表格模块490,而便携式多功能设备200(图2A)的存储器202任选地不存储这些模块。
图4中的上述元件中的每一者在一些示例中存储在一个或多个先前提到的存储器设备中。上述模块中的每个模块对应于用于执行上述功能的指令集。上述模块或程序(例如,指令集)不必被实现为独立的软件程序、过程或模块,因此这些模块的各种子集在各种实施方案中组合或以其他方式重新布置。在一些实施方案中,存储器470存储上述模块和数据结构的子组。此外,存储器470存储上文未描述的另外的模块和数据结构。
现在将注意力转到可在例如便携式多功能设备200上实现的用户界面的实施方案。
图5A示出了根据一些实施方案的便携式多功能设备200上的应用程序菜单的示例性用户界面。类似的用户界面在设备400上实现。在一些实施方案中,用户界面500包括以下元件或者其子集或超集:
一种或多种无线通信(诸如蜂窝信号和Wi-Fi信号)的一个或多个信号强度指示器502;
●时间504;
●蓝牙指示符505;
●电池状态指示符506;
●具有常用应用程序图标的托盘508,图标诸如:
○电话模块238的被标记为“电话”的图标516,该图标任选地包括未接来电或语音留言的数量的指示符514;
○电子邮件客户端模块240的被标记为“邮件”的图标518,该图标任选地包括未读电子邮件的数量的指示符510;
○浏览器模块247的被标记为“浏览器”的图标520;以及
○视频和音乐播放器模块252(也称为iPod(Apple Inc.的商标)模块252)的被标记为“iPod”的图标522;以及
●其他应用程序的图标,诸如:
○IM模块241的被标记为“消息”的图标524;
○日历模块248的被标记为“日历”的图标526;
○图像管理模块244的被标记为“照片”的图标528;
○相机模块243的被标记为“相机”的图标530;
○在线视频模块255的被标记为“在线视频”的图标532;
○股市桌面小程序249-2的被标记为“股市”的图标534;
○地图模块254的被标记为“地图”的图标536;
○天气桌面小程序249-1的被标记为“天气”的图标538;
○闹钟桌面小程序249-4的被标记为“时钟”的图标540;
○健身支持模块242的被标记为“健身支持”的图标542;
○记事本模块253的被标记为“记事本”的图标544;以及
○用于设置应用程序或模块的被标记为“设置”的图标546,该图标提供对设备200及其各种应用程序236的设置的访问。
应当指示的是,图5A中示出的图标标签仅是示例性的。例如,视频和音乐播放器模块252的图标522任选地被标记为“音乐”或“音乐播放器”。对于各种应用程序图标任选地使用其他标签。在一些实施方案中,相应应用程序图标的标签包括与该相应应用程序图标对应的应用程序的名称。在一些实施方案中,特定应用程序图标的标签不同于与该特定应用程序图标对应的应用程序的名称。
图5B示出了具有与显示器550(例如,触摸屏显示器212)分开的触敏表面551(例如,图4的平板电脑或触摸板455)的设备(例如,图4的设备400)上的示例性用户界面。设备400还任选地包括用于检测触敏表面551上的接触的强度的一个或多个接触强度传感器(例如,传感器457中的一个或多个传感器),和/或用于为设备400的用户生成触觉输出的一个或多个触觉输出发生器459。
尽管将参考触摸屏显示器212(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器分开的触敏表面上的输入,如图5B中所示。在一些实施方案中,触敏表面(例如,图5B中的551)具有对应于显示器(例如,550)上的主轴(例如,图5B中的553)的主轴(例如,图5B中的552)。根据这些实施方案,设备检测在与显示器上的相应位置对应的位置(例如,在图5B中,560对应于568并且562对应于570)处与触敏表面551的接触(例如,图5B中的560和562)。这样,在触敏表面(例如,图5B中的551)与多功能设备的显示器(图5B中的550)分开时,由设备在触敏表面上检测到的用户输入(例如,接触560和562以及它们的移动)被该设备用于操控显示器上的用户界面。应当理解,类似的方法任选地用于本文所述的其他用户界面。
另外,虽然主要是参考手指输入(例如,手指接触、单指轻击手势、手指轻扫手势)来给出下面的示例,但是应当理解的是,在一些实施方案中,这些手指输入中的一个或多个手指输入由来自另一输入设备的输入(例如,基于鼠标的输入或触笔输入)替代。例如,轻扫手势任选地由鼠标点击(例如,而不是接触),之后是光标沿着轻扫的路径的移动(例如,而不是接触的移动)替代。又如,轻击手势任选地由在光标位于轻击手势的位置上方时的鼠标点击(例如,代替对接触的检测,之后是停止检测接触)替代。类似地,当同时检测到多个用户输入时,应当理解的是,多个计算机鼠标任选地被同时使用,或鼠标和手指接触任选地被同时使用。
图6A示出了示例性个人电子设备600。设备600包括主体602。在一些实施方案中,设备600包括相对于设备200和400(例如,图2A至图4B)所述的特征中的一些或全部特征。在一些实施方案中,设备600具有在下文中称为触摸屏604的触敏显示屏604。作为触摸屏604的替代或补充,设备600具有显示器和触敏表面。与设备200和400的情况一样,在一些实施方案中,触摸屏604(或触敏表面)具有用于检测正在施加的接触(例如,触摸)的强度的一个或多个强度传感器。触摸屏604(或触敏表面)的一个或多个强度传感器提供表示触摸的强度的输出数据。设备600的用户界面基于触摸强度来对触摸作出响应,这意味着不同强度的触摸可调用设备600上的不同的用户界面操作。
用于检测和处理触摸强度的技术可例如在相关申请中找到:2013年5月8日提交的名称为“Device,Method,and Graphical User Interface for Displaying UserInterface Objects Corresponding to an Application”(用于显示对应于应用的用户界面对象的设备、方法和图形用户界面)的国际专利申请No.PCT/US2013/040061,以及2013年11月11日提交的名称为“Device,Method,and Graphical User Interface forTransitioning Between Touch Input to Display Output Relationships”(用于触摸输入到显示输出之间关系转换的设备、方法和图形用户界面)的国际专利申请No.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、810A-C、820、830、840、1182、1186、1880和/或1882(图2、图4、图6、图8A至图8B、图9A至图9C、图10A至图10C、图11A至图11D、图12A至图12C、图13A至图13B、图14、图15A至图15G和图18A至图18E)的显示屏上的用户交互式图形用户界面对象。例如,图像(例如,图标)、按钮和文本(例如,超链接)各自构成示能表示。
如本文所用,术语“焦点选择器”是指用于指示用户正与之进行交互的用户界面的当前部分的输入元件。在包括光标或其他位置标记的一些具体实施中,光标充当“焦点选择器”,使得当光标在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)上方时在触敏表面(例如,图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、810A-C、830、840、1182、1186、1880或1882)上并通过一个或多个网络来与服务器部分(例如,服务器系统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包括相对于图2、图4、图6A至图6B、图8A至图8B、图9A至图9C、图10A至图10C、图11A至图11D、图12A至图12C、图13A至图13B、图14、图15A至图15G和图18A至图18E中各自的设备200、400、600、810A-C、820、830、840、1182、1186、1880和/或1882所描述的部件和I/O通信接口中的任一者。在一些示例中,数字助理系统700表示数字助理具体实施的服务器部分,并且可通过位于用户设备(例如,设备104、200、400、600、810A-C、830、840、1182、1186、1880和/或1882)上的客户端侧部分来与用户进行交互。
在一些示例中,网络通信接口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以供意图推断。在一些示例中,STT处理模块730产生言语输入的多个候选文本表示。每个候选文本表示是与语音输入对应的字词或符号的序列。在一些示例中,每个候选文本表示与言语识别置信度得分相关联。基于语音识别置信度得分,STT处理模块730对候选文本表示进行排序并将n个最佳(例如,n个排名最高)候选文本表示提供给自然语言处理模块732以供意图推断,其中n为大于零的预先确定的整数。例如,在一个示例中,仅将排名最高的(n=1)候选文本表示递送至自然语言处理模块732以供意图推断。又如,将5个排名最高的(n=5)候选文本表示传递给自然语言处理模块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生成的n个最佳候选文字表示(“字词序列”或“符号序列”),并尝试将每个候选文本表示与由数字助理所识别的一个或多个“可执行意图”相关联。“可执行意图”(或“用户意图”)表示可由数字助理执行并且可具有在任务流模型754中实现的相关联的任务流的任务。相关联任务流是数字助理为了执行任务而采取的一系列经编程的动作和步骤。数字助理的能力范围取决于已在任务流模型754中实现并存储的任务流的数量和种类,或换言之,取决于数字助理所识别的“可执行意图”的数量和种类。然而,数字助理的有效性还取决于助理从以自然语言表达的用户请求中推断出正确的“一个或多个可执行意图”的能力。
在一些示例中,除从STT处理模块730获取的字词或符号的序列之外,自然语言处理模块732还(例如,从I/O处理模块728)接收与用户请求相关联的上下文信息。自然语言处理模块732任选地使用上下文信息来明确、补充和/或进一步限定在从STT处理模块730接收的候选文本表示中包含的信息。上下文信息包括例如用户偏好,用户设备的硬件和/或软件状态,在用户请求之前、期间或之后不久收集的传感器信息,数字助理与用户之间的先前交互(例如,对话),等等。如本文所述,在一些示例中,上下文信息是动态的,并且随对话的时间、位置、内容、以及其他因素而变化。
在一些示例中,自然语言处理基于例如知识本体760。知识本体760为包含许多节点的分级结构,每个节点表示“可执行意图”或与“可执行意图”或其他“属性”中的一者或多者相关的“属性”。如上所述,“可执行意图”表示数字助理能够执行的任务,即,该任务为“可执行的”或可被进行的。“属性”代表与可执行意图或另一属性的子方面相关联的参数。知识本体760中可执行意图节点与属性节点之间的连接定义由属性节点表示的参数如何从属于由可执行意图节点表示的任务。
在一些示例中,知识本体760由可执行意图节点和属性节点组成。在知识本体760内,每个可执行意图节点直接连接至或通过一个或多个中间属性节点连接至一个或多个属性节点。类似地,每个属性节点直接连接至或通过一个或多个中间属性节点连接至一个或多个可执行意图节点。例如,如图7C所示,知识本体760包括“餐厅预订”节点(即,可执行意图节点)。属性节点“餐厅”、“日期/时间”(针对预订)和“同行人数”均直接连接至可执行意图节点(即,“餐厅预订”节点)。
此外,属性节点“菜系”、“价格区间”、“电话号码”和“位置”是属性节点“餐厅”的子节点,并且均通过中间属性节点“餐厅”连接至“餐厅预订”节点(即,可执行意图节点)。又如,如图7C所示,知识本体760还包括“设定提醒”节点(即,另一个可执行意图节点)。属性节点“日期/时间”(针对设定提醒)和“主题”(针对提醒)均连接至“设定提醒”节点。由于属性“日期/时间”与进行餐厅预订的任务和设定提醒的任务二者相关,因此属性节点“日期/时间”连接至知识本体760中的“餐厅预订”节点和“设定提醒”节点二者。
可执行意图节点连同其连接的概念节点一起,被描述为“域”。在本讨论中,每个域与相应的可执行意图相关联,并涉及与特定可执行意图相关联的一组节点(以及这些节点之间的关系)。例如,图7C中示出的知识本体760包括在知识本体760内的餐厅预订域762的示例以及提醒域764的示例。餐厅预订域包括可执行意图节点“餐厅预订”、属性节点“餐厅”、“日期/时间”和“同行人数”以及子属性节点“菜系”、“价格区间”、“电话号码”和“位置”。提醒域764包括可执行意图节点“设定提醒”和属性节点“主题”和“日期/时间”。在一些示例中,知识本体760由多个域组成。每个域与一个或多个其他域共享一个或多个属性节点。例如,除了餐厅预订域762和提醒域764之外,“日期/时间”属性节点还与许多不同域(例如,行程安排域、旅行预订域、电影票域等)相关联。
尽管图7C示出知识本体760内的两个示例性域,但其他域包括例如“查找电影”、“发起电话呼叫”、“查找方向”、“安排会议”、“发送消息”以及“提供问题的回答”、“阅读列表”、“提供导航指令”、“提供针对任务的指令”等。“发送消息”域与“发送消息”可执行意图节点相关联,并且进一步包括属性节点诸如“一个或多个接收人”、“消息类型”和“消息正文”。属性节点“接收人”进一步例如由子属性节点诸如“接收人姓名”和“消息地址”来限定。
在一些示例中,知识本体760包括数字助理能够理解并对其起作用的所有域(以及因而可执行意图)。在一些示例中,知识本体760诸如通过添加或移除整个域或节点,或者通过修改知识本体760内的节点之间的关系进行修改。
在一些示例中,将与多个相关可执行意图相关联的节点群集在知识本体760中的“超级域”下。例如,“旅行”超级域包括与旅行相关的属性节点和可执行意图节点的群集。与旅行相关的可执行意图节点包括“机票预订”、“酒店预订”、“汽车租赁”、“获取路线”、“寻找兴趣点”,等等。同一超级域(例如,“旅行”超级域)下的可执行意图节点具有多个共用的属性节点。例如,针对“机票预订”、“酒店预订”、“汽车租赁”、“路线规划”和“寻找感兴趣的点”的可执行意图节点共享属性节点“起始位置”、“目的地”、“出发日期/时间”、“到达日期/时间”和“同行人数”中的一者或多者。
在一些示例中,知识本体760中的每个节点与跟由节点代表的属性或可执行意图有关的一组字词和/或短语相关联。与每个节点相关联的相应组的字词和/或短语是所谓的与节点相关联的“词汇”。将与每个节点相关联的相应组的字词和/或短语存储在与由节点所代表的属性或可执行意图相关联的词汇索引744中。例如,返回图7B,与“餐厅”属性的节点相关联的词汇包括字词诸如“美食”、“酒水”、“菜系”、“饥饿”、“吃”、“披萨”、“快餐”、“膳食”等。又如,与“发起电话呼叫”可执行意图的节点相关联的词汇包括字词和短语诸如“呼叫”、“打电话”、“拨打”、“与……通电话”、“呼叫该号码”、“打电话给”等。词汇索引744任选地包括不同语言的字词和短语。
自然语言处理模块732接收来自STT处理模块730的候选文本表示(例如,一个或多个文本字符串或一个或多个符号序列),并针对每个候选表示,确定候选文本表示中的字词涉及哪些节点。在一些示例中,如果发现候选文本表示中的字词或短语(经由词汇索引744)与知识本体760中的一个或多个节点相关联,则所述字词或短语“触发”或“激活”这些节点。基于已激活节点的数量和/或相对重要性,自然语言处理模块732选择可执行意图中的一个可执行意图作为用户意图使数字助理执行的任务。在一些示例中,选择具有最多“已触发”节点的域。在一些示例中,选择具有最高置信度(例如,基于其各个已触发节点的相对重要性)的域。在一些示例中,基于已触发节点的数量和重要性的组合来选择域。在一些示例中,在选择节点的过程中还考虑附加因素,诸如数字助理先前是否已正确解译来自用户的类似请求。
用户数据748包括特定于用户的信息,诸如特定于用户的词汇、用户偏好、用户地址、用户的默认语言和第二语言、用户的联系人列表,以及每位用户的其他短期或长期信息。在一些示例中,自然语言处理模块732使用特定于用户的信息来补充用户输入中所包含的信息以进一步限定用户意图。例如,针对用户请求“邀请我的朋友参加我的生日派对”,自然语言处理模块732能够访问用户数据748以确定“朋友”是哪些人以及“生日派对”将于何时何地举行,而不需要用户在其请求中明确地提供此类信息。
应认识到,在一些示例中,利用一个或多个机器学习机构(例如,神经网络)来实现自然语言处理模块732。具体地,一个或多个机器学习机构被配置为接收候选文本表示和与候选文本表示相关联的上下文信息。基于候选文本表示和相关联的上下文信息,一个或多个机器学习机构被配置为基于一组候选可执行意图确定意图置信度得分。自然语言处理模块732可基于所确定的意图置信度得分从一组候选可执行意图中选择一个或多个候选可执行意图。在一些示例中,还利用知识本体(例如,知识本体760)从一组候选可执行意图中选择一个或多个候选可执行意图。
基于符号串搜索知识本体的其他细节在提交于2008年12月22日的名为“Methodand Apparatus for Searching Using An Active Ontology”的美国实用新型专利申请序列号12/341,743中有所描述,其全部公开内容以引用方式并入本文。
在一些示例中,一旦自然语言处理模块732基于用户请求识别出可执行意图(或域),自然语言处理模块732便生成结构化查询以表示所识别的可执行意图。在一些示例中,结构化查询包括针对可执行意图的域内的一个或多个节点的参数,并且所述参数中的至少一些参数填充有用户请求中指定的特定信息和要求。例如,用户说“帮我在寿司店预订晚上7点的座位。”在这种情况下,自然语言处理模块732能够基于用户输入将可执行意图正确地识别为“餐厅预订”。根据知识本体,“餐厅预订”域的结构化查询包括参数诸如{菜系}、{时间}、{日期}、{同行人数}等。在一些示例中,基于语音输入和使用STT处理模块730从语音输入得出的文本,自然语言处理模块732针对餐厅预订域生成部分结构化查询,其中部分结构化查询包括参数{菜系=“寿司类”}以及{时间=“晚上7点”}。然而,在该示例中,用户话语包含不足以完成与域相关联的结构化查询的信息。因此,基于当前可用信息,在结构化查询中未指定其他必要参数,诸如{同行人数}和{日期}。在一些示例中,自然语言处理模块732用所接收的上下文信息来填充结构化查询的一些参数。例如,在一些示例中,如果请求“附近的”寿司店,自然语言处理模块732用来自用户设备的GPS坐标来填充结构化查询中的{位置}参数。
在一些示例中,自然语言处理模块732识别针对从STT处理模块730所接收的每个候选文本表示的多个候选可执行意图。另外,在一些示例中,针对每个所识别的候选可执行意图生成相应的结构化查询(部分地或全部地)。自然语言处理模块732确定针对每个候选可执行意图的意图置信度得分,并基于意图置信度得分对候选可执行意图进行排序。在一些示例中,自然语言处理模块732将所生成的一个或多个结构化查询(包括任何已完成的参数)传送至任务流处理模块736(“任务流处理器”)。在一些示例中,针对m个最佳(例如,m个排名最高的)候选可执行意图的一个或多个结构化查询被提供给任务流处理模块736,其中m为预先确定的大于零的整数。在一些示例中,将针对m个最佳候选可执行意图的一个或多个结构化查询连同对应的候选文本表示提供给任务流处理模块736。
基于根据语音输入的多个候选文本表示所确定的多个候选可执行意图推断用户意图的其他细节在2014年6月6日提交的名称为“System and Method for Inferring UserIntent From Speech Inputs”(用于从语音输入推断用户意图的系统和方法)的美国实用新型专利申请No.14/298,725中有所描述,其全部公开内容以引用方式并入本文。
任务流处理模块736被配置为接收来自自然语言处理模块732的一个或多个结构化查询,(必要时)完成结构化查询,以及执行“完成”用户最终请求所需的动作。在一些示例中,完成这些任务所必需的各种过程在任务流模型754中提供。在一些示例中,任务流模型754包括用于获取来自用户的附加信息的过程,以及用于执行与可执行意图相关联的动作的任务流。
如上所述,为了完成结构化查询,任务流处理模块736需要发起与用户的附加对话,以便获取附加信息和/或弄清可能有歧义的话语。当有必要进行此类交互时,任务流处理模块736调用对话流处理模块734来参与同用户的对话。在一些示例中,对话流处理器模块734确定如何(和/或何时)向用户请求附加信息,并且接收和处理用户响应。通过I/O处理模块728将问题提供给用户并从用户接收回答。在一些示例中,对话处理模块734经由音频和/或视频输出向用户呈现对话输出,并接收经由口头或物理(例如,点击)响应的来自用户的输入。继续上述示例,在任务流处理模块736调用对话流处理模块734来确定针对与域“餐厅预订”相关联的结构化查询的“同行人数”和“日期”信息时,对话流处理模块734生成诸如“一行几位?”和“预订哪天?”之类的问题传递给用户。一旦收到来自用户的回答,对话流处理模块734就用缺失信息填充结构化查询,或将信息传递给任务流处理模块736以根据结构化查询完成缺失信息。
一旦任务流处理模块736已针对可执行意图完成结构化查询,任务流处理模块736便开始执行与可执行意图相关联的最终任务。因此,任务流处理模块736根据结构化查询中包含的特定参数来执行任务流模型中的步骤和指令。例如,针对可执行意图“餐厅预订”的任务流模型包括用于联系餐厅并实际上请求在特定时间针对特定同行人数的预订的步骤和指令。例如,使用结构化查询诸如:餐厅预订、{餐厅=ABC咖啡馆、日期=3/12/2012、时间=7pm、同行人数=5},任务流处理模块736可执行以下步骤:(1)登录ABC咖啡馆的服务器或诸如的餐厅预订系统,(2)以网站上的形式输入日期、时间和同行人数信息,(3)提交表单,以及(4)在用户的日历中形成针对预订的日历条目。
在一些示例中,任务流处理模块736在服务处理模块738(“服务处理模块”)的辅助下完成用户输入中所请求的任务或者提供用户输入中所请求的信息性回答。例如,服务处理模块738代表任务流处理模块736发起电话呼叫、设定日历条目、调用地图搜索、调用用户设备上安装的其他用户应用程序或与所述其他应用程序进行交互,以及调用第三方服务(例如,餐厅预订门户网站、社交网站、银行门户网站等)或与第三方服务进行交互。在一些示例中,通过服务模型756中的相应服务模型指定每项服务所需的协议和应用程序编程接口(API)。服务处理模块738针对服务访问适当的服务模型,并依据服务模型根据该服务所需的协议和API生成针对该服务的请求。
例如,如果餐厅已启用在线预订服务,则餐厅提交服务模型,该服务模型指定进行预订的必要参数以及将必要参数的值传送至在线预订服务的API。在被任务流处理模块736请求时,服务处理模块738可使用存储在服务模型中的web地址来建立与在线预订服务的网络连接,并将预订的必要参数(例如,时间、日期、同行人数)以根据在线预订服务的API的格式发送至在线预订接口。
在一些示例中,自然语言处理模块732、对话处理模块734以及任务流处理模块736被共同且反复地使用,以推断并限定用户的意图、获取信息以进一步明确并细化用户意图、并最终生成响应(即,输出至用户,或完成任务)以满足用户的意图。所生成的响应是至少部分地满足用户意图的对语音输入的对话响应。另外,在一些示例中,所生成的响应被输出为语音输出。在这些示例中,所生成的响应被发送到语音合成模块740(例如,语音合成器),在语音合成模块中,可处理所生成的响应以将对话响应以语音形式合成。在其他示例中,所生成的响应是与满足语音输入中的用户请求相关的数据内容。
在任务流处理模块736接收到来自自然语言处理模块732的多个结构化查询的示例中,任务流处理模块736首先处理所接收结构化查询的第一结构化查询以试图完成第一结构化查询和/或执行由第一结构化查询所表示的一个或多个任务或动作。在一些示例中,第一结构化查询对应于排名最高的可执行意图。在其他示例中,第一结构化查询选自基于对应的语音识别置信度得分和对应的意图置信度得分的结合所接收的结构化查询。在一些示例中,如果任务流处理模块736在第一结构化查询的处理期间(例如,由于无法确定必要的参数)遇到错误,任务流处理模块736可继续选择和处理所接收结构化查询的与排名较低的可执行意图对应的第二结构化查询。例如基于对应候选文本表示的语音识别置信度得分、对应候选可执行意图的意图置信度得分、第一结构化查询中的缺失必要参数或它们的任何组合来选择第二结构化查询。
语音合成模块740被配置为合成用于呈现给用户的语音输出。语音合成模块740基于数字助理提供的文本来合成语音输出。例如,所生成的对话响应是文本串的形式。语音合成模块740将文本串转换成可听语音输出。语音合成模块740使用任何适当语音合成技术,以便从文本生成语音输出,包括但不限于:拼接合成、单元选择合成、双音素合成、域特定合成、共振峰合成、发音合成、基于隐马尔可夫模型(HMM)的合成,以及正弦波合成。在一些示例中,语音合成模块740被配置为基于对应于这些字词的音素串来合成各个字词。例如,音素串与所生成的对话响应中的字词相关联。音素串存储在与字词相关联的元数据中。语音合成模型740被配置为直接处理元数据中的音素串,以合成语音形式的字词。
在一些示例中,替代使用语音合成模块740(或除此之外),在远程设备(例如,服务器系统108)上执行语音合成,并且将合成的语音发送至用户设备以输出给用户。例如,这可发生在一些具体实施中,其中在服务器系统处生成数字助理的输出。而且由于服务器系统通常比用户设备具有更强的处理能力或更多的资源,其有可能获得比客户端侧合成将实现的质量更高的语音输出。
有关数字助理的另外细节可见于提交于2011年1月10日的名称为“IntelligentAutomated Assistant”的美国实用新型专利申请号12/987,982和提交于2011年9月30日的名称为“Generating and Processing Task Items That Represent Tasks to Perform”的美国实用新型专利申请号13/251,088中,其全部公开内容以引用方式并入本文。
4.基于用户输入来提供数字助理服务的数字助理的示例性功能。
图2、图4、图6、图8A至图8B、图9A至图9C、图10A至图10C、图11A至图11D、图12A至图12C、图13A至图13B和图14示出了通过在电子设备上操作的数字助理来提供数字助理服务的功能。在一些示例中,数字助理(例如,数字助理系统700)由用户设备根据各种示例来实现。在一些示例中,用户设备、服务器(例如,服务器108、设备820)或其组合可以实现数字助理系统(例如,数字助理系统700)。用户设备可使用例如设备200、400、600、810A-C、820、830、840、1182和/或1186来实现。在一些示例中,用户设备是具有音频输出能力和网络连接性的设备、智能电话、膝上型计算机、台式计算机或平板电脑。
图8A至图8B示出了根据各种示例的基于用户输入来在一个或多个电子设备810A-C处提供数字助理服务的功能。在一些示例中,电子设备810A(以及类似地其他电子设备810B-C)可包括一个或多个音频输入和输出设备(例如,麦克风和一个或多个扬声器)和一个或多个网络通信接口。设备810A和设备810B-C统称为电子设备810或设备810。设备810A以及类似地设备810B-C可包括多个扬声器以提供环绕声。在一些示例中,电子设备810还可包括用于提供设备操作指示的一个或多个指示器(例如,灯)。例如,设备810A的一个或多个指示器可发光以指示设备810A被通电、连接到网络、输出音频等。设备810A-C可以是从其他设备延伸数字助理服务的服务延伸设备。
如图8A所示,在一些示例中,在设备810A上操作的数字助理可被配置为经由直接通信连接(诸如蓝牙、近场通信(NFC)、BTLE(蓝牙低功耗)等)或经由有线或无线网络(诸如局域Wi-Fi网络)通信地耦接到其他电子设备(例如,设备810B-C、820、830和/或840)。例如,在设备810A上操作的数字助理可经由蓝牙发现来检测设备810B-C,并且经由蓝牙连接通信地耦接到设备810B-C。又如,在设备810A上操作的数字助理可检测Wi-Fi网络并且经由Wi-Fi网络通信地耦接到设备830和设备840。又如,当设备830(例如,客户端设备诸如用户的智能电话)与设备810A处于非常接近或在物理上接触时,在设备810A上操作的数字助理可检测近场通信。例如,为了配对设备810A和设备830,用户804可轻击设备810A和设备830,从而在这两个设备之间建立近场通信。又如,在设备810A上操作的数字助理可检测到设备830(例如,客户端设备诸如用户的智能电话)在预先确定的距离内(例如,在蓝牙通信的范围内)并且建立与设备830的连接。例如,当用户804携带设备830接近或进入区域800时,在设备810A上操作的数字助理可检测到设备830在通信范围内,并且因此与设备830连接。又如,在设备810A上操作的数字助理可基于这两个设备之间的一个或多个先前建立的连接来建立与设备830的连接。例如,在设备810A上操作的数字助理可存储指示其过去连接的设备以及任选地连接参数的日志文件。因此,基于日志文件,在设备810A上操作的数字助理可确定例如之前其已经连接到设备830。基于此类确定,在设备810A上操作的数字助理可建立与设备830的连接。
在一些示例中,电子设备820可以是服务器;并且设备830和设备840可以是设置在电子设备810附近的客户端设备。例如,设备820可以是远程设置的云服务器;并且设备830和设备840可以分别是用户的智能电话和电视机顶盒。在一些示例中,在设备810A上操作的数字助理在其可接收到包括用户请求的用户输入和/或向设备820、830和840中的一者或多者提供对用户请求的表示之前建立与设备820、830和840中的至少一者的一个或多个连接。下文更详细地描述接收用户输入和向设备820、830和/或840提供对用户请求的表示。在接收到用户输入和向其他设备提供对用户请求的表示之前建立连接可提高操作效率和提供对用户请求的响应的速度。例如,通过预先建立连接,在设备810A上操作的数字助理可在接收到用户输入之后不浪费时间来建立连接。
在一些示例中,在建立设备810A和设备830(例如,客户端设备诸如用户的智能电话)之间的连接之后,在设备810A和/或设备830上操作的数字助理可向设备820(例如,服务器)通知已建立的连接。如下文更详细描述的,在设备810A上操作的数字助理可向设备820和设备830中的一者或两者提供对用户请求的表示以获得响应。设备820可以是远程设备诸如服务器,并且设备830可以是设置在设备810A附近的设备。因此,向设备820(例如,远程服务器)通知设备810A和设备830之间的连接可促进有效的操作。例如,如下所述,在一些实施方案中,在设备810A上操作的数字助理可向设备820和设备830两者提供对用户请求的表示。设备820和/或设备830可确定设备830(例如,设置在设备810A附近的客户端设备)能够提供响应。因此,因为设备820被通知设备830和设备810A相连接,所以设备820可不向设备810A提供响应。相反,设备820可与设备830协调以提供响应。在一些示例中,因为设备830(例如,用户的智能电话)设置在设备810A附近,所以可以更快和更有效的方式来提供响应。
在一些示例中,在设备810A上操作的数字助理可建立与具有相同类型的一个或多个设备的连接。例如,如图8A所示,多个设备810A-C可以是服务延伸设备,并且可设置在区域800中。因此,在设备810A上操作的数字助理可建立与设备810B和设备810C中的每一者的连接。如下文更详细描述的,建立设备810A、810B和810C之间的连接使得能够通过设置在区域800中的任何设备810A-C来向用户804提供响应。这提供了灵活性并提高了用户交互效率。例如,用户804可向设备810A提供语音输入(例如,“播放音乐”),并且通过设备810C来接收响应(例如,音乐在设备810C处播放)。
在一些实施方案中,设备810A-C可以是用于将数字助理服务从一个设备延伸到另一设备的服务延伸设备。例如,如图8A所示,设备810A-C可设置在电子设备830(例如,智能电话设备)和/或电子设备840(例如,电视机顶盒)附近,以延伸由电子设备830和/或设备840提供的数字助理服务。在一些示例中,将设备810A-C设置在设备830和/或设备840附近可包括将设备810A-C设置在围绕设备830和/或设备840的预先确定的边界或距其预先确定的距离内。例如,设备810A-C可如设备830或设备840一样设置在同一房屋或建筑物中。如图8A所示,用户804可在物理上在区域800内或在其附近,该区域可包括一个或多个房间871、873和875。用户804可在物理上位于房间871中,同时电子设备830(例如,用户的智能电话)可设置在另一房间873中。在一些示例中,用户804可能想要访问由设备830提供的数字助理服务,尽管设备830不能够直接与用户804进行通信(例如,设备830可能无法经由其麦克风直接接收用户804的语音输入)。在一些示例中,设备810A-C可用作服务延伸设备,用于延伸由设备830提供的数字助理服务,如下文更详细描述的。
在一些实施方案中,一个或多个设备810A-C可能或可能不与单个设备或用户相关联。设备810A-C(例如,服务延伸设备)可被多个用户共享,并且可为多个设备延伸数字助理服务。在一些示例中,一个或多个设备810A-C可将数字助理服务延伸到多个用户。如图8B所示,用户804和用户806可共享一个或多个设备810A-C。例如,用户804可具有相关联的设备830(例如,用户804的智能电话或智能手表);并且用户806可具有相关联的设备832(例如,用户806的智能电话或平板电脑)。在一些示例中,在设备810A上操作的数字助理可建立其自身和设备830之间的连接;以及其自身和设备832之间的连接。这样,在设备810A上操作的数字助理可为设备830和设备832中的一者或两者延伸数字助理服务。为多个设备延伸数字助理服务的能力使得设备810A-C能够被例如多个用户(例如,家庭成员)共享。
返回参考图8A,在一些实施方案中,在电子设备810A上操作的数字助理可从用户804接收表示用户请求的语音输入。例如,用户804可提供一个或多个语音输入,诸如“我的日历上明天有什么事?”、“我的第一次会议是什么时候?”、“天气怎么样?”或“从我的电影应用程序播放星球大战”。在一些示例中,用户请求可以是对特定于用户804的信息的请求。例如,语音输入诸如“我的日历上明天有什么事?”或“我明天的第一次会议是什么时候?”表示对特定于用户804的信息的请求。在一些示例中,用户请求可以是对非特定于用户的信息的请求。例如,语音输入诸如“明天的天气怎么样?”或“AAPL今天的股票价格是多少?”表示对不特定于任何特定用户的信息的请求。
在一些实施方案中,在接收到用户的语音输入之前,在设备810A上操作的数字助理可接收包括预先确定的内容的附加语音输入。响应于接收到附加语音输入,在设备810A上操作的数字助理可激活设备810A。例如,设备810A可被置于待机模式或低功率模式。将设备810A置于待机模式或低功率模式可减少功率消耗,并且在一些示例中,增强对用户隐私的保护。例如,在待机模式或低功率模式期间,仅为在设备810A上操作的数字助理启用有限的语音检测和/或语音处理功能。可禁用设备810A的其他功能(例如,相机、指示灯、扬声器等)。在一些示例中,在待机模式或低功率模式期间,在设备810A上操作的数字助理仍然可检测语音输入并确定该语音输入是否包括预先确定的内容诸如“醒来吧,扬声器”或“嘿,扬声器”。基于该确定,在设备810A上操作的数字助理可激活设备810A。在一些示例中,在设备810A被激活之后,设备810A退出待机模式并切换到正常操作模式。在正常操作模式中,在设备810A上操作的数字助理可执行另外功能。
如图8A所示,在区域800(例如,房屋)中,可设置多个设备810A-C。在一些示例中,激活设备810A-C中的一者的语音输入可能或可能没有激活设置在附近的其他设备。例如,如上所述,用户804可向设备810A提供包括预先确定的内容(例如,“醒来吧,扬声器”)的语音输入。在一些示例中,设备810B可能设置在区域800的另一部分(例如,另一房间)中,并且因此可能不接收语音输入。因此,设备810B可能不被激活。在一些示例中,设备810B可设置在设备810A附近(例如,在同一房间中),并且还可接收包括预先确定的内容的语音输入。在一些示例中,在设备810A上操作的数字助理可与设备810B协调以确定哪个设备应该被激活。例如,在设备810A和设备810B上操作的数字助理两者都可检测并记录与语音输入相关联的音量或声压。基于对在设备810A处检测到的声压和在设备810B处检测到的声压的比较,可确定用户相对于这两个设备的位置。例如,可确定用户在物理上相比设备810B更接近设备810A。因此,设备810A可被激活,而设备810B可不被激活。应当理解,确定要激活哪个设备可以基于用户的语音输入(例如,用户804提供“唤醒客厅中的扬声器”)和/或任何上下文信息诸如用户的偏好、用户的相对位置、设备的能力和属性(例如,一个设备比另一设备更适合执行某些任务)等。
在一些实施方案中,在接收到用户的语音输入之后,在电子设备810A上操作的数字助理可输出关于用户请求的一个或多个语音查询。例如,基于用户的语音输入,用户意图可能不可确定或不清楚;或者在设备810A上操作的数字助理可能没有正确地接收到语音输入。这样,在设备810A上操作的数字助理可输出语音查询诸如“那是什么?”或“我不太明白”,从而试图澄清用户请求。响应于一个或多个语音查询,用户804因此可提供澄清他或她的请求的一个或多个附加语音输入(例如,重复或改述先前的语音输入)。并且设备810A可接收所述一个或多个附加语音输入。
在一些实施方案中,在接收到用户的语音输入之后,在设备810A上操作的数字助理可获得用户804的身份。如所描述的,电子设备810A可为与一个或多个用户(例如,如图8B所示的用户804和用户806)相关联的多个设备(例如,设备830和设备832)延伸数字助理服务。因此,为了提供来自与特定用户(例如,用户804或用户806)相关联的适当设备的数字助理服务的延伸,在电子设备810A上操作的数字助理可获得用户的身份。
图9A至图9C示出了根据各种示例的在电子设备810A处获得用户804的身份的功能。参考图8A和图9A至图9C,在一些示例中,电子设备810A可包括认证模块912。认证模块912可包括一个或多个传感器,诸如语音生物识别传感器、面部识别系统、指纹读取器、NFC传感器等。在一些示例中,如图9A所示,认证模块912可获得与用户804相关联的认证数据906。在一些示例中,认证数据906可包括用户的语音生物识别,和/或指纹,和/或用户的面部识别数据。例如,用户804的语音生物识别可包括用户的语音特征,诸如声音模式或声纹。用户804的面部识别数据可包括可唯一地识别用户的用户的面部特征,诸如眼睛、鼻子、颧骨、下颚等的相对位置、尺寸和/或形状。
在一些示例中,认证数据906可包括感测识别用户的另一电子设备。例如,在设备810A上操作的数字助理可检测到用户804的可穿戴设备(例如,智能手表)设置在设备810A附近,经由NFC(例如,蓝牙)与可穿戴设备进行通信,并且从可穿戴设备获得认证数据906(例如,已经在用户的手表上被认证)。又如,在设备810A上操作的数字助理可检测到设备810A在物理上与识别用户的用户的智能电话接触,经由NFC(例如,蓝牙)与用户的智能电话进行通信,并且从用户的智能电话获得认证数据906。在一些示例中,认证数据906可包括用户的其他凭据,诸如用户的指纹、密码等。应当理解,在电子设备810A上操作的数字助理可以任何方式获得与用户804相关联的任何认证数据。
参考图8A和图9A至图9C,在设备810A上操作的数字助理可基于认证数据906来获得对用户804的身份的确定。如图9B所示,在一些实施方案中,在电子设备810A上操作的数字助理可向电子设备830提供获得的认证数据906以进行认证。例如,在设备810A上操作的数字助理可向电子设备830提供用户的语音生物识别数据、用户的面部识别数据、用户的指纹数据、设备感测数据和/或其他凭据。如所描述的,电子设备830可以是与用户804(例如,用户804的智能电话)相关联的设备,并且因此可存储用户身份信息。基于所接收的认证数据906,设备830可确定认证数据906是否包括与所存储的用户身份信息(例如,密码或指纹)匹配的凭据。如果认证数据906包括与用户身份信息匹配的凭据,则设备830可将对用户804的用户身份910的确定发送到设备810A。
参考图9C,如所描述的,在设备810A上操作的数字助理可向设备830提供认证数据906。在一些实施方案中,设备830(例如,智能电话)可能不能够获得用户804的身份,并且因此可将认证数据906转发到电子设备820。例如,设备830可能未存储可识别用户的语音生物识别信息,并且因此可能不能够对用户804的身份进行确定。因此,设备830可将认证数据906转发到设备820。在一些示例中,设备820可远离设备810A和设备830设置。例如,设备820可以是经由网络850通信地耦接到设备810A和设备830的服务器。设备820可存储用户身份信息,并且因此可确定认证数据906是否包括与所存储的身份信息匹配的凭据。如果设备820确定认证数据906包括与用户804的用户身份信息匹配的凭据,则设备820可将对用户804的用户身份926的确定发送到设备810A。在一些示例中,设备820可将对用户804的用户身份926的确定直接发送到设备810A。在一些示例中,设备820可将对用户804的用户身份926的确定发送到设备830,然后该设备转发到设备810A。
在一些示例中,获得用户804的身份可基于包括预先确定的内容的语音输入。如上所述,基于包括预先确定的内容(例如,“醒来吧,扬声器”或“嘿,扬声器”)的语音输入,在设备810A上操作的数字助理可激活设备810A。包括预先确定的内容的语音输入还可用于确定用户804的语音生物识别,该语音生物识别可包括用户的语音特征,诸如声音模式或声纹。因此,包括预先确定的内容的语音输入(例如,用于激活设备810A的语音输入)可用于以与类似于上述的方式识别用户804。
图10A至图10C示出了根据各种示例的基于对信息的用户请求来提供数字助理服务的功能。参考图8A和图10A至图10C,根据获得的用户身份,在电子设备810A上操作的数字助理可向设备820或设备830中的至少一者提供对用户请求1008的表示。如上所述,在一些示例中,设备820可以是远离设备810A-C和设备830设置的服务器。设备830可以是与用户804相关联的客户端设备(例如,用户的智能电话),并且可设置在设备810A-C的附近(例如,在同一房屋或建筑物中)。
在一些实施方案中,在向远程设备提供对用户请求的表示之前,在设备810A上操作的数字助理可向设置在设备810A附近的设备提供对用户请求1008的表示。如图10A所示,用户804可提供语音输入1006,诸如“我明天的第一次会议是什么时候?”因此,语音输入1006包括对关于例如用户804在第二天的第一次会议时间的信息的用户请求。在一些实施方案中,在设备810A上操作的数字助理可确定设备830是否通信地耦接到设备810A。例如,在设备810A上操作的数字助理可检测设备830是否在通信范围内以及是否可经由NFC(诸如蓝牙或Wi-Fi连接)来建立连接。根据确定设备830通信地耦接到设备810A,在设备810A上操作的数字助理可向设备830提供对用户请求1008的表示。在一些实施方案中,设备830是设置在设备810A附近的设备(例如,用户的智能电话);并且在设备810A上操作的数字助理可能不进一步向远程设备(诸如图8A所示的设备820)提供对用户请求的表示。因此,用户请求不被远程传输,并且可停留在设置在设备810A附近的设备(例如,用户的个人设备)内。通过仅向设置在设备810A附近的设备830提供对用户请求1008的表示,可以快速且有效的方式获得来自设备830的响应,而不必消耗时间来与远程设备进行通信。因此,可提高对在设备810A处的用户请求作出响应的速度。此外,用户请求(例如,包括在语音输入1006中的用户请求)可包括对敏感或机密的特定于用户的信息(例如,用户的日历信息)的请求。因此,出于隐私担忧,可能期望不将对用户请求1008的表示发送到远程设备诸如云服务器。
如图10A所示,在一些示例中,设备830从设备810A接收对用户请求1008的表示,并且确定其是否能够提供对用户请求的响应。例如,如所描述的,用户请求可包括对用户804在第二天的第一次会议时间的信息的请求。设备830可确定用户804的日历信息存储在设备830中,并且因此确定其能够提供对用户请求的响应。因此,设备830可将对用户请求的响应1010发送到设备810A。响应1010可包括例如用户804在第二天的第一次会议时间。在设备810A上操作的数字助理从设备830接收对用户请求的响应1010,并且可向用户804提供对响应1010的表示。如图10A所示,在设备810A上操作的数字助理可提供语音输出1012,诸如“您的第一次会议在明天上午9点”。
如所描述的,在设备810A上操作的数字助理可确定设备830是否通信地耦接到设备810A。例如,在设备810A上操作的数字助理可检测设备830是否在通信范围内以及是否可经由蓝牙或Wi-Fi连接来建立这两个设备之间的连接。参考图10B,在一些实施方案中,在设备810A上操作的数字助理可确定设备830没有通信地耦接到设备810A。例如,在设备810A上操作的数字助理可能不能够检测到设备830,因为设备830超出了通信范围,或因为不可在这两个设备之间建立连接。根据确定设备830没有通信地耦接到设备810A,在设备810A上操作的数字助理可向设备820提供对用户请求1008的表示。如上所述,设备820可以是远程设备诸如服务器。在一些示例中,在设备810A上操作的数字助理可经由网络850向设备820提供对用户请求1008的表示。
在一些实施方案中,如图10B所示,设备820从设备810A接收对用户请求1008的表示,并且确定其是否能够提供对用户请求的响应。例如,如所描述的,用户请求可包括对用户804在第二天的第一次会议时间的信息的请求。设备820可确定其存储用户804的日历信息(例如,存储在用户804的云帐户中)或具有对该日历信息的访问权限,并且因此确定其能够提供对用户请求的响应。因此,设备820可将对用户请求的响应1014发送到设备810A。对用户请求的响应1014可包括例如用户在第二天的第一次会议时间。设备810A从设备820接收对用户请求的响应1014,并且可向用户804提供对响应1014的表示。如图10B所示,在设备810A上操作的数字助理可提供语音输出1012,诸如“您的第一次会议在明天上午9点”。在一些示例中,在向用户804提供响应之后,设备810A可继续监视后续语音输入。
参考图10C,在一些实施方案中,用户804可提供语音输入1020,诸如“AAPL今天的股票价格是多少?”。这种类型的语音输入表示对非特定于用户的信息的请求。非特定于用户的信息不特定于特定用户,并且可以是一般信息诸如天气信息、股票价格信息、体育比赛信息等。在一些实施方案中,如图10C所示,在设备810A上操作的数字助理可向设备820且不向设备830提供对非特定于用户的信息的用户请求1022的表示。如所描述的,设备820可以是远离设备810A设置的服务器,并且设备830可以是设置在设备810A附近的用户的智能电话。在一些实施方案中,非特定于用户的信息(例如,天气、股票价格、比赛分数等)可能在设备830(例如,用户的智能电话)处不可获得和/或未被更新。因此,设备810A可确定从远程设备(例如,服务器)而不是设置在设备810A附近的设备(例如,用户的个人设备)获得非特定于用户的信息更合适且有效。这样,在设备810A上操作的数字助理可经由网络850向设备820(例如,服务器)提供对非特定于用户的信息的用户请求1022的表示。
如图10C所示,设备820从设备810A接收对用户请求1022的表示,并且确定其能够提供对用户请求的响应。例如,如所描述的,用户请求可包括对AAPL的股票价格信息的请求。设备820可确定其能够从相关数据源(例如,金融网站)获得该信息并且因此能够提供对用户请求的响应。因此,设备820可将对用户请求的响应1024发送到设备810A。对用户请求的响应1024可包括例如AAPL的当前股票价格。在设备810A上操作的数字助理从设备820接收响应1024,并且可向用户804提供对响应1024的表示。如图10C所示,在设备810A上操作的数字助理可提供语音输出1026,诸如“AAPL今天以200美元收盘”。
图11A至图11D示出了根据各种示例的基于用于执行任务的用户请求来提供数字助理服务的功能。参考图11A和图11B,在一些实施方案中,用户804可提供表示用于执行任务的用户请求的语音输入1106。例如,语音输入1106可包括“播放来自壮志凌云的MightyWings”。语音输入1106因此表示用于执行播放特定的一首音乐的任务的请求。在一些示例中,在设备810A上操作的数字助理可能不能够(例如,由于缺乏足够的信息)确定是否可由设备830(例如,设置在设备810A附近的设备,诸如用户804的个人智能电话)或设备820(例如,远程服务器)来提供对用户请求的响应。在以上示例中,设备810A可能不具有足够的信息来确定用户804的智能电话或服务器是否存储歌曲“Mighty Wings”。因此,在设备810A上操作的数字助理可向设备830和设备820两者提供对用户请求1108的表示。
如图11A所示,设备820和设备830两者都接收对用户请求1108(例如,用于执行任务的用户请求)的表示。设备820和设备830中的一者或两者可确定相应设备是否能够提供对用户请求1108的响应。例如,设备830可确定其是否存储歌曲Might Wings,并且如果是,则确定其能够提供响应。设备820可进行类似的确定。在一些示例中,可在设备820和设备830上单独且独立地进行该确定。例如,设备820和设备830两者都可确定它们是否存储歌曲“Mighty Wings”并且将该确定的结果传达给另一设备。在一些示例中,设备820或设备830中的一者可首先进行确定,然后向另一设备发送指示。例如,设备830可确定歌曲“MightyWings”是否存储在设备830中,并且向设备820发送对该确定的指示。如果设备830确定其存储歌曲“Mighty Wings”,则其可将对应的指示发送到设备820,使得设备820不进行任何进一步的确定。如果设备830确定其不具有歌曲“Mighty Wings”,则其可将对应的指示发送到设备820,使得设备820然后可确定其是否存储所请求的歌曲或具有对所请求的歌曲的访问权限。类似地,设备820可首先进行确定,然后将指示发送到设备830。在一些实施方案中,在设备810A上操作的数字助理可使得设备820和设备830中的一者或两者确定相应设备是否能够提供对用户请求的响应。例如,发送到设备820和设备830的对用户请求1108的表示可包括对设备820和设备830中的一者或两者的明确或含蓄请求,以确定设备中的一者或两者是否能够提供所请求的响应。
如图11A所示,在一些示例中,设备820(例如,服务器)可确定其能够提供对用户请求的响应;并且设备830(例如,用户的智能电话)可确定其不能够提供对用户请求的响应。例如,设备820可确定其存储所请求的歌曲“Mighty Wings”或具有对该歌曲的访问权限,并且设备830可确定其未存储该歌曲。因此,设备820可向设备810A提供对用户请求的响应1112。例如,设备820可将歌曲“Mighty Wings”流传输到设备810A。设备810A从设备820接收响应1112,并向用户804提供对响应1112的表示。例如,在设备810A上操作的数字助理接收歌曲“Mighty Wings”的流并提供该歌曲的音频输出1114。
参考图11B,在一些示例中,设备830(例如,用户的智能电话)可确定其能够提供对用户请求的响应;并且设备820(例如,服务器)可确定其不能够提供对用户请求的响应。例如,设备830可确定其存储歌曲“Mighty Wings”,并且设备820可确定其未存储该歌曲或者在不需要进一步的用户交互(例如,请求用户购买该歌曲)的情况下不具有对所请求的歌曲的访问权限。因此,设备830可向设备810A提供对用户请求的响应1112。例如,设备830可将歌曲“Mighty Wings”流传输到设备810A。在设备810A上操作的数字助理从设备830接收响应1122,并且向用户804提供对响应1122的表示。例如,设备810A接收歌曲“Mighty Wings”的流并提供该歌曲的音频输出1124。
参考图11A和图11B,在一些示例中,设备830(例如,用户的智能电话)和设备820(例如,服务器)两者都可确定相应设备能够提供对用户请求的响应。例如,设备830可确定其存储歌曲“Mighty Wings”并且设备820可确定其也存储所请求的歌曲(例如,在用户的云帐户中)或者在不需要进一步的用户交互的情况下(例如,在不需要用户购买该歌曲的情况下)具有对该歌曲的访问权限。因此,设备820或设备830能够向设备810A提供对用户请求的响应。在一些示例中,从多个设备中选择用于提供响应的设备可基于预先确定的条件。例如,预先确定的条件可包括预先配置的策略(例如,如果多于一个设备能够提供响应,则设备830是用于提供响应的默认设备)、连接带宽的条件(例如,具有更高连接带宽的设备是用于提供响应的设备)、用户偏好的条件(例如,为了节省蜂窝数据使用,用户偏好使用经由Wi-Fi连接到设备810A的设备来提供响应)等。基于预先确定的条件,设备820和设备830中的一者可将歌曲“Mighty Wings”流传输到设备810A。在设备810A上操作的数字助理接收对用户请求的响应,并且向用户提供对响应的表示。例如,设备810A接收歌曲“Mighty Wings”的流并提供该歌曲的音频输出。
参考图11C,在一些实施方案中,用户804可提供表示用于执行任务的用户请求的语音输入1126。语音输入1126可包括例如“播放电影星球大战”。在设备810A上操作的数字助理接收语音输入1126。在一些示例中,基于语音输入1126,设备810A可向设置在设备810A附近的设备(例如,设备840)且不向远程设备(例如,设备820诸如服务器)提供对用户请求1128的表示。因为许多原因,在设备810A上操作的数字助理可能不向远程设备提供对用户请求1128的表示。例如,在设备810A上操作的数字助理可确定该信息可能在设置在设备810A附近的设备(例如,设备840诸如电视机顶盒)处可获得;不存在到远程设备的连接或连接不佳;到远程设备的带宽有限或较低;预先确定的配置需要向设备810A附近的设备(例如,经由Wi-Fi连接到设备810A的设备)提供对用户请求的表示;等。如上所述,设备840可以是设置在设备810A附近的电视机顶盒,并且设备820可以是远程设置的服务器。在一些示例中,在设备810A上操作的数字助理可被配置为始终向设置在设备810A附近的设备(例如,设备840)提供对用户请求的表示。在一些示例中,在设备810A上操作的数字助理可被配置为基于用户请求的类型和/或内容来向设置在设备810A附近的设备(例如,设备840)或远程设备(例如,设备820)提供对用户请求的表示。如上所述,在一些示例中,如果用户请求是对特定于用户的信息的请求,则在设备810A上操作的数字助理可向设置在设备810A附近的设备(例如,用户的智能电话)提供对用户请求的表示;并且如果用户请求是对非特定于用户的信息的请求,则设备810A可向远程设备(例如,服务器)提供对用户请求的表示。
如图11C所示,设备840接收对用户请求1128的表示,这可使得设备840确定其是否能够提供对用户请求的响应。例如,设备840可确定其存储电影星球大战并且因此能够向设备810A提供响应。又如,设备840可确定其存储包括用户的个人日历、联系人、照片、媒体项等的数据,并且因此能够使用这些存储的数据来提供对针对信息或任务执行的用户请求的响应。根据确定设备840能够提供对用户请求的响应,设备840可向设备810A提供响应1134。例如,设备840可将电影“星球大战”流传输到设备810A。在设备810A上操作的数字助理从设备810A接收响应1134,并且向用户提供对响应1134的表示。例如,在设备810A上操作的数字助理可使用其显示器和扬声器来提供音频输出1136(例如,播放电影“星球大战”)。在一些示例中,设备840可向设备810A提供响应的至少一部分,同时向一个或多个其他设备提供响应的其他部分。例如,设备840可向设备810A提供电影“星球大战”的音频部分,同时向设备1137(例如,电视)提供该电影的视频部分。
参考图11C,如所描述的,设备840接收对用户请求1128的表示,这可使得设备840确定其是否能够提供对用户请求的响应。在一些示例中,设备840可确定其不能够提供对用户请求的响应。例如,设备840可确定其未存储电影“星球大战”并且因此不能够提供响应。又如,设备840可确定用户请求针对未存储在设备840中的信息(例如,股市信息、web搜索请求等)并且因此确定其不能够提供响应。
如图11C所示,根据确定设备840不能够提供对用户请求的响应,设备840可经由网络850将对用户请求1128的表示转发到设备820。如所描述的,设备820可以是服务器。基于对用户请求1128的表示,设备820然后可确定其是否能够提供响应。例如,设备820可确定其是否存储了所请求的电影,或者是否能够从用户804的云帐户或从web源(例如,媒体网站)访问所请求的电影。如果设备820确定其存储所请求的电影或者能够访问所请求的电影,则设备820确定其能够提供响应。在一些示例中,设备820可向设备840提供响应1132,然后该设备可转发到设备810A和任选地设备1137(例如,电视)。在一些示例中,设备820可直接向设备810A和任选地设备1137提供响应1132。例如,设备820可将电影星球大战的音频部分发送到设备810A,同时将电影星球大战的视频部分发送到设备1137(经由设备840)。在设备810A上操作的数字助理和任选地设备1137接收响应1132,并向用户提供对响应1132的表示。例如,在设备810A上操作的数字助理和任选地设备1137可基于所接收的响应1132来提供输出1136(例如,播放电影“星球大战”)。
使用图11C所示的示例,代替提供语音输入1126,用户804可提供语音输入诸如“在我的电视上播放电影星球大战并在我的计算机上设置另一屏幕”。类似于上述那些,在设备810A上操作的数字助理可向设备840提供对用户请求的表示,并且基于确定设备840(例如,设置在设备810A附近的电视机顶盒)或设备820(例如,服务器)是否能够提供响应来从设备840或设备820接收对用户请求的响应。在一些实施方案中,用户请求可指示对用户请求的响应将被提供到多个设备。因此,设备840和/或设备820可相应地提供响应。例如,在设备810A上操作的数字助理可接收响应的一部分(例如,电影的音频部分);设备1137可接收响应的另一部分(例如,电影的视频部分);并且另一设备(例如,用户的计算机)可接收响应的副本(例如,电影的音频和视频部分两者的拷贝)。在一些示例中,用户804可能想要使用设备诸如他或她的计算机或平板电脑来观看电影,而不是使用设备810A。用户804可提供语音输入,诸如“在我的计算机上播放电影星球大战”或“在我的平板电脑上播放电影星球大战”。可将该语音输入作为用于开始任务执行(例如,开始播放电影星球大战)的初始输入提供。还可在任务正在被执行时(例如,在设备840正在将电影流传输到设备810A和/或设备1137时)将该语音输入作为后续输入提供。类似于上述那些,设备810A可向设备840和/或设备820提供对用户请求的表示。对用户请求的表示可指示响应将被提供到用户的计算机或平板电脑(图11C中未示出)。因此,用户的计算机或平板电脑可基于确定设备840(例如,设置在设备810A附近的电视机顶盒)或设备820(例如,服务器)是否能够提供响应来从设备840或设备820接收对用户请求的响应。
参考图11D,在一些实施方案中,用户804可提供语音输入1152,诸如“给Jane打电话并和Kevin发起会议”。在设备810A上操作的数字助理接收到语音输入1152并且可向设备830(例如,用户的智能电话)提供对用户请求1154的表示。用户请求1154可包括用于在设备830处执行任务(例如,给Jane打电话并和Kevin发起会议)的请求。设备830接收对用户请求1154的表示,并确定其能够执行该任务。如上文结合图1至图7C所述,并且类似地在其他示例中,在设备830(和/或设备810A)上操作的数字助理的自然语言处理模块可基于用户请求来识别可执行意图并且生成结构查询以表示所识别的可执行意图。例如,基于语音输入1152,设备830因此可确定可执行意图是否是“进行电话呼叫”。在一些示例中,数字助理可主动地引出并获得完全推断用户意图所需的信息(例如,通过消除字词的歧义,引出来自用户的进一步澄清输入和/或使用上下文信息诸如用户的联系人列表)。针对“进行电话呼叫”的结构化查询可包括参数诸如{被叫方}、{电话号码}等。接下来,数字助理的任务流处理模块可接收该结构化查询并且执行提供对用户请求的响应所需的动作。因此,设备830可根据用户请求1154来执行任务(例如,呼叫用户1194的设备1182并且在用户1196的设备1186中发起会议)。基于任务的执行,设备830还可向设备810A提供响应1157。例如,在设备810A上操作的数字助理可从设备830接收响应1157,指示已经建立了与用户1194(例如,Jane)和用户1196(例如,Kevin)的会议。因此,在设备810A上操作的数字助理可提供音频输出1162,诸如“连接了Jane和Kevin”。
图12A至图12C示出了根据各种示例的基于对信息的用户请求来提供数字助理服务的功能。参考图12A,用户804可提供语音输入1206,诸如“查找Jane的移动电话号码”。语音输入1206因此表示对电话号码的用户请求。在设备810A上操作的数字助理接收语音输入1206,并且经由网络850向远程设备(例如,设备820诸如服务器)且不向设置在设备810A附近的设备(例如,设备830诸如用户的智能电话)提供对用户请求1208的表示。因为许多原因,在设备810A上操作的数字助理可能不向设置在设备810A附近的设备提供对用户请求1208的表示。例如,在设备810A上操作的数字助理可确定该信息不太可能在设置在设备810A附近的设备(例如,设备830)处可获得;不存在到在设备810A附近的设备的连接或连接不佳(例如,设备830在设备810A的通信范围外);到设置在设备810A附近的设备的带宽有限或较低;预先确定的配置需要向远程设备提供对用户请求的表示;等。
在一些实施方案中,设备820接收对用户请求1208的表示,这可使得设备820确定其是否能够提供对用户请求的响应。例如,设备820可确定用户804的云帐户存储所请求的电话号码并且因此能够提供对用户请求的响应。根据确定设备820能够提供对用户请求的响应,设备820可向设备810A提供响应1210。例如,设备820可向设备810A提供Jane的电话号码。在设备810A上操作的数字助理从设备820接收响应1210,并且向用户804提供对响应1210的表示。例如,在设备810A上操作的数字助理可提供音频输出1212,诸如“Jane的号码是123-456-7890”。
参考图12B,类似于图12A,在设备810A接收到语音输入1226诸如“查找Jane的电话号码”之后,其可经由网络850向设备820提供对用户请求1228的表示。在一些实施方案中,设备820接收对用户请求1228的表示,这可使得设备820确定其是否能够提供对用户请求1228的响应。例如,设备820可确定用户804的云帐户未存储Jane的电话号码并且因此不能够提供对用户请求的响应。根据确定设备820不能够提供对用户请求的响应,设备820可将对用户请求1228的表示转发到设备830。设备830可以是设置在设备810A附近的设备,并且可以是与用户804相关联的设备(例如,用户804的个人设备,诸如智能电话)。类似于上述那些,设备830可确定其是否能够提供对用户请求的响应(例如,其是否存储Jane的电话号码),并且根据该确定来向设备810A提供响应1232。例如,根据确定设备830能够提供Jane的电话号码,设备830可向设备810A提供Jane的电话号码。在设备810A上操作的数字助理从设备830接收响应1232,并且向用户提供对响应1232的表示。例如,在设备810A上操作的数字助理可提供音频输出1234,诸如“Jane的号码是123-456-7890”。在一些示例中,在设备810A上操作的数字助理可直接从设备830接收响应。在一些实施方案中,设备830可向设备820提供响应,该设备然后将响应转发到设备810A,如下所述。
参考图12C并且继续结合图12B描述的以上示例,在设备810A上操作的数字助理可间接从设备830接收响应1252。例如,设备830可向设备820(例如,服务器)提供响应1252(例如,Jane的电话号码),该设备然后可将响应1252转发到设备810A。在设备810A上操作的数字助理从设备820接收响应1252,并且向用户804提供对响应1252的表示。例如,在设备810A上操作的数字助理可提供音频输出1256,诸如“Jane的号码是123-456-7890”。
图13A至图13B示出了根据各种示例的在第一电子设备或另外电子设备处提供数字助理服务的功能。参考图13A,如上所述,多个设备810A-C可以是用于将数字助理服务从一个设备延伸到另一设备的服务延伸设备。例如,如图13A所示,设备810A-C可设置在设备830(例如,用户804的智能电话设备)附近,以延伸由设备830提供的数字助理服务。在一些示例中,将多个设备810A-C设置在设备830附近可包括将设备810A-C设置在设备830的预先确定的边界或距离内。例如,设备810A-C可如设备830一样设置在同一房屋或建筑物中。如图13A所示,在一些实施方案中,设备810A-C可以用于将数字助理服务延伸到区域1300的不同部分的方式设置。如图13所示,区域1300可包括例如客厅1320、办公室1340和卧室1360。在一些示例中,设备810A可设置在客厅1320中,设备810B可设置在办公室1340中;并且设备810C可设置在卧室1360中。如上所述,设备810A-C可彼此通信地耦接并且通信地耦接到其他设备(例如,设备820和设备830)。
如图13A所示,用户804可位于设备810A设置在其中的客厅1302内。用户804可能想要伴随一些轻音乐上床睡觉,并且因此向设备810A提供语音输入1306,诸如“在我的卧室扬声器上播放轻音乐”。在设备810A上操作的数字助理接收表示用户请求的语音输入1306。类似于上述那些,设备810A可向设备830(例如,设置在设备810A附近的用户的智能电话)或设备820(例如,远程设置的服务器)中的至少一者提供对用户请求的表示。设备820或设备830中的至少一者确定相应设备是否能够提供对用户请求的响应,并且向设备810A提供响应。然后,在设备810A上操作的数字助理可向用户804提供对响应的表示(例如,音频输出)。
在一些实施方案中,在向用户804提供对响应的表示之前,在设备810A上操作的数字助理可确定将由设备810A还是另一设备提供对响应的表示。例如,语音输入1306可包括“在我的卧室扬声器上播放轻音乐”。因此,在设备810A上操作的数字助理可确定用户意图不是在设备810A上播放音乐,而是在设置在卧室1360内的设备810C上播放音乐。可使用例如上述自然语言处理来进行该确定。根据确定不是将由设备810A提供对响应的表示,设备810A可将响应转发到或者使得响应被提供到设置在卧室1360中的设备810C。因此,设备810C可提供播放用户所请求的轻音乐的音频输出1310。在其他示例中,根据确定将由设备810A提供对响应的表示,设备810A自身可向用户804提供对响应的表示。如上所述,多个设备810A-C可设置在区域1400中。在一些示例中,数字助理(在设备810A、设备810B、设备810C、设备830等上操作的数字助理)可确定每个设备810A-C的位置(例如,基于初始配置)。例如,在初始配置期间,可基于设备或设备组在用户家中的位置来为其分配名称诸如“客厅”。在一些实施方案中,设备或设备组的名称是默认名称诸如“设备1”或“设备1-客厅”。在一些实施方案中,设备位置(例如,房间名称)和其他设备配置被包括在配置数据中。在配置过程期间,配置数据被设备接收并存储。
如上所述,在向用户804提供对响应的表示之前,在设备810A上操作的数字助理可确定将由设备810A还是另一设备提供对响应的表示。在一些示例中,此类确定可基于由用户的语音输入(例如,“在我的卧室扬声器上播放轻音乐”)表示的用户请求。在一些示例中,此类确定可基于检测用户的位置或跟踪用户的移动中的至少一者。参考图13B,用户804可位于设备810A设置在其中的客厅1302内。用户804可能想要去办公室1340并且听一些轻音乐,并且因此向设备810A提供语音输入1326诸如“播放轻音乐”。语音输入1326不指示用户想要在哪个设备810A-C上播放音乐。在设备810A上操作的数字助理接收表示用户请求的语音输入1326。类似于上述那些,设备810A可向设备830(例如,设置在设备810A附近的用户的智能电话)或设备820(例如,远程设置的服务器)中的至少一者提供对用户请求的表示。设备820或设备830中的至少一者确定相应设备是否能够提供对用户请求的响应,并且向设备810A提供响应。
在向用户804提供对响应的表示之前,设备810A可确定将由设备810A还是另一设备提供对响应的表示(例如,音频输出)。在一些示例中,设备810A可基于检测用户804的位置或跟踪用户804的移动中的至少一者来进行此类确定。例如,设备810A可检测到用户804位于客厅1320中但是正朝办公室1340移动。设备810A可使用例如一个或多个传感器(诸如运动传感器、定位系统、相机等)来检测位置和/或移动。根据确定用户804正朝办公室1340移动,在设备810A上操作的数字助理可确定用户意图不是在设备810A上播放音乐,而是在设置在办公室1340内的设备810B上播放音乐,或者音乐回放应该在设备810A上开始,但是在设置在办公室1340中的设备810B上继续(并且任选地在设备810A上停止)。根据确定不是将由设备810A提供对响应的表示,设备810A可将响应转发到或者使得响应被提供到设置在办公室1340中的设备810B。因此,设备810B可提供播放用户所请求的轻音乐的音频输出1328。
在其他示例中,根据确定将由设备810A提供对响应的表示(例如,用户804位于客厅1320中并且未移动),设备810A自身可向用户804提供对响应的表示。应当理解,在设备810A上操作的数字助理可基于任何上下文信息来确定将由设备810A还是另一设备提供响应,所述任何上下文信息诸如为用户偏好(例如,用户804偏好在就寝之前收听音乐)、过去用于提供响应的设备、设备属性和能力(例如,相比设备810B,设备810A可提供更好的声音)等。
图14示出了根据各种示例的在不同电子设备之间提供数字助理服务的连续性的功能。如图14所示,在设备810A上操作的数字助理可能正向用户804提供响应1406(例如,播放音乐)。在设备810A处于提供响应1406的过程中时,用户804可能移出设备810A设置在其中的区域1400。例如,用户804可能需要离开他或她的房屋去上班。在一些实施方案中,在设备810A上操作的数字助理可确定是否由不同的电子设备连续地提供响应1406。例如,在设备810A正在提供响应1406时,用户804可提供语音输入,诸如“在我的智能电话上继续播放音乐”。设备810A接收到该语音输入并且可确定用户意图是在设备830(例如,用户的智能电话)上继续播放音乐。可使用上述自然语言处理技术来进行此类确定。基于所确定的用户意图,设备810A可确定响应1406应该将在不同设备处继续提供音乐。
在一些实施方案中,用户804还可向设备830替代向设备810A提供语音输入,诸如“在我的智能电话上继续播放音乐”。基于语音输入和上下文信息(例如,设备810A当前正在提供音频输出),设备830可确定用户意图是连续地执行正在设备810A处执行的任务。例如,设备830可与设备810A(以及通信地耦接到设备830的其他设备)进行通信以确定设备810A的状态信息。设备810A的状态信息可指示其当前正在播放音乐。因此,设备830可确定用户意图是连续地播放当前正在设备810A上播放的音乐。基于该确定,设备830可与设备810A进行通信,以连续地执行当前正由设备810A执行的任务。例如,设备830可获得内容和/或元数据(例如,与当前正在播放的音乐相关联的时间戳),由设备830连续地播放音乐,并且使得设备810A停止播放。
作为图14所示的另一示例,当在设备810A上操作的数字助理正在提供响应1406时,设备810A可执行检测用户的位置或跟踪用户的移动中的至少一者。设备810A可使用例如一个或多个传感器(诸如运动传感器、定位系统、相机等)来检测位置和/或移动。例如,设备810A可连续或周期性地跟踪用户804的当前位置和/或移动。在一些示例中,设备810A可检测用户804相对于设备810A的位置变化是否满足预先确定的条件。例如,设备810A可检测到用户804已经移出区域1400(例如,房屋)的预先确定的边界。因此,设备810A可确定应该在不同设备处连续地提供响应1406。
又如,在设备810A处于提供响应1406的过程中时,其可检测与用户804相关联的设备(例如,设备830诸如用户的智能电话)的移动。例如,设备810A可确定设备830的通信信号强度在短持续时间内减小,指示设备830可能移出区域1400的边界。因此,设备810A可确定应该在不同设备(例如,设备830)处连续地提供响应1406。
在一些实施方案中,根据确定将在不同电子设备处连续地提供响应1406,设备810A可使得响应1406由一个或多个不同电子设备连续地提供。例如,设备810A可将用于提供响应1406的剩余内容(例如,响应1406的剩余部分)和/或与提供响应1406相关联的元数据(例如,从设备820或设备830流传输的当前正在播放的媒体的时间戳)传输到设备830(例如,用户的智能电话)。在一些示例中,设备810A还可将通知发送到从其获得响应1406的内容的另一设备(例如,设备820)。该通知可指示或请求响应1406将在另一设备处被连续地提供,并且因此响应1406的内容应该被提供到该设备。基于所接收的剩余内容和/或元数据,设备830可继续向用户804提供响应1406。在2016年9月21日提交的标题为“INTELLIGENTDIGITAL ASSISTANTIN A MULTI-TASKING ENVIRONMENT”(多任务环境中的智能数字助理)的共同未决的美国专利申请No.15/271,766中描述了在不同设备上连续地提供数字助理服务的更多细节,该专利申请的内容据此全文以引用方式并入,并被包括在附录中。
在结合图8A至图8B、图9A至图9C、图10A至图10C、图11A至图11D、图12A至图12C、图13A至图13B和图14的以上描述中,设备820可以是远程设备诸如服务器。在一些实施方案中,设备可设置在设备810A-C的附近,用作设备820的代理设备。例如,并且返回参考图8A,设备840(例如,电视机顶盒)可用作设备820(例如,远程服务器)的代理设备。代理设备可用作针对来自客户端设备(例如,设备810A)的从其他设备(例如,服务器)寻求资源的请求的中介。作为代理,设备840可操作以处理来自多个家庭自动化设备(例如,智能恒温器、智能门、智能灯开关等)的请求。例如,基于用户的语音输入(例如,经由设备810A接收的语音输入),可能需要智能恒温器来执行调节温度和/或湿度水平的任务。因此,智能恒温器可与设备840进行通信以从各种传感器请求当前温度和湿度数据。因此,设备840可用作代理以将该请求中继到适当的设备和/或传感器,并且将数据提供到智能恒温器。
5.基于对事件的通知来提供数字助理服务的数字助理的示例性功能。
图2、图4、图6和图15A至图15G示出了通过在电子设备上操作的数字助理来提供数字助理服务的功能。在一些示例中,数字助理(例如,数字助理系统700)由用户设备根据各种示例来实现。在一些示例中,用户设备、服务器(例如,服务器108、设备820)或其组合可以实现数字助理系统(例如,数字助理系统700)。用户设备可使用例如设备200、400、600、810A-C、820和/或830来实现。在一些示例中,用户设备是具有音频输出能力和网络连接性的设备、智能电话、膝上型计算机、台式计算机或平板电脑。
图15A至图15G示出了根据各种示例的基于对事件的通知来提供数字助理服务的功能。如图15A所示,设备810A可接收对与用户1504相关联的一个或多个事件的通知1506和/或1508。如上所述,设备810A(以及类似地其他设备810B-C)可包括一个或多个音频输入和输出设备(例如,麦克风和一个或多个扬声器)、一个或多个网络通信接口以及任选地用于提供设备操作指示的一个或多个指示器(例如,灯)。在一些示例中,如图15A所示,设备810A可接收来自设备830(例如,用户的智能电话)的通知1506和/或来自设备820(例如,远程服务器)的通知1508。
在一些示例中,对事件的通知可包括对来电、提醒、消息、语音邮件、新闻警示等中的至少一者的表示。例如,在设备830上操作的数字助理可接收来自日历应用程序的日历提醒,并且可将对日历提醒的表示转发到设备810A。如图15A所示,响应于接收到通知1506和/或通知1508,在设备810A上操作的数字助理可输出对通知1506和/或通知1508的一个或多个指示1510。在一些示例中,指示1510可以是音频指示(例如,蜂鸣声、音调等)、视觉指示(例如,闪光灯、显示的消息等)或音频指示和视觉指示的组合。虽然图15A示出了指示1510由设备810A提供,但是指示1510也可由其他设备提供,所述其他设备诸如为设备830和/或设备810B-C(图15A中未示出)。如所描述的,设备830可以是例如用户的智能电话、智能手表、平板电脑等;并且设备810B-C可以是与设备810A类似类型的设备并且设置在设备810A的附近(例如,在同一房屋中)。因此,可由在任何位置处的任何设备向用户1504提供对通知的指示。通过设置在各个位置处的多个设备来提供指示可提高捕获用户1504关于通知的注意力的可能性。在一些示例中,通知仅由一个设备(例如,设备810A)提供以便最小化对用户1504的干扰。
如图15B所示并且继续以上示例,用户1504接收到指示1510并且可提供询问指示1510的语音输入1516。例如,语音输入1516可包括“那是什么?”在一些示例中,在设备810A上操作的数字助理接收到语音输入1516并且可根据对事件的通知来输出响应1518。例如,如图15B所示,如果对事件的通知包括对来自John的语音消息的表示,则在设备810A上操作的数字助理可输出响应1518,诸如“您有来自John的语音邮件”。如果对事件的通知包括对日历提醒的表示,则在设备810A上操作的数字助理可输出响应1518,诸如“您的日历上有即将发生的事件”。如果对事件的通知包括对来自John的来电的表示,则在设备810A上操作的数字助理可输出响应1518,诸如“您有来自John的来电”。
如图15C所示并且继续以上示例,在根据对事件的通知来输出响应1518之后,在设备810A上操作的数字助理可通过例如在响应1518期间或之后侦听用户话语来继续监视用户输入。例如,在设备810A上操作的数字助理可接收后续语音输入1526。语音输入1526可包括例如“播读消息”、“是什么事件?”或“接听来自John的呼叫”。
在一些示例中,如图15C所示,在设备810A上操作的数字助理接收到语音输入1526并且可基于语音输入1526来确定用户意图。例如,在设备810A上操作的数字助理可确定用户意图是播读来自John的语音邮件、收听即将发生的日历事件或者接听来自John的呼叫。因此,在设备810A上操作的数字助理可根据所确定的用户意图来向用户1504提供通知。例如,在设备810A上操作的数字助理可提供对应于来自John的语音邮件的音频输出1528(例如,“嗨,Bill,我是John。你明天有时间一起吃午饭吗?”)。
在一些实施方案中,在设备810A上操作的数字助理可根据一个或多个语音输入来确定是否将在设备810A处提供通知。如上所述,在一些示例中,设备810A可在多个用户之间共享。因此,设备810A接收到的对事件的通知可能或者可能是针对特定用户(例如,用户1504)的。如图15D所示并且继续以上示例,其中设备810A根据对事件的通知来输出响应(例如,“Bill,您有来自John的语音邮件”),设备810A可接收来自用户1505的后续语音输入1536,该用户是不同于用于提供对事件的通知的预期用户的用户。语音输入1536可包括例如“我不是Bill。他不在这儿”。
在一些示例中,在设备810A上操作的数字助理可获得提供一个或多个语音输入的用户的身份,并且确定是否将向提供所述一个或多个语音输入的用户提供通知。如图15D所示,例如,基于语音输入1536(例如,“我不是Bill。他不在这儿”),在设备810A上操作的数字助理可确定用户1505不是打算向其提供通知的用户(例如,“不是Bill”)。因此,在设备810A上操作的数字助理可确定不应该向用户1505提供通知。
在一些示例中,为了获得提供一个或多个语音输入的用户的身份,在设备810A上操作的数字助理可获得与该用户相关联的认证数据。如图15E所示并且继续以上示例,其中设备810A根据对事件的通知来输出响应(例如,“Bill,您有来自John的语音邮件”),在设备810A上操作的数字助理可接收来自用户1507的后续语音输入1546,该用户是不同于用于提供对事件的通知的预期用户的用户。用户1507可以是例如在用户1504(例如,比尔)房屋中的客人。用户1507可能决定收听Bill的消息并且因此语音输入1546可包括例如“播读消息”。在一些示例中,在设备810A上操作的数字助理可获得与用户1507相关联的认证数据。类似于上述那些,认证数据可包括用户1507的语音生物识别、用户1507的面部识别数据、感测识别用户1507的另一设备(例如,该用户的智能手表)以及用户1507的其他凭据(例如指纹、密码等)。基于认证数据,在设备810A上操作的数字助理可获得对用户1507的身份的确定。例如,在设备810A上操作的数字助理可基于认证数据来验证用户1507。又如,在设备810A上操作的数字助理可向设备830(例如,Bill的智能电话)或设备820(例如,服务器)中的至少一者提供认证数据以进行认证。设备830和/或设备820接收到认证数据并且可执行认证以获得用户1507的身份(例如,匹配语音生物识别、指纹、密码等)。因此,在设备810A上操作的数字助理可从设备830或设备820中的至少一者接收用户1507的身份。
在一些示例中,在设备810A上操作的数字助理可基于用户的身份并基于所接收的通知来确定是否应该向提供所述一个或多个语音输入中的至少一个的用户提供通知。例如,如图15E所示,基于用户1507的身份(例如,在用户1504的房屋中的客人)和通知1506(例如,对针对Bill的语音邮件的表示),在设备810A上操作的数字助理可确定不应该向用户1507提供通知1506,因为用户1507的身份与该通知打算发给的用户不匹配(例如,用户1507不是Bill或者未被授权)。因此,在设备810A上操作的数字助理可提供通知用户1507他或她未被授权来接收通知的音频输出1548(例如,“抱歉,您未被授权来收听该消息”)。在另一方面,在设备810A上操作的数字助理可确定应该向用户1507提供通知1506,因为用户1507的身份与该通知打算发给的用户匹配(例如,用户1507是Bill或者被授权)。例如,用户1507可以是用户1504的家庭成员,并且被授权来接收针对用户1504的通知。因此,设备810A可提供包括通知1506的内容的音频输出。
在一些示例中,根据确定将向提供所述一个或多个语音输入中的至少一个的用户提供通知,在设备810A上操作的数字助理可进一步确定是否将在设备810A处提供通知。如图15F所示,基于语音输入1556(例如,“播读消息”),设备810A可获得用户1504的身份并确定用户1504被授权来接收通知。因此,在设备810A上操作的数字助理可确定应该向用户1504提供通知。在一些示例中,在设备810A上操作的数字助理可进一步确定是否将在设备810A处提供通知。如图15A所示,一个或多个设备可设置在用户1504附近。例如,设备810A可设置在客厅1520中;设备810B可设置在办公室1540中;并且设备810C可设置在卧室1560中。在一些示例中,设备810A可能或者可能不是用于向用户1504提供通知的最佳设备。例如,用户1504可能正移动远离设备810A(例如,朝办公室1540移动)。又如,在设置在客厅1520中的设备810A附近可能存在其他用户(例如,客人),因此出于隐私担忧,用户1504可能不想要从设备810A接收通知。
类似于上述那些,在一些示例中,对是否将在设备810A处提供通知的确定可基于由用户的语音输入(例如,“在我的办公室扬声器上播读消息”)表示的用户请求。在一些示例中,此类确定可基于检测用户的位置或跟踪用户的移动中的至少一者。例如,用户1504可能想要去办公室1540接收通知(例如,收听语音邮件、接听电话呼叫等)。在设备810A上操作的数字助理可检测到用户804位于客厅1520中但是正朝办公室1540移动。在设备810A上操作的数字助理可使用例如一个或多个传感器(诸如运动传感器、定位系统、相机)和对各个设备的信号强度测量等来检测位置和/或移动。基于对用户移动的检测,在设备810A上操作的数字助理可确定应该由设置在办公室1540中的设备810B而不是设置在客厅1520中的设备810A提供通知。在其他示例中,在设备810A上操作的数字助理可检测到用户804未移动并且停留在客厅1520中。因此,设备810A可确定应该由设置在客厅1520中的设备810A提供通知。
图15G示出了另一示例,其中设备810A可确定应该由另一设备提供通知。如图15G所示,在接收到通知1572(例如,对来自John的语音邮件的表示)时,设备810A可能正在提供音频输出1576(例如,播放媒体项)。因此,在设备810A上操作的数字助理可确定不应该在设备810A处提供通知1572,以避免中断提供音频输出1576。因此,在设备810A上操作的数字助理可确定用于提供通知1572的另外设备。在一些示例中,此类确定基于上下文信息。例如,基于设备810A当前正在提供音频输出1576的信息并且基于对设备830的检测,设备810A可确定可在设备830处提供通知1572。在一些示例中,设备810A可提供与用户1504确认应该在另一设备处提供通知1572的输出(例如,音频和/或视觉输出)。应当理解,在设备810A上操作的数字助理可基于任何上下文信息来确定将在设备810A处还是在另一设备处提供通知,所述任何上下文信息诸如为用户偏好(例如,用户1504偏好在办公室1540中的设备810B上收听来自同事的语音邮件)、过去用于提供通知的设备、设备属性和能力(例如,相比设备810A,设备810B可提供更好的声音)等。
在一些实施方案中,根据确定将在设备810A处提供通知,在设备810A上操作的数字助理可在设备810A处提供通知。例如,如以上示例所示,在设备810A上操作的数字助理可提供包括通知的音频输出(例如,输出语音邮件、电话呼叫、日历提醒等)。根据确定将在不同于设备810A的设备处提供通知,在设备810A上操作的数字助理可使得通知在另一设备处被提供。例如,在设备810A上操作的数字助理可将通知转发到设备830,或者向设备830发送用于在设备830处提供通知的请求。基于该通知或请求,设备830可提供包括通知的内容的音频输出1574(例如,输出语音邮件、电话呼叫、日历提醒等)。
6.用于基于用户输入来提供数字助理服务的过程。
图16A至图16I示出了根据各种示例的用于操作用于基于用户输入来提供数字助理服务的数字助理的过程1600。例如使用实现数字助理的一个或多个电子设备来执行过程1600。在一些示例中,使用客户端-服务器系统(例如,系统100)来执行过程1600,并且在服务器(例如,DA服务器106)和客户端设备之间以任何方式来划分过程1600的框。在其他示例中,在服务器和多个客户端设备(例如,移动电话和智能手表)之间划分过程1600的框。因此,虽然过程1600的部分在本文中被描述为由客户端-服务器系统的特定设备执行,但应当理解,过程1600不限于此。在其他示例中,使用仅客户端设备(例如,用户设备104、电子设备810A、设备830或设备840)或仅多个客户端设备来执行过程1600。在过程1600中,一些框被任选地组合,一些框的次序被任选地改变,并且一些框被任选地省略。在一些示例中,可结合过程1600来执行附加步骤。
参考图16A,在框1602处,接收包括预先确定的内容(例如,“醒来吧,扬声器”或“嘿,扬声器”)的第二语音输入。在框1604处,响应于接收到第二语音输入,第一电子设备被激活。第一电子设备可以是服务延伸设备(例如,如图8A至图15G所示的设备810A)。在框1606处,在一些示例中,第二语音输入不使得一个或多个另外的电子设备被激活。所述一个或多个另外的电子设备可设置在第一电子设备附近。例如,可由第一电子设备和另外的电子设备两者检测和记录与语音输入相关联的音量或声压。基于对在这两个设备处检测到的声压的比较,可确定用户相对于这两个设备的位置。例如,可确定用户在物理上相比另一设备更接近第一电子设备。因此,第一电子设备可被激活,而另一设备可不被激活。
在框1608处,从第一用户接收表示用户请求的第一语音输入。在框1610处,用户请求包括对特定于第一用户的信息(例如,第一用户的日历、联系人等)的请求。在框1612处,用户请求包括对非特定于用户的信息(例如,天气信息、股票价格、体育比赛信息等)的请求。在框1614处,用户请求包括用于执行任务(例如,播放音乐、建立会议等)的请求。
在框1616处,获得第一用户的身份。在框1618处,获得与第一用户相关联的认证数据。该认证数据可包括例如用户的语音生物识别、用户的面部识别数据、感测识别用户的另一电子设备、用户的其他凭据诸如用户的指纹、密码等。在框1620处,基于认证数据来获得对第一用户的身份的确定。在框1622处,为了获得第一用户的身份,将认证数据提供到第二电子设备(例如,远程服务器)或第三电子设备(例如,用户的智能电话)中的至少一者。在框1624处,从第二电子设备或第三电子设备中的至少一者接收第一用户的身份。基于认证数据来确定第一用户的身份。在框1626处,基于第二语音输入(例如,“醒来吧,扬声器”或“嘿,扬声器”)来获得第一用户的身份。如上所述,第二语音输入可与用户的语音生物识别相关联,并且可用于确定用户的身份。
参考图16B,在框1628处,输出关于由第一语音输入表示的用户请求的一个或多个语音查询。语音查询可用于与第一用户澄清第一语音输入(例如,“那是什么?”或“我不太明白”)。在框1630处,响应于所述一个或多个语音查询,从第一用户接收附加语音输入。例如,第一用户可重复或改述第一语音输入。
在框1632处,在第一电子设备(例如,服务延伸设备)和第二电子设备(例如,远程服务器)或第三电子设备(例如,设置在第一电子设备附近的设备)中的至少一者之间建立连接。在框1634处,建立连接基于第一电子设备和第三电子设备之间的近场通信。在框1636处,建立连接基于检测到第三电子设备在距第一电子设备的预先确定的距离内。在框1638处,建立连接基于第一电子设备和第三电子设备之间的先前建立的连接。例如,可基于指示第一电子设备和第三电子设备之前已经连接的日志文件来建立连接。该日志文件还可指示先前连接中使用的连接参数。
如上所述,服务延伸设备可被多个用户共享,并且因此连接到与一个或多个用户相关联的多个设备。在框1640处,在第一电子设备(例如,服务延伸设备)和第三电子设备(例如,第一用户的客户端设备)之间建立连接。第三电子设备与第一用户相关联。在框1642处,在第一电子设备和第四电子设备(例如,第二用户的平板设备)之间建立连接。第四电子设备与第二用户相关联。在框1644处,在一些示例中,在建立第一电子设备和第三电子设备之间的连接之后,向第二电子设备通知已建立的连接。例如,当在服务延伸设备(例如,图8A至图8B所示的设备810A)和智能电话设备之间建立连接之后,可向服务器通知已建立的连接。
参考图16C,如上所述,获得第一用户的身份。在框1646处,根据用户身份,向第二电子设备或第三电子设备中的至少一者提供对用户请求的表示。在框1648处,第二电子设备是远离第一电子设备设置的服务器;并且第三电子设备是设置在第一电子设备附近的客户端设备。在框1650处,第三电子设备是服务器的代理设备。例如,客户端设备(例如,图8A所示的设备840)可用作服务器(例如,图8A所示的设备820)的代理设备以处理来自其他设备(例如,家庭自动化设备诸如智能恒温器)的请求。
在框1652处,在一些示例中,为了向第二电子设备或第三电子设备中的至少一者提供对用户请求的表示,确定第三电子设备(例如,设置在第一电子设备附近的客户端设备)是否通信地耦接到第一电子设备(例如,服务延伸设备)。在框1654处,根据确定第三电子设备通信地耦接到第一电子设备,向第三电子设备且不向第二电子设备提供对用户请求的表示。在框1656处,根据确定第三电子设备没有通信地耦接到第一电子设备,向第二电子设备提供对用户请求的表示。
在框1658处,在一些示例中,向第二电子设备(例如,远程服务器)且不向第三电子设备(例如,设置在第一电子设备附近的客户端设备)提供对用户请求的表示。在框1660处,在一些示例中,向第二电子设备和第三电子设备两者提供对用户请求的表示。
如上所述,第二电子设备和/或第三电子设备接收对用户请求的表示,并且可确定一者或两者是否将向第一电子设备提供响应。参考图16C,在框1662处,基于确定是第二电子设备或第三电子设备还是其两者将向第一电子设备提供响应,从第二电子设备或第三电子设备接收对用户请求的响应。
在框1664处,如上所述,在一些示例中,向第三电子设备且不向第二电子设备提供对用户请求的表示。在框1666处,为了接收对用户请求的响应,使得第三电子设备(例如,客户端设备)确定第三电子设备是否能够提供对用户请求的响应。在框1668处,根据确定第三电子设备能够提供对用户请求的响应,在第一电子设备处从第三电子设备接收对用户请求的响应。在框1670处,进行了第三电子设备不能够提供对用户请求的响应的确定。在框1672处,根据此类确定,由第三电子设备将对用户请求的表示转发到第二电子设备。在框1674处,在第一电子设备处从第二电子设备接收对用户请求的响应。
参考图16E,如上所述,在一些示例中,在框1676处,向第二电子设备(例如,远程服务器)且不向第三电子设备(例如,客户端设备)提供对用户请求的表示。在框1678处,为了在第一电子设备处接收对用户请求的响应,使得第二电子设备确定第二电子设备是否能够提供对用户请求的响应。在框1680处,根据确定第二电子设备能够提供对用户请求的响应,在第一电子设备处从第二电子设备接收对用户请求的响应。在框1682处,确定第二电子设备不能够提供对用户请求的响应。
在框1684处,根据此类确定,由第二电子设备将对用户请求的表示转发到第三电子设备。因此,第三电子设备(例如,客户端设备)可基于用户请求来提供响应。在框1686处,在第一电子设备处接收对用户请求的响应。在框1688处,第一电子设备从第三电子设备接收对用户请求的响应。在框1690处,基于由第三电子设备向第二电子设备提供的响应,第一电子设备从第二电子设备(例如,远程服务器)接收对用户请求的响应。例如,客户端设备可将响应转发到远程服务器,该远程服务器向第一电子设备(例如,服务延伸设备)提供响应。
参照图16F,如所描述的,在一些示例中,在框1692处,从第一电子设备向第二电子设备和第三电子设备两者提供对用户请求的表示。在框1694处,为了接收对用户请求的响应,使得第二电子设备(例如,远程服务器)确定第二电子设备是否能够提供对用户请求的响应。在框1696处,为了接收对用户请求的响应,使得第三电子设备(例如,设置在第一电子设备附近的客户端设备)确定第三电子设备是否能够提供对用户请求的响应。可执行框1694和框1696中确定中的一者或两者。
在框1698处,根据确定第二电子设备能够提供对用户请求的响应,并且第三电子设备不能够提供对用户请求的响应,在第一电子设备处从第二电子设备接收对用户请求的响应。在框1700处,根据确定第三电子设备能够提供对用户请求的响应,并且第二电子设备不能够提供对用户请求的响应,在第一电子设备处从第三电子设备接收对用户请求的响应。在框1702处,根据确定第二电子设备和第三电子设备两者都能够提供对用户请求的响应,在第一电子设备处基于预先确定的条件来从第二电子设备或第三电子设备接收对用户请求的响应。预先确定的条件可以是例如预先配置的策略(例如,第三电子设备是用于提供响应的默认设备)、用户偏好、到第二电子设备和第三电子设备的连接的带宽条件等。
参考图16G,在框1704处,确定是否将由第一电子设备(例如,服务延伸设备)提供对响应的表示。在框1706处,对是否将由第一电子设备提供响应的确定基于用户请求(例如,用户的语音输入指示将在不同电子设备处提供响应)。在框1708处,对是否将由第一电子设备提供响应的确定基于检测用户的位置或跟踪用户的移动中的至少一者。例如,如果检测到用户正朝另一设备移动远离第一电子设备,则可能不由第一电子设备提供响应。
在框1710处,根据确定将由第一电子设备提供对响应的表示,由第一电子设备向第一用户提供对响应的表示。在框1712处,根据确定不是将由第一电子设备提供对响应的表示,将响应转发到可向第一用户提供响应的一个或多个另外的电子设备。
参考图16H,在框1714处,向第一用户提供对响应的表示。在框1716处,为了提供对响应的表示,在第一电子设备处提供包括响应于用户请求的信息的语音输出。在框1718处,由第二电子设备或第三电子设备向第一电子设备提供信息。
在框1720处,为了提供对响应的表示,在第一电子设备处提供与根据用户请求来执行任务相关联的语音输出。在框1722处,在一些示例中,由第三电子设备(例如,客户端设备诸如第一用户的智能电话)执行任务。在框1724处,在一些示例中,由第一电子设备和第三电子设备执行任务。例如,第一电子设备可输出响应的音频部分,同时第三电子设备(例如,连接到电视屏幕的电视机顶盒)可输出响应的视频部分。在框1726处,由一个或多个另外的电子设备进一步执行任务。例如,除了在服务延伸设备和客户端设备诸如电视机顶盒处提供响应(例如,播放电影)之外,还可在另外设备诸如膝上型计算机处提供响应。
在框1728处,在一些示例中,在第一电子设备和一个或多个另外的电子设备之间建立一个或多个连接。另外的电子设备是与第一电子设备相同类型的设备。例如,可在多个服务延伸设备(例如,如图8A至图8B所示的设备810A-C)之间建立连接。
在框1730处,正由第一电子设备向第一用户提供响应。在框1732处,在由第一电子设备向第一用户提供响应时,确定是否将在不同电子设备(例如,客户端设备诸如用户的智能电话)处连续地提供响应。在框1734处,对是否将在不同电子设备处连续地提供响应的确定基于第三语音输入(例如,来自第一用户的语音输入,诸如“在我的电话上继续播放歌曲”)。在框1736处,对是否将在不同电子设备处连续地提供响应的确定基于检测第一用户相对于第一电子设备的位置变化是否满足预先确定的条件。例如,可确定第一用户是否已经移出预先确定的边界使得应该在不同于第一电子设备的设备处连续地提供响应。
在框1738处,根据确定将在不同电子设备处连续地提供响应,使得由第三电子设备或一个或多个另外的电子设备中的至少一者连续地提供响应。
在框1740处,在向第一用户提供响应之后,监视后续语音输入。
7.用于基于对事件的通知来提供数字助理服务的过程。
图17A至图17D示出了根据各种示例的用于操作用于基于对事件的通知来提供数字助理服务的数字助理的过程1800。例如使用实现数字助理的一个或多个电子设备来执行过程1800。在一些示例中,使用客户端-服务器系统(例如,系统100)来执行过程1800,并且在服务器(例如,DA服务器106)和客户端设备之间以任何方式来划分过程1800的框。在其他示例中,在服务器和多个客户端设备(例如,移动电话和智能手表)之间划分过程1800的框。因此,虽然过程1800的部分在本文中被描述为由客户端-服务器系统的特定设备执行,但应当理解,过程1800不限于此。在其他示例中,使用仅客户端设备(例如,用户设备104、设备810A-C)或仅多个客户端设备来执行过程1800。在过程1800中,一些框被任选地组合,一些框的次序被任选地改变,并且一些框被任选地省略。在一些示例中,可结合过程1800来执行附加步骤。
参考图17A,在框1802处,在接收对事件的通知之前,在第一电子设备(例如,服务延伸设备)和第二电子设备(例如,服务器)或第三电子设备(例如,设置在第一电子设备附近的客户端设备)中的至少一者之间建立连接。在框1804处,建立连接基于第一电子设备和第三电子设备之间的近场通信。在框1806处,建立连接基于检测到第三电子设备在距第一电子设备的预先确定的距离内。在框1808处,建立连接基于第一电子设备和第三电子设备之间的先前建立的连接。
如上所述,第一电子设备(例如,服务延伸设备)可被多个用户共享。在框1810处,建立第一电子设备和第三电子设备之间的连接;并且第三电子设备与第一用户相关联。在框1812处,建立第一电子设备和第四电子设备之间的连接;并且第四电子设备与第二用户相关联。在框1814处,在建立第一电子设备和第三电子设备之间的连接之后,向第二电子设备(例如,远程服务器)通知已建立的连接。
参考图17B,在框1816处,接收对与第一用户相关联的事件的通知。在框1818处,对事件的通知包括对来电、提醒、消息、语音邮件或新闻警示中的至少一者的表示。在框1820处,从第二电子设备(例如,远程服务器)或第三电子设备(例如,设置在第一电子设备附近的客户端设备)中的至少一者接收通知。
在框1822处,响应于接收到通知,输出对通知的指示。指示可以是例如蜂鸣声、警示、铃声等。在框1824处,由第一电子设备或通信地耦接到第一电子设备的另外的电子设备中的一者输出对通知的指示。例如,客户端设备诸如用户的智能电话可输出对通知的指示;并且另一服务延伸设备可输出对通知的指示。
在框1826处,接收一个或多个语音输入。在框1828处,例如,接收关于通知的第一语音输入(例如,用户可提供询问对常规通知的指示的第一语音输入,诸如“那是什么?”)。在框1830处,根据对事件的通知来输出响应。例如,可提供语音输出,诸如“您有来自John的语音邮件”。在框1832处,接收第二语音输入。例如,用户可以说“播读语音邮件”。
参考图17C,在框1834处,根据所述一个或多个语音输入,确定是否将在第一电子设备处提供通知。在框1836处,为了确定是否将在第一电子设备处提供通知,获得提供所述一个或多个语音输入中的至少一个的用户的身份。在框1838处,为了获得用户的身份,获得与提供所述一个或多个语音输入中的至少一个的用户相关联的认证数据。认证数据可包括例如用户的生物识别、指纹、面部识别数据、密码等。在框1840处,基于认证数据来获得对提供所述一个或多个语音输入中的至少一个的用户的身份的确定。
在框1842处,为了获得对提供所述一个或多个语音输入中的至少一个的用户的身份的确定,向第二电子设备和第三电子设备中的至少一者提供认证数据。在框1844处,从第二电子设备和第三电子设备中的至少一者接收提供所述一个或多个语音输入中的至少一个的用户的身份。基于认证数据来确定提供所述一个或多个语音输入中的至少一个的用户的身份。
在框1846处,基于提供所述一个或多个语音输入中的至少一个的用户的身份并且基于通知,确定是否将向提供所述一个或多个语音输入中的至少一个的用户提供通知。在框1848处,根据确定将向提供所述一个或多个语音输入中的至少一个的用户提供通知,确定是否将在第一电子设备处提供通知。
参考图17D,在框1850处,根据确定将在第一电子设备处提供通知,在第一电子设备处提供通知。在框1852处,为了在第一电子设备处提供通知,在第一电子设备处提供与通知相关联的音频输出。
在框1854处,根据确定不是将在第一电子设备处提供通知,确定用于提供通知的另外的电子设备。在框1856处,确定用于提供通知的另外的电子设备基于所述一个或多个语音输入。在框1858处,确定用于提供通知的另外的电子设备基于上下文信息。
以上参考图16A至图16I和图17A至图17D描述的操作任选地由图1至图4、图6A-B和图7A-C中所描绘的部件来实现。例如,过程1600和过程1800的操作可由数字助理系统700来实现。本领域的普通技术人员会清楚地知道如何基于在图1-图4、图6A-图6B和图7A-图7C中所描绘的部件来实现其他过程。
8.使用多个设备来提供数字助理服务的示例性功能。
如上所述,可由一个或多个设备提供数字助理服务。由于设备能力限制,某些设备可能不能够或者不是最佳用于提供某些数字助理服务。例如,智能手表通常具有小的屏幕尺寸并且因此不是最佳用于播放视频。又如,与智能电话不同,电视机顶盒可能不能够提供针对文本消息的语音输出。
图18A至图18E示出了根据各种示例的用于基于多个电子设备的能力来提供数字助理服务的功能。在一些示例中,数字助理(例如,数字助理系统700)由用户设备根据各种示例来实现。在一些示例中,用户设备、服务器(例如,服务器108、设备820)或其组合可以实现数字助理系统(例如,数字助理系统700)。用户设备可使用例如设备200、400、600、820、830、840、1880和/或1882来实现。在一些示例中,用户设备是具有音频输出能力和网络连接性的设备、智能手表、智能电话、膝上型计算机、台式计算机或平板电脑。
如图18A所示,用户804可提供语音输入1886,诸如“向我展示我上周日拍摄的视频”。语音输入1886可表示用户请求(例如,对信息的请求或用于执行任务的请求)。在一些示例中,在设备1880上操作的数字助理接收来自用户804的语音输入1886。设备1880可以是例如客户端设备(例如,可穿戴设备诸如智能手表)。设备1880还可以是类似于上述设备810A的设备,其可包括一个或多个音频输入和输出设备(例如,麦克风和一个或多个扬声器)和一个或多个网络通信接口。设备1880可能或者可能不能够或最佳用于对用户请求作出响应(例如,提供所请求的信息或执行所请求的任务)。例如,设备1880可能不具有显示器或者可能具有不是最佳用于播放视频的小尺寸显示器。
在一些实施方案中,在设备1880上操作的数字助理可获得与能够通信地耦接到设备1880的一个或多个电子设备相关联的能力数据。例如,如图18A所示,在设备1880上操作的数字助理可确定设备820(例如,远程服务器)、设备830(例如,客户端设备诸如用户的智能电话)、设备840(电视机顶盒)通信地耦接到设备1880。可例如经由蓝牙配对、Wi-Fi连接等来进行该确定,类似于上文相对于设备810A所述。基于确定设备820、830和840通信地耦接,在设备1880上操作的数字助理可获得与这些设备相关联的能力数据。在一些示例中,一些设备是设置在设备1880附近的客户端设备,并且一些设备远离设备1880设置。例如,设备1880、设备830和设备840是设置在预先确定的边界(例如,房屋、建筑物、汽车等)内的客户端设备;并且设备820是远程设置的服务器。
在一些示例中,能力数据可包括与能够通信地耦接到设备1880的电子设备相关联的设备能力。设备能力可包括一个或多个物理能力和/或信息能力。设备的物理能力可包括设备的物理属性,诸如设备是否具有显示器、显示器的尺寸、扬声器的数量、网络能力等。设备的信息能力可包括设备能够提供的数据。例如,设备830可存储用户804拍摄的媒体项(例如,视频和照片),并且因此能够向通信地连接到设备830的其他设备提供所存储的媒体项。
在一些示例中,在获得能力数据之前,在设备1880上操作的数字助理可被配置为建立与其他电子设备(例如,设备820、830和/或840)的通信。在一些示例中,可经由直接通信连接(诸如蓝牙、近场通信(NFC)、BTLE(蓝牙低功耗)等)或者经由有线或无线网络(诸如局域Wi-Fi网络)来建立通信。例如,在设备1880上操作的数字助理可经由蓝牙发现来检测设备830,并且经由蓝牙连接通信地耦接到设备830。又如,在设备1880上操作的数字助理可检测Wi-Fi网络并且经由Wi-Fi网络耦接到设备840。又如,当设备830(例如,客户端设备诸如用户的智能电话)与设备1880处于非常接近或在物理上接触时,在设备1880上操作的数字助理可检测近场通信。例如,为了配对设备1880和设备830,用户804可轻击设备1880和设备830,从而在这两个设备之间建立近场通信。又如,在设备1880上操作的数字助理可检测到设备830(例如,客户端设备诸如用户的智能电话)在预先确定的距离内(例如,在蓝牙通信的范围内)并且建立与设备830的连接。例如,当用户804携带设备830接近设备1880时,在设备1880上操作的数字助理检测到设备830在通信范围内,并且因此连接设备1880和设备830。又如,在设备1880上操作的数字助理可基于这两个设备之间的一个或多个先前建立的连接来建立与设备830的连接。例如,在设备1880上操作的数字助理可存储包括其过去连接的设备以及任选地连接参数的日志文件。因此,基于日志文件,在设备1880上操作的数字助理可确定例如之前其已经连接到设备830。基于此类确定,在设备1880上操作的数字助理可再次建立与设备830的连接。
在一些示例中,在获得能力数据之前,在设备1880上操作的数字助理可询问用户804关于访问能够通信地耦接到设备1880的一个或多个设备。例如,在设备1880上操作的数字助理可提供语音输出,诸如“我是否具有您的许可来访问您的电话和电视?”在一些示例中,用户804可用允许访问或拒绝访问的语音输入来应答。响应于接收到语音输入,在设备1880上操作的数字助理可确定其是否被授权来访问通信地耦接到设备1880的设备。例如,如果用户804的语音输入是“好的”,则在设备1880上操作的数字助理可确定其被授权来访问设备830和设备840。如果用户804的语音输入是“不行”,则在设备1880上操作的数字助理可确定其未被授权来访问设备830和设备840。如果用户804的语音输入是“允许访问我的电话,不允许访问我的电视”(例如,用户804可能正通过使用设备840和设备1882(例如,电视显示器)观看另一视频,并且不希望干扰在设备1882上播放的视频),则在设备1880上操作的数字助理可确定其被授权来访问设备830但未被授权来访问用于在设备1882上播放视频的设备840。
参考图18A和图18B,在一些实施方案中,根据能力数据,在设备1880上操作的数字助理可从能够通信地耦接到设备的所述一个或多个电子设备识别用于提供对用户请求的响应的至少一部分的设备。在一些示例中,在设备1880上操作的数字助理可基于语音输入1886来获得用于对用户请求作出响应的一个或多个步骤。用于对用户请求作出响应的所述一个或多个步骤可包括用于提供所请求的信息的步骤和/或用于执行所请求的任务的步骤。例如,基于语音输入1886,诸如“向我展示我上周日拍摄的视频”,设备1880可确定用户请求是查找用户804上周日拍摄的视频并播放该视频。可使用上述自然语言处理技术来进行该确定。
根据所确定的用户请求,在设备1880上操作的数字助理可确定用于对用户请求作出响应所需的一个或多个步骤。例如,在设备1880上操作的数字助理可确定用于播放用户804上周日拍摄的视频的步骤#1是查找用户804上周日拍摄的特定视频;并且步骤#2是播放该特定视频。在一些实施方案中,可在另一设备(例如,设备820诸如远程服务器)上进行对所述一个或多个步骤的确定并向设备1880提供该确定。在一些实施方案中,可使用设备820和设备1880来进行对所述一个或多个步骤的确定。例如,数字助理可在处于前端的设备1880上操作以与用户804进行交互并且在处于后端的设备820上操作以处理用户输入。在一些实施方案中,用于对用户请求作出响应的所述一个或多个步骤可形成执行计划的至少一部分。执行计划可包括用于对用户请求作出响应的步骤和用于执行每个步骤的设备。
在一些实施方案中,在设备1880上操作的数字助理可基于与能够通信地耦接到设备1880的一个或多个电子设备相关联的能力数据来识别用于执行用于对用户请求作出响应的步骤的一个或多个设备。继续以上示例,在设备1880上操作的数字助理可识别用于执行查找用户804上周日拍摄的特定视频的步骤#1的设备;并且识别用于执行播放特定视频的步骤#2的设备。如图18B所示,在设备1880上操作的数字助理可确定:在通信地连接到设备1880的设备(例如,设备820、830和840)中,设备830(例如,客户端设备诸如用户的智能电话)的能力数据指示设备830具有查找用户804上周日拍摄的特定视频的能力。例如,用户804上周日使用设备830拍摄视频,因此设备830的信息能力数据可指示存储在设备830中的文件具有视频格式和上周日的时间戳。因此,在设备1880上操作的数字助理可识别设备830用于执行查找用户804意指的特定视频的步骤#1。
又如,在设备1880上操作的数字助理可确定:在设备820、830和840中,设备840(例如,电视机顶盒)的能力数据指示设备840是用于执行播放视频的步骤#2的最佳设备。例如,设备830和设备840的设备能力数据都可指示这两设备能够播放视频。设备840的设备能力数据还可指示设备840可在其上播放视频的设备1882(例如,电视屏幕)的一个或多个设备属性(例如,显示尺寸/分辨率/扬声器的数量)优于设备830的设备属性。例如,设备1882的显示尺寸大于设备830的显示尺寸。因此,在设备1880上操作的数字助理可识别设备840而不是设备830用于执行播放视频的步骤#2。
在一些实施方案中,如图18B所示,基于对用于执行用于对用户请求作出响应的步骤的设备的确定,在设备1880上操作的数字助理可向用户804提供寻求用于访问被识别用于对用户请求作出响应的设备的确认或许可的语音输出。例如,如图18B所示,在设备1880上操作的数字助理可提供语音输出1883,诸如“我将从您的电话中检索视频并在您的电视上播放该视频,可以继续吗?”参考图18C,在一些示例中,设备1880可接收来自用户804的后续语音输入1885。响应于接收到语音输入1885,在设备1880上操作的数字助理可确定是否将由通信地耦接到设备1880的一个或多个设备提供响应的至少一部分。例如,如果语音输入1885包括“好的”,则在设备1880上操作的数字助理可确定应该从设备830中检索视频并使用设备840(例如,电视机顶盒)在设备1882(例如,电视显示器)上播放。如果语音输入1885包括“不行,在我的电话上播放视频”,则在设备1880上操作的数字助理可确定应该从设备830中检索视频,但是在设备830而不是设备1882上播放。应当理解,在一些示例中,提供寻求确认/许可的语音输出1883和接收后继用户输入1885是可选的。
在一些实施方案中,在提供用于确认或请求使用被识别用于对用户请求作出响应的设备的许可的语音输出之前,数字助理可注释用于对用户请求作出响应的一个或多个步骤并且基于注释来提供语音输出。使用以上示例,在设备1880上操作的数字助理可确定执行特定步骤是否将需要改变设备的状态。例如,为了执行在设备1882(例如,电视显示器)上播放视频的步骤#2,设备840的状态可能被改变(例如,从断电状态改变为通电,从当前正在播放的视频切换到用户请求的视频等)。因此,在设备1880上操作的数字助理可将步骤#2注释为需要改变所识别的设备的状态的步骤。
又如,为了执行查找用户804上周日拍摄的视频的步骤#1,在设备1880上操作的数字助理可确定执行步骤#1将不需要改变设备830的状态。因此,在设备1880上操作的数字助理可不将步骤#1注释为需要改变所识别的设备的状态的步骤。在一些示例中,基于注释,在设备1880上操作的数字助理然后可提供寻求用于使用被识别用于对用户请求作出响应的设备的确认或许可的语音输出。使用以上示例,因为针对所识别的设备840播放视频的步骤#2是改变状态的步骤,所以在设备1880上操作的数字助理可提供寻求用于访问设备840的许可的语音输出。该语音输出可包括例如“我将在您的电视上播放视频,可以继续吗?”并且因为针对所识别的设备830查找视频的步骤#1不是改变状态的步骤,所以在设备1880上操作的数字助理可不提供寻求用于访问设备830的许可的语音输出。
参考图18C,在一些实施方案中,在设备1880上操作的数字助理可使得一个或多个所识别的设备提供对用户请求的响应的至少一部分。例如,在设备1880上操作的数字助理可请求设备830搜索并查找用户804上周日拍摄的视频并将该视频传输到设备840。其还可请求设备840在设备1882(例如,电视)上播放视频。
如上所述,在一些示例中,在获得能力数据之前,在设备1880上操作的数字助理可寻求用于访问能够通信地耦接到设备1880的一个或多个电子设备的确认或许可。例如,在设备1880上操作的数字助理可提供语音输出,诸如“我是否具有您的许可来访问您的电话?”参考图18D,在一些实施方案中,在设备1880上操作的数字助理可提供用于访问能够通信地耦接到设备1880的设备的一个或多个持续时间选项。例如,如图18D所示,在设备1880上操作的数字助理可在设备1880上显示选项1884A-C。选项1884A可包括“此次允许”,指示仅此次允许从设备1880访问设备830。选项1884B可包括“在两个设备都在家中时允许”,指示在两个设备都在预先确定的边界内(例如,在房屋内或在房屋附近)时允许从设备1880访问设备830。选项1884C可包括“始终允许”,指示始终允许从设备1880访问设备830。在一些示例中,数字助理还可提供选项1884D(未示出),其可包括“不允许”,指示拒绝从设备1880访问设备830。在一些实施方案中,可在设备830上显示类似的持续时间选项1887A-D,从而使得设备830的用户(例如,与设备1880的用户可能或者可能不相同的用户)能够控制对设备830的访问。
在一些实施方案中,在设备1880上操作的数字助理可接收来自用户804的对持续时间选项的选择,并且基于所选择的持续时间选项来访问能够通信地耦接到设备1880的设备。例如,如果选择是选项1884A诸如“此次允许”,则在设备1880上操作的数字助理仅此次可访问设备830以查找用户请求的视频。
如上所述,在一些实施方案中,数字助理可使得一个或多个所识别的设备提供对用户请求的响应的至少一部分。在一些实施方案中,在使得所识别的设备提供响应之前,数字助理可获得用户的身份并确定用户是否被授权来接收响应的至少一部分。如图18E所示,例如,设备840可以是在多个用户之间共享的设备(例如,电视机顶盒),因此用户1888可以是被授权来访问设备840的用户。设备830可以是客户端设备,诸如另一用户(例如,用户804)的智能电话。用户1888可能未被授权来访问设备830。在一些示例中,用户1888可提供语音输入1889,诸如“在John的电话上播放他上周日拍摄的视频”。在设备840上操作的数字助理可基于通信地耦接到设备840的设备的能力数据来识别用于提供对用户请求的响应的至少一部分的设备830。在一些实施方案中,在访问设备830以执行用于对用户请求作出响应的步骤之前,在设备840上操作的数字助理可获得用户1888的身份。在一些示例中,获得用户1888的身份可基于语音配置文件。语音配置文件可包括语音生物识别,诸如用户的语音特征(例如,声音模式、声纹、用户的口音等)。语音配置文件可与特定用户相关联并且唯一地识别该用户。例如,用户1888的语音配置文件可包括用户1888的语音特征,并且因此唯一地识别用户1888。在一些示例中,语音配置文件还可协助上述自然语言处理来更准确地确定用户意图。例如,可使用包括用户的口音数据的语音配置文件来更准确地执行语音文本转换过程。
参考图18E,在设备840上操作的数字助理可将语音输入1889中的语音特征与设备830的一个或多个被授权用户的一个或多个语音配置文件进行比较。基于该比较,在设备840上操作的数字助理可确定语音输入1889中的语音特征与针对设备830的被授权用户的语音配置文件中的任一个语音配置文件都不匹配。因此,在设备840上操作的数字助理可确定用户1888未被授权来访问设备830,并且因此未被授权来访问存储在设备830中的视频。
9.用于使用多个设备来提供数字助理服务的过程。
图19A至图19D示出了根据各种示例的用于操作用于基于对事件的通知来提供数字助理服务的数字助理的过程1900。例如使用实现数字助理的一个或多个电子设备来执行过程1900。在一些示例中,使用客户端-服务器系统(例如,系统100)来执行过程1900,并且在服务器(例如,DA服务器106)和客户端设备之间以任何方式来划分过程1900的框。在其他示例中,在服务器和多个客户端设备(例如,移动电话和智能手表)之间划分过程1900的框。因此,虽然过程1900的部分在本文中被描述为由客户端-服务器系统的特定设备执行,但应当理解,过程1900不限于此。在其他示例中,使用仅客户端设备(例如,用户设备104、设备1880)或仅多个客户端设备来执行过程1900。在过程1900中,一些框被任选地组合,一些框的次序被任选地改变,并且一些框被任选地省略。在一些示例中,可结合过程1900来执行附加步骤。
参考图19A,在框1902处,从第一用户接收表示用户请求的第一语音输入。在框1904处,在获得与能够通信地耦接到第一电子设备的所述一个或多个电子设备相关联的能力数据之前,在第一电子设备和能够通信地耦接到第一电子设备的所述一个或多个电子设备之间建立连接。在一些示例中,第一电子设备和能够通信地耦接到第一电子设备的电子设备设置在预先确定的边界(例如,房屋)内。在一些示例中,建立连接基于第一电子设备和能够通信地耦接到第一电子设备的所述一个或多个电子设备之间的近场通信。在一些示例中,建立连接基于检测到能够通信地耦接到第一电子设备的所述一个或多个电子设备在距第一电子设备的预先确定的距离内。在一些示例中,建立连接基于第一电子设备和能够通信地耦接到第一电子设备的所述一个或多个电子设备之间的一个或多个先前建立的连接。
在框1906处,在获得与能够通信地耦接到第一电子设备的所述一个或多个电子设备相关联的能力数据之前,询问第一用户关于通过第一电子设备来访问能够通信地耦接到第一电子设备的所述一个或多个电子设备。在框1908处,从第一用户接收第三语音输入。第三语音输入可指示第一电子设备是否被授权来访问其他设备。在框1910处,响应于接收到第三语音输入,确定第一电子设备是否被授权来访问能够通信地耦接到第一电子设备的所述一个或多个电子设备。
在框1912处,提供用于访问能够通信地耦接到第一电子设备的所述一个或多个电子设备的一个或多个持续时间选项。持续时间选项可包括,例如,此次允许、在两个设备都在家中时允许、始终允许、不允许。在框1914处,从第一用户接收对持续时间选项的选择。在框1916处,基于所选择的持续时间选项来访问能够通信地耦接到第一电子设备的所述一个或多个电子设备。
参考图19B,在框1918处,获得与能够通信地耦接到第一电子设备的所述一个或多个电子设备相关联的能力数据。在框1920处,为了获得能力数据,获得与能够通信地耦接到第一电子设备的所述一个或多个电子设备相关联的设备能力。在框1922处,设备能力包括与能够通信地耦接到第一电子设备的所述一个或多个电子设备相关联的一个或多个物理属性。在框1924处,设备能力包括能够由能够通信地耦接到第一电子设备的所述一个或多个电子设备提供的数据。
在框1926处,根据能力数据,从能够通信地耦接到第一电子设备的所述一个或多个电子设备识别用于提供对用户请求的响应的至少一部分的第二电子设备。在框1928处,为了识别第二电子设备,基于第一语音输入来获得用于对用户请求作出响应的一个或多个步骤。在一些示例中,在框1930处,为了获得所述一个或多个步骤,从远离第一电子设备定位的第三电子设备(例如,服务器)接收用于对用户请求作出响应的计划。在一些示例中,在框1932处,由第一电子设备(例如,客户端设备诸如可穿戴设备)确定用于对用户请求作出响应的计划,其中该计划包括用于对用户请求作出响应的一个或多个步骤。
在框1934处,基于能力数据来识别用于执行用于对用户请求作出响应的至少一个步骤的第二电子设备(例如,设备840诸如电视机顶盒)。在框1936处,基于能力数据来识别用于执行用于对用户请求作出响应的剩余步骤的一个或多个另外的电子设备。
参考图19C,在框1938处,向第一用户提供关于通过第二电子设备提供响应的至少一部分的第一语音输出。例如,第一语音输出可以是请求用于访问第二电子设备的授权的语音输出。在框1940处,为了提供第一语音输出,注释用于对用户请求作出响应的一个或多个步骤。例如,一些步骤可被注释为改变状态的步骤,并且因此可能需要授权;并且一些步骤可不被注释,并且因此可能不需要授权。在框1942处,基于对一个或多个步骤的注释来向第一用户提供第一语音输出。
在框1944处,从第一用户接收第二语音输入。第二语音输入可指示第一用户是否授权访问某些设备。在框1946处,响应于接收到第二语音输入,确定是否将由第二电子设备提供响应的至少一部分。
在框1948处,在一些示例中,在使得第二电子设备向第一用户提供响应的至少一部分之前,获得第一用户的身份。在框1950处,基于语音配置文件来获得身份。在框1952处,基于第一用户的身份来确定第一用户是否被授权来接收对用户请求的响应的至少一部分。
参考图19D,在框1954处,使得第二电子设备提供对用户请求的响应的至少一部分。在框1956处,使得第二电子设备执行用于对用户请求作出响应的至少一个步骤。在框1958处,使得一个或多个另外的电子设备执行用于对用户请求作出响应的剩余步骤。
以上参考图19A至图19D描述的操作任选地由图1至图4、图6A-B和图7A-C中所描绘的部件来实现。例如,过程1900的操作可由数字助理系统700来实现。本领域的普通技术人员会清楚地知道如何基于在图1-图4、图6A-图6B和图7A-图7C中所描绘的部件来实现其他过程。
根据一些具体实施,提供一种计算机可读存储介质(例如,非暂态计算机可读存储介质),该计算机可读存储介质存储供电子设备的一个或多个处理器执行的一个或多个程序,该一个或多个程序包括用于执行本文所述方法或过程中的任一个的指令。
根据一些具体实施,提供了一种电子设备(例如,便携式电子设备),该电子设备包括用于执行本文所述的方法和过程中的任一个的装置。
根据一些具体实施,提供了一种电子设备(例如,便携式电子设备),该电子设备包括处理单元,该处理单元被配置为执行本文所述的方法和过程中的任一个。
根据一些具体实施,提供了一种电子设备(例如,便携式电子设备),该电子设备包括一个或多个处理器和存储用以由一个或多个处理器执行的一个或多个程序的存储器,该一个或多个程序包括用于执行本文所描述的方法和过程中的任一个的指令。
出于解释的目的,前面的描述是通过参考具体实施方案来描述的。然而,上面的例示性论述并非旨在是穷尽的或将本发明限制为所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择并描述这些实施方案是为了最好地解释这些技术的原理及其实际应用。本领域的其他技术人员由此能够最好地利用这些技术以及具有适合于所预期的特定用途的各种修改的各种实施方案。
虽然参照附图对本公开以及示例进行了全面的描述,但应当注意,各种变化和修改对于本领域内的技术人员而言将变得显而易见。应当理解,此类变化和修改被认为被包括在由权利要求书所限定的本公开和示例的范围内。
如上所述,本技术的一个方面在于采集和使用得自各种来源的数据,以获得用户的身份。如上所述,用于验证用户的数据可包括语音生物识别、面部识别数据、指纹等。本公开设想,在一些实例中,这些所采集的数据可包括唯一地识别或可用于联系或定位特定人员的个人信息数据。如上所述,可获得客户端设备的信息能力。客户端设备的信息能力可包括个人信息数据。此类个人信息数据可包括个人识别数据、人口数据、基于位置的数据、电话号码、电子邮件地址、家庭地址或任何其他识别信息。
本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,该个人信息数据可用于递送用户较感兴趣的目标内容。因此,使用此类个人信息数据使得能够对所递送的内容进行有计划的控制。此外,本公开还预期个人信息数据有益于用户的其他用途。
本公开还预期负责此类个人信息数据的收集、分析、公开、发送、存储或其他用途的实体将遵守已确立的隐私政策和/或隐私实践。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个人信息应当被收集用于实体的合法且合理的用途,并且不在这些合法使用之外共享或出售。另外,此类收集应当仅在用户知情同意之后进行。另外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据的访问,并且确保能够访问个人信息数据的其他人遵守他们的隐私政策和程序。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。
不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就广告递送服务而言,本发明的技术可被配置为在注册服务期间允许用户选择“加入”或“退出”参与对个人信息数据的收集。又如,用户可选择不为目标内容递送服务提供位置信息。再如,用户可选择不提供精确的位置信息,但准许传输位置区域信息。
因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可通过基于非个人信息数据或绝对最低限度的个人信息诸如与用户相关联的设备所请求的内容、对内容递送服务可用的其他非个人信息或公开可用信息来推断偏好,从而选择内容并递送给用户。
多任务环境中的智能数字助理
相关申请的交叉引用
本申请要求2016年6月10日提交的名称为“INTELLIGENT DIGITAL ASSISTANTIN AMULTI-TASKING ENVIRONMENT”的美国临时专利申请62/348,728;其据此全文以引用方式并入本文以用于全部目的。
技术领域
本公开内容总体涉及数字助理,更具体地讲,涉及与用户交互以在多任务环境中执行任务的数字助理。
背景技术
数字助理越来越受欢迎。在台式计算机或平板电脑环境中,用户经常执行多项任务,包括搜索文件或信息、管理文件或文件夹、播放电影或歌曲、编辑文档、调整系统配置、发送电子邮件等。对用户而言,手动并行地执行多项任务以及经常在任务之间切换通常是麻烦且不便的。因此,期望数字助理能够基于用户的语音输入协助用户在多任务环境中执行一些任务。
发明内容
用于协助用户在多任务环境中执行任务的一些现有技术可包括例如口述。通常,用户可能需要在多任务环境中手动执行许多其他任务。作为一个示例,用户可能昨天一直在其台式计算机上制作演示文稿,并且可能希望继续制作该演示文稿。用户通常需要在其台式计算机上手动定位演示文稿,打开演示文稿,然后继续编辑演示文稿。
作为另一个示例,当用户远离其台式计算机时,用户可能一直在其智能电话上预订航班。当台式计算机可用时,用户可能希望继续预订航班。在现有技术中,用户需要先启动Web浏览器,然后重新启动用户台式计算机上的航班预订过程。换句话讲,用户先前在智能电话上进行的航班预订进程可能不会在用户的台式计算机上继续。
作为另一个示例,用户可能在其台式计算机上编辑文档并希望更改系统配置,诸如更改屏幕的亮度水平、打开蓝牙连接等。在现有技术中,用户可能需要停止编辑文档,查找和启动亮度配置应用,并手动更改设置。在多任务环境中,一些现有技术不能基于用户的语音输入执行上述示例中所述的任务。因此,在多任务环境中提供支持语音的数字助理是被期望的并且是有利的。
本发明提供用于操作数字助理的系统和过程。根据一个或多个示例,一种方法包括,在具有存储器和一个或多个处理器的用户设备处接收来自用户的第一语音输入。该方法还包括识别与用户设备相关联的上下文信息,以及基于第一语音输入和上下文信息确定用户意图。该方法还包括确定用户意图是使用搜索方法还是对象管理方法来执行任务。搜索方法被配置为搜索存储在用户设备内部或外部的数据,并且对象管理方法被配置为管理与用户设备相关联的对象。该方法还包括,根据确定用户意图将使用搜索方法来执行任务,使用搜索方法来执行任务。该方法还包括,根据确定用户意图将使用对象管理方法来执行任务,使用对象管理方法来执行任务。
根据一个或多个示例,一种方法包括,在具有存储器和一个或多个处理器的用户设备处接收来自用户的语音输入以执行任务。该方法还包括,识别与用户设备相关联的上下文信息,以及基于语音输入和与用户设备相关联的上下文信息来确定用户意图。该方法还包括,根据用户意图,确定将在用户设备处还是在可通信地连接到用户设备的第一电子设备处执行任务。该方法还包括,根据确定任务将在用户设备处执行并且用于执行任务的内容被远程定位,接收用于执行任务的内容。该方法还包括,根据确定任务将在第一电子设备处执行并且用于执行任务的内容被远程定位到第一电子设备,向第一电子设备提供用于执行任务的内容。
根据一个或多个示例,一种方法包括,在具有存储器和一个或多个处理器的用户设备处接收来自用户的语音输入,以管理用户设备的一项或多项系统配置。用户设备被配置为同时提供多个用户界面。该方法还包括识别与用户设备相关联的上下文信息,以及基于语音输入和上下文信息来确定用户意图。该方法还包括确定用户意图是指示信息请求还是指示用于执行任务的请求。该方法还包括,根据确定用户意图指示信息请求,提供对信息请求的口语响应。该方法还包括,根据确定用户意图指示用于执行任务的请求,实例化与用户设备相关联的过程以执行任务。
用于执行这些功能的可执行指令任选地被包括在被配置用于由一个或多个处理器执行的非暂态计算机可读存储介质或其他计算机程序产品中。用于执行这些功能的可执行指令任选地被包括在被配置用于由一个或多个处理器执行的暂态计算机可读存储介质或其他计算机程序产品中。
附图说明
为了更好地理解各种所述实施方案,应该结合以下附图参考下面的具体实施方式,在附图中,类似的附图标号在所有附图中指示对应的部分。
图1是示出了根据各种示例的用于实现数字助理的系统和环境的框图。
图2A是示出了根据一些实施方案的实现数字助理的客户端侧部分的便携式多功能设备的框图。
图2B是示出了根据各种示例的用于事件处理的示例性部件的框图。
图3示出了根据各种示例的实现数字助理的客户端侧部分的便携式多功能设备。
图4是根据各种示例的具有显示器和触敏表面的示例性多功能设备的框图。
图5A示出了根据各种示例的用于便携式多功能设备处的应用的菜单的示例性用户界面。
图5B示出了根据各种示例的用于具有与显示器分开的触敏表面的多功能设备的示例性用户界面。
图6A示出了根据各种示例的个人电子设备。
图6B是示出了根据各种示例的个人电子设备的框图。
图7A是示出了根据各种示例的数字助理系统或其服务器部分的框图。
图7B示出了根据各种示例的图7A所示的数字助理的功能。
图7C示出了根据各种示例的知识本体的一部分。
图8A-图8F示出了根据各种示例的通过数字助理使用搜索方法或对象管理方法执行任务的功能。
图9A-图9H示出了根据各种示例的通过数字助理使用搜索方法执行任务的功能。
图10A-图10B示出了根据各种示例的通过数字助理使用对象管理方法执行任务的功能。
图11A-图11D示出了根据各种示例的通过数字助理使用搜索方法执行任务的功能。
图12A-图12D示出了根据各种示例的通过数字助理使用搜索方法或对象管理方法执行任务的功能。
图13A-图13C示出了根据各种示例的通过数字助理使用对象管理方法执行任务的功能。
图14A-图14D示出了根据各种示例的通过数字助理使用远程定位的内容在用户设备处执行任务的功能。
图15A-图15D示出了根据各种示例的通过数字助理使用远程定位的内容在第一电子设备处执行任务的功能。
图16A-图16C示出了根据各种示例的通过数字助理使用远程定位的内容在第一电子设备处执行任务的功能。
图17A-图17E示出了根据各种示例的通过数字助理使用远程定位的内容在用户设备处执行任务的功能。
图18A-图18F示出了根据各种示例的通过数字助理响应于用户的信息请求而提供系统配置信息的功能。
图19A-图19D示出了根据各种示例的通过数字助理响应于用户请求而执行任务的功能。
图20A-图20G示出了根据各种示例的用于操作数字助理的示例性过程的流程图。
图21A-图21E示出了根据各种示例的用于操作数字助理的示例性过程的流程图。
图22A-图22D示出了根据各种示例的用于操作数字助理的示例性过程的流程图。
图23示出了根据各种示例的电子设备的框图。
具体实施方式
在以下对本公开和实施方案的描述中将引用附图,在附图中以例示的方式示出了可被实践的特定实施方案。应当理解,在不脱离本公开的范围的情况下,可实践其他实施方案和示例并且可作出改变。
用于在多任务环境中提供数字助理的技术是可取的。如本文所述,用于在多任务环境中提供数字助理的技术被期望用于各种目的,诸如减少搜索对象或信息的麻烦,实现高效的对象管理,保持在用户设备和另一电子设备处执行的任务之间的连续性,以及减少用户手动调节系统配置的工作量。通过允许用户在多任务环境中使用语音输入来操作数字助理以便执行各种任务,此类技术是有利的。此外,此类技术减轻了与在多任务环境中执行各种任务相关联的麻烦或不便。此外,通过允许用户使用语音执行任务,在执行需要上下文切换的任务时,他们能够保持双手不离开键盘或鼠标——允许数字助理像用户的“第三只手”一样高效地执行任务。应当理解,通过允许用户使用语音执行任务,它允许用户更高效地完成可能需要与多个应用进行多项交互的任务。例如,搜索图像并通过电子邮件将它们发送给某个人可能需要打开搜索界面,输入搜索条件,选择一个或多个结果,打开电子邮件以便撰写,将得到的文件复制或移动到打开的电子邮件,填写电子邮件地址并发送电子邮件。此类任务可以通过语音命令更高效地完成,诸如“查找来自x日期的图片,并将它们发送给我的妻子”。用于移动文件、在互联网上搜索信息、撰写消息等类似请求都可使用语音更高效地完成,同时允许用户使用双手执行其他任务。
尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一个元素与另一个元素区分开。例如,在不脱离各种所述示例的范围的情况下,第一存储可被称为第二存储,并且类似地,第二存储可被称为第一存储。第一存储和第二存储可都是存储,并且在一些情况下,可以是独立且不同的存储。
在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个”和“该”旨在也包括复数形式,除非上下文另外明确地指示。还应当理解,本文中所使用的术语“和/或”是指并且涵盖相关联地列出的项目中的一个或多个项目的任何和全部可能的组合。应当进一步理解的是,术语“包括”和/或“包含”当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
根据上下文,术语“如果”可被解释为意指“当......时”或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定......”或“如果检测到[所陈述的条件或事件]”可以被解释为意指“在确定......时”或“响应于确定......”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
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)的设备、iPod 设备和设备。便携式多功能设备的其他示例可包括但不限于膝上型计算机或平板电脑。此外,在一些示例中,用户设备104可以是非便携式多功能设备。具体地讲,用户设备104可以是台式计算机、游戏机、电视或电视机顶盒。在一些示例中,用户设备104可在多任务环境中操作。多任务环境允许用户操作设备104以并行执行多项任务。例如,多任务环境可以是台式计算机或膝上型计算机环境,其中设备104可响应于从物理用户界面设备接收的用户输入执行一项任务,并且同时响应于用户的语音输入执行另一项任务。在一些示例中,用户设备104可包括触敏表面(例如,触摸屏显示器和/或触控板)。此外,用户设备104可任选地包括一个或多个其他物理用户界面设备,诸如物理键盘、鼠标、和/或操纵杆。下文更详细地描述了电子设备诸如多功能设备的各种示例。
一个或多个通信网络110的示例可包括局域网(LAN)和广域网(WAN),例如互联网。一个或多个通信网络110可使用任何已知的网络协议来实现,包括各种有线或无线协议,诸如例如以太网、通用串行总线(USB)、火线、全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi、互联网协议语音(VoIP)、Wi-MAX、或任何其他合适的通信协议。
服务器系统108可在计算机的一个或多个独立式数据处理装置或分布式网络上实施。在一些示例中,服务器系统108还可采用第三方服务提供方(例如,第三方云服务提供方)的各种虚拟设备和/或服务来提供服务器系统108的潜在计算资源和/或基础结构资源。
在一些示例中,用户设备104可经由第二用户设备122来与DA服务器106进行通信。第二用户设备122可与用户设备104相似或相同。例如,第二用户设备122可类似于下文参考图2A、图4和图6A-图6B描述的设备200、400或600。用户设备104可被配置为经由直接通信连接诸如蓝牙、NFC、BTLE等或者经由有线或无线网络诸如局域Wi-Fi网络而通信地耦接至第二用户设备122。在一些示例中,第二用户设备122可被配置为充当用户设备104与DA服务器106之间的代理。例如,用户设备104的DA客户端102可被配置为经由第二用户设备122来向DA服务器106传输信息(例如,在用户设备104处接收的用户请求)。DA服务器106可处理该信息并经由第二用户设备122来将相关的数据(例如,响应于用户请求的数据内容)返回到用户设备104。
在一些示例中,用户设备104可被配置为将针对数据的缩略请求传送至第二用户设备122,以减少从用户设备104传输的信息量。第二用户设备122可被配置为确定添加到缩略请求的补充信息,以生成完整的请求,从而传输到DA服务器106。该系统架构可有利地通过使用具有较强通信能力和/或电池电力的第二用户设备122(例如,移动电话、膝上型计算机、平板电脑等)作为至DA服务器106的代理而允许具有有限通信能力和/或有限电池电力的用户设备104(例如,手表或类似的紧凑型电子设备)访问由DA服务器106所提供的服务。虽然图1中仅示出两个用户设备104和122,但应当理解,系统100可包括在此代理配置中被配置为与DA服务器系统106进行通信的任意数量和类型的用户设备。
虽然图1中所示的数字助理可包括客户端侧部分(例如,DA客户端102)和服务器侧部分(例如,DA服务器106)两者,但在一些示例中,数字助理的功能可被实现为被安装在用户设备处的独立式应用。此外,数字助理的客户端部分和服务器部分之间的功能划分在不同的具体实施中可变化。例如,在一些示例中,DA客户端可以是仅提供面向用户的输入和输出处理功能并将数字助理的所有其他功能委派给后端服务器的瘦客户端。
2.电子设备
现在将注意力转至用于实现数字助理的客户端侧部分的电子设备的实施方案。图2A是示出了根据一些实施方案具有触敏显示器系统212的便携式多功能设备200的框图。触敏显示器212有时为了方便被叫做“触摸屏”,并且有时被称为或被叫做“触敏显示器系统”。设备200包括存储器202(其任选地包括一个或多个计算机可读存储介质)、存储器控制器222、一个或多个处理单元(CPU)220、外围设备接口218、RF电路208、音频电路210、扬声器211、麦克风213、输入/输出(I/O)子系统206、其他输入控制设备216和外部端口224。设备200任选地包括一个或多个光学传感器264。设备200任选地包括一个或多个接触强度传感器265,该一个或多个接触强度传感器用于检测设备200(例如,触敏表面,诸如设备200的触敏显示器系统212)上的接触的强度。设备200任选地包括用于在设备200上生成触觉输出的一个或多个触觉输出发生器267(例如,在触敏表面诸如设备200的触敏显示器系统212或设备400的触控板455上生成触觉输出)。这些部件任选地通过一个或多个通信总线或信号线203来进行通信。
如在本说明书和权利要求书中所使用的那样,触敏表面上的接触的术语“强度”是指触敏表面上的接触(例如,手指接触)的力或压力(每单位面积的力),或是指触敏表面上的接触的力或压力的替代物(代用物)。接触的强度具有值范围,该值范围包括至少四个不同的值并且更典型地包括上百个不同的值(例如,少256个)。接触的强度任选地使用各种方法和各种传感器或传感器的组合来确定(或测量)。例如,在触敏表面下方或相邻于触敏表面的一个或多个力传感器任选地用于测量触敏表面上的不同点处的力。在一些具体实施中,来自多个力传感器的力测量被合并(例如,加权平均数),以确定估计的接触力。类似地,触笔的压敏顶端任选地用于确定触笔在触敏表面上的压力。另选地,在触敏表面上检测到的接触面积的尺寸和/或其变化、邻近接触的触敏表面的电容和/或其变化、和/或邻近接触的触敏表面的电阻和/或其变化任选地被用作触敏表面上的接触的力或压力的替代物。在一些具体实施中,接触力或压力的替代测量直接用于确定是否已超过强度阈值(例如,强度阈值以与替代物测量对应的单位来描述)。在一些具体实施中,接触力或压力的替代测量被转换成估计的力或压力,并且估计的力或压力用于确定是否已超过强度阈值(例如,强度阈值为以压力的单位进行测量的压力阈值)。使用接触的强度作为用户输入的属性,从而允许用户访问用户在尺寸更小的设备上可能本来不能访问的附加设备功能,该尺寸更小的设备具有有限的实地面积以用于(例如,在触敏显示器上)显示示能表示和/或接收用户输入(例如,经由触敏显示器、触敏表面或物理控件/机械控件,诸如旋钮或按钮)。
如本说明书和权利要求书中所使用的,术语“触觉输出”是指将由用户利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备的部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物理位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与用户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触的情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感与设备或设备的部件的物理特征的所感知的变化对应。例如,触敏表面(例如,触敏显示器或触控板)任选地由用户解释为对物理致动按钮的“按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如“按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压(例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。作为另一个示例,即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用户解释为或感测为触敏表面的“粗糙度”。虽然由用户对触摸的此类解释将受到用户的个体化感官知觉的限制,但是有许多触摸的感官知觉是大多数用户共有的。因此,当触觉输出被描述为与用户的特定感官知觉(例如,“松开点击”、“按下点击”、“粗糙度”)对应时,除非另外陈述,否则所生成的触觉输出与设备或其部件的物理位移对应,该物理位移将会生成典型(或普通)用户的所描述的感官知觉。
应当理解,设备200仅是便携式多功能设备的一个示例,并且设备200任选地具有比所示出的更多或更少的部件,任选地组合两个或更多个部件,或者任选地具有这些部件的不同配置或布置。图2A中所示的各种部件以硬件、软件或硬件与软件两者的组合来实现,包括一个或多个信号处理电路和/或专用集成电路。
存储器202可包括一个或多个计算机可读存储介质。该计算机可读存储介质可以是有形的和非暂态的。存储器202可包括高速随机存取存储器并且还可包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备或其他非易失性固态存储器设备。存储器控制器222可控制设备200的其他部件访问存储器202。
在一些示例中,存储器202的非暂态计算机可读存储介质可用于存储指令(例如,用于执行下文描述的过程1200的各方面)以供指令执行系统、装置或设备诸如基于计算机的系统、包含处理器的系统或可从指令执行系统、装置或设备获取指令并执行指令的其他系统使用或与其结合。在其他示例中,指令(例如,用于执行下文描述的过程1200的各方面)可被存储在服务器系统108的非暂态计算机可读存储介质(未示出)上,或者可在存储器202的非暂态计算机可读存储介质与服务器系统108的非暂态计算机可读存储介质之间划分。在本文档的上下文中,“非暂态计算机可读存储介质”可以是可包括或存储程序以供指令执行系统、装置和设备使用或与其结合的任何介质。
外围设备接口218可用于将设备的输入外围设备和输出外围设备耦接到CPU 220和存储器202。一个或多个处理器220运行或执行存储在存储器202中的各个软件程序和/或指令集,以执行设备200的各种功能以及处理数据。在一些实施方案中,外围设备接口218、CPU 220和存储器控制器222可在单个芯片诸如芯片204上实现。在一些其他实施方案中,它们可在单独的芯片上实现。
RF(射频)电路208接收和发送也被叫做电磁信号的RF信号。RF电路208将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号来与通信网络以及其他通信设备进行通信。RF电路208任选地包括用于执行这些功能的熟知的电路,包括但不限于天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编解码芯片组、用户身份模块(SIM)卡、存储器等等。RF电路208任选地通过无线通信来与网络以及其他设备进行通信,该网络为诸如互联网(也被称为万维网(WWW))、内联网、和/或无线网络,诸如蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN)。RF电路208任选地包括用于诸如通过近程通信无线电部件来检测近场通信(NFC)场的熟知的电路。无线通信任选地使用多种通信标准、协议和技术中的任一种,包括但不限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、演进、纯数据(EV-DO)、HSPA、HSPA+、双小区HSPA(DC-HSPDA)、长期演进(LTE)、近场通信(NFC)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、蓝牙低功耗(BTLE)、无线保真(Wi-Fi)(例如,IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、IEEE 802.11n和/或IEEE802.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进行检索和/或被传输至该存储器和/或RF电路。在一些实施方案中,音频电路210还包括耳麦插孔(例如,图3中的312)。该耳麦插孔提供音频电路210与可移除的音频输入/输出外围设备之间的接口,该可移除的音频输入/输出外围设备诸如仅输出的耳机或者具有输出(例如,单耳耳机或双耳耳机)和输入(例如,麦克风)两者的耳麦。
I/O子系统206将设备200上的输入/输出外围设备诸如触摸屏212和其他输入控制设备216耦接至外围设备接口218。I/O子系统206任选地包括显示控制器256、光学传感器控制器258、强度传感器控制器259、触觉反馈控制器261,以及用于其他输入或控制设备的一个或多个输入控制器260。该一个或多个输入控制器260从其他输入控制设备216接收电信号/将电信号发送到其他输入控制设备216。其他输入控制设备216任选地包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击轮等。在一些另选实施方案中,输入控制器260任选地耦接至以下各项中的任一者(或不耦接至以下各项中的任一者):键盘、红外线端口、USB端口以及指针设备诸如鼠标。该一个或多个按钮(例如,图3中的308)任选地包括用于扬声器211和/或麦克风213的音量控制的增大/减小按钮。该一个或多个按钮任选地包括下压按钮(例如,图3中的306)。
快速按下下压按钮可脱离触摸屏212的锁定或者开始使用触摸屏上的手势来对设备进行解锁的过程,如在2005年12月23日提交的名称为“Unlocking a Device byPerforming Gestures on an Unlock Image”(通过在解锁图像上执行手势来解锁设备)的美国专利No.7,657,849的美国专利申请11/322,549中所述的,该专利申请据此全文以引用方式并入本文。更长地按下下压按钮(例如,306)可使设备200开机或关机。用户能够对一个或多个按钮的功能进行自定义。触摸屏212用于实现虚拟按钮或软按钮以及一个或多个软键盘。
触敏显示器212提供设备和用户之间的输入接口和输出接口。显示控制器256从触摸屏212接收电信号和/或将电信号发送至触摸屏212。触摸屏212向用户显示视觉输出。该视觉输出可包括图形、文本、图标、视频、以及它们的任意组合(统称为“图形”)。在一些实施方案中,一些视觉输出或全部的视觉输出可对应于用户界面对象。
触摸屏212具有基于触觉和/或触感接触来接受来自用户的输入的触敏表面、传感器或传感器组。触摸屏212和显示控制器256(与存储器202中的任何相关联的模块和/或指令集一起)检测触摸屏212上的接触(和该接触的任何移动或中断),并且将所检测到的接触转换为与被显示在触摸屏212上的用户界面对象(例如,一个或多个软键、图标、网页或图像)的交互。在一个示例性实施方案中,触摸屏212和用户之间的接触点与用户的手指对应。
触摸屏212可使用LCD(液晶显示器)技术、LPD(发光聚合物显示器)技术、或LED(发光二极管)技术,但是在其他实施方案中可使用其他显示技术。触摸屏212和显示控制器256可使用现在已知的或以后将开发出的多种触摸感测技术中的任何触摸感测技术以及其他接近传感器阵列或用于确定与触摸屏212的一个或多个接触点的其他元素来检测接触及其任何移动或中断,该多种触摸感测技术包括但不限于电容性技术、电阻性技术、红外技术和表面声波技术。在一个示例性实施方案中,使用投射式互电容感测技术,诸如在Apple Inc.(Cupertino,California)的和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”的美国专利申请No.11/381,313;(2)2004年5月6日提交的名称为“Multipoint Touchscreen”的美国专利申请No.10/840,862;(3)2004年7月30日提交的名称为“Gestures For Touch Sensitive InputDevices”的美国专利申请No.10/903,964;(4)2005年1月31日提交的名称为“Gestures ForTouch Sensitive Input Devices”的美国专利申请No.11/048,264;(5)2005年1月18日提交的名称为“Mode-Based Graphical User Interfaces For Touch Sensitive InputDevices”的美国专利申请No.11/038,590;(6)2005年9月16日提交的名称为“VirtualInput Device Placement On A Touch Screen User Interface”的美国专利申请No.11/228,758;(7)2005年9月16日提交的名称为“Operation Of A Computer With A TouchScreen Interface”的美国专利申请No.11/228,700;(8)2005年9月16日提交的名称为“Activating Virtual Keys Of A Touch-Screen Virtual Keyboard”的美国专利申请No.11/228,737;以及(9)2006年3月3日提交的名称为“Multi-Functional Hand-HeldDevice”的美国专利申请No.11/367,749。所有这些专利申请全文以引用方式并入本文。
触摸屏212可具有超过100dpi的视频分辨率。在一些实施方案中,触摸屏具有约160dpi的视频分辨率。用户可使用任何合适的对象或附加物诸如触笔、手指等来与触摸屏212接触。在一些实施方案中,将用户界面设计用来主要与基于手指的接触和手势一起工作,由于手指在触摸屏上的接触面积较大,因此这可能不如基于触笔的输入那样精确。在一些实施方案中,设备将基于手指的粗略输入翻译为精确的指针/光标位置或命令,以用于执行用户所期望的动作。
在一些实施方案中,除了触摸屏之外,设备200可包括用于激活或去激活特定功能的触控板(未示出)。在一些实施方案中,该触控板为设备的触敏区域,该触敏区域与触摸屏不同,其不显示视觉输出。触控板可以是与触摸屏212分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸部分。
设备200还包括用于为各种部件供电的电力系统262。电力系统262可包括电力管理系统、一个或多个电源(例如,电池或交流电(AC))、再充电系统、电力故障检测电路、功率变换器或逆变器、电源状态指示器(例如,发光二极管)和与便携式设备中的电力的生成、管理和分配相关联的任何其他部件。
设备200还可包括一个或多个光学传感器264。图2A示出了耦接至I/O子系统206中的光学传感器控制器258的光学传感器。光学传感器264可包括电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。光学传感器264从环境接收通过一个或多个透镜而投射的光,并且将光转换为表示图像的数据。结合成像模块243(也称为相机模块),光学传感器264可捕获静态图像或视频。在一些实施方案中,光学传感器位于与设备前部上的触摸屏显示器212相背对的设备200的后部上,使得触摸屏显示器可被用作用于静态图像和/或视频图像采集的取景器。在一些实施方案中,光学传感器位于设备前部,使得当用户在触摸屏显示器上查看其他视频会议参与者时可获得该用户的图像以用于视频会议。在一些实施方案中,光学传感器264的位置可由用户改变(例如,通过旋转设备外壳中的透镜和传感器),使得单个光学传感器264可与触摸屏显示器一起使用,以用于视频会议和静态图像和/或视频图像采集两者。
设备200任选地还包括一个或多个接触强度传感器265。图2A示出了耦接至I/O子系统206中的强度传感器控制器259的接触强度传感器。接触强度传感器265任选地包括一个或多个压阻应变仪、电容式力传感器、电气力传感器、压电力传感器、光学力传感器、电容式触敏表面或其他强度传感器(例如,用于测量触敏表面上的接触的力(或压力)的传感器)。接触强度传感器265从环境接收接触强度信息(例如,压力信息或压力信息的代用物)。在一些实施方案中,至少一个接触强度传感器与触敏表面(例如,触敏显示器系统212)并置排列或邻近。在一些实施方案中,至少一个接触强度传感器位于设备200的后部上,与位于设备200的前部上的触摸屏显示器212相背对。
设备200还可包括一个或多个接近传感器266。图2A示出了耦接至外围设备接口218的接近传感器266。另选地,接近传感器266可耦接到I/O子系统206中的输入控制器260。接近传感器266可如以下美国专利申请中所述的那样执行:No.11/241,839,名称为“Proximity Detector In Handheld Device”;No.11/240,788,名称为“ProximityDetector In Handheld Device”;No.11/620,702,名称为“Using Ambient Light SensorTo Augment Proximity Sensor Output”;No.11/586,862,名称为“Automated ResponseTo And Sensing Of User Activity In Portable Devices”;以及No.11/638,251,名称为“Methods And Systems For Automatic Configuration Of Peripherals”,这些美国专利申请据此全文以引用方式并入本文。在一些实施方案中,当多功能设备被置于用户的耳朵附近时(例如,当用户正在进行电话呼叫时),接近传感器关闭并且禁用触摸屏212。
设备200任选地还包括一个或多个触觉输出发生器267。图2A示出了耦接到I/O子系统206中的触觉反馈控制器261的触觉输出发生器。触觉输出发生器267任选地包括一个或多个电声设备诸如扬声器或其他音频部件;和/或将能量转换成线性运动的机电设备诸如电机、螺线管、电活性聚合器、压电致动器、静电致动器或其他触觉输出生成部件(例如,用于将电信号转换成设备上的触觉输出的部件)。接触强度传感器265从触觉反馈模块233接收触觉反馈生成指令,并且在设备200上生成能够由设备200的用户感觉到的触觉输出。在一些实施方案中,至少一个触觉输出发生器与触敏表面(例如,触敏显示器系统212)并置排列或邻近,并且任选地通过竖直地(例如,向设备200的表面内/外)或侧向地(例如,在与设备200的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一些实施方案中,至少一个触觉输出发生器传感器位于设备200的后部上,与位于设备200的前部上的触摸屏显示器212相背对。
设备200还可包括一个或多个加速度计268。图2A示出了耦接至外围设备接口218的加速度计268。另选地,加速度计268可耦接到I/O子系统206中的输入控制器260。加速度计268可如名称为“Acceleration-based Theft Detection System for PortableElectronic Devices”的美国专利公开No.20050190059和名称为“Methods AndApparatuses For Operating A Portable Device Based On An Accelerometer”的美国专利公开No.20060017692中所述的那样执行,这两个美国专利公开均全文以引用方式并入本文。在一些实施方案中,信息基于对从一个或多个加速度计所接收的数据的分析而在触摸屏显示器上以纵向视图或横向视图被显示。设备200任选地除了加速度计268之外还包括磁力仪(未示出)和GPS(或GLONASS或其他全球导航系统)接收器(未示出),以用于获取关于设备200的位置和取向(例如,纵向或横向)的信息。
在一些实施方案中,存储于存储器202中的软件部件包括操作系统226、通信模块(或指令集)228、接触/运动模块(或指令集)230、图形模块(或指令集)232、文本输入模块(或指令集)234、全球定位系统(GPS)模块(或指令集)235、数字助理客户端模块229以及应用(或指令集)236。此外,存储器202可存储数据和模型,诸如用户数据和模型231。此外,在一些实施方案中,存储器202(图2A)或470(图4)存储设备/全局内部状态257,如图2A和图4中所示。设备/全局内部状态257包括以下中的一者或多者:活动应用状态,其指示哪些应用(如果有的话)当前是活动的;显示状态,指示什么应用、视图或其他信息占据触摸屏显示器212的各个区域;传感器状态,包括从设备的各个传感器和输入控制设备216获取的信息;以及关于设备的位置和/或姿态的位置信息。
操作系统226(例如,Darwin、RTXC、LINUX、UNIX、OS X、iOS、WINDOWS,或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件部件和/或驱动器,并且促进各种硬件部件和软件部件之间的通信。
通信模块228促进通过一个或多个外部端口224来与其他设备进行通信,并且还包括用于处理由RF电路208和/或外部端口224所接收的数据的各种软件部件。外部端口224(例如,通用串行总线(USB)、火线等)适于直接耦接到其他设备,或间接地通过网络(例如,互联网、无线LAN等)进行耦接。在一些实施方案中,该外部端口为与(Apple Inc.的商标)设备上所使用的30针连接器相同的或类似的和/或与其兼容的多针(例如,30针)连接器。
接触/运动模块230任选地检测与触摸屏212(结合显示控制器256)和其他触敏设备(例如,触控板或物理点击轮)的接触。接触/运动模块230包括各种软件部件以用于执行与接触的检测相关的各种操作,诸如确定是否已发生接触(例如,检测手指按下事件)、确定接触的强度(例如,接触的力或压力,或者接触的力或压力的替代物)、确定是否存在接触的移动并跟踪在触敏表面上的移动(例如,检测一个或多个手指拖动事件)、以及确定接触是否已停止(例如,检测手指抬起事件或接触断开)。接触/运动模块230从触敏表面接收接触数据。确定接触点的移动任选地包括确定接触点的速率(量值)、速度(量值和方向)和/或加速度(量值和/或方向的改变),接触点的移动由一系列接触数据来表示。这些操作任选地被应用于单点接触(例如,单指接触)或者多点同时接触(例如,“多点触摸”/多个手指接触)。在一些实施方案中,接触/运动模块230和显示控制器256检测触控板上的接触。
在一些实施方案中,接触/运动模块230使用一组一个或多个强度阈值来确定操作是否已由用户执行(例如,确定用户是否已“点击”图标)。在一些实施方案中,根据软件参数来确定强度阈值的至少一个子集(例如,强度阈值不是由特定物理致动器的激活阈值来确定的,并且可在不改变设备200的物理硬件的情况下被调节)。例如,在不改变触控板或触摸屏显示器硬件的情况下,触控板或触摸屏显示器的鼠标“点击”阈值可被设置为预定义的阈值的大范围中的任一个阈值。另外,在一些具体实施中,向设备的用户提供用于调节一组强度阈值中的一个或多个强度阈值(例如,通过调节各个强度阈值和/或通过利用对“强度”参数的系统级点击来一次调节多个强度阈值)的软件设置。
接触/运动模块230任选地检测用户的手势输入。触敏表面上的不同手势具有不同的接触图案(例如,所检测到的接触的不同运动、定时和/或强度)。因此,任选地通过检测特定的接触模式来检测手势。例如,检测手指轻击手势包括检测手指按下事件,然后在与手指按下事件相同的位置(或基本上相同的位置)处(例如,在图标的位置处)检测手指抬起(抬离)事件。作为另一个示例,在触敏表面上检测手指轻扫手势包括检测手指按下事件,然后检测一个或多个手指拖动事件,并且随后检测手指抬起(抬离)事件。
图形模块232包括用于在触摸屏212或其他显示器上呈现和显示图形的各种已知的软件部件,包括用于改变所显示的图形的视觉冲击(例如,亮度、透明度、饱和度、对比度或其他视觉属性)的部件。如本文所用,术语“图形”包括可被显示给用户的任何对象,其非限制性地包括文本、网页、图标(诸如包括软键的用户界面对象)、数字图像、视频、动画等。
在一些实施方案中,图形模块232存储待使用的表示图形的数据。每个图形任选地被分配有对应的代码。图形模块232从应用等接收用于指定待显示的图形的一个或多个代码,在必要的情况下还接收坐标数据和其他图形属性数据,并且然后生成屏幕图像数据,以输出至显示控制器256。
触感反馈模块233包括用于生成指令的各种软件部件,该指令由一个或多个触觉输出发生器267使用,以响应于用户与设备200的交互而在设备200上的一个或多个位置处产生触觉输出。
可以是图形模块232的部件的文本输入模块234提供用于在各种应用(例如,联系人237、电子邮件240、IM 241、浏览器247和需要文本输入的任何其他应用)中输入文本的软键盘。
GPS模块235确定设备的位置,并提供该信息以供在各种应用中使用(例如提供给电话238以供在基于位置的拨号中使用;提供给相机243作为图片/视频元数据;以及提供给提供基于位置的服务的应用,诸如天气桌面小程序、本地黄页桌面小程序和地图/导航桌面小程序)。
数字助理客户端模块229可包括各种客户端侧数字助理指令,以提供数字助理的客户端侧功能。例如,数字助理客户端模块229可能够通过便携式多功能设备200的各种用户界面(例如,麦克风213、加速度计268、触敏显示器系统212、光学传感器264、其他输入控制设备216等)来接受声音输入(例如,语音输入)、文本输入、触摸输入和/或手势输入。数字助理客户端模块229也可能够通过便携式多功能设备200的各种输出界面(例如,扬声器211、触敏显示器系统212、一个或多个触觉输出发生器267等)来提供音频形式输出(例如,语音输出)、视觉形式输出、和/或触觉形式输出。例如,可将输出提供为语音、声音、提示、文本消息、菜单、图形、视频、动画、振动和/或以上两者或更多者的组合。在操作期间,数字助理客户端模块229可使用RF电路208来与DA服务器106进行通信。
用户数据与模型231可包括与用户相关联的各种数据(例如,特定于用户的词汇数据、用户偏好数据、用户指定名称发音、来自用户电子地址簿的数据、待办事项、购物清单等),以提供数字助理的客户端侧功能。此外,用户数据和模型231可包括用于处理用户输入并确定用户意图的各种模型(例如,语音识别模型、统计语言模型、自然语言处理模型、知识本体、任务流模型、服务模型等)。
在一些示例中,数字助理客户端模块229可利用便携式多功能设备200的各种传感器、子系统和外围设备来从便携式多功能设备200的周围环境采集附加信息,以建立与用户、当前用户交互和/或当前用户输入相关联的上下文。在一些示例中,数字助理客户端模块229可将上下文信息或其子集与用户输入一起提供至DA服务器106,以帮助推断用户意图。在一些示例中,数字助理还可使用上下文信息来确定如何准备输出并将输出递送给用户。上下文信息可被称为上下文数据。
在一些示例中,伴随用户输入的上下文信息可包括传感器信息,例如照明、环境噪声、环境温度、周围环境的图像或视频等。在一些示例中,上下文信息还可包括设备的物理状态,例如设备取向、设备位置、设备温度、功率电平、速度、加速度、运动模式、蜂窝信号强度等。在一些示例中,可将与DA服务器106的软件状态相关的信息(例如运行过程、已安装程序、过去和当前的网络活动、后台服务、错误日志、资源使用等)和与便携式多功能设备200的软件状态相关的信息作为与用户输入相关联的上下文信息提供至DA服务器106。
在一些示例中,数字助理客户端模块229可响应于来自DA服务器106的请求而选择性地提供被存储在便携式多功能设备200上的信息(例如,用户数据231)。在一些示例中,数字助理客户端模块229还可在DA服务器106请求时引出来自用户经由自然语言对话或其他用户界面的附加输入。数字助理客户端模块229可将该附加输入传送至DA服务器106,以帮助DA服务器106进行意图推断和/或满足在用户请求中表达的用户意图。
下面参考图7A-图7C对数字助理进行更详细的描述。应当认识到,数字助理客户端模块229可包括下文所述的数字助理模块726的任意数量的子模块。
应用236可包括以下模块(或指令集)或者其子集或超集:
●联系人模块237(有时称作通讯录或联系人列表);
●电话模块238;
●视频会议模块239;
●电子邮件客户端模块240;
●即时消息(IM)模块241;
●健身支持模块242;
●用于静态图像和/或视频图像的相机模块243;
●图像管理模块244;
●视频播放器模块;
●音乐播放器模块;
●浏览器模块247;
●日历模块248;
●桌面小程序模块249,其可包括以下各项中的一者或多者:天气桌面小程序249-1、股市桌面小程序249-2、计算器桌面小程序249-3、闹钟桌面小程序249-4、字典桌面小程序249-5和由用户获取的其他桌面小程序,以及用户创建的桌面小程序249-6;
●用于形成用户创建的桌面小程序249-6的桌面小程序创建器模块250;
●搜索模块251;
●视频和音乐播放器模块252,其合并了视频播放器模块和音乐播放器模块;
●记事本模块253;
●地图模块254;和/或
●在线视频模块255。
可被存储在存储器202中的其他应用236的示例包括其他文字处理应用、其他图像编辑应用、绘图应用、演示应用、支持JAVA的应用、加密、数字版权管理、语音识别和语音复制。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,联系人模块237可被用于管理地址簿或联系人列表(例如,存储在存储器202或存储器470中联系人模块237的应用内部状态292中),包括:添加姓名到地址簿;从地址簿删除姓名;将电话号码、电子邮件地址、物理地址或其他信息与姓名关联;将图像与姓名进行关联;对姓名进行归类和分类;提供电话号码或电子邮件地址来发起和/或促进通过电话238、视频会议模块239、电子邮件240或IM 241的通信;等等。
结合RF电路208、音频电路210、扬声器211、麦克风213、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,电话模块238可用于输入对应于电话号码的字符序列、访问联系人模块237中的一个或多个电话号码、修改已输入的电话号码、拨打相应的电话号码、进行会话以及当会话完成时断开或挂断。如上所述,无线通信可使用多个通信标准、协议和技术中的任一者。
结合RF电路208、音频电路210、扬声器211、麦克风213、触摸屏212、显示控制器256、光学传感器264、光学传感器控制器258、接触/运动模块230、图形模块232、文本输入模块234、联系人模块237和电话模块238,视频会议模块239包括根据用户指令来发起、进行和终止用户与一个或多个其他参与者之间的视频会议的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,电子邮件客户端模块240包括响应于用户指令来创建、发送、接收和管理电子邮件的可执行指令。结合图像管理模块244,电子邮件客户端模块240使得非常容易创建和发送具有由相机模块243拍摄的静态图像或视频图像的电子邮件。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,即时消息模块241包括用于以下操作的可执行指令:输入与即时消息对应的字符序列,修改先前输入的字符,传输相应即时消息(例如,使用短消息服务(SMS)或多媒体消息服务(MMS)协议以用于基于电话的即时消息,或者使用XMPP、SIMPLE或IMPS以用于基于互联网的即时消息),接收即时消息、以及查看所接收的即时消息。在一些实施方案中,所传输的和/或所接收的即时消息可包括图形、照片、音频文件、视频文件和/或在MMS和/或增强型消息服务(EMS)中受支持的其他附件。如本文所用,“即时消息”是指基于电话的消息(例如,使用SMS或MMS发送的消息)和基于互联网的消息(例如,使用XMPP、SIMPLE、或IMPS发送的消息)两者。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、GPS模块235、地图模块254和音乐播放器模块,健身支持模块242包括用于以下各项的可执行指令:创建健身(例如,具有时间、距离和/或卡路里燃烧目标);与健身传感器(运动设备)进行通信;接收健身传感器数据;校准用于监视健身的传感器;为健身选择和播放音乐;以及显示、存储和传输健身数据。
结合触摸屏212、显示控制器256、一个或多个光学传感器264、光学传感器控制器258、接触/运动模块230、图形模块232和图像管理模块244,相机模块243包括用于以下操作的可执行指令:捕获静态图像或视频(包括视频流)并且将它们存储到存储器202中、修改静态图像或视频的特征、或从存储器202删除静态图像或视频。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234和相机模块243,图像管理模块244包括用于排列、修改(例如,编辑),或以其他方式操控、加标签、删除、演示(例如,在数字幻灯片或相册中)以及存储静态图像和/或视频图像的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,浏览器模块247包括根据用户指令来浏览互联网(包括搜索、链接至、接收和显示网页或其部分,以及链接至网页的附件和其他文件)的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、电子邮件客户端模块240和浏览器模块247,日历模块248包括用于根据用户指令来创建、显示、修改和存储日历以及与日历相关联的数据(例如日历条目、待办事项等)的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234和浏览器模块247,桌面小程序模块249是可由用户下载并使用的微型应用(例如,天气桌面小程序249-1、股市桌面小程序249-2、计算器桌面小程序249-3、闹钟桌面小程序249-4和字典桌面小程序249-5)或由用户创建的微型应用(例如,用户创建的桌面小程序249-6)。在一些实施方案中,桌面小程序包括HTML(超文本标记语言)文件、CSS(层叠样式表)文件和JavaScript文件。在一些实施方案中,桌面小程序包括XML(可扩展标记语言)文件和JavaScript文件(例如,Yahoo!桌面小程序)。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234和浏览器模块247,桌面小程序创建器模块250可被用户用于创建桌面小程序(例如,将网页的用户指定部分转到桌面小程序中)。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,搜索模块251包括根据用户指令来搜索存储器202中的匹配一个或多个搜索条件(例如,一个或多个用户指定的搜索词)的文本、音乐、声音、图像、视频和/或其他文件的可执行指令。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、音频电路系统210、扬声器211、RF电路系统208和浏览器模块247,视频和音乐播放器模块252包括允许用户下载和回放以一种或多种文件格式(诸如MP3或AAC文件)存储的所记录的音乐和其他声音文件的可执行指令,以及用于显示、演示或以其他方式回放视频(例如,在触摸屏212上或在经由外部端口224连接的外部显示器上)的可执行指令。在一些实施方案中,设备200任选地包括MP3播放器,诸如iPod(Apple Inc.的商标)的功能。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,记事本模块253包括根据用户指令来创建和管理记事本、待办事项等的可执行指令。
结合RF电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、GPS模块235和浏览器模块247,地图模块254可用于根据用户指令来接收、显示、修改和存储地图以及与地图相关联的数据(例如,驾驶方向、与特定位置处或其附近的商店及其他兴趣点相关的数据,以及其他基于位置的数据)。
结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、音频电路210、扬声器211、RF电路208、文本输入模块234、电子邮件客户端模块240和浏览器模块247,在线视频模块255包括指令,该指令允许用户访问、浏览、接收(例如,通过流式传输和/或下载)、回放(例如在触摸屏上或在经由外部端口224所连接的外部显示器上)、发送具有至特定在线视频的链接的电子邮件,以及以其他方式管理一种或多种文件格式诸如H.264的在线视频。在一些实施方案中,使用即时消息模块241而不是电子邮件客户端模块240来发送特定在线视频的链接。在线视频应用的附加描述可在2007年6月20日提交的名称为“PortableMultifunction Device,Method,and Graphical User Interface for Playing OnlineVideos”的美国临时专利申请No.60/936,562,以及2007年12月31日提交的名称为“Portable Multifunction Device,Method,and Graphical User Interface forPlaying Online Videos”的美国专利申请No.11/968,067中找到,这两个专利申请的内容据此全文以引用方式并入本文。
上述模块和应用中的每个模块和应用对应于用于执行上述一种或多种功能以及在该专利申请中所述的方法(例如,本文所述的计算机实现的方法和其他信息处理方法)的一组可执行指令。这些模块(例如,指令集)不必被实现为独立的软件程序、过程或模块,并因此在各种实施方案中可组合或以其他方式重新布置这些模块的各种子集。例如,视频播放器模块可与音乐播放器模块组合成单个模块(例如,图2A中的视频和音乐播放器模块252)。在一些实施方案中,存储器202可存储上述模块和数据结构的子集。此外,存储器202可存储上文没有描述的附加模块和数据结构。
在一些实施方案中,设备200是该设备上的一组预定义功能的操作唯一地通过触摸屏和/或触控板来执行的设备。通过使用触摸屏和/或触控板作为用于设备200的操作的主要输入控制设备,可减少设备200上的物理输入控制设备(诸如下压按钮、拨号盘等等)的数量。
唯一地通过触摸屏和/或触控板执行的该组预定义功能任选地包括在用户界面之间进行导航。在一些实施方案中,该触控板在被用户触摸时将设备200从被显示在设备200上的任何用户界面导航到主菜单、主屏幕菜单或根菜单。在此类实施方案中,使用触控板来实现“菜单按钮”。在一些其他实施方案中,该菜单按钮为物理下压按钮或者其他物理输入控制设备,而不是触控板。
图2B是示出了根据一些实施方案的用于事件处理的示例性部件的框图。在一些实施方案中,存储器202(图2A)或存储器470(图4)包括事件分类器270(例如,在操作系统226中)以及相应的应用236-1(例如,前述应用237至251、255、480至490中的任一个应用)。
事件分类器270接收事件信息并确定要将事件信息递送到的应用236-1和应用236-1的应用视图291。事件分类器270包括事件监视器271和事件分配器模块274。在一些实施方案中,应用236-1包括应用内部状态292,该应用内部状态指示当应用为活动的或正在执行时被显示在触敏显示器212上的当前应用视图。在一些实施方案中,设备/全局内部状态257被事件分类器270用于确定哪个(哪些)应用当前为活动的,并且应用内部状态292被事件分类器270用于确定要将事件信息递送到的应用视图291。
在一些实施方案中,应用内部状态292包括附加的信息,诸如以下各项中的一者或多者:当应用236-1恢复执行时将被使用的恢复信息、指示正被应用236-1显示的信息或准备好用于被该应用显示的信息的用户界面状态信息、用于使得用户能够返回到应用236-1的先前状态或视图的状态队列、以及用户采取的先前动作的重复/撤销队列。
事件监视器271从外围设备接口218接收事件信息。事件信息包括关于子事件(例如,作为多点触摸手势部分的触敏显示器212上的用户触摸)的信息。外围设备接口218传输其从I/O子系统206或传感器诸如接近传感器266、加速度计268和/或麦克风213(通过音频电路210)接收的信息。外围设备接口218从I/O子系统206接收的信息包括来自触敏显示器212或触敏表面的信息。
在一些实施方案中,事件监视器271以预先确定的间隔将请求发送至外围设备接口218。作为响应,外围设备接口218传输事件信息。在其他实施方案中,外围设备接口218仅当存在显著事件(例如,接收到高于预先确定的噪声阈值和/或接收到超过预先确定的持续时间的输入)时才传输事件信息。
在一些实施方案中,事件分类器270还包括命中视图确定模块272和/或活动事件识别器确定模块273。
当触敏显示器212显示多于一个视图时,命中视图确定模块272提供用于确定子事件已在一个或多个视图内的什么地方发生的软件过程。视图由用户可在显示器上看到的控件和其他元素构成。
与应用相关联的用户界面的另一个方面是一组视图,在本文中有时也被称为应用视图或用户界面窗口,在其中显示信息并且发生基于触摸的手势。在其中检测到触摸的(相应应用的)应用视图可对应于应用的程序化或视图分级结构内的程序化水平。例如,在其中检测到触摸的最低层级视图可被叫做命中视图,并且被识别为正确输入的那组事件可至少部分地基于开始基于触摸的手势的初始触摸的命中视图来确定。
命中视图确定模块272接收与基于接触的手势的子事件相关的信息。当应用具有在分级结构中组织的多个视图时,命中视图确定模块272将命中视图识别为应对子事件进行处理的分级结构中的最低视图。在大多数情况下,命中视图是发起子事件(例如,形成事件或潜在事件的子事件序列中的第一子事件)在其中发生的最低水平视图。一旦命中视图被命中视图确定模块272识别,命中视图便通常接收与其被识别为命中视图所针对的同一触摸或输入源相关的所有子事件。
活动事件识别器确定模块273确定视图分级结构内的哪个或哪些视图应接收特定子事件序列。在一些实施方案中,活动事件识别器确定模块273确定仅命中视图才应接收特定子事件序列。在其他实施方案中,活动事件识别器确定模块273确定包括子事件的物理位置的所有视图均为活跃参与的视图,因此确定所有活跃参与的视图都应接收特定子事件序列。在其他实施方案中,即使触摸子事件完全被局限到与一个特定视图相关联的区域,但在分级结构中较高的视图将仍然保持为活跃参与的视图。
事件分配器模块274将事件信息分配到事件识别器(例如,事件识别器280)。在包括活动事件识别器确定模块273的实施方案中,事件分配器模块274将事件信息递送到由活动事件识别器确定模块273确定的事件识别器。在一些实施方案中,事件分配器模块274在事件队列中存储事件信息,该事件信息由相应事件接收器282进行检索。
在一些实施方案中,操作系统226包括事件分类器270。另选地,应用236-1包括事件分类器270。在其他实施方案中,事件分类器270为独立模块,或者为被存储在存储器202中的另一个模块(诸如接触/运动模块230)的一部分。
在一些实施方案中,应用236-1包括多个事件处理程序290和一个或多个应用视图291,其中每个应用视图包括用于处理发生在应用的用户界面的相应视图内的触摸事件的指令。应用236-1的每个应用视图291包括一个或多个事件识别器280。通常,相应应用视图291包括多个事件识别器280。在其他实施方案中,事件识别器280中的一个或多个事件识别器为独立模块的部分,该独立模块诸如用户界面工具包(未示出)或应用236-1从中继承方法和其他属性的更高水平的对象。在一些实施方案中,相应事件处理程序290包括以下各项中的一者或多者:数据更新器276、对象更新器277、GUI更新器278、和/或从事件分类器270接收的事件数据279。事件处理程序290可利用或调用数据更新器276、对象更新器277或GUI更新器278,以更新应用内部状态292。另选地,应用视图291中的一个或多个应用视图包括一个或多个相应事件处理程序290。另外,在一些实施方案中,数据更新器276、对象更新器277和GUI更新器278中的一者或多者被包括在相应应用视图291中。
相应的事件识别器280从事件分类器270接收事件信息(例如,事件数据279),并且从事件信息识别事件。事件识别器280包括事件接收器282和事件比较器284。在一些实施方案中,事件识别器280还至少包括以下各项的子集:元数据283和事件递送指令288(其可包括子事件递送指令)。
事件接收器282接收来自事件分类器270的事件信息。该事件信息包括关于子事件例如触摸或触摸移动的信息。根据子事件,事件信息还包括附加信息,诸如子事件的位置。当子事件涉及触摸的运动时,事件信息还可包括子事件的速率和方向。在一些实施方案中,事件包括设备从一个取向旋转到另一取向(例如,从纵向取向到横向取向,或反之亦然)的旋转,并且事件信息包括关于设备的当前取向(也被称为设备姿态)的对应信息。
事件比较器284将事件信息与预定义的事件或子事件定义进行比较,并且基于该比较,确定事件或子事件,或者确定或更新事件或子事件的状态。在一些实施方案中,事件比较器284包括事件定义286。事件定义286包含事件的定义(例如,预定义的子事件序列),例如事件1(287-1)、事件2(287-2)、以及其他事件。在一些实施方案中,事件(287)中的子事件包括例如触摸开始、触摸结束、触摸移动、触摸取消和多点触摸。在一个示例中,针对事件1(287-1)的定义为被显示对象上的双击。例如,双击包括被显示对象上的预先确定时长的第一次触摸(触摸开始)、预先确定时长的第一次抬离(触摸结束)、被显示对象上的预先确定时长的第二次触摸(触摸开始)、以及预先确定时长的第二次抬离(触摸结束)。在另一个示例中,针对事件2(287-2)的定义为被显示对象上的拖动。例如,拖动包括所显示对象上的预先确定时长的触摸(或接触)、触摸跨触敏显示器212的移动,以及触摸的抬离(触摸结束)。在一些实施方案中,事件还包括用于一个或多个相关联的事件处理程序290的信息。
在一些实施方案中,事件定义287包括对用于相应用户界面对象的事件的定义。在一些实施方案中,事件比较器284执行命中测试,以确定哪个用户界面对象与子事件相关联。例如,在触摸显示器212上显示三个用户界面对象的应用视图中,当在触敏显示器212上检测到触摸时,事件比较器284执行命中测试,以确定这三个用户界面对象中的哪一个用户界面对象与该触摸(子事件)相关联。如果每个所显示的对象与相应的事件处理程序290相关联,则事件比较器使用该命中测试的结果来确定哪个事件处理程序290应当被激活。例如,事件比较器284选择与子事件和触发该命中测试的对象相关联的事件处理程序。
在一些实施方案中,用于相应事件287的定义还包括延迟动作,该延迟动作延迟事件信息的递送,直到确定子事件序列是否对应于事件识别器的事件类型。
当相应事件识别器280确定子事件序列不与事件定义286中的任何事件匹配时,该相应事件识别器280进入事件不可能、事件失败或事件结束状态,在此之后忽略基于触摸的手势的后续子事件。在这种情况下,对于命中视图保持活动的其他事件识别器(如果有的话)继续跟踪和处理正在进行的基于触摸的手势的子事件。
在一些实施方案中,相应事件识别器280包括具有指示事件递送系统应该如何执行将子事件递送到活跃参与的事件识别器的可配置属性、标记和/或列表的元数据283。在一些实施方案中,元数据283包括指示事件识别器彼此如何交互或可如何交互的可配置属性、标志和/或列表。在一些实施方案中,元数据283包括指示子事件是否递送到视图或程序化分级结构中的不同层级的可配置属性、标志和/或列表。
在一些实施方案中,当识别事件的一个或多个特定子事件时,相应事件识别器280激活与事件相关联的事件处理程序290。在一些实施方案中,相应事件识别器280将与事件相关联的事件信息递送到事件处理程序290。激活事件处理程序290不同于将子事件发送(和延期发送)到相应命中视图。在一些实施方案中,事件识别器280抛出与所识别的事件相关联的标志,并且与该标志相关联的事件处理程序290接获该标志并执行预定义的过程。
在一些实施方案中,事件递送指令288包括递送关于子事件的事件信息而无需激活事件处理程序的子事件递送指令。相反,子事件递送指令将事件信息递送到与子事件系列相关联的事件处理程序或递送到活跃参与的视图。与子事件系列或与活跃参与的视图相关联的事件处理程序接收事件信息并执行预先确定的过程。
在一些实施方案中,数据更新器276创建并更新在应用236-1中使用的数据。例如,数据更新器276对联系人模块237中所使用的电话号码进行更新,或者对视频播放器模块中所使用的视频文件进行存储。在一些实施方案中,对象更新器277创建和更新在应用236-1中使用的对象。例如,对象更新器277创建新用户界面对象或更新用户界面对象的位置。GUI更新器278更新GUI。例如,GUI更新器278准备显示信息并且将显示信息发送到图形模块232,以用于显示在触敏显示器上。
在一些实施方案中,事件处理程序290包括数据更新器276、对象更新器277和GUI更新器278,或具有对该数据更新器、该对象更新器和该GUI更新器的访问权限。在一些实施方案中,数据更新器276、对象更新器277和GUI更新器278被包括在相应应用236-1或应用视图291的单个模块中。在其他实施方案中,它们被包括在两个或更多个软件模块中。
应当理解,关于触敏显示器上的用户触摸的事件处理的上述论述还适用于利用输入设备来操作多功能设备200的其他形式的用户输入,并不是所有用户输入都是在触摸屏上发起的。例如,任选地与单次或多次键盘按下或按住协作的鼠标移动和鼠标按钮按下;触控板上的接触移动,诸如轻击、拖动、滚动等;触笔输入;设备的移动;口头指令;检测到的眼睛移动;生物特征输入;和/或它们的任何组合任选地被用作对应于限定要识别的事件的子事件的输入。
图3示出了根据一些实施方案具有触摸屏212的便携式多功能设备200。触摸屏任选地在用户界面(UI)300内显示一个或多个图形。在本实施方案中以及在下文中描述的其他实施方案中,用户能够通过例如利用一个或多个手指302(在附图中没有按比例绘制)或者利用一个或多个触笔303(在附图中没有按比例绘制)在图形上作出手势来选择这些图形中的一个或多个图形。在一些实施方案中,当用户中断与一个或多个图形的接触时,将发生对一个或多个图形的选择。在一些实施方案中,手势任选地包括一次或多次轻击、一次或多次轻扫(从左向右、从右向左、向上和/或向下)和/或已与设备200发生接触的手指的滚动(从右向左、从左向右、向上和/或向下)。在一些具体实施中或在一些情况下,不经意地与图形接触不会选择图形。例如,当与选择对应的手势为轻击时,在应用图标上方扫动的轻扫手势任选地不会选择对应应用。
设备200还可包括一个或多个物理按钮,诸如“主屏幕”按钮或菜单按钮304。如前所述,菜单按钮304可被用于导航到可在设备200上执行的应用集中的任何应用236。另选地,在一些实施方案中,菜单按钮被实现为显示在触摸屏212上的GUI中的软键。
在一个实施方案中,设备200包括触摸屏212、菜单按钮304、用于使设备通电/断电和用于锁定设备的下压按钮306、一个或多个音量调节按钮308、用户身份模块(SIM)卡槽310、耳麦插孔312和对接/充电外部端口224。下压按钮306任选地用于通过压下该按钮并且将该按钮保持在压下状态持续预定义的时间间隔来对设备进行开/关机;通过压下该按钮并在该预定义的时间间隔过去之前释放该按钮来锁定设备;和/或对设备进行解锁或发起解锁过程。在另选的实施方案中,设备200还通过麦克风213来接受用于激活或去激活一些功能的言语输入。设备200还任选地包括用于检测触摸屏212上的接触的强度的一个或多个接触强度传感器265,和/或用于为设备200的用户生成触觉输出的一个或多个触觉输出发生器267。
图4是根据一些实施方案具有显示器和触敏表面的示例性多功能设备的框图。设备400不必为便携式的。在一些实施方案中,设备400为膝上型计算机、台式计算机、平板电脑、多媒体播放器设备、导航设备、教育设备(诸如儿童学习玩具)、游戏系统或控制设备(例如,家用控制器或工业用控制器)。设备400通常包括一个或多个处理单元(CPU)410、一个或多个网络或其他通信接口460、存储器470和用于使这些部件互连的一个或多个通信总线420。通信总线420任选地包括使系统部件互连并且控制系统部件之间的通信的电路(有时被叫做芯片组)。设备400包括具有显示器440的输入/输出(I/O)接口430,该显示器通常是触摸屏显示器。I/O接口430还任选地包括键盘和/或鼠标(或其他指向设备)450和触控板455、用于在设备400上生成触觉输出的触觉输出发生器457(例如,类似于以上参考图2A所述的触觉输出发生器267)、传感器459(例如,光学传感器、加速度传感器、接近传感器、触敏传感器和/或接触强度传感器(类似于以上参考图2A所述的接触强度传感器265))。存储器470包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;并且任选地包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器470任选地包括远离CPU 410定位的一个或多个存储设备。在一些实施方案中,存储器470存储与便携式多功能设备200(图2A)的存储器202中存储的程序、模块和数据结构类似的程序、模块和数据结构或它们的子集。此外,存储器470任选地存储在便携式多功能设备200的存储器202中不存在的附加程序、模块和数据结构。例如,设备400的存储器470任选地存储绘图模块480、演示模块482、文字处理模块484、网站创建模块486、盘编辑模块488和/或电子表格模块490,而便携式多功能设备200(图2A)的存储器202任选地不存储这些模块。
图4中的上述元素中的每个元素可存储在一个或多个前面提及的存储器设备中。上述所识别的模块中的每个模块对应于用于执行上述功能的指令集。上述模块或程序(例如,指令集)不必被实现为单独的软件程序、过程或模块,并且因此这些模块的各种子集可在各种实施方案中被组合或以其他方式重新布置。在一些实施方案中,存储器470可存储上述模块和数据结构的子集。此外,存储器470可存储上文没有描述的附加模块和数据结构。
现在将注意力转向可在例如便携式多功能设备200上实现的用户界面的实施方案。
图5A示出了根据一些实施方案用于便携式多功能设备200上的应用的菜单的示例性用户界面。类似的用户界面可在设备400上实现。在一些实施方案中,用户界面500包括以下元素或者其子集或超集:
用于一个或多个无线通信(诸如蜂窝信号和Wi-Fi信号)的一个或多个信号强度指示器502;
●时间504;
●蓝牙指示器505;
●电池状态指示器506;
●具有常用应用的图标的托盘508,图标诸如:
○电话模块238的被标记为“电话”的图标516,该图标任选地包括未接来电或语音邮件消息的数量的指示器514;
○电子邮件客户端模块240的被标记为“邮件”的图标518,该图标任选地包括未读电子邮件的数量的指示器510;
○浏览器模块247的被标记为“浏览器”的图标520;以及
○视频和音乐播放器模块252(也称为iPod(Apple Inc.的商标)模块252)的被标记为“iPod”的图标522;以及
●其他应用的图标,诸如:
○IM模块241的被标记为“消息”的图标524;
○日历模块248的被标记为“日历”的图标526;
○图像管理模块244的被标记为“照片”的图标528;
○相机模块243的被标记为“相机”的图标530;
○在线视频模块255的被标记为“在线视频”的图标532;
○股市桌面小程序249-2的被标记为“股市”的图标534;
○地图模块254的被标记为“地图”的图标536;
○天气桌面小程序249-1的被标记为“天气”的图标538;
○闹钟桌面小程序249-4的被标记为“时钟”的图标540;
○健身支持模块242的被标记为“健身支持”的图标542;
○记事本模块253的被标记为“记事本”的图标544;以及
○设置应用或模块的被标记为“设置”的图标546,该图标提供对设备200及其各种应用236的设置的访问。
需注意,图5A中示出的图标标签仅是示例性的。例如,视频和音乐播放器模块252的图标522可任选地被标记为“音乐”或“音乐播放器”。其他标签任选地用于各种应用图标。在一些实施方案中,相应应用图标的标签包括与该相应应用图标对应的应用的名称。在一些实施方案中,特定应用图标的标签不同于与该特定应用图标对应的应用的名称。
图5B示出了具有与显示器550(例如,触摸屏显示器212)分开的触敏表面551(例如,图4的平板电脑或触控板455)的设备(例如,图4的设备400)上的示例性用户界面。设备400还任选地包括用于检测触敏表面551上的接触的强度的一个或多个接触强度传感器(例如,传感器457中的一个或多个传感器)和/或用于为设备400的用户生成触觉输出的一个或多个触觉输出发生器459。
尽管将参考触摸屏显示器212(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器分开的触敏表面上的输入,如图5B所示。在一些实施方案中,触敏表面(例如,图5B中的551)具有与显示器(例如,550)上的主轴(例如,图5B中的553)对应的主轴(例如,图5B中的552)。根据这些实施方案,设备检测在与显示器上的相应位置对应的位置(例如,在图5B中,560对应于568并且562对应于570)处的与触敏表面551的接触(例如,图5B中的560和562)。这样,在触敏表面(例如,图5B中的551)与多功能设备的显示器(图5B中的550)分开时,由设备在触敏表面上检测到的用户输入(例如,接触560和562以及它们的移动)被该设备用于操纵显示器上的用户界面。应当理解,类似的方法任选地用于本文所述的其他用户界面。
另外,虽然主要是参考手指输入(例如,手指接触、单指轻击手势和/或手指轻扫手势)来给出下面的示例,但是应当理解,在一些实施方案中,这些手指输入中的一个或多个手指输入由来自另一输入设备的输入(例如,基于鼠标的输入或触笔输入)替代。例如,轻扫手势任选地由鼠标点击(例如,而不是接触),之后是光标沿轻扫的路径的移动(例如,而不是接触的移动)来替换。作为另一个示例,轻击手势任选地由在光标位于轻击手势的位置上方时的鼠标点击(例如,而不是对接触的检测,以及之后的停止检测接触)来替换。类似地,当同时检测到多个用户输入时,应当理解的是,多个计算机鼠标任选地被同时使用,或鼠标和手指接触任选地被同时使用。
图6A示出了示例性个人电子设备600。设备600包括主体602。在一些实施方案中,设备600可包括相对于设备200和400(例如,图2A-图4B)所述的特征部中的一些或全部特征部。在一些实施方案中,设备600具有在下文中称为触摸屏604的触敏显示屏604。另选地或作为触摸屏604的补充,设备600具有显示器和触敏表面。与设备200和设备400的情况一样,在一些实施方案中,触摸屏604(或触敏表面)可具有用于检测正施加的接触(例如,触摸)强度的一个或多个强度传感器。触摸屏604(或触敏表面)的一个或多个强度传感器可提供表示触摸的强度的输出数据。设备600的用户界面可基于其强度来对触摸作出响应,这意味着不同强度的触摸可调用设备600上的不同用户界面操作。
用于检测和处理触摸强度的技术可例如在相关申请中找到:2013年5月8日提交的名称为“Device,Method,and Graphical User Interface for Displaying UserInterface Objects Corresponding to an Application”的国际专利申请No.PCT/US2013/040061,以及2013年11月11日提交的名称为“Device,Method,and Graphical UserInterface for Transitioning Between Touch Input to Display OutputRelationships”的国际专利申请No.PCT/US2013/069483,这两个国际专利申请中的每个据此全文以引用方式并入本文。
在一些实施方案中,设备600具有一个或多个输入机构606和608。输入机构606和608(如果包括的话)可以是物理形式的。物理输入机构的示例包括下压按钮和可旋转机构。在一些实施方案中,设备600具有一个或多个附接机构。此类附接机构(如果包括的话)可允许将设备600与例如帽子、眼镜、耳环、项链、衬衣、夹克、手镯、表带、手链、裤子、皮带、鞋子、钱包、背包等附接。这些附接机构可允许用户穿戴设备600。
图6B示出了示例性个人电子设备600。在一些实施方案中,设备600可包括参考图2A、图2B和图4所述的部件中的一些或全部部件。设备600具有将I/O部分614与一个或多个计算机处理器616和存储器618操作性地耦接的总线612。I/O部分614可连接到显示器604,该显示器可具有触敏部件622并且任选地具有触摸强度敏感部件624。此外,I/O部分614可与通信单元630连接,用于使用Wi-Fi、蓝牙、近场通信(NFC)、蜂窝和/或其他无线通信技术来接收应用和操作系统数据。设备600可包括输入机构606和/或608。例如,输入机构606可以是可旋转输入设备或者可按压且可旋转输入设备。在一些示例中,输入机构608可以是按钮。
在一些示例中,输入机构608可以是麦克风。个人电子设备600可包括各种传感器,诸如GPS传感器632、加速度计634、定向传感器640(例如,罗盘)、陀螺仪636、运动传感器638和/或它们的组合,所有这些设备可操作地连接到I/O部分614。
个人电子设备600的存储器618可以是用于存储计算机可执行指令的非暂态计算机可读存储介质,该计算机可执行指令当由一个或多个计算机处理器616执行时,例如可使得计算机处理器执行下文描述的包括过程1200(图12A-图12D)的技术。该计算机可执行指令还可以在任何非暂态计算机可读存储介质内进行存储和/或传输,以供指令执行系统、装置或设备,诸如基于计算机的系统、包括处理器的系统或其他系统使用或与其结合,所述其他系统可从指令执行系统、装置或设备获取指令并执行指令。个人电子设备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彼此进行通信。
在一些示例中,存储器702可包括非暂态计算机可读介质,诸如高速随机存取存储器和/或非易失性计算机可读存储介质(例如,一个或多个磁盘存储设备、闪存存储器设备、或其他非易失性固态存储器设备)。
在一些示例中,I/O接口706可将数字助理系统700的输入/输出设备716诸如显示器、键盘、触摸屏和麦克风耦接至用户界面模块722。与用户界面模块722结合的I/O接口706可接收用户输入(例如,语音输入、键盘输入、触摸输入等)并相应地对这些输入进行处理。在一些示例中,例如当数字助理在独立式用户设备处实现时,数字助理系统700可包括分别相对于图2A、图4、图6A-图6B中的设备200、400或600所描述的部件和I/O通信接口中的任一者。在一些示例中,数字助理系统700可表示数字助理具体实施的服务器部分,并且可通过位于用户设备(例如,设备104、200、400或设备600)上的客户端侧部分来与用户进行交互。
在一些示例中,网络通信接口708可包括一个或多个有线通信端口712、和/或无线传输和接收电路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的计算机可读存储介质可存储用于执行下文描述的过程1200的指令。一个或多个处理器704可执行这些程序、模块和指令,并从数据结构读取数据或将数据写入到数据结构。
操作系统718(例如,Darwin、RTXC、LINUX、UNIX、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系统731。
在一些示例中,使用在数字助理模块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”的美国实用新型专利申请No.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”的美国实用新型专利申请No.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咖啡厅的服务器或餐厅预订系统,诸如(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”的美国实用新型专利申请No.12/987,982和2011年9月30日提交的名称为“Generating and Processing Task Items That Represent Tasks to Perform”的美国实用新型专利申请No.13/251,088中找到,其全部公开内容以引用方式并入本文。
4.数字助理的示例性功能——智能搜索和对象管理
图8A-图8F、图9A-图9H、图10A-图10B、图11A-图11D、图12A-图12D和图13A-图13C示出了通过数字助理使用搜索方法或对象管理方法来执行任务的功能。在一些示例中,数字助理系统(例如,数字助理系统700)由用户设备根据各种示例来实现。在一些示例中,用户设备、服务器(例如,服务器108)或它们的组合可实现数字助理系统(例如,数字助理系统700)。例如,可使用设备104、200或400来实现用户设备。在一些示例中,用户设备是膝上型计算机、台式计算机或平板电脑。用户设备可在多任务环境中操作,诸如台式计算机环境。
参考图8A-图8F、图9A-图9H、图10A-图10B、图11A-图11D、图12A-图12D和图13A-图13C,在一些示例中,用户设备提供各种用户界面(例如,用户界面810、910、1010、1110、1210和1310)。用户设备在与用户设备相关联的显示器(例如,触敏显示器系统212、显示器440)上显示各种用户界面。各种用户界面提供表示不同过程的一个或多个示能表示(例如,表示搜索方法的示能表示820、920、1020、1120、1220和1320;以及表示对象管理方法的示能表示830、930、1030、1130、1230和1330)。一个或多个过程可以由用户直接或间接地实例化。例如,用户通过使用诸如键盘、鼠标、操纵杆、手指等输入设备选择示能表示来实例化一个或多个过程。用户还可使用语音输入来实例化一个或多个过程,如下文更详细所述。实例化过程包括调用尚未执行的过程。如果过程的至少一个实例正在执行,则实例化过程包括执行该过程的现有实例或生成该过程的新实例。例如,实例化对象管理方法包括调用对象管理方法,使用现有对象管理方法或生成对象管理方法的新实例。
如图8A-图8F、图9A-图9H、图10A-图10B、图11A-图11D、图12A-图12D和图13A-图13C所示,用户设备在用户界面(例如,用户界面810、910、1010、1110、1210和1310)上显示示能表示(例如,示能表示840、940、1040、1140、1240和1340),以实例化数字助理服务。例如,示能表示可以是表示数字助理的麦克风图标。示能表示可在用户界面上的任何位置显示。例如,示能表示可在用户界面底部的任务栏(例如,任务栏808、908、1008、1108、1208和1308)上、用户界面顶部的菜单栏(例如,菜单栏806、906、1006、1106、1206和1306)上以及用户界面右侧的通知中心中显示。示能表示还可以在用户界面上动态显示。例如,用户设备在应用用户界面(例如,应用窗口)附近显示示能表示,使得能够方便实例化数字助理服务。
在一些示例中,响应于接收到预先确定的短语来实例化数字助理。例如,响应于接收到诸如“嘿,助理”、“唤醒,助理”、“收听,助理”、“确定,助理”等短语来调用数字助理。在一些示例中,响应于接收到对示能表示的选择来实例化数字助理。例如,用户使用诸如鼠标、触笔、手指等输入设备来选择示能表示840、940、1040、1140、1240和/或1340。在用户设备上提供数字助理会消耗计算资源(例如,电力、网络带宽、存储器和处理器周期)。在一些示例中,数字助理被暂停或关闭,直至用户调用该数字助理。在一些示例中,数字助理在各种时间段内都处于活动状态。例如,在显示各种用户界面、用户设备打开、用户设备进入休眠或睡眠状态、用户注销或发生这些情况的组合期间,数字助理可激活并监测用户的语音输入。
参考图8A-图8F、图9A-图9H、图10A-图10B、图11A-图11D、图12A-图12D和图13A-图13C,数字助理从用户处接收到一个或多个语音输入,诸如语音输入852、854、855、856、952、954、1052、1054、1152、1252或1352。用户提供各种语音输入,例如用于使用搜索方法或对象管理方法执行任务的目的。在一些示例中,数字助理直接在用户设备处从用户接收语音输入,或者通过可通信地连接到用户设备的另一电子设备间接接收语音输入。数字助理例如通过用户设备的麦克风(例如麦克风213)直接从用户接收语音输入。用户设备包括被配置为在多任务环境中操作的设备,诸如膝上型计算机、台式计算机、平板电脑、服务器等。数字助理还可通过诸如耳机、智能电话、平板电脑等一个或多个电子设备间接接收语音输入。例如,用户可对着头戴式耳机(未示出)讲话。该头戴式耳机接收来自用户的语音输入,并且经由例如耳机与用户设备之间的蓝牙连接将语音输入或其表示传输给用户设备的数字助理。
参考图8A-图8F、图9A-图9H、图10A-图10B、图11A-图11D、图12A-图12D和图13A-图13C,在一些实施方案中,数字助理(例如,由示能表示840、940、1040、1140、1240和1340表示的)识别与用户设备相关联的上下文信息。上下文信息包括例如特定于用户的数据、与一个或多个对象相关联的元数据、传感器数据和用户设备配置数据。对象可以是与执行任务或当前显示在屏幕上的图形元素相关联的过程(例如,对象管理方法)的目标或部件,并且对象或图形元素可能具有或目前可能没有焦点(例如,当前选择的)。例如,对象可包括文件(例如,照片、文档)、文件夹、通信应用(例如,电子邮件、消息、通知或语音邮件)、联系人、日历、应用、在线资源等。在一些示例中,特定于用户的数据包括日志信息、用户偏好、用户与用户设备的交互的历史记录等。日志信息指示过程中最近使用的对象(例如,展示文件)。在一些示例中,与一个或多个对象相关联的元数据包括对象的标题、对象的时间信息、对象的作者、对象的摘要等。在一些示例中,传感器数据包括由与用户设备相关联的传感器收集的各种数据。例如,传感器数据包括指示用户设备的物理位置的位置数据。在一些示例中,用户设备配置数据包括当前设备配置。例如,设备配置指示用户设备可通信地连接到诸如智能电话、平板电脑等一个或多个电子设备。如下文更详细所述,用户设备可以使用上下文信息来执行一个或多个过程。
参考图8A-图8F、图9A-图9H、图10A-图10B、图11A-图11D、图12A-图12D和图13A-图13C,响应于接收到语音输入,数字助理基于语音输入来确定用户意图。如上所述,在一些示例中,数字助理通过I/O处理模块(例如,图7B中所示的I/O处理模块728)、STT处理模块(例如,图7B中所示的STT处理模块730)和自然语言处理模块(例如,图7B中所示的自然语言处理模块732)处理语音输入。I/O处理模块将语音输入转发给STT处理模块(或语音识别器)以进行语音到文本转换。语音到文本转换基于语音输入来生成文本。如上所述,STT处理模块生成字词或符号的序列(“符号序列”),并且向自然语言处理模块提供符号序列。自然语言处理模块对文本执行自然语言处理,并基于自然语言处理的结果确定用户意图。例如,自然语言处理模块可尝试将符号序列与数字助理识别的一个或多个可执行意图相关联。如前所述,一旦自然语言处理模块基于用户输入识别了可执行意图,它就会生成结构化查询以表示所识别的可执行意图。结构化查询包括与可执行意图相关联的一个或多个参数。该一个或多个参数用于基于可执行意图来促进执行任务。
在一些实施方案中,数字助理进一步确定用户意图是使用搜索方法还是对象管理方法来执行任务。搜索方法被配置为搜索存储在用户设备内部或外部的数据。对象管理方法被配置为管理与用户设备相关联的对象。相对于图8A-图8F、图9A-图9H、图10A-图10B、图11A-图11D、图12A-图12D和图13A-图13C,下文更详细地提供了确定用户意图的各种示例。
参考图8A,在一些示例中,用户设备从用户接收语音输入852以实例化数字助理。例如,语音输入852包括“嘿,助理”。响应于语音输入,用户设备实例化由示能表示840或841所表示的数字助理,使得数字助理主动监测后续语音输入。在一些示例中,数字助理提供指示其已实例化的口语输出872。例如,口语输出872包括“开始吧,我正在收听”。在一些示例中,用户设备从用户接收对示能表示840或示能表示841的选择以实例化数字助理。通过使用诸如鼠标、触笔、手指等输入设备来执行示能表示的选择。
参考图8B,在一些示例中,数字助理接收语音输入854。例如,语音输入854包括“打开搜索方法,并查找今天的AAPL股票价格”,或简单地“向我显示今天的AAPL股票价格”。基于语音输入854,数字助理确定用户意图。例如,为了确定用户意图,数字助理确定可执行意图是获取在线信息,并且与该可执行意图相关联的一个或多个参数包括“AAPL股票价格”和“今天”。
如前所述,在一些示例中,数字助理进一步确定用户意图是使用搜索方法还是对象管理方法来执行任务。在一些实施方案中,为了作出决定,数字助理确定语音输入是否包括表示搜索方法或对象管理方法的一个或多个关键字。例如,数字助理确定语音输入854包括诸如“打开搜索方法”的关键字或短语,指示用户意图是使用搜索方法执行任务。因此,数字助理确定用户意图是使用搜索方法执行任务。
如图8B所示,根据确定用户意图是使用搜索方法来执行任务,数字助理使用搜索方法来执行任务。如前所述,数字助理的自然语言处理模块基于用户意图生成结构化查询,并且将生成的结构化查询传递给任务流处理模块(例如,任务流处理模块736)。任务流处理模块接收来自自然语言处理模块的结构化查询,必要时完成结构化查询,并执行“完成”用户的最终请求所需的动作。例如,使用搜索方法来执行任务包括例如搜索至少一个对象。在一些实施方案中,至少一个对象包括文件夹、文件(例如,照片、音频、视频),通信应用(例如,电子邮件、消息、通知、语音邮件)、联系人、日历、应用(例如,Keynote、Number、iTunes、Safari)、在线信息源(例如,谷歌、雅虎、彭博)或它们的组合。在一些示例中,搜索对象基于与该对象相关联的元数据。例如,搜索文件或文件夹可以使用元数据,诸如标记、日期、时间、作者、标题、文件类型、大小、页数和/或与该文件夹或文件相关联的文件位置。在一些示例中,文件或文件夹存储在用户设备内部或外部。例如,文件或文件夹可能存储在用户设备的硬盘上或存储在云服务器上。在一些示例中,搜索通信应用基于与该通信应用相关联的元数据。例如,搜索电子邮件使用元数据,诸如电子邮件的发送者、电子邮件的接收者、电子邮件的发送/接收日期等。
如图8B所示,根据确定用户意图是使用搜索方法获取AAPL股票价格,数字助理执行搜索。例如,数字助理实例化由示能表示820表示的搜索方法,并且使得搜索方法搜索今天的AAPL股票价格。在一些示例中,数字助理进一步使得搜索方法显示用户界面822(例如,片段或窗口),该用户界面提供对应于语音输入854的文本(例如,“打开搜索方法并查找今天的AAPL股票价格”)。
参考图8C,在一些实施方案中,数字助理基于使用搜索方法执行任务的结果提供响应。如图8C所示,作为搜索AAPL股票价格的结果,数字助理显示用户界面824(例如,片段或窗口),该用户界面提供使用搜索方法执行该任务的结果。在一些实施方案中,用户界面824位于用户界面822内,作为单独的用户界面。在一些实施方案中,用户界面824和822作为单个用户界面被集成在一起。在用户界面824上,显示AAPL股票价格的搜索结果。在一些实施方案中,用户界面824进一步提供示能表示831和833。示能表示831使得能够关闭用户界面824。例如,如果数字助理接收到用户选择示能表示831,则用户界面824从用户设备的显示器消失或关闭。示能表示833使得能够移动或共享在用户界面824上显示的搜索结果。例如,如果数字助理接收到用户选择示能表示833,它会实例化过程(例如,对象管理方法),以移动或与通知应用共享用户界面824(或其搜索结果)。如图8C所示,数字助理显示与通知应用相关联的用户界面826,以提供AAPL股票价格的搜索结果。在一些实施方案中,用户界面826显示示能表示827。示能表示827使得能够在用户界面826内滚动,使得用户可在用户界面826内查看整个内容(例如,多个通知)和/或指示文档相对于其整个长度和/或宽度的相对位置。在一些实施方案中,用户界面826显示由数字助理存储的结果和/或对话历史记录(例如,从当前和/或过去的搜索方法获得的搜索结果)。此外,在一些示例中,执行任务的结果随着时间推移而动态地更新。例如,AAPL股票价格可随时间推移动态地更新,并显示在用户界面826上。
在一些实施方案中,数字助理还提供对应于搜索结果的口语输出。例如,数字助理(例如,由示能表示840表示的数字助理)提供口语输出874,包括“今天的AAPL价格为100.00美元”。在一些示例中,用户界面822包括对应于口语输出874的文本。
参考图8D,在一些示例中,数字助理实例化过程(例如,对象管理方法),以响应于后续语音输入来移动或共享在用户界面824上显示的搜索结果。例如,数字助理接收到语音输入855,诸如“将AAPL股票价格复制到我的记事本”。作为响应,数字助理实例化过程以将搜索结果(例如AAPL股票价格)移动或复制到用户的记事本。如图8D所示,在一些示例中,数字助理进一步显示用户界面825,该用户界面提供复制或移动到用户记事本中的搜索结果。在一些示例中,数字助理进一步提供口语输出875,诸如“确定,AAPL股票价格已被复制到您的记事本”。在一些示例中,用户界面822包括对应于口语输出875的文本。
参考图8E,在一些示例中,数字助理确定用户意图是使用对象管理方法执行任务,然后使用对象管理方法来执行任务。例如,数字助理接收语音输入856,诸如“打开对象管理方法并向我展示来自我的科罗拉多之旅的所有照片”,或者只是“向我展示来自我的科罗拉多之旅的所有照片”。基于语音输入856和上下文信息,数字助理确定用户意图。例如,数字助理确定可执行意图是显示照片并确定一个或多个参数,诸如“所有”和“科罗拉多之旅”。数字助理进一步使用上下文信息确定哪些照片对应于用户的科罗拉多之旅。如前所述,上下文信息包括特定于用户的数据、一个或多个对象的元数据、传感器数据和/或设备配置数据。例如,与一个或多个文件(例如,在用户界面832中显示的文件1、文件2和文件3)相关联的元数据指示文件名包括字词“科罗拉多”或科罗拉多的城市名称(例如,“丹佛”)。元数据还可指示文件夹名称包括字词“科罗拉多”或科罗拉多的城市名称(例如,“丹佛”)。作为另一个示例,传感器数据(例如,GPS数据)指示用户在一定时间段期间在科罗拉多旅行。因此,用户在该特定时间段期间拍摄的任何照片都是用户在科罗拉多之旅期间拍摄的照片。同样,照片本身可包括将照片与拍摄地相关联的地理标记元数据。例如,基于上下文信息,数字助理确定用户意图是显示存储在文件夹名称为“科罗拉多之旅”的文件夹中的照片,或显示用户在科罗拉多旅行的时间段期间拍摄的照片。
如前所述,在一些示例中,数字助理确定用户意图是使用搜索方法还是对象管理方法来执行任务。为了作出此类确定,数字助理会确定语音输入是否包括表示搜索方法或对象管理方法的一个或多个关键字。例如,数字助理确定语音输入856包括诸如“打开对象管理方法”的关键字或短语,指示用户意图是使用对象管理方法执行任务。
根据确定用户意图是使用对象管理方法执行任务,数字助理使用对象管理方法执行任务。例如,数字助理使用对象管理方法搜索至少一个对象。在一些示例中,至少一个对象包括文件夹或文件中的至少一者。文件可包括照片、音频(例如,歌曲)或视频(例如,电影)中的至少一者。在一些示例中,搜索文件或文件夹基于与该文件夹或文件相关联的元数据。例如,搜索文件或文件夹使用元数据,诸如标记、日期、时间、作者、标题、文件类型、大小、页数和/或与该文件夹或文件相关联的文件位置。在一些示例中,文件或文件夹可能存储在用户设备内部或外部。例如,文件或文件夹可能存储在用户设备的硬盘上或存储在云服务器上。
如图8E所示,例如,根据确定用户意图是显示存储在文件夹名称为“科罗拉多之旅”的文件夹中的照片,或显示用户在科罗拉多旅行的时间段期间拍摄的照片,数字助理使用对象管理方法执行任务。例如,数字助理实例化由示能表示830表示的对象管理方法,并且使得对象管理方法从用户的科罗拉多之旅中搜索照片。在一些示例中,数字助理还使得对象管理方法显示提供用户的语音输入856的文本的片段或窗口(未示出)。
参考图8F,在一些实施方案中,数字助理进一步基于使用对象管理方法执行任务的结果来提供响应。如图8F所示,作为搜索用户的科罗拉多之旅照片的结果,数字助理显示用户界面834(例如,片段或窗口),该用户界面提供使用对象管理方法执行该任务的结果。例如,在用户界面834上,显示照片的预览。在一些示例中,数字助理实例化过程(例如,对象管理方法)以对照片执行额外的任务,诸如将照片插入文档或将照片附接到电子邮件。如下文更详细所述,数字助理可实例化过程,以响应于用户的附加语音输入执行额外的任务。同样,数字助理可响应于单个语音输入执行多项任务,诸如“通过电子邮件将我的科罗拉多之旅的照片发送给我的妈妈”。数字助理还可实例化过程,以响应于用户使用输入设备提供的输入(例如,通过鼠标输入选择一个或多个示能表示或执行拖放操作)执行此类附加的任务。在一些实施方案中,数字助理进一步提供对应于结果的口语输出。例如,数字助理提供口语输出876,包括“这些是您科罗拉多之旅的照片”。
参考图9A,在一些示例中,用户的语音输入可能不包括指示用户意图是使用搜索方法还是对象管理方法的一个或多个关键字。例如,用户提供语音输入952,诸如“勇士队今天的比赛得分是多少?”语音输入952不包括指示“搜索方法”或“对象管理方法”的关键字。因此,数字助理可能无法使用关键字确定用户意图是使用搜索方法还是对象管理方法来执行任务。
在一些实施方案中,为了确定用户意图是使用搜索方法还是对象管理方法来执行任务,数字助理基于语音输入确定任务是否与搜索相关联。在一些示例中,与搜索相关联的任务可通过搜索方法或对象管理方法执行。例如,搜索方法和对象管理方法都可以搜索文件夹和文件。在一些示例中,搜索方法可进一步搜索各种对象,包括在线信息源(例如,网站)、通信(例如,电子邮件)、联系人、日历等。在一些示例中,对象管理方法可能未被配置为搜索诸如在线信息源的某些对象。
根据确定任务与搜索相关联,数字助理进一步确定执行任务是否需要搜索方法。如前所述,如果任务与搜索相关联,则搜索方法或对象管理方法可用于执行任务。然而,对象管理方法可能未被配置为搜索某些对象。因此,为了确定用户意图是使用搜索方法还是对象管理方法,数字助理进一步确定任务是否需要搜索方法。例如,如图9A所示,基于语音输入952,例如,数字助理确定用户意图是获得勇士队今天的比赛得分。根据用户意图,数字助理进一步确定执行任务需要搜索在线信息源,因此任务与搜索相关联。数字助理进一步确定执行任务是否需要搜索方法。如前所述,在一些示例中,搜索方法被配置为搜索在线信息源诸如网站,而对象管理方法可能未被配置为搜索此类在线信息源。因此,数字助理确定搜索在线信息源(例如,搜索勇士队网站以获得得分)需要搜索方法。
参考图9B,在一些实施方案中,根据确定执行任务需要搜索方法,数字助理使用搜索方法来执行任务。例如,根据确定搜索勇士队今天的比赛得分需要搜索方法,数字助理实例化由示能表示920所表示的搜索方法,并且使搜索方法搜索勇士队今天的比赛得分。在一些示例中,数字助理进一步使搜索方法显示用户界面922(例如,片段或窗口),该用户界面中提供用户语音输入952的文本(例如,“勇士队今天的比赛得分是多少?”)。用户界面922包括一个或多个示能表示921和927。类似于上文所述,示能表示921(例如,关闭按钮)使得能够关闭用户界面922和示能表示927(例如,滚动条),使得能够在用户界面922内滚动,使得用户可在用户界面922内查看整个内容。
参考图9B,在一些示例中,基于搜索结果,数字助理进一步提供一个或多个响应。如图9B所示,作为搜索勇士队今天的比赛得分的结果,数字助理显示用户界面924(例如,片段或窗口),该用户界面提供使用搜索方法执行任务的结果。在一些实施方案中,用户界面924位于用户界面922内,作为单独的用户界面。在一些实施方案中,用户界面924和922作为单个用户界面被集成在一起。在一些示例中,数字助理显示提供当前搜索结果(例如,勇士队比赛得分)的用户界面924以及提供先前搜索结果(例如,AAPL股票价格)的另一用户界面(例如,图8C中所示的用户界面824)。在一些实施方案中,数字助理仅显示提供当前搜索结果的用户界面924,不显示提供先前搜索结果的另一用户界面。如图9B所示,数字助理仅显示用户界面924以提供当前搜索结果(例如,勇士队比赛得分)。在一些示例中,示能表示927(例如,滚动条)使得能够在用户界面922内滚动,使得用户可查看先前的搜索结果。此外,在一些示例中,先前的搜索结果(例如股票价格、体育赛事得分、天气预报等)随时间推移动态地更新或刷新。
如图9B所示,在用户界面924上,显示勇士队今天的比赛得分的搜索结果(例如,勇士队104-89骑士队)。在一些实施方案中,用户界面924进一步提供示能表示923和925。示能表示923使得能够关闭用户界面924。例如,如果数字助理接收到示能表示923的用户选择,则用户界面924从用户设备的显示器消失或关闭。示能表示925使得能够移动或共享在用户界面924上显示的搜索结果。例如,如果数字助理接收到用户选择示能表示925,它会移动或与通知应用共享用户界面924(或其搜索结果)。如图9B所示,数字助理显示与通知应用相关联的用户界面926,以提供勇士队比赛得分的搜索结果。如前所述,执行任务的结果随着时间推移动态地更新。例如,勇士队比赛得分可随时间推移动态地更新,同时比赛持续进行并显示在用户界面924(例如,片段或窗口)和/或用户界面926(例如,通知应用用户界面)上。在一些实施方案中,数字助理进一步提供对应于搜索结果的口语输出。例如,由示能表示940或941表示的数字助理提供口语输出972,诸如“勇士队击败骑士队,104-89。”在一些示例中,用户界面922(例如,片段或窗口)提供对应于口语输出972的文本。
如上所述,在一些实施方案中,数字助理确定任务是否与搜索相关联,并且根据这种确定,数字助理确定执行任务是否需要搜索方法。参考图9C,在一些实施方案中,数字助理确定执行任务不需要搜索方法。例如,如图9C所示,数字助理接收到语音输入954,诸如“向我显示所有名称为‘费用’的文件”。基于语音输入954和上下文信息,数字助理确定用户意图是显示文件名、元数据、文件内容等包含字词“费用”(或其一部分、变型、释义)的所有文件。根据用户意图,数字助理确定要执行的任务包括搜索与字词“费用”相关联的所有文件。因此,数字助理确定执行任务与搜索相关联。如上所述,在一些示例中,搜索方法和对象管理方法均可执行搜索文件。因此,数字助理确定执行搜索与字词“费用”相关联的所有文件的任务不需要搜索方法。
参考图9D,在一些示例中,根据确定执行任务不需要搜索方法,数字助理基于预先确定的配置确定是使用搜索方法还是对象管理方法来执行任务。例如,如果搜索方法和对象管理方法均可执行任务,则预先确定的配置可指示将使用搜索方法执行任务。可使用诸如用户偏好或特定于用户的数据的上下文信息来生成和更新预先确定的配置。例如,数字助理确定对于特定用户而言,之前在执行文件搜索时选择搜索方法比对象管理方法更频繁。因此,数字助理生成或更新预先确定的配置,以指示搜索方法是用于搜索文件的默认过程。在一些示例中,数字助理生成或更新预先确定的配置以指示对象管理方法是默认过程。
如图9D所示,基于预先确定的配置,数字助理确定搜索与字词“费用”相关联的所有文件的任务将使用搜索方法来执行。因此,数字助理使用搜索方法执行与字词“费用”相关联的所有文件的搜索。例如,数字助理实例化由用户界面910上显示的示能表示920表示的搜索方法,并且使得搜索方法搜索与字词“费用”相关联的所有文件。在一些示例中,数字助理进一步提供口语输出974,通知用户正在执行任务。口语输出974包括诸如“确定,搜索所有名称为‘费用’的文件”。在一些示例中,数字助理进一步使搜索方法显示用户界面928(例如,片段或窗口),该用户界面提供对应于语音输入954和口语输出974的文本。
参考图9E,在一些实施方案中,数字助理进一步基于使用搜索方法执行任务的结果提供一个或多个响应。如图9E所示,作为搜索与字词“费用”相关联的所有文件的结果,数字助理显示用户界面947(例如,片段或窗口),该用户界面提供了搜索结果。在一些实施方案中,用户界面947位于用户界面928内,作为单独的用户界面。在一些实施方案中,用户界面947和928作为单个用户界面被集成在一起。在用户界面947上,显示与字词“费用”相关联的文件的列表。在一些实施方案中,数字助理进一步提供对应于搜索结果的口语输出。例如,由示能表示940或941表示的数字助理提供口语输出976,诸如“这是所有名称为‘费用’的文件”。在一些示例中,数字助理进一步在用户界面928上提供对应于口语输出976的文本。
在一些实施方案中,数字助理提供与使用搜索方法执行任务的结果相关联的一个或多个链接。链接使得能够使用搜索结果实例化过程(例如,打开文件、调用对象管理方法)。如图9E所示,在用户界面947上,由文件名表示的文件(例如,费用文件1、费用文件2、费用文件3)的列表可与链接相关联。例如,在每个文件名的一侧显示链接。作为另一个示例,文件名以特定颜色(例如,蓝色)显示,指示文件名与链接相关联。在一些示例中,与链接相关联的文件名以与用户界面947上显示的其他项目相同的颜色显示。
如前所述,链接使得能够使用搜索结果来实例化过程。对过程进行实例化包括调用尚未运行的过程。如果过程的至少一个实例正在运行,则实例化过程包括执行该过程的现有实例或生成该过程的新实例。例如,实例化对象管理方法包括调用对象管理方法,使用现有的对象管理方法或生成对象管理方法的新实例。如图9E和图9F所示,显示在用户界面947上的链接使得能够管理与该链接相关联的对象(例如,文件)。例如,用户界面947接收与文件(例如,“费用文件3”)相关联的链接的用户选择(例如,通过光标934选择)。作为响应,数字助理实例化由示能表示930表示的对象管理方法以使得能够管理文件。如图9F所示,数字助理显示用户界面936(例如,片段或窗口),该用户界面提供包含与链接相关联的文件(例如“费用文件3”)的文件夹。使用用户界面936,数字助理实例化对象管理方法以相对于文件执行一项或多项附加任务(例如,复制、编辑、查看、移动、压缩等)。
再次参考图9E,在一些示例中,在用户界面947上显示的链接使得能够直接查看和/或编辑对象。例如,数字助理通过用户界面947接收与文件(例如,“费用文件3”)相关联的链接的选择(例如,通过光标934选择)。作为响应,数字助理对过程(例如,文档查看/编辑过程)实例化以查看和/或编辑该文件。在一些示例中,数字助理实例化该过程以查看和/或编辑该文件,而不实例化对象管理方法。例如,数字助理直接实例化Number过程或Excel过程以查看和/或编辑费用文件3。
参考图9E和图9G,在一些示例中,数字助理对过程(例如,搜索方法)实例化以细化搜索结果。如图9E和图9G所示,用户可能希望细化用户界面947上显示的搜索结果。例如,用户可能期望从搜索结果选择一个或多个文件。在一些示例中,数字助理从用户接收语音输入977,诸如“仅Kevin发送给我的并且我标记为草稿的文件”。基于语音输入977和上下文信息,数字助理确定用户意图仅显示Kevin发送的并且与草稿标记相关联的费用文件。基于用户意图,数字助理对过程(例如,搜索方法)实例化以细化搜索结果。例如,如图9G中所示,基于搜索结果,数字助理确定费用文件1和费用文件2是Kevin发送给用户的并且带有标记。因此,数字助理继续在用户界面947上显示这两个文件,并从用户界面947上移除费用文件3。在一些示例中,数字助理提供口语输出978,诸如“这些就是Kevin发送给您并且您标记为草稿的文件。”数字助理可进一步在用户界面928上提供对应于口语输出978的文本。
参考图9H,在一些示例中,数字助理对过程(例如,对象管理方法)实例化以执行对象管理任务(例如,复制、移动、共享等)。例如,如图9H所示,数字助理从用户接收语音输入984,诸如“将费用文件1移动到‘文档’文件夹”。基于语音输入984和上下文信息,数字助理确定用户意图是将费用文件1从其当前文件夹复制或移动到“文档”文件夹。根据用户意图,数字助理实例化过程(例如,对象管理方法)以将费用文件1从其当前文件夹复制或移动到‘文档’文件夹。在一些示例中,数字助理提供口语输出982,诸如“确定,将费用文件1移动到‘文档’文件夹”。在一些示例中,数字助理进一步提供对应于用户界面928上的口语输出982的文本。
如前所述,在一些示例中,用户的语音输入可能不包括指示用户意图是使用搜索方法还是对象管理方法执行任务的关键字。参考图10A-图10B,在一些实施方案中,数字助理确定执行任务不需要搜索方法。根据确定,数字助理提供要求用户选择搜索方法或对象管理方法的口语输出。例如,如图10A所示,数字助理从用户接收到语音输入1052,诸如“向我显示所有名称为‘费用’的文件”。基于语音输入1052和上下文信息,数字助理确定用户意图是显示与字词“费用”相关联的所有文件。根据用户意图,数字助理进一步确定任务可以由搜索方法或对象管理方法执行,因此不需要搜索方法。在一些示例中,数字助理提供口语输出1072,诸如“您想要使用搜索方法还是对象管理方法来执行搜索?”。在一些示例中,数字助理从用户接收语音输入1054,诸如“对象管理方法”。语音输入1054因此指示用户意图是使用对象管理方法来执行任务。例如,根据该选择,数字助理实例化由示能表示1030所表示的对象管理方法,以搜索与字词“费用”相关联的所有文件。如图10B所示,与上文所述的那些类似,作为搜索的结果,数字助理显示用户界面1032(例如,片段或窗口),该用户界面提供包含与字词“费用”相关联的文件的文件夹。与上文所述的那些类似,使用用户界面1032,数字助理实例化对象管理方法,以相对于文件执行一项或多项附加任务(例如,复制、编辑、查看、移动、压缩等)。
参考图11A和图11B,在一些实施方案中,数字助理识别上下文信息,并基于该上下文信息和用户的语音输入来确定用户意图。如图11A所示,由示能表示1140或1141表示的数字助理接收语音输入1152,诸如“打开我昨晚创建的Keynote演示文件”。响应于接收到语音输入1152,数字助理识别上下文信息,诸如用户与用户设备交互的历史记录,与用户最近处理的文件相关联的元数据等。例如,数字助理识别元数据,诸如日期、时间和用户昨天从下午6点到凌晨2点处理的文件的类型。基于所识别的上下文信息和语音输入1152,数字助理确定用户意图包括搜索与元数据相关联的Keynote演示文件,元数据指示该文件在昨天大约下午6点到午夜12点之间被编辑过;并实例化过程(例如,Keynote过程)以打开演示文件。
在一些示例中,上下文信息包括应用名称或标识符(ID)。例如,用户的语音输入提供“打开Keynote演示文件”、“查找我的Pages文档”或“查找我的HotNewApp文档”。上下文信息包括应用名称(例如,Keynote、Pages、HotNewApp)或应用ID。在一些示例中,上下文信息是动态更新或同步的。例如,上下文信息在用户安装名称为HotNewApp的新应用后实时更新。在一些示例中,数字助理识别动态更新的上下文信息并确定用户意图。例如,数字助理识别应用名称Keynote、Pages、HotNewApp或它们的ID,并根据应用名称/ID和语音输入来确定用户意图。
根据用户意图,数字助理进一步确定用户意图是使用搜索方法还是对象管理方法来执行任务。如前所述,数字助理作出此类确定基于语音输入中包括的一个或多个关键字、基于任务是否需要搜索方法、基于预先确定的配置和/或基于用户的选择。如图11A所示,语音输入1152不包括指示用户意图是使用搜索方法还是对象管理方法的关键字。因此,数字助理基于预先确定的配置来确定用户意图是使用对象管理方法。根据确定,数字助理实例化对象管理方法,以搜索与元数据相关联的Keynote演示文件,元数据指示文件在昨天大约下午6点到午夜12点之间被编辑过。在一些实施方案中,数字助理进一步提供口语输出1172,诸如“确定,正在查找您昨晚创建的Keynote演示文件”。
在一些实施方案中,上下文信息被用于执行任务。例如,应用名称和/或ID可用于形成查询,以搜索与应用名称/ID相关联的应用和/或对象(例如,文件)。在一些示例中,服务器(例如,服务器108)使用应用名称(例如,Keynote、Pages、HotNewApp)和/或ID形成查询,并且将该查询发送给用户设备的数字助理。基于查询,数字助理实例化搜索方法或对象管理方法,以搜索一个或多个应用和/或对象。在一些示例中,数字助理仅搜索对应于应用名称/ID的对象(例如,文件)。例如,如果查询包括应用名称“Pages”,则数字助理仅搜索Pages文件,不搜索可由Pages应用打开的其他文件(例如Word文件)。在一些示例中,数字助理搜索与查询中的应用名称/ID相关联的所有对象。
参考图11B和图11C,在一些实施方案中,数字助理根据与执行任务的结果相关联的置信度水平提供一个或多个响应。在确定用户意图,确定用户意图是使用搜索方法还是对象管理方法来执行任务,和/或执行任务期间,可能存在或出现不准确性。在一些示例中,数字助理确定置信度水平,此类置信度水平表示基于语音输入和上下文信息确定用户意图的准确性、确定用户意图是使用搜索方法还是对象管理方法来执行任务的准确性、使用搜索方法或对象管理方法执行任务的准确性,或它们的组合。
继续图11A中示出的上述示例,基于语音输入1152(诸如“打开我昨晚创建的Keynote演示文件”),数字助理实例化对象管理方法,以执行与元数据相关联的Keynote演示文件的搜索,该元数据指示该文件在昨天大约下午6点到午夜12点之间被编辑过。搜索结果可能包括完全匹配搜索条件的单个文件。也就是说,该单个文件是在昨天大约下午6点到午夜12点之间被编辑过的演示文件。因此,数字助理确定搜索的准确性为高,因此确定置信度水平为高。作为另一个示例,搜索结果可能包括与搜索条件部分匹配的多个文件。例如,没有文件是在昨天大约下午6点到午夜12点之间被编辑过的演示文件,或者有多个文件是在昨天大约下午6点到午夜12点之间被编辑过的演示文件。因此,数字助理确定搜索的准确性为中等或低,因此确定置信度水平为中等或低。
如图11B和图11C所示,数字助理根据确定的置信度水平提供响应。在一些示例中,数字助理确定置信度水平是大于还是等于阈值置信度水平。根据确定置信度水平大于或等于阈值置信度水平,数字助理提供第一响应。根据确定置信度水平小于阈值置信度水平,数字助理提供第二响应。在一些示例中,第二响应不同于第一响应。如图11B所示,如果数字助理确定置信度水平大于或等于阈值置信度水平,则数字助理实例化过程(例如,用户界面1142表示的Keynote过程),以使得能够查看和编辑文件。在一些示例中,数字助理提供口语输出(诸如“这是您昨晚创建的演示文件”),并且在用户界面1143中显示口语输出的文本。如图11C所示,如果数字助理确定置信度水平小于阈值置信度水平,则数字助理显示用户界面1122(例如,片段或窗口),该用户界面提供候选文件的列表。每个候选文件可能都部分满足搜索条件。在一些实施方案中,置信度水平可预先确定和/或基于用户偏好、历史准确度等动态更新。在一些示例中,数字助理进一步提供口语输出1174(诸如“这是昨晚创建的所有演示文件”),并且显示对应于用户界面1122上的口语输出1174的文本。
参考图11D,在一些实施方案中,数字助理实例化过程(例如,Keynote演示过程)以执行附加任务。继续上述示例,如图11B和11D所示,用户可能希望在全屏模式下显示演示文件。数字助理从用户接收语音输入1154,诸如“设为全屏”。基于语音输入1154和上下文信息,数字助理确定用户意图是在全屏模式下显示演示文件。根据用户意图,数字助理使得Keynote演示过程在全屏模式下显示幻灯片。在一些示例中,数字助理提供口语输出1176,诸如“确定,正在全屏模式下显示您的演示文件。”
参考图12A-图12C,在一些实施方案中,数字助理基于单个语音输入或言语确定用户意图是执行多项任务。根据用户意图,数字助理进一步实例化一个或多个过程以执行多项任务。例如,如图12A所示,由示能表示1240或1241表示的数字助理接收单个语音输入1252,诸如“向我展示来自我的科罗拉多之旅的所有照片,然后将它们发送给我妈妈”。基于语音输入1252和上下文信息,数字助理确定用户意图是执行第一项任务和第二项任务。与上文所述的那些类似,第一项任务是显示存储在文件夹名称为“科罗拉多之旅”的文件夹中的照片,或者显示用户在科罗拉多旅行的时间段期间拍摄的照片。相对于第二项任务,上下文信息可能指示存储在用户联系人中的特定电子邮件地址被标记为用户的妈妈。因此,第二项任务是将包含与科罗拉多之旅相关联的照片的电子邮件发送至特定电子邮件地址。
在一些示例中,相对于每项任务,数字助理确定用户意图是使用搜索方法还是对象管理方法来执行任务。例如,数字助理确定第一项任务与搜索相关联,并且用户意图是使用对象管理方法来执行第一项任务。如图12B所示,根据确定用户意图是使用对象管理方法来执行第一项任务,数字助理实例化对象管理方法,以搜索与用户的科罗拉多之旅相关联的照片。在一些示例中,数字助理显示用户界面1232(例如,片段或窗口),该用户界面提供包括搜索结果(例如,照片1、2和3)的文件夹。作为另一个示例,数字助理确定第一项任务与搜索相关联,并且用户意图是使用搜索方法来执行第一项任务。如图12C所示,根据确定用户意图是使用搜索方法来执行第一项任务,数字助理实例化搜索方法,以搜索与用户的科罗拉多之旅相关联的照片。在一些示例中,数字助理显示用户界面1234(例如,片段或窗口),该用户界面提供照片和/或与搜索结果(例如,照片1、2和3)相关联的链接。
作为另一个示例,数字助理确定第二项任务(例如,将包含与科罗拉多之旅相关联的照片的电子邮件发送至特定电子邮件地址)不与搜索或管理对象相关联。根据确定,数字助理确定任务是否可以使用可用于用户设备的过程来执行。例如,数字助理确定第二项任务可以在用户设备处使用电子邮件过程来执行。根据确定,数字助理实例化该过程以执行第二项任务。如图12B和图12C所示,数字助理实例化电子邮件过程,并显示与该电子邮件过程相关联的用户界面1242和1244。该电子邮件过程将与用户的科罗拉多之旅相关联的照片附加到电子邮件消息中。如图12B和图12C所示,在一些实施方案中,数字助理进一步提供口语输出1272和1274,诸如“这些是来自您的科罗拉多之旅的照片。我准备将照片发送给您妈妈,是否继续?”在一些示例中,数字助理显示对应于用户界面1244上的口语输出1274的文本。响应于口语输出1272和1274,用户提供语音输入,诸如“好的”。在从用户接收到语音输入时,数字助理使电子邮件过程发送电子邮件消息。
基于单个语音输入或言语中所包含的多个命令来执行多项任务的技术可在相关专利申请中找到,例如:2015年5月28日提交的名称为“MULTI-COMMAND SINGLE UTTERANCEINPUT METHOD”的美国专利申请No.14/724,623,该专利申请要求以下专利的优先权的权益:2014年5月30日提交的名称为“MULTI-COMMAND SINGLE UTTERANCE INPUT METHOD”的美国临时专利申请No.62/005,556、以及2015年3月8日提交的名称为“MULTI-COMMAND SINGLEUTTERANCE INPUT METHOD”的美国临时专利申请No.62/129,851。其中每项专利申请的内容据此全文以引用方式并入本文。
如图12C和图12D所示,在一些示例中,数字助理使过程基于用户的附加语音输入来执行附加任务。例如,鉴于用户界面1234中显示的搜索结果,用户可能希望发送一些照片,而不是全部照片。用户提供语音输入1254,诸如“仅发送照片1和照片2”。在一些示例中,在用户选择示能表示1235(例如,在用户界面1234上显示的麦克风图标)之后,数字助理接收语音输入1254。基于语音输入1254和上下文信息,数字助理确定用户意图是发送仅附加照片1和照片2的电子邮件。根据用户意图,数字助理使电子邮件过程从电子邮件消息中移除照片3。在一些示例中,数字助理提供口语输出1276(诸如“好的,将照片1和照片2附加到电子邮件”),并且显示对应于用户界面1234上的口语输出1276的文本。
参考图13A,在一些实施方案中,根据确定任务不与搜索相关联,数字助理确定任务是否与管理至少一个对象相关联。如图13A所示,例如,数字助理接收到语音输入1352,诸如“在桌面上创建名称为‘项目’的新文件夹”。基于语音输入1352和上下文信息,数字助理确定用户意图是在桌面上生成文件夹名称为“项目”的新文件夹。数字助理进一步确定用户意图不与搜索相关联,而是与管理对象(例如,文件夹)相关联。因此,数字助理确定用户意图是使用对象管理方法执行任务。
在一些示例中,根据确定用户意图是使用对象管理方法来执行任务,数字助理使用对象管理方法来执行任务。使用对象管理方法来执行任务可包括例如创建至少一个对象(例如,创建文件夹或文件),存储至少一个对象(例如,存储文件夹、文件或通信),并且压缩至少一个对象(例如,压缩文件夹和文件)。使用对象管理方法来执行任务可进一步包括例如将至少一个对象从第一物理或虚拟存储复制或移动到第二物理或虚拟存储。例如,数字助理实例化对象管理方法,将文件从用户设备剪切并粘贴到闪存驱动器或云驱动器。
使用对象管理方法执行任务可进一步包括例如删除存储在物理或虚拟存储中的至少一个对象(例如,删除文件夹或文件)和/或恢复存储在物理或虚拟存储中的至少一个对象(例如,恢复已删除的文件夹或已删除的文件)。使用对象管理方法来执行任务可进一步包括例如标记至少一个对象。在一些示例中,对象的标记可以是可见的或不可见的。例如,数字助理可使对象管理方法对社交媒体上的帖子生成“赞”标志、标记电子邮件、标记文件等。标记可通过显示例如标记、标志等变得可见。标记也可相对于对象的元数据执行,使元数据的存储(例如,存储器)内容发生变化。元数据可能是可见的,也可能不可见。
使用对象管理方法执行任务还可包括例如根据针对备份的预先确定的时间段或者用户的请求,备份至少一个对象。例如,数字助理可使对象管理方法来实例化备份程序(例如,时间机器程序)以备份文件夹和文件。备份可以根据预先确定的时间表(例如,一天一次、一周一次、一月一次等)来自动执行或根据用户请求执行。
使用对象管理方法执行任务还可包括例如在可通信地连接到用户设备的一个或多个电子设备之间共享至少一个对象。例如,数字助理可使对象管理方法与另一电子设备(例如,用户的智能电话或平板电脑)共享存储在用户设备上的照片。
如图13B所示,根据确定用户意图是使用对象管理方法来执行任务,数字助理使用对象管理方法来执行任务。例如,数字助理实例化对象管理方法,以在用户界面1310的桌面上生成名称为“项目”的文件夹。在一些示例中,数字助理可使对象管理方法自动或响应于另外的用户输入来进一步打开该文件夹。例如,数字助理提供口语输出1372,诸如“好的,我在桌面上创建了一个名称为‘项目’的文件夹,是否想打开它?”用户提供语音输入1374,诸如“是”。响应于用户的语音输入1374,数字助理使对象管理方法打开“项目”文件夹,并显示对应于“项目”文件夹的用户界面1332。
参考图13C,在一些实施方案中,数字助理提供一个或多个示能表示,该示能表示使得用户能够使用搜索方法或对象管理方法来操纵执行任务的结果。一个或多个示能表示包括例如编辑按钮、取消按钮、重做按钮、撤销按钮等。例如,如图13C所示,在桌面上生成名称为“项目”的文件夹之后,数字助理提供用户界面1334,该用户界面显示编辑按钮1336A、撤销按钮1336B以及重做按钮1336C。在一些示例中,编辑按钮1336A使得用户能够编辑对象的一个或多个方面(例如,编辑“项目”文件夹的名称);撤销按钮1336B使得用户能够反转由对象管理方法执行的最后一项任务(例如,删除“项目”文件夹);以及重做按钮1336C使得用户能够重复对象管理方法执行的最后一项任务(例如,使用对象管理方法创建另一个文件夹)。应当理解,数字助理可提供任何所需的示能表示,以使得用户能够对使用搜索方法或对象管理方法执行任务的结果来执行任何操纵。
如前所述,数字助理可确定用户意图是使用搜索方法还是对象管理方法来执行任务。在一些示例中,数字助理确定用户意图不与搜索方法或对象管理方法相关联。例如,用户提供语音输入,诸如“开始口述”。数字助理确定口述任务不与搜索相关联。在一些示例中,根据确定任务不与搜索相关联,数字助理进一步确定任务是否与管理至少一个对象相关联。例如,数字助理确定口述任务也不与管理对象相关联,诸如复制、移动或删除文件、文件夹或电子邮件。在一些示例中,根据确定任务不与管理对象相关联,数字助理确定该任务是否可以使用可用于用户设备的过程来执行。例如,数字助理确定口述任务可使用可用于用户设备的口述过程来执行。在一些示例中,数字助理相对于使用可用于用户设备的过程执行任务,来发起与用户的对话。例如,数字助理提供口语输出,诸如“好的,开始口述”或“是否想在您当前正处理的此演示文件中口述?”在提供口语输出之后,数字助理接收来自用户的响应,例如,确认用户意图是在用户当前正处理的演示文件中口述。
5.数字助理的示例性功能——连续性
图14A-图14D、图15A-图15D、图16A-图16C和图17A-图17E示出了通过数字助理使用远程定位的内容在用户设备或第一电子设备处执行任务的功能。在一些示例中,数字助理系统(例如,数字助理系统700)根据各种示例通过用户设备(例如,设备1400、1500、1600和1700)来实现。在一些示例中,用户设备、服务器(例如,服务器108)或它们的组合可实现数字助理系统(例如,数字助理系统700)。例如,可使用设备104、200或400来实现用户设备。在一些示例中,用户设备可以是膝上型计算机、台式计算机或平板电脑。用户设备可在多任务环境中操作,诸如台式计算机环境。
参考图14A-图14D、图15A-图15D、图16A-图16C和图17A-图17E,在一些示例中,用户设备(例如,设备1400、1500、1600和1700)提供各种用户界面(例如,用户界面1410、1510、1610和1710)。与上文所述的那些类似,用户设备在显示器上显示各种用户界面,并且各种用户界面使得用户能够实例化一个或多个过程(例如,电影过程、照片处理、Web浏览过程)。
如图14A-图14D、图15A-图15D、图16A-图16C和图17A-图17E所示,与上文所述的那些类似,用户设备(例如,设备1400、1500、1600和1700)在用户界面(例如,用户界面1410、1510、1610和1710)上显示示能表示(例如,示能表示1440、1540、1640和1740)以实例化数字助理服务。与上文所述的那些类似,在一些示例中,响应于接收到预先确定的短语来实例化数字助理。在一些示例中,响应于接收到对示能表示的选择来实例化数字助理。
参考图14A-图14D、图15A-图15D、图16A-图16C和图17A-图17E,在一些实施方案中,数字助理从用户接收一个或多个语音输入,诸如语音输入1452、1454、1456、1458、1552、1554、1556、1652、1654、1656、1752和1756。用户可提供各种语音输入,用于例如在用户设备(例如,设备1400、1500、1600和1700)处或在第一电子设备(例如,电子设备1420、1520、1530、1522、1532、1620、1622、1630、1720和1730)处使用远程定位的内容执行任务的目的。与上文所述的那些类似,在一些示例中,数字助理可在用户设备处直接从用户接收语音输入,或通过以可通信地连接到用户设备的另一电子设备间接接收语音输入。
参考图14A-图14D、图15A-图15D、图16A-图16C和图17A-图17E,在一些实施方案中,数字助理识别与用户设备相关联的上下文信息。上下文信息包括例如特定于用户的数据,传感器数据和用户设备配置数据。在一些示例中,特定于用户的数据包括指示用户偏好的日志信息、用户与用户设备(例如,设备1400、1500、1600和1700)和/或可通信地连接到用户设备的电子设备进行交互的历史记录等。例如,特定于用户的数据指示用户最近使用电子设备1420(例如智能电话)拍摄了自拍照片;用户最近访问了播客、网络广播、电影、歌曲、有声读物等。在一些示例中,传感器数据包括由与用户设备或其他电子设备相关联的传感器收集的各种数据。例如,传感器数据包括GPS位置数据,该数据指示用户设备或可通信地连接到用户设备的电子设备在任何时间点或在任何时间段期间的物理位置。例如,传感器数据指示存储在电子设备1420中的照片是在夏威夷拍摄的。在一些示例中,用户设备配置数据包括当前或历史设备配置。例如,用户设备配置数据指示用户设备当前可通信地连接到一些电子设备,但与其他电子设备断开连接。电子设备包括例如智能电话、机顶盒、平板电脑等。如下文更详细所述,上下文信息可用于确定用户意图和/或执行一项或多项任务。
参考图14A-图14D、图15A-图15D、图16A-图16C和图17A-图17E,与上文所述的那些类似,响应于接收到语音输入,数字助理基于语音输入确定用户意图。数字助理基于自然语言处理的结果确定用户意图。例如,数字助理基于用户输入识别可执行意图,并且生成结构化查询以表示所识别的可执行意图。结构化查询包括与可执行意图相关联的一个或多个参数。该一个或多个参数可用于促进基于可执行意图来执行任务。例如,基于语音输入诸如“显示我刚刚拍摄的自拍照”,数字助理确定可执行意图是显示照片,并且参数包括用户最近在过去几天期间拍摄的自拍照。在一些实施方案中,数字助理进一步基于语音输入和上下文信息确定用户意图。例如,上下文信息指示用户设备使用蓝牙连接可通信地连接到用户的电话,并且指示有一张自拍照在两天前被添加到用户的电话中。因此,数字助理确定用户意图是显示照片,该照片是两天前被添加到用户电话中的自拍照。以下在各种示例中更详细地描述了基于语音输入和上下文信息确定用户意图。
在一些实施方案中,根据用户意图,数字助理进一步确定任务是在用户设备处执行,还是在可通信地连接到用户设备的第一电子设备处执行。下文相对于图14A-图14D、图15A-图15D、图16A-图16C和图17A-图17E更详细地提供了确定的各种实施例。
参考图14A,在一些示例中,用户设备1400从用户接收语音输入1452以调用数字助理。如图14A所示,在一些示例中,数字助理由显示在用户界面1410上的示能表示1440或1441表示。语音输入1452包括例如“嘿,助理”。响应于语音输入1452,用户设备1400调用数字助理,使得数字助理主动监测后续语音输入。在一些示例中,数字助理提供指示其已被调用的口语输出1472。例如,口语输出1472包括“开始吧,我正在收听”。如图14A所示,在一些示例中,用户设备1400可通信地连接到一个或多个电子设备(诸如电子设备1420)。电子设备1420可使用有线或无线网络与用户设备1400通信。例如,电子设备1420使用蓝牙连接来与用户设备1400通信,使得可以在两个设备之间交换语音和数据(例如音频文件和视频文件)。
参考图14B,在一些示例中,数字助理接收到语音输入1454,诸如“在此设备上向我显示我刚刚使用电话拍摄的自拍照”。基于语音输入1454和/或上下文信息,数字助理确定用户意图。例如,如图14B所示,上下文信息指示用户设备1400使用有线或无线网络(例如,蓝牙连接、Wi-Fi连接等)可通信地连接到电子设备1420。上下文信息还指示用户最近拍摄了自拍照,该照片存储在名称为“selfie0001”的电子设备1420中。因此,数字助理确定用户意图是显示存储在电子设备1420中名称为selfie0001的照片。另选地,照片可能已被照片识别软件标记为包含用户面部,并被相应地识别。
如前所述,根据用户意图,数字助理进一步确定任务是在用户设备处执行,还是在可通信地连接到用户设备的第一电子设备处执行。在一些实施方案中,确定是在用户设备处还是在第一电子设备处执行任务基于包括在语音输入中的一个或多个关键字。例如,数字助理确定语音输入1454包括关键字或短语(诸如“在此设备处”),指示任务将在用户设备1400上执行。因此,数字助理确定显示存储在电子设备1420中名称为selfie0001的照片将在用户设备1400上执行。用户设备1400和电子设备1420是不同的设备。例如,用户设备1400可以是膝上型计算机,而电子设备1420可以是电话。
在一些实施方案中,数字助理进一步确定与任务的执行相关联的内容是否位于远程位置。如果在数字助理正在确定或即将确定由哪个设备执行任务时,内容位于远程位置,用于执行任务的内容的至少一部分不存储在被确定为执行任务的设备中。例如,如图14B所示,在用户设备1400的数字助理正在确定或即将确定用户意图是在用户设备1400上显示名称为selfie0001的照片时,名称为selfie0001的照片未存储在用户设备1400上,而是存储在电子设备1420(例如,智能电话)上。因此,数字助理确定该照片被远程定位到用户设备1400。
如图14B所示,在一些实施方案中,根据确定任务将在用户设备处执行并且用于执行任务的内容位于远程位置,用户设备的数字助理接收用于执行任务的内容。在一些示例中,用户设备1400的数字助理接收存储在电子设备1420中的内容的至少一部分。例如,为了显示名称为selfie0001的照片,用户设备1400的数字助理向电子设备1420发送请求以获取名称为selfie0001的照片。电子设备1420接收该请求并作为响应,将名称为selfie0001的照片传输至用户设备1400。然后,用户设备1400的数字助理接收名称为selfie0001的照片。
如图14B所示,在一些实施方案中,在接收到远程定位的内容之后,数字助理在用户设备处提供响应。在一些示例中,提供响应包括使用所接收的内容来执行任务。例如,用户设备1400的数字助理显示用户界面1442(例如,片段或窗口),该用户界面提供名称为selfie0001的照片的视图1443。视图1443可以是名称为selfie0001的照片的预览(例如,缩略图)、图标或完整视图。
在一些示例中,提供响应包括提供与将在用户设备处执行的任务相关联的链接。链接使得能够实例化过程。如前所述,实例化过程包括调用尚未运行的过程。如果过程的至少一个实例正在运行,则实例化过程包括执行该过程的现有实例或生成该过程的新实例。如图14B所示,用户界面1442可提供与名称为selfie0001的照片的视图1443相关联的链接1444。例如,链接1444使得能够实例化照片过程以查看照片的完整表示或编辑照片。例如,链接1444被显示在视图1443的侧面。作为另一个示例,视图1443本身可包括或并入链接1444,使得对视图1443的选择实例化照片过程。
在一些实施方案中,提供响应包括提供一个或多个示能表示,这些示能表示使得用户能够进一步操纵执行该任务的结果。如图14B所示,在一些示例中,数字助理在用户界面1442(例如,片段或窗口)上提供示能表示1445和1446。示能表示1445可包括用于将照片添加到相册的按钮,并且示能表示1446可包括用于取消照片的视图1443的按钮。用户可选择示能表示1445和1446中的一者或两者。例如,响应于选择示能表示1445,照片过程将与视图1443相关联的照片添加到相册中。例如,响应于选择示能表示1446,照片过程从用户界面1442移除视图1443。
在一些实施方案中,提供响应包括根据将在用户设备处执行的任务提供口语输出。如图14B所示,由示能表示1440或1441表示的数字助理提供口语输出1474,诸如“这是您电话中的最后一张自拍照”。
参考图14C,在一些示例中,基于单个语音输入/言语和上下文信息,数字助理确定用户意图是执行多项任务。如图14C所示,数字助理接收到语音输入1456,诸如“在此设备处向我显示我刚刚使用电话拍摄的自拍照,并将它设置为我的墙纸”。基于语音输入1456和上下文信息,数字助理确定用户意图是执行显示存储在电子设备1420上的名称为selfie0001的照片的第一项任务,以及执行将名称为selfie0001的照片设置为墙纸的第二项任务。因此,基于单个语音输入1456,数字助理确定用户意图是执行多项任务。
在一些实施方案中,数字助理确定是将在用户设备处还是在可通信地连接到用户设备的电子设备处执行多项任务。例如,使用包括在语音输入1456中的关键字“该设备”,数字助理确定将在用户设备1400上执行多项任务。与上文所述的那些类似,数字助理进一步确定用于执行至少一项任务的内容是否位于远程位置。例如,数字助理确定用于执行至少第一项任务(例如,显示名称为selfie0001的照片)的内容位于远程位置。在一些实施方案中,根据确定将在用户设备处执行多项任务并且用于执行至少一项任务的内容位于远程位置,数字助理从另一电子设备(例如,电子设备1420)请求该内容,接收该内容用于执行相应任务,并且在用户设备处提供响应。
在一些实施方案中,提供响应包括执行多项任务。例如,如图14C所示,提供响应包括执行显示名称为selfie0001的照片的视图1449的第一项任务,以及执行将名称为selfie0001的照片设置为墙纸的第二项任务。在一些示例中,数字助理使用桌面设置配置过程,自动将墙纸配置为名称为selfi0001的照片。在一些示例中,数字助理提供指向桌面设置1450的链接,使得用户能够使用名称为selfie0001的照片手动配置墙纸。例如,用户可通过使用诸如鼠标、触笔或手指的输入设备,选择指向桌面设置1450的链接。在接收到选择指向桌面设置1450的链接时,数字助理启动桌面设置配置过程,使得用户能够选择名称为selfie0001的照片并将该照片设置为用户设备1400的墙纸。
如图14C所示,在一些示例中,数字助理响应于接收到来自用户的语音输入,发起与用户的对话并促进配置墙纸。例如,数字助理提供口语输出1476,诸如“这是来自您电话的最后一张自拍。是否将它设置为墙纸?”用户提供语音输入,诸如“好的”。在接收到语音输入时,数字助理实例化桌面设置配置过程,以将墙纸配置为名称为selfie0001的照片。
如前所述,在一些示例中,数字助理基于语音输入和上下文信息确定用户意图。参考图14D,在一些示例中,语音输入可能不包括足以确定用户意图的信息。例如,语音输入可能未指示用于执行任务的内容的位置。如图14D所示,数字助理接收到语音输入1458,诸如“向我显示我刚刚拍摄的自拍照”。语音输入1458不包括指示要显示的照片或要显示的自拍照的位置的一个或多个关键字。因此,仅基于语音输入1458可能无法确定用户意图。在一些示例中,数字助理基于语音输入1458和上下文信息确定用户意图。例如,基于上下文信息,数字助理确定用户设备1400是可通信地连接到电子设备1420。在一些示例中,数字助理实例化搜索方法,以在用户设备1400和电子设备1420上搜索用户最近拍摄的照片。基于搜索结果,数字助理确定名称为selfie0001的照片存储在电子设备1420中。因此,数字助理确定用户意图是显示位于电子设备1420上的名称为selfie0001的照片。在一些示例中,如果不能基于语音输入和上下文信息确定用户意图,数字助理会发起与用户的对话以进一步明确或弄清用户意图。
如图14D所示,在一些示例中,语音输入可能不包括指示任务是在用户设备处还是在可通信地连接到用户设备的电子设备处执行的一个或多个关键字。例如,语音输入1458未指示显示自拍照的任务是在用户设备1400上还是在电子设备1420上执行。在一些示例中,数字助理基于上下文信息确定任务是在用户设备处还是在电子设备处执行。作为一个示例,上下文信息指示数字助理在用户设备1400上而不是在电子设备1420上接收到语音输入1458。因此,数字助理确定显示自拍照的任务将在用户设备1400上执行。作为另一个示例,上下文信息指示根据用户偏好,照片将被显示在电子设备1420上。因此,数字助理确定显示自拍照的任务将在电子设备1420上执行。应当理解,数字助理可基于任何上下文信息确定任务是在用户设备处还是电子设备处执行。
参考图15A,在一些实施方案中,数字助理确定任务将在可通信地连接到用户设备(例如,用户设备1500)的电子设备(例如,电子设备1520和/或1530)上执行,并且确定内容被远程定位到该电子设备。如图15A所示,在一些示例中,数字助理接收到语音输入1552,诸如“在我的电视上播放这部影片”。如前所述,数字助理可基于语音输入1552和上下文信息确定用户意图。例如,上下文信息指示用户界面1542正在显示名称为ABC.mov的影片。因此,数字助理确定用户意图是播放名称为ABC.mov的影片。
根据用户意图,数字助理进一步确定任务是在用户设备处,还是在可通信地连接到用户设备的第一电子设备处执行。在一些实施方案中,确定是在用户设备处还是在第一电子设备处执行任务基于包括在语音输入中的一个或多个关键字。例如,语音输入1552包括字词或短语“在我的电视上”。在一些示例中,上下文信息指示用户设备1500使用例如有线连接、蓝牙连接或Wi-Fi连接方式连接到机顶盒1520和/或电视1530。因此,数字助理确定播放名称为ABC.mov的影片的任务将在机顶盒1520和/或电视1530上执行。
在一些实施方案中,数字助理进一步确定与任务的执行相关联的内容是否位于远程位置。如前所述,如果在数字助理正在确定或即将确定由哪个设备执行任务时,内容位于远程位置,用于执行任务的内容的至少一部分不存储在被确定为执行任务的设备中。例如,如图15A所示,在用户设备1500的数字助理正在确定或即将确定影片ABC.mov在机顶盒1520和/或电视1530上播放时,影片ABC.mov的至少一部分存储在用户设备1500(例如,膝上型计算机)和/或服务器(未示出)上,而不存储在机顶盒1520和/或电视1530上。因此,数字助理确定影片ABC.mov被远程定位到机顶盒1520和/或电视1530。
参考图15B,根据确定任务将在第一电子设备(例如,机顶盒1520和/或电视1530)上执行并且用于执行任务的内容被远程定位到第一电子设备,用户设备的数字助理向第一电子设备提供内容以执行任务。例如,为了在机顶盒1520和/或电视1530上播放影片ABC.mov,用户设备1500的数字助理将影片ABC.mov的至少一部分传输至机顶盒1520和/或电视1530。
在一些示例中,用户设备的数字助理使得从另一电子设备(例如,服务器)向第一电子设备提供内容的至少一部分来执行任务,而不是从用户设备提供此类内容。例如,影片ABC.mov被存储在服务器(未示出)中而不是用户设备1500中。因此,用户设备1500的数字助理使名称为ABC.mov的影片的至少一部分从服务器传输至机顶盒1520和/或电视1530。在一些示例中,用于执行任务的内容被提供给机顶盒1520,然后该机顶盒将内容传输至电视1530。在一些示例中,用于执行任务的内容被直接提供给电视1530。
如图15B所示,在一些示例中,在内容被提供给第一电子设备(例如,机顶盒1520和/或电视1530)之后,用户设备1500的数字助理在用户设备1500上提供响应。在一些示例中,提供响应包括使任务在使用内容的机顶盒1520和/或电视1530处执行。例如,用户设备1500的数字助理发送请求至机顶盒1520和/或电视1530以启动多媒体过程来播放影片ABC.mov。响应于该请求,机顶盒1520和/或电视1530启动多媒体过程来播放影片ABC.mov。
在一些示例中,将在第一电子设备(例如,机顶盒1520和/或电视1530)上执行的任务是继续在第一电子设备处远程执行的任务。例如,如图15A和图15B所示,用户设备1500的数字助理已启动用户设备1500的多媒体过程,以在用户设备1500上播放影片ABC.mov的一部分。根据确定用户意图是在第一电子设备(例如,机顶盒1520和/或电视1530)上播放影片ABC.mov,用户设备1500的数字助理使第一电子设备继续播放影片ABC.mov的其余部分,而不是从头开始播放。因此,用户设备1500的数字助理使得用户能够连续观看影片。
如图15B所示,在一些实施方案中,提供响应包括提供一个或多个示能表示,这些示能表示使得用户能够进一步操纵执行该任务的结果。如图15B所示,在一些示例中,数字助理在用户界面1544(例如,片段或窗口)上提供示能表示1547和1548。示能表示1547可以是用于取消在第一电子设备(例如,机顶盒1520和/或电视1530)上播放影片ABC.mov的按钮。示能表示1548可以是一个按钮,用于暂停或恢复播放正在第一电子设备处播放的影片ABC.mov。用户可使用诸如鼠标、触笔或手指的输入设备选择示能表示1547或1548。例如,在接收到对示能表示1547的选择时,数字助理使得停止在第一电子设备处播放影片ABC.mov。在一些示例中,在第一电子设备处停止播放之后,数字助理还使得在用户设备1500上恢复播放影片ABC.mov。例如,在接收到对示能表示1548的选择时,数字助理使得暂停或恢复在第一电子设备处播放影片ABC.mov。
在一些实施方案中,提供响应包括根据将在第一电子设备处执行的任务来提供口语输出。如图15B所示,由示能表示1540或1541表示的数字助理提供口语输出1572,诸如“正在电视上播放您的影片”。
如前所述,根据确定任务将在第一电子设备处执行并且用于执行任务的内容被远程定位到第一电子设备,数字助理向第一电子设备提供用于执行任务的内容。参考图15C,用于执行任务的内容可包括例如文档(例如,文档1560)或位置信息。例如,用户设备1500的数字助理接收到语音输入1556,诸如“在我的平板电脑上打开此PDF”。数字助理确定用户意图是执行显示文档1560的任务,并且确定该任务将在可通信地连接到用户设备1500的平板电脑1532上执行。因此,数字助理向平板电脑1532提供将显示的文档1560。作为另一个示例,用户设备1500的数字助理接收到语音输入1554,诸如“将此位置发送到我的电话”。数字助理确定用户意图是使用位置信息执行导航任务,并且确定该任务将在可通信地连接到用户设备1500的电话1522(例如,智能电话)上执行。因此,数字助理向电话1522提供位置信息(例如,1234主街)以执行导航的任务。
如前所述,在一些示例中,在向第一电子设备提供用于执行任务的内容之后,数字助理在用户设备处提供响应。在一些实施方案中,提供响应包括使任务将在第一电子设备处执行。例如,如图15D所示,用户设备1500的数字助理向电话1522传输请求,以执行导航到位置1234主街的任务。用户设备1500的数字助理进一步将请求传输至平板电脑1532以执行显示文档1560的任务。在一些示例中,在用户设备处提供响应包括根据将在第一电子设备处执行的任务提供口语输出。如图15D所示,数字助理提供口语输出1574诸如“在您的平板电脑上显示PDF”和口语输出1576诸如“在电话上导航到1234主街”。
如前所述,在一些示例中,语音输入可能不包括指示任务是在用户设备处还是在可通信地连接到用户设备的第一电子设备处执行的一个或多个关键字。参考图16A,例如,数字助理接收到语音输入1652,诸如“播放此影片”。语音输入1652未指示播放影片的任务是在用户设备1600上还是在第一电子设备(例如,机顶盒1620和/或电视1630、电话1622或平板电脑1632)上执行。
在一些实施方案中,为了确定是在用户设备处还是在第一电子设备处执行任务,用户设备的数字助理确定在用户设备处执行任务是否满足性能标准。性能标准有助于评估任务的执行。例如,如图16A所示,数字助理确定用户意图是执行播放影片ABC.mov的任务。用于播放影片的性能标准包括例如播放影片的质量标准(例如,480p、720p、1080p)、播放影片的流畅度标准(例如,不延迟或无需等待)、屏幕尺寸标准(例如,48寸的最小屏幕尺寸)、声音效果标准(例如,立体声、扬声器数量)等。性能标准可预先配置和/或动态更新。在一些示例中,性能标准基于诸如特定于用户的数据(例如,用户偏好)、设备配置数据(例如,屏幕分辨率和电子设备的尺寸)等的上下文信息来确定。
在一些示例中,用户设备1600的数字助理确定在用户设备处执行任务满足性能标准。例如,如图16A所示,用户设备1600可能具有满足播放影片ABC.mov(该影片可能是低分辨率在线视频)的性能标准的屏幕分辨率、屏幕尺寸和声音效果。根据确定在用户设备1600处执行任务满足性能标准,数字助理确定任务将在用户设备1600处执行。
在一些示例中,用户设备1600的数字助理确定在用户设备处执行任务不满足性能标准。例如,用户设备1600可能不具有满足播放影片ABC.mov的性能标准的屏幕尺寸、分辨率和/或声音效果,该影片可能是高分辨率在线视频。在一些示例中,根据确定在用户设备处执行任务不满足性能标准,用户设备1600的数字助理确定在第一电子设备处执行任务是否满足性能标准。如图16B所示,用户设备1600的数字助理确定在机顶盒1620和/或电视1630上执行播放影片ABC.mov的任务满足性能标准。例如,机顶盒1620和/或电视1630可能具有52寸的屏幕尺寸,可能具有1080p分辨率,并且可能连接有八个扬声器。因此,数字助理确定任务将在机顶盒1620和/或电视1630上执行。
在一些示例中,用户设备1600的数字助理确定在第一电子设备处执行任务不满足性能标准。根据确定,数字助理确定在第二电子设备处执行任务是否满足性能标准。例如,如图16B所示,电视1630可能具有不满足性能标准(例如,1080p)的屏幕分辨率(例如,720p)。因此,数字助理确定电话1622(例如智能手机)或平板电脑1632中的任何一者是否满足性能标准。
在一些示例中,数字助理确定哪个设备提供任务的最佳性能。例如,如图16B所示,数字助理评估或估计分别在用户设备1600、机顶盒1620和电视1630、电话1622以及平板电脑1632上执行播放影片ABC.mov的任务的性能。基于评估或估计,数字助理确定在一个设备(例如,用户设备1600)上执行任务是否优于在另一设备(例如,电话1622)上执行任务,并且确定可实现最佳性能的设备。
如前所述,在一些示例中,根据确定用于执行任务的设备,数字助理在用户设备1600上提供响应。在一些实施方案中,提供响应包括根据将在设备处执行的任务提供口语输出。如图16B所示,由示能表示1640或1641表示的数字助理提供口语输出1672,诸如“我将在您的电视上播放此影片,是否继续?”在一些示例中,数字助理从用户接收到语音输入1654,诸如“好的”。作为响应,数字助理将使得影片ABC.mov在例如机顶盒1620和电视1630上播放,并且提供口语输出1674,诸如“正在您的电视上播放您的影片”。
在一些示例中,提供响应包括提供一个或多个使得用户能够选择另一电子设备用于执行任务的示能表示。如图16B所示,例如,数字助理提供示能表示1655A-B(例如,取消按钮和平板电脑按钮)。示能表示1655A使得用户能够取消在机顶盒1620和电视1630上播放影片ABC.mov。示能表示1655B使得用户能够选择平板电脑1632以继续播放影片ABC.mov。
参考图16C,在一些实施方案中,为了确定用于执行任务的设备,用户设备1600的数字助理发起与用户的对话。例如,数字助理提供口语输出1676,诸如“我应该在电视上还是平板电脑上播放您的影片?”用户提供语音输入1656,诸如“在我的平板电脑上”。在接收到语音输入1656时,数字助理确定播放影片的任务将在可通信地连接到用户设备1600的平板电脑1632上执行。在一些示例中,数字助理进一步提供口语输出1678,诸如“正在您的平板电脑上播放您的影片”。
参考图17A,在一些实施方案中,用户设备1700的数字助理继续执行其中一部分在第一电子设备处远程执行的任务。在一些实施方案中,用户设备的数字助理继续使用从第三电子设备接收到的内容来执行任务。如图17A所示,在一些示例中,电话1720可能已经在使用来自第三电子设备(诸如服务器1730)的内容执行航班预订的任务。例如,用户可能已经在使用电话1720从Kayak.com预订航班。因此,电话1720接收从与Kayak.com相关联的服务器1730传输的内容。在一些示例中,用户可能会在通过电话1720预订航班时被中断,并且可能希望使用用户设备1700继续预订航班。在一些示例中,用户可能仅仅因为使用用户设备1700更方便而希望继续预订航班。因此,用户可能提供语音输入1752,诸如“通过我的电话继续在Kayak上预订航班”。
参考图17B,在接收到语音输入1752时,数字助理确定用户意图是执行航班预订的任务。在一些示例中,数字助理进一步基于上下文信息确定任务将在用户设备1700上执行。例如,数字助理确定语音输入1752在用户设备1700上被接收,因此确定该任务将在用户设备1700上执行。在一些示例中,数字助理进一步使用诸如用户偏好(例如,用户设备1700过去被频繁地用于航班预订)的上下文信息来确定任务将在用户设备1700上执行。
如图17B所示,根据确定任务将在用户设备1700处执行并且用于执行任务的内容位于远程位置,数字助理接收用于执行任务的内容。在一些示例中,数字助理从电话1720(例如,智能电话)接收内容的至少一部分和/或从服务器1730接收内容的至少一部分。例如,数字助理从电话1720接收到表示航班预订状态的数据,使得用户设备1700可继续航班预订。在一些示例中,表示航班预订状态的数据存储在服务器1730(诸如与Kayak.com相关联的服务器)上。因此,数字助理从服务器1730接收用于继续航班预订的数据。
如图17B所示,在从电话1720和/或服务器1730接收到内容之后,数字助理在用户设备1700上提供响应。在一些示例中,提供响应包括继续执行曾有一部分在电话1720上远程执行的航班预订任务。例如,数字助理显示用户界面1742,该用户界面使得用户能够继续在Kayak.com上预订航班。在一些示例中,提供响应包括提供与将在用户设备1700上执行的任务相关联的链接。例如,数字助理显示提供当前航班预订状态(例如,显示可订航班)的用户界面1742(例如,片段或窗口)。用户界面1742还提供用于继续执行航班预订任务的链接1744(例如,指向Web浏览器的链接)。在一些实施方案中,数字助理还提供口语输出1772,诸如“这是在Kayak上的预订。是否在您的Web浏览器中继续?”
如图17B和图17C所示,例如,如果用户选择链接1744,数字助理会实例化Web浏览过程,并且显示用户界面1746(例如,片段或窗口)用于继续执行航班预订任务。在一些示例中,响应于口语输出1772,用户提供语音输入1756(诸如“确定”),确认用户希望使用用户设备1700的Web浏览器继续航班预订。在接收到语音输入1756时,数字助理会实例化Web浏览过程,并且显示用户界面1746(例如,片段或窗口)用于继续航班预订任务。
参考图17D,在一些实施方案中,用户设备1700的数字助理继续执行曾有一部分在第一电子设备处远程执行的任务。在一些实施方案中,用户设备的数字助理继续使用从第一电子设备而不是第三电子设备(诸如服务器)接收的内容来执行任务。如图17D所示,在一些示例中,第一电子设备(例如,电话1720或平板电脑1732)可能已经在执行任务。例如,用户可能已经在使用电话1720来撰写电子邮件,或者可能已经在使用平板电脑1732来编辑诸如照片的文档。在一些示例中,用户在使用电话1720或平板电脑1732时被中断,和/或希望使用用户设备1700来继续执行任务。在一些示例中,用户可能仅仅因为使用用户设备1700更方便(例如大屏幕)而希望继续执行任务。因此,用户可能提供语音输入1758(诸如“打开我刚才正在编辑的文档”)或者语音输入1759(诸如“打开我刚才正在撰写的电子邮件草稿”)。
参考图17D,在接收到语音输入1758或1759时,数字助理确定用户意图是执行编辑文档或撰写电子邮件的任务。与上文所述的那些类似,在一些示例中,数字助理进一步基于上下文信息来确定任务将在用户设备1700上执行,并且确定用于执行任务的内容位于远程位置。与上文所述的那些类似,在一些示例中,数字助理基于上下文信息(例如,特定于用户的数据)确定内容位于远程的第一电子设备处(例如,在电话1720或平板电脑1732上),而不是在服务器上。如图17D所示,根据确定任务将在用户设备1700处执行并且用于执行任务的内容位于远程位置,数字助理接收用于执行任务的内容。在一些示例中,数字助理从电话1720(例如,智能电话)接收内容的至少一部分和/或从平板电脑1730接收内容的至少一部分。在从电话1720和/或平板电脑1732接收到内容之后,数字助理在用户设备1700处提供响应,诸如显示用户界面1748供用户继续编辑文档,和/或显示用户界面1749供用户继续撰写电子邮件。应当理解,用户设备1700的数字助理也可使第一电子设备继续执行曾有一部分在用户设备1700上远程执行的任务。例如,用户可能在用户设备1700上撰写电子邮件并且可能需要离开。用户提供语音输入,诸如“打开我在我的电话上撰写的电子邮件草稿”。基于语音输入,数字助理确定用户意图是在电话1720上继续执行任务,并且内容位于远程的用户设备1700上。在一些示例中,数字助理向第一电子设备提供用于执行任务的内容,并且使得第一电子设备继续执行任务,与上文所述的那些类似。
参考图17E,在一些实施方案中,任务的继续执行基于在多个设备之间共享或同步的上下文信息,包括例如用户设备1700和第一电子设备(例如,电话1720)之间。如前所述,在一些示例中,数字助理基于语音输入和上下文信息来确定用户意图。上下文信息可以本地存储或远程存储。例如,如图17E所示,用户向电话1720提供语音输入1760,诸如“纽约的天气如何?”。电话1720的数字助理确定用户意图,执行任务以获得纽约的天气信息,并且在电话1720的用户界面上显示纽约的天气信息。用户随后向用户设备1700提供语音输入1761,诸如“洛杉矶怎么样?”。在一些示例中,用户设备1700的数字助理使用存储在电话1720上或通过该电话共享的上下文信息直接或通过服务器确定用户意图。上下文信息包括例如与电话1720相关联的用户历史数据、会话状态、系统状态等。用户历史数据和会话状态两者都指示用户正在查询天气信息。因此,用户设备1700的数字助理确定用户意图是获得洛杉矶的天气信息。基于用户意图,用户设备1700的数字助理从例如服务器接收天气信息,并且在用户设备1710上提供显示天气信息的用户界面1751。
6.数字助理的示例性功能——支持语音的系统配置管理
图18A-图18F和图19A-图19D示出了数字助理响应于用户请求而提供系统配置信息或执行任务的功能。在一些示例中,数字助理系统(例如,数字助理系统700)可由用户设备根据各种示例来实现。在一些示例中,用户设备、服务器(例如,服务器108)或它们的组合可实现数字助理系统(例如,数字助理系统700)。例如,可使用设备104、200或400来实现用户设备。在一些示例中,用户设备是膝上型计算机、台式计算机或平板电脑。用户设备可在多任务环境中操作,诸如台式计算机环境。
参考图18A-图18F和图19A-图19D,在一些示例中,用户设备提供各种用户界面(例如,用户界面1810和1910)。与上文所述的那些类似,用户设备在显示器上显示各种用户界面,并且各种用户界面使得用户能够实例化一个或多个过程(例如,系统配置过程)。
如图18A-图18F和图19A-图19D所示,与上文所述的那些类似,用户设备在用户界面(例如,用户界面1810和1910)上显示示能表示(例如,示能表示1840和1940),以促进数字助理服务的实例化。
与上文所述的那些类似,在一些示例中,响应于接收到预先确定的短语来实例化数字助理。在一些示例中,响应于接收到对示能表示的选择来实例化数字助理。
参考图18A-图18F和图19A-图19D,在一些实施方案中,数字助理从用户接收一个或多个语音输入,诸如语音输入1852、1854、1856、1858、1860、1862、1952、1954、1956和1958。用户提供各种语音输入,用于管理用户设备的一项或多项系统配置的目的。系统配置可包括音频配置、日期和时间配置、口述配置、显示配置、输入设备配置、通知配置、打印配置、安全配置、备份配置、应用配置、用户界面配置等。要管理音频配置,语音输入可包括“静音我的麦克风”、“将音量调到最高”、“将音量提高10%”等。要管理日期和时间配置,语音输入可包括“我的时区是什么?”、“将我的时区更改为库比蒂诺时间”、“为伦敦时区添加时钟”等。要管理口述配置,语音输入可包括“打开口述”、“关闭口述”、“以中文口述”、“启用高级命令”等。要管理显示配置,语音输入可包括“将我的屏幕调亮”、“将对比度増加20%”、“将我的屏幕延伸至第二监视器”、“镜像我的显示器”等。要管理输入设备配置,语音输入可包括“连接我的蓝牙键盘”、“放大我的鼠标指针”等。要管理网络配置,语音输入可包括“打开Wi-Fi”、“关闭Wi-Fi”、“我将连接到哪个Wi-Fi网络?”、“我是否连接到了我的电话?”等。要管理通知配置,语音输入可包括“打开‘请勿打扰’”、“停止向我显示这些通知”、“仅显示新电子邮件”、“没有针对文本消息的提示”等。要管理打印配置,语音输入可包括“我的打印机是否有足够的墨水?”、“我的打印机是否已连接?”等。要管理安全配置,语音输入可包括“更改John的帐户密码”、“打开防火墙”、“禁用Cookie”等。要管理备份配置,语音输入可包括“立即运行备份”、“将备份间隔时间设置为一个月一次”、“恢复去年7月4日的备份”等。要管理应用配置,语音输入可包括“将我的默认Web浏览器更改为Safari”、“在我每次登入时自动登录到‘消息’应用”等。要管理用户界面配置,语音输入可包括“更改我的桌面墙纸”、“隐藏任务栏”、“将Evernote添加至任务栏”等。下文更详细地描述了使用语音输入管理系统配置的各种示例。
与上文所述的那些类似,在一些示例中,数字助理在用户设备处直接从用户接收语音输入,或通过可通信地连接到用户设备的另一电子设备间接接收语音输入。
参考图18A-图18F和图19A-图19D,在一些实施方案中,数字助理识别与用户设备相关联的上下文信息。上下文信息包括例如特定于用户的数据,传感器数据和用户设备配置数据。在一些示例中,特定于用户的数据包括指示用户偏好的日志信息、用户与用户设备交互的历史记录等。例如,特定于用户的数据指示上次备份用户系统的时间;以及当有多个Wi-Fi网络可用或类似时,用户对特定Wi-Fi网络的偏好。在一些示例中,传感器数据包括由传感器收集的各种数据。例如,传感器数据指示由打印机墨水量传感器收集的打印机墨水量。在一些示例中,用户设备配置数据包括当前设备配置和历史设备配置。例如,用户设备配置数据指示用户设备当前可通信地连接到使用蓝牙连接的一个或多个电子设备。电子设备可包括例如智能电话、机顶盒、平板电脑等。如下文更详细所述,用户设备可使用上下文信息确定用户意图和/或执行一个或多个过程。
参考图18A-图18F和图19A-图19D,与上文所述的那些类似,响应于接收到语音输入,数字助理基于语音输入确定用户意图。数字助理基于自然语言处理的结果确定用户意图。例如,数字助理基于用户输入识别可执行意图,并且生成结构化查询以表示所识别的可执行意图。结构化查询包括与可执行意图相关联的一个或多个参数。该一个或多个参数可用于促进基于可执行意图执行任务。例如,基于语音输入(诸如“将音量调高10%”),数字助理确定可执行意图是调节系统音量,并且参数包括将音量设置为比当前音量高10%。在一些实施方案中,数字助理还基于语音输入和上下文信息确定用户意图。例如,上下文信息可指示用户设备的当前音量为50%。因此,在接收到语音输入(诸如“将音量调高10%”)时,数字助理确定用户意图是将音量增大到60%。以下在各种示例中更详细地描述了基于语音输入和上下文信息确定用户意图。
在一些实施方案中,数字助理进一步确定用户意图是指示信息请求还是指示用于执行任务的请求。下文相对于图18A-图18F和图19A-图19D更详细地提供了确定的各种示例。
参考图18A,在一些示例中,用户设备显示与执行任务相关联的用户界面1832。例如,任务包括撰写会议邀请。在撰写会议邀请时,用户可能希望了解用户设备的时区,使得会议邀请能够被正确地撰写。在一些示例中,用户提供语音输入1852以调用由示能表示1840或1841表示的数字助理。语音输入1852包括例如“嘿,助理”。用户设备接收到语音输入1852,并且作为响应,调用数字助理,使得数字助理主动监测后续语音输入。在一些示例中,数字助理提供指示其已被调用的口语输出1872。例如,口语输出1872包括“开始吧,我正在收听”。
参考图18B,在一些示例中,用户提供语音输入1854,诸如“我的时区是什么?”数字助理确定用户意图是获得用户设备的时区。数字助理进一步确定用户意图是指示信息请求还是指示执行任务的请求。在一些示例中,确定用户意图是指示信息请求还是指示用于执行任务的请求包括确定用户意图是否是改变系统配置。例如,基于确定用户意图是获得用户设备的时区,数字助理确定没有系统配置被改变。因此,数字助理确定用户意图指示信息请求。
在一些实施方案中,根据确定用户意图指示信息请求,数字助理提供对信息请求的口语响应。在一些示例中,数字助理根据信息请求获得一项或多项系统配置的状态,并且根据一项或多项系统配置的状态提供口语响应。如图18B所示,数字助理确定用户意图是获得用户设备的时区,并且该用户意图指示信息请求。因此,数字助理从用户设备的时间和日期配置获得时区状态。时区状态指示例如用户设备被设置为太平洋时区。基于该时区状态,数字助理提供口语输出1874,诸如“您的计算机被设置为太平洋标准时间”。在一些示例中,数字助理进一步提供与信息请求相关联的链接。如图18B所示,数字助理提供链接1834,使得用户能够进一步管理数据和时间配置。在一些示例中,用户使用输入设备(例如,鼠标)来选择链接1834。在接收到用户对链接1834的选择时,数字助理实例化日期和时间配置过程,并显示相关联的日期和时间配置用户界面。因此,用户可以使用日期和时间配置用户界面来进一步管理日期和时间配置。
参考图18C,在一些示例中,用户设备显示与执行任务相关联的用户界面1836。例如,任务包括播放视频(例如,ABC.mov)。为了増强观看视频的体验,用户可能希望使用扬声器,并且可能想知道蓝牙扬声器是否已连接。在一些示例中,用户提供语音输入1856,诸如“我的蓝牙扬声器是否已连接?”。数字助理确定用户意图是获得蓝牙扬声器1820的连接状态。数字助理进一步确定获得蓝牙扬声器1820的连接状态不会改变任何系统配置,因此是信息请求。
在一些实施方案中,根据确定用户意图指示信息请求,数字助理根据信息请求获得系统配置的状态,并且根据系统配置的状态提供口语响应。如图18C所示,数字助理从用户设备的网络配置获得连接状态。连接状态指示例如用户设备1800未连接到蓝牙扬声器1820。基于连接状态,数字助理提供口语输出1876,诸如“否,它未连接,您可以在网络配置中检查蓝牙设备”。在一些示例中,数字助理进一步提供与信息请求相关联的链接。如图18C所示,数字助理提供链接1838,使得用户能够进一步管理网络配置。在一些示例中,用户使用输入设备(例如,鼠标)来选择链接1838。在接收到用户对链接1838的选择时,数字助理实例化网络配置过程,并显示相关联的网络配置用户界面。因此,用户可以使用网络配置用户界面来进一步管理网络配置。
参考图18D,在一些示例中,用户设备显示与执行任务相关联的用户界面1842。例如,任务包括查看和/或编辑文档。用户可能希望打印文档,并且可能想知道打印机1830是否有足够的墨水用于打印作业。在一些示例中,用户提供语音输入1858,诸如“我的打印机是否有足够的墨水?”数字助理确定用户意图是获得打印机的打印机墨水量状态。数字助理进一步确定,获得打印机墨水量状态不改变任何系统配置,因此是信息请求。
在一些实施方案中,根据确定用户意图指示信息请求,数字助理根据信息请求获得系统配置的状态,并且根据系统配置的状态提供口语响应。如图18D所示,数字助理从用户设备的打印配置获得打印机墨水量状态。打印机墨水量状态指示例如打印机1830的打印机墨水量为50%。基于连接状态,数字助理提供口语输出1878,诸如“是,您的打印机有足够的墨水。您还可以在打印机配置中查找打印机墨水供给量。”在一些示例中,数字助理进一步提供与信息请求相关联的链接。如图18D所示,数字助理提供链接1844,使得用户能够进一步管理打印机配置。在一些示例中,用户使用输入设备(例如,鼠标)来选择链接1844。在接收到用户对链接的选择时,数字助理实例化打印机配置过程,并显示相关联的打印机配置用户界面。因此,用户可以使用打印机配置用户界面来进一步管理打印机配置。
参考图18E,在一些示例中,用户设备显示与执行任务相关联的用户界面1846。例如,任务包括使用Web浏览器(例如Safari)浏览互联网。要浏览互联网,用户可能希望了解可用的Wi-Fi网络并选择一个Wi-Fi网络来连接。在一些示例中,用户提供语音输入1860,诸如“哪些Wi-Fi网络可用?”数字助理确定用户意图是获得可用Wi-Fi网络的列表。数字助理进一步确定获得可用Wi-Fi网络的列表不改变任何系统配置,因此是信息请求。
在一些实施方案中,根据确定用户意图指示信息请求,数字助理根据信息请求获得系统配置的状态,并且根据系统配置的状态提供口语响应。如图18E所示,数字助理从用户设备的网络配置获得当前可用Wi-Fi网络的状态。当前可用Wi-Fi网络的状态指示例如Wi-Fi网络1、Wi-Fi网络2和Wi-Fi网络3可用。在一些示例中,该状态进一步指示Wi-Fi网络中的每一个的信号强度。数字助理显示根据该状态提供信息的用户界面1845。例如,用户界面1845提供可用Wi-Fi网络的列表。数字助理还提供口语输出1880,诸如“这是可用Wi-Fi网络的列表”。在一些示例中,数字助理进一步提供与信息请求相关联的链接。如图18E所示,数字助理提供链接1847,使得用户能够进一步管理网络配置。在一些示例中,用户使用输入设备(例如,鼠标)来选择链接1847。在接收到用户对链接1847的选择时,数字助理实例化网络配置过程,并显示相关联的网络配置用户界面。因此,用户可以使用网络配置用户界面来进一步管理配置。
参考图18F,在一些示例中,用户设备显示与执行任务相关联的用户界面1890。例如,任务包括准备会议议程。在准备会议议程时,用户可能希望为会议查找日期和时间。在一些示例中,用户提供语音输入1862,诸如“在我的日历上查找一个时间用于在下周二上午举行会议”。数字助理确定用户意图是在用户的日历上查找属于下周二上午的可用时隙。数字助理进一步确定查找时隙不改变任何系统配置,因此是信息请求。
在一些实施方案中,根据确定用户意图指示信息请求,数字助理根据信息请求获得系统配置的状态,并且根据系统配置的状态提供口语响应。如图18F所示,数字助理从日历配置获得用户日历的状态。用户日历的状态指示例如星期二上午9点或上午11点仍然有空。数字助理显示根据状态提供信息的用户界面1891。例如,用户界面1891提供在用户请求的日期和时间附近的用户日历。在一些示例中,数字助理还提供口语输出1882,诸如“看起来星期二上午9点或11点有空”。在一些示例中,数字助理进一步提供与信息请求相关联的链接。如图18F所示,数字助理提供链接1849,使得用户能够进一步管理日历配置。在一些示例中,用户使用输入设备(例如,鼠标)来选择链接1849。在接收到用户对链接1849的选择时,数字助理实例化日历配置过程,并显示相关联的日历配置用户界面。因此,用户可以使用日历配置用户界面来进一步管理配置。
参考图19A,用户设备显示与执行任务相关联的用户界面1932。例如,任务包括播放视频(例如,ABC.mov)。在播放视频时,用户可能希望调高音量。在一些示例中,用户提供语音输入1952,诸如“将音量开到最大”。数字助理确定用户意图是将音量増大到其最大水平。数字助理进一步确定用户意图是指示信息请求还是指示用于执行任务的请求。例如,基于确定用户意图是增大用户设备的音量,数字助理确定某项音频配置将被改变,因此用户意图指示用于执行任务的请求。
在一些实施方案中,根据确定用户意图指示用于执行任务的请求,数字助理实例化与用户设备相关联的过程来执行任务。实例化过程包括调用尚未运行的过程。如果过程的至少一个实例正在运行,则实例化过程包括执行该过程的现有实例或生成该过程的新实例。例如,实例化音频配置过程包括使用现有音频配置过程调用音频配置过程,或者生成音频配置过程的新实例。在一些示例中,实例化过程包括使用该过程执行任务。例如,如图19A所示,根据用户意图是将音量増大到其最大水平,数字助理实例化音频配置过程来将音量设置为其最大水平。在一些示例中,数字助理进一步提供口语输出1972,诸如“确定,我将音量调到了最大”。
参考图19B,用户设备显示与执行任务相关联的用户界面1934。例如,任务包括查看或编辑文档。用户可能希望降低屏幕亮度来保护眼睛。在一些示例中,用户提供语音输入1954,诸如“将屏幕亮度设置为降低10%”。数字助理基于语音输入1954和上下文信息来确定用户意图。例如,上下文信息指示当前亮度配置为90%。因此,数字助理确定用户意图是将亮度水平从90%降低到80%。数字助理进一步确定用户意图是指示信息请求还是指示用于执行任务的请求。例如,基于确定用户意图是将屏幕亮度更改为80%,数字助理确定某项显示配置将被改变,因此用户意图指示用于执行任务的请求。
在一些实施方案中,根据确定用户意图指示用于执行任务的请求,数字助理实例化一个过程来执行任务。例如,如图19B所示,根据用户意图改变亮度水平,数字助理实例化显示配置过程来将亮度水平降低至80%。在一些示例中,数字助理进一步提供口语输出1974,诸如“确定,我将屏幕亮度调到了80%”。在一些示例中,如图19B所示,数字助理提供示能表示1936,使得用户能够操纵执行任务的结果。例如,示能表示1936可以是允许用户进一步改变亮度水平的滑动条。
参考图19C,用户设备显示与执行任务相关联的用户界面1938。例如,任务包括提供一个或多个通知。通知可包括电子邮件的提示、消息、提醒等。在一些示例中,通知在用户界面1938中提供。通知可实时或在用户设备处可用后立即显示或提供给用户。例如,在用户设备接收到通知之后,通知立即出现在用户界面1938和/或用户界面1910上。有时,用户可能在执行重要任务(例如编辑文档),并且可能不想被通知干扰。在一些示例中,用户提供语音输入1956,诸如“传入电子邮件时不通知我”。数字助理确定用户意图是关闭关于电子邮件的提示。基于确定用户意图是关闭传入电子邮件的提示,数字助理确定通知配置将被改变,因此用户意图指示用于执行任务的请求。
在一些实施方案中,根据确定用户意图指示用于执行任务的请求,数字助理实例化一个过程来执行任务。例如,如图19C所示,根据用户意图,数字助理实例化通知配置过程以关闭电子邮件的提示。在一些示例中,数字助理进一步提供口语输出1976,诸如“确定,我关闭了针对邮件的通知”。在一些示例中,如图19C所示,数字助理提供用户界面1942(例如,片段或窗口),使得用户能够操纵执行任务的结果。例如,用户界面1942提供示能表示1943(例如,取消按钮)。如果用户希望继续接收电子邮件的通知,例如,用户可选择示能表示1943以重新打开关于电子邮件的通知。在一些示例中,用户还可提供其他语音输入,诸如“传入电子邮件时通知我”以打开电子邮件的通知。
参考图19D,在一些实施方案中,数字助理可能无法基于用户的语音输入完成任务,因此可提供用户界面以使得用户能够执行任务。如图19D所示,在一些示例中,用户提供语音输入1958,诸如“在我的屏幕保护程序上显示自定义消息”。数字助理确定用户意图是将屏幕保护程序设置更改为显示自定义消息。数字助理进一步确定用户意图是改变显示配置,因此用户意图指示用于执行任务的请求。
在一些实施方案中,根据确定用户意图指示用于执行任务的请求,数字助理实例化与用户设备相关联的过程来执行任务。在一些示例中,如果数字助理无法基于用户意图完成任务,则它提供使得用户能够执行任务的用户界面。例如,基于语音输入1958,数字助理可能无法确定将在屏幕保护程序上显示的自定义消息的内容,因此无法完成用于显示自定义消息的任务。如图19D所示,在一些示例中,数字助理实例化显示配置过程并提供用户界面1946(例如,片段或窗口)以使得用户能够手动更改屏幕保护程序设置。作为另一个示例,数字助理提供链接1944(例如,指向显示配置的链接),使得用户能够执行任务。用户通过使用诸如鼠标、手指或触笔的输入设备来选择链接1944。在接收到用户的选择时,数字助理实例化显示配置过程并显示用户界面1946,以使得用户能够更改屏幕保护程序设置。在一些示例中,数字助理进一步提供口语输出1978,诸如“您可以在屏幕保护程序配置中浏览屏幕保护程序选项”。
7.用于操作数字助理的过程——智能搜索和对象管理。
图20A-图20G示出了根据一些实施方案用于操作数字助理的示例性过程2000的流程图。过程2000可使用一个或多个设备104、108、200、400、或600(图1、图2A、图4或图6A-图6B)来执行。过程2000中的操作任选地被组合或拆分,和/或一些操作的次序任选地被更改。
参考图20A,在框2002处,在接收到第一语音输入之前,将调用数字助理服务的示能表示被显示在与用户设备相关联的显示器上。在框2003处,响应于接收到预先确定的短语来调用数字助理。在框2004处,响应于接收到对示能表示的选择来调用数字助理。
在框2006处,从用户接收第一语音输入。在框2008处,识别与用户设备相关联的上下文信息。在框2009处,上下文信息包括以下中的至少一者:特定于用户的数据、与一个或多个对象相关联的元数据、传感器数据和用户设备配置数据。
在框2010处,基于第一语音输入和上下文信息来确定用户意图。在框2012处,为了确定用户意图,确定一个或多个可执行意图。在框2013处,确定与可执行意图相关联的一个或多个参数。
参考图20B,在框2015处,确定用户意图是使用搜索方法还是对象管理方法来执行任务。搜索方法被配置为搜索存储在用户设备内部或外部的数据,而对象管理方法被配置为管理与用户设备相关联的对象。在框2016处,确定语音输入是否包括表示搜索方法或对象管理方法的一个或多个关键字。在框2018处,确定任务是否与搜索相关联。在框2020处,根据确定任务与搜索相关联,确定执行任务是否需要搜索方法。在框2021处,根据确定执行任务不需要搜索方法,输出选择搜索方法或对象管理方法的语音请求,并且从用户接收第二语音输入。第二语音输入指示搜索方法或对象管理方法的选择。
在框2022处,根据确定执行任务不需要搜索方法,基于预先确定的配置来确定任务将使用搜索方法还是对象管理方法来执行。
参考图20C,在框2024处,根据确定任务不与搜索相关联,确定任务是否与管理至少一个对象相关联。在框2025处,根据确定任务不与管理至少一个对象相关联,执行以下操作中的至少一项:确定该任务是否可以使用可用于用户设备的第四过程执行,并发起与用户的对话。
在框2026处,根据确定用户意图是使用搜索方法执行任务,使用搜索方法执行任务。在框2028处,使用搜索方法搜索至少一个对象。在框2029处,至少一个对象包括文件夹或文件中的至少一者。在框2030处,文件包括照片、音频或视频中的至少一者。在框2031处,文件被存储在用户设备内部或外部。在框2032处,搜索文件夹或文件中的至少一者基于与文件夹或文件相关联的元数据。在框2034处,至少一个对象包括通信。在框2035处,通信包括电子邮件、消息、通知或语音邮件中的至少一者。在框2036处,搜索与通信相关联的元数据。
参考图20D,在框2037处,至少一个对象包括联系人或日历中的至少一者。在框2038处,至少一个对象包括应用。在框2039处,至少一个对象包括在线信息源。
在框2040处,根据确定用户意图是使用对象管理方法执行任务,使用对象管理方法执行任务。在框2042处,任务与搜索相关联,并且使用对象管理方法搜索至少一个对象。在框2043处,至少一个对象包括文件夹或文件中的至少一者。在框2044处,文件包括照片、音频或视频中的至少一者。在框2045处,文件被存储在用户设备内部或外部。在框2046处,搜索文件夹或文件中的至少一者基于与文件夹或文件相关联的元数据。
在框2048处,对象管理方法被实例化。实例化对象管理方法包括调用对象管理方法、生成对象管理方法的新实例或执行对象管理方法的现有实例。
参考图20E,在框2049处,至少一个对象被创建。在框2050处,至少一个对象被存储。在框2051处,至少一个对象被压缩。在框2052处,至少一个对象被从第一物理存储或虚拟存储移动到第二物理存储或虚拟存储。在框2053处,至少一个对象被从第一物理存储或虚拟存储复制到第二物理存储或虚拟存储。在框2054处,至少一个存储在物理存储或虚拟存储中的对象被删除。在框2055处,至少一个存储在物理存储或虚拟存储中的对象被恢复。在框2056处,至少一个对象被标记。至少一个对象的标记为可见的或与至少一个对象的元数据相关联中的至少一者。在框2057处,根据备份的预先确定的时间段来备份至少一个对象。在框2058处,在可通信地连接到用户设备的一个或多个电子设备之间共享至少一个对象。
参考图20F,在框2060处,基于使用搜索方法或对象管理方法执行任务的结果来提供响应。在框2061处,显示提供使用搜索方法或对象管理方法执行任务的结果的第一用户界面。在框2062处,显示与使用搜索方法执行任务的结果相关联的链接。在框2063处,根据使用搜索方法或对象管理方法执行任务的结果来提供口语输出。
在框2064处,提供一种示能表示,该示能表示使得用户能够操纵使用搜索方法或对象管理方法执行任务的结果。在框2065处,实例化使用执行任务的结果进行操作的第三过程。
参考图20F,在框2066处,确定置信度水平。在框2067处,置信度水平表示基于与用户设备相关联的第一语音输入和上下文信息来确定用户意图的准确性。在框2068处,置信度水平表示确定用户意图是使用搜索方法还是对象管理方法来执行任务的准确性。
参考图20G,在框2069处,置信度水平表示使用搜索方法或对象管理方法执行任务的准确性。
在框2070处,根据确定的置信度水平提供响应。在框2071处,确定置信度水平是否大于或等于阈值置信度水平。在框2072处,根据确定置信度水平大于或等于阈值置信度水平,提供第一响应。在框2073处,根据确定置信度水平小于阈值置信度水平,提供第二响应。
8.用于操作数字助理的过程——连续性。
图21A-图21E示出了根据一些实施方案用于操作数字助理的示例性过程2100的流程图。过程2100可使用一个或多个设备104、108、200、400、600、1400、1500、1600或1700(图1、图2A、图4、图6A-图6B、图14A-图14D、图15A-图15D、图16A-图16C和图17A-17E)来执行。过程2100中的一些操作任选地被组合或拆分,和/或一些操作的次序任选地被改变。
参考图21A,在框2102处,在接收到第一语音输入之前,将调用数字助理服务的示能表示被显示在与用户设备相关联的显示器上。在框2103处,响应于接收到预先确定的短语来调用数字助理。在框2104处,响应于接收到对示能表示的选择来调用数字助理。
在框2106处,从用户接收到第一语音输入以执行任务。在框2108处,识别与用户设备相关联的上下文信息。在框2109处,用户设备被配置为提供多个用户界面。在框2110处,用户设备包括膝上型计算机、台式计算机或服务器。在框2112处,上下文信息包括以下中的至少一者:特定于用户的数据、与一个或多个对象相关联的元数据、传感器数据和用户设备配置数据。
在框2114处,基于语音输入和上下文信息来确定用户意图。在框2115处,为确定用户意图,确定一个或多个可执行意图。在框2116处,确定与可执行意图相关联的一个或多个参数。
参考图21B,在框2118处,根据用户意图,确定将在用户设备处还是在可通信地连接到用户设备的第一电子设备处执行任务。在框2120处,第一电子设备包括膝上型计算机、台式计算机、服务器、智能电话、平板电脑、机顶盒或手表。在框2121处,确定任务将在用户设备处执行还是在第一电子设备处执行基于包括在语音输入中的一个或多个关键字。在框2122处,确定在用户设备处执行任务是否满足性能标准。在框2123处,基于一项或多项用户偏好来确定性能标准。在框2124处,基于设备配置数据来确定性能标准。在框2125处,动态地更新性能标准。在框2126处,根据确定在用户设备处执行任务满足性能标准,确定任务将在用户设备处执行。
参考图21C,在框2128处,根据确定在用户设备处执行任务不满足性能标准,确定在第一电子设备处执行任务是否满足性能标准。在框2130处,根据确定在第一电子设备处执行任务满足性能标准,确定任务将在第一电子设备处执行。在框2132处,根据确定在第一电子设备处执行任务不满足性能标准,确定在第二电子设备处执行任务是否满足性能标准。
在框2134处,根据确定任务将在用户设备处执行并且用于执行任务的内容位于远程位置,接收用于执行任务的内容。在框2135处,从第一电子设备接收内容的至少一部分。内容的至少一部分存储在第一电子设备中。在框2136处,从第三电子设备接收内容的至少一部分。
参考图21D,在框2138处,根据确定任务将在第一电子设备处执行并且用于执行任务的内容被远程定位到第一电子设备,用于执行任务的内容被提供给第一电子设备。在框2139处,内容的至少一部分从用户设备提供给第一电子设备。内容的至少一部分存储在用户设备中。在框2140处,使内容的至少一部分从第四电子设备提供给第一电子设备。内容的至少一部分存储在第四电子设备中。
在框2142处,任务将在用户设备处执行。使用所接收的内容在用户设备处提供第一响应。在框2144处,任务在用户设备处执行。在框2145处,在用户设备处执行任务是部分地在用户设备处远程执行的任务的延续。在框2146处,显示与将在用户设备处执行的任务相关联的第一用户界面。在框2148处,与任务相关联的链接将在用户设备处执行。在框2150处,根据将在用户设备处执行的任务提供口语输出。
参考图21E,在框2152处,任务将在第一电子设备处执行,并且在用户设备处提供第二响应。在框2154处,任务将在第一电子设备处执行。在框2156处,将在第一电子设备处执行的任务是在第一电子设备处远程执行的任务的延续。在框2158处,根据将在第一电子设备处执行的任务提供口语输出。在框2160处,根据将在第一电子设备处执行的任务提供口语输出。
9.用于操作数字助理的过程——系统配置管理。
图22A-图22D示出了根据一些实施方案的用于操作数字助理的示例性过程2200的流程图。过程2200可使用一个或多个设备104、108、200、400、600、或1800(图1、图2A、图4、图6A-图6B和图18C-图18D)来执行。过程2200中的操作任选地被组合或拆分,和/或一些操作的次序任选地被更改。
参考图22A,在框2202处,在接收到语音输入之前,将调用数字助理服务的示能表示被显示在与用户设备相关联的显示器上。在框2203处,响应于接收到预先确定的短语来调用数字助理。在框2204处,响应于接收到对示能表示的选择来调用数字助理。
在框2206处,从用户接收到语音输入来管理用户设备的一项或多项系统配置。用户设备被配置为同时提供多个用户界面。在框2207处,用户设备的一项或多项系统配置包括音频配置。在框2208处,用户设备的一项或多项系统配置包括日期和时间配置。在框2209处,用户设备的一项或多项系统配置包括口述配置。在框2210处,用户设备的一项或多项系统配置包括显示配置。在框2211处,用户设备的一项或多项系统配置包括输入设备配置。在框2212处,用户设备的一项或多项系统配置包括网络配置。在框2213处,用户设备的一项或多项系统配置包括通知配置。
参考图22B,在框2214处,用户设备的一项或多项系统配置包括打印机配置。在框2215处,用户设备的一项或多项系统配置包括安全性配置。在框2216处,用户设备的一项或多项系统配置包括备份配置。在框2217处,用户设备的一项或多项系统配置包括应用配置。在框2218处,用户设备的一项或多项系统配置包括用户界面配置。
在框2220处,识别与用户设备相关联的上下文信息。在框2223处,上下文信息包括以下中的至少一者:特定于用户的数据、设备配置数据和传感器数据。在框2224处,基于语音输入和上下文信息来确定用户意图。在框2225处,确定一个或多个可执行意图。在框2226处,确定与可执行意图相关联的一个或多个参数。
参考图22C,在框2228处,确定用户意图是指示信息请求还是指示用于执行任务的请求。在框2229处,确定用户意图是否将改变系统配置。
在框2230处,根据确定用户意图指示信息请求,提供对信息请求的口语响应。在框2231处,根据信息请求获得一项或多项系统配置的状态。在框2232处,根据一项或多项系统配置的状态提供口语响应。
在框2234处,除了提供对信息请求的口语响应之外,还显示了根据一项或多项系统配置的状态提供信息的第一用户界面。在框2236处,除了提供对信息请求的口语响应之外,还提供了与信息请求相关联的链接。
在框2238处,根据确定用户意图指示用于执行任务的请求,实例化与用户设备相关联的过程以执行任务。在框2239处,使用该过程执行该任务。在框2240处,根据执行任务的结果提供第一口语输出。
参考图22D,在框2242处,提供了第二用户界面以使得用户能够操纵执行任务的结果。在框2244处,第二用户界面包括与执行任务的结果相关联的链接。
在框2246处,提供第三用户界面以使得用户能够执行任务。在框2248处,第三用户界面包括使得用户能够执行任务的链接。在框2250处,提供与第三用户界面相关联的第二口语输出。
10.电子设备——智能搜索和对象管理
图23示出了根据各种所述示例的原理进行配置的电子设备2300的功能框图,包括参考图8A-图8F、图9A-图9H、图10A-图10B、图11A-图11F、图12A-图12D、图13A-图13C、图14A-图14D、图15A-图15D、图16A-图16C、图17A-图17E、图18A-图18F和图19A-图19D所述的那些。该设备的功能块可任选地由执行各种所述示例的原理的硬件、软件、或硬件和软件的组合来实现。本领域的技术人员应当理解,图23中所述的功能块可任选地被组合或被分离为子块,以便实现各种示例的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合、分离或进一步限定。
如图23所示,电子设备2300可包括麦克风2302和处理单元2308。在一些示例中,处理单元2308包括接收单元2310、识别单元2312、确定单元2314、执行单元2316、提供单元2318、实例化单元2320、显示单元2322、输出单元2324、启动单元2326、搜索单元2328、生成单元2330、执行单元2332、创建单元2334、实例化单元2335、存储单元2336、压缩单元2338、复制单元2340、删除单元2342、恢复单元2344、标记单元2346、备份单元2348、共享单元2350、致使单元2352和获取单元2354。
在一些示例中,处理单元2308被配置为从用户接收(例如,利用接收单元2310)第一语音输入;识别(例如,利用识别单元2312)与用户设备相关联的上下文信息;以及基于第一语音输入和上下文信息确定(例如,利用确定单元2314)用户意图。
在一些示例中,处理单元2308被配置为确定(例如,利用确定单元2314)用户意图是使用搜索方法还是对象管理方法来执行任务。搜索方法被配置为搜索存储在用户设备内部或外部的数据,而对象管理方法被配置为管理与用户设备相关联的对象。
在一些示例中,根据确定用户意图是使用搜索方法来执行任务,处理单元2308被配置为使用搜索方法来执行(例如,利用执行单元2316)任务。在一些示例中,根据确定用户意图是使用对象管理方法执行任务,处理单元2308被配置为使用对象管理方法执行(例如,利用执行单元2316)任务。
在一些示例中,在接收到第一语音输入之前,处理单元2308被配置为在与用户设备相关联的显示器上显示(例如,利用显示单元2322)示能表示来调用数字助理服务。
在一些示例中,处理单元2308被配置为响应于接收到预先确定的短语来调用(例如,利用调用单元2320)数字助理。
在一些示例中,处理单元2308被配置为响应于接收到对示能表示的选择来调用(例如,利用调用单元2320)数字助理。
在一些示例中,处理单元2308被配置为确定(例如,利用确定单元2314)一个或多个可执行意图;以及确定(例如,利用确定单元2314)与可执行意图相关联的一个或多个参数。
在一些示例中,上下文信息包括以下中的至少一者:特定于用户的数据、与一个或多个对象相关联的元数据、传感器数据和用户设备配置数据。
在一些示例中,处理单元2308被配置为确定(例如,利用确定单元2314)语音输入是否包括表示搜索方法或对象管理方法的一个或多个关键字。
在一些示例中,处理单元2308被配置为确定(例如,利用确定单元2314)任务是否与搜索相关联。根据确定任务与搜索相关联,处理单元2308被配置为确定(例如,利用确定单元2314)执行任务是否需要搜索方法;并且根据确定任务不与搜索相关联,确定(例如,利用确定单元2314)任务是否与管理至少一个对象相关联。
在一些示例中,任务与搜索相关联,并且根据确定执行任务不需要搜索方法,处理单元2308被配置为输出(例如,利用输出单元2324)指示选择搜索方法或对象管理方法的口语请求,或者从用户接收(例如,利用接收单元2310)指示选择搜索方法或对象管理方法的第二语音输入。
在一些示例中,任务与搜索相关联,并且根据确定执行任务不需要搜索方法,处理单元2308被配置为基于预先确定的配置确定(例如,利用确定单元2314)将使用搜索方法还是对象管理方法来执行任务。
在一些示例中,任务不与搜索相关联,并且根据确定任务不与管理至少一个对象相关联,处理单元2308被配置为执行(例如,利用执行单元2316)以下中的至少一者:确定(例如,利用确定单元2314)是否可以使用可用于用户设备的第四过程来执行任务;以及发起(例如,利用发起单元2326)与用户的对话。
在一些示例中,处理单元2308被配置为使用搜索方法搜索(例如,利用搜索单元2328)至少一个对象。
在一些示例中,至少一个对象包括文件夹或文件中的至少一者。文件包括照片、音频或视频中的至少一者。文件被存储在用户设备内部或外部。
在一些示例中,搜索文件夹或文件中的至少一者基于与文件夹或文件相关联的元数据。
在一些示例中,至少一个对象包括通信。通信包括电子邮件、消息、通知或语音邮件中的至少一者。
在一些示例中,处理单元2308被配置为搜索(例如,利用搜索单元2328)与通信相关联的元数据。
在一些示例中,至少一个对象包括联系人或日历中的至少一者。
在一些示例中,至少一个对象包括应用。
在一些示例中,至少一个对象包括在线信息源。
在一些示例中,任务与搜索相关联,并且处理单元2308被配置为使用对象管理方法搜索(例如,利用搜索单元2328)至少一个对象。
在一些示例中,至少一个对象包括文件夹或文件中的至少一者。文件包括照片、音频或视频中的至少一者。文件被存储在用户设备内部或外部。
在一些示例中,搜索文件夹或文件中的至少一者基于与文件夹或文件相关联的元数据。
在一些示例中,处理单元2308被配置为实例化(例如,利用实例化单元2335)对象管理方法。对象管理方法的实例化包括调用对象管理方法、生成对象管理方法的新实例或执行对象管理方法的现有实例。
在一些示例中,处理单元2308被配置为创建(例如,利用创建单元2334)至少一个对象。
在一些示例中,处理单元2308被配置为存储(例如,利用存储单元2336)至少一个对象。
在一些示例中,处理单元2308被配置为压缩(例如,利用压缩单元2338)至少一个对象。
在一些示例中,处理单元2308被配置为将至少一个对象从第一物理存储或虚拟存储移动(例如,利用移动单元2339)到第二物理存储或虚拟存储。
在一些示例中,处理单元2308被配置为将至少一个对象从第一物理存储或虚拟存储复制(例如,利用复制单元2340)到第二物理存储或虚拟存储。
在一些示例中,处理单元2308被配置为删除(例如,利用删除单元2342)存储在物理存储或虚拟存储中的至少一个对象。
在一些示例中,处理单元2308被配置为恢复(例如,利用恢复单元2344)存储在物理存储或虚拟存储中的至少一个对象。
在一些示例中,处理单元2308被配置为标记(例如,利用标记单元2346)至少一个对象。至少一个对象的标记为可见的或与至少一个对象的元数据相关联中的至少一者。
在一些示例中,处理单元2308被配置为根据预先确定的针对备份的时间段备份(例如,利用备份单元2348)至少一个对象。
在一些示例中,处理单元2308被配置为在可通信地连接到用户设备的一个或多个电子设备之间共享(例如,利用共享单元2350)至少一个对象。
在一些示例中,处理单元2308被配置为基于使用搜索方法或对象管理方法执行任务的结果来提供(例如,利用提供单元2318)响应。
在一些示例中,处理单元2308被配置为显示(例如,利用显示单元2322)第一用户界面,该第一用户界面提供使用搜索方法或对象管理方法执行任务的结果。
在一些示例中,处理单元2308被配置为提供(例如,利用提供单元2318)与使用搜索方法执行任务的结果相关联的链接。
在一些示例中,处理单元2308被配置为根据使用搜索方法或对象管理方法执行任务的结果提供(例如,利用提供单元2318)口语输出。
在一些示例中,处理单元2308被配置为提供(例如,利用提供单元2318)示能表示,该示能表示使得用户能够操纵使用搜索方法或对象管理方法执行任务的结果。
在一些示例中,处理单元2308被配置为实例化(例如,利用实例化单元2335)使用执行任务的结果进行操作的第三过程。
在一些示例中,处理单元2308被配置为确定(例如,利用确定单元2314)置信度水平;以及根据确定的置信度水平提供(例如,利用提供单元2318)响应。
在一些示例中,置信度水平表示基于与用户设备相关联的第一语音输入和上下文信息来确定用户意图的准确性。
在一些示例中,置信度水平表示确定用户意图是使用搜索方法还是对象管理方法来执行任务的准确性。
在一些示例中,置信度水平表示使用搜索方法或对象管理方法执行任务的准确性。
在一些示例中,处理单元2308被配置为确定(例如,利用确定单元2314)置信度水平是否大于或等于阈值置信度水平。根据确定置信度水平大于或等于阈值置信度水平,处理单元2308被配置为提供(例如,利用提供单元2318)第一响应;以及根据确定置信度水平小于阈值置信度水平,处理单元2308被配置为提供(例如,利用提供单元2318)第二响应。
11.电子设备——连续性
在一些示例中,处理单元2308被配置为从用户接收(例如,利用接收单元2310)语音输入来执行任务;识别(例如,利用识别单元2312)与用户设备相关联的上下文信息;以及基于与用户设备相关联的语音输入和上下文信息确定(例如,利用确定单元2314)用户意图。
在一些示例中,处理单元2308被配置为根据用户意图确定(例如,利用确定单元2314)任务将在用户设备处执行,还是在可通信地连接到用户设备的第一电子设备处执行。
在一些示例中,根据确定任务将在用户设备处执行并且用于执行任务的内容被远程定位,处理单元2308被配置为接收(例如,利用接收单元2310)用于执行任务的内容。
在一些示例中,根据确定任务将在第一电子设备处执行并且用于执行任务的内容被远程定位到第一电子设备,处理单元2308被配置为向第一电子设备提供(例如,利用提供单元2318)用于执行任务的内容。
在一些示例中,用户设备被配置为提供多个用户界面。
在一些示例中,用户设备包括膝上型计算机、台式计算机或服务器。
在一些示例中,第一电子设备包括膝上型计算机、台式计算机、服务器、智能电话、平板电脑、机顶盒或手表。
在一些示例中,处理单元2308被配置为在接收到语音输入之前,在用户设备的显示器上显示(例如,利用显示单元2322)用于调用数字助理的示能表示。
在一些示例中,处理单元2308被配置为响应于接收到预先确定的短语来调用(例如,利用调用单元2320)数字助理。
在一些示例中,处理单元2308被配置为响应于接收到对示能表示的选择来调用(例如,利用调用单元2320)数字助理。
在一些示例中,处理单元2308被配置为确定(例如,利用确定单元2314)一个或多个可执行意图;以及确定(例如,利用确定单元2314)与可执行意图相关联的一个或多个参数。
在一些示例中,上下文信息包括以下中的至少一者:特定于用户的数据、传感器数据和用户设备配置数据。
在一些示例中,确定任务将在用户设备处执行还是在第一电子设备处执行基于包括在语音输入中的一个或多个关键字。
在一些示例中,处理单元2308被配置为确定(例如,利用确定单元2314)在用户设备处执行任务是否满足性能标准。
在一些示例中,根据确定在用户设备处执行任务满足性能标准,处理单元2308被配置为确定(例如,利用确定单元2314)任务将在用户设备处执行。
在一些示例中,根据确定在用户设备处执行任务不满足性能标准,处理单元2308被配置为确定(例如,利用确定单元2314)在第一电子设备处执行任务是否满足性能标准。
在一些示例中,根据确定在第一电子设备处执行任务满足性能标准,处理单元2308被配置为确定(例如,利用确定单元2314)任务将在第一电子设备处执行。
在一些示例中,根据确定在第一电子设备处执行任务不满足性能标准,处理单元2308被配置为确定(例如,利用确定单元2314)在第二电子设备处执行任务是否满足性能标准。
在一些示例中,基于一项或多项用户偏好来确定性能标准。
在一些示例中,基于设备配置数据来确定性能标准。
在一些示例中,动态地更新性能标准。
在一些示例中,根据确定任务将在用户设备处执行并且用于执行任务的内容被远程定位,处理单元2308被配置为从第一电子设备接收(例如,利用接收单元2310)内容的至少一部分,其中内容的至少一部分存储在第一电子设备中。
在一些示例中,根据确定任务将在用户设备处执行并且用于执行任务的内容被远程定位,处理单元2308被配置为从第三电子设备接收(例如,利用接收单元2310)内容的至少一部分。
在一些示例中,根据确定任务将在第一电子设备处执行并且用于执行任务的内容被远程定位到第一电子设备,处理单元2308被配置为从用户设备向第一电子设备提供(例如,利用提供单元2318)内容的至少一部分,其中内容的至少一部分存储在用户设备中。
在一些示例中,根据确定任务将在第一电子设备处执行并且用于执行任务的内容被远程定位到第一电子设备,处理单元2308被配置为使得(例如,利用致使单元2352)内容被从第四电子设备提供给第一电子设备。内容的至少一部分存储在第四电子设备中。
在一些示例中,任务将在用户设备处执行,并且处理单元2308被配置为使用所接收的内容在用户设备处提供(例如,利用提供单元2318)第一响应。
在一些示例中,处理单元2308被配置为在用户设备处执行(例如,利用执行单元2316)任务。
在一些示例中,在用户设备处执行任务是部分地在用户设备处远程执行的任务的延续。
在一些示例中,处理单元2308被配置为显示(例如,利用显示单元2322)与将在用户设备处执行的任务相关联的第一用户界面。
在一些示例中,处理单元2308被配置为提供(例如,利用提供单元2318)与将在用户设备处执行的任务相关联的链接。
在一些示例中,处理单元2308被配置为根据将在用户设备处执行的任务提供(例如,利用提供单元2318)口语输出。
在一些示例中,任务将在第一电子设备处执行,并且处理单元2308被配置为在用户设备处提供(例如,利用提供单元2318)第二响应。
在一些示例中,处理单元2308被配置为使得(例如,利用致使单元2352)任务将在第一电子设备处执行。
在一些示例中,将在第一电子设备处执行的任务是在第一电子设备处远程执行的任务的延续。
在一些示例中,处理单元2308被配置为根据将在第一电子设备处执行的任务提供(例如,利用提供单元2318)口语输出。
在一些示例中,处理单元2308被配置为提供(例如,利用提供单元2318)示能表示,该示能表示使得用户能够选择用于执行任务的另一电子设备。
12.电子设备——系统配置管理
在一些示例中,处理单元2308被配置为从用户接收(例如,利用接收单元2310)语音输入以管理用户设备的一项或多项系统配置。用户设备被配置为同时提供多个用户界面。
在一些示例中,处理单元2308被配置为识别(例如,利用识别单元2312)与用户设备相关联的上下文信息;以及基于语音输入和上下文信息确定(例如,利用确定单元2314)用户意图。
在一些示例中,处理单元2308被配置为确定(例如,利用确定单元2314)用户意图是指示信息请求还是指示用于执行任务的请求。
在一些示例中,根据确定用户意图指示信息请求,处理单元2308被配置为提供(例如,利用提供单元2318)对信息请求的口语响应。
在一些示例中,根据确定用户意图指示用于执行任务的请求,处理单元2308被配置为实例化(例如,利用实例化单元2335)与用户设备相关联的过程来执行任务。
在一些示例中,处理单元2308被配置为在接收到语音输入之前,在用户设备的显示器上显示(例如,利用显示单元2322)示能表示来调用数字助理。
在一些示例中,处理单元2308被配置为响应于接收到预先确定的短语来调用(例如,利用调用单元2320)数字助理服务。
在一些示例中,处理单元2308被配置为响应于接收到对示能表示的选择来调用(例如,利用调用单元2320)数字助理服务。
在一些示例中,用户设备的一项或多项系统配置包括音频配置。
在一些示例中,用户设备的一项或多项系统配置包括日期和时间配置。
在一些示例中,用户设备的一项或多项系统配置包括口述配置。
在一些示例中,用户设备的一项或多项系统配置包括显示配置。
在一些示例中,用户设备的一项或多项系统配置包括输入设备配置。
在一些示例中,用户设备的一项或多项系统配置包括网络配置。
在一些示例中,用户设备的一项或多项系统配置包括通知配置。
在一些示例中,用户设备的一项或多项系统配置包括打印机配置。
在一些示例中,用户设备的一项或多项系统配置包括安全性配置。
在一些示例中,用户设备的一项或多项系统配置包括备份配置。
在一些示例中,用户设备的一项或多项系统配置包括应用配置。
在一些示例中,用户设备的一项或多项系统配置包括用户界面配置。
在一些示例中,处理单元2308被配置为确定(例如,利用确定单元2314)一个或多个可执行意图;以及确定(例如,利用确定单元2314)与可执行意图相关联的一个或多个参数。
在一些示例中,上下文信息包括以下中的至少一者:特定于用户的数据、设备配置数据和传感器数据。
在一些示例中,处理单元2308被配置为确定(例如,利用确定单元2314)用户意图是否改变系统配置。
在一些示例中,处理单元2308被配置为根据信息请求获取(例如,利用获取单元2354)一项或多项系统配置的状态;以及根据一项或多项系统配置的状态提供(例如,利用提供单元2318)口语响应。
在一些示例中,根据确定用户意图指示信息请求,处理单元2308被配置为除了提供对信息请求的口语响应之外,显示(例如,利用显示单元2322)根据一项或多项系统配置的状态提供信息的第一用户界面。
在一些示例中,根据确定用户意图指示信息请求,处理单元2308被配置为除了提供对信息请求的口语响应之外,提供(例如,利用提供单元2318)与信息请求相关联的链接。
在一些示例中,根据确定用户意图指示用于执行任务的请求,处理单元2308被配置为使用该过程执行(例如,利用执行单元2316)任务。
在一些示例中,处理单元2308被配置为根据执行任务的结果提供(例如,利用提供单元2318)第一口语输出。
在一些示例中,处理单元2308被配置为提供(例如,利用提供单元2318)使得用户能够操纵执行任务的结果的第二用户界面。
在一些示例中,第二用户界面包括与执行任务的结果相关联的链接。
在一些示例中,根据确定用户意图指示用于执行任务的请求,处理单元2308被配置为提供(例如,利用提供单元2318)使得用户能够执行任务的第三用户界面。
在一些示例中,第三用户界面包括使得用户能够执行任务的链接。
在一些示例中,处理单元2308被配置为提供(例如,利用提供单元2318)与第三用户界面相关联的第二口语输出。
以上相对于图23描述的操作任选地由图1、图2A、图4、图6A-图6B或图7A-图7B中描绘的部件来实施。例如,接收操作2310、识别操作2312、确定操作2314、执行操作2316和提供操作2318任选地由处理器220来实现。本领域的技术人员会清楚地知道可如何基于图1、图2A、图4、图6A-图6B或图7A-图7B中描绘的部件来实现其他过程。
本领域的技术人员应当理解,图12中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。例如,处理单元2308可具有与处理单元2308操作性地耦接以启用操作的相关联的“控制器”单元。该控制器单元在图23中未单独示出,但应当理解,其在设计了具有处理单元2308的设备(诸如,设备2300)的本领域普通技术人员的掌握中。作为另一个示例,在一些实施方案中,一个或多个单元(诸如接收单元2310)可以是除处理单元2308之外的硬件单元。因此,本文中的描述任选地支持本文所述功能块的组合、分离和/或进一步限定。
出于解释的目的,已经参考具体实施方案对上述描述进行了描述。然而,上面的例示性论述并非旨在为穷尽或将本发明限制为所公开的确切形式。根据以上教导内容,很多修改形式和变型形式为可能的。选择并描述这些实施方案是为了最好地解释这些技术的原理及其实际应用。本领域的其他技术人员由此能够最好地利用这些技术以及具有适合于所设想的特定用途的各种修改的各种实施方案。
虽然参照附图对本公开以及实施例进行了全面的描述,但应当注意,各种变化和修改对于本领域内的技术人员而言将变得显而易见。应当理解,此类变化和修改被认为被包括在由权利要求书所限定的本公开和实施例的范围内。

Claims (105)

1.一种用于提供数字助理服务的方法,包括:
在具有存储器和一个或多个处理器的第一电子设备处:
从第一用户接收表示用户请求的第一语音输入;
获得所述第一用户的身份;
根据所述用户身份,向第二电子设备或第三电子设备中的至少一者提供对所述用户请求的表示;
基于确定是所述第二电子设备还是所述第三电子设备还是其两者将向所述第一电子设备提供响应,从所述第二电子设备或所述第三电子设备接收对所述用户请求的所述响应;以及
向所述第一用户提供对所述响应的表示。
2.根据权利要求1所述的方法,其中所述第二电子设备是远离所述第一电子设备设置的服务器;并且所述第三电子设备是设置在所述第一电子设备附近的客户端设备。
3.根据权利要求1和2中任一项所述的方法,其中所述第三电子设备是服务器的代理设备。
4.根据权利要求1至3中任一项所述的方法,其中所述用户请求包括对特定于所述第一用户的信息的请求。
5.根据权利要求1至4中任一项所述的方法,其中所述用户请求包括对非特定于用户的信息的请求。
6.根据权利要求1至5中任一项所述的方法,其中所述用户请求包括用于执行任务的请求。
7.根据权利要求1至6中任一项所述的方法,其中获得所述第一用户的所述身份包括:
获得与所述第一用户相关联的认证数据;以及
基于所述认证数据来获得对所述第一用户的所述身份的确定。
8.根据权利要求7所述的方法,其中基于所述认证数据来获得对所述第一用户的所述身份的所述确定包括:
向所述第二电子设备或所述第三电子设备中的至少一者提供所述认证数据;以及
从所述第二电子设备或所述第三电子设备中的至少一者接收所述第一用户的所述身份,其中基于所述认证数据来确定所述第一用户的所述身份。
9.根据权利要求1至8中任一项所述的方法,其中向所述第二电子设备或所述第三电子设备中的至少一者提供对所述用户请求的所述表示包括:
确定所述第三电子设备是否通信地耦接到所述第一电子设备;
根据确定所述第三电子设备通信地耦接到所述第一电子设备,向所述第三电子设备且不向所述第二电子设备提供对所述用户请求的所述表示;以及
根据确定所述第三电子设备没有通信地耦接到所述第一电子设备,向所述第二电子设备提供对所述用户请求的所述表示。
10.根据权利要求1至9中任一项所述的方法,其中向所述第二电子设备或所述第三电子设备中的至少一者提供对所述用户请求的所述表示包括:
向所述第二电子设备且不向所述第三电子设备提供对所述用户请求的所述表示。
11.根据权利要求1至8中任一项所述的方法,其中向所述第二电子设备或所述第三电子设备中的至少一者提供对所述用户请求的所述表示包括:
向所述第二电子设备和所述第三电子设备两者提供对所述用户请求的所述表示。
12.根据权利要求1至9中任一项所述的方法,其中向所述第三电子设备且不向所述第二电子设备提供对所述用户请求的所述表示;并且
其中接收对所述用户请求的所述响应包括:
使得所述第三电子设备确定所述第三电子设备是否能够提供对所述用户请求的所述响应;以及
根据确定所述第三电子设备能够提供对所述用户请求的所述响应,在所述第一电子设备处从所述第三电子设备接收对所述用户请求的所述响应。
13.根据权利要求12所述的方法,还包括:
根据确定所述第三电子设备不能够提供对所述用户请求的所述响应,
通过所述第三电子设备将对所述用户请求的所述表示转发到所述第二电子设备;以及
在所述第一电子设备处从所述第二电子设备接收对所述用户请求的所述响应。
14.根据权利要求1至10中任一项所述的方法,其中向所述第二电子设备且不向所述第三电子设备提供对所述用户请求的所述表示,并且其中接收对所述用户请求的所述响应包括:
使得所述第二电子设备确定所述第二电子设备是否能够提供对所述用户请求的所述响应;以及
根据确定所述第二电子设备能够提供对所述用户请求的所述响应,在所述第一电子设备处从所述第二电子设备接收对所述用户请求的所述响应。
15.根据权利要求14所述的方法,还包括:
根据确定所述第二电子设备不能够提供对所述用户请求的所述响应,
通过所述第二电子设备将对所述用户请求的所述表示转发到所述第三电子设备;以及
在所述第一电子设备处接收对所述用户请求的所述响应。
16.根据权利要求15所述的方法,其中所述第一电子设备从所述第三电子设备接收对所述用户请求的所述响应。
17.根据权利要求15所述的方法,其中基于由所述第三电子设备向所述第二电子设备提供的响应,所述第一电子设备从所述第二电子设备接收对所述用户请求的所述响应。
18.根据权利要求1至8和11中任一项所述的方法,其中从所述第一电子设备向所述第二电子设备和所述第三电子设备两者提供对所述用户请求的所述表示,并且其中接收对所述用户请求的所述响应包括以下各项中的至少一项:
使得所述第二电子设备确定所述第二电子设备是否能够提供对所述用户请求的所述响应;以及
使得所述第三电子设备确定所述第三电子设备是否能够提供对所述用户请求的所述响应。
19.根据权利要求18所述的方法,还包括:
根据确定所述第二电子设备能够提供对所述用户请求的所述响应,并且所述第三电子设备不能够提供对所述用户请求的所述响应,
在所述第一电子设备处从所述第二电子设备接收对所述用户请求的所述响应。
20.根据权利要求18所述的方法,还包括:
根据确定所述第三电子设备能够提供对所述用户请求的所述响应,并且所述第二电子设备不能够提供对所述用户请求的所述响应,
在所述第一电子设备处从所述第三电子设备接收对所述用户请求的所述响应。
21.根据权利要求18所述的方法,还包括:
根据确定所述第二电子设备和所述第三电子设备两者都能够提供对所述用户请求的所述响应,
在所述第一电子设备处基于预先确定的条件来从所述第二电子设备或所述第三电子设备接收对所述用户请求的所述响应。
22.根据权利要求1至21中任一项所述的方法,其中向所述第一用户提供对所述响应的所述表示包括:
在所述第一电子设备处提供包括响应于所述用户请求的信息的语音输出。
23.根据权利要求22所述的方法,其中由所述第二电子设备或所述第三电子设备提供所述信息。
24.根据权利要求1至23中任一项所述的方法,其中向所述第一用户提供对所述响应的所述表示包括:
在所述第一电子设备处提供与根据所述用户请求来执行任务相关联的语音输出。
25.根据权利要求24所述的方法,其中由所述第三电子设备执行所述任务。
26.根据权利要求24和25中任一项所述的方法,其中由所述第一电子设备和所述第三电子设备执行所述任务。
27.根据权利要求26所述的方法,其中由一个或多个另外的电子设备进一步执行所述任务。
28.根据权利要求1至27中任一项所述的方法,还包括在向所述第一用户提供对所述响应的所述表示之前:
确定是否将由所述第一电子设备提供对所述响应的所述表示;
根据确定将由所述第一电子设备提供对所述响应的所述表示,由所述第一电子设备向所述第一用户提供对所述响应的所述表示;以及
根据确定不是将由所述第一电子设备提供对所述响应的所述表示,将所述响应转发到一个或多个另外的电子设备。
29.根据权利要求28所述的方法,其中确定是否将由所述第一电子设备提供所述响应是基于所述用户请求的。
30.根据权利要求28和29中任一项所述的方法,其中确定是否将由所述第一电子设备提供所述响应是基于检测所述用户的位置或跟踪所述用户的移动中的至少一者的。
31.根据权利要求1至30中任一项所述的方法,还包括:在接收到所述第一语音输入之前,
接收包括预先确定的内容的第二语音输入;以及
响应于接收到所述第二语音输入,激活所述第一电子设备。
32.根据权利要求31所述的方法,其中所述第二语音输入不使得一个或多个另外的电子设备被激活,所述一个或多个另外的电子设备设置在所述第一电子设备附近。
33.根据权利要求31和32中任一项所述的方法,其中获得所述第一用户的所述身份是基于所述第二语音输入的。
34.根据权利要求1至33中任一项所述的方法,还包括在向所述第二电子设备和所述第三电子设备中的至少一者提供对所述用户请求的所述表示之前:
输出关于所述用户请求的一个或多个语音查询;以及
响应于所述一个或多个语音查询,从所述第一用户接收附加语音输入。
35.根据权利要求1至34中任一项所述的方法,还包括在向所述第二电子设备或所述第三电子设备中的至少一者提供对所述用户请求的所述表示之前:
建立所述第一电子设备与所述第二电子设备或所述第三电子设备中的至少一者之间的连接。
36.根据权利要求35所述的方法,其中建立所述连接是基于所述第一电子设备和所述第三电子设备之间的近场通信的。
37.根据权利要求35和36中任一项所述的方法,其中建立所述连接基于检测到所述第三电子设备在距所述第一电子设备的预先确定的距离内。
38.根据权利要求35至37中任一项所述的方法,其中建立所述连接是基于所述第一电子设备和所述第三电子设备之间的先前建立的连接的。
39.根据权利要求35至38中任一项所述的方法,还包括:
建立所述第一电子设备和所述第三电子设备之间的连接,其中所述第三电子设备与所述第一用户相关联;以及
建立所述第一电子设备和第四电子设备之间的连接,其中所述第四电子设备与第二用户相关联。
40.根据权利要求35至39中任一项所述的方法,还包括:
在建立所述第一电子设备和所述第三电子设备之间的连接之后,向所述第二电子设备通知所述已建立的连接。
41.根据权利要求1至39中任一项所述的方法,还包括建立所述第一电子设备和一个或多个另外的电子设备之间的一个或多个连接,其中所述另外的电子设备是与所述第一电子设备相同类型的设备。
42.根据权利要求1至41中任一项所述的方法,还包括:在由所述第一电子设备向所述第一用户提供所述响应时,
确定是否将在不同电子设备处连续地提供所述响应;以及
根据确定将在不同电子设备处连续地提供所述响应,使得由所述第三电子设备或一个或多个另外的电子设备中的至少一者连续地提供所述响应。
43.根据权利要求42所述的方法,其中对是否将在不同电子设备处连续地提供所述响应的所述确定是基于第三语音输入的。
44.根据权利要求42和43中任一项所述的方法,其中对是否将在不同电子设备处连续地提供所述响应的所述确定基于检测所述第一用户相对于所述第一电子设备的位置变化是否满足预先确定的条件。
45.根据权利要求1至44中任一项所述的方法,还包括在向所述第一用户提供所述响应之后,监视后续语音输入。
46.一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由第一电子设备的一个或多个处理器执行时使得所述第一电子设备:
从第一用户接收表示用户请求的第一语音输入;
获得所述第一用户的身份;
根据所述用户身份,向第二电子设备或第三电子设备中的至少一者提供对所述用户请求的表示;
基于确定是所述第二电子设备还是所述第三电子设备还是其两者将向所述第一电子设备提供响应,从所述第二电子设备或所述第三电子设备接收对所述用户请求的所述响应;以及
向所述第一用户提供对所述响应的表示。
47.一种第一电子设备,包括:
一个或多个处理器;
存储器;以及
一个或多个程序,所述一个或多个程序被存储在所述存储器中,所述一个或多个程序包括用于以下操作的指令:
从第一用户接收表示用户请求的第一语音输入;
获得所述第一用户的身份;
根据所述用户身份,向第二电子设备或第三电子设备中的至少一者提供对所述用户请求的表示;
基于确定是所述第二电子设备还是所述第三电子设备还是其两者将向所述第一电子设备提供响应,从所述第二电子设备或所述第三电子设备接收对所述用户请求的所述响应;以及
向所述第一用户提供对所述响应的表示。
48.一种第一电子设备,包括:
用于从第一用户接收表示用户请求的第一语音输入的装置;
用于获得所述第一用户的身份的装置;
根据所述用户身份,用于向第二电子设备或第三电子设备中的至少一者提供对所述用户请求的表示的装置;
用于执行以下操作的装置:基于确定是所述第二电子设备还是所述第三电子设备还是其两者将向所述第一电子设备提供响应,从所述第二电子设备或所述第三电子设备接收对所述用户请求的所述响应;以及
用于向所述第一用户提供对所述响应的表示的装置。
49.一种第一电子设备,包括:
一个或多个处理器;
存储器;以及
被存储在存储器中的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求1至45中任一项所述的方法的指令。
50.一种第一电子设备,包括:
用于执行根据权利要求1至45所述的方法中的任一方法的装置。
51.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括供第一电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括当由所述一个或多个处理器执行时使得所述第一电子设备执行根据权利要求1至45中任一项所述的方法的指令。
52.一种用于操作数字助理的系统,所述系统包括用于执行根据权利要求1至45所述的方法中的任一方法的装置。
53.一种用于提供数字助理服务的方法,包括:
在具有存储器和一个或多个处理器的第一电子设备处:
接收对与第一用户相关联的事件的通知;
响应于接收到所述通知,输出对所述通知的指示;
接收一个或多个语音输入;
根据所述一个或多个语音输入,确定是否将在所述第一电子设备处提供所述通知;以及
根据确定将在所述第一电子设备处提供所述通知,在所述第一电子设备处提供所述通知。
54.根据权利要求53所述的方法,其中对所述事件的所述通知包括对来电、提醒、消息、语音邮件或新闻警示中的至少一者的表示。
55.根据权利要求53和54中任一项所述的方法,其中接收对所述事件的所述通知包括:
从第二电子设备或第三电子设备中的至少一者接收所述通知。
56.根据权利要求53至55中任一项所述的方法,其中输出对所述通知的指示包括:
由所述第一电子设备或通信地耦接到所述第一电子设备的另外的电子设备中的一者输出对所述通知的所述指示。
57.根据权利要求53至56中任一项所述的方法,其中接收所述一个或多个语音输入包括:
接收关于所述通知的第一语音输入;
根据对所述事件的所述通知来输出响应;以及
接收第二语音输入。
58.根据权利要求53至57中任一项所述的方法,其中确定是否将在所述第一电子设备处提供所述通知包括:
获得提供所述一个或多个语音输入中的至少一个的用户的身份;
基于提供所述一个或多个语音输入中的至少一个的所述用户的所述身份并且基于所述通知,确定是否将向提供所述一个或多个语音输入中的至少一个的所述用户提供所述通知;以及
根据确定将向提供所述一个或多个语音输入中的至少一个的所述用户提供所述通知,确定是否将在所述第一电子设备处提供所述通知。
59.根据权利要求58所述的方法,其中获得提供所述一个或多个语音输入中的至少一个的所述用户的所述身份包括:
获得与提供所述一个或多个语音输入中的至少一个的所述用户相关联的认证数据;以及
基于所述认证数据来获得对提供所述一个或多个语音输入中的至少一个的所述用户的所述身份的确定。
60.根据权利要求59所述的方法,其中获得对提供所述一个或多个语音输入中的至少一个的所述用户的所述身份的所述确定包括:
向第二电子设备和第三电子设备中的至少一者提供所述认证数据;以及
从所述第二电子设备和所述第三电子设备中的至少一者接收提供所述一个或多个语音输入中的至少一个的所述用户的所述身份,其中基于所述认证数据来确定提供所述一个或多个语音输入中的至少一个的所述用户的所述身份。
61.根据权利要求53至60中任一项所述的方法,其中在所述第一电子设备处提供所述通知包括:
在所述第一电子设备处提供与所述通知相关联的音频输出。
62.根据权利要求53至61中任一项所述的方法,还包括:
根据确定不是将在所述第一电子设备处提供所述通知,确定用于提供所述通知的另外的电子设备。
63.根据权利要求62所述的方法,其中确定用于提供所述通知的所述另外的电子设备是基于所述一个或多个语音输入的。
64.根据权利要求62和63中任一项所述的方法,其中确定用于提供所述通知的所述另外的电子设备是基于上下文信息的。
65.根据权利要求53至64中任一项所述的方法,还包括:在接收所述通知之前,建立所述第一电子设备与第二电子设备或第三电子设备中的至少一者之间的连接。
66.根据权利要求65所述的方法,其中建立所述连接是基于所述第一电子设备和所述第三电子设备之间的近场通信的。
67.根据权利要求65和66中任一项所述的方法,其中建立所述连接是基于检测到所述第三电子设备在距所述第一电子设备的预先确定的距离内的。
68.根据权利要求65至67中任一项所述的方法,其中建立所述连接是基于所述第一电子设备和所述第三电子设备之间的先前建立的连接的。
69.根据权利要求65至68中任一项所述的方法,还包括:
建立所述第一电子设备和所述第三电子设备之间的连接,其中所述第三电子设备与所述第一用户相关联;以及
建立所述第一电子设备和第四电子设备之间的连接,其中所述第四电子设备与第二用户相关联。
70.根据权利要求65至69中任一项所述的方法,还包括:在建立所述第一电子设备和所述第三电子设备之间的连接之后,向所述第二电子设备通知所述已建立的连接。
71.根据权利要求53至70中任一项所述的方法,还包括建立所述第一电子设备和一个或多个另外的电子设备之间的一个或多个连接,其中所述一个或多个另外的电子设备是与所述第一电子设备相同类型的设备。
72.一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由第一电子设备的一个或多个处理器执行时
使得所述第一电子设备:
接收对与第一用户相关联的事件的通知;
响应于接收到所述通知,输出对所述通知的指示;
接收一个或多个语音输入;
根据所述一个或多个语音输入,确定是否将在所述第一电子设备处提供所述通知;以及
根据确定将在所述第一电子设备处提供所述通知,在所述第一电子设备处提供所述通知。
73.一种第一电子设备,包括:
一个或多个处理器;
存储器;以及
一个或多个程序,所述一个或多个程序被存储在所述存储器中,所述一个或多个程序包括用于以下操作的指令:
接收对与第一用户相关联的事件的通知;
响应于接收到所述通知,输出对所述通知的指示;
接收一个或多个语音输入;
根据所述一个或多个语音输入,确定是否将在所述第一电子设备处提供所述通知;以及
根据确定将在所述第一电子设备处提供所述通知,在所述第一电子设备处提供所述通知。
74.一种电子设备,包括:
用于接收对与第一用户相关联的事件的通知的装置;
响应于接收到所述通知,用于输出对所述通知的指示的装置;
用于接收一个或多个语音输入的装置;
根据所述一个或多个语音输入,用于确定是否将在所述第一电子设备处提供所述通知的装置;以及
根据确定将在所述第一电子设备处提供所述通知,用于在所述第一电子设备处提供所述通知的装置。
75.一种第一电子设备,包括:
一个或多个处理器;
存储器;以及
被存储在存储器中的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求53至71中任一项所述的方法的指令。
76.一种第一电子设备,包括:
用于执行根据权利要求53至71所述的方法中的任一方法的装置。
77.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括供第一电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括当由所述一个或多个处理器执行时使得所述第一电子设备执行根据权利要求53至71中任一项所述的方法的指令。
78.一种用于操作数字助理的系统,所述系统包括用于执行根据权利要求53至71所述的方法中的任一方法的装置。
79.一种用于提供数字助理服务的方法,包括:
在具有存储器和一个或多个处理器的第一电子设备处:
从第一用户接收表示用户请求的第一语音输入;
获得与能够通信地耦接到所述第一电子设备的一个或多个电子设备相关联的能力数据;
根据所述能力数据,从能够通信地耦接到所述第一电子设备的所述一个或多个电子设备中识别用于提供对所述用户请求的响应的至少一部分的第二电子设备;以及
使得所述第二电子设备提供对所述用户请求的所述响应的至少一部分。
80.根据权利要求79所述的方法,其中获得所述能力数据包括:
获得与能够通信地耦接到所述第一电子设备的所述一个或多个电子设备相关联的设备能力。
81.根据权利要求80所述的方法,其中所述设备能力包括与能够通信地耦接到所述第一电子设备的所述一个或多个电子设备相关联的一个或多个物理属性。
82.根据权利要求80和81中任一项所述的方法,其中所述设备能力包括能够由能够通信地耦接到所述第一电子设备的所述一个或多个电子设备提供的数据。
83.根据权利要求79至82中任一项所述的方法,其中所述第一电子设备和能够通信地耦接到所述第一电子设备的所述电子设备设置在预先确定的边界内。
84.根据权利要求79至83中任一项所述的方法,其中从能够通信地耦接到所述第一电子设备的所述一个或多个电子设备中识别用于向所述第一用户提供响应的至少一部分的第二电子设备包括:
基于所述第一语音输入来获得用于对所述用户请求作出响应的一个或多个步骤;以及
基于所述能力数据来识别用于执行用于对所述用户请求作出响应的至少一个步骤的所述第二电子设备。
85.根据权利要求84所述的方法,其中获得用于对所述用户请求作出响应的一个或多个步骤包括以下各项中的至少一项:
从远离所述第一电子设备定位的第三电子设备接收用于对所述用户请求作出响应的计划;以及
通过所述第一电子设备确定用于对所述用户请求作出响应的计划,其中所述计划包括用于对所述用户请求作出响应的一个或多个步骤。
86.根据权利要求84和85中任一项所述的方法,还包括:
基于所述能力数据来识别用于执行用于对所述用户请求作出响应的剩余步骤的一个或多个另外的电子设备。
87.根据权利要求79至86中任一项所述的方法,其中使得所述第二电子设备提供对所述用户请求的所述响应的至少一部分包括:
使得所述第二电子设备执行用于对所述用户请求作出响应的至少一个步骤。
88.根据权利要求87所述的方法,还包括:
使得一个或多个另外的电子设备执行用于对所述用户请求作出响应的所述剩余步骤。
89.根据权利要求79至88中任一项所述的方法,还包括在使得所述第二电子设备提供对所述用户请求的所述响应的至少一部分之前:
向所述第一用户提供关于通过所述第二电子设备提供所述响应的至少一部分的第一语音输出;
从所述第一用户接收第二语音输入;以及
响应于接收到所述第二语音输入,确定是否将由所述第二电子设备提供所述响应的至少一部分。
90.根据权利要求89所述的方法,其中向所述第一用户提供关于在所述第二电子设备处提供所述响应的至少一部分的第一语音输出包括:
注释用于对所述用户请求作出响应的一个或多个步骤;以及
基于对一个或多个步骤的所述注释来向所述第一用户提供所述第一语音输出。
91.根据权利要求79至90中任一项所述的方法,还包括在获得与能够通信地耦接到所述第一电子设备的所述一个或多个电子设备相关联的能力数据之前:
建立所述第一电子设备和能够通信地耦接到所述第一电子设备的所述一个或多个电子设备之间的连接。
92.根据权利要求91所述的方法,其中建立所述连接是基于所述第一电子设备和能够通信地耦接到所述第一电子设备的所述一个或多个电子设备之间的近场通信的。
93.根据权利要求91和92中任一项所述的方法,其中建立所述连接基于检测到能够通信地耦接到所述第一电子设备的所述一个或多个电子设备在距所述第一电子设备的预先确定的距离内。
94.根据权利要求91至93中任一项所述的方法,其中建立所述连接是基于所述第一电子设备和能够通信地耦接到所述第一电子设备的所述一个或多个电子设备之间的一个或多个先前建立的连接的。
95.根据权利要求79至94中任一项所述的方法,还包括在获得与能够通信地耦接到所述第一电子设备的所述一个或多个电子设备相关联的能力数据之前:
询问所述第一用户关于通过所述第一电子设备来访问能够通信地耦接到所述第一电子设备的所述一个或多个电子设备;
从所述第一用户接收第三语音输入;以及
响应于接收到所述第三语音输入,确定所述第一电子设备是否被授权来访问能够通信地耦接到所述第一电子设备的所述一个或多个电子设备。
96.根据权利要求95所述的方法,还包括:
提供用于访问能够通信地耦接到所述第一电子设备的所述一个或多个电子设备的一个或多个持续时间选项;
从所述第一用户接收对持续时间选项的选择;以及
基于所选择的持续时间选项来访问能够通信地耦接到所述第一电子设备的所述一个或多个电子设备。
97.根据权利要求79至96中任一项所述的方法,还包括在使得所述第二电子设备向所述第一用户提供所述响应的至少一部分之前:
获得所述第一用户的身份;以及
基于所述第一用户的所述身份来确定所述第一用户是否被授权来接收对所述用户请求的所述响应的至少一部分。
98.根据权利要求97所述的方法,其中获得所述第一用户的所述身份包括基于语音配置文件来获得所述身份。
99.一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由第一电子设备的一个或多个处理器执行时
使得所述第一电子设备:
从第一用户接收表示用户请求的第一语音输入;
获得与能够通信地耦接到所述第一电子设备的一个或多个电子设备相关联的能力数据;
根据所述能力数据,从能够通信地耦接到所述第一电子设备的所述一个或多个电子设备识别用于提供对所述用户请求的响应的至少一部分的第二电子设备;以及
使得所述第二电子设备向所述第一用户提供所述响应的至少一部分。
100.一种第一电子设备,包括:
一个或多个处理器;
存储器;以及
一个或多个程序,所述一个或多个程序被存储在所述存储器中,所述一个或多个程序包括用于以下操作的指令:
从第一用户接收表示用户请求的第一语音输入;
获得与能够通信地耦接到所述第一电子设备的一个或多个电子设备相关联的能力数据;
根据所述能力数据,从能够通信地耦接到所述第一电子设备的所述一个或多个电子设备识别用于提供对所述用户请求的响应的至少一部分的第二电子设备;以及
使得所述第二电子设备向所述第一用户提供所述响应的至少一部分。
101.一种电子设备,包括:
用于从第一用户接收表示用户请求的第一语音输入的装置;
用于获得与能够通信地耦接到所述第一电子设备的一个或多个电子设备相关联的能力数据的装置;
用于执行以下操作的装置:根据所述能力数据,从能够通信地耦接到所述第一电子设备的所述一个或多个电子设备识别用于提供对所述用户请求的响应的至少一部分的第二电子设备;以及
用于使得所述第二电子设备向所述第一用户提供所述响应的至少一部分的装置。
102.一种第一电子设备,包括:
一个或多个处理器;
存储器;以及
被存储在存储器中的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求79至98中任一项所述的方法的指令。
103.一种第一电子设备,包括:
用于执行根据权利要求79至98所述的方法中的任一方法的装置。
104.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括供第一电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括当由所述一个或多个处理器执行时使得所述第一电子设备执行根据权利要求79至98中任一项所述的方法的指令。
105.一种用于操作数字助理的系统,所述系统包括用于执行根据权利要求79至98所述的方法中的任一方法的装置。
CN201880002639.XA 2017-05-16 2018-05-16 数字助理服务的远场延伸 Active CN109463004B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910065508.2A CN110021300B (zh) 2017-05-16 2018-05-16 数字助理服务的远场延伸
CN202310874581.0A CN117130574A (zh) 2017-05-16 2018-05-16 数字助理服务的远场延伸
CN201910310783.6A CN110021301B (zh) 2017-05-16 2018-05-16 数字助理服务的远场延伸

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201762507151P 2017-05-16 2017-05-16
US62/507,151 2017-05-16
DKPA201770434 2017-06-02
DKPA201770435A DK179560B1 (en) 2017-05-16 2017-06-02 FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
DKPA201770434A DK179549B1 (en) 2017-05-16 2017-06-02 FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
DKPA201770435 2017-06-02
US15/679,108 2017-08-16
US15/679,108 US11217255B2 (en) 2017-05-16 2017-08-16 Far-field extension for digital assistant services
PCT/US2018/032919 WO2018213415A1 (en) 2017-05-16 2018-05-16 Far-field extension for digital assistant services

Related Child Applications (3)

Application Number Title Priority Date Filing Date
CN202310874581.0A Division CN117130574A (zh) 2017-05-16 2018-05-16 数字助理服务的远场延伸
CN201910310783.6A Division CN110021301B (zh) 2017-05-16 2018-05-16 数字助理服务的远场延伸
CN201910065508.2A Division CN110021300B (zh) 2017-05-16 2018-05-16 数字助理服务的远场延伸

Publications (2)

Publication Number Publication Date
CN109463004A true CN109463004A (zh) 2019-03-12
CN109463004B CN109463004B (zh) 2023-07-21

Family

ID=64274809

Family Applications (4)

Application Number Title Priority Date Filing Date
CN201910065508.2A Active CN110021300B (zh) 2017-05-16 2018-05-16 数字助理服务的远场延伸
CN202310874581.0A Pending CN117130574A (zh) 2017-05-16 2018-05-16 数字助理服务的远场延伸
CN201880002639.XA Active CN109463004B (zh) 2017-05-16 2018-05-16 数字助理服务的远场延伸
CN201910310783.6A Active CN110021301B (zh) 2017-05-16 2018-05-16 数字助理服务的远场延伸

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN201910065508.2A Active CN110021300B (zh) 2017-05-16 2018-05-16 数字助理服务的远场延伸
CN202310874581.0A Pending CN117130574A (zh) 2017-05-16 2018-05-16 数字助理服务的远场延伸

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910310783.6A Active CN110021301B (zh) 2017-05-16 2018-05-16 数字助理服务的远场延伸

Country Status (6)

Country Link
EP (4) EP4047600A3 (zh)
JP (5) JP6606301B1 (zh)
KR (4) KR102100742B1 (zh)
CN (4) CN110021300B (zh)
AU (5) AU2018271099B2 (zh)
WO (1) WO2018213415A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113614826A (zh) * 2019-03-27 2021-11-05 三星电子株式会社 与语音命令设备中的智能助理的多模式交互
CN113906374A (zh) * 2019-05-31 2022-01-07 苹果公司 用于音频同步的方法和用户界面
US20220068276A1 (en) * 2020-09-01 2022-03-03 Sharp Kabushiki Kaisha Information processor, print system, and control method

Families Citing this family (120)

* 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
US9954996B2 (en) 2007-06-28 2018-04-24 Apple Inc. Portable electronic device with conversation management for incoming instant messages
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10706096B2 (en) 2011-08-18 2020-07-07 Apple Inc. Management of local and remote media items
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
DE112014000709B4 (de) 2013-02-07 2021-12-30 Apple Inc. Verfahren und vorrichtung zum betrieb eines sprachtriggers für einen digitalen assistenten
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
EP3937002A1 (en) 2013-06-09 2022-01-12 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
DE112014003653B4 (de) 2013-08-06 2024-04-18 Apple Inc. Automatisch aktivierende intelligente Antworten auf der Grundlage von Aktivitäten von entfernt angeordneten Vorrichtungen
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
TWI566107B (zh) 2014-05-30 2017-01-11 蘋果公司 用於處理多部分語音命令之方法、非暫時性電腦可讀儲存媒體及電子裝置
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
EP3149554B1 (en) 2014-05-30 2024-05-01 Apple Inc. Continuity
US9185062B1 (en) 2014-05-31 2015-11-10 Apple Inc. Message user interfaces for capture and transmittal of media and location content
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
WO2016036510A1 (en) 2014-09-02 2016-03-10 Apple Inc. Music user interface
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
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
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
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
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
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
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770411A1 (en) 2017-05-15 2018-12-20 Apple Inc. MULTI-MODAL INTERFACES
CN111343060B (zh) 2017-05-16 2022-02-11 苹果公司 用于家庭媒体控制的方法和界面
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US20220279063A1 (en) 2017-05-16 2022-09-01 Apple Inc. Methods and interfaces for home media control
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
EP3769510A1 (en) 2018-05-07 2021-01-27 Apple Inc. User interfaces for viewing live video feeds and recorded video
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
DK201870364A1 (en) 2018-05-07 2019-12-03 Apple Inc. MULTI-PARTICIPANT LIVE COMMUNICATION USER INTERFACE
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
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
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11128792B2 (en) 2018-09-28 2021-09-21 Apple Inc. Capturing and displaying images with multiple focal planes
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
CN109378006B (zh) * 2018-12-28 2022-09-16 三星电子(中国)研发中心 一种跨设备声纹识别方法及系统
WO2020153736A1 (en) 2019-01-23 2020-07-30 Samsung Electronics Co., Ltd. Method and device for speech recognition
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
JP7259446B2 (ja) * 2019-03-20 2023-04-18 沖電気工業株式会社 音声処理装置、エージェントシステム、プログラム、および、音声処理方法
US11538482B2 (en) 2019-04-25 2022-12-27 Lg Electronics Inc. Intelligent voice enable device searching method and apparatus thereof
WO2020222988A1 (en) 2019-04-30 2020-11-05 Apple Inc. Utilizing context information with an electronic device
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
WO2020231181A1 (en) 2019-05-16 2020-11-19 Samsung Electronics Co., Ltd. Method and device for providing voice recognition service
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK201970533A1 (en) 2019-05-31 2021-02-15 Apple Inc Methods and user interfaces for sharing audio
US11620103B2 (en) 2019-05-31 2023-04-04 Apple Inc. User interfaces for audio media control
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
US11363071B2 (en) 2019-05-31 2022-06-14 Apple Inc. User interfaces for managing a local network
US10996917B2 (en) 2019-05-31 2021-05-04 Apple Inc. User interfaces for audio media control
US10802843B1 (en) 2019-05-31 2020-10-13 Apple Inc. Multi-user configuration
WO2020242493A1 (en) * 2019-05-31 2020-12-03 Google Llc Dynamically assigning multi-modality circumstantial data to assistant action requests for correlating with subsequent requests
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US10904029B2 (en) 2019-05-31 2021-01-26 Apple Inc. User interfaces for managing controllable external devices
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
WO2020251101A1 (ko) * 2019-06-14 2020-12-17 엘지전자 주식회사 사용자의 동선을 결정하는 인공 지능 장치 및 그 방법
US20210405148A1 (en) * 2019-06-14 2021-12-30 Lg Electronics Inc. An artificial intelligence apparatus for providing service based on path of user and method for the same
KR20210015428A (ko) 2019-08-02 2021-02-10 삼성전자주식회사 사용자 인터페이스를 제공하는 전자 장치 및 방법
CN110557741B (zh) * 2019-08-05 2021-08-13 华为技术有限公司 终端交互的方法及终端
KR20210024861A (ko) * 2019-08-26 2021-03-08 삼성전자주식회사 대화 서비스를 제공하는 방법 및 전자 디바이스
US20220343909A1 (en) * 2019-09-06 2022-10-27 Lg Electronics Inc. Display apparatus
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
US11550598B2 (en) 2019-12-13 2023-01-10 Google Llc Systems and methods for adding digital content during an application opening operation
US20210191779A1 (en) * 2019-12-18 2021-06-24 Google Llc Operating system level distributed ambient computing
JP7508787B2 (ja) * 2020-02-04 2024-07-02 沖電気工業株式会社 情報処理装置、情報処理方法、情報処理プログラム、命令実行サーバ、命令実行方法、命令実行プログラム、データサーバ、データ処理方法およびデータ処理プログラム
CN111444761B (zh) * 2020-02-21 2023-05-30 云知声智能科技股份有限公司 一种提高叫醒率的方法及装置
CN113409797A (zh) * 2020-03-16 2021-09-17 阿里巴巴集团控股有限公司 语音处理方法和系统、及语音交互设备和方法
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11038934B1 (en) 2020-05-11 2021-06-15 Apple Inc. Digital assistant hardware abstraction
US11079913B1 (en) 2020-05-11 2021-08-03 Apple Inc. User interface for status indicators
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
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
US11798546B2 (en) 2020-08-14 2023-10-24 Google Llc Transient personalization mode for guest users of an automated assistant
US11392291B2 (en) 2020-09-25 2022-07-19 Apple Inc. Methods and interfaces for media control with dynamic feedback
EP4222613A1 (en) * 2020-09-30 2023-08-09 Oracle International Corporation Automatic out of scope transition for chatbot
WO2022102893A1 (ko) * 2020-11-11 2022-05-19 삼성전자주식회사 전자 장치, 시스템 및 그 제어 방법
CN112802475A (zh) * 2020-12-30 2021-05-14 厦门市美亚柏科信息股份有限公司 基于语音识别的应用自动登录方法及计算机可读存储介质
CN114844732B (zh) * 2021-01-30 2023-06-20 华为技术有限公司 一种会议接入方法及电子设备
US11431891B2 (en) 2021-01-31 2022-08-30 Apple Inc. User interfaces for wide angle video conference
WO2022168603A1 (ja) * 2021-02-05 2022-08-11 株式会社ワコム 画像描画方法
EP4057165B1 (de) * 2021-03-11 2024-07-17 Deutsche Telekom AG Sprachassistenzsteuerung
US11893214B2 (en) 2021-05-15 2024-02-06 Apple Inc. Real-time communication user interface
US20220368548A1 (en) 2021-05-15 2022-11-17 Apple Inc. Shared-content session user interfaces
US11907605B2 (en) 2021-05-15 2024-02-20 Apple Inc. Shared-content session user interfaces
US11960615B2 (en) 2021-06-06 2024-04-16 Apple Inc. Methods and user interfaces for voice-based user profile management
US12021806B1 (en) 2021-09-21 2024-06-25 Apple Inc. Intelligent message delivery
US11770600B2 (en) 2021-09-24 2023-09-26 Apple Inc. Wide angle video conference
US12111875B2 (en) * 2022-12-14 2024-10-08 Google Llc Pairing user headphones with a location-based automated assistant
WO2024172806A1 (en) * 2023-02-13 2024-08-22 Cerence Operating Company Extravehicular speech interface for automotive assistant

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1511277A1 (en) * 2003-08-29 2005-03-02 Swisscom AG Method for answering an incoming event with a phone device, and adapted phone device
WO2008034111A2 (en) * 2006-09-14 2008-03-20 Google Inc. Integrating voice-enabled local search and contact lists
CN101292282A (zh) * 2005-08-29 2008-10-22 沃伊斯博克斯科技公司 支持自然语言人机交互的移动系统和方法
US20100263015A1 (en) * 2009-04-09 2010-10-14 Verizon Patent And Licensing Inc. Wireless Interface for Set Top Box
CN102349087A (zh) * 2009-03-12 2012-02-08 谷歌公司 自动提供与捕获的信息例如实时捕获的信息关联的内容
CN103078995A (zh) * 2012-12-18 2013-05-01 苏州思必驰信息科技有限公司 一种在移动终端使用的可定制的个性化应答方法和系统
EP2608610A1 (en) * 2011-12-22 2013-06-26 France Telecom Method for notifying a user of a device of the occurrence of an event
JP2016035614A (ja) * 2014-08-01 2016-03-17 シャープ株式会社 機器、音声出力方法、音声出力プログラム、ネットワークシステム、サーバ、および通信機器
WO2016045192A1 (zh) * 2014-09-23 2016-03-31 酷派软件技术(深圳)有限公司 通知处理方法、通知处理装置和终端
US20160292603A1 (en) * 2015-04-03 2016-10-06 Microsoft Technology Licensing, LLP Capturing Notes From Passive Recording With Task Assignments

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3275840B2 (ja) * 1998-08-12 2002-04-22 日本電気株式会社 機器操作システム及び方法、並びに記録媒体
JP3724234B2 (ja) * 1998-12-22 2005-12-07 カシオ計算機株式会社 情報配信装置および記録媒体
US7606712B1 (en) * 2001-06-28 2009-10-20 At&T Intellectual Property Ii, L.P. Speech recognition interface for voice actuation of legacy systems
US8831949B1 (en) * 2001-06-28 2014-09-09 At&T Intellectual Property I, L.P. Voice recognition for performing authentication and completing transactions in a systems interface to legacy systems
AU2003211970A1 (en) * 2002-02-13 2003-09-04 Matsushita Electric Industrial Co., Ltd. Information providing apparatus, provided information presenting apparatus, and information providing method
CA2618623C (en) * 2005-08-09 2015-01-06 Mobilevoicecontrol, Inc. Control center for a voice controlled wireless communication device system
US20070156400A1 (en) * 2006-01-03 2007-07-05 Wheeler Mark R System and method for wireless dictation and transcription
US8015014B2 (en) * 2006-06-16 2011-09-06 Storz Endoskop Produktions Gmbh Speech recognition system with user profiles management component
US20090030685A1 (en) * 2007-03-07 2009-01-29 Cerra Joseph P Using speech recognition results based on an unstructured language model with a navigation system
US8977255B2 (en) * 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
JP4412504B2 (ja) * 2007-04-17 2010-02-10 本田技研工業株式会社 音声認識装置、音声認識方法、及び音声認識用プログラム
US8099289B2 (en) * 2008-02-13 2012-01-17 Sensory, Inc. Voice interface and search for electronic devices including bluetooth headsets and remote systems
US8370148B2 (en) * 2008-04-14 2013-02-05 At&T Intellectual Property I, L.P. System and method for answering a communication notification
US20150294377A1 (en) * 2009-05-30 2015-10-15 Edmond K. Chow Trust network effect
EP2339576B1 (en) * 2009-12-23 2019-08-07 Google LLC Multi-modal input on an electronic device
US8352576B2 (en) * 2010-11-15 2013-01-08 Google Inc. Media file access
US9493130B2 (en) * 2011-04-22 2016-11-15 Angel A. Penilla Methods and systems for communicating content to connected vehicle users based detected tone/mood in voice input
US8468022B2 (en) * 2011-09-30 2013-06-18 Google Inc. Voice control for asynchronous notifications
US10417037B2 (en) * 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
WO2014142702A1 (en) 2013-03-15 2014-09-18 Obschestvo S Ogranichennoy Otvetstvennostiyu "Speaktoit" Selective speech recognition for chat and digital personal assistant systems
US9190057B2 (en) * 2012-12-12 2015-11-17 Amazon Technologies, Inc. Speech model retrieval in distributed speech recognition systems
US9530409B2 (en) * 2013-01-23 2016-12-27 Blackberry Limited Event-triggered hands-free multitasking for media playback
EP2760015A1 (en) * 2013-01-23 2014-07-30 BlackBerry Limited Event-triggered hands-free multitasking for media playback
JP6115152B2 (ja) * 2013-01-29 2017-04-19 コニカミノルタ株式会社 情報処理システム、情報処理装置、情報処理端末及びプログラム
US9672822B2 (en) * 2013-02-22 2017-06-06 Next It Corporation Interaction with a portion of a content item through a virtual assistant
US9472205B2 (en) * 2013-05-06 2016-10-18 Honeywell International Inc. Device voice recognition systems and methods
KR102369784B1 (ko) * 2013-06-07 2022-03-03 애플 인크. 지능형 자동 어시스턴트
USRE49014E1 (en) 2013-06-19 2022-04-05 Panasonic Intellectual Property Corporation Of America Voice interaction method, and device
KR101506510B1 (ko) * 2013-10-10 2015-03-30 송철호 음성인식 홈 네트워크 시스템
US9698999B2 (en) * 2013-12-02 2017-07-04 Amazon Technologies, Inc. Natural language control of secondary device
US9431021B1 (en) * 2014-03-27 2016-08-30 Amazon Technologies, Inc. Device grouping for audio based interactivity
US8995972B1 (en) * 2014-06-05 2015-03-31 Grandios Technologies, Llc Automatic personal assistance between users devices
US9462112B2 (en) * 2014-06-19 2016-10-04 Microsoft Technology Licensing, Llc Use of a digital assistant in communications
US9632748B2 (en) * 2014-06-24 2017-04-25 Google Inc. Device designation for audio input monitoring
US20150371529A1 (en) * 2014-06-24 2015-12-24 Bose Corporation Audio Systems and Related Methods and Devices
WO2016017997A1 (en) * 2014-07-31 2016-02-04 Samsung Electronics Co., Ltd. Wearable glasses and method of providing content using the same
KR20160023089A (ko) * 2014-08-21 2016-03-03 엘지전자 주식회사 디지털 디바이스 및 그 제어 방법
US10204622B2 (en) * 2015-09-10 2019-02-12 Crestron Electronics, Inc. Acoustic sensory network
US10789041B2 (en) * 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
JP6448971B2 (ja) * 2014-09-30 2019-01-09 シャープ株式会社 対話装置
US10235996B2 (en) * 2014-10-01 2019-03-19 XBrain, Inc. Voice and connection platform
US9812128B2 (en) * 2014-10-09 2017-11-07 Google Inc. Device leadership negotiation among voice interface devices
US9812126B2 (en) * 2014-11-28 2017-11-07 Microsoft Technology Licensing, Llc Device arbitration for listening devices
US20170032783A1 (en) * 2015-04-01 2017-02-02 Elwha Llc Hierarchical Networked Command Recognition
US20160322044A1 (en) * 2015-04-01 2016-11-03 Elwha Llc Networked User Command Recognition
US20160365101A1 (en) * 2015-06-15 2016-12-15 Motorola Mobility Llc Enabling Event Driven Voice Interaction with a Device
WO2016205338A1 (en) * 2015-06-18 2016-12-22 Amgine Technologies (Us), Inc. Managing interactions between users and applications
US10325590B2 (en) * 2015-06-26 2019-06-18 Intel Corporation Language model modification for local speech recognition systems using remote sources
US11587559B2 (en) * 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US9965247B2 (en) * 2016-02-22 2018-05-08 Sonos, Inc. Voice controlled media playback system based on user profile
US10127926B2 (en) * 2016-06-10 2018-11-13 Google Llc Securely executing voice actions with speaker identification and authentication input types

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1511277A1 (en) * 2003-08-29 2005-03-02 Swisscom AG Method for answering an incoming event with a phone device, and adapted phone device
CN101292282A (zh) * 2005-08-29 2008-10-22 沃伊斯博克斯科技公司 支持自然语言人机交互的移动系统和方法
WO2008034111A2 (en) * 2006-09-14 2008-03-20 Google Inc. Integrating voice-enabled local search and contact lists
CN102349087A (zh) * 2009-03-12 2012-02-08 谷歌公司 自动提供与捕获的信息例如实时捕获的信息关联的内容
US20100263015A1 (en) * 2009-04-09 2010-10-14 Verizon Patent And Licensing Inc. Wireless Interface for Set Top Box
EP2608610A1 (en) * 2011-12-22 2013-06-26 France Telecom Method for notifying a user of a device of the occurrence of an event
CN103078995A (zh) * 2012-12-18 2013-05-01 苏州思必驰信息科技有限公司 一种在移动终端使用的可定制的个性化应答方法和系统
JP2016035614A (ja) * 2014-08-01 2016-03-17 シャープ株式会社 機器、音声出力方法、音声出力プログラム、ネットワークシステム、サーバ、および通信機器
WO2016045192A1 (zh) * 2014-09-23 2016-03-31 酷派软件技术(深圳)有限公司 通知处理方法、通知处理装置和终端
US20160292603A1 (en) * 2015-04-03 2016-10-06 Microsoft Technology Licensing, LLP Capturing Notes From Passive Recording With Task Assignments

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113614826A (zh) * 2019-03-27 2021-11-05 三星电子株式会社 与语音命令设备中的智能助理的多模式交互
CN113906374A (zh) * 2019-05-31 2022-01-07 苹果公司 用于音频同步的方法和用户界面
US20220068276A1 (en) * 2020-09-01 2022-03-03 Sharp Kabushiki Kaisha Information processor, print system, and control method

Also Published As

Publication number Publication date
CN110021300B (zh) 2021-07-06
JP6606301B1 (ja) 2019-11-13
KR102100742B1 (ko) 2020-04-14
EP4047600A3 (en) 2022-12-07
AU2019200295B2 (en) 2019-02-21
AU2019200295A1 (en) 2019-02-07
AU2020201470A1 (en) 2020-03-19
JP2020191106A (ja) 2020-11-26
KR20190007504A (ko) 2019-01-22
CN110021301A (zh) 2019-07-16
AU2018271099B2 (en) 2019-02-14
AU2019203392B2 (en) 2019-11-28
AU2021218193A1 (en) 2021-09-16
EP3745395B1 (en) 2022-05-18
EP3459076B1 (en) 2020-07-22
JP2024020278A (ja) 2024-02-14
AU2018271099A1 (en) 2019-01-24
EP4047600A2 (en) 2022-08-24
EP3459076A1 (en) 2019-03-27
JP2022084707A (ja) 2022-06-07
CN117130574A (zh) 2023-11-28
EP3493202A1 (en) 2019-06-05
WO2018213415A1 (en) 2018-11-22
KR102355966B1 (ko) 2022-02-08
KR102089487B1 (ko) 2020-03-17
KR20190014569A (ko) 2019-02-12
JP7037602B2 (ja) 2022-03-16
JP6738445B2 (ja) 2020-08-12
KR20220013474A (ko) 2022-02-04
EP3493202B1 (en) 2020-07-22
JP2019535048A (ja) 2019-12-05
JP2019145090A (ja) 2019-08-29
KR102477489B1 (ko) 2022-12-13
CN110021300A (zh) 2019-07-16
EP3745395A1 (en) 2020-12-02
JP7379562B2 (ja) 2023-11-14
CN110021301B (zh) 2020-07-31
AU2021218193B2 (en) 2022-09-15
AU2019203392A1 (en) 2019-10-03
AU2020201470B2 (en) 2021-05-20
KR20210091369A (ko) 2021-07-21
CN109463004B (zh) 2023-07-21

Similar Documents

Publication Publication Date Title
CN109463004A (zh) 数字助理服务的远场延伸
CN109328381B (zh) 检测数字助理的触发
CN107978313B (zh) 智能自动化助理
CN107491285B (zh) 智能设备仲裁和控制
CN107430501B (zh) 对语音触发进行响应的竞争设备
CN109783046A (zh) 多任务环境中的智能数字助理
CN107408387B (zh) 虚拟助理激活
CN109635130A (zh) 用于媒体探索的智能自动化助理
CN110019752A (zh) 多方向对话
CN110364148A (zh) 自然助理交互
CN110457000A (zh) 用于根据用户体验来递送内容的智能自动化助理
CN107491469A (zh) 智能任务发现
CN107491284A (zh) 提供自动化状态报告的数字助理
CN109257941A (zh) 数字助理的同步和任务委派
CN107490971B (zh) 家庭环境中的智能自动化助理
CN108733438A (zh) 应用程序与数字助理集成
CN108093126A (zh) 用于拒绝来电的智能数字助理
CN107480161A (zh) 用于媒体探究的智能自动化助理
CN108292203A (zh) 基于设备间对话通信的主动协助
CN107949823A (zh) 零延迟数字助理
CN109313898A (zh) 提供低声语音的数字助理
CN107257950A (zh) 虚拟助理连续性
CN108604449A (zh) 说话者识别
CN107615378A (zh) 设备语音控制
CN107735833A (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