CN115088250A - 视频通信会话环境中的数字助理交互 - Google Patents

视频通信会话环境中的数字助理交互 Download PDF

Info

Publication number
CN115088250A
CN115088250A CN202180014131.3A CN202180014131A CN115088250A CN 115088250 A CN115088250 A CN 115088250A CN 202180014131 A CN202180014131 A CN 202180014131A CN 115088250 A CN115088250 A CN 115088250A
Authority
CN
China
Prior art keywords
user
user device
digital assistant
input
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180014131.3A
Other languages
English (en)
Inventor
N·曼朱纳特
W·马特莱尔
J·配克
L·书婷·张
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple 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
Application filed by Apple Inc filed Critical Apple Inc
Publication of CN115088250A publication Critical patent/CN115088250A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/147Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
    • 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/083Recognition 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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • 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/26Speech to text systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72469User interfaces specially adapted for cordless or mobile telephones for operating the device by selecting functions from two or more displayed items, e.g. menus or icons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42203Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS] sound input device, e.g. microphone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • H04N7/157Conference systems defining a virtual conference space and using avatars or agents
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/74Details of telephonic subscriber devices with voice recognition means
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/142Constructional details of the terminal equipment, e.g. arrangements of the camera and the display
    • H04N2007/145Handheld terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephonic Communication Services (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本公开涉及视频通信会话环境中的智能自动化助理。一种示例方法包括:在至少两个用户设备之间的视频通信会话期间并且在该至少两个用户设备中的第一用户设备处:接收第一用户输入;基于该第一用户输入获得第一数字助理响应;向该至少两个用户设备中的第二用户设备提供第一数字助理响应和与该第一用户输入相关联的上下文信息;输出该第一数字助理响应;接收第二数字助理响应和与第二用户输入相关联的上下文信息,其中在该第二用户设备处接收该第二用户输入,并且其中基于该第二用户输入和与该第一用户输入相关联的该上下文信息来确定该第二数字助理响应;以及输出该第二数字助理响应。

Description

视频通信会话环境中的数字助理交互
相关申请的交叉引用
本申请要求以下专利申请的权益:2020年2月12日提交的名称为“DIGITALASSISTANT INTERACTION IN A VIDEO COMMUNICATION SESSION ENVIRONMENT”的美国临时申请号62/975,643;2020年4月27日提交的名称为“DIGITAL ASSISTANT INTERACTION IN AVIDEO COMMUNICATION SESSION ENVIRONMENT”的美国临时申请号63/016,083;以及2021年1月26日提交的名称为“DIGITAL ASSISTANT INTERACTION IN A VIDEO COMMUNICATIONSESSION ENVIRONMENT”的美国专利申请号17/158,703,这些专利申请的内容据此全文以引用方式并入。
技术领域
本发明整体涉及智能自动化助理,并且更具体地涉及视频通信会话环境中的智能自动化助理。
背景技术
智能自动化助理(或数字助理)可在人类用户与电子设备之间提供有利界面。此类助理可允许用户使用自然语言以语音形式和/或文本形式与设备或系统进行交互。例如,用户可向正在电子设备上运行的数字助理提供包含用户请求的语音输入。数字助理可从该语音输入解译用户意图并且将用户意图操作化成任务。随后可通过执行电子设备的一项或多项服务来执行这些任务,并且可将响应于用户请求的相关输出返回给用户。
发明内容
在一些示例中,电子设备的用户可与一个或多个其他参与者一起参与视频通信会话。因此,可能希望在视频通信会话期间向用户和其他参与者提供数字助理功能,使得用户和/或其他参与者可例如请求/命令其各自的数字助理在视频通信会话期间执行某些任务。此外,可能希望参与视频通信会话的设备在视频通信会话期间共享上下文信息,使得设备中的每个设备的数字助理可例如知道在其他参与设备处接收/提供的数字助理请求/响应。这继而产生单个数字助理的表象,该单个数字助理与用户和其他参与者一起参与视频通信会话,同时仍然允许参与视频通信会话的每个设备的数字助理在本地处理来自其相应用户的请求/命令。
本文公开了示例方法。一种示例方法包括:在至少两个用户设备之间的视频通信会话期间并且在至少两个用户设备中的第一用户设备处:接收第一用户输入;基于第一用户输入获得第一数字助理响应;向至少两个用户设备中的第二用户设备提供第一数字助理响应和与第一用户输入相关联的上下文信息;输出第一数字助理响应;接收第二数字助理响应和与第二用户输入相关联的上下文信息,其中在第二用户设备处接收第二用户输入,并且其中基于第二用户输入和与第一用户输入相关联的上下文信息来确定第二数字助理响应;以及输出第二数字助理响应。
另一种示例方法包括:在至少两个用户设备之间的视频通信会话期间并且在至少两个用户设备中的第一用户设备处:接收第一用户语音输入;基于第一用户语音输入生成文本表示;将文本表示传输到一个或多个服务器;从一个或多个服务器接收共享转录,其中共享转录包括第一用户语音输入的文本表示和由至少两个用户设备中的第二用户设备生成的一个或多个附加文本表示,并且其中一个或多个附加文本表示对应于在视频通信会话期间在第二用户设备处接收的一个或多个用户语音输入;以及在接收到共享转录之后:基于包括在共享转录中的文本表示确定可由第一用户设备的数字助理执行的一个或多个候选任务;以及呈现一个或多个候选任务。
另一种示例方法包括:在至少两个用户设备之间的视频通信会话期间并且在至少两个用户设备中的第一用户设备处:接收第一用户语音输入;确定第一用户语音输入是否表示公共数字助理请求;根据确定第一用户语音输入表示公共数字助理请求,向至少两个用户设备中的第二用户设备传输请求以使第二用户设备向第一用户设备提供与第一用户语音输入相关联的上下文信息;从第二用户设备接收与第一用户语音输入相关联的上下文信息;至少基于从第二用户设备接收的上下文信息的一部分和存储在第一用户设备上的与第一用户语音输入相关联的上下文信息的至少一部分获得第一数字助理响应;向第二用户设备提供第一数字助理响应;以及输出第一数字助理响应。
本文公开了示例非暂态计算机可读介质。一种示例非暂态计算机可读存储介质存储一个或多个程序。该一个或多个程序包括指令,该指令在第一用户设备与至少第二用户设备之间的视频通信会话期间被第一用户设备的一个或多个处理器执行时致使第一用户设备:接收第一用户输入;基于第一用户输入获得第一数字助理响应;向第二用户设备提供第一数字助理响应和与第一用户输入相关联的上下文信息;输出第一数字助理响应;接收第二数字助理响应和与第二用户输入相关联的上下文信息,其中在第二用户设备处接收第二用户输入,并且其中基于第二用户输入和与第一用户输入相关联的上下文信息来确定第二数字助理响应;以及输出第二数字助理响应。
另一种示例非暂态计算机可读存储介质存储一个或多个程序。该一个或多个程序包括指令,该指令在第一用户设备与至少第二用户设备之间的视频通信会话期间被第一用户设备的一个或多个处理器执行时致使第一用户设备:接收第一用户语音输入;基于第一用户语音输入生成文本表示;将文本表示传输到一个或多个服务器;从一个或多个服务器接收共享转录,其中共享转录包括第一用户语音输入的文本表示和由至少两个用户设备中的第二用户设备生成的一个或多个附加文本表示,并且其中一个或多个附加文本表示对应于在视频通信会话期间在第二用户设备处接收的一个或多个用户语音输入;以及在接收到共享转录之后:基于包括在共享转录中的文本表示确定可由第一用户设备的数字助理执行的一个或多个候选任务;以及呈现一个或多个候选任务。
另一种示例非暂态计算机可读存储介质存储一个或多个程序。该一个或多个程序包括指令,该指令在第一用户设备与至少第二用户设备之间的视频通信会话期间被第一用户设备的一个或多个处理器执行时致使第一用户设备:接收第一用户语音输入;确定第一用户语音输入是否表示公共数字助理请求;根据确定第一用户语音输入表示公共数字助理请求,向至少两个用户设备中的第二用户设备传输请求以使第二用户设备向第一用户设备提供与第一用户语音输入相关联的上下文信息;从第二用户设备接收与第一用户语音输入相关联的上下文信息;至少基于从第二用户设备接收的上下文信息的一部分和存储在第一用户设备上的与第一用户语音输入相关联的上下文信息的至少一部分获得第一数字助理响应;向第二用户设备提供第一数字助理响应;以及输出第一数字助理响应。
本文公开了示例电子设备。一种示例用户设备包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并且被配置为由一个或多个处理器执行,一个或多个程序包括在该用户设备与至少第二用户设备之间的视频通信会话期间用于以下操作的指令:接收第一用户输入;基于第一用户输入获得第一数字助理响应;向至少两个用户设备中的第二用户设备提供第一数字助理响应和与第一用户输入相关联的上下文信息;输出第一数字助理响应;接收第二数字助理响应和与第二用户输入相关联的上下文信息,其中在第二用户设备处接收第二用户输入,并且其中基于第二用户输入和与第一用户输入相关联的上下文信息来确定第二数字助理响应;以及输出第二数字助理响应。
另一种示例用户设备包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并且被配置为由一个或多个处理器执行,一个或多个程序包括在该用户设备与至少第二用户设备之间的视频通信会话期间用于以下操作的指令:接收第一用户语音输入;基于第一用户语音输入生成文本表示;将文本表示传输到一个或多个服务器;从一个或多个服务器接收共享转录,其中共享转录包括第一用户语音输入的文本表示和由至少两个用户设备中的第二用户设备生成的一个或多个附加文本表示,并且其中一个或多个附加文本表示对应于在视频通信会话期间在第二用户设备处接收的一个或多个用户语音输入;以及在接收到共享转录之后:基于包括在共享转录中的文本表示确定可由第一用户设备的数字助理执行的一个或多个候选任务;以及呈现一个或多个候选任务。
另一种示例用户设备包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并且被配置为由一个或多个处理器执行,一个或多个程序包括在该用户设备与至少第二用户设备之间的视频通信会话期间用于以下操作的指令:接收第一用户语音输入;确定第一用户语音输入是否表示公共数字助理请求;根据确定第一用户语音输入表示公共数字助理请求,向至少两个用户设备中的第二用户设备传输请求以使第二用户设备向第一用户设备提供与第一用户语音输入相关联的上下文信息;从第二用户设备接收与第一用户语音输入相关联的上下文信息;至少基于从第二用户设备接收的上下文信息的一部分和存储在第一用户设备上的与第一用户语音输入相关联的上下文信息的至少一部分获得第一数字助理响应;向第二用户设备提供第一数字助理响应;以及输出第一数字助理响应。
一种示例用户设备包括:在该用户设备与至少第二用户设备之间的视频通信会话期间用于接收第一用户输入的装置;用于基于第一用户输入获得第一数字助理响应的装置;用于向至少两个用户设备中的第二用户设备提供第一数字助理响应和与第一用户输入相关联的上下文信息的装置;用于输出第一数字助理响应的装置;用于接收第二数字助理响应和与第二用户输入相关联的上下文信息的装置,其中在第二用户设备处接收第二用户输入,并且其中基于第二用户输入和与第一用户输入相关联的上下文信息来确定第二数字助理响应;以及用于输出第二数字助理响应的装置。
另一种示例用户设备包括:在该用户设备与至少第二用户设备之间的视频通信会话期间用于接收第一用户语音输入的装置;用于基于第一用户语音输入生成文本表示的装置;用于将文本表示传输到一个或多个服务器的装置;用于从一个或多个服务器接收共享转录的装置,其中共享转录包括第一用户语音输入的文本表示和由至少两个用户设备中的第二用户设备生成的一个或多个附加文本表示,并且其中一个或多个附加文本表示对应于在视频通信会话期间在第二用户设备处接收的一个或多个用户语音输入;以及在接收到共享转录之后:用于基于包括在共享转录中的文本表示确定可由第一用户设备的数字助理执行的一个或多个候选任务的装置;以及用于呈现一个或多个候选任务的装置。
另一种示例用户设备包括:在该用户设备与至少第二用户设备之间的视频通信会话期间用于接收第一用户语音输入的装置;用于确定第一用户语音输入是否表示公共数字助理请求的装置;根据确定第一用户语音输入表示公共数字助理请求,用于向至少两个用户设备中的第二用户设备传输请求以使第二用户设备向第一用户设备提供与第一用户语音输入相关联的上下文信息的装置;用于从第二用户设备接收与第一用户语音输入相关联的上下文信息的装置;用于至少基于从第二用户设备接收的上下文信息的一部分和存储在第一用户设备上的与第一用户语音输入相关联的上下文信息的至少一部分获得第一数字助理响应的装置;用于向第二用户设备提供第一数字助理响应的装置;以及用于输出第一数字助理响应的装置。
在一些示例中,在第一用户设备处(并且在视频通信会话期间)接收第二数字助理响应和与第二用户输入相关联的上下文信息可改善涉及数字助理的视频通信会话体验,其中第二用户输入是在第二用户设备处接收的,并且其中第二数字助理响应是基于第二用户输入和与第一用户输入相关联的上下文信息(在第一用户设备处接收的)来确定的。具体地,使用与第一用户输入相关联的上下文信息来确定第二数字助理响应允许第二用户设备的数字助理提供基于和/或促进第一用户输入的数字助理响应,即使第一用户输入不是由第二用户设备的用户提供的。这样,第二用户设备的用户可以更自然和会话式的方式提供数字助理请求(例如,在第二用户输入中提供),并且如果已经在第一用户输入中引入请求的某些方面,则不必重复那些方面。例如,如果第一用户输入包括用户请求“嘿,Siri,帕罗奥图天气怎么样?”,则第二用户设备的用户可随后通过提供第二用户输入“嘿,Siri,纽约呢?”来请求关于纽约的天气信息,而不是必须重复需要天气信息(例如,“嘿,Siri,纽约天气怎么样?”)。这继而产生单个数字助理的表象,该单个数字助理与第一用户设备和第二用户设备的用户一起参与视频通信会话,如上所述,这可最终改善用户的视频通信会话体验。
在一些示例中,基于共享转录中包括的文本表示来确定可由第一用户设备的数字助理执行的一个或多个候选任务允许第一用户的数字助理基于在视频通信会话期间保持的对话来主动地确定第一用户设备的用户可能希望数字助理执行的一个或多个任务。这样,数字助理防止用户必须单独请求此类任务,确保用户不会忘记请求此类任务,和/或通知用户数字助理能够执行的任务(例如,用户先前不知道)。这继而可改善用户对于视频通信会话和第一用户设备的数字助理的体验。
在一些示例中,在参与视频通信会话的至少两个用户设备中的第一用户设备处确定第一用户语音输入是否表示公共数字助理请求,并且根据第一用户语音输入表示公共数字助理请求的确定,向至少两个用户设备中的第二用户设备传输请求以使第二用户设备向第一用户设备提供与第一用户语音输入相关联的上下文信息,可改善涉及数字助理的视频通信会话体验。具体地,确定用户语音输入是否是公共数字助理请求并随后向第二用户设备传输对与用户语音输入相关联的上下文信息的请求(如果用户语音输入是公共数字助理请求)允许第一用户设备和第二用户设备的用户在视频通信会话期间以更自然和会话式的方式提供数字助理请求。例如,不是每个用户都必须在视频通信会话期间单独提供相同的数字助理请求(例如,“嘿,Siri,我今天什么时候有空?”),而是第一用户设备的用户可提供公共数字助理请求(例如,“嘿,Siri,找个时间给我们开会。”),并且如将在下文所详述,第一用户设备可随后获得并提供考虑了来自第一用户设备和第二用户设备两者的上下文信息的一个或多个数字助理响应(例如,“John和你今天下午5:30都有空。”)。这继而产生单个数字助理的表象,该单个数字助理与第一用户设备和第二用户设备的用户一起参与(与针对每个用户设备的单独数字助理相反)并且知道用户/用户设备的上下文。这最终改善了第一用户设备和第二用户设备的用户的视频通信会话体验。
附图说明
图1为示出了根据各种示例的用于实现数字助理的系统和环境的框图。
图2A为示出了根据各种示例的实现数字助理的客户端侧部分的便携式多功能设备的框图。
图2B为示出了根据各种示例的用于事件处理的示例性部件的框图。
图3示出了根据各种示例的实现数字助理的客户端侧部分的便携式多功能设备。
图4为根据各种示例的具有显示器和触敏表面的示例性多功能设备的框图。
图5A示出了根据各种示例的便携式多功能设备上的应用程序的菜单的示例性用户界面。
图5B示出了根据各种示例的具有与显示器分开的触敏表面的多功能设备的示例性用户界面。
图6A示出了根据各种示例的个人电子设备。
图6B为示出了根据各种示例的个人电子设备的框图。
图7A为示出了根据各种示例的数字助理系统或其服务器部分的框图。
图7B示出了根据各种示例的在图7A中所示的数字助理的功能。
图7C示出了根据各种示例的知识本体的一部分。
图8示出了根据各种示例的用于在视频通信会话期间提供上下文感知数字助理响应的系统和技术。
图9示出了根据各种示例的用于视频通信会话的示例性用户界面。
图10示出了根据各种示例的用于基于在参与视频通信会话的用户设备处接收的用户语音输入来确定候选数字助理任务的系统和技术。
图11示出了根据各种示例的用于视频通信会话的实时转录的示例性用户界面。
图12示出了根据各种示例的用于在视频通信会话期间提供对公共数字助理请求的数字助理响应的系统和技术。
图13A至图13C示出了根据各种示例的表示用于在视频通信会话期间提供上下文感知数字助理响应的过程的流程图。
图14A至图14B示出了根据各种示例的表示用于基于在参与视频通信会话的用户设备处接收的用户语音输入来确定候选数字助理任务的过程的流程图。
图15A至图15B示出了根据各种示例的表示用于在视频通信会话期间提供对公共数字助理请求的数字助理响应的过程的流程图。
具体实施方式
在以下对示例的描述中将引用附图,在附图中以例示的方式示出了可被实施的特定示例。应当理解,在不脱离各个示例的范围的情况下,可使用其他示例并且可作出结构性改变。
本公开涉及视频通信会话环境中的智能自动化助理。例如,本公开描述了通过使用来自第一用户设备的上下文信息来确定第二用户设备处的数字助理响应,在参与视频通信会话的多个用户设备处提供上下文感知数字助理。这样,参与视频通信会话的用户可在视频通信会话期间与数字助理交互,就如同数字助理是视频通信会话中的另一个参与者一样。本公开还描述了基于在参与视频通信会话的用户设备处接收的用户语音输入的共享转录来自动确定候选数字助理任务。这样,参与视频通信会话的用户设备的数字助理可基于在视频通信会话期间保持的会话主动地确定用户设备的用户可能希望数字助理执行的一个或多个任务。
尽管以下描述使用术语“第一”、“第二”等来描述各种元件,但这些元件不应受术语的限制。这些术语只是用于将一个元件与另一元件区分开。例如,在不脱离各种所述示例的范围的情况下,第一输入可被称为第二输入,并且类似地,第二输入可被称为第一输入。第一输入和第二输入均为输入,并且在一些情况下为独立且不同的输入。
在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所用,单数形式“一个”、“一种”和“该”旨在也包括复数形式,除非上下文另外明确地指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“includes”、“including”、“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其分组。
根据上下文,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
1.系统和环境
图1示出了根据各种示例的系统100的框图。在一些示例中,系统100实现数字助理。术语“数字助理”、“虚拟助理”、“智能自动化助理”或“自动数字助理”是指解译口头形式和/或文本形式的自然语言输入来推断用户意图并且基于推断出的用户意图来执行动作的任何信息处理系统。例如,为了作用于推断出的用户意图,系统执行下述步骤中的一个或多个:识别具有设计用于实现推断出的用户意图的步骤和参数的任务流,根据推断出的用户意图将特定要求输入到任务流中;通过调用程序、方法、服务、API等执行任务流;以及以可听(例如,语音)和/或可视形式来生成对用户的输出响应。
具体地,数字助理能够接受至少部分地为自然语言命令、请求、声明、讲述和/或询问的形式的用户请求。通常,用户请求寻求数字助理作出信息性回答或执行任务。对用户请求的令人满意的响应包括提供所请求的信息性回答、执行所请求的任务或这两者的组合。例如,用户向数字助理提出问题,诸如“我现在在哪里?”。基于用户的当前位置,数字助理回答“你在中央公园西门附近。”用户还请求执行任务,例如“请邀请我的朋友们下周来参加我女朋友的生日聚会。”作为响应,数字助理可通过讲出“好的,马上”来确认请求,然后代表用户将合适的日历邀请发送到用户电子通讯录中列出的用户朋友中的每位朋友。在执行所请求的任务期间,数字助理有时在很长时间段内在涉及多次信息交换的持续对话中与用户进行交互。存在与数字助理进行交互以请求信息或执行各种任务的许多其他方法。除提供言语响应并采取经编程的动作之外,数字助理还提供其他视频或音频形式的响应,例如作为文本、警报、音乐、视频、动画等。
如图1所示,在一些示例中,数字助理根据客户端-服务器模型来实现。数字助理包括在用户设备104上执行的客户端侧部分102(后文称作“DA客户端102”)以及在服务器系统108上执行的服务器侧部分106(后文称作“DA服务器106”)。DA客户端102通过一个或多个网络110与DA服务器106通信。DA客户端102提供客户端侧功能,诸如面向用户的输入和输出处理,以及与DA服务器106通信。DA服务器106为各自位于相应用户设备104上的任意数量的DA客户端102提供服务器侧功能。
在一些示例中,DA服务器106包括面向客户端的I/O接口112、一个或多个处理模块114、数据与模型116,以及到外部服务的I/O接口118。面向客户端的I/O接口112有利于DA服务器106的面向客户端的输入和输出处理。一个或多个处理模块114利用数据与模型116来处理语音输入,并基于自然语言输入来确定用户意图。此外,一个或多个处理模块114基于推断出的用户意图来执行任务执行。在一些示例中,DA服务器106通过一个或多个网络110与外部服务120通信以完成任务或采集信息。到外部服务的I/O接口118有利于此类通信。
用户设备104可以是任何合适的电子设备。在一些示例中,用户设备104是便携式多功能设备(例如,下文参考图2A所述的设备200)、多功能设备(例如,下文参考图4所述的设备400)或个人电子设备(例如,下文参考图6A至图6B所述的设备600)。便携式多功能设备是例如还包含其他功能(诸如,PDA和/或音乐播放器功能)的移动电话。便携式多功能设备的特定示例包括来自Apple Inc.(Cupertino,California)的Apple
Figure BDA0003793037720000111
iPod
Figure BDA0003793037720000112
Figure BDA0003793037720000113
设备。便携式多功能设备的其他示例包括但不限于耳塞式耳机/头戴式耳机、扬声器以及膝上型电脑或平板电脑。此外,在一些示例中,用户设备104是非便携式多功能设备。具体地,用户设备104是台式计算机、游戏机、扬声器、电视或电视机顶盒。在一些示例中,用户设备104包括触敏表面(例如,触摸屏显示器和/或触控板)。此外,用户设备104任选地包括一个或多个其他物理用户接口设备,诸如物理键盘、鼠标和/或操纵杆。下文更详细地描述了电子设备诸如多功能设备的各种示例。
一个或多个通信网络110的示例包括局域网(LAN)和广域网(WAN),例如互联网。一个或多个通信网络110使用任何已知的网络协议来实现,包括各种有线或无线协议,诸如以太网、通用串行总线(USB)、FIREWIRE、全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi、互联网协议语音(VoIP)、Wi-MAX或任何其他合适的通信协议。
服务器系统108在一个或多个独立式数据处理设备或分布式计算机网络上实现。在一些示例中,服务器系统108还采用第三方服务提供方(例如,第三方云服务提供方)的各种虚拟设备和/或服务来提供服务器系统108的潜在计算资源和/或基础结构资源。
在一些示例中,用户设备104经由第二用户设备122与DA服务器106通信。第二用户设备122与用户设备104相似或相同。例如,第二用户设备122类似于下文参考图2A、图4以及图6A至图6B所述的设备200、400或600。用户设备104被配置为经由直接通信连接(诸如,蓝牙、NFC、BTLE等)或者经由有线或无线网络(诸如,局域Wi-Fi网络)而通信耦接到第二用户设备122。在一些示例中,第二用户设备122被配置为充当用户设备104与DA服务器106之间的代理。例如,用户设备104的DA客户端102被配置为经由第二用户设备122向DA服务器106传输信息(例如,在用户设备104处接收的用户请求)。DA服务器106处理该信息,并经由第二用户设备122将相关数据(例如,响应于用户请求的数据内容)返回到用户设备104。
在一些示例中,用户设备104被配置为将针对数据的缩略请求发送到第二用户设备122,以减少从用户设备104传输的信息量。第二用户设备122被配置为确定添加到缩略请求的补充信息,以生成完整的请求来传输到DA服务器106。该系统架构可有利地通过使用具有较强通信能力和/或电池电力的第二用户设备122(例如,移动电话、膝上型计算机、平板电脑等)作为到DA服务器106的代理,允许具有有限通信能力和/或有限电池电力的用户设备104(例如,手表或类似的紧凑型电子设备)访问DA服务器106提供的服务。虽然图1中仅示出两个用户设备104和122,但应当理解,在一些示例中,系统100可包括在此代理配置中被配置为与DA服务器系统106通信的任意数量和类型的用户设备。
虽然图1中所示的数字助理包括客户端侧部分(例如,DA客户端102)和服务器侧部分(例如,DA服务器106)两者,但在一些示例中,数字助理的功能被实现为被安装在用户设备上的独立式应用程序。此外,数字助理的客户端部分与服务器部分之间的功能划分在不同的具体实施中可变化。例如,在一些示例中,DA客户端为仅提供面向用户的输入和输出处理功能并将数字助理的所有其他功能委派给后端服务器的瘦客户端。
2.电子设备
现在将注意力转至用于实现数字助理的客户端侧部分的电子设备的实施方案。图2A是示出了根据一些实施方案的具有触敏显示器系统212的便携式多功能设备200的框图。触敏显示器212有时为了方便被叫做“触摸屏”,并且有时被称为或被叫做“触敏显示器系统”。设备200包括存储器202(其任选地包括一个或多个计算机可读存储介质)、存储器控制器222、一个或多个处理单元(CPU)220、外围设备接口218、RF电路208、音频电路210、扬声器211、麦克风213、输入/输出(I/O)子系统206、其他输入控制设备216和外部端口224。设备200任选地包括一个或多个光学传感器264。设备200任选地包括用于检测设备200(例如设备200的触敏表面诸如触敏显示器系统212)上的接触的强度的一个或多个接触强度传感器265。设备200任选地包括用于在设备200上生成触觉输出(例如,在触敏表面诸如设备200的触敏显示器系统212或设备400的触控板455上生成触觉输出)的一个或多个触觉输出发生器267。这些部件任选地通过一个或多个通信总线或信号线203进行通信。
如在本说明书和权利要求书中所使用的,术语触敏表面上的接触的“强度”是指触敏表面上的接触(例如,手指接触)的力或压力(每单位面积的力),或是指触敏表面上的接触的力或压力的替代物(代用物)。接触的强度具有值范围,该值范围包括至少四个不同的值并且更典型地包括上百个不同的值(例如,至少256个)。接触的强度任选地使用各种方法和各种传感器或传感器的组合来确定(或测量)。例如,在触敏表面下方或相邻于触敏表面的一个或多个力传感器任选地用于测量触敏表面上的不同点处的力。在一些具体实施中,来自多个力传感器的力测量值被组合(例如,加权平均)以确定所估计的接触力。类似地,触笔的压敏顶端任选地用于确定触笔在触敏表面上的压力。另选地,在触敏表面上检测到的接触区域的大小和/或其变化、接触附近的触敏表面的电容和/或其变化以及/或者接触附近的触敏表面的电阻和/或其变化任选地被用作触敏表面上的接触的力或压力的替代物。在一些具体实施中,接触力或压力的替代物测量直接用于确定是否已经超过强度阈值(例如,强度阈值以对应于替代物测量的单位来描述)。在一些具体实施中,接触力或压力的替代物测量被转换成估计的力或压力,并且估计的力或压力用于确定是否已超过强度阈值(例如,强度阈值是以压力的单位进行测量的压力阈值)。使用接触的强度作为用户输入的属性,从而允许用户访问用户在实地面积有限的尺寸更小的设备上本来不可访问的附加设备功能,该尺寸更小的设备用于(例如,在触敏显示器上)显示示能表示和/或接收用户输入(例如,经由触敏显示器、触敏表面或物理控件/机械控件,诸如旋钮或按钮)。
如本说明书和权利要求书中所使用的,术语“触觉输出”是指将由用户利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备的部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物理位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与用户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触的情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感对应于设备或设备的部件的物理特征的所感知的变化。例如,触敏表面(例如,触敏显示器或触控板)的移动任选地由用户解释为对物理致动按钮的“按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如“按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压(例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。又如,即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用户解释或感测为触敏表面的“粗糙度”。虽然用户对触摸的此类解释将受到用户的个体化感官知觉的限制,但是对触摸的许多感官知觉是大多数用户共有的。因此,当触觉输出被描述为对应于用户的特定感官知觉(例如,“按下点击”、“松开点击”、“粗糙度”)时,除非另外陈述,否则所生成的触觉输出对应于设备或其部件的物理位移,该物理位移将会生成典型(或普通)用户的所述感官知觉。
应当理解,设备200仅是便携式多功能设备的一个示例,并且设备200任选地具有比所示出的更多或更少的部件,任选地组合两个或更多个部件,或者任选地具有这些部件的不同配置或布置。图2A中所示的各种部件以硬件、软件或硬件与软件两者的组合来实现,包括一个或多个信号处理和/或专用集成电路。
存储器202包括一个或多个计算机可读存储介质。这些计算机可读存储介质例如为有形的和非暂态的。存储器202包括高速随机存取存储器,并且还包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备或其他非易失性固态存储器设备。存储器控制器222控制设备200的其他部件访问存储器202。
在一些示例中,存储器202的非暂态计算机可读存储介质用于存储指令(例如,用于执行下文描述的过程的各方面)以供指令执行系统、装置或设备诸如基于计算机的系统、包含处理器的系统或可从指令执行系统、装置或设备取出指令并执行指令的其他系统使用或与其结合使用。在其他示例中,指令(例如,用于执行下文描述的过程的各方面)存储在服务器系统108的非暂态计算机可读存储介质(未示出)上,或在存储器202的非暂态计算机可读存储介质与服务器系统108的非暂态计算机可读存储介质之间划分。
外围设备接口218用于将设备的输入和输出外围设备耦接到CPU 220和存储器202。一个或多个处理器220运行或执行存储器202中所存储的各种软件程序和/或指令集以执行设备200的各种功能并处理数据。在一些实施方案中,外围设备接口218、CPU 220和存储器控制器222在单个芯片诸如芯片204上实现。在一些其他实施方案中,它们在独立的芯片上实现。
RF(射频)电路208接收和发送也被称作电磁信号的RF信号。RF电路208将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号与通信网络及其他通信设备进行通信。RF电路208任选地包括用于执行这些功能的熟知的电路,包括但不限于天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编解码芯片组、用户身份模块(SIM)卡、存储器等等。RF电路208任选地通过无线通信来与网络和其他设备进行通信,这些网络为诸如互联网(也被称为万维网(WWW))、内联网和/或无线网络(诸如,蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN))。RF电路208任选地包括用于诸如通过近程通信无线电部件来检测近场通信(NFC)场的熟知的电路。无线通信任选地使用多种通信标准、协议和技术中的任一种,包括但不限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、演进、纯数据(EV-DO)、HSPA、HSPA+、双小区HSPA(DC-HSPDA)、长期演进(LTE)、近场通信(NFC)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、蓝牙低功耗(BTLE)、无线保真(Wi-Fi)(例如,IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、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。在一些实施方案中,音频电路210还包括耳麦插孔(例如,图3中的312)。该耳麦插孔提供音频电路210与可移除的音频输入/输出外围设备之间的接口,该可移除的音频输入/输出外围设备诸如仅输出的耳机或者具有输出(例如,单耳耳机或双耳耳机)和输入(例如,麦克风)两者的耳麦。
I/O子系统206将设备200上的输入/输出外围设备诸如触摸屏212和其他输入控制设备216耦接到外围设备接口218。I/O子系统206任选地包括显示控制器256、光学传感器控制器258、强度传感器控制器259、触觉反馈控制器261,以及用于其他输入或控制设备的一个或多个输入控制器260。一个或多个输入控制器260从其他输入控制设备216接收电信号/将电信号发送到其他输入控制设备。其他输入控制设备216任选地包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击轮等。在一些另选实施方案中,输入控制器260任选地耦接至以下各项中的任一者(或不耦接至以下各项中的任一者):键盘、红外线端口、USB端口以及指向设备诸如鼠标。一个或多个按钮(例如,图3中的308)任选地包括用于扬声器211和/或麦克风213的音量控制的增大/减小按钮。一个或多个按钮任选地包括下压按钮(例如,图3中的306)。
快速按下下压按钮会脱离触摸屏212的锁定或者开始使用触摸屏上的手势来对设备进行解锁的过程,如在2005年12月23日提交的名称为“Unlocking a Device byPerforming Gestures on an Unlock Image”的美国专利7657849号的美国专利申请11/322549中所述,该美国专利申请据此全文以引用方式并入本文。较长地按下下压按钮(例如,306)使设备200开机或关机。用户能够自定义一个或多个按钮的功能。触摸屏212用于实现虚拟按钮或软按钮以及一个或多个软键盘。
触敏显示器212提供设备和用户之间的输入接口和输出接口。显示控制器256从触摸屏212接收电信号和/或将电信号发送至触摸屏212。触摸屏212向用户显示视觉输出。视觉输出包括图形、文本、图标、视频及其任何组合(统称为“图形”)。在一些实施方案中,一些视觉输出或全部视觉输出对应于用户界面对象。
触摸屏212具有基于触觉和/或触感接触来接受来自用户的输入的触敏表面、传感器或传感器组。触摸屏212和显示控制器256(与存储器202中的任何相关联的模块和/或指令集一起)检测触摸屏212上的接触(和该接触的任何移动或中断),并且将所检测到的接触转换为与被显示在触摸屏212上的用户界面对象(例如,一个或多个软键、图标、网页或图像)的交互。在示例性实施方案中,触摸屏212与用户之间的接触点对应于用户的手指。
触摸屏212使用LCD(液晶显示器)技术、LPD(发光聚合物显示器)技术或LED(发光二极管)技术,但在其他实施方案中可使用其他显示技术。触摸屏212和显示控制器256使用目前已知或以后将开发的多种触摸感测技术中的任何技术,以及其他接近传感器阵列或用于确定与触摸屏212接触的一个或多个点的其他元件来检测接触及其任何移动或中断,所述多种触摸感测技术包括但不限于电容式、电阻式、红外和表面声波技术。在示例性实施方案中,使用投射式互电容感测技术,诸如在来自Apple Inc.(Cupertino,California)的
Figure BDA0003793037720000171
和iPod
Figure BDA0003793037720000172
中使用的技术。
在一些实施方案中,触摸屏212的触敏显示器类似于以下美国专利:6,323,846(Westerman等人)、6,570,557(Westerman等人)和/或6,677,932(Westerman)和/或美国专利公开2002/0015024A1中所述的多点触敏触控板,这些专利申请均据此全文以引用方式并入本文。然而,触摸屏212显示来自设备200的视觉输出,而触敏触控板不提供视觉输出。
在一些实施方案中,触摸屏212的触敏显示器如以下申请所述:(1)2006年5月2日提交的名称为“Multipoint Touch Surface Controller”的美国专利申请11/381313号;(2)2004年5月6日提交的名称为“Multipoint Touchscreen”的美国专利申请No.10/840,862;(3)2004年7月30日提交的名称为“Gestures For Touch Sensitive Input Devices”的美国专利申请No.10/903,964;(4)2005年1月31日提交的名称为“Gestures For TouchSensitive Input Devices”的美国专利申请No.11/048,264;(5)2005年1月18日提交的名称为“Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices”的美国专利申请No.11/038,590;(6)2005年9月16日提交的名称为“Virtual Input DevicePlacement On A Touch Screen User Interface”的美国专利申请No.11/228,758;(7)2005年9月16日提交的名称为“Operation Of A Computer With A Touch ScreenInterface”的美国专利申请No.11/228,700;(8)2005年9月16日提交的名称为“ActivatingVirtual Keys Of A Touch-Screen Virtual 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 InHandheld Device”;No.11/620,702,名称为“Using Ambient Light Sensor To AugmentProximity Sensor Output”;No.11/586,862,名称为“Automated Response To AndSensing Of User Activity In Portable Devices”;以及No.11/638,251,名称为“Methods And Systems For Automatic Configuration Of Peripherals”,这些美国专利申请据此全文以引用方式并入本文。在一些实施方案中,当多功能设备被置于用户的耳朵附近时(例如,当用户正在进行电话呼叫时),接近传感器关闭并且禁用触摸屏212。
设备200任选地还包括一个或多个触觉输出发生器267。图2A示出了耦接到I/O子系统206中的触觉反馈控制器261的触觉输出发生器。触觉输出发生器267任选地包括一个或多个电声设备诸如扬声器或其他音频部件;和/或用于将能量转换成线性运动的机电设备诸如电机、螺线管、电活性聚合器、压电致动器、静电致动器或其他触觉输出生成部件(例如,用于将电信号转换成设备上的触觉输出的部件)。接触强度传感器265从触觉反馈模块233接收触觉反馈生成指令,并且在设备200上生成能够由设备200的用户感觉到的触觉输出。在一些实施方案中,至少一个触觉输出发生器与触敏表面(例如,触敏显示器系统212)并置排列或邻近,并且任选地通过竖直地(例如,向设备200的表面内/外)或侧向地(例如,在与设备200的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一些实施方案中,至少一个触觉输出发生器传感器位于设备200的后部上,与位于设备200的前部上的触摸屏显示器212相背对。
设备200还包括一个或多个加速度计268。图2A示出了耦接到外围设备接口218的加速度计268。另选地,加速度计268耦接至I/O子系统206中的输入控制器260。加速度计268如以下美国专利公开中所述那样执行:美国专利公开20050190059号,“Acceleration-based Theft Detection System for Portable Electronic Devices”和美国专利公开20060017692号,“Methods And Apparatuses For Operating A Portable Device BasedOn An Accelerometer”,这两个美国专利公开全文以引用方式并入本文。在一些实施方案中,基于对从一个或多个加速度计接收的数据的分析来在触摸屏显示器上以纵向视图或横向视图显示信息。设备200任选地除了一个或多个加速度计268之外还包括磁力仪(未示出)和GPS(或GLONASS或其他全球导航系统)接收器(未示出),以用于获取关于设备200的位置和取向(例如,纵向或横向)的信息。
在一些实施方案中,存储于存储器202中的软件部件包括操作系统226、通信模块(或指令集)228、接触/运动模块(或指令集)230、图形模块(或指令集)232、文本输入模块(或指令集)234、全球定位系统(GPS)模块(或指令集)235、数字助理客户端模块229以及应用程序(或指令集)236。此外,存储器202存储数据与模型,诸如用户数据与模型231。此外,在一些实施方案中,存储器202(图2A)或470(图4)存储设备/全局内部状态257,如图2A和图4中所示。设备/全局内部状态257包括以下中的一者或多者:活动应用程序状态,其指示哪些应用程序(如果有的话)当前是活动的;显示状态,其指示什么应用程序、视图或其他信息占据触摸屏显示器212的各个区域;传感器状态,包括从设备的各个传感器和输入控制设备216获取的信息;以及关于设备的位置和/或姿态的位置信息。
操作系统226(例如,Darwin、RTXC、LINUX、UNIX、OS X、iOS、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件部件和/或驱动程序,并且促进各种硬件部件和软件部件之间的通信。
通信模块228便于通过一个或多个外部端口224来与其他设备进行通信,并且还包括用于处理由RF电路208和/或外部端口224所接收的数据的各种软件组件。外部端口224(例如,通用串行总线(USB)、火线等)适于直接耦接到其他设备,或间接地通过网络(例如,互联网、无线LAN等)进行耦接。在一些实施方案中,外部端口是与
Figure BDA0003793037720000211
(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或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”的美国临时专利申请No.60/936,562和2007年12月31日提交的名称为“Portable Multifunction Device,Method,and Graphical User Interface forPlaying Online Videos”的美国专利申请No.11/968,067,这两个专利申请的内容据此全文以引用方式并入本文。
上述每个模块和应用程序对应于用于执行上述一种或多种功能以及在本专利申请中所述的方法(例如,本文所述的计算机实现的方法和其他信息处理方法)的可执行指令集。这些模块(例如,指令集)不必被实现为独立的软件程序、过程或模块,并因此在各种实施方案中可组合或以其他方式重新布置这些模块的各种子集。例如,视频播放器模块可与音乐播放器模块组合成单个模块(例如,图2A中的视频和音乐播放器模块252)。在一些实施方案中,存储器202存储上述模块和数据结构的子集。此外,存储器202存储上文未描述的附加模块和数据结构。
在一些实施方案中,设备200是该设备上的预定义的一组功能的操作唯一地通过触摸屏和/或触控板来执行的设备。通过使用触摸屏和/或触控板作为用于设备200的操作的主要输入控制设备,减少设备200上的物理输入控制设备(诸如下压按钮、拨盘等)的数量。
唯一地通过触摸屏和/或触控板来执行的预定义的一组功能任选地包括在用户界面之间的导航。在一些实施方案中,触控板在被用户触摸时将设备200从设备200上显示的任何用户界面导航到主菜单、home菜单或根菜单。在此类实施方案中,使用触控板来实现“菜单按钮”。在一些其他实施方案中,菜单按钮是物理下压按钮或者其他物理输入控制设备,而不是触控板。
图2B是示出根据一些实施方案的用于事件处理的示例性部件的框图。在一些实施方案中,存储器202(图2A)或存储器470(图4)包括事件分类器270(例如,在操作系统226中)以及相应的应用程序236-1(例如,前述应用程序237至251、255、480至490中的任一个应用程序)。
事件分类器270接收事件信息并确定要将事件信息递送到的应用程序236-1和应用程序236-1的应用程序视图291。事件分类器270包括事件监视器271和事件分配器模块274。在一些实施方案中,应用程序236-1包括应用程序内部状态292,该应用程序内部状态指示当应用程序是活动的或正在执行时被显示在触敏显示器212上的一个或多个当前应用程序视图。在一些实施方案中,设备/全局内部状态257被事件分类器270用来确定哪个(哪些)应用程序当前是活动的,并且应用程序内部状态292被事件分类器270用来确定要将事件信息递送到的应用程序视图291。
在一些实施方案中,应用程序内部状态292包括附加信息,诸如以下各项中的一者或多者:当应用程序236-1恢复执行时将被使用的恢复信息、指示信息正被显示或准备好用于被应用程序236-1显示的用户界面状态信息、用于使得用户能够返回到应用程序236-1的前一状态或视图的状态队列,以及用户采取的先前动作的重复/撤销队列。
事件监视器271从外围设备接口218接收事件信息。事件信息包括关于子事件(例如,作为多点触摸手势一部分的触敏显示器212上的用户触摸)的信息。外围设备接口218传输其从I/O子系统206或传感器诸如接近传感器266、一个或多个加速度计268和/或麦克风213(通过音频电路210)接收的信息。外围设备接口218从I/O子系统206接收的信息包括来自触敏显示器212或触敏表面的信息。
在一些实施方案中,事件监视器271以预先确定的间隔将请求发送至外围设备接口218。作为响应,外围设备接口218传输事件信息。在其他实施方案中,外围设备接口218仅当存在显著事件(例如,接收到高于预先确定的噪声阈值的输入和/或接收到超过预先确定的持续时间的输入)时才传输事件信息。
在一些实施方案中,事件分类器270还包括命中视图确定模块272和/或活动事件识别器确定模块273。
当触敏显示器212显示多于一个视图时,命中视图确定模块272提供用于确定子事件已在一个或多个视图内的什么地方发生的软件过程。视图由用户能够在显示器上看到的控件和其他元素构成。
与应用程序相关联的用户界面的另一方面是一组视图,本文中有时也称为应用程序视图或用户界面窗口,在其中显示信息并且发生基于触摸的手势。在其中检测到触摸的(相应应用程序的)应用程序视图对应于应用程序的程序化分级结构或视图分级结构内的程序化水平。例如,在其中检测到触摸的最低水平视图被称为命中视图,并且被认为是正确输入的事件集至少部分地基于初始触摸的命中视图来确定,该初始触摸开始基于触摸的手势。
命中视图确定模块272接收与基于触摸的手势的子事件相关的信息。当应用程序具有以分级结构组织的多个视图时,命中视图确定模块272将命中视图识别为应当对子事件进行处理的分级结构中的最低视图。在大多数情况下,命中视图是发起子事件(例如,形成事件或潜在事件的子事件序列中的第一子事件)在其中发生的最低水平视图。一旦命中视图被命中视图确定模块272识别,命中视图便通常接收与其被识别为命中视图所针对的同一触摸或输入源相关的所有子事件。
活动事件识别器确定模块273确定视图分级结构内的哪个或哪些视图应接收特定子事件序列。在一些实施方案中,活动事件识别器确定模块273确定仅命中视图应接收特定子事件序列。在其他实施方案中,活动事件识别器确定模块273确定包括子事件的物理位置的所有视图是活跃参与的视图,并因此确定所有活跃参与的视图都应接收特定子事件序列。在其他实施方案中,即使触摸子事件完全被局限到与一个特定视图相关联的区域,分级结构中的较高视图将仍然保持为活跃参与的视图。
事件分配器模块274将事件信息分配到事件识别器(例如,事件识别器280)。在包括活动事件识别器确定模块273的实施方案中,事件分配器模块274将事件信息递送到由活动事件识别器确定模块273确定的事件识别器。在一些实施方案中,事件分配器模块274在事件队列中存储事件信息,该事件信息由相应事件接收器282进行检索。
在一些实施方案中,操作系统226包括事件分类器270。另选地,应用程序236-1包括事件分类器270。在又一个实施方案中,事件分类器270是独立模块,或者是存储在存储器202中的另一个模块(诸如,接触/运动模块230)的一部分。
在一些实施方案中,应用程序236-1包括多个事件处理程序290和一个或多个应用程序视图291,其中的每个应用程序视图包括用于处理发生在应用程序的用户界面的相应视图内的触摸事件的指令。应用程序236-1的每个应用程序视图291包括一个或多个事件识别器280。通常,相应应用程序视图291包括多个事件识别器280。在其他实施方案中,事件识别器280中的一个或多个事件识别器是独立模块的一部分,该独立模块为诸如用户界面工具包(未示出)或应用程序236-1从中继承方法和其他属性的较高级别的对象。在一些实施方案中,相应事件处理程序290包括以下各项中的一者或多者:数据更新器276、对象更新器277、GUI更新器278、和/或从事件分类器270接收的事件数据279。事件处理程序290利用或调用数据更新器276、对象更新器277或GUI更新器278来更新应用程序内部状态292。另选地,应用程序视图291中的一个或多个应用程序视图包括一个或多个相应事件处理程序290。另外,在一些实施方案中,数据更新器276、对象更新器277和GUI更新器278中的一者或多者包括在相应应用程序视图291中。
相应的事件识别器280从事件分类器270接收事件信息(例如,事件数据279),并且从事件信息识别事件。事件识别器280包括事件接收器282和事件比较器284。在一些实施方案中,事件识别器280还包括元数据283和事件传递指令288(其包括子事件传递指令)的至少一个子集。
事件接收器282接收来自事件分类器270的事件信息。事件信息包括关于子事件例如触摸或触摸移动的信息。根据子事件,事件信息还包括附加信息,诸如子事件的位置。当子事件涉及触摸的运动时,事件信息还包括子事件的速率和方向。在一些实施方案中,事件包括设备从一个取向旋转到另一取向(例如,从纵向取向旋转到横向取向,或反之亦然),并且事件信息包括关于设备的当前取向(也被称为设备姿态)的对应信息。
事件比较器284将事件信息与预定义的事件或子事件定义进行比较,并且基于该比较,确定事件或子事件,或者确定或更新事件或子事件的状态。在一些实施方案中,事件比较器284包括事件定义286。事件定义286包含事件的定义(例如,预定义的子事件序列),例如事件1(287-1)、事件2(287-2)、以及其他事件。在一些实施方案中,事件(287)中的子事件例如包括触摸开始、触摸结束、触摸移动、触摸取消和多点触摸。在一个示例中,事件1(287-1)的定义是被显示对象上的双击。例如,双击包括被显示对象上的预先确定时长的第一触摸(触摸开始)、预先确定时长的第一抬离(触摸结束)、被显示对象上的预先确定时长的第二触摸(触摸开始)以及预先确定时长的第二抬离(触摸结束)。在另一个示例中,事件2(287-2)的定义是被显示对象上的拖动。例如,拖动包括被显示对象上的预先确定时长的触摸(或接触)、触摸在触敏显示器212上的移动、以及触摸的抬离(触摸结束)。在一些实施方案中,事件还包括用于一个或多个相关联的事件处理程序290的信息。
在一些实施方案中,事件定义287包括对用于相应用户界面对象的事件的定义。在一些实施方案中,事件比较器284执行命中测试以确定哪个用户界面对象与子事件相关联。例如,在触敏显示器212上显示三个用户界面对象的应用程序视图中,当在触敏显示器212上检测到触摸时,事件比较器284执行命中测试以确定这三个用户界面对象中的哪一个用户界面对象与该触摸(子事件)相关联。如果每个所显示对象与相应事件处理程序290相关联,则事件比较器使用该命中测试的结果来确定哪个事件处理程序290应当被激活。例如,事件比较器284选择与子事件和触发该命中测试的对象相关联的事件处理程序。
在一些实施方案中,相应事件(287)的定义还包括延迟动作,该延迟动作延迟事件信息的递送,直到已确定子事件序列确实对应于或不对应于事件识别器的事件类型。
当相应事件识别器280确定子事件序列不与事件定义286中的任何事件匹配时,该相应事件识别器280进入事件不可能、事件失败或事件结束状态,在此之后忽略基于触摸的手势的后续子事件。在这种情况下,对于命中视图保持活动的其他事件识别器(如果有的话)继续跟踪并处理持续进行的基于触摸的手势的子事件。
在一些实施方案中,相应事件识别器280包括具有指示事件递送系统应当如何执行对活跃参与的事件识别器的子事件递送的可配置属性、标记和/或列表的元数据283。在一些实施方案中,元数据283包括指示事件识别器彼此如何交互或如何能够交互的可配置属性、标志和/或列表。在一些实施方案中,元数据283包括指示子事件是否递送到视图或程序化分级结构中的不同层级的可配置属性、标志和/或列表。
在一些实施方案中,当事件的一个或多个特定子事件被识别时,相应事件识别器280激活与事件相关联的事件处理程序290。在一些实施方案中,相应事件识别器280将与事件相关联的事件信息递送到事件处理程序290。激活事件处理程序290不同于将子事件发送(和延期发送)到相应命中视图。在一些实施方案中,事件识别器280抛出与所识别的事件相关联的标记,并且与该标记相关联的事件处理程序290获取该标记并执行预定义过程。
在一些实施方案中,事件递送指令288包括递送关于子事件的事件信息而不激活事件处理程序的子事件递送指令。相反,子事件递送指令将事件信息递送到与子事件序列相关联的事件处理程序或者递送到活跃参与的视图。与子事件序列或与活跃参与的视图相关联的事件处理程序接收事件信息并执行预先确定的过程。
在一些实施方案中,数据更新器276创建并更新在应用程序236-1中使用的数据。例如,数据更新器276对联系人模块237中所使用的电话号码进行更新,或者对视频播放器模块中所使用的视频文件进行存储。在一些实施方案中,对象更新器277创建和更新在应用程序236-1中使用的对象。例如,对象更新器277创建新的用户界面对象或更新用户界面对象的位置。GUI更新器278更新GUI。例如,GUI更新器278准备显示信息,并且将显示信息发送到图形模块232用以显示在触敏显示器上。
在一些实施方案中,事件处理程序290包括数据更新器276、对象更新器277和GUI更新器278或者具有对它们的访问权限。在一些实施方案中,数据更新器276、对象更新器277和GUI更新器278被包括在相应应用程序236-1或应用程序视图291的单个模块中。在其他实施方案中,它们被包括在两个或更多个软件模块中。
应当理解,关于触敏显示器上的用户触摸的事件处理的上述论述还适用于利用输入设备来操作多功能设备200的其他形式的用户输入,并不是所有用户输入都是在触摸屏上发起的。例如,任选地与单次或多次键盘按下或按住协作的鼠标移动和鼠标按钮按下;触控板上的接触移动,诸如轻击、拖动、滚动等;触笔输入;设备的移动;口头指令;检测到的眼睛移动;生物特征输入;和/或它们的任何组合任选地被用作对应于限定要识别的事件的子事件的输入。
图3示出了根据一些实施方案的具有触摸屏212的便携式多功能设备200。触摸屏任选地在用户界面(UI)300内显示一个或多个图形。在本实施方案以及下文所述的其他实施方案中,用户能够通过例如利用一根或多根手指302(在图中未按比例绘制)或一支或多支触笔303(在图中未按比例绘制)在图形上作出手势来选择这些图形中的一个或多个图形。在一些实施方案中,当用户中断与一个或多个图形的接触时,将发生对一个或多个图形的选择。在一些实施方案中,手势任选地包括一次或多次轻击、一次或多次轻扫(从左向右、从右向左、向上和/或向下)和/或已与设备200发生接触的手指的滚动(从右向左、从左向右、向上和/或向下)。在一些具体实施中或在一些情况下,不经意地与图形接触不会选择图形。例如,当与选择对应的手势是轻击时,在应用程序图标上方扫动的轻扫手势任选地不会选择对应的应用程序。
设备200还包括一个或多个物理按钮,诸如“home”或菜单按钮304。如前所述,菜单按钮304用于导航到在设备200上执行的一组应用程序中的任何应用程序236。另选地,在一些实施方案中,菜单按钮被实现为被显示在触摸屏212上的GUI中的软键。
在一些实施方案中,设备200包括触摸屏212、菜单按钮304、用于使设备通电/断电和用于锁定设备的下压按钮306、一个或多个音量调节按钮308、用户身份模块(SIM)卡槽310、耳麦插孔312和对接/充电外部端口224。下压按钮306任选地用于通过压下该按钮并且将该按钮保持在压下状态持续预定义的时间间隔来对设备进行开/关机;通过压下该按钮并在该预定义的时间间隔过去之前释放该按钮来锁定设备;和/或对设备进行解锁或发起解锁过程。在另选实施方案中,设备200还通过麦克风213接受用于激活或去激活某些功能的言语输入。设备200还任选地包括用于检测触摸屏212上的接触的强度的一个或多个接触强度传感器265,和/或用于为设备200的用户生成触觉输出的一个或多个触觉输出发生器267。
图4是根据一些实施方案的具有显示器和触敏表面的示例性多功能设备的框图。设备400不必是便携式的。在一些实施方案中,设备400为膝上型计算机、台式计算机、平板电脑、多媒体播放器设备、导航设备、教育设备(诸如儿童学习玩具)、游戏系统或控制设备(例如,家用控制器或工业用控制器)。设备400通常包括一个或多个处理单元(CPU)410、一个或多个网络或其他通信接口460、存储器470和用于使这些部件互连的一个或多个通信总线420。通信总线420任选地包括使系统部件互连并且控制系统部件之间的通信的电路(有时称作芯片组)。设备400包括具有显示器440的输入/输出(I/O)接口430,该显示器通常是触摸屏显示器。I/O接口430还任选地包括键盘和/或鼠标(或其他指向设备)450和触控板455、用于在设备400上生成触觉输出的触觉输出发生器457(例如,类似于上文参考图2A所述的一个或多个触觉输出发生器267)、传感器459(例如,光学传感器、加速度传感器、接近传感器、触敏传感器和/或接触强度传感器(类似于上文参考图2A所述的一个或多个接触强度传感器265))。存储器470包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;并且任选地包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器470任选地包括远离CPU 410定位的一个或多个存储设备。在一些实施方案中,存储器470存储与便携式多功能设备200(图2A)的存储器202中存储的程序、模块和数据结构类似的程序、模块和数据结构或其子集。此外,存储器470任选地存储在便携式多功能设备200的存储器202中不存在的附加程序、模块和数据结构。例如,设备400的存储器470任选地存储绘图模块480、呈现模块482、文字处理模块484、网站创建模块486、盘编辑模块488、和/或电子表格模块490,而便携式多功能设备200(图2A)的存储器202任选地不存储这些模块。
图4中的上述元件中的每一者在一些示例中存储在一个或多个先前提到的存储器设备中。上述模块中的每个模块对应于用于执行上述功能的指令集。上述模块或程序(例如,指令集)不必被实现为独立的软件程序、过程或模块,因此这些模块的各种子集在各种实施方案中组合或以其他方式重新布置。在一些实施方案中,存储器470存储上述模块和数据结构的子集。此外,存储器470存储上文未描述的附加模块和数据结构。
现在将注意力转到可在例如便携式多功能设备200上实现的用户界面的实施方案。
图5A示出了根据一些实施方案的便携式多功能设备200上的应用程序菜单的示例性用户界面。类似的用户界面在设备400上实现。在一些实施方案中,用户界面500包括以下元件或者其子集或超集:
一个或多个无线通信诸如蜂窝信号和Wi-Fi信号的一个或多个信号强度指示器502;
·时间504;
·蓝牙指示器505;
·电池状态指示符506;
·具有针对常用应用程序的图标的托盘508,该图标诸如:
○电话模块238的被标记为“电话”的图标516,该图标任选地包括未接来电或语音留言的数量的指示符514;
○电子邮件客户端模块240的被标记为“邮件”的图标518,该图标任选地包括未读电子邮件的数量的指示符510;
○浏览器模块247的被标记为“浏览器”的图标520;以及
○视频和音乐播放器模块252(也被称为iPod(Apple Inc.的商标)模块252)的被标记为“iPod”的图标522;以及
·其他应用的图标,诸如:
○IM模块241的被标记为“消息”的图标524;;
○日历模块248的被标记为“日历”的图标526;;
○图像管理模块244的被标记为“照片”的图标528;;
○相机模块243的被标记为“相机”的图标530;;
○在线视频模块255的被标记为“在线视频”的图标532;;
○股市桌面小程序249-2的被标记为“股市”的图标534;;
○地图模块254的被标记为“地图”的图标536;;
○天气桌面小程序249-1的被标记为“天气”的图标538;;
○闹钟桌面小程序249-4的被标记为“时钟”的图标540;;
○健身支持模块242的被标记为“健身支持”的图标542;;
○记事本模块253的被标记为“记事本”的图标544;以及
○用于设置应用程序或模块的被标记为“设置”的图标546,该图标提供对设备200及其各种应用程序236的设置的访问。
应当指出的是,图5A中示出的图标标签仅仅是示例性的。例如,视频和音乐播放器模块252的图标522任选地被标记为“音乐”或“音乐播放器”。对于各种应用程序图标任选地使用其他标签。在一些实施方案中,相应应用程序图标的标签包括与该相应应用程序图标对应的应用程序的名称。在一些实施方案中,特定应用程序图标的标签不同于与该特定应用程序图标对应的应用程序的名称。
图5B示出了具有与显示器550(例如,触摸屏显示器212)分开的触敏表面551(例如,图4的平板或触控板455)的设备(例如,图4的设备400)上的示例性用户界面。设备400还任选地包括用于检测触敏表面551上的接触的强度的一个或多个接触强度传感器(例如,传感器457中的一个或多个传感器)和/或用于为设备400的用户生成触觉输出的一个或多个触觉输出发生器459。
尽管将参考触摸屏显示器212(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器分开的触敏表面上的输入,如图5B中所示。在一些实施方案中,触敏表面(例如,图5B中的551)具有与显示器(例如,550)上的主轴(例如,图5B中的553)对应的主轴(例如,图5B中的552)。根据这些实施方案,设备检测在与显示器上的相应位置对应的位置(例如,在图5B中,560对应于568并且562对应于570)处的与触敏表面551的接触(例如,图5B中的560和562)。这样,在触敏表面(例如,图5B中的551)与多功能设备的显示器(例如,图5B中的550)分开时,由设备在触敏表面上检测到的用户输入(例如,接触560和562以及它们的移动)被该设备用于操纵显示器上的用户界面。应当理解,类似的方法任选地用于本文所述的其他用户界面。
另外,虽然主要是参考手指输入(例如,手指接触、单指轻击手势、手指轻扫手势)来给出下面的示例,但是应当理解的是,在一些实施方案中,这些手指输入中的一个或多个手指输入由来自另一输入设备的输入(例如,基于鼠标的输入或触笔输入)替代。例如,轻扫手势任选地由鼠标点击(例如,而不是接触),之后是光标沿着轻扫的路径的移动(例如,而不是接触的移动)替代。又如,轻击手势任选地由在光标位于轻击手势的位置上方时的鼠标点击(例如,代替对接触的检测,之后是停止检测接触)替代。类似地,当同时检测到多个用户输入时,应当理解的是,多个计算机鼠标任选地被同时使用,或鼠标和手指接触任选地被同时使用。
图6A示出了示例性个人电子设备600。设备600包括主体602。在一些实施方案中,设备600包括相对于设备200和400(例如,图2A-图4)所述的特征中的一些或全部特征。在一些实施方案中,设备600具有在下文中称为触摸屏604的触敏显示屏604。作为触摸屏604的替代或补充,设备600具有显示器和触敏表面。与设备200和400的情况一样,在一些实施方案中,触摸屏604(或触敏表面)具有用于检测正在施加的接触(例如,触摸)的强度的一个或多个强度传感器。触摸屏604(或触敏表面)的一个或多个强度传感器提供表示触摸的强度的输出数据。设备600的用户界面基于触摸强度来对触摸作出响应,这意味着不同强度的触摸可调用设备600上的不同的用户界面操作。
用于检测和处理触摸强度的技术可例如存在于相关申请中:2013年5月8日提交的名称为“Device,Method,and Graphical User Interface for Displaying UserInterface Objects Corresponding to an Application”的国际专利申请序列号PCT/US2013/040061,以及2013年11月11日提交的名称为“Device,Method,and Graphical UserInterface for Transitioning Between Touch Input to Display OutputRelationships”的国际专利申请序列号PCT/US2013/069483,这两个专利申请中的每个专利申请据此全文以引用方式并入本文。
在一些实施方案中,设备600具有一个或多个输入机构606和608。输入机构606和608(如果包括的话)是物理形式的。物理输入机构的示例包括下压按钮和可旋转机构。在一些实施方案中,设备600具有一个或多个附接机构。此类附接机构(如果包括的话)可允许将设备600与例如帽子、眼镜、耳环、项链、衬衣、夹克、手镯、表带、手链、裤子、皮带、鞋子、钱包、背包等附接。这些附接机构允许用户穿戴设备600。
图6B示出了示例性个人电子设备600。在一些实施方案中,设备600包括关于图2A、图2B和图4所述的部件中的一些或全部。设备600具有总线612,该总线将I/O部分614与一个或多个计算机处理器616和存储器618操作性地耦接。I/O部分614被连接到显示器604,该显示器可具有触敏部件622,并且任选地还具有触摸强度敏感部件624。此外,I/O部分614与通信单元630连接,以用于使用Wi-Fi、蓝牙、近场通信(NFC)、蜂窝和/或其他无线通信技术来接收应用程序和操作系统数据。设备600包括输入机构606和/或608。例如,输入机构606是可旋转输入设备或者可按压输入设备以及可旋转输入设备。在一些示例中,输入机构608是按钮。
在一些示例中,输入机构608是麦克风。个人电子设备600包括例如各种传感器,诸如GPS传感器632、加速度计634、定向传感器640(例如,罗盘)、陀螺仪636、运动传感器638和/或它们的组合,所有这些设备均可操作地连接到I/O部分614。
个人电子设备600的存储器618是用于存储计算机可执行指令的非暂态计算机可读存储介质,该指令当由一个或多个计算机处理器616执行时例如使得计算机处理器执行上述技术和过程。该计算机可执行指令也例如在任何非暂态计算机可读存储介质内进行存储和/或传送,以供指令执行系统、装置或设备诸如基于计算机的系统、包含处理器的系统或可从指令执行系统、装置或设备获取指令并执行指令的其他系统使用或与其结合。个人电子设备600不限于图6B的部件和配置,而是可包括多种配置中的其他部件或附加部件。
如本文所用,术语“示能表示”是指例如在设备200、400和/或600(图2A、图4和图6A至图6B)的显示屏上显示的用户交互式图形用户界面对象。例如,图像(例如,图标)、按钮和文本(例如,超链接)各自构成示能表示。
如本文所用,术语“焦点选择器”是指用于指示用户正与之进行交互的用户界面的当前部分的输入元件。在包括光标或其他位置标记的一些具体实施中,光标充当“焦点选择器”,使得当光标在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)上方时在触敏表面(例如,图4中的触控板455或图5B中的触敏表面551)上检测到输入(例如,按压输入)的情况下,该特定用户界面元素根据所检测到的输入而被调节。在包括能够实现与触摸屏显示器上的用户界面元素的直接交互的触摸屏显示器(例如,图2A中的触敏显示器系统212或图5A中的触摸屏212)的一些具体实施中,在触摸屏上所检测到的接触充当“焦点选择器”,使得当在触摸屏显示器上在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)的位置处检测到输入(例如,由接触进行的按压输入)时,该特定用户界面元素根据所检测到的输入而被调节。在一些具体实施中,焦点从用户界面的一个区域移动到用户界面的另一个区域,而无需光标的对应移动或触摸屏显示器上的接触的移动(例如,通过使用制表键或箭头键将焦点从一个按钮移动到另一个按钮);在这些具体实施中,焦点选择器根据焦点在用户界面的不同区域之间的移动而移动。不考虑焦点选择器所采取的具体形式,焦点选择器通常是由用户控制的以便递送与用户界面的用户预期的交互(例如,通过向设备指示用户界面的用户期望与其进行交互的元素)的用户界面元素(或触摸屏显示器上的接触)。例如,在触敏表面(例如,触控板或触摸屏)上检测到按压输入时,焦点选择器(例如,光标、接触或选择框)在相应按钮上方的位置将指示用户期望激活相应按钮(而不是设备显示器上示出的其他用户界面元素)。
如说明书和权利要求中所使用的,接触的“特征强度”这一术语是指基于接触的一个或多个强度的接触的特征。在一些实施方案中,特征强度基于多个强度样本。特征强度任选地基于相对于预定义事件(例如,在检测到接触之后,在检测到接触抬离之前,在检测到接触开始移动之前或之后,在检测到接触结束之前,在检测到接触的强度增大之前或之后和/或在检测到接触的强度减小之前或之后)而言在预先确定的时间段(例如,0.05秒、0.1秒、0.2秒、0.5秒、1秒、2秒、5秒、10秒)期间采集的预定义数量的强度样本或一组强度样本。接触的特征强度任选地基于以下各项中的一者或多者:接触强度的最大值、接触强度的均值、接触强度的平均值、接触强度的前10%处的值、接触强度的半最大值、接触强度的90%最大值等。在一些实施方案中,在确定特征强度时使用接触的持续时间(例如,在特征强度是接触的强度在时间上的平均值时)。在一些实施方案中,将特征强度与一组一个或多个强度阈值进行比较,以确定用户是否已执行操作。例如,该组一个或多个强度阈值包括第一强度阈值和第二强度阈值。在该示例中,特征强度未超过第一阈值的接触导致第一操作,特征强度超过第一强度阈值但未超过第二强度阈值的接触导致第二操作,而特征强度超过第二阈值的接触导致第三操作。在一些实施方案中,使用特征强度与一个或多个阈值之间的比较来确定是否要执行一个或多个操作(例如,是执行相应操作还是放弃执行相应操作),而不是用于确定执行第一操作还是第二操作。
在一些实施方案中,识别手势的一部分以用于确定特征强度。例如,触敏表面接收连续的轻扫接触,该连续的轻扫接触从起始位置过渡并到达结束位置,在该结束位置处,接触的强度增加。在该示例中,接触在结束位置处的特征强度仅基于连续轻扫接触的一部分,而不是整个轻扫接触(例如,轻扫接触仅位于结束位置处的部分)。在一些实施方案中,在确定接触的特征强度之前向轻扫接触的强度应用平滑化算法。例如,平滑化算法任选地包括以下各项中的一种或多种:不加权滑动平均平滑化算法、三角平滑化算法、中值滤波器平滑化算法和/或指数平滑化算法。在一些情况下,这些平滑化算法消除了轻扫接触的强度中的窄的尖峰或凹陷,以实现确定特征强度的目的。
相对于一个或多个强度阈值诸如接触检测强度阈值、轻按压强度阈值、深按压强度阈值和/或一个或多个其他强度阈值来表征触敏表面上的接触的强度。在一些实施方案中,轻按压强度阈值对应于这样的强度:在该强度下设备将执行通常与点击物理鼠标或触控板的按钮相关联的操作。在一些实施方案中,深按压强度阈值对应于这样的强度:在该强度下设备将执行与通常与点击物理鼠标或触控板的按钮相关联的操作不同的操作。在一些实施方案中,当检测到特征强度低于轻按压强度阈值(例如,并且高于标称接触检测强度阈值,比标称接触检测强度阈值低的接触不再被检测到)的接触时,设备将根据接触在触敏表面上的移动来移动焦点选择器,而不执行与轻按压强度阈值或深按压强度阈值相关联的操作。一般来讲,除非另有陈述,否则这些强度阈值在不同组的用户界面附图之间是一致的。
接触特征强度从低于轻按压强度阈值的强度增大到介于轻按压强度阈值与深按压强度阈值之间的强度有时被称为“轻按压”输入。接触特征强度从低于深按压强度阈值的强度增大到高于深按压强度阈值的强度有时被称为“深按压”输入。接触特征强度从低于接触检测强度阈值的强度增大到介于接触检测强度阈值与轻按压强度阈值之间的强度有时被称为检测到触摸表面上的接触。接触特征强度从高于接触检测强度阈值的强度减小到低于接触检测强度阈值的强度有时被称为检测到接触从触摸表面抬离。在一些实施方案中,接触检测强度阈值为零。在一些实施方案中,接触检测强度阈值大于零。
在本文中所述的一些实施方案中,响应于检测到包括相应按压输入的手势或响应于检测到利用相应接触(或多个接触)执行的相应按压输入来执行一个或多个操作,其中至少部分地基于检测到该接触(或多个接触)的强度增大到高于按压输入强度阈值而检测到相应按压输入。在一些实施方案中,响应于检测到相应接触的强度增大到高于按压输入强度阈值(例如,相应按压输入的“向下冲程”)来执行相应操作。在一些实施方案中,按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接触的强度随后减小到低于按压输入强度阈值,并且响应于检测到相应接触的强度随后减小到低于按压输入阈值(例如,相应按压输入的“向上冲程”)来执行相应操作。
在一些实施方案中,设备采用强度滞后以避免有时被称为“抖动”的意外输入,其中设备限定或选择与按压输入强度阈值具有预定义关系的滞后强度阈值(例如,滞后强度阈值比按压输入强度阈值低X个强度单位,或滞后强度阈值是按压输入强度阈值的75%、90%或某个合理比例)。因此,在一些实施方案中,按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接触的强度随后减小到低于对应于按压输入强度阈值的滞后强度阈值,并且响应于检测到相应接触的强度随后减小到低于滞后强度阈值(例如,相应按压输入的“向上冲程”)来执行相应操作。类似地,在一些实施方案中,仅在设备检测到接触强度从等于或低于滞后强度阈值的强度增大到等于或高于按压输入强度阈值的强度并且任选地接触强度随后减小到等于或低于滞后强度的强度时才检测到按压输入,并且响应于检测到按压输入(例如,根据环境,接触强度增大或接触强度减小)来执行相应操作。
为了容易解释,任选地,响应于检测到以下各种情况中的任一种情况而触发对响应于与按压输入强度阈值相关联的按压输入或响应于包括按压输入的手势而执行的操作的描述:接触强度增大到高于按压输入强度阈值、接触强度从低于滞后强度阈值的强度增大到高于按压输入强度阈值的强度、接触强度减小到低于按压输入强度阈值、和/或接触强度减小到低于与按压输入强度阈值对应的滞后强度阈值。另外,在将操作描述为响应于检测到接触的强度减小到低于按压输入强度阈值而执行的示例中,任选地响应于检测到接触的强度减小到低于对应于并且小于按压输入强度阈值的滞后强度阈值来执行操作。
3.数字助理系统
图7A示出了根据各种示例的数字助理系统700的框图。在一些示例中,数字助理系统700在独立式计算机系统上实现。在一些示例中,数字助理系统700跨多个计算机分布。在一些示例中,数字助理的模块和功能中的一些被划分成服务器部分和客户端部分,其中客户端部分位于一个或多个用户设备(例如,设备104、设备122、设备200、设备400或设备600)上并通过一个或多个网络与服务器部分(例如,服务器系统108)通信,例如,如图1中所示。在一些示例中,数字助理系统700是图1中所示的服务器系统108(和/或DA服务器106)的具体实施。应当指出,数字助理系统700仅为数字助理系统的一个示例,且该数字助理系统700具有比所示更多或更少的部件、组合两个或更多个部件,或者可具有部件的不同配置或布局。图7A中所示的各种部件在硬件、用于在由一个或多个处理器执行的软件指令、固件(包括一个或多个信号处理集成电路和/或专用集成电路),或它们的组合中实现。
数字助理系统700包括存储器702、输入/输出(I/O)接口706、网络通信接口708,以及一个或多个处理器704。这些部件可通过一条或多条通信总线或信号线710彼此通信。
在一些示例中,存储器702包括非暂态计算机可读介质,诸如高速随机存取存储器和/或非易失性计算机可读存储介质(例如,一个或多个磁盘存储设备、闪存存储器设备或其他非易失性固态存储器设备)。
在一些示例中,I/O接口706将数字助理系统700的输入/输出设备716诸如显示器、键盘、触摸屏和麦克风耦接至用户界面模块722。I/O接口706与用户界面模块722一起接收用户输入(例如,语音输入、键盘输入、触摸输入等)并相应地对这些输入进行处理。在一些示例中,例如,当数字助理在独立式用户设备上实现时,数字助理系统700包括相对于图2A、图4、图6A至图6B中各自的设备200、设备400或设备600所描述的部件和I/O通信接口中的任一者。在一些示例中,数字助理系统700代表数字助理具体实施的服务器部分,并且可通过位于用户设备(例如,设备104、设备200、设备400或设备600)上的客户端侧部分与用户进行交互。
在一些示例中,网络通信接口708包括一个或多个有线通信端口712和/或无线传输和接收电路714。一个或多个有线通信端口经由一个或多个有线接口例如以太网、通用串行总线(USB)、FIREWIRE等接收和发送通信信号。无线电路714从通信网络及其他通信设备接收RF信号和/或光学信号以及将RF信号和/或光学信号发送至通信网络及其他通信设备。无线通信使用多种通信标准、协议和技术中的任一种,诸如GSM、EDGE、CDMA、TDMA、蓝牙、Wi-Fi、VoIP、Wi-MAX、或任何其他合适的通信协议。网络通信接口708使数字助理系统700通过网络,诸如互联网、内联网和/或无线网络诸如蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN),与其他设备之间的通信成为可能。
在一些示例中,存储器702或存储器702的计算机可读存储介质存储程序、模块、指令和数据结构,包括以下内容中的全部或其子集:操作系统718、通信模块720、用户界面模块722、一个或多个应用程序724和数字助理模块726。具体地,存储器702或存储器702的计算机可读存储介质存储用于执行上述过程的指令。一个或多个处理器704执行这些程序、模块和指令,并从数据结构读取数据或将数据写到数据结构。
操作系统718(例如,Darwin、RTXC、LINUX、UNIX、iOS、OS X、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件部件和/或驱动器,并且有利于各种硬件、固件和软件部件之间的通信。
通信模块720有利于数字助理系统700与其他设备之间通过网络通信接口708进行的通信。例如,通信模块720与电子设备(诸如分别在图2A、图4、图6A至图6B中所示的设备200、400或600)的RF电路208通信。通信模块720还包括各种部件,用于处理由无线电路714和/或有线通信端口712所接收的数据。
用户界面模块722经由I/O接口706接收来自用户(例如,来自键盘、触摸屏、指向设备、控制器和/或麦克风)的命令和/或输入,并在显示器上生成用户界面对象。用户界面模块722还准备输出(例如,语音、声音、动画、文本、图标、振动、触觉反馈、光照等)并将其经由I/O接口706(例如,通过显示器、音频通道、扬声器、触控板等)传送给用户。
应用程序724包括被配置为由所述一个或多个处理器704执行的程序和/或模块。例如,如果数字助理系统在独立式用户设备上实施,则应用程序724包括用户应用程序,诸如游戏、日历应用程序、导航应用程序或邮件应用程序。如果数字助理系统700在服务器上实现,则应用程序724包括例如资源管理应用程序、诊断应用程序、或调度应用程序。
存储器702还存储数字助理模块726(或数字助理的服务器部分)。在一些示例中,数字助理模块726包括以下子模块或者其子集或超集:输入/输出处理模块728、语音转文本(STT)处理模块730、自然语言处理模块732、对话流处理模块734、任务流处理模块736、服务处理模块738和语音合成处理模块740。这些模块中的每一者均具有对以下数字助理模块726的系统或数据与模型中的一者或多者或者其子集或超集的访问权限:知识本体760、词汇索引744、用户数据748、任务流模型754、服务模型756和ASR系统758。
在一些示例中,使用在数字助理模块726中实现的处理模块、数据和模型,数字助理可执行以下中的至少一些:将语音输入转换成文本;识别在从用户接收的自然语言输入中表达的用户意图;主动引出并获得完全推断用户意图所需的信息(例如,通过消除字词、游戏、意图等的歧义);确定用于满足推断出的意图的任务流;以及执行该任务流以满足推断出的意图。
在一些示例中,如图7B中所示,I/O处理模块728可通过图7A中的I/O设备716与用户交互或通过图7A中的网络通信接口708与用户设备(例如,设备104、设备200、设备400或设备600)交互,以获取用户输入(例如,语音输入)并提供对用户输入的响应(例如,作为语音输出)。I/O处理模块728随同接收到用户输入一起或在接收到用户输入之后不久任选地获得与来自用户设备的用户输入相关联的上下文信息。上下文信息包括特定于用户的数据、词汇,和/或与用户输入相关的偏好。在一些示例中,该上下文信息还包括在接收到用户请求时的用户设备的软件状态和硬件状态,和/或在接收到用户请求时与用户的周围环境相关的信息。在一些示例中,I/O处理模块728还向用户发送与用户请求有关的跟进问题,并从用户接收回答。在用户请求被I/O处理模块728接收且用户请求包括语音输入时,I/O处理模块728将语音输入转发至STT处理模块730(或语音识别器)以进行语音文本转换。
STT处理模块730包括一个或多个ASR系统758。该一个或多个ASR系统758可处理通过I/O处理模块728接收到的语音输入,以产生识别结果。每个ASR系统758包括前端语音预处理器。前端语音预处理器从语音输入中提取代表性特征。例如,前端语音预处理器对语音输入执行傅里叶变换,以提取表征语音输入的频谱特征作为代表性多维向量的序列。另外,每个ASR系统758包括一个或多个语音识别模型(例如,声学模型和/或语言模型)并且实现一个或多个语音识别引擎。语音识别模型的示例包括隐马尔可夫模型、高斯混合模型、深层神经网络模型、n元语法语言模型以及其他统计模型。语音识别引擎的示例包括基于动态时间规整的引擎和基于加权有限状态变换器(WFST)的引擎。使用一个或多个语音识别模型和一个或多个语音识别引擎来处理前端语音预处理器的所提取的代表性特征以产生中间识别结果(例如,音素、音素串和子字词),并且最终产生文本识别结果(例如,字词、字词串、或符号序列)。在一些示例中,语音输入至少部分地由第三方服务处理或在用户的设备(例如,设备104、设备200、设备400或设备600)上处理,以产生识别结果。一旦STT处理模块730产生包含文本串(例如,字词,或字词的序列,或符号序列)的识别结果,识别结果即被传送至自然语言处理模块732以供意图推断。在一些示例中,STT处理模块730产生语音输入的多个候选文本表示。每个候选文本表示是与语音输入对应的字词或符号的序列。在一些示例中,每个候选文本表示与语音识别置信度得分相关联。基于语音识别置信度得分,STT处理模块730对候选文本表示进行排名并将n个最佳(例如,n个排名最高)候选文本表示提供给自然语言处理模块732以供意图推断,其中n为大于零的预先确定的整数。例如,在一个示例中,仅将排名最高的(n=1)候选文本表示递送至自然语言处理模块732以供意图推断。又如,将5个排名最高的(n=5)候选文本表示传递给自然语言处理模块732以供意图推断。
有关语音转文本处理的更多细节在提交于2011年9月20日的名为“ConsolidatingSpeech Recognition Results”的美国实用新型专利申请序列号13/236942中有所描述,其全部公开内容以引用方式并入本文。
在一些示例中,STT处理模块730包括可识别字词的词汇和/或经由语音字母转换模块731访问该词汇。每个词汇字词与语音识别语音字母表中表示的字词的一个或多个候选发音相关联。具体地,可识别字词的词汇包括与多个候选发音相关联的字词。例如,该词汇包括与
Figure BDA0003793037720000471
Figure BDA0003793037720000472
的候选发音相关联的字词“tomato”。另外,词汇字词与基于来自用户的先前语音输入的自定义候选发音相关联。此类自定义候选发音存储在STT处理模块730中,并且经由设备上的用户配置文件与特定用户相关联。在一些示例中,字词的候选发音基于字词的拼写以及一个或多个语言学和/或语音学规则确定。在一些示例中,候选发音手动生成,例如,基于已知的标准发音而手动生成。
在一些示例中,基于候选发音的普遍性来对候选发音进行排名。例如,候选发音
Figure BDA0003793037720000473
的排名高于
Figure BDA0003793037720000474
因为前者是更常用的发音(例如,在所有用户中,对于特定地理区域的用户而言,或者对于任何其他合适的用户子集而言)。在一些示例中,基于候选发音是否为与用户相关联的自定义候选发音来对候选发音进行排名。例如,自定义候选发音的排名高于标准候选发音。这可用于识别具有偏离规范发音的独特发音的专有名词。在一些示例中,候选发音与一个或多个语音特征诸如地理起源、国家或种族相关联。例如,候选发音
Figure BDA0003793037720000481
与美国相关联,而候选发音
Figure BDA0003793037720000482
与英国相关联。此外,候选发音的排名基于存储在设备上的用户配置文件中的用户的一个或多个特征(例如,地理起源、国家、种族等)。例如,可从用户配置文件确定该用户与美国相关联。基于用户与美国相关联,候选发音
Figure BDA0003793037720000483
(与美国相关联)可比候选发音
Figure BDA0003793037720000486
(与英国相关联)排名更高。在一些示例中,经排名的候选发音中的一个可被选作预测发音(例如,最可能的发音)。
接收到语音输入时,STT处理模块730被用来(例如,使用声音模型)确定对应于该语音输入的音素,然后尝试(例如,使用语言模型)确定匹配该音素的字词。例如,如果STT处理模块730首先识别对应于该语音输入的一部分的音素序列
Figure BDA0003793037720000484
那么它随后可基于词汇索引744确定该序列对应于字词“tomato”。
在一些示例中,STT处理模块730使用模糊匹配技术来确定话语中的字词。因此,例如,STT处理模块730确定音素序列
Figure BDA0003793037720000485
对应于字词“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/341743中有所描述,其全部公开内容以引用方式并入本文。
在一些示例中,一旦自然语言处理模块732基于用户请求识别出可执行意图(或域),自然语言处理模块732便生成结构化查询以表示所识别的可执行意图。在一些示例中,结构化查询包括针对可执行意图的域内的一个或多个节点的参数,并且所述参数中的至少一些参数填充有用户请求中指定的特定信息和要求。例如,用户说“帮我在寿司店预订晚上7点的座位。”在这种情况下,自然语言处理模块732能够基于用户输入将可执行意图正确地识别为“餐厅预订”。根据知识本体,“餐厅预订”域的结构化查询包括参数诸如{菜系}、{时间}、{日期}、{派对人数}等。在一些示例中,基于语音输入和使用STT处理模块730从语音输入得出的文本,自然语言处理模块732针对餐厅预订域生成部分结构化查询,其中部分结构化查询包括参数{菜系=“寿司类”}以及{时间=“晚上7点”}。然而,在该示例中,用户话语包含不足以完成与域相关联的结构化查询的信息。因此,基于当前可用信息,在结构化查询中未指定其他必要参数诸如{派对人数}和{日期}。在一些示例中,自然语言处理模块732用所接收的上下文信息来填充结构化查询的一些参数。例如,在一些示例中,如果用户请求“附近的”寿司店,自然语言处理模块732用来自用户设备的GPS坐标来填充结构化查询中的{位置}参数。
在一些示例中,自然语言处理模块732识别针对从STT处理模块730所接收的每个候选文本表示的多个候选可执行意图。另外,在一些示例中,针对每个所识别的候选可执行意图生成相应的结构化查询(部分地或全部地)。自然语言处理模块732确定针对每个候选可执行意图的意图置信度得分,并基于意图置信度得分对候选可执行意图进行排名。在一些示例中,自然语言处理模块732将所生成的一个或多个结构化查询(包括任何已完成的参数)传送至任务流处理模块736(“任务流处理器”)。在一些示例中,针对m个最佳(例如,m个排名最高的)候选可执行意图的一个或多个结构化查询被提供给任务流处理模块736,其中m为预先确定的大于零的整数。在一些示例中,将针对m个最佳候选可执行意图的一个或多个结构化查询连同对应的一个或多个候选文本表示提供给任务流处理模块736。
基于根据语音输入的多个候选文本表示所确定的多个候选可执行意图推断用户意图的其他细节在2014年6月6日提交的名称为“System and Method for Inferring UserIntent From Speech Inputs”的美国实用新型专利申请序列号14/298725中有所描述,其全部公开内容以引用方式并入本文。
任务流处理模块736被配置为接收来自自然语言处理模块732的一个或多个结构化查询,(必要时)完成结构化查询,以及执行“完成”用户最终请求所需的动作。在一些示例中,完成这些任务所必需的各种过程在任务流模型754中提供。在一些示例中,任务流模型754包括用于获取来自用户的附加信息的过程,以及用于执行与可执行意图相关联的动作的任务流。
如上所述,为了完成结构化查询,任务流处理模块736需要发起与用户的附加对话,以便获取附加信息和/或弄清可能有歧义的话语。当有必要进行此类交互时,任务流处理模块736调用对话流处理模块734来参与同用户的对话。在一些示例中,对话流处理器模块734确定如何(和/或何时)向用户请求附加信息,并且接收和处理用户响应。通过I/O处理模块728将问题提供给用户并从用户接收回答。在一些示例中,对话流处理模块734经由可听输出和/或视觉输出向用户呈现对话输出,并经由口头或物理(例如,点击)响应接收来自用户的输入。继续上述示例,在任务流处理模块736调用对话流处理模块734来确定针对与域“餐厅预订”相关联的结构化查询的“派对人数”和“日期”信息时,对话流处理模块734生成诸如“一行几位?”和“预订哪天?”之类的问题传递给用户。一旦收到来自用户的回答,对话流处理模块734就用缺失信息填充结构化查询,或将信息传递给任务流处理模块736以根据结构化查询完成缺失信息。
一旦任务流处理模块736已针对可执行意图完成结构化查询,任务流处理模块736便开始执行与可执行意图相关联的最终任务。因此,任务流处理模块736根据结构化查询中包含的特定参数来执行任务流模型中的步骤和指令。例如,针对可执行意图“餐厅预订”的任务流模型包括用于联系餐厅并实际上请求在特定时间针对特定派对人数的预订的步骤和指令。例如,使用结构化查询诸如:{餐厅预订、餐厅=ABC咖啡馆、日期=3/12/2012、时间=7pm、派对人数=5},任务流处理模块736可执行以下步骤:(1)登录ABC咖啡馆的服务器或诸如
Figure BDA0003793037720000541
的餐厅预订系统,(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/987982号和提交于2011年9月30日的名称为“Generating and Processing Task Items That Represent Tasks to Perform”的美国实用新型专利申请13/251088号中,其全部公开内容以引用方式并入本文。
4.用于在视频通信会话期间提供上下文感知数字助理响应的系统和技术
图8示出了根据各种示例的用于在视频通信会话期间提供上下文感知数字助理响应的系统和技术。系统800包括用户设备802和用户设备804。用户设备802和用户设备804均为客户端设备(例如,用户设备104、122、200、400或600)。在一些示例中,系统800包括一个或多个服务器(例如,DA服务器106)。应当认识到,在这些示例中,由用户设备802和/或用户设备804执行的任何操作可替代地由该一个或多个服务器执行。例如,该一个或多个服务器可执行用户设备802和/或用户设备804的相应DA客户端模块(例如,DA客户端模块229)的操作。
如箭头806所示,用户设备802和用户设备804发起视频通信会话(例如,视频会议)。在一些示例中,多于两个用户设备(例如,四个用户设备)参与视频通信会话。在一些示例中,发起视频通信会话在参与视频通信会话的每个用户设备之间建立一个或多个音频流。例如,在发起视频通信会话时,用户设备802和用户设备804在彼此之间建立第一音频流。例如,如果第三用户设备要加入视频通信会话,则第三用户设备将在其自身与用户设备802之间建立第二音频流并且在其自身与用户设备804之间建立第三音频流。在一些示例中,该技术的剩余步骤(下文参考图8所详述)发生在用户设备802与用户设备804之间的所发起的视频通信会话期间。
图9示出了根据各种示例的用于视频通信会话的示例性用户界面。具体地,图9示出了用户设备900(例如,用户设备104、122、200或600)。用户设备900与用户设备802和/或用户设备804类似或相同。在图9中示出的非限制性示例性实施方案中,用户设备900是智能电话。在其他实施方案中,用户设备900可以是不同类型的用户设备,诸如可穿戴设备(例如,智能手表或智能眼镜)、平板电脑、膝上型或台式计算机设备等。如图所示,用户设备900包括显示器902。在一些示例中,用户设备900包括一个或多个输入设备(例如,显示器902的触摸屏、按钮910、麦克风等)。
在图9中,用户设备900在显示器902(例如,触敏显示器系统212)上显示视频通信会话界面904。视频通信会话界面904是用于两个用户设备(例如,用户设备802和用户设备804)之间的视频通信会话(例如,视频会议)的示例性用户界面。如图所示,视频通信会话界面904包括视频通信会话中的三个参与者的表示。表示906A包括来自用户设备900(例如,用户设备802)的相机(例如,光学传感器164)的视图。表示906B包括来自第二用户设备(例如,用户设备804)的实时视频馈送。
在一些示例中,表示(例如,表示906B)包括仅提供音频数据(例如,因为视频数据不可用)的用户设备的表示性图像。例如,表示性图像可包括表示参与者的一个或多个字母(例如,存储在用户设备900上的参与者联系人姓名的第一个字母)和/或参与者的全名(例如,存储在用户设备900上的完整参与者联系人姓名)。此外,表示性图像可为任何二维形状(例如,圆形、正方形、矩形、三角形等)或任何三维形状(例如,球形、立方形、金字塔形等)。在一些示例中,表示(例如,表示906B)包括头像(例如,表示特定人的图标或图形)。例如,头像可表示仅提供音频数据的用户设备的用户。在一些示例中,头像的一个或多个移动(例如,头像嘴唇、眼睛和/或头部的移动)与从仅提供音频数据的用户设备接收的音频数据同步。这样,根据基于音频数据生成的音频输出,头像看起来正在说话和/或移动。
表示906C包括用户设备900的数字助理的表示性图像。如图所示,数字助理的表示性图像包括字母“S”和名称“Siri”。然而,数字助理的表示性图像不限于该示例,并且可包括任何其他图像、字母、名称、数字或其组合。此外,数字助理的表示性图像可为任何二维形状(例如,圆形、正方形、矩形、三角形等)或任何三维形状(例如,球形、立方形、金字塔形等)。在一些示例中,数字助理的表示性图像包括头像。在一些示例中,头像的一个或多个移动(例如,头像嘴唇、眼睛和/或头部的移动)与数字助理响应(即,用于数字助理响应的音频输出)同步。这样,根据数字助理响应,头像看起来正在说话和/或移动。
最后,视频通信会话界面904包括效果示能表示908A、静音示能表示908B、翻转示能表示908C和结束示能表示908D。
如以下将参考图8所详述,用户设备900的数字助理在视频通信会话界面904中被表示为表示906C,因为数字助理能够与视频通信会话的一个或多个参与者交互(例如,与用户设备900的用户和/或第二用户设备的用户交互)。具体地,在一些示例中,当数字助理在视频通信会话期间被参与者(例如,用户设备900的用户)调用时,参与者可请求数字助理执行任务并且数字助理可随后提供对参与者的请求的响应。此外,在一些示例中,视频通信会话的每个参与者可听到数字助理请求和随后的数字助理响应。这继而产生主动参与多个参与者之间的视频通信会话的单个数字助理的表象。
注意,在一些示例中,用于视频通信会话的用户界面基于参与视频通信会话的用户设备的数量。例如,如果第三用户设备加入图9所示的视频通信会话,则视频通信会话界面904将转换到具有用于第三用户设备的附加表示(例如,表示906D)的新视频通信会话界面。在这些示例中,附加表示将包括来自第三用户设备的实时视频馈送或针对第三用户设备的表示性图像。
此外,在一些示例中,参与视频通信会话的每个用户设备具有用于确定包括在视频通信会话用户界面中的表示的布局(例如,视频通信会话界面904的表示906A和906B的布局)的活动水平。在一些示例中,用户设备的活动水平基于从用户设备接收的音频和/或视频馈送(例如,视频馈送中的运动或声音)。在一些示例中,参与者的活动水平基于在从用户设备接收的视频馈送中识别的满足一组移动标准的移动(例如,某种类型的移动(例如,手移动、头部/面部移动、不是背景移动的移动(例如,非参与者移动))。
在一些示例中,数字助理具有用于确定包括在视频通信会话界面中的数字助理的表示的布局(例如,表示的布局906C)的活动水平。在一些示例中,数字助理的活动水平基于数字助理的音频馈送(例如,基于由数字助理提供和/或由用户设备(例如,用户设备900)输出的音频响应)。
回到图8,如箭头808所示,用户设备802接收第一用户输入。在一些示例中,第一用户输入是用户语音输入。在一些示例中,第一用户输入包括调用用户设备802的数字助理(例如,发起用户设备802的用户与用户设备802的数字助理之间的对话会话)的数字助理触发词(例如,“嘿,Siri”、“Siri”等)。例如,第一用户输入可在第一用户输入的开始处包括数字助理触发词(例如,“嘿,Siri,帕罗奥图天气怎么样?”)。又如,第一用户输入可在第一用户输入的结束处包括数字助理触发词(例如,“帕罗奥图天气怎么样,Siri?”)。在一些示例中,响应于确定第一用户输入包括数字助理触发词,用户设备802确定第一用户输入表示对用户设备802的数字助理执行一个或多个任务的用户请求(并且在一些示例中,提供对用户请求的一个或多个数字助理响应)。例如,用户输入“嘿,Siri,帕罗奥图天气怎么样?”表示对数字助理检索并提供帕罗奥图天气信息的用户请求。在一些示例中,即使第一用户输入不包括数字助理触发词,第一用户输入也表示对用户设备802的数字助理执行一个或多个任务的用户请求(并且在一些示例中,提供对用户请求的一个或多个数字助理响应)。在这些示例中,在接收第一用户输入之前调用用户设备802的数字助理。例如,可响应于用户对显示在用于视频通信会话的用户界面中的示能表示的选择而调用用户设备802的数字助理。又如,可响应于用户设备802的用户按下(例如长按)用户设备802的物理按钮而调用用户设备802的数字助理。在这些示例中,一旦用户设备802的数字助理被调用,用户设备802就可接收第一用户输入。
在一些示例中,响应于接收到第一用户输入,用户设备802将第一用户输入(例如,表示第一用户输入的音频数据或文本数据)传输到用户设备804。在一些示例中,用户设备802将第一用户输入作为对等传输(例如,使用在发起视频通信会话时在两个用户设备之间建立的音频流)传输到用户设备804。在其他示例中,用户设备802将第一用户输入传输到一个或多个服务器(例如,DA服务器106),该服务器随后将第一用户输入(例如,表示第一用户输入的音频数据)传输到用户设备804。在一些示例中,在接收到第一用户输入之后,用户设备804将第一用户输入输出为音频输出(例如,使用扬声器211)。
在接收到第一用户输入时,用户设备802基于第一用户输入获得第一数字助理响应。在一些示例中,获得第一数字助理响应包括用户设备802执行第一用户输入的自然语言处理,基于自然语言处理的结果确定要执行的一个或多个任务,以及执行一个或多个任务以确定第一数字助理响应(例如,执行搜索、检索数据、执行文本到语音处理等)。在一些示例中,获得第一数字助理响应包括用户设备802将第一用户输入(例如,表示第一用户输入的音频数据)传输到一个或多个服务器(例如,DA服务器106)并且随后从一个或多个服务器接收第一数字助理响应(例如,在一个或多个服务器执行第一用户输入的自然语言处理并且执行一个或多个任务以确定第一数字助理响应之后)。在一些示例中,在用户设备802将第一用户输入传输到一个或多个服务器之后,用户设备802从一个或多个服务器接收执行一个或多个任务的一个或多个命令(例如,基于用户输入“嘿,Siri,帕罗奥图天气怎么样?”来搜索/检索帕罗奥图的当前温度的命令)。在一些示例中,在响应于一个或多个命令而执行一个或多个任务之后,用户设备802基于一个或多个所执行任务的结果来确定第一数字助理响应(例如,基于经由搜索获取的帕罗奥图的当前温度信息来确定第一数字助理响应)。在其他示例中,在响应于一个或多个命令而执行一个或多个任务之后,用户设备802将一个或多个所执行任务的结果(例如,表示结果的数据)传输到一个或多个服务器。然后,一个或多个服务器基于该结果确定第一数字助理响应并且随后将第一数字助理响应(例如,表示第一数字助理响应的数据)传输到用户设备802。
在一些示例中,第一数字助理响应包括对应于由用户设备802(和/或一个或多个服务器)的数字助理基于第一用户输入执行的任务的自然语言表达。例如,如果第一用户输入是“嘿,Siri”,帕罗奥图天气怎么样?”,第一数字助理响应可包括自然语言表达“帕罗奥图现在为90度”。在该示例中,自然语言表达“帕罗奥图现在为90度”对应于例如搜索、检索和提供帕罗奥图的天气信息/数据的数字助理任务。在一些示例中,第一数字助理响应包括由用户设备802(和/或一个或多个服务器)的数字助理检索和/或确定的数据(例如,网站超链接、图像、音频数据、视频数据、导航信息、所存储的联系人信息、天气信息等)。例如,以上示例中的第一数字助理响应包括帕罗奥图的当前温度数据(例如,“90度”)。
如箭头810所示,用户设备802将第一数字助理响应和与第一用户输入相关联的上下文信息(例如,对应于第一数字助理响应和上下文信息的数据)提供给用户设备804。如图8所示,用户设备802将第一数字助理响应和上下文信息(例如,以对等方式)直接传输到用户设备804。例如,当发起用户设备802和用户设备804参与的视频通信会话时,用户设备802可经由在这两个设备之间建立的音频流将第一数字助理响应作为音频数据传输到设备804。又如,用户设备802可将第一数字助理响应作为文本数据(例如,第一数字助理响应的文本表示)直接传输到用户设备804。在一些示例中,用户设备802向用户设备804提供执行一个或多个任务的命令和与第一用户输入相关联的上下文信息。在这些示例中,用户设备804响应于接收到命令而执行一个或多个任务并且随后基于一个或多个任务的执行结果来获得第一数字助理响应。
在一些示例中,向用户设备804提供第一数字助理响应和上下文信息包括用户设备802将第一数字助理响应和上下文信息(例如,表示第一数字助理响应和上下文信息的音频和/或文本数据)传输到一个或多个服务器。在这些示例中,一个或多个服务器随后将第一数字助理响应和上下文信息传输到用户设备804。
在一些示例中,与第一用户输入相关联的上下文信息包括对应于用户设备802接收第一用户输入时用户设备802的上下文状态的数据。例如,用户设备802的上下文状态包括用户设备802接收到第一用户输入时的本地时间、用户设备802接收到第一用户输入时用户设备802的当前位置和/或取向、用户设备802接收到第一用户输入时用户设备802的移动速度和/或方向、用户设备802接收到第一用户输入时的信号强度(例如,Wi-Fi信号强度)等。注意,在一些示例中,“用户设备802接收到第一用户输入时”用户设备802的上下文状态包括紧接在用户设备802接收到第一用户输入之前和/或之后用户设备802的上下文状态。例如,用户设备802接收到第一用户输入时用户设备802的上下文状态可包括在用户设备802接收到第一用户输入之前和/或之后5秒、10秒和/或15秒时用户设备802的上下文状态。
在一些示例中,与第一用户输入相关联的上下文信息包括存储在用户设备802上的与第一用户输入相关联的数据。例如,存储在用户设备802上的与第一用户输入相关联的数据包括所存储的联系人信息、所存储的用户特定偏好和/或信息(例如,喜爱的餐厅、喜爱的运动队、导航偏好、日历信息等)和/或存储在用户设备802上的用于基于第一用户输入来确定第一数字助理响应的任何其他信息(例如,用于消除第一用户输入的歧义、用于基于第一用户输入来确定用于执行数字助理任务的一个或多个参数等)。例如,如果第一用户输入是“嘿,Siri,开车去John家需要多长时间?”,则与第一用户输入相关联的上下文信息可包括存储在用户设备802上(例如,存储在存储器202或存储器470中的联系人模块237的应用程序内部状态292中)的John的联系人信息中的家庭地址。
在一些示例中,存储在用户设备802上的与第一用户输入相关联的数据包括由用户设备802上的软件应用程序(例如,存储在用户设备802上的本机软件应用程序或第三方软件应用程序)存储(例如,本地或远程存储)的数据(例如,联系人信息、用户特定偏好和/或信息等)。在这些示例中,用户设备802从软件应用程序请求数据。例如,用户设备802可从存储在用户设备802上的第三方日历软件应用程序请求用户特定日历信息(例如,所有用户日历条目或一个或多个具体日期的用户日历条目)。作为响应,软件应用程序检索数据(例如,从本地存储器(例如,存储器202或存储器470)检索所请求的数据和/或请求一个或多个服务器将所请求的数据提供给软件应用程序)并且将数据提供给用户设备802。
在一些示例中,与第一用户输入相关联的上下文信息包括在视频通信会话期间用户设备802的数字助理与用户设备802的用户之间的对话历史(例如,表示对话历史的数据)。在一些示例中,对话历史包括在视频通信会话期间(例如,在接收第一用户输入之前)由用户设备802接收的先前用户输入和/或在视频通信会话期间由用户设备802确定和/或提供的先前数字助理响应(例如,在确定和/或提供第一数字助理响应之前确定和/或提供的)。
在一些示例中,与第一用户输入相关联的上下文信息包括用户设备802在视频通信会话期间(例如,在用户设备802接收第一用户输入之前)从参与视频通信会话的一个或多个其他用户设备接收的上下文信息(诸如上文所述的上下文信息)。例如,用户设备802可从参与视频通信会话的第三用户设备(例如,利用由第三用户设备确定的数字助理响应)接收上下文状态数据(例如,表示当前位置的数据)。然后,用户设备802可将与第一用户输入相关联的第三用户设备的上下文状态数据(例如,利用第一数字助理响应)传输到用户设备804。又如,用户设备802可在视频通信会话期间接收第三用户设备的对话历史,该对话历史可包括在视频通信会话期间(例如,在用户设备802接收第一用户输入之前)由第三用户设备接收的用户输入和/或在视频通信会话期间由第三用户设备确定和/或提供的先前数字助理响应(例如,在用户设备802确定和/或提供第一数字助理响应之前确定和/或提供的)。然后,用户设备802可传输从第三用户设备接收的与第一用户输入相关联的对话历史的数据(例如,表示在第三用户设备处接收的与第一用户输入相关联的用户输入的数据)。
这样,后期加入视频通信会话的设备(例如,在参与视频通信会话的两个或更多个设备之间的会话已经发生之后)仍然可知道在后期用户设备加入视频通信会话之前由参与视频通信会话的其他用户设备接收和/或提供的用户输入和/或数字助理响应。这继而允许后期设备的数字助理基于先前的用户输入和/或数字助理响应来确定和/或提供数字助理响应,从而无缝地/自然地整合到现有会话中。
在一些示例中,与第一用户输入相关联的上下文信息包括能够由用户设备802访问(例如,存储在用户设备802上、存储在一个或多个服务器上和/或能够经由互联网搜索访问)并且用户设备802用来(或一个或多个服务器用来)确定第一数字助理响应的任何信息和/或数据。
在一些示例中,在用户设备802向用户设备804提供第一数字助理响应和与第一用户输入相关联的上下文信息之前,用户设备802确定上下文信息是否包括隐私信息。在一些示例中,隐私信息包括与用户设备802的用户相关联的隐私信息(例如,存储在用户设备802上)和/或与存储在用户设备802上的一个或多个联系人相关联的隐私信息(例如,存储在存储器202或存储器470中的联系人模块237的应用程序内部状态292中)。例如,与用户和/或所存储联系人相关联的隐私信息包括用户和/或所存储联系人的个人信息(例如,种族、性别、年龄、体重等)、社会安全号(SSN)、个人和/或工作电子邮件地址、个人和/或工作地址、个人健康记录等。
如果用户设备802确定与第一用户输入相关联的上下文信息包括隐私信息,则用户设备802从上下文信息中移除隐私信息的至少一部分。在一些示例中,用户设备802移除在第一用户输入中未明确请求的隐私信息。例如,如果第一用户输入表示对所存储联系人的电子邮件地址的用户请求(例如,“嘿,Siri,John的电子邮件地址是什么?”,则用户设备802将从上下文信息中移除除了所存储联系人的电子邮件地址之外的隐私信息,之后再(例如,利用第一数字助理响应)将上下文信息提供给用户设备804。在一些示例中,用户设备802移除不用于确定第一数字助理响应的隐私信息(例如,不用于消除第一用户输入的歧义、基于第一用户输入来确定用于执行数字助理任务的一个或多个参数等的所有隐私信息)。例如,如果第一用户输入表示对关于用户家庭地址的导航信息的用户请求(例如,“嘿,Siri,我现在回家需要多长时间?”,则用户设备802将从上下文信息中移除除了用户的家庭地址(以及用于确定第一数字助理响应的任何其他隐私信息)之外的隐私信息,之后再(例如,利用第一数字助理响应)将上下文信息提供给用户设备804。
在用户设备802从上下文信息中移除隐私信息的至少一部分(例如,在第一用户输入中未明确请求的隐私信息和/或不用于确定第一数字助理响应的隐私信息)之后,用户设备802将第一数字助理响应和与第一用户输入相关联的剩余上下文信息提供给用户设备804(例如,如上文参考箭头810所述)。
如箭头812所示,用户设备802和用户设备804输出第一数字助理响应。在一些示例中,用户设备802和用户设备804同时输出第一数字助理响应。在一些示例中,用户设备802和用户设备804在不同时间输出第一数字助理响应。例如,用户设备802可在用户设备804输出第一数字助理响应之前几秒(例如,1秒、2秒、5秒或10秒)输出第一数字助理响应。在一些示例中,用户设备802在向用户设备804提供第一数字助理响应(以及与第一用户输入相关联的上下文信息)之前输出第一数字助理响应。然后,在一些示例中,用户设备804在接收第一数字助理响应之后输出第一数字助理响应。
在一些示例中,输出第一数字助理响应包括用户设备802和/或用户设备804将第一数字助理响应输出为音频输出(例如,使用扬声器211)。如上所述,在一些示例中,用户设备802将第一数字助理响应作为文本数据提供给用户设备804。在这些示例中,用户设备804对对应于第一数字助理响应的文本数据执行文本到语音处理,以生成对应于第一数字助理响应的音频输出(并随后输出该音频输出)。在一些示例中,用户设备802和/或用户设备804基于一个或多个预定义数字助理语言和/或语音设置(针对每个相应的用户设备)来输出对应于第一数字助理响应的音频输出。例如,用户设备802可具有英语的预定义数字助理语言设置和英式英语(男性)的预定义数字助理语音设置,而用户设备804可具有英语的预定义数字助理语言设置和美式英语(女性)的预定义数字助理语音设置。
在一些示例中,输出第一数字助理响应包括用户设备802和/或用户设备804显示(例如,使用触敏显示器系统212)包括在第一数字助理响应中的数据(例如,由用户设备802的数字助理基于第一用户输入检索和/或确定的文本、图像、视频、导航信息等)。在一些示例中,在视频通信会话期间,用户设备802和/或用户设备804显示包括在第一数字助理响应中的数据。例如,用户设备802和/或用户设备804可将包括在第一数字助理响应中的图像显示为覆盖视频通信会话的用户界面(例如,视频通信会话界面904),同时将第一数字助理响应输出为音频输出。在一些示例中,在视频通信会话结束之后,用户设备802和/或用户设备804显示包括在第一数字助理响应中的数据。例如,在视频通信会话结束并且不再显示用于视频通信会话的用户界面之后,用户设备802和/或用户设备804可显示包括在第一数字助理响应中的视频。
在一些示例中,输出第一数字助理响应包括用户设备802和/或用户设备804(例如,永久地或临时地)存储包括在第一数字助理响应中的数据。在一些示例中,用户设备802和/或用户设备804的用户经由存储在用户设备802和/或用户设备804上的应用程序(例如,经由应用程序236的应用程序)来访问包括在第一数字助理响应中的存储数据。例如,如果第一用户输入表示对导航方向的请求(例如,“嘿,Siri,告诉我去John家的方向。”),则用户设备802和/或用户设备804可将第一数字助理响应输出为音频输出(例如,“去John家的方向可在你的地图应用程序中找到。”)并且存储包括在第一数字助理响应中的导航信息,使得用户设备802和/或用户设备804的用户可使用存储在用户设备802和/或用户设备804上的导航应用程序来访问导航信息。
如箭头814所示,用户设备804接收第二用户输入。在一些示例中,第二用户输入是用户语音输入。在一些示例中,第二用户输入包括调用用户设备804的数字助理(例如,发起用户设备804的用户与用户设备804的数字助理之间的对话会话)的数字助理触发词(例如,“嘿,Siri”、“Siri”等)。例如,第二用户输入可在第二用户输入的开始处包括数字助理触发词(例如,“嘿,Siri,开车到那里需要多长时间?”)。又如,第二用户输入可在第二用户输入的结束处包括数字助理触发词(例如,“开车到那里需要多长时间,Siri?”)。在一些示例中,响应于确定第二用户输入包括数字助理触发词,用户设备804确定第二用户输入表示对用户设备804的数字助理执行任务的用户请求(并且在一些示例中,提供针对用户请求的数字助理响应)。例如,用户输入“嘿,Siri,开车到那里需要多长时间?”表示对数字助理检索导航信息并将其提供给先前提到的位置(即,“那里”)的用户请求。
在一些示例中,响应于接收到第二用户输入,用户设备804将第二用户输入(例如,表示第二用户输入的音频数据)传输到用户设备802(和参与视频通信会话的其他用户设备)。在一些示例中,用户设备804将第二用户输入作为对等传输(例如,使用在发起视频通信会话时在两个用户设备之间建立的音频流)传输到用户设备802。在其他示例中,用户设备804将第二用户输入传输到一个或多个服务器(例如,DA服务器106),该服务器随后将第二用户输入(例如,表示第二用户输入的音频数据)传输到用户设备802。在一些示例中,在接收到第二用户输入之后,用户设备802将第二用户输入输出为音频输出(例如,使用扬声器211)。
在接收到第二用户输入时,用户设备804基于第二用户输入获得第二数字助理响应。在一些示例中,获得第二数字助理响应包括用户设备804执行第二用户输入的自然语言处理,基于自然语言处理的结果确定要执行的一个或多个任务,以及执行一个或多个任务以确定第二数字助理响应(例如,执行搜索、检索数据、执行文本到语音处理等)。在一些示例中,获得第二数字助理响应包括用户设备804将第一用户输入(例如,表示第二用户输入的音频数据)传输到一个或多个服务器(例如,DA服务器106)并且随后从一个或多个服务器接收第二数字助理响应(例如,在一个或多个服务器执行第二用户输入的自然语言处理并且执行一个或多个任务以确定第二数字助理响应之后)。在一些示例中,在用户设备804将第二用户输入传输到一个或多个服务器之后,用户设备804从一个或多个服务器接收执行一个或多个任务的一个或多个命令。在一些示例中,在响应于一个或多个命令而执行一个或多个任务之后,用户设备804基于一个或多个所执行任务的结果来确定第二数字助理响应。在其他示例中,在响应于一个或多个命令而执行一个或多个任务之后,用户设备804将一个或多个所执行任务的结果(例如,表示结果的数据)传输到一个或多个服务器。然后,一个或多个服务器基于该结果确定第二数字助理响应并且随后将第二数字助理响应(例如,表示第二数字助理响应的数据)传输到用户设备804。
在一些示例中,用户设备804进一步基于与第一用户输入相关联(并且与第一数字助理响应一起接收)的上下文信息来获得第二数字助理响应。具体地,在一些示例中,用户设备804(或一个或多个服务器)使用与第一用户输入相关联的上下文信息来消除第二用户输入中的一个或多个模糊术语或短语的歧义(例如,当基于第二用户输入来确定用户意图时),并且随后基于消除了歧义的第二用户输入来确定第二数字助理响应。例如,如果第一用户输入是“嘿,Siri”,帕罗奥图天气怎么样?”并且第二用户输入是”嘿,Siri,开车到那里需要多长时间?”,则用户设备804(或一个或多个服务器)可使用与第一用户输入相关联的上下文信息(例如,从用户设备802接收的对话历史)来消除术语“那里”的歧义并且确定第二用户输入表示对从用户设备804的当前位置到帕罗奥图(例如,因为“那里”是指在第一用户输入中提到的位置(即,帕罗奥图))的导航信息(即,行驶时间)的用户请求。又如,如果第一用户输入是“嘿,Siri”,帕罗奥图天气怎么样?”并且第二用户输入是”嘿,Siri,纽约呢?”,则用户设备804(或一个或多个服务器)可使用与第一用户输入相关联的上下文信息(例如,从用户设备802接收的对话历史)来消除短语“纽约呢”的歧义并且确定第二用户输入表示对关于纽约的天气信息(例如,因为“纽约呢”是指在第一用户输入中请求的任务)的用户请求。
在一些示例中,用户设备804(或一个或多个服务器)使用与第一用户输入相关联的上下文信息来确定用于基于第二用户输入来执行一个或多个任务的一个或多个参数(例如,一个或多个结构化查询参数)。用户设备804(或一个或多个服务器)基于与第一用户输入相关联的上下文信息确定的示例参数包括(但不限于)位置、网站超链接、电话号码、电子邮件地址、家庭和/或工作地址等。例如,如果第一用户输入是“John的手机号码是多少,Siri?”并且第二用户输入是“嘿,Siri,将John的手机号码保存到我的联系人中。”,则用户设备804(或一个或多个服务器)可使用与第一用户输入相关联并且与第一数字助理响应一起接收的上下文信息(例如,存储在用户设备802上的John的手机号码)来确定用户设备804的用户希望保存的电话号码(例如,如果用户设备804在接收到第二用户输入之前尚未保存John的手机号码)。在用户设备804(或一个或多个服务器)基于一个或多个所确定的参数来执行一个或多个任务之后,用户设备804(或一个或多个服务器)基于所执行的一个或多个任务的结果来确定第二数字助理响应。例如,在前一示例中,第二数字助理响应可以是“John的手机号码已添加到你的存储联系人中。”。
使用如上所述的上下文信息来确定第二数字助理响应允许第二用户设备的数字助理提供基于和/或促进在第一用户设备处接收/提供的用户请求和/或数字助理响应的数字助理响应。这样,第一用户设备和第二用户设备的用户可在视频通信会话期间以更自然和会话式的方式提供数字助理请求,并且如果在视频通信会话期间已经先前的用户请求和/或数字助理响应中引入请求的某些方面,则不必重复那些方面。例如,如上所述,如果第一用户设备的用户提供用户请求“嘿,Siri,帕罗奥图天气怎么样?”,则第二用户设备的用户可随后通过提供用户请求“嘿,Siri,纽约呢?”来请求关于纽约的天气信息,而不是必须重复需要天气信息(例如,“嘿,Siri,纽约天气怎么样?”)。这继而产生单个数字助理的表象,该单个数字助理与第一用户设备和第二用户设备的用户一起参与视频通信会话,同时仍然允许每个用户设备的数字助理在本地处理来自其相应用户的请求。这最终改善了第一用户设备和第二用户设备的用户的视频通信会话体验。
在一些示例中,第二数字助理响应包括对应于由用户设备802(和/或一个或多个服务器)的数字助理基于第二用户输入执行的任务的自然语言表达。例如,如果第二用户输入是“嘿,Siri”,开车到那里需要多长时间?”,则第二数字助理响应可包括自然语言表达“到帕罗奥图的交通顺畅,我估计经由I-280北线需要45分钟。”。在该示例中,自然语言表达“到帕罗奥图的交通顺畅,我估计经由I-280北线需要45分钟。”对应于例如检索关于用户设备804的当前位置和先前提到的位置(在该情况下为帕罗奥图)的导航信息(例如,行驶时间)的数字助理任务。在一些示例中,第二数字助理响应包括由用户设备802(和/或一个或多个服务器)的数字助理检索和/或确定的数据(例如,网站超链接、图像、视频、导航信息、所存储的联系人信息、天气信息等)。例如,上例中的第二数字助理响应包括由用户设备804(或一个或多个服务器)确定和/或检索的导航数据(例如,经由I-280北线需要45分钟)。
如箭头816所示,用户设备804向用户设备802提供第二数字助理响应(例如,对应于第二数字助理响应的数据)和与第二用户输入相关联的上下文信息。如图8所示,用户设备804将第二数字助理响应和上下文信息(例如,以对等方式)直接传输到用户设备802。例如,当发起用户设备802和用户设备804参与的视频通信会话时,用户设备804可经由在这两个设备之间建立的音频流将第二数字助理响应作为音频数据传输到设备802。又如,用户设备804可将第二数字助理响应作为文本数据(例如,第二数字助理响应的文本表示)直接传输到用户设备802。在一些示例中,用户设备804向用户设备802提供执行一个或多个任务的命令和与第二用户输入相关联的上下文信息。在这些示例中,用户设备802响应于接收到命令而执行一个或多个任务并且随后基于一个或多个任务的执行结果来获得第二数字助理响应。
在一些示例中,向用户设备802提供第二数字助理响应和上下文信息包括用户设备804将第二数字助理响应和上下文信息(例如,表示第二数字助理响应和上下文信息的音频和/或文本数据)传输到一个或多个服务器。在这些示例中,一个或多个服务器随后将第二数字助理响应和上下文信息传输到用户设备802。
与第二用户输入相关联的上下文信息可包括以上关于与第一用户输入相关联的上下文信息所述的各种类型的上下文信息中的任一种(例如,参考箭头810所述)。即,在一些示例中,与第二用户输入相关联的上下文信息包括对应于用户设备804接收第二用户输入时用户设备804的上下文状态的数据。在一些示例中,与第二用户输入相关联的上下文信息包括存储在用户设备804上的与第二用户输入相关联的数据。在一些示例中,与第二用户输入相关联的上下文信息包括在视频通信会话期间用户设备804的数字助理与用户设备804的用户之间的对话历史(例如,表示对话历史的数据)。在一些示例中,与第二用户输入相关联的上下文信息包括用户设备804在视频通信会话期间(例如,在用户设备804接收第一用户输入之前)从参与视频通信会话的一个或多个其他用户设备接收的上下文信息(诸如上文所述的上下文信息)。在一些示例中,与第二用户输入相关联的上下文信息包括能够由用户设备804访问(例如,存储在用户设备804上、存储在一个或多个服务器上和/或能够经由互联网搜索访问)并且用户设备804用来(或一个或多个服务器用来)确定第二数字助理响应的任何信息和/或数据。
在一些示例中,在用户设备804向用户设备802提供第二数字助理响应和与第二用户输入相关联的上下文信息之前,用户设备804确定上下文信息是否包括隐私信息(例如,如上文关于用户设备802和与第一用户输入相关联的上下文信息所述)。如果用户设备804确定与第二用户输入相关联的上下文信息包括隐私信息,则用户设备804从上下文信息中移除隐私信息的至少一部分(例如,以与用户设备802从与第一用户输入相关联的上下文信息中移除隐私信息相同的方式)。在用户设备804从上下文信息中移除隐私信息的至少一部分(例如,在第二用户输入中未明确请求的隐私信息和/或不用于确定第二数字助理响应的隐私信息)之后,用户设备804将第二数字助理响应和与第二用户输入相关联的剩余上下文信息提供给用户设备802(例如,如上文参考箭头816所述)。上文参考从与第一用户输入相关联的上下文信息中移除隐私信息描述了关于隐私信息的类型和从上下文信息中移除隐私信息的附加细节。这些附加细节也适用于从与第二用户输入相关联的上下文信息中去除隐私信息。
如箭头818所示,用户设备802和用户设备804输出第二数字助理响应。在一些示例中,用户设备802和用户设备804同时输出第二数字助理响应。在一些示例中,用户设备802和用户设备804在不同时间输出第二数字助理响应。例如,用户设备802可在用户设备804输出第二数字助理响应之前几秒(例如,1秒、2秒、5秒或10秒)输出第二数字助理响应。在一些示例中,用户设备804在向用户设备802提供第二数字助理响应(以及与第二用户输入相关联的上下文信息)之前输出第二数字助理响应。然后,在一些示例中,用户设备802在接收第二数字助理响应之后输出第二数字助理响应。
用户设备802和/或804以上文参考输出第一数字助理响应所述(例如,如上文参考箭头810所述)的各种方式中的任一种来输出第二数字助理响应。即,在一些示例中,输出第二数字助理响应包括用户设备802和/或用户设备804将第二数字助理响应输出为音频输出(例如,使用扬声器211)。如上所述,用户设备804可向用户设备802提供对应于第二数字助理响应的各种形式的数据(例如,音频数据、文本数据、执行一个或多个任务的命令等)。在所有这些示例中,用户设备802对所接收的数据执行所需的任何处理,以便输出第二数字助理响应。例如,如果用户设备804将第二数字助理响应作为文本数据提供给用户设备802,则用户设备802将对对应于第二数字助理响应的文本数据执行文本到语音处理,以生成对应于第二数字助理响应的音频输出(并随后输出该音频输出)。
在一些示例中,用户设备802和/或用户设备804基于一个或多个预定义数字助理语言和/或语音设置(针对每个相应的用户设备)来输出对应于第二数字助理响应的音频输出。例如,用户设备802可具有英语的预定义数字助理语言设置和英式英语(男性)的预定义数字助理语音设置,而用户设备804可具有英语的预定义数字助理语言设置和美式英语(女性)的预定义数字助理语音设置。
在一些示例中,输出第二数字助理响应包括用户设备802和/或用户设备804显示(例如,使用触敏显示器系统212)包括在第二数字助理响应中的数据(例如,由用户设备804的数字助理基于第二用户输入检索和/或确定的文本、图像、视频、导航信息等)。在一些示例中,输出第二数字助理响应包括用户设备802和/或用户设备804(例如,永久地或临时地)存储包括在第二数字助理响应中的数据。
在一些示例中,响应于接收到来自用户的用户输入(例如,第一用户输入和/或第二用户输入)并且在基于用户输入获得数字助理响应(例如,第一数字助理响应和/或第二数字助理响应)之前,用户设备802或用户设备804确定用户输入是否包括数字助理触发词(例如,“嘿,Siri”、“Siri”等)。响应于确定用户输入包括数字助理触发词,用户设备802或用户设备804执行调用指示过程或调用许可过程(也被称为“接力棒”共享过程)以确定是否继续基于用户输入获得数字助理响应。
在一些示例中,用户设备802或用户设备804执行调用指示过程。具体地,响应于确定用户输入包括数字助理触发词,用户设备802或用户设备804生成用户设备的数字助理已被调用的指示(例如,消息、信号等)并且将该指示传输到参与视频通信会话的所有其他用户设备。例如,如果用户设备802确定第一用户输入包括数字助理触发词,则用户设备802生成其数字助理已被调用的指示并且将该指示传输到用户设备804(在获得第一数字助理响应之前)。在一些示例中,指示包括指示用户设备802或用户设备804的数字助理被调用的时间(例如,一天中的时间)的数据。
在接收到另一用户设备的数字助理已被调用的指示之后,用户设备802或用户设备804基于该指示来确定提供该指示的用户设备的数字助理是否在接收到一个或多个用户输入(例如,在接收到该指示之前和/或之后接收的用户输入)之前被调用。例如,在从用户设备804接收到指示(用户设备804的数字助理已被调用(例如,通过第二用户输入))之后,用户设备802确定(例如,基于指示调用用户设备804的数字助理的时间(包括在指示中)的数据)在调用用户设备804的数字助理之前还是之后接收到第三用户输入。
如果用户设备802或用户设备804确定在调用另一用户设备的数字助理之后接收到用户输入,则用户设备802或用户设备804放弃基于用户输入获得数字助理响应。返回前一示例,如果用户设备802确定在用户设备802接收到第三用户输入之前用户设备804的数字助理被调用,则用户设备802放弃基于第三用户输入获得第三数字助理响应。在一些示例中,在用户设备802或用户设备804确定在调用另一用户设备的数字助理之后接收到用户输入之后,用户设备802或用户设备804将继续放弃基于用户输入获得数字助理响应,直到用户设备802或用户设备804接收到来自另一设备的数字助理响应(例如,基于调用另一设备的数字助理的用户输入的数字助理响应)。
然而,如果用户设备802或用户设备804确定在调用另一用户设备的数字助理之前接收到用户输入,则用户设备802或用户设备804基于用户输入获得数字助理响应和/或将数字助理响应提供给参与视频通信会话的其他用户设备(例如,如上文参考获得和/或提供第一数字助理响应和第二数字助理响应所述)。返回前一示例,如果用户设备802确定在用户设备802接收到第三用户输入之后用户设备804的数字助理被调用,则用户设备802继续基于第三用户输入获得和/或向用户设备804(以及参与视频通信会话的任何其他用户设备)提供第三数字助理响应。
总体来讲,在实施调用指示过程时,用户设备802或用户设备804将执行以下操作:(1)响应于确定用户输入包括数字助理触发词,传输其数字助理已被调用的指示(传输到参与视频通信会话的另一用户设备);以及(2)确定用户输入是在调用参与视频通信会话的另一用户设备的数字助理之前还是之后接收(基于最近从参与视频通信会话的其他用户设备接收到(例如,在最后1秒、5秒或10秒内接收到)的任何调用指示)。
在一些示例中,用户设备802或用户设备804执行调用许可过程(也被称为“接力棒”传递过程)。具体地,响应于确定用户输入包括数字助理触发词,用户设备802或用户设备804确定其当前是否持有数字助理调用许可。数字助理调用许可(例如,指示用户设备可调用用户设备的数字助理的数据)是用户设备为了在视频通信会话期间调用其数字助理而需要的“接力棒”。每次只有一个参与视频通信会话的用户设备持有调用许可。如果用户设备802或用户设备804确定其当前持有调用许可,则用户设备802或用户设备804基于用户输入获得数字助理响应和/或将数字助理响应提供给参与视频通信会话的其他用户设备(例如,如上文参考获得和/或提供第一数字助理响应和第二数字助理响应所述)。
如果用户设备802或用户设备804确定其当前不持有调用许可,则用户设备802或用户设备804将对调用许可的请求传输到参与视频通信会话的其他用户设备。只有当前持有调用许可的用户设备才可将调用权传输到提出请求的用户设备。如果接收请求的用户设备(1)在接收到调用许可请求之前(例如,在接收到请求之前0.5秒、1秒或2秒),最近未接收到表示数字助理请求的用户输入,和/或(2)在接收到调用许可请求时,不在基于用户输入获得和/或提供数字助理响应的过程中,则持有调用许可并接收调用许可请求的用户设备将向提出请求的用户设备(例如,用户设备802或用户设备804)传输调用许可。如果用户设备802或用户设备804在传输对调用许可的请求之后的预定时间段内(例如,在传输请求之后0.5秒、1秒或2秒)从参与视频通信会话的另一用户设备接收到调用许可,则用户设备802或用户设备804基于用户输入获得数字助理响应和/或将数字助理响应提供给参与视频通信会话的其他用户设备。然而,如果用户设备802或用户设备804在传输对调用许可的请求之后的预定时间段内没有从参与视频通信会话的另一用户设备接收到调用许可,则用户设备802或用户设备804放弃基于用户输入获得和/或提供数字助理响应。
在一些示例中,用户设备802或用户设备804响应于从参与视频通信会话的另一用户设备接收到调用许可请求被拒绝而放弃基于用户输入获得和/或提供数字助理响应,而不是等待预定时间段到期。只有当前持有调用许可的用户设备才可将调用许可请求被拒绝传输到提出请求的用户设备。如果用户设备(1)在接收到调用许可请求之前(例如,在接收到请求之前0.5秒、1秒或2秒),最近接收到表示数字助理请求的用户输入,和/或(2)在接收到调用许可请求时,在基于用户输入获得和/或提供数字助理响应的过程中,则持有调用许可并接收调用许可请求的用户设备将传输调用许可请求被拒绝。在这些示例中的一些示例中,用户设备802或用户设备804将继续等待作用于用户输入(但不完全放弃基于用户输入获得和/或提供数字助理响应),直到用户设备802或用户设备804从参与视频通信会话的另一用户设备接收到调用许可或调用许可请求被拒绝。
在一些示例中,在用户设备802或用户设备804放弃基于用户输入获得和/或提供数字助理响应(例如,因为用户设备802或用户设备804从未接收到调用许可和/或接收到调用许可请求被拒绝)之后(例如,立即、1秒之后等),用户设备802或用户设备804(例如,在用户设备802或用户设备804的触敏显示器系统212上)显示用户设备802或用户设备804的数字助理当前不可用的指示,或参与视频通信会话的另一用户设备的数字助理当前被调用的指示。在一些示例中,用户设备802或用户设备804继续显示指示(或指示的至少一部分),直到其数字助理再次可用(例如,因为不再调用参与视频通信会话的另一用户设备的数字助理)。
注意,在上述调用许可过程的示例中,始终存在当前持有调用许可的参与视频通信的用户设备。具体地,首先将调用许可指派给发起视频通信会话的用户设备(例如,发出发起视频通信会话的起始呼叫或请求的用户设备)。例如,如果用户设备802初始呼叫或请求用户设备804发起视频通信会话,则一旦建立了视频通信会话(例如,在箭头806之后),用户设备802将持有调用许可。此外,如果当前持有调用许可的用户设备离开视频通信会话而未将调用许可传输到参与视频通信会话的另一用户设备,则调用许可自动返回到发出发起视频通信会话的起始呼叫或请求的用户设备(例如,前一示例中的用户设备802)。如果发出发起视频通信会话的起始呼叫或请求的用户设备在调用许可持有者离开视频通信会话时不再参与视频通信会话,则调用许可自动去往已参与视频通信会话最长时间的用户设备(其中最近加入视频通信会话的用户设备排在最后,自动接收调用许可)。
上述调用指示和调用许可过程有助于防止视频通信会话期间并发调用多个数字助理。这样,一次(参与视频通信会话的两个或更多个用户设备中的)仅一个用户设备可基于视频通信会话期间的用户输入获得/提供数字助理响应。这继而通过例如防止同时提供多个重叠的数字助理响应(例如,同时提供两个数字助理响应的音频输出)保持参与视频通信会话的单个数字助理的表象。
在一些示例中,在视频通信会话期间,用户设备802或用户设备804发起私密数字助理会话并且放弃向参与视频通信会话的其他设备传输一个或多个用户输入和一个或多个相应的数字助理响应。具体地,在一些示例中,用户设备802或用户设备804接收用户输入并且确定该用户输入表示提供私密数字助理请求的用户意图。例如,在输出第二数字助理响应(例如,如上文参考箭头818所述)之后,用户设备802可接收第三用户输入(来自用户设备802的用户)并且确定第三用户输入表示提供私密数字助理请求的用户意图。表示提供私密数字助理请求的用户意图的用户输入的示例包括(1)包括在所显示的视频通信会话用户界面中的静音示能表示的用户选择(例如,静音示能表示908B)和(2)调用用户设备802或用户设备804的数字助理的按钮下压和/或按压(例如,长按按钮910)。
如果用户设备802或用户设备804确定用户输入表示提供私密数字助理请求的用户意图,则用户设备802或用户设备804将放弃向参与视频通信会话的其他用户设备提供(例如,传输)后续用户输入(分别接收自用户设备802或用户设备804的用户)和数字助理响应,直到满足预定条件(如下文所详述)。用户设备802或用户设备804可随后接收另一用户输入(具体地,用户语音输入,诸如例如“嘿,Siri,我母亲的生日是哪天?”或“我今天消耗了多少卡路里?”),基于用户语音输入获得数字助理响应(例如,如上文参考获得第一数字助理响应和第二数字助理响应所述),放弃向参与视频通信会话的其他用户设备提供数字助理响应,以及输出数字助理响应(例如,作为音频输出)。
诸如此的私密数字助理会话(例如,表示数字助理请求和后续数字助理响应的用户语音输入)允许用户设备802或用户设备804的用户在视频通信会话期间提出私密数字助理请求,并且接收用户可能不希望参与视频通信会话的其他用户设备的用户听到的后续数字助理响应。这继而防止用户设备802或用户设备804的用户必须等待直到视频通信会话结束,才能例如提出对在视频通信会话期间用户可能想要或需要的信息的数字助理请求。例如,如果用户设备802的用户正在与用户的母亲(其正在使用用户设备804)一起参与视频通信会话,则用户可能希望在用户母亲不知道的情况下找出用户母亲的生日。在这种情况下,用户可例如在用户设备802输出第二数字助理响应(例如,通过选择静音示能表示或下压/按压按钮)之后发起私密数字助理会话并且提供第三用户输入“嘿,Siri,我母亲的生日是哪天?”。用户设备802将随后放弃向用户设备804提供第三用户输入和对应的第三数字助理响应(例如,表示第三用户语音输入和第三数字助理响应的音频数据)。因此,用户的母亲不会听到第三用户输入或第三数字助理响应。此外,如上所述,用户设备802将继续放弃向用户设备804(以及参与视频通信会话的其他用户设备)提供用户输入和数字助理响应,直到满足预定条件。
满足预定条件的方式取决于用户设备802或用户设备804的用户发起私密数字助理会话的方式。在一些示例中,如果用户设备802或用户设备804的用户通过选择静音示能表示(例如,静音示能表示906B)来发起私密数字助理会话,则当用户设备802或用户设备804再次接收到静音示能表示的用户选择(即,解除静音并因此允许参与视频通信会话的其他设备处的用户再次听到在用户设备802或用户设备804处接收的语音输入)时满足预定条件。在这些示例中,静音示能表示的第二用户选择结束私密数字助理会话,并且允许用户设备802或用户设备804再次向参与视频通信会话的其他用户设备提供用户输入和数字助理响应。在其他示例中,如果用户设备802或用户设备804的用户通过下压/按压调用用户设备802或用户设备804的数字助理的物理按钮(例如,长按按钮910)来发起私密数字助理会话,则一旦用户设备802或用户设备804响应于私密用户输入而输出数字助理响应即满足预定条件。因此,与用户通过选择静音示能表示发起私密数字助理会话时不同,在这些示例中,用户可仅提供单个用户输入(例如,“嘿,Siri,我母亲的生日是哪天?”)并且在私密数字助理会话结束之前接收单个对应的数字助理响应。
5.用于基于在参与视频通信会话的用户设备处接收的用户语音输入来确定候选 数字助理任务的系统和技术
图10示出了根据各种示例的用于基于在参与视频通信会话的用户设备处接收的用户语音输入来确定候选数字助理任务的系统和技术。系统1000包括用户设备1002(例如,用户设备104、122、200、400、600)、用户设备1004(例如、用户设备104、122、200、400、600)和服务器1006(例如,DA服务器106)。在一些示例中,用户设备1002和用户设备1004分别与用户设备802和用户设备804类似或相同。应当认识到,在这些示例中,由用户设备1002和/或用户设备1004执行的任何操作可替代地由服务器1006执行,并且由服务器1006执行的任何操作可替代地由用户设备1002和/或用户设备1004执行。例如,服务器1006可执行用户设备1002和/或用户设备1004的相应DA客户端模块(例如,DA客户端模块229)的操作。
如箭头1008所示,用户设备1002和用户设备1004发起视频通信会话(例如,视频会议)。在一些示例中,多于两个用户设备(例如,四个用户设备)参与视频通信会话。在一些示例中,发起视频通信会话在参与视频通信会话的每个用户设备之间建立一个或多个音频流。例如,在发起视频通信会话时,用户设备1002和用户设备1004在彼此之间建立第一音频流。例如,如果第三用户设备要加入视频通信会话,则第三用户设备将在其自身与用户设备1002之间建立第二音频流并且在其自身与用户设备1004之间建立第三音频流。在一些示例中,该技术的剩余步骤(下文参考图10所详述)发生在用户设备1002与用户设备1004之间的所发起的视频通信会话期间。
如箭头1010所示,用户设备1002接收用户语音输入。在一些示例中,用户语音输入包括调用用户设备1002的数字助理(例如,发起用户设备1002的用户与用户设备1002的数字助理之间的对话会话)的数字助理触发词(例如,“嘿,Siri”、“Siri”等)。例如,用户语音输入可在第一用户输入的开始处包括数字助理触发词(例如,“嘿,Siri,帕罗奥图天气怎么样?”)。又如,用户语音输入可在第一用户输入的结束处包括数字助理触发词(例如,“帕罗奥图天气怎么样,Siri?”)。在一些示例中,响应于确定用户语音输入包括数字助理触发词,用户设备1002确定用户语音输入表示对用户设备1002的数字助理执行一个或多个任务的用户请求(并且在一些示例中,提供对用户请求的一个或多个数字助理响应)。例如,用户输入“嘿,Siri,帕罗奥图天气怎么样?”表示对数字助理检索并提供帕罗奥图天气信息的用户请求。在一些示例中,用户语音输入不包括数字助理触发词,因此不调用用户设备1002的数字助理。在一些示例中,用户语音输入不包括数字助理触发词,而是使用户设备1002的数字助理确定和/或提供数字助理响应(例如,当在用户设备1002接收到用户语音输入之前经由示能表示的用户选择和/或物理按钮按压来调用数字助理时)。
在一些示例中,响应于接收到用户语音输入,用户设备1002将用户语音输入(例如,表示用户语音输入的音频数据)传输到用户设备1004。在一些示例中,用户设备1002将用户语音输入作为对等传输(例如,使用在发起视频通信会话时在两个用户设备之间建立的音频流)传输到用户设备1004。在其他示例中,用户设备1002将用户语音输入传输到服务器1006,该服务器随后将用户语音输入(例如,表示用户语音输入的音频数据)传输到用户设备1004。在一些示例中,在接收到用户语音输入之后,用户设备1004将用户语音输入输出为音频输出(例如,使用扬声器211)。
在接收到用户语音输入后,用户设备1002基于用户语音输入生成文本表示(例如,使用STT处理模块730)。然后,如箭头1012所示,用户设备1002将所生成的文本表示(例如,表示文本表示的数据)传输到服务器1006。在一些示例中,用户设备1002将文本表示连同与用户语音输入相关联的上下文信息一起传输到服务器1006。与用户语音输入相关联的上下文信息的示例包括(但不限于)从用户接收到用户语音输入时用户设备1002的时间(例如,时间戳)、接收到用户语音输入时用户设备1002的位置(例如,由GPS模块235确定)、接收到用户语音输入时用户设备1002的取向等。
如箭头1014所示,服务器1006从用户设备1004接收一个或多个附加文本表示(例如,表示一个或多个附加文本表示的数据)。在一些示例中,一个或多个附加文本表示对应于用户设备1004在视频通信会话期间接收的用户语音输入,和/或用户设备1004在视频通信会话期间、在用户设备1002接收到用户语音输入(如箭头1010所示)之前和/或之后提供的数字助理响应。因此,虽然图10示出服务器1006在服务器1006接收到文本表示(由箭头1012表示)之后接收到一个或多个附加文本表示(由箭头1014表示),但在一些示例中,服务器1006在服务器1006从用户设备1002接收到文本表示(例如,如箭头1010所示)之前从用户设备1004接收一个或多个附加文本表示(例如,对应于一个或多个用户语音输入和/或数字助理响应)。
在一些示例中,用户设备1004将一个或多个附加文本表示连同与对应于一个或多个附加文本表示的一个或多个用户语音输入和/或一个或多个数字助理响应相关联的上下文信息一起传输到服务器1006。与一个或多个用户语音输入相关联的上下文信息的示例包括(但不限于)从用户接收到每个用户语音输入时用户设备1004的时间(例如,时间戳)、接收到每个用户语音输入时用户设备1004的位置(例如,由GPS模块235确定)。与一个或多个数字助理响应相关联的上下文信息的示例包括(但不限于)用户设备1004提供每个数字助理响应(例如,提供给参与视频通信会话的其他用户设备)时的时间(例如,时间戳)、用户设备1004提供每个数字助理响应时用户设备1004的位置和/或取向等。
在接收到来自用户设备1002的文本表示和来自用户设备1004的一个或多个附加文本表示之后(例如,在接收到每个附加文本表示之后立即),服务器1006将文本表示和附加文本表示添加到共享转录。共享转录是存储在服务器1006上并且在参与视频通信会话的所有用户设备之间共享的数字笔记、文件、文档、文本集合等。具体地,共享转录是“共享的”,因为参与视频通信会话的所有用户设备都可向服务器1006传输文本表示(例如,对应于用户语音输入和/或数字助理响应)以添加到与视频通信会话相关联的共享转录。在一些示例中,一旦建立了视频通信会话(例如,在至少两个用户设备之间),就生成与视频通信会话相关联的共享转录。
在一些示例中,基于服务器1006接收文本表示和一个或多个附加文本表示的顺序,服务器1006将文本表示和一个或多个附加文本表示添加到共享转录。例如,如果在服务器1006从用户设备1002接收到文本表示之前服务器1006接收到一个或多个附加文本表示,则服务器1006将一个或多个附加文本表示添加到共享转录(例如,在接收到附加文本表示之后立即添加)并且随后将文本表示添加到共享转录(例如,在接收到文本表示之后立即添加)。在一些示例中,服务器1006使用与文本表示一起接收的上下文信息和与一个或多个附加文本表示一起接收的上下文信息来确定将文本表示和一个或多个附加文本表示添加到共享转录的顺序。这样,服务器1006解决了在从用户设备1002和/或用户设备1004接收文本表示和/或一个或多个附加文本表示时的任何延迟(例如,网络延迟)。返回以上示例,如果与文本表示和一个或多个附加文本表示一起接收的上下文信息(例如,用户语音输入和/或数字助理响应时间戳)指示用户设备1002在用户设备1004接收和/或提供对应于一个或多个附加文本表示的用户语音输入和/或数字助理响应之前接收到对应于文本表示的用户语音输入,则服务器1006将在添加一个或多个附加文本表示之前将文本表示添加到共享转录。
在一些示例中,服务器1006在共享转录中包括一个或多个指示,这些指示基于与文本表示一起接收的上下文信息(例如,定时信息)和/或与一个或多个附加文本表示一起接收的上下文信息,两个或更多个文本表示对应于同时接收和/或提供的用户语音输入和/或数字助理响应。例如,服务器1006可在共享转录中包括一个指示,该指示指示从用户设备1002接收的文本表示和从用户设备1004接收的一个或多个附加文本表示中的一个附加文本表示各自对应于用户设备1002和用户设备1004同时接收的用户语音输入(例如,因为它们各自的用户在视频通信会话期间同时发言)。如将在下文所详述,用户设备1002和/或用户设备1004可在共享转录中使用这种指示来确定如何(例如,在视频通信会话用户界面中)显示对应于用户设备1002和用户设备1004同时接收和/或提供的用户语音输入和/或数字助理响应的两个或更多个文本表示。
在将文本表示和一个或多个附加文本表示添加到共享转录之后,服务器1006将共享转录传输到用户设备1002和用户设备1004,分别如箭头1016和箭头1018所示。在一些示例中,服务器1006周期性地(例如,每1秒、5秒、10秒等)将共享转录传输到用户设备1002和用户设备1004(以及参与视频通信会话的所有其他用户设备)。在一些示例中,在服务器1006将每个文本表示添加到共享转录之后,服务器1006将共享转录传输到用户设备1002和用户设备1004(以及参与视频通信会话的所有其他用户设备)。因此,例如,服务器1006可在将文本表示(接收自用户设备1002)添加到共享转录之后但在将一个或多个附加文本表示(接收自用户设备1004)添加到共享转录之前将共享转录传输到用户设备1002和用户设备1004。然后,服务器1006可在将一个或多个附加文本表示添加到共享转录之后再次将共享转录传输到用户设备1002和用户设备1004(例如,在添加一个或多个附加文本表示中的每个附加文本表示之后传输共享转录)。
在一些示例中,在接收到共享转录之后,用户设备1002和/或用户设备(例如,使用触敏显示系统212)显示包括在共享转录中的文本表示(例如,文本表示和一个或多个附加文本表示)。在一些示例中,用户设备1002和/或用户设备1004将文本表示显示为覆盖视频通信会话的用户界面。在一些示例中,包括在接收的共享转录中的一个或多个文本表示已被显示为覆盖视频通信会话的用户界面。在这些示例中,显示包括在共享转录中的文本表示包括用户设备1002和/或用户设备1004除了显示包括在共享转录中的已显示的一个或多个文本表示之外,还显示尚未显示的一个或多个文本表示。例如,用户设备1002和/或用户设备1004可在包括在已显示的共享转录中的文本表示的下方显示包括在共享转录中的新文本表示(即,尚未显示的那些文本转录本)。这样,用户设备1002和/或用户设备1004可在用户界面中维护一个或多个已显示的文本表示并且简单地将新文本表示添加到用户界面(例如,添加在已显示的文本表示的下方)。
例如,图11示出了根据各种示例的用于视频通信会话的实时转录的示例性用户界面。具体地,图11示出了用户设备1100(例如,用户设备104、122、200或600)。用户设备1100与用户设备1002、用户设备1004和/或用户设备900类似或相同。在图11中示出的非限制性示例性实施方案中,用户设备1100是智能电话。在其他实施方案中,用户设备1100可以是不同类型的用户设备,诸如可穿戴设备(例如,智能手表或智能眼镜)、平板电脑、膝上型或台式计算机。如图所示,用户设备1100包括显示器1102。在一些示例中,用户设备1100包括一个或多个输入设备(例如,显示器902的触摸屏、按钮1110、麦克风等)。
在图11中,用户设备1100在显示器1102(例如,触敏显示器系统212)上显示视频通信会话界面1104。视频通信会话界面1104是用于两个用户设备(例如,用户设备1002和用户设备1004)之间的视频通信会话(例如,视频会议)的示例性用户界面。在一些示例中,视频通信会话界面1104与视频通信会话界面904类似或相同(如上文参考图9所述)。如图所示,视频通信会话界面1104包括视频通信会话中的三个参与者的表示。表示1106A包括来自用户设备1100(例如,用户设备1002)的相机(例如,光学传感器164)的视图。表示1106B包括来自第二用户设备(例如,用户设备1004)的实时视频馈送。在一些示例中,表示(例如,表示1106B)包括仅提供音频数据(例如,因为视频数据不可用)的用户设备的表示性图像。例如,表示性图像可包括表示参与者的一个或多个字母(例如,存储在用户设备1100上的参与者联系人姓名的第一个字母)和/或参与者的全名(例如,存储在用户设备1100上的完整参与者联系人姓名)。表示1106C包括用户设备1100的数字助理的表示性图像。如图所示,数字助理的表示性图像包括字母“S”和名称“Siri”。然而,数字助理的表示性图像不限于该示例,并且可包括任何其他图像、字母、名称、数字或其组合。
如图所示,视频通信会话界面1104包括实时转录本1108。实时转录本1108包括由参与视频通信会话的用户设备接收的用户语音输入和/或由参与视频通信会话的用户设备提供的数字助理响应的多个文本表示。此外,实时转录本1108包括对应于用户语音输入的每个文本表示(例如,以指示从用户接收用户语音输入的用户设备)的用户名(例如,Adam或John)和对应于数字助理响应的每个文本表示的数字助理名称(例如,Siri)。如上所述,包括在实时转录本1108中的多个文本表示对应于包括在用户设备1100接收的一个或多个共享转录中的文本表示。包括在实时转录本1108中的文本表示是“实时的”,因为它们在视频通信会话界面1104中实时显示,或者在用户设备1100接收和/或提供对应于文本表示的用户语音输入和/或数字助理响应之后不久(例如,立即、晚小于1秒、晚小于2秒等)显示。例如,如图11所示,在实时转录“JOHN:嗨,ADAM,帕罗奥图天气怎么样?”显示在实时转录本1108上时立即或不久之后,用户设备1100接收到来自John的用户设备的对应于实时转录的用户语音输入(例如,因为用户设备1100在接收到来自一个或多个服务器(例如,服务器1006)的包括文本表示的共享转录时立即或不久之后,用户设备1100接收到来自John的用户设备的用户语音输入)。
在一些示例中,用户设备1100基于参与生成/提供文本表示的视频通信会话的用户设备,以不同颜色显示一个或多个文本表示(包括在实时转录本1108中)(例如,每个用户设备具有对应的颜色)。例如,由用户设备1100生成/提供的实时转录本1108中的文本表示(即,以“ADAM:”开始的文本表示)可以是一种颜色(例如,白色),而由John的用户设备生成/提供的文本表示(即,以”JOHN:”开始的文本表示)是另一种颜色(例如,红色)。
在一些示例中,如果用户设备1100确定两个或更多个文本表示对应于由同时参与视频通信会话的两个或更多个用户设备(例如,用户设备1100和John的用户设备)接收和/或提供的用户语音输入和/或数字助理响应,则用户设备1100以特定颜色(例如,红色、白色、蓝色等)在实时转录本1108中显示这两个或更多个文本表示。如上所述,在一些示例中,共享转录包括在共享转录中包括的两个或更多个文本表示对应于同时接收和/或提供的用户语音输入和/或数字助理响应的指示。因此,在这些示例中,用户设备1100基于包括在共享转录中的指示来确定两个或更多个文本表示对应于同时接收和/或提供的用户语音输入和/或数字助理响应。之后,用户设备1100以一种颜色(例如,红色)显示两个或更多个文本表示,而以另一种颜色(例如,白色)显示实时转录本1108中的所有其他文本表示(例如,不对应于同时接收和/或提供的用户语音输入和/或数字助理响应的那些文本表示)。这样,用户设备1100的用户(例如,Adam)将能够快速确定包括在实时转录本1108中的哪些文本表示对应于同时接收和/或提供的用户语音输入和/或数字助理响应。
在一些示例中,用户设备1100仅显示实时转录本1108中的预定数量的最近文本表示(例如,一个、二个、五个、十个等)(例如,而不是显示共享转录中包括的所有文本表示)。这样,一旦用户设备1100在实时转录本1108中显示预定数量的文本表示,随着用户设备1100在实时转录本1108中显示新文本表示,用户设备1100停止在实时转录本1108中显示旧文本表示。例如,如果用户设备1100一次仅在实时转录本1108中显示六个文本表示(即,因为预定数量的文本表示是六个),则用户设备1100将在“ADAM:好的。”的下方显示下一个(例如,最近的)文本表示并且停止显示文本表示“JOHN:嗨,ADAM,帕罗奥图天气怎么样?”。在一些示例中,用户设备1100基于服务器1006将文本表示添加到共享转录的顺序来确定共享转录中包括的哪些文本表示是最近的。在一些示例中,用户设备1100基于对应于服务器1006将共享转录提供到的文本表示的上下文信息(例如,定时信息)来确定共享转录中包括的哪些文本表示是最近的。
返回图10,在接收到共享转录之后,用户设备1002基于包括在共享转录中的文本表示确定可由用户设备1002的数字助理执行的一个或多个候选任务。示例候选任务包括设置提醒、创建日历事件、设置警报、创建新存储的联系人、向第三方应用程序请求服务(例如,使用Uber应用程序请求Uber汽车)等。例如,参考图11,在接收到包括文本表示“很好。请您在有变化时告诉我您的地址。”的共享转录时,用户设备1100的数字助理可基于文本表示将提醒设置的候选任务确定为“告诉John您的地址”。在一些示例中,用户设备1002通过执行包括在共享转录中的一个或多个(例如,所有)文本表示的自然语言处理(例如,使用自然语言处理模块732)来确定一个或多个候选任务。在一些示例中,用户设备1002对用户设备1002在视频通信会话期间接收的每个共享转录中包括的文本表示执行自然语言处理。在这些示例的一些示例中,用户设备1002仅在用户设备1002尚未执行包括在共享转录中的一个或多个文本表示的自然语言处理的情况下(即,如果一个或多个文本表示未包括在用户设备1002先前在视频通信会话期间接收的共享转录中),才执行该一个或多个文本表示的自然语言处理。
如箭头1020所示,在用户设备1002确定可由用户设备1002的数字助理执行的一个或多个候选任务之后,用户设备1002呈现一个或多个候选任务。在一些示例中,呈现一个或多个候选任务包括在视频通信会话期间和/或在视频通信会话结束之后在用户设备1002的显示器上显示一个或多个候选任务。在一些示例中,用户设备1002将一个或多个候选任务显示为覆盖视频通信会话用户界面的文本(即,在视频通信会话期间)。例如,用户设备1002可将一个或多个候选任务显示为包括在视频通信会话用户界面(例如,视频通信会话界面1104)中的实时转录本(例如,实时转录本1108)中的文本。在一些示例中,用户设备1002在文本消息传送应用程序内的文本消息中(例如,在用户设备1002的用户与用户设备1002的数字助理之间的文本消息传送对话中)显示一个或多个候选任务。在一些示例中,用户设备1002在一个或多个通知中显示一个或多个候选任务(例如,显示为横幅通知中的文本、包括在通知历史界面中的通知、包括在锁定屏幕界面中的通知等)。在一些示例中,用户设备1002将一个或多个候选任务显示为一个或多个任务建议(例如,显示在锁定屏幕界面中、在通知历史界面中等)。
在一些示例中,用户设备1002以音频输出呈现一个或多个候选任务(例如,具有或不具有对应的用户界面)。在一些示例中,响应于表示对一个或多个候选任务的用户请求(例如,“嘿,Siri,我该做什么?”)的用户语音输入(例如,在与用户设备1002的用户的私密数字助理会话期间(在视频通信会话期间)或在视频通信会话结束之后接收的),用户设备1002以音频输出呈现一个或多个候选任务。在一些示例中,用户设备1002在视频通信会话结束之后(例如,立即或几秒之后)以音频输出自动呈现一个或多个候选任务。在一些示例中,音频输出(1)请求用户设备1002的用户确认或拒绝一个或多个候选任务中的每个候选任务,(2)请求用户设备1002的用户选择一个或多个候选任务中的至少一个候选任务以供数字助理执行,和/或(3)请求执行一个或多个候选任务中的一个候选任务的用户许可。
基于包括在视频通信会话期间接收的共享转录中的文本表示来自动确定和呈现一个或多个候选任务(如上所述)允许参与视频通信会话的用户设备的数字助理基于在视频通信会话期间保持的会话来主动地确定用户设备的用户可能希望数字助理执行的一个或多个任务。这样,数字助理防止用户必须单独请求此类任务,确保用户不会忘记请求此类任务,和/或通知用户数字助理能够执行的任务(例如,用户先前不知道)。这继而改善了用户对于视频通信会话和用户设备的数字助理的体验。
6.用于提供对在视频通信会话期间接收的公共数字助理请求的数字助理响应的 系统和技术
图12示出了根据各种示例的用于在视频通信会话期间提供对公共数字助理请求的数字助理响应的系统和技术。系统1200包括用户设备1202(例如,用户设备104、122、200、400、600)和用户设备1204(例如,用户设备104、122、200、400、600)。在一些示例中,用户设备1202和用户设备1204分别与用户设备802/1002和用户设备804/1004类似或相同。应当认识到,在这些示例中,由用户设备1202和/或用户设备1204执行的任何操作可替代地由一个或多个服务器(例如,DA服务器106)执行。例如,一个或多个服务器可执行用户设备1202和/或用户设备1204的相应DA客户端模块(例如,DA客户端模块229)的操作。
如箭头1206所示,用户设备1202和用户设备1204发起视频通信会话(例如,视频会议、虚拟现实视频会议或增强现实视频会议)。在一些示例中,多于两个用户设备(例如,四个用户设备)参与视频通信会话。在一些示例中,发起视频通信会话在参与视频通信会话的每个用户设备之间建立一个或多个音频流。例如,在发起视频通信会话时,用户设备1202和用户设备1204在彼此之间建立第一音频流。例如,如果第三用户设备要加入视频通信会话,则第三用户设备将在其自身与用户设备1002之间建立第二音频流并且在其自身与用户设备1004之间建立第三音频流。在一些示例中,该技术的剩余步骤(下文参考图12所详述)发生在用户设备1202与用户设备1204之间的所发起的视频通信会话期间。
如箭头1208所示,用户设备1202接收表示公共数字助理请求的用户语音输入。公共数字助理请求是数字助理基于与参与视频通信会话(或在一些示例中,参与电话呼叫)的至少两个用户设备相关联的上下文信息(例如,用户设备上下文状态信息、用户特定信息和/或数据等)来执行一个或多个任务的用户请求。一些示例性公共数字助理请求包括“嘿,Siri,找个时间给我们开会”、“嘿,Siri,放一首John和我都喜欢的歌”和“嘿,Siri,John和我到达帕罗奥图需要多长时间?”。如将在下文所详述,在一些示例中,数字助理向公共数字助理请求提供/输出单个数字助理响应。在其他示例中,数字助理向公共数字助理请求提供/输出多于一个数字助理响应(例如,两个、三个或四个响应)。
在接收到用户语音输入之后,用户设备1202确定语音输入是否表示公共数字助理请求(而不是例如诸如上文参考图8所述的标准数字助理请求)。在一些示例中,确定第一用户语音输入是否表示公共数字助理请求包括用户设备1202确定来自参与视频通信会话的至少两个用户设备的上下文信息是否可用于满足包括在用户语音输入中的用户请求(例如,以执行与用户请求相关联的一个或多个任务)。例如,响应于接收到用户语音输入“嘿,Siri,找个时间给我们开会”,用户设备1202(更具体地,用户设备1202的数字助理)可确定来自用户设备1202和来自用户设备1204的用户特定日历信息(如上文参考图8所述,这是一种类型的上下文信息)可用于确定两个设备的用户可开会的时间,并且因此可用于满足包括在用户语音输入中的用户请求。因此,在该示例中,用户设备1202将确定用户语音输入“嘿,Siri,找个时间给我们开会”表示公共数字助理请求。
在一些示例中,确定用户语音输入是否表示公共数字助理请求包括用户设备1202确定用户语音输入是否引用视频通信会话的多个参与者。在一些示例中,用户设备1202基于用户语音输入(例如,对应于用户语音输入的音频数据或用户语音输入的文本表示)是否包括两个或更多个视频通信会话参与者的适当名称(例如,所存储的联系人名称)来确定用户语音输入引用视频通信会话的多个参与者。例如,如果存在正参与视频通信会话的名为John和Adam的用户(例如,如果John是用户设备1204的用户并且Adam是参与视频通信会话的第三用户设备的用户),则用户设备1202可确定用户语音输入“嘿,Siri,找个时间给John、Adam和我开会”表示公共数字助理请求。换句话讲,至少由于用户语音输入包括两个或更多个视频通信会话参与者的适当名称,用户设备1202将确定“嘿,Siri,找个时间给John、Adam和我开会”表示公共数字助理请求。
在一些示例中,用户设备1202基于用户语音输入是否包括视频通信会话参与者的至少一个适当名称和第一人称单数代词(例如,“我(I或me)”)来确定用户语音输入引用视频通信会话的多个参与者。例如,如果存在正在参与视频通信会话的名为John的用户(例如,如果John是用户设备1204的用户),则用户设备1202可确定用户语音输入“嘿,Siri,放一首John和我都喜欢的歌”表示公共数字助理请求。换句话讲,至少由于用户语音输入包括视频通信会话参与者的适当名称(“John”)和第一人称单数代词(“我”),用户设备1202将确定“嘿,Siri,放一首John和我都喜欢的歌”表示公共数字助理请求。
在一些示例中,用户设备1202基于用户语音输入是否包括至少一个复数代词(例如,“我们(us)”、“他们(they)”、“他们(them)”、“两者”、“我们的”和/或“我们(we)”)来确定用户语音输入引用视频通信会话的多个参与者。例如,至少由于用户语音输入包括复数代词(“我们”),用户设备1202可确定用户语音输入“嘿,Siri,找个时间给我们开会”表示公共数字助理请求。
注意,在一些示例中,用户设备1202使用上述确定中的两个或更多个的组合来确定接收的语音输入是否表示公共数字助理请求。例如,用户设备可确定用户语音输入是公共数字助理请求,因为来自参与视频通信会话的至少两个用户设备的上下文信息可用于满足包括在用户语音输入中的用户请求并且因为用户语音输入包括复数代词。
如果用户设备1202确定用户语音输入表示公共数字助理请求,则用户设备1202随后将请求传输到用户设备1204(如下文参考箭头1210所详述)。如果用户设备1202确定用户语音输入不表示公共数字助理请求,则用户设备1202放弃将请求传输到用户设备1204,并且在一些示例中,基于用户语音输入获得和/或输出数字助理响应(例如,如上文参考图8、箭头808和/或箭头812所述)。
在一些示例中,响应于接收到用户语音输入并且在确定用户语音输入是否表示公共数字助理请求之前,用户设备1202将用户语音输入(例如,表示用户语音输入的音频数据或文本数据)传输到用户设备1204。在一些示例中,用户设备1202将用户语音输入作为对等传输(例如,使用在发起视频通信会话时在两个用户设备之间建立的音频流)传输到用户设备1204。在其他示例中,用户设备1202将用户语音输入传输到一个或多个服务器(例如,DA服务器106),该服务器随后将用户语音输入(例如,表示第一用户输入的音频数据或文本数据)传输到用户设备1204。在一些示例中,在接收到用户语音输入之后,用户设备1204将用户语音输入输出为音频输出(例如,使用扬声器211)。
在一些示例中,响应于接收到用户语音输入并且在确定用户语音输入是否表示公共数字助理请求之前,用户设备1202确定用户语音输入(例如,对应于用户语音输入的音频数据或用户语音输入的文本表示)是否包括数字助理触发词(例如,“嘿,Siri”、“Siri”等)。响应于确定用户语音输入包括数字助理触发词,用户设备1202执行调用指示过程或调用许可过程(例如,如上文参考图8、箭头818所述)确定是否应(1)继续确定用户语音输入是否表示公共数字助理请求或(2)放弃确定用户语音输入是否表示公共数字助理请求(并且因此放弃基于用户语音输入获得和/或提供数字助理响应)。
在一些示例中,用户设备1202执行调用指示过程。具体地,响应于确定用户输入包括数字助理触发词,用户设备1202(1)响应于确定用户输入包括数字助理触发词,传输其数字助理已被调用的指示(传输到参与视频通信会话的另一用户设备);以及(2)确定用户语音输入是在调用参与视频通信会话的另一用户设备的数字助理之前还是之后接收(基于最近从参与视频通信会话的其他用户设备接收到(例如,在最后1秒、5秒或10秒内接收到)的任何调用指示)。如果用户设备1202确定其在参与视频通信会话的另一用户设备的数字助理的调用之后接收到用户语音输入,则用户设备1202放弃确定用户语音输入是否表示公共数字助理请求(并且因此放弃基于用户语音输入获得和/或提供数字助理响应)。另选地,如果用户设备1202确定其在参与视频通信会话的另一用户设备的数字助理的调用之前接收到用户语音输入,则用户设备1202继续确定用户语音输入是否表示公共数字助理请求。
在一些示例中,用户设备1202执行调用许可过程(也被称为“接力棒”传递过程)。具体地,响应于确定用户输入包括数字助理触发词,用户设备1202确定其当前是否持有数字助理调用许可。如果用户设备1202确定其当前持有调用许可,则用户设备1202继续确定用户语音输入是否表示公共数字助理请求。
如果用户设备1202确定其当前不持有调用许可,则用户设备1202将对调用许可的请求传输到参与视频通信会话的其他用户设备。如果用户设备1202在传输对调用许可的请求之后的预定时间段内(例如,在传输请求之后0.5秒、1秒或2秒)从参与视频通信会话的另一用户设备(例如,用户设备1204)接收到调用许可,则用户设备1202继续确定用户语音输入是否表示公共数字助理请求。然而,如果用户设备1202在传输对调用许可的请求之后的预定时间段内没有从参与视频通信会话的另一用户设备接收到调用许可,则用户设备1202放弃确定用户语音输入是否表示公共数字助理请求(并且因此放弃基于用户语音输入获得和/或提供数字助理响应)。
在一些示例中,用户设备1202响应于从参与视频通信会话的另一用户设备接收到调用许可请求被拒绝而放弃确定用户语音输入是否表示公共数字助理请求,而不是等待预定时间段到期。在这些示例中的一些示例中,用户设备1202将继续等待作用于用户语音输入(但不完全放弃确定用户语音输入是否代表公共数字助理响应),直到用户设备1202从参与视频通信会话的另一用户设备接收到调用许可或调用许可请求被拒绝。
在一些示例中,在用户设备1202放弃确定用户语音输入是否代表公共数字助理响应(例如,因为用户设备1202从未接收到调用许可和/或接收到调用许可请求被拒绝)之后(例如,立即、1秒之后等),用户设备1202(例如,在用户设备1202的触敏显示器系统212上)显示用户设备1202的数字助理当前不可用的指示和/或参与视频通信会话的另一用户设备的数字助理当前被调用的指示。在一些示例中,用户设备1202继续显示指示(或指示的至少一部分),直到其数字助理再次可用(例如,因为不再调用参与视频通信会话的另一用户设备的数字助理)。
如上文参考图8的箭头818所述,上述调用指示和调用许可过程有助于防止视频通信会话期间并发调用多个数字助理。这样,一次(参与视频通信会话的两个或更多个用户设备中的)仅一个用户设备可基于视频通信会话期间的用户输入获得/提供数字助理响应。这继而通过例如防止同时提供多个重叠的数字助理响应(例如,同时提供两个数字助理响应的音频输出)保持参与视频通信会话的单个数字助理的表象。关于调用指示过程和调用许可过程的更多信息,参考对应于图8的箭头818的描述。
如箭头1210所示,用户设备1202向用户设备1204传输请求,使用户设备1204向用户设备1202提供与用户语音输入相关联的用户特定信息。用户特定信息包括对应于用户设备的当前用户(例如,用户设备1204的当前用户)的信息和/或数据。上文参考图8的箭头810详细描述了用户特定信息和/或数据的示例。在一些示例中,对与用户语音输入相关联的用户特定信息的请求是对用户设备1204提供某些用户特定信息(例如,一个或多个具体日期的用户特定日历条目、用户喜爱的歌曲、用户喜爱的餐厅等)的请求。例如,如果用户语音输入是“嘿,Siri,今天找个时间给John和我开会”,则用户设备1202可向用户设备1204(在该示例中是John的用户设备)传输请求,要求应于John的今天日历条目的数据。
在一些示例中,对与用户语音输入相关联的用户特定信息的请求是对用户设备1204基于用户语音输入的一个或多个域(例如,本体760的域)提供某个类型的用户特定信息的请求。例如,如果用户设备1202确定用户语音输入“嘿,Siri,找一家John和我都喜欢的餐厅”对应于“餐厅预定”域(例如,基于公共数字助理请求的自然语言处理结果),则用户设备1202可向用户设备1204(在该示例中是John的用户设备)传输对用户特定餐厅信息和/或偏好(例如,最近访问的餐厅、喜爱的餐厅等)的请求。又如,如果用户设备1202确定用户语音输入“嘿,Siri,放一首John和我都喜欢的歌”对应于“音乐播放”域,则用户设备1202可向用户设备1204传输对用户特定音乐信息和/或偏好(例如,最近播放的歌曲、喜爱的歌曲等)的请求。又如,如果用户设备1202确定用户语音输入“嘿,Siri,找个我们可以开会的时间”对应于“安排会议”域,则用户设备1202可向用户设备1204传输对用户特定日历信息(例如,所有用户特定日历信息而不是具体日期的用户特定日历条目)的请求。
在一些示例中,用户设备1202向用户设备1204传输对用户设备1204向用户设备1202提供一种或多种类型的用户特定信息的预定集合的请求(而不是向用户设备1204传输对与用户语音输入相关联的用户特定信息的请求)。换句话讲,在这些示例中,用户设备1202传输对用户特定信息类型的预定集合的请求,而与公共数字助理请求的内容无关。在一些示例中,预定集合包括用户特定日历信息、用户特定餐厅信息、用户特定音乐信息、用户特定体育信息等中的一者或多者。因此,例如,如果用户语音输入是“嘿,Siri,找个时间给我们开会”,则用户设备1202可向用户设备1204传输请求,使用户设备1204提供包括所有用户特定日历信息和所有用户特定音乐信息的用户特定信息的预定集合。
在一些示例中,用户设备1202向用户设备1204传输一般性请求,使用户设备1204向用户设备1202提供与用户语音输入相关联的上下文信息(而不是向用户设备1204传输对与用户语音输入相关联的用户特定信息的请求)。如上所述,与用户语音输入相关联的上下文信息包括例如用户设备的上下文状态(例如,接收到用户语音输入时用户设备的当前位置)、与用户语音输入相关联的联系人信息、与用户语音输入相关联的用户特定信息和/或数据、与用户语音输入相关联(并且对应于视频通信会话期间的数字助理对话会话)的对话历史信息等。因此,对与用户语音输入相关联的上下文信息的一般性请求是对与用户语音输入相关联的用户特定信息以及对与用户语音输入相关联的其他类型上下文信息(例如,用户设备的上下文状态、所存储的联系人信息、对话历史信息等)的请求。例如,如果用户语音输入是“嘿,Siri,John和我到达帕罗奥图需要多长时间”,则用户设备1202可传输对诸如用户特定导航偏好和用户设备1204的当前位置的上下文信息的一般性请求。上文参考图8的箭头810详细描述了在视频通信会话期间一个用户设备可提供给另一个用户设备的包括在上下文信息中的各种类型的信息和/或数据。
在一些示例中,用户设备1202将对用户特定信息的请求和/或对上下文信息的一般性请求传输到一个或多个服务器(而不是用户设备1204)。在这些示例中,一个或多个服务器随后将对用户特定信息的请求和/或对上下文信息的一般性请求中继到用户设备1204。
确定用户语音输入是否是公共数字助理请求并随后向参与视频通信会话的另一用户设备传输对与用户语音输入相关联的用户特定信息(和/或上下文信息)的请求(如果用户语音输入是公共数字助理请求)允许参与视频通信会话的用户设备的用户在视频通信会话期间以更自然和会话式的方式提供数字助理请求。例如,不是两个或更多个用户都必须在视频通信会话期间单独提供相同的数字助理请求(例如,“嘿,Siri,我今天什么时候有空?”),而是单个用户可提供公共数字助理请求(例如,“嘿,Siri,找个时间给我们开会。”),并且如将在下文所详述,用户的用户设备可随后获得并提供考虑了接收自其他用户设备的用户特定信息(和/或上下文信息)的一个或多个数字助理响应(例如,“John和你今天下午5:30都有空。”)。这继而产生单个数字助理的表象,该单个数字助理与视频通信会话中的所有用户设备一起参与(与针对每个用户设备的单独数字助理相反)并且知道每个用户/用户设备的上下文。这最终改善了第一用户设备和第二用户设备的用户的视频通信会话体验。
如箭头1212所示,响应于接收到对与来自用户设备1202的用户语音输入相关联的用户特定信息的请求,用户设备1204检索与用户语音输入相关联的用户特定信息(例如,表示用户特定信息的数据)并将其传输到用户设备1202。例如,用户设备1204将所请求的用户特定信息的至少一部分传输到用户设备1202。在一些示例中,用户设备1204从用户设备1204的存储器(例如,存储器202或存储器470)检索用户特定信息。在一些示例中,用户设备1204从一个或多个服务器(例如,DA服务器106)检索用户特定信息。
类似地,在用户设备1202将对与用户语音输入相关联的上下文信息的一般性请求(而不是针对用户特定信息的请求)传输到用户设备1204的上述示例中,用户设备1204响应于接收到一般性请求,检索与用户语音输入相关联的上下文信息(例如,表示上下文信息的数据)并将其传输到用户设备1202。在一些示例中,用户设备1204从用户设备1204的存储器检索上下文信息。在一些示例中,用户设备1204从一个或多个服务器检索上下文信息。
在一些示例中,所请求的用户特定信息由存储在用户设备1204上的软件应用程序(例如,第三方软件应用程序)存储(例如,本地或远程存储)。在这些示例中,用户设备1204向软件应用程序发出对期望的用户特定信息的请求,软件应用程序(例如,从用户设备1204的存储器和/或从一个或多个服务器)检索该用户特定信息,然后软件应用程序向用户设备1204提供所请求的用户特定信息。在从软件应用程序接收到所请求的用户特定信息之后,用户设备1204将用户特定信息传输到用户设备1202。例如,如果用户设备1204从用户设备1202接收到对用户特定日历信息的请求(例如,对具体日期的用户日历条目的请求、对所有用户日历条目的请求等),则用户设备1204可向第三方日历软件应用程序发出对用户特定日历信息的请求。响应于此类请求,日历软件应用程序可从一个或多个第三方远程服务器检索所请求的用户特定信息,随后将所检索的用户特定信息提供给用户设备1204。用户设备1204可随后将用户特定日历信息传输到用户设备1202。用户设备1204可从存储在用户设备1204上的软件应用程序(例如,第三方软件应用程序)请求的用户特定信息的其他示例包括(但不限于)用户特定音乐信息、餐厅信息、位置信息、体育信息、消息传送信息和上文所述的任何其他类型的用户特定信息。
在一些示例中,用户设备1204将所请求的用户特定信息和/或上下文信息传输到一个或多个服务器(而不是用户设备1202)。在这些示例中,一个或多个服务器随后将用户特定信息和/或上下文信息中继到用户设备1202。
在从用户设备1204接收到用户特定信息(或在一些示例中,上下文信息)之后,用户设备1202基于用户语音输入(例如,用户语音输入的自然语言处理结果)、所接收的用户特定信息(或上下文信息)的至少一部分以及存储在用户设备1202上的与用户语音输入相关联的用户特定信息(或上下文信息)的至少一部分获得数字助理响应。例如,如果用户输入是“嘿,Siri,找个时间给John和我开会”,则用户设备可基于用户语音输入的自然语言处理结果、从用户设备1204接收的用户特定日历信息以及存储在用户设备1202上的用户特定日历信息获得数字助理响应“你和John在下午5:30都有空”。
在一些示例中,获得数字助理响应包括用户设备1202执行用户语音输入的自然语言处理、确定要执行的一个或多个任务(例如,基于自然语言处理的结果)、基于从用户设备1204接收的用户特定信息的至少一部分和/或存储在用户设备1202上的与用户语音输入相关联的用户特定信息的至少一部分来执行一个或多个任务(例如,执行搜索、检索数据、执行文本到语音处理等),以及基于一个或多个任务的执行结果来确定数字助理响应。
在一些示例中,用户设备1202执行的一个或多个任务包括将从用户设备1204接收的用户特定信息(或上下文信息)的至少一部分与存储在用户设备1202上的与用户语音输入相关联的用户特定信息(或上下文信息)的至少一部分进行比较。例如,用户设备1202可将从用户设备1204接收的用户特定日历信息与存储在用户设备1202上的用户特定日历信息进行比较,以确定两个设备的用户的共同可用会议时间。又如,用户设备1202可将从用户设备1204接收的用户特定音乐信息(例如,最近播放的歌曲数据)与存储在用户设备1202上的对应用户特定音乐信息进行比较,以确定两个设备的用户都喜欢听的共同歌曲和/或音乐风格。
在一些示例中,获得数字助理响应包括用户设备1202将以下项传输到一个或多个服务器(例如,DA服务器106):(1)用户语音输入(例如,表示用户语音输入的音频数据)、(2)从用户设备1204接收的用户特定信息的至少一部分和/或(3)存储在用户设备1202上的与用户语音输入相关联的用户特定信息的至少一部分。然后,在这些示例中的一些示例中,用户设备1202随后从一个或多个服务器接收数字助理响应(例如,在一个或多个服务器执行用户语音输入的自然语言处理并执行一个或多个任务以基于所接收的用户特定信息确定数字助理响应之后)。在其他示例中,在用户设备1202将用户语音输入和/或用户特定信息传输到一个或多个服务器之后,用户设备1202从一个或多个服务器接收执行一个或多个任务的一个或多个命令(例如,基于从用户设备1204接收的日历信息与存储在用户设备1202上的日历信息的比较来找到会议时间的命令)。在一些示例中,在响应于一个或多个命令而执行一个或多个任务之后,用户设备1202基于一个或多个所执行任务的结果来确定数字助理响应(例如,基于由用户设备1202确定的一个或多个可用会议时间来确定数字助理响应)。在其他示例中,在响应于一个或多个命令而执行一个或多个任务之后,用户设备1202将一个或多个所执行任务的结果(例如,表示结果的数据)传输到一个或多个服务器。然后,一个或多个服务器基于该结果确定数字助理响应并且随后将数字助理响应(例如,表示数字助理响应的文本和/或音频数据)传输到用户设备1202。
如上所述,在一些示例中,用户设备1204传输到用户设备1202的用户特定信息包括由存储在用户设备1204上的软件应用程序存储(例如,本地或远程存储)的用户特定信息。在这些示例中的一些示例中,获得数字助理响应还包括用户设备1202(或在一些示例中,一个或多个服务器)对从用户设备1204接收的用户特定信息进行处理,之后再使用该用户特定信息的至少一部分来确定数字助理响应。例如,用户设备1202可重新格式化从用户设备1204接收的用户特定信息,因为该信息的格式不是用户设备1202的原生格式(例如,该信息是第三方软件应用程序使用的独有格式)。又如,用户设备1202可从接收自用户设备1204的全部用户特定信息(例如,用户设备1204的用户的所有日历条目数据)中提取某些信息(例如,具体日期的日历条目)。然后,在处理用户特定信息之后,用户设备1202(或在一些示例中,一个或多个服务器)可使用经处理的信息的至少一部分(连同存储在用户设备1202上的用户特定信息一起)来获得一个或多个数字助理响应(例如,如上所述)。
在一些示例中,用户设备1202基于对应于向用户设备1204提供用户特定信息的软件应用程序的一个或多个协议来处理从用户设备1204接收的用户特定信息。在一些示例中,一个或多个协议存储在用户设备1202上(例如,存储在存储器202或存储器470中)。在一些示例中,当传输用户特定信息时,用户设备1204向用户设备1202传输一个或多个协议(例如,对应于一个或多个协议的数据)。在一些示例中,用户设备1204从向用户设备1204提供用户特定信息的软件应用程序接收用于处理用户特定信息的一个或多个协议。例如,当软件应用程序安装到用户设备1204上时,软件应用程序向用户设备1204提供一个或多个协议。又如,软件应用程序在其提供用户特定信息时向用户设备1204提供一个或多个协议。
在其中一个或多个服务器确定数字助理响应或一个或多个命令的上述示例中的一些示例中,用户设备1202将用户特定信息连同用于处理用户特定信息的一个或多个协议一起传输到一个或多个服务器。在这些示例中,一个或多个服务器基于一个或多个协议来处理用户特定信息,然后基于经处理的用户特定信息来确定数字助理响应或一个或多个命令。在其他示例中,用户设备1202基于一个或多个协议来处理用户特定信息,然后将经处理的用户特定信息提供给一个或多个服务器,使得一个或多个服务器可确定数字助理响应或一个或多个命令。
在一些示例中,数字助理响应包括对应于由用户设备1202(和/或一个或多个服务器)基于用户语音输入、从用户设备1204接收的用户特定信息的至少一部分和/或来自用户设备1202的用户特定信息的至少一部分执行的任务的自然语言表达。例如,如果用户语音输入是“嘿,Siri,放一首我们喜欢的歌”,则数字助理响应可包括自然语言表达“好的。播放Metallica的Enter Sandman”。在该示例中,自然语言表达“好的。播放Metallica的EnterSandman”对应于例如以下任务:比较来自用户设备1204和用户设备1202的用户特定音乐信息(例如,最近播放的歌曲数据),基于用户特定信息选择歌曲(例如,两个用户设备最近播放的歌曲),以及提供歌曲的数据(例如,信息性数据,诸如歌名和歌手、歌曲的音频数据等)。在一些示例中,数字助理响应包括由用户设备1202(和/或一个或多个服务器)检索和/或确定的数据(例如,网站超链接、图像、音乐信息、音频数据、视频数据、导航信息、所存储的联系人信息、天气信息等)。例如,以上示例中的数字助理响应包括音乐信息(例如,歌名“Enter Sandman”、歌手名“Metallica”,以及对应于歌曲的音频数据(例如,当数字助理响应包括播放所确定歌曲的音频数据时))。
在一些示例中,用户设备1202(或在一些示例中,一个或多个服务器)获得两个或更多个数字助理响应而不是单个数字助理响应。在这些示例中的一些示例中,两个或更多个数字助理响应中的每个数字助理响应基于来自参与视频通信会话的单独用户设备的用户特定信息(或上下文信息)。例如,响应于用户语音输入“John和我到达帕罗奥图需要多长时间?”,用户设备1202(或一个或多个服务器)可基于来自用户设备1204的上下文信息(具体地,当前位置数据)获得诸如“John到达帕罗奥图需要20分钟”的第一数字助理响应并且基于来自用户设备1202的上下文信息(具体地,当前位置数据)获得诸如“你到达帕罗奥图需要30分钟”的第二数字助理响应。
如箭头1214所示,用户设备1202将数字助理响应和与用户语音输入相关联的用户特定信息(例如,表示数字助理响应和用户特定信息的数据)提供给用户设备1204。用户设备1202以与用户设备802和用户设备804提供第一数字助理响应和第二数字助理响应和对应上下文信息相同的方式(分别根据上文参考图8的箭头810和箭头816所述的各种示例)提供数字助理响应和用户特定信息。
例如,用户设备802和用户设备804(当在上述各种示例中提供数字助理响应时)提供的不同类型的上下文信息也可在该步骤处由用户设备1202提供。虽然箭头1214表示提供用户特定信息的用户设备1202,但如上所述,用户特定信息是上下文信息的一个类型(或子集)。因此,当用户设备1202提供与用户语音输入相关联的不同类型的上下文信息时(如上文参考图8的箭头810和箭头816所述),这包括提供与用户语音输入相关联的用户特定信息。注意,在一些示例中,用户设备1202仅提供用于确定数字助理响应的用户特定信息和/或上下文信息。在其他示例中,用户设备1202提供与用户语音输入相关联的所有用户特定信息和/或上下文信息(即使其不一定用于确定数字助理响应)。例如,即使来自对话历史的信息不用于确定数字助理响应,用户设备1202也可在视频通信会话(包括用户语音输入)期间提供用户设备1202的数字助理与用户设备1202的用户之间的对话历史。
类似地,用户设备1202可根据上文参考图8的箭头810和箭头816所述的提供数字助理响应和上下文信息的不同方式来提供数字助理响应和用户特定信息(和/或上下文信息)。具体地,如图12所示,用户设备1202将数字助理响应(例如,对应于数字助理响应的数据)和用户特定信息(例如,以对等方式)直接传输到用户设备12004。例如,当发起用户设备802和用户设备1204参与的视频通信会话时,用户设备1202可经由在这两个设备之间建立的音频流将数字助理响应传输到用户设备1204。另选地,在一些示例中,向用户设备1204提供数字助理响应和用户特定信息包括用户设备1202将数字助理响应和用户特定信息(例如,表示数字助理响应和用户特定信息的数据)传输到一个或多个服务器。在这些示例中,一个或多个服务器随后将数字助理响应和用户特定信息传输到用户设备1204。
用户设备1202还可根据不同形式(例如,数据类型)来提供数字助理响应,其中在上文参考图8的箭头810和箭头816所述的各种示例中提供数字助理响应。例如,用户设备1202可经由音频流(例如,当发起用户设备1202和用户设备1204参与的视频通信会话时在这两个设备之间建立的音频流)将数字助理响应作为音频数据传输到用户设备1204(或在一些示例中,一个或多个服务器)。又如,用户设备1202将数字助理响应作为文本数据(例如,数字助理响应的文本表示)传输到用户设备1204。又如,用户设备1202向用户设备1204提供执行一个或多个任务的命令。在这些示例中,用户设备1204响应于接收到命令而执行一个或多个任务并且随后基于一个或多个任务的执行结果来获得数字助理响应。
如上所述,在一些示例中,用户设备1202基于用户语音输入、从用户设备1204接收的用户特定信息的至少一部分和/或存储在用户设备1202上的用户特定信息来确定两个或更多个数字助理响应(而不是单个数字助理响应)。在这些示例中,用户设备1202将两个或更多个数字助理响应(例如,表示两个或更多个数字助理响应的音频数据和/或文本数据)提供给用户设备1204。
在一些示例中,用户设备1204使用由用户设备1202提供的用户特定信息(和/或上下文信息)的至少一部分来确定对第二用户语音输入的第二数字助理响应(例如,并且因此产生参与视频通信会话的单个数字助理的表像(例如,如上文参考图8的箭头814所述))。
如箭头1216所示,用户设备1202和/或用户设备1204输出数字助理响应。用户设备1202和/或用户设备1204以与用户设备802和/或用户设备804输出第一数字助理响应和第二数字助理响应相同的方式(分别根据上文参考图8的箭头812和箭头818所述的各种示例)输出数字助理响应。
如上所述,在一些示例中,用户设备1202将两个或更多个数字助理响应提供给用户设备1204。在这些示例中,用户设备1202和/或用户设备1204以上述各种方式中的任一种方式输出两个或更多个数字助理响应(一个数字助理响应后面接着另一个数字助理响应)。例如,如果用户语音输入是“John和我到达帕罗奥图需要多长时间?”,用户设备1202和/或用户设备1204可输出(例如,作为音频输出和/或作为显示器上的文本)第一数字助理响应,诸如“对John来说到帕罗奥图的交通拥堵,我估计经由I-280北线需要1小时。”,然后输出第二数字助理响应,诸如“对你来说到帕罗奥图的交通顺畅,我估计经由El Camino Real需要16分钟。”。
7.用于在至少两个用户设备之间的视频通信会话期间提供数字助理的过程
图13A至图13C示出了根据各种示例的表示用于在视频通信会话期间提供上下文感知数字助理响应的过程的流程图。例如,使用实现数字助理的一个或多个电子设备来执行过程1300。在一些示例中,使用客户端-服务器系统(例如,系统100)来执行过程1300,并且在服务器(例如,DA服务器106)与客户端/用户设备之间以任何方式来划分过程1300的框。在其他示例中,在服务器与多个客户端设备(例如,移动电话和智能手表)之间划分过程1300的框。因此,虽然过程1300的部分在本文中被描述为由客户端-服务器系统的特定设备执行,但应当理解,过程1300不限于此。在其他示例中,使用仅客户端设备(例如,用户设备104)或仅多个客户端设备来执行过程1300。在过程1300中,一些框被任选地组合,一些框的次序被任选地改变,并且一些框被任选地省略。在一些示例中,可结合过程1300来执行附加步骤。
在一些示例中,过程1300(或过程1300的至少一部分)在至少两个用户设备之间的视频通信会话(例如,视频会议)期间执行(例如,如箭头806所示)。
在框1302处,(参与视频通信会话的至少两个用户设备中的)第一用户设备(例如,用户设备802)接收第一用户输入(例如,如箭头808所示)。在一些示例中,第一用户输入表示对第一用户设备的数字助理执行任务的用户请求(例如,“嘿,Siri,帕罗奥图天气怎么样?”)。
在框1304处,在一些示例中,第一用户设备使用第一音频流将第一用户输入传输到(参与视频通信会话的至少两个用户设备中的)第二用户设备(例如,用户设备804)。
在框1306处,第一用户设备基于第一用户输入获得第一数字助理响应。在一些示例中,第一数字助理响应包括对应于由第一用户设备的数字助理基于第一用户输入执行的任务的自然语言表达(例如,“帕罗奥图当前为90度”对应于确定帕罗奥图天气的任务)。在一些示例中,第一数字助理响应包括由第一用户设备的数字助理检索和/或确定的数据(例如,网站超链接、图像、视频、联系人信息等)。
在一些示例中,获得第一数字助理响应包括执行第一用户输入的自然语言处理(例如,在第一用户设备处或在一个或多个服务器处)。在一些示例中,获得第一数字助理响应包括从一个或多个服务器(例如,DA服务器106)接收第一数字助理响应(例如,当一个或多个服务器执行第一用户输入的自然语言处理时)。
在一些示例中,基于第一用户输入获得第一数字助理响应包括第一用户设备基于第一用户输入执行一个或多个任务,如框1308所示。在一些示例中,基于用户输入执行一个或多个任务包括将第一用户输入传输到一个或多个服务器、从一个或多个服务器接收执行任务的命令(例如,执行搜索以确定帕罗奥图的当前温度的命令)和/或基于所接收的命令来执行任务。
在一些示例中,基于第一用户输入获得第一数字助理响应还包括第一用户设备基于一个或多个任务的执行结果来确定第一数字助理响应(例如,基于经由搜索获得的当前温度信息来确定第一数字助理响应),如框1310所示。
在一些示例中,在框1312处,第一用户设备确定与第一用户输入相关联的上下文信息是否包括存储在第一用户设备上的隐私信息。在一些示例中,隐私信息包括与第一用户设备的用户相关联的个人信息(例如,用户的SSN、电子邮件地址、个人家庭地址、健康记录等)。在一些示例中,隐私信息包括存储在第一用户设备上的联系人的个人信息(例如,所存储的联系人的家庭地址、电子邮件地址、电话号码等)。
在一些示例中,在框1314处,根据确定上下文信息包括存储在第一用户设备上的隐私信息,第一用户设备从与第一用户输入相关联的上下文信息中移除隐私信息的至少一部分,如框1316所示。在一些示例中,隐私信息的至少一部分包括未在用户输入中具体请求的隐私信息(例如,如果用户输入仅请求数字助理呼叫所存储的联系人的电话号码,则从上下文信息中移除所存储的联系人的电子邮件地址)。然后,第一用户设备将第一数字助理响应和与第一用户输入相关联的剩余上下文信息提供给第二用户设备,如框1318所示。
在框1320处,第一用户设备向第二用户设备提供第一数字助理响应和与第一用户输入相关联的上下文信息(例如,如箭头810所示)。在一些示例中,与第一用户输入相关联的上下文信息包括接收到第一用户输入时第一用户设备的当前位置(例如,帕罗奥图)、第一用户设备的数字助理与第一用户设备的用户之间的对话历史(例如,第一用户输入、视频通信会话期间的先前用户输入和/或视频通信会话期间的先前数字助理响应)和/或类似信息。
在一些示例中,向第二用户设备提供第一数字助理响应和与第一用户输入相关联的上下文信息包括将第一数字助理响应和与第一用户输入相关联的上下文信息传输到第二用户设备,如框1322所示。在一些示例中,向第二用户设备提供第一数字助理响应和上下文信息包括将第一数字助理响应和与第一用户输入相关联的上下文信息传输到一个或多个服务器,其中一个或多个服务器随后将第一数字助理响应和与第一用户输入相关联的上下文信息传输到第二用户设备。
在一些示例中,第一用户设备使用第一音频流将第一数字助理响应传输到第二用户设备,如框1324所示。
在框1326处,第一用户设备输出第一数字助理响应(例如,如箭头812所示)。在一些示例中,输出第一数字助理响应包括将第一数字助理响应输出为第一用户的扬声器处的音频输出。在一些示例中,输出第一数字助理响应包括在第一用户设备的显示器上显示第一数字助理响应(例如,由数字助理检索和/或确定的数据)。
在一些示例中,第二用户设备还输出第一数字助理响应,如框1328所示。在一些示例中,第二用户设备在接收到第二用户输入之前输出第一数字助理响应(例如,如箭头812所示),如框1330所示。
在一些示例中,在框1332处,在接收第二数字助理响应之前,第一用户设备从第二用户设备接收第二用户输入(例如,从第二用户设备的用户接收用户输入(例如,如箭头814所示))。在一些示例中,从第二用户设备接收第二用户输入(例如,经由电信网络、使用第一音频流等)。在一些示例中,从一个或多个服务器接收第二用户输入。
在一些示例中,在框1334处,第一用户设备输出第二用户输入(例如,作为第一用户的扬声器处的音频输出)。
在一些示例中,在框1336处,在接收第二数字助理响应之前,第一用户设备接收第二用户设备的数字助理已被调用的指示(例如,消息或信号)。
在一些示例中,在框1338处,第一用户设备接收第三用户输入(例如,调用第一用户设备的数字助理的用户输入)。
在一些示例中,在框1340处,第一用户设备基于所接收的指示确定第二用户设备的数字助理是否在接收第三用户输入之前被调用。
在一些示例中,在框1342处,根据确定第二用户设备的数字助理在接收第三用户输入之前被调用,第一用户设备放弃基于第三用户输入获得第三数字助理响应。
在框1344处,第一用户设备接收第二数字助理响应(例如,“到帕罗奥图的交通一般,因此经由US-101南线应耗时20分钟。”或“纽约当前为90度。”)以及与第二用户输入相关联的上下文信息(例如,如箭头816所示),其中第二用户输入(例如,“开车到那里需要多长时间?”或“纽约呢?”)在第二用户设备处接收(例如,如箭头814所示),并且其中基于第二用户输入和与第一用户输入相关联的上下文信息来确定第二数字助理响应。在一些示例中,与第二用户输入相关联的上下文信息包括接收到第二用户输入时第二用户设备的当前位置、第二用户设备的数字助理与第二用户设备的用户之间的对话历史(例如,第二用户输入、视频通信会话期间的先前用户输入和/或视频通信会话期间的先前数字助理响应)和/或类似信息。
在一些示例中,第一用户设备从第二用户设备接收第二数字助理响应和与第二用户输入相关联的上下文信息,如框1346所示。在一些示例中,第一用户设备使用第一音频流(从第二用户设备)接收第二数字助理响应,如框1348所示。在一些示例中,第一用户设备从一个或多个服务器接收第二数字助理响应和与第二用户输入相关联的上下文信息。
在一些示例中,第二用户设备的数字助理使用与第一用户输入相关联的上下文信息来消除第二用户输入的歧义,如框1350所示。在一些示例中,消除第二用户输入的歧义包括基于与第一用户输入相关联的上下文信息来确定第二用户输入的一个或多个参数。在一些示例中,消除第二用户输入的歧义包括使用第一用户输入的参数(例如,第一用户输入中包括的位置、联系人姓名、网站、电子邮件地址等)来执行任务(例如,导航到帕罗奥图而不是天气确定)。在一些示例中,消除第二用户输入的歧义包括确定第二用户输入表示第二用户设备的数字助理使用第二用户输入中提供的参数(例如,第一用户输入中包括的位置(例如,“纽约”)、联系人姓名、网站、电子邮件地址等)来执行第一用户设备的数字助理先前执行的任务(例如,天气确定)的用户请求。
在一些示例中,在第一用户设备接收到第二数字助理响应之后,第二用户设备输出第二数字助理响应(例如,如箭头818所示),如框1352所示。
在框1354处,第一用户设备输出第二数字助理响应(例如,如箭头818所示)。在一些示例中,输出第二数字助理响应包括将第二数字助理响应输出为第一用户设备的扬声器处的音频输出。在一些示例中,输出第二数字助理响应包括在第一用户设备的显示器上显示第二数字助理响应(例如,由数字助理检索和/或确定的数据)。
在一些示例中,在框1356处,第一用户设备接收第四用户输入(例如,用户语音输入、对所显示的示能表示(例如,对话静音示能表示或私密数字助理对话示能表示)的选择或物理按钮按压)。
在一些示例中,在框1358处,根据确定第四用户输入表示提供私密数字助理请求的用户意图,第一用户设备接收第五用户输入(例如,“嘿,Siri,帕罗奥图天气怎么样?”),如框1360所示。然后,在一些示例中,第一用户设备基于第五用户输入获得第四数字助理响应,如框1362所示。在一些示例中,获得第四数字助理响应包括执行第五用户输入的自然语言处理(例如,在第一用户设备处或在一个或多个服务器处)。在一些示例中,获得第五数字助理响应包括从一个或多个服务器接收第四数字助理响应(例如,当一个或多个服务器执行第五用户输入的自然语言处理时)。在一些示例中,获得第四数字助理响应包括从一个或多个服务器接收执行任务(例如,确定帕罗奥图的当前温度的搜索)的命令、基于命令执行任务和/或基于所执行任务的结果确定第四数字助理响应(例如,基于经由搜索获得的当前温度信息确定第四数字助理响应)。
在一些示例中,在获得第四数字助理响应之后,第一用户设备放弃向第二用户设备提供第四数字助理响应和与第五用户输入相关联的上下文信息,如框1364所示。然后,在一些示例中,第一用户设备还输出第四数字助理响应,如框1366所示。在一些示例中,输出第四数字助理响应包括将第四数字助理响应输出为第一用户设备的扬声器处的音频输出。在一些示例中,输出第四数字助理响应包括在第一用户设备的显示器上显示第四数字助理响应(例如,由数字助理检索和/或确定的数据)。
图14A至图14B示出了根据各种示例的表示用于基于在参与视频通信会话的用户设备处接收的用户语音输入来确定候选数字助理任务的过程的流程图。例如,使用实现数字助理的一个或多个电子设备来执行过程1400。在一些示例中,使用客户端-服务器系统(例如,系统100)来执行过程1400,并且在服务器(例如,DA服务器106)和客户端设备之间以任何方式来划分过程1400的框。在其他示例中,在服务器和多个客户端设备(例如,移动电话和智能手表)之间划分过程1400的框。因此,虽然过程1400的部分在本文中被描述为由客户端-服务器系统的特定设备执行,但应当理解,过程1400不限于此。在其他示例中,使用仅客户端设备(例如,用户设备104)或仅多个客户端设备来执行过程1400。在过程1400中,一些框被任选地组合,一些框的次序被任选地改变,并且一些框被任选地省略。在一些示例中,可结合过程1400来执行附加步骤。
在一些示例中,过程1400(或过程1400的至少一部分)在至少两个用户设备之间的视频通信会话(例如,视频会议)期间执行(例如,如箭头1008所示)。
在框1402处,至少两个用户设备中的第一用户设备(例如,用户设备1002)接收用户语音输入(例如,如箭头1010所示)。在一些示例中,第一用户输入调用第一用户设备的数字助理。在一些示例中,第一用户输入不调用第一用户设备的数字助理。
在框1404处,第一用户设备基于用户语音输入生成文本表示。
在框1406处,第一用户设备将文本表示传输到一个或多个服务器(例如,服务器1006)(例如,如箭头1012所示)。在一些示例中,文本表示被传输到一个或多个服务器,使得一个或多个服务器可将文本表示包括在共享转录中(例如,存储在一个或多个服务器上的对应于所建立的语音通信会话并且包括一个或多个文本表示的共享注释或文件)。
在框1408处,第一用户设备从一个或多个服务器接收共享转录(例如,如箭头1016所示),其中共享转录包括用户语音输入的文本表示和由至少两个用户设备中的第二用户设备(例如,用户设备1004)生成的一个或多个附加文本表示,并且其中一个或多个附加文本表示对应于在视频通信会话期间在第二用户设备处接收的一个或多个用户语音输入(例如,基于在第一用户设备接收用户语音输入之前和/或之后在第二用户设备处接收的一个或多个用户语音输入而生成的文本表示)。在一些示例中,第二用户设备还从一个或多个服务器接收共享转录(例如,如箭头1018所示)。
在一些示例中,共享转录还包括在视频通信会话期间提供的数字助理响应的文本表示(例如,由第一用户设备的数字助理或第二用户设备的数字助理确定/提供的数字助理响应),如框1410所示。在一些示例中,在视频通信会话期间提供的数字助理响应基于在第二用户设备处接收的一个或多个用户语音输入中的用户语音输入,如框1412所示。
在一些示例中,在框1414处,第一用户设备在第一用户设备的显示器上显示包括在共享转录中的文本表示(或包括在共享转录中的文本表示的至少一个文本表示)。在一些示例中,包括在共享转录中的文本表示显示为覆盖视频通信会话的用户界面(例如,作为实时转录本1108),如框1416所示。
在框1418处,第一用户设备基于包括在共享转录中的文本表示确定可由第一用户设备的数字助理执行的一个或多个候选任务(例如,设置提醒、创建日历事件、设置警报、创建新联系人、向第三方应用程序请求服务(例如,使用Uber应用程序请求Uber汽车)等)。在一些示例中,确定一个或多个候选任务包括执行包括在共享转录中的文本表示的自然语言处理(例如,在第一用户设备处或在一个或多个服务器处),以及基于自然语言处理的结果来确定一个或多个候选任务。
在一些示例中,在框1420处,在呈现一个或多个候选任务之前,第一用户设备接收用户输入(例如,用户语音输入、对所显示的示能表示(例如,对话静音示能表示或私密数字助理对话示能表示)的选择或物理按钮按压)。
在一些示例中,在框1422处,根据确定用户输入表示提供私密数字助理请求的用户意图,第一用户设备接收第二用户语音输入(例如,“嘿,Siri,帕罗奥图天气怎么样?”),如框1424所示。然后,在一些示例中,第一用户设备基于第二用户语音输入获得数字助理响应,如框1426所示。
在一些示例中,在基于第二用户语音输入获得数字助理响应之后,第一用户设备放弃向一个或多个服务器传输第二用户语音输入的文本表示和数字助理响应的文本表示(例如,使得第二用户语音输入和数字助理响应都不包括在共享转录中),如框1428所示。然后,在一些示例中,第一用户设备输出数字助理响应(例如,作为使用第一用户设备的扬声器的音频输出),如框1430所示。
在框1432处,第一用户设备呈现一个或多个候选任务(例如,如箭头1020所示)。
在一些示例中,第一用户设备在视频通信会话期间呈现一个或多个候选任务(例如,作为第一用户设备的文本消息传送应用程序内的文本消息和/或作为来自第一用户设备的数字助理的通知(例如,横幅通知、通知历史界面中的通知等)),如框1434所示。在一些示例中,响应于表示请求一个或多个候选任务的用户意图的用户语音输入(例如,“嘿,Siri,我该做什么?”),第一用户设备在视频通信会话期间呈现一个或多个候选任务。
在一些示例中,在视频通信会话结束之后,第一用户设备以音频输出呈现一个或多个候选任务(例如,具有或不具有对应的用户界面),其中音频输出请求关于一个或多个候选任务的用户输入(例如,请求用户确认一个或多个候选任务,请求用户选择一个或多个候选任务中的至少一个候选任务以供数字助理执行,请求执行一个或多个候选任务中的候选任务的用户许可),如框1436所示。在一些示例中,响应于表示请求一个或多个候选任务的用户意图的用户语音输入(例如,“嘿,Siri,我该做什么?”),第一用户设备在视频通信会话之后呈现一个或多个候选任务。
在一些示例中,在视频通信会话结束之后,第一用户设备将一个或多个候选任务(例如,在锁定屏幕界面中)呈现为一个或多个任务建议。
图15A至图15B示出了根据各种示例的表示用于在视频通信会话期间提供对公共数字助理请求的数字助理响应的过程的流程图。例如,使用实现数字助理的一个或多个电子设备来执行过程1500。在一些示例中,使用客户端-服务器系统(例如,系统100)来执行过程1500,并且在服务器(例如,DA服务器106)与客户端设备之间以任何方式来划分过程1500的框。在其他示例中,在服务器与多个客户端设备(例如,移动电话和智能手表)之间划分过程1500的框。因此,虽然过程1500的部分在本文中被描述为由客户端-服务器系统的特定设备执行,但应当理解,过程1500不限于此。在其他示例中,使用仅客户端设备(例如,用户设备104)或仅多个客户端设备来执行过程1500。在过程1500中,一些框被任选地组合,一些框的次序被任选地改变,并且一些框被任选地省略。在一些示例中,可结合过程1500来执行附加步骤。
在一些示例中,过程1500(或过程1500的至少一部分)在至少两个用户设备之间的视频通信会话(例如,视频会议、虚拟现实视频会话等)期间执行(例如,如箭头1206所示)。
在框1502处,至少两个用户设备中的第一用户设备接收第一用户输入(例如,“嘿,Siri,找个时间给我们开会。”或“嘿,Siri,放一首John和我都喜欢的歌。”)(例如,如箭头1208所示)。
在一些示例中,在框1504处,在接收到第一用户语音输入之后,第一用户设备将第一用户语音输入(例如,作为经由音频流的音频数据或作为文本数据)传输到至少两个用户设备中的第二用户设备(例如,用户设备1204)。
在一些示例中,在框1506处,响应于接收到第一用户语音输入并在确定第一用户语音输入是否表示公共数字助理请求(例如,在下面的框1514处)之前,第一用户设备确定第一用户语音输入是否包括数字助理触发词(例如,“嘿,Siri...”)。在一些示例中,根据确定第一用户语音输入包括数字助理触发词,在框1508处,第一用户设备确定第一用户设备当前是否持有数字助理调用许可(例如,在视频通信会话期间调用数字助理所需的“接力棒”)。每次只有一个参与视频通信会话的用户设备可持有数字助理调用许可。
在一些示例中,根据确定第一用户设备当前持有数字助理调用许可,第一用户设备确定第一用户语音输入是否表示公共数字助理请求(例如,在下面的框1514处)。
在一些示例中,根据确定第一用户设备当前不持有数字助理调用许可,在框1510处,第一用户设备向第二用户设备传输请求以使第二用户设备向第一用户设备提供数字助理调用许可。在一些示例中,在框1512处,第一用户设备响应于在预定时间段(例如,0.5秒、1秒或2秒)内未从第二用户设备接收到数字助理调用许可而放弃确定第一用户语音输入是否表示公共数字助理请求。在一些示例中,第一用户设备从第二用户设备接收请求被拒绝,并且响应于接收到请求被拒绝而放弃确定第一用户语音输入是否表示公共数字助理请求。在一些示例中,在放弃确定第一用户语音输入是否表示公共数字助理请求之后,第一用户设备显示第一用户设备的数字助理当前不可用或第二用户设备的数字助理当前被调用的指示。
在一些示例中,第一用户设备响应于从第二用户设备接收到数字助理调用许可而确定第一用户语音输入是否表示公共数字助理请求(例如,在下面的框1514处)。
在框1514,第一用户设备基于与参与视频通信会话的至少两个用户设备相关联的上下文信息(例如,用户特定信息/数据)确定第一用户语音输入是否表示公共数字助理请求(例如,对第一用户设备的数字助理执行任务的用户请求)。在一些示例中,确定第一用户语音输入是否表示公共数字助理请求包括确定来自参与视频通信会话的至少两个用户设备的上下文信息是否可用于满足用户请求(例如,以执行与用户请求相关联的一个或多个任务)。在一些示例中,确定第一用户语音输入是否表示公共数字助理请求包括确定第一用户语音输入是否引用视频通信会话的多个参与者(例如,基于第一用户语音输入包括两个或更多个视频通信会话参与者的适当名称(例如,所存储的联系人姓名),基于第一用户语音输入包括视频通信会话参与者的至少一个适当名称和第一人称单数代词(例如,“我(I或me)”),和/或基于第一用户语音输入包括至少一个复数代词(例如,“我们(us)”、“他们(they)”、“他们(them)”、“两者”、“我们的”和/或“我们(we)”)。
在框1516处,根据确定第一用户语音输入表示公共数字助理请求,第一用户设备向第二用户设备传输请求以使第二用户设备向第一用户设备提供与第一用户语音输入相关联的上下文信息(例如,如箭头1210所示)。在一些示例中,对与第一用户语音输入相关联的上下文信息的请求是对第二用户设备提供特定上下文信息(例如,具体日期的用户特定日历条目)的请求。在一些示例中,对与第一用户语音输入相关联的上下文信息的请求是对第二用户设备基于公共数字助理请求的域(例如,基于“餐厅预订”域的用户特定餐厅信息和/或偏好(例如,最近访问的餐厅、喜爱的餐厅等),基于“音乐播放”域的用户特定音乐信息和/或偏好(例如,最近播放的歌曲、喜爱的歌曲等),基于“安排会议”域的用户特定日历信息(例如,所有用户特定日历信息,不是针对具体日期))来提供特定类型的上下文信息的请求。在一些示例中,对与第一用户语音输入相关联的上下文信息的请求是对第二用户设备提供存储在第二用户设备上的所有用户特定信息和/或偏好的请求。
在框1518处,第一用户设备从第二用户设备接收与第一用户语音输入相关联的上下文信息(例如,如箭头1212所示)。在一些示例中,从第二用户设备接收的上下文信息包括用户特定日历数据、用户特定音乐偏好数据、用户特定餐厅偏好数据和第二用户设备的当前位置中的至少一者。在一些示例中,从第二用户设备接收的上下文信息包括由存储在第二用户设备上的软件应用程序(例如,第三方软件应用程序(例如,Google日历))存储的上下文信息。
在框1520处,第一用户设备至少基于从第二用户设备接收的上下文信息的一部分和存储在第一用户设备上的与第一用户语音输入相关联的上下文信息的至少一部分获得第一数字助理响应。在一些示例中,获得第一数字助理响应还包括处理从第二用户设备接收的上下文信息以外推满足公共数字助理请求所需的上下文信息。
在一些示例中,在框1522处,获得第一数字助理响应包括第一用户设备基于第一用户语音输入、从第二用户设备接收的上下文信息的至少一部分以及存储在第一用户设备上的与第一用户语音输入相关联的上下文信息的至少一部分来执行一个或多个任务。在一些示例中,执行一个或多个任务包括将至少第一用户语音输入(例如,对应于第一用户语音输入的音频数据)传输到一个或多个服务器并且随后从一个或多个服务器接收一个或多个命令以执行一个或多个任务。在这些示例的一些示例中,一个或多个服务器至少基于第一用户语音输入的自然语言处理结果来确定一个或多个命令。在一些示例中,在框1524处,第一用户设备基于一个或多个任务的执行结果来确定第一数字助理响应。
在一些示例中,在框1526处,获得第一数字助理响应包括第一用户设备将从第二用户设备接收的上下文信息的至少一部分与存储在第一用户设备上的与第一用户语音输入相关联的上下文信息的至少一部分进行比较(例如,将与第二用户设备的用户相关联的日历信息和与第一用户设备的用户相关联的日历信息进行比较)。
在其中从第二用户设备接收的上下文信息包括由存储在第二用户设备上的软件应用程序(例如,第三方软件应用程序(例如,Google日历))存储的上下文信息的上述示例中的一些示例中,在框1528处,获得第一数字助理响应包括第一用户设备基于对应于软件应用程序的一个或多个协议来处理从第二用户设备接收的上下文信息。
在框1530处,第一用户设备向第二用户设备提供第一数字助理响应(例如,如箭头1214所示)。在一些示例中,向第二用户设备提供第一数字助理响应包括第一用户设备将第一数字助理响应直接传输到第二用户设备。在一些示例中,向第二用户设备提供第一数字助理响应包括第一用户设备将第一数字助理响应传输到一个或多个服务器。在这些示例中,一个或多个服务器随后将第一数字助理响应传输到第二用户设备。
在一些示例中,第一用户设备将第一数字助理响应作为文本数据(例如,第一数字助理响应的文本表示)提供给第二用户设备(和/或一个或多个服务器)。在一些示例中,第二用户设备执行文本数据的文本到语音处理以将第一数字助理响应输出为音频输出。
在一些示例中,第一用户设备经由音频流(例如,当第一用户设备和第二用户设备发起视频通信会话时在第一用户设备与第二用户设备之间建立的音频流)将第一数字助理响应作为音频数据提供给第二用户设备(和/或一个或多个服务器)。
在一些示例中,向第二用户设备提供第一数字助理响应使得第二用户设备输出第一数字助理响应(例如,作为音频输出)(例如,如箭头1216所示)。
在一些示例中,第一数字助理响应包括以下各项中的至少一者:对应于由第一用户设备的数字助理基于第一用户语音输入、从第二用户设备接收的上下文信息的至少一部分以及存储在第一用户设备上的与第一用户语音输入相关联的上下文信息的至少一部分执行的任务的自然语言表达;以及由第一用户设备的数字助理基于第一用户语音输入、从第二用户设备接收的上下文信息的至少一部分以及存储在第一用户设备上的与第一用户语音输入相关联的上下文信息的至少一部分检索的数据。
在一些示例中,在框1532处,提供第一数字助理响应还包括第一用户设备向第二用户设备提供存储在第一用户设备上的与第一用户语音输入相关联的上下文信息的至少一部分和/或不用于获得第一数字助理响应的(例如,与第一用户语音输入相关联的)附加上下文信息(例如,视频通信会话期间第一用户设备的数字助理对话历史)(如箭头1214所示)。在一些示例中,当第一用户设备向第二用户设备提供第一数字助理响应时,第一用户设备向第二用户设备提供存储在第一用户设备上的与第一用户语音输入相关联的上下文信息和/或附加上下文信息。在一些示例中,第二用户设备使用存储在第一用户设备上的与第一用户语音输入相关联的上下文信息和/或附加上下文信息来确定第二用户语音输入的第二数字助理响应(例如,以创建如上文参考图8所述的连续数字助理会话)。
在一些示例中,在框1534处,第一用户设备输出第一数字助理响应(例如,如箭头1216所示)。在一些示例中,输出第一数字助理响应包括第一用户设备将第一数字助理响应输出为(例如,第一用户的扬声器处的)音频输出。在一些示例中,第一用户设备基于第一用户设备的一个或多个预定义数字助理语言和/或数字助理语音设置将第一数字助理响应输出为音频输出。
在一些示例中,输出第一数字助理响应包括第一用户设备在第一用户设备的显示器上显示第一数字助理响应(例如,第一数字助理响应的文本表示和/或由数字助理检索和/或确定的数据)。在一些示例中,参与视频通信会话的用户设备中的每一者(例如,第一用户设备和第二用户设备)并发地输出第一数字助理响应(例如,在1秒或2秒的时间范围内)。
以上参考图13A至图13C、图14A至图14B以及图15A至图15B描述的操作任选地由图1至图4、图6A至图6B以及图7A至图7C中所描述的部件实现。例如,过程1300、过程1400和/或过程1500的操作可由系统100来实现。本领域的普通技术人员会清楚地知道如何基于在图1至图4、图6A至图6B和图7A至图7C中所描绘的部件来实现其他过程。
根据一些具体实施,提供一种计算机可读存储介质(例如,非暂态计算机可读存储介质),该计算机可读存储介质存储供电子设备的一个或多个处理器执行的一个或多个程序,该一个或多个程序包括用于执行本文所述方法或过程中的任一个的指令。
根据一些具体实施,提供了一种电子设备(例如,便携式电子设备),该电子设备包括用于执行本文所述的方法和过程中的任一者的装置。
根据一些具体实施,提供了一种电子设备(例如,便携式电子设备),该电子设备包括处理单元,该处理单元被配置为执行本文所述的方法和过程中的任一者。
根据一些具体实施,提供了一种电子设备(例如,便携式电子设备),该电子设备包括一个或多个处理器和存储用以由一个或多个处理器执行的一个或多个程序的存储器,该一个或多个程序包括用于执行本文所描述的方法和过程中的任一者的指令。
出于解释的目的,前面的描述是通过参考具体实施方案来描述的。然而,上面的例示性论述并非旨在是穷尽的或将本发明限制为所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择并描述这些实施方案是为了最好地解释这些技术的原理及其实际应用程序。本领域的其他技术人员由此能够最好地利用这些技术以及具有适合于所预期的特定用途的各种修改的各种实施方案。
虽然参照附图对本公开以及示例进行了全面的描述,但应当注意,各种变化和修改对于本领域内的技术人员而言将变得显而易见。应当理解,此类变化和修改被认为被包括在由权利要求书所限定的本公开和示例的范围内。
如上所述,本发明技术的一个方面是收集和使用可从各种来源获得的数据(例如,用户特定上下文信息)以帮助/改善视频通信会话期间对数字助理响应的确定。本公开预期,在一些实例中,这些所采集的数据可包括唯一地识别或可用于联系或定位特定人员的个人信息数据。此类个人信息数据可以包括人口统计数据、基于位置的数据、电话号码、电子邮件地址、推特ID、家庭地址、与用户的健康或健身水平有关的数据或记录(例如,生命体征测量、药物信息、锻炼信息)、出生日期或任何其他识别或个人信息。
本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,个人信息数据可用于确定在视频通信会话期间将由用户设备的数字助理执行的任务的一个或多个参数。因此,使用此类个人信息数据使得用户设备的数字助理能够(基于上述任务的执行)在视频通信会话期间提供对参与视频通信会话的用户而言更有意义和/或更有用的数字助理响应。此外,本公开还预期个人信息数据有益于用户的其他用途。例如,健康和健身数据可用于向用户的总体健康状况提供见解,或者可用作使用技术来追求健康目标的个人的积极反馈。
本公开设想负责采集、分析、公开、传输、存储或其他使用此类个人信息数据的实体将遵守既定的隐私政策和/或隐私实践。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。此类政策应该能被用户方便地访问,并应随着数据的采集和/或使用变化而被更新。来自用户的个人信息应当被收集用于实体的合法且合理的用途,并且不在这些合法使用之外共享或出售。此外,应在收到用户知情同意后进行此类采集/共享。此外,此类实体应考虑采取任何必要步骤,保卫和保障对此类个人信息数据的访问,并确保有权访问个人信息数据的其他人遵守其隐私政策和流程。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。另外,应当调整政策和实践,以便采集和/或访问的特定类型的个人信息数据,并适用于包括管辖范围的具体考虑的适用法律和标准。例如,在美国,对某些健康数据的收集或获取可能受联邦和/或州法律的管辖,诸如健康保险流通和责任法案(HIPAA);而其他国家的健康数据可能受到其他法规和政策的约束并应相应处理。因此,在每个国家应为不同的个人数据类型保持不同的隐私实践。
不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就收集和使用用户特定上下文信息以在视频通信会话期间帮助/改善对数字助理响应的确定而言,本发明技术可被配置为在注册服务期间或其后的任何时间允许用户选择“选择加入”或“选择退出”参与对个人信息数据的收集。在另一个示例中,用户可选择不提供用户特定上下文信息来在视频通信会话期间帮助/改善对数字助理响应的确定。在又一个示例中,用户可选择在视频通信会话期间防止收集和使用特定类型/形式的用户特定上下文信息(例如,家庭地址、电子邮件地址、电话号码、位置数据等)来确定数字助理响应。除了提供“选择加入”和“选择退出”选项外,本公开设想提供与访问或使用个人信息相关的通知。例如,可在下载应用时向用户通知其个人信息数据将被访问,然后就在个人信息数据被应用访问之前再次提醒用户。
此外,本公开的目的是应管理和处理个人信息数据以最小化无意或未经授权访问或使用的风险。一旦不再需要数据,通过限制数据收集和删除数据可最小化风险。此外,并且当适用时,包括在某些健康相关应用程序中,数据去标识可用于保护用户的隐私。在适当的情况下,可以通过移除特定标识符(例如,出生日期等)、控制存储的数据的量或特征(例如,在城市级而非地址级收集位置数据)、控制数据的存储方式(例如,在用户之间聚合数据)和/或其他方法来促进去标识。
因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,在视频通信会话期间,可基于非个人信息数据或绝对最小量的个人信息(诸如设备所请求的与用户相关联的内容、适用于数字助理的其他非个人信息或公开可用信息)来确定数字助理响应。

Claims (59)

1.一种方法,包括:
在至少两个用户设备之间的视频通信会话期间并且在所述至少两个用户设备中的第一用户设备处:
接收第一用户输入;
基于所述第一用户输入获得第一数字助理响应;
向所述至少两个用户设备中的第二用户设备提供所述第一数字助理响应和与所述第一用户输入相关联的上下文信息;
输出所述第一数字助理响应;
接收第二数字助理响应和与第二用户输入相关联的上下文信息,
其中所述第二用户输入在所述第二用户设备处接收,并且
其中基于所述第二用户输入和与所述第一用户输入相关联的所述上下文信息来确定所述第二数字助理响应;以及
输出所述第二数字助理响应。
2.根据权利要求1所述的方法,其中与所述第一用户输入相关联的所述上下文信息包括在所述视频通信会话期间所述第一用户设备的数字助理与所述第一用户设备的用户之间的对话历史。
3.根据权利要求1至2中任一项所述的方法,其中与所述第一用户输入相关联的所述上下文信息包括所述第一用户设备接收到所述第一用户输入时与所述第一用户设备的当前位置相对应的数据。
4.根据权利要求1至3中任一项所述的方法,其中所述第一数字助理响应包括以下各项中的至少一者:
与由所述第一用户设备的数字助理基于所述第一用户输入执行的任务相对应的自然语言表达;和
由所述第一用户设备的所述数字助理基于所述第一用户输入检索的数据。
5.根据权利要求1至4中任一项所述的方法,其中获得所述第一数字助理响应包括:
基于所述第一用户输入执行一个或多个任务;以及
基于所述一个或多个任务的执行结果来确定所述第一数字助理响应。
6.根据权利要求1至5中任一项所述的方法,其中向所述第二用户设备提供所述第一数字助理响应和与所述第一用户输入相关联的所述上下文信息包括将所述第一数字助理响应和与所述第一用户输入相关联的所述上下文信息传输到所述第二用户设备。
7.根据权利要求6所述的方法,其中所述第一用户设备从所述第二用户设备接收所述第二数字助理响应和与所述第二用户输入相关联的所述上下文信息。
8.根据权利要求6至7中任一项所述的方法,还包括:
在向所述第二用户设备提供所述第一数字助理响应和与所述第一用户输入相关联的所述上下文信息之前:
使用第一音频流将所述第一用户输入传输到所述第二用户设备。
9.根据权利要求8所述的方法,其中使用所述第一音频流将所述第一数字助理响应传输到所述第二用户设备。
10.根据权利要求6至9中任一项所述的方法,还包括:
在接收到所述第二数字助理响应之前:
接收所述第二用户输入;以及
输出所述第二用户输入。
11.根据权利要求10所述的方法,其中所述第一用户设备使用第一音频流来接收所述第二用户输入和所述第二数字助理响应。
12.根据权利要求1至11中任一项所述的方法,其中所述第二用户设备的数字助理使用与所述第一用户输入相关联的所述上下文信息来消除所述第二用户输入的歧义。
13.根据权利要求1至12中任一项所述的方法,其中所述第一数字助理响应和所述第二数字助理响应也由所述第二用户设备输出。
14.根据权利要求13所述的方法,其中所述第二用户设备在接收到所述第二用户输入之前输出所述第一数字助理响应,并且
其中在所述第一用户设备接收到所述第二数字助理响应之后,所述第二用户设备输出所述第二数字助理响应。
15.根据权利要求1至14中任一项所述的方法,还包括:
在接收到所述第二数字助理响应之前:
接收所述第二用户设备的数字助理已被调用的指示;
接收第三用户输入;
基于所接收的指示确定所述第二用户设备的所述数字助理是否在接收到所述第三用户输入之前被调用;以及
根据确定所述第二用户设备的所述数字助理在接收到所述第三用户输入之前被调用,放弃基于所述第三用户输入获得第三数字助理响应。
16.根据权利要求1至15中任一项所述的方法,还包括:
在输出所述第二数字助理响应之后:
接收第四用户输入;
根据确定所述第四用户输入表示提供私密数字助理请求的用户意图:
接收第五用户输入;
基于所述第五用户输入获得第四数字助理响应;
放弃向所述第二用户设备提供所述第四数字助理响应和与所述第五用户输入相关联的上下文信息;以及
输出所述第四数字助理响应。
17.根据权利要求1至16中任一项所述的方法,还包括:
在向所述第二用户设备提供所述第一数字助理响应和与所述第一用户输入相关联的所述上下文信息之前:
确定所述上下文信息是否包括存储在所述第一用户设备上的隐私信息;以及
根据确定所述上下文信息包括存储在所述第一用户设备上的隐私信息:
从所述上下文信息中移除所述隐私信息的至少一部分;以及
向所述第二用户设备提供所述第一数字助理响应和与所述第一用户输入相关联的剩余上下文信息。
18.一种方法,包括:
在至少两个用户设备之间的视频通信会话期间并且在所述至少两个用户设备中的第一用户设备处:
接收第一用户语音输入;
基于所述第一用户语音输入生成文本表示;
将所述文本表示传输到一个或多个服务器;
从所述一个或多个服务器接收共享转录,
其中所述共享转录包括所述第一用户语音输入的所述文本表示和由所述至少两个用户设备中的第二用户设备生成的一个或多个附加文本表示,并且
其中所述一个或多个附加文本表示与在所述视频通信会话期间在所述第二用户设备处接收到的一个或多个用户语音输入相对应;以及
在接收到所述共享转录之后:
基于在所述共享转录中包括的所述文本表示确定能够由所述第一用户设备的数字助理执行的一个或多个候选任务;以及
呈现所述一个或多个候选任务。
19.根据权利要求18所述的方法,还包括:
在接收到所述共享转录之后:
在所述第一用户设备的显示器上显示在所述共享转录中包括的所述文本表示。
20.根据权利要求19所述的方法,其中在所述共享转录中包括的所述文本表示显示为覆盖所述视频通信会话的用户界面。
21.根据权利要求18至20中任一项所述的方法,其中所述第一用户语音输入不调用所述第一用户设备的数字助理。
22.根据权利要求18至21中任一项所述的方法,其中所述一个或多个附加文本表示中的至少一个附加文本表示与在所述第一用户设备接收到所述第一用户语音输入之前在所述第二用户设备处接收到的用户语音输入相对应。
23.根据权利要求18至22中任一项所述的方法,其中所述一个或多个附加文本表示中的至少一个附加文本表示与在所述第一用户设备接收到所述第一用户语音输入之后在所述第二用户设备处接收到的用户语音输入相对应。
24.根据权利要求18至23中任一项所述的方法,其中所述共享转录还包括在所述视频通信会话期间提供的数字助理响应的文本表示。
25.根据权利要求24所述的方法,其中在所述视频通信会话期间提供的所述数字助理响应基于在所述第二用户设备处接收到的所述一个或多个用户语音输入中的用户语音输入。
26.根据权利要求18至25中任一项所述的方法,其中所述一个或多个候选任务在所述视频通信会话期间呈现。
27.根据权利要求18至25中任一项所述的方法,其中所述一个或多个候选任务在所述视频通信会话结束之后作为音频输出呈现,并且
其中所述音频输出请求关于所述一个或多个候选任务中的至少一个候选任务的用户输入。
28.根据权利要求18至27中任一项所述的方法,还包括:
在呈现所述一个或多个候选任务之前:
接收用户输入;
根据确定所述用户输入表示提供私密数字助理请求的用户意图:
接收第二用户语音输入;
基于所述第二用户语音输入获得数字助理响应;
放弃将所述第二用户语音输入的文本表示和所述数字助理响应的文本表示传输到所述一个或多个服务器;以及
输出所述数字助理响应。
29.一种方法,包括:
在至少两个用户设备之间的视频通信会话期间并且在所述至少两个用户设备中的第一用户设备处:
接收第一用户语音输入;
确定所述第一用户语音输入是否表示公共数字助理请求;
根据确定所述第一用户语音输入表示公共数字助理请求,向所述至少两个用户设备中的第二用户设备传输请求以使所述第二用户设备向所述第一用户设备提供与所述第一用户语音输入相关联的上下文信息;
从所述第二用户设备接收与所述第一用户语音输入相关联的上下文信息;
至少基于从所述第二用户设备接收到的所述上下文信息的一部分和存储在所述第一用户设备上的与所述第一用户语音输入相关联的上下文信息的至少一部分获得第一数字助理响应;
向所述第二用户设备提供所述第一数字助理响应;以及
输出所述第一数字助理响应。
30.根据权利要求29所述的方法,其中从所述第二用户设备接收到的所述上下文信息包括用户特定日历数据、用户特定音乐偏好数据、用户特定餐厅偏好数据和所述第二用户设备的当前位置中的至少一者。
31.根据权利要求29至30中任一项所述的方法,其中所述第一数字助理响应包括以下各项中的至少一者:
与由所述第一用户设备的数字助理基于所述第一用户语音输入、从所述第二用户设备接收到的所述上下文信息的所述至少一部分以及存储在所述第一用户设备上的与所述第一用户语音输入相关联的所述上下文信息的所述至少一部分来执行的任务相对应的自然语言表达;和
由所述第一用户设备的所述数字助理基于所述第一用户语音输入、从所述第二用户设备接收到的所述上下文信息的所述至少一部分以及存储在所述第一用户设备上的与所述第一用户语音输入相关联的所述上下文信息的所述至少一部分来检索的数据。
32.根据权利要求29至31中任一项所述的方法,其中获得所述第一数字助理响应包括:
基于所述第一用户语音输入、从所述第二用户设备接收到的所述上下文信息的所述至少一部分以及存储在所述第一用户设备上的与所述第一用户语音输入相关联的所述上下文信息的所述至少一部分执行一个或多个任务;和
基于所述一个或多个任务的执行结果来确定所述第一数字助理响应。
33.根据权利要求29至32中任一项所述的方法,其中获得所述第一数字助理响应包括将从所述第二用户设备接收到的所述上下文信息的所述至少一部分与存储在所述第一用户设备上的与所述第一用户语音输入相关联的所述上下文信息的所述至少一部分进行比较。
34.根据权利要求29至33中任一项所述的方法,其中从所述第二用户设备接收到的所述上下文信息由存储在所述第二用户设备上的软件应用程序存储,其中获得所述第一数字助理响应包括基于与所述软件应用程序相对应的一个或多个协议来处理从所述第二用户设备接收到的所述上下文信息。
35.根据权利要求29至34中任一项所述的方法,其中所述第一用户设备将所述第一数字助理响应作为文本数据提供给所述第二用户设备。
36.根据权利要求29至34中任一项所述的方法,其中所述第一用户设备经由音频流将所述第一数字助理响应作为音频数据提供给所述第二用户设备。
37.根据权利要求29至36中任一项所述的方法,还包括:
在将所述请求传输到所述第二用户设备之前,将所述第一用户语音输入传输到所述第二用户设备。
38.根据权利要求29至37中任一项所述的方法,还包括:
在输出所述第一数字助理响应之前,向所述第二用户设备提供存储在所述第一用户设备上的与所述第一用户语音输入相关联的所述上下文信息的所述至少一部分以及不用于获得所述第一数字助理响应的附加上下文信息。
39.根据权利要求29至38中任一项所述的方法,其中向所述第二用户设备提供所述第一数字助理响应致使所述第二用户设备输出所述第一数字助理响应。
40.根据权利要求29至39中任一项所述的方法,还包括:
响应于接收到所述第一用户语音输入并且在确定所述第一用户语音输入是否表示公共数字助理请求之前,确定所述第一用户语音输入是否包括数字助理触发词;以及
根据确定所述第一用户语音输入包括数字助理触发词,确定所述第一用户设备当前是否持有数字助理调用许可,其中所述第一用户设备根据确定所述第一用户设备当前持有所述数字助理调用许可来确定所述第一用户语音输入是否表示公共数字助理请求。
41.根据权利要求40所述的方法,还包括:
根据确定所述第一用户设备当前不持有所述数字助理调用许可,向所述第二用户设备传输请求以使所述第二用户设备向所述第一用户设备提供所述数字助理调用许可,
其中所述第一用户设备响应于从所述第二用户设备接收到所述数字助理调用许可而确定所述第一用户语音输入是否表示公共数字助理请求,并且
其中所述第一用户设备响应于在预定时间段内未从所述第二用户设备接收到所述数字助理调用许可而放弃确定所述第一用户语音输入是否表示公共数字助理请求。
42.一种第一用户设备,包括:
显示器;
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,其中所述一个或多个程序包括用于如下操作的指令:
在所述第一用户设备与至少第二用户设备之间的视频通信会话期间:
接收第一用户输入;
基于所述第一用户输入获得第一数字助理响应;
向所述第二用户设备提供所述第一数字助理响应和与所述第一用户输入相关联的上下文信息;
输出所述第一数字助理响应;
接收第二数字助理响应和与第二用户输入相关联的上下文信息,
其中所述第二用户输入在所述第二用户设备处接收,并且
其中基于所述第二用户输入和与所述第一用户输入相关联的所述上下文信息来确定所述第二数字助理响应;以及
输出所述第二数字助理响应。
43.一种第一用户设备,包括:
显示器;
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,其中所述一个或多个程序包括用于如下操作的指令:
在所述第一用户设备与至少第二用户设备之间的视频通信会话期间:
接收第一用户语音输入;
基于所述第一用户语音输入生成文本表示;
将所述文本表示传输到一个或多个服务器;
从所述一个或多个服务器接收共享转录,
其中所述共享转录包括所述第一用户语音输入的所述文本表示和由所述第二用户设备生成的一个或多个附加文本表示,并且
其中所述一个或多个附加文本表示与在所述视频通信会话期间在所述第二用户设备处接收到的一个或多个用户语音输入相对应;以及
在接收到所述共享转录之后:
基于在所述共享转录中包括的所述文本表示来确定能够由所述第一用户设备的数字助理执行的一个或多个候选任务;以及
呈现所述一个或多个候选任务。
44.一种第一用户设备,包括:
显示器;
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,其中所述一个或多个程序包括用于如下操作的指令:
在所述第一用户设备与至少第二用户设备之间的视频通信会话期间:
接收第一用户语音输入;
确定所述第一用户语音输入是否表示公共数字助理请求;
根据确定所述第一用户语音输入表示公共数字助理请求,向至少两个用户设备中的第二用户设备传输请求以使所述第二用户设备向所述第一用户设备提供与所述第一用户语音输入相关联的上下文信息;
从所述第二用户设备接收与所述第一用户语音输入相关联的上下文信息;
至少基于从所述第二用户设备接收到的所述上下文信息的一部分和存储在所述第一用户设备上的与所述第一用户语音输入相关联的上下文信息的至少一部分获得第一数字助理响应;
向所述第二用户设备提供所述第一数字助理响应;以及
输出所述第一数字助理响应。
45.一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令在由具有显示器的第一用户设备的一个或多个处理器执行时,使所述第一用户设备:
在所述第一用户设备与至少第二用户设备之间的视频通信会话期间:
接收第一用户输入;
基于所述第一用户输入获得第一数字助理响应;
向所述第二用户设备提供所述第一数字助理响应和与所述第一用户输入相关联的上下文信息;
输出所述第一数字助理响应;
接收第二数字助理响应和与第二用户输入相关联的上下文信息,
其中所述第二用户输入在所述第二用户设备处接收,并且
其中基于所述第二用户输入和与所述第一用户输入相关联的所述上下文信息来确定所述第二数字助理响应;以及
输出所述第二数字助理响应。
46.一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令在由具有显示器的第一用户设备的一个或多个处理器执行时,使所述第一用户设备:
在所述第一用户设备与至少第二用户设备之间的视频通信会话期间:
接收第一用户语音输入;
基于所述第一用户语音输入生成文本表示;
将所述文本表示传输到一个或多个服务器;
从所述一个或多个服务器接收共享转录,
其中所述共享转录包括所述第一用户语音输入的所述文本表示和由所述第二用户设备生成的一个或多个附加文本表示,并且
其中所述一个或多个附加文本表示与在所述视频通信会话期间在所述第二用户设备处接收到的一个或多个用户语音输入相对应;以及
在接收到所述共享转录之后:
基于在所述共享转录中包括的所述文本表示来确定能够由所述第一用户设备的数字助理执行的一个或多个候选任务;以及
呈现所述一个或多个候选任务。
47.一种存储一个或多个程序的非暂态计算机可读存储介质,所述一个或多个程序包括指令,所述指令在由具有显示器的第一用户设备的一个或多个处理器执行时,使所述第一用户设备:
在所述第一用户设备与至少第二用户设备之间的视频通信会话期间:
接收第一用户语音输入;
确定所述第一用户语音输入是否表示公共数字助理请求;
根据确定所述第一用户语音输入表示公共数字助理请求,
向至少两个用户设备中的第二用户设备传输请求以使所述第二用户设备向所述第一用户设备提供与所述第一用户语音输入相关联的上下文信息;
从所述第二用户设备接收与所述第一用户语音输入相关联的上下文信息;
至少基于从所述第二用户设备接收到的所述上下文信息的一部分和存储在所述第一用户设备上的与所述第一用户语音输入相关联的上下文信息的至少一部分获得第一数字助理响应;
向所述第二用户设备提供所述第一数字助理响应;以及
输出所述第一数字助理响应。
48.一种第一用户设备,包括:
在所述第一用户设备与至少第二用户设备之间的视频通信会话期间:
用于接收第一用户输入的装置;
用于基于所述第一用户输入获得第一数字助理响应的装置;
用于向所述第二用户设备提供所述第一数字助理响应和与所述第一用户输入相关联的上下文信息的装置;
用于输出所述第一数字助理响应的装置;
用于接收第二数字助理响应和与第二用户输入相关联的上下文信息的装置,
其中所述第二用户输入在所述第二用户设备处接收,并且
其中基于所述第二用户输入和与所述第一用户输入相关联的所述上下文信息来确定所述第二数字助理响应;和
用于输出所述第二数字助理响应的装置。
49.一种第一用户设备,包括:
在所述第一用户设备与至少第二用户设备之间的视频通信会话期间:
用于接收第一用户语音输入的装置;
用于基于所述第一用户语音输入生成文本表示的装置;
用于将所述文本表示传输到一个或多个服务器的装置;
用于从所述一个或多个服务器接收共享转录的装置,
其中所述共享转录包括所述第一用户语音输入的所述文本表示和由所述第二用户设备生成的一个或多个附加文本表示,并且
其中所述一个或多个附加文本表示与在所述视频通信会话期间在所述第二用户设备处接收到的一个或多个用户语音输入相对应;以及
在接收到所述共享转录之后:
用于基于在所述共享转录中包括的所述文本表示来确定能够由所述第一用户设备的数字助理执行的一个或多个候选任务的装置;和
用于呈现所述一个或多个候选任务的装置。
50.一种第一用户设备,包括:
在所述第一用户设备与至少第二用户设备之间的视频通信会话期间:
用于接收第一用户语音输入的装置;
用于确定所述第一用户语音输入是否表示公共数字助理请求的装置;
根据确定所述第一用户语音输入表示公共数字助理请求,
用于向至少两个用户设备中的第二用户设备传输请求以使所述第二用户设备向所述第一用户设备提供与所述第一用户语音输入相关联的上下文信息的装置;
用于从所述第二用户设备接收与所述第一用户语音输入相关联的上下文信息的装置;
用于至少基于从所述第二用户设备接收到的所述上下文信息的一部分和存储在所述第一用户设备上的与所述第一用户语音输入相关联的上下文信息的至少一部分获得第一数字助理响应的装置;
用于向所述第二用户设备提供所述第一数字助理响应的装置;和
用于输出所述第一数字助理响应的装置。
51.一种第一用户设备,包括:
显示器;
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并且被配置为由所述一个或多个处理器执行,其中所述一个或多个程序包括用于执行根据权利要求1至17中任一项所述的方法的指令。
52.一种第一用户设备,包括:
显示器;
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并且被配置为由所述一个或多个处理器执行,其中所述一个或多个程序包括用于执行根据权利要求18至28中任一项所述的方法的指令。
53.一种第一用户设备,包括:
显示器;
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并且被配置为由所述一个或多个处理器执行,其中所述一个或多个程序包括用于执行根据权利要求29至41中任一项所述的方法的指令。
54.一种存储一个或多个程序的非暂态计算机可读存储介质,其中所述一个或多个程序包括指令,所述指令在由具有显示器的第一用户设备的一个或多个处理器执行时,使所述第一用户设备执行根据权利要求1至17中任一项所述的方法。
55.一种存储一个或多个程序的非暂态计算机可读存储介质,其中所述一个或多个程序包括指令,所述指令在由具有显示器的第一用户设备的一个或多个处理器执行时,使所述第一用户设备执行根据权利要求18至28中任一项所述的方法。
56.一种存储一个或多个程序的非暂态计算机可读存储介质,其中所述一个或多个程序包括指令,所述指令在由具有显示器的第一用户设备的一个或多个处理器执行时,使所述第一用户设备执行根据权利要求29至41中任一项所述的方法。
57.一种第一用户设备,包括:
用于执行根据权利要求1至17中任一项所述的方法的装置。
58.一种第一用户设备,包括:
用于执行根据权利要求18至28中任一项所述的方法的装置。
59.一种第一用户设备,包括:
用于执行根据权利要求29至41中任一项所述的方法的装置。
CN202180014131.3A 2020-02-12 2021-01-29 视频通信会话环境中的数字助理交互 Pending CN115088250A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US202062975643P 2020-02-12 2020-02-12
US62/975,643 2020-02-12
US202063016083P 2020-04-27 2020-04-27
US63/016,083 2020-04-27
US17/158,703 US11769497B2 (en) 2020-02-12 2021-01-26 Digital assistant interaction in a video communication session environment
US17/158,703 2021-01-26
PCT/US2021/015629 WO2021162868A1 (en) 2020-02-12 2021-01-29 Digital assistant interaction in a video communication session environment

Publications (1)

Publication Number Publication Date
CN115088250A true CN115088250A (zh) 2022-09-20

Family

ID=77178807

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180014131.3A Pending CN115088250A (zh) 2020-02-12 2021-01-29 视频通信会话环境中的数字助理交互

Country Status (5)

Country Link
US (3) US11769497B2 (zh)
EP (1) EP4085612A1 (zh)
KR (3) KR102651921B1 (zh)
CN (1) CN115088250A (zh)
WO (1) WO2021162868A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
CN113470640B (zh) 2013-02-07 2022-04-26 苹果公司 数字助理的语音触发器
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
DK201670540A1 (en) 2016-06-11 2018-01-08 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
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
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
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
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11769497B2 (en) 2020-02-12 2023-09-26 Apple Inc. Digital assistant interaction in a video communication session environment
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US11727923B2 (en) * 2020-11-24 2023-08-15 Coinbase, Inc. System and method for virtual conversations
US11727152B2 (en) * 2021-01-30 2023-08-15 Zoom Video Communications, Inc. Intelligent detection of sensitive data within a communication platform
GB2606713A (en) * 2021-05-13 2022-11-23 Twyn Ltd Video-based conversational interface
US11620993B2 (en) * 2021-06-09 2023-04-04 Merlyn Mind, Inc. Multimodal intent entity resolver
US20230035941A1 (en) * 2021-07-15 2023-02-02 Apple Inc. Speech interpretation based on environmental context
US20230058929A1 (en) * 2021-08-13 2023-02-23 Apple Inc. Digital assistant interaction in a communication session
US20230327895A1 (en) * 2022-04-12 2023-10-12 International Business Machines Corporation Content viewing guidance in an online meeting
US11995457B2 (en) 2022-06-03 2024-05-28 Apple Inc. Digital assistant integration with system interface

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3859005A (en) 1973-08-13 1975-01-07 Albert L Huebner Erosion reduction in wet turbines
US4826405A (en) 1985-10-15 1989-05-02 Aeroquip Corporation Fan blade fabrication system
KR100595925B1 (ko) 1998-01-26 2006-07-05 웨인 웨스터만 수동 입력 통합 방법 및 장치
US7688306B2 (en) 2000-10-02 2010-03-30 Apple Inc. Methods and apparatuses for operating a portable device based on an accelerometer
US7218226B2 (en) 2004-03-01 2007-05-15 Apple Inc. Acceleration-based theft detection system for portable electronic devices
US6677932B1 (en) 2001-01-28 2004-01-13 Finger Works, Inc. System and method for recognizing touch typing under limited tactile feedback conditions
US6570557B1 (en) 2001-02-10 2003-05-27 Finger Works, Inc. Multi-touch system and method for emulating modifier keys via fingertip chords
US7657849B2 (en) 2005-12-23 2010-02-02 Apple Inc. Unlocking a device by performing gestures on an unlock image
US7548895B2 (en) 2006-06-30 2009-06-16 Microsoft Corporation Communication-prompted user assistance
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
WO2009079736A1 (en) 2007-12-21 2009-07-02 Bce Inc. Method and apparatus for interrupting an active telephony session to deliver information to a subscriber
WO2009117820A1 (en) 2008-03-25 2009-10-01 E-Lane Systems Inc. Multi-participant, mixed-initiative voice interaction system
US20100063926A1 (en) 2008-09-09 2010-03-11 Damon Charles Hougland Payment application framework
US8412529B2 (en) 2008-10-29 2013-04-02 Verizon Patent And Licensing Inc. Method and system for enhancing verbal communication sessions
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US8588378B2 (en) 2009-07-15 2013-11-19 Google Inc. Highlighting of voice message transcripts
US8898219B2 (en) 2010-02-12 2014-11-25 Avaya Inc. Context sensitive, cloud-based telephony
US8848882B2 (en) 2010-07-07 2014-09-30 Verizon Patent And Licensing Inc. System for and method of measuring caller interactions during a call session
US20120108221A1 (en) 2010-10-28 2012-05-03 Microsoft Corporation Augmenting communication sessions with applications
WO2012063260A2 (en) 2010-11-09 2012-05-18 Mango Technologies Pvt Ltd. Virtual secretary on a smart device
US9760566B2 (en) 2011-03-31 2017-09-12 Microsoft Technology Licensing, Llc Augmented conversational understanding agent to identify conversation context between two humans and taking an agent action thereof
US8850037B2 (en) 2012-05-24 2014-09-30 Fmr Llc Communication session transfer between devices
US9141504B2 (en) 2012-06-28 2015-09-22 Apple Inc. Presenting status data received from multiple devices
US8606576B1 (en) 2012-11-02 2013-12-10 Google Inc. Communication log with extracted keywords from speech-to-text processing
US20140164532A1 (en) 2012-12-11 2014-06-12 Nuance Communications, Inc. Systems and methods for virtual agent participation in multiparty conversation
US9659298B2 (en) 2012-12-11 2017-05-23 Nuance Communications, Inc. Systems and methods for informing virtual agent recommendation
US9148394B2 (en) 2012-12-11 2015-09-29 Nuance Communications, Inc. Systems and methods for user interface presentation of virtual agent
US20140164953A1 (en) 2012-12-11 2014-06-12 Nuance Communications, Inc. Systems and methods for invoking virtual agent
US20140181741A1 (en) 2012-12-24 2014-06-26 Microsoft Corporation Discreetly displaying contextually relevant information
US9201865B2 (en) 2013-03-15 2015-12-01 Bao Tran Automated assistance for user request that determines semantics by domain, task, and parameter
KR102050814B1 (ko) 2013-04-02 2019-12-02 삼성전자주식회사 그룹 대화에서 사적 대화 제공 장치 및 방법
US10027723B2 (en) 2013-04-12 2018-07-17 Provenance Asset Group Llc Method and apparatus for initiating communication and sharing of content among a plurality of devices
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
WO2015031486A1 (en) 2013-08-27 2015-03-05 Persais, Llc System and method for virtual assistants with shared capabilities and agent store
CN104427104B (zh) 2013-08-28 2018-02-27 联想(北京)有限公司 一种信息处理方法及电子设备
US10134395B2 (en) 2013-09-25 2018-11-20 Amazon Technologies, Inc. In-call virtual assistants
US9401881B2 (en) 2013-09-26 2016-07-26 International Business Machines Corporation Automatic question generation and answering based on monitored messaging sessions
US20150095268A1 (en) 2013-10-02 2015-04-02 Apple Inc. Intelligent multi-user task planning
US10079013B2 (en) 2013-11-27 2018-09-18 Sri International Sharing intents to provide virtual assistance in a multi-person dialog
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
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9378740B1 (en) 2014-09-30 2016-06-28 Amazon Technologies, Inc. Command suggestions during automatic speech recognition
US9559993B2 (en) 2014-10-02 2017-01-31 Oracle International Corporation Virtual agent proxy in a real-time chat service
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US20160357861A1 (en) 2015-06-07 2016-12-08 Apple Inc. Natural language event detection
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
US10832684B2 (en) * 2016-08-31 2020-11-10 Microsoft Technology Licensing, Llc Personalization of experiences with digital assistants in communal settings through voice and query processing
US10230841B2 (en) 2016-11-22 2019-03-12 Apple Inc. Intelligent digital assistant for declining an incoming call
US10176808B1 (en) 2017-06-20 2019-01-08 Microsoft Technology Licensing, Llc Utilizing spoken cues to influence response rendering for virtual assistants
US10742435B2 (en) 2017-06-29 2020-08-11 Google Llc Proactive provision of new content to group chat participants
US20200127988A1 (en) 2018-10-19 2020-04-23 Apple Inc. Media intercom over a secure device to device communication channel
US11769497B2 (en) * 2020-02-12 2023-09-26 Apple Inc. Digital assistant interaction in a video communication session environment
US11038934B1 (en) * 2020-05-11 2021-06-15 Apple Inc. Digital assistant hardware abstraction
US20230058929A1 (en) 2021-08-13 2023-02-23 Apple Inc. Digital assistant interaction in a communication session

Also Published As

Publication number Publication date
WO2021162868A1 (en) 2021-08-19
KR102593248B1 (ko) 2023-10-25
US11769497B2 (en) 2023-09-26
KR102651921B1 (ko) 2024-03-29
KR20220128386A (ko) 2022-09-20
KR20230151557A (ko) 2023-11-01
US11837232B2 (en) 2023-12-05
US20230386464A1 (en) 2023-11-30
EP4085612A1 (en) 2022-11-09
KR20240042559A (ko) 2024-04-02
US20210249009A1 (en) 2021-08-12
US20230215435A1 (en) 2023-07-06

Similar Documents

Publication Publication Date Title
CN111901481B (zh) 计算机实现的方法、电子设备和存储介质
KR102651921B1 (ko) 비디오 통신 세션 환경에서의 디지털 어시스턴트 상호작용
CN112567323B (zh) 用户活动快捷方式建议
CN111656439B (zh) 基于延迟控制电子设备的方法、电子设备及存储介质
CN111480134B (zh) 注意力感知虚拟助理清除
CN110364148B (zh) 自然助理交互
CN111418007B (zh) 多轮预制对话
CN110473538B (zh) 检测数字助理的触发
CN109257941B (zh) 用于数字助理的同步和任务委派的方法、电子设备和系统
CN112567332A (zh) 语音命令的多模态输入
CN116414282A (zh) 多模态界面
CN110603586B (zh) 用于校正识别错误的用户界面
CN115221295A (zh) 个人请求的数字助理处理
CN110612566B (zh) 个人信息的隐私维护
CN111399714A (zh) 用户活动快捷方式建议
CN116486799A (zh) 从用户话语生成emoji
CN115083414A (zh) 用于连续对话的多状态数字助理
CN107463311B (zh) 智能列表读取
CN112015873A (zh) 通过设备内置目标定位和个性化实现语音助理可发现性
CN110574023A (zh) 脱机个人助理
CN110651324B (zh) 多模态界面
CN117170485A (zh) 基于上下文的任务执行
CN117170536A (zh) 数字助理与系统界面的集成
CN117642717A (zh) 基于环境上下文的语音解译
CN111899739A (zh) 语音通知

Legal Events

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