CN116648745A - 用于提供安全自动化助理的方法和系统 - Google Patents

用于提供安全自动化助理的方法和系统 Download PDF

Info

Publication number
CN116648745A
CN116648745A CN202180088109.3A CN202180088109A CN116648745A CN 116648745 A CN116648745 A CN 116648745A CN 202180088109 A CN202180088109 A CN 202180088109A CN 116648745 A CN116648745 A CN 116648745A
Authority
CN
China
Prior art keywords
assistant
user
data
client device
command
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
CN202180088109.3A
Other languages
English (en)
Inventor
马修·谢里菲
维克托·克尔布内
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN116648745A publication Critical patent/CN116648745A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/432Query formulation
    • G06F16/433Query formulation using audio data
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Acoustics & Sound (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本文描述的实施方式涉及:接收指向自动化助理的用户输入;处理用户输入以确定是否需要来自服务器和/或第三方应用的数据来执行包括在用户输入中的助理命令的特定履行;以及生成请求用户同意向服务器和/或第三方应用传输请求以获得执行特定履行所需的数据的提示。在用户同意的实施方式中,可以获得并利用该数据来执行特定履行。在用户不同意的实施方式中,客户端数据可以在客户端设备处本地生成并用于执行助理命令的替代履行。在各种实施方式中,可以基于在接收到用户输入时捕获的环境噪声来修改传输到服务器和/或第三方应用的请求。

Description

用于提供安全自动化助理的方法和系统
背景技术
人类可以使用本文称为“自动化助理”(也称为“聊天机器人”、“交互式个人助理”、“智能个人助理”、“个人语音助理”、“会话代理”等)的交互式软件应用参与人机对话。例如,人(其当与自动化助理交互时可以被称为“用户”)可以向自动化助理提供输入(例如,命令、查询和/或请求),其可以使得自动化助理生成并提供响应输出,控制一个或多个物联网(IoT)设备,和/或执行一个或多个其他功能(例如,助理动作)。由用户提供的这种输入可以是例如:口头自然语言输入(即,口头话语),其在一些情况下可以被转换成文本(或其他语义表示),并且然后被进一步处理;和/或键入自然语言输入。
在一些情况下,自动化助理可以包括:由客户端设备在本地执行并由用户直接参与的自动化助理客户端;以及利用几乎无限的云资源来帮助自动化助理客户端响应用户的输入的基于云的对应方。例如,自动化助理客户端可以向基于云的对应方提供用户的口头话语的音频数据(或其文本转换),以及可选的指示用户身份的数据(例如,凭证)。基于云的对应方可以对输入执行各种处理以将结果返回到自动化助理客户端,然后自动化助理客户端可以向用户提供对应的输出。在其他情况下,自动化助理可以专门由客户端设备在本地执行,并由用户直接参与以减少延时和/或保护用户数据的隐私。
许多自动化助理要么利用几乎无限的云资源来帮助自动化助理客户端响应用户的输入,要么专门由用户直接参与的客户端设备在本地执行以响应用户的输入。换句话说,许多自动化助理无法基于用户输入和/或与用户输入相关联的环境条件来在利用基于云的对应方和由客户端设备在本地执行之间动态切换。
例如,假设用户提供口头话语“how is my XYZ stock doing today?(我的XYZ股票今天表现如何)”作为对给定自动化助理的输入。进一步假设给定自动化助理利用几乎无限的云资源来帮助响应口头话语。在这个示例中,给定自动化助理可以利用期望的内容(例如,关于“XYZ股票”的实时更新)响应用户,但用户数据的安全性可能会降低,因为捕获口头话语的音频数据、指示用户身份的数据、与口头话语相关联的助理命令和/或其他数据可以从捕获口头话语的给定客户端设备传输到服务器或第三方应用以获得响应于口头话语的期望内容。结果,在将数据传输到服务器或第三方应用之后,用户可能无法采取一种或多种措施来确保传输的数据在服务器或第三方应用处是安全的。相反,进一步假设给定自动化助理在用户的给定客户端设备处本地执行以响应口头话语。在此示例中,可以保护用户数据的安全性,但给定自动化助理可能仅使用在给定客户端设备处本地可访问的内容来获得响应于口头话语的期望内容(例如,仅“XYZ股票”股票代码)。结果,响应于口头话语的期望内容可能是次优的(例如,陈旧的)或不存在的。然而,如果自动化助理能够基于用户输入和/或与用户输入相关联的环境条件来在利用基于云的对应方和由客户端设备在本地执行之间动态切换,则自动化助理可能能够在保护用户数据的安全性的同时提供响应于用户的输入的最佳期望内容。
发明内容
本文公开的实施方式涉及提供一种安全自动化助理,其当需要来自服务器和/或第三方应用的数据来执行助理命令的特定履行时提示用户同意向服务器和/或第三方应用传输请求。助理命令可以被包括在客户端设备处检测到的用户输入(例如,口头输入和/或键入输入)中。在一些实施方式中,可以处理用户输入以确定与助理命令相关联的给定类别,并且可以仅响应于确定与助理命令相关联的给定类别对应于一个或多个特定类别而提示用户同意传输请求。响应于确定用户响应于提示而同意传输请求,可以将请求传输到服务器和/或第三方应用以获得执行助理命令的特定履行所需的数据。响应于确定用户响应于提示而不同意传输请求,可以获得设备上数据以执行助理命令的替代履行。在各种实施方式中,当用户确实同意向服务器和/或第三方应用传输请求时,该请求可以连同不能(例如,非暂时性地)存储从客户端设备接收到的数据的指示一起传输。换句话说,服务器和/或第三方应用可以利用包括在请求中的数据来生成针对请求的响应内容,但在生成响应内容之后应该丢弃包括在请求中的数据。
例如,假设用户提供指向自动化助理的口头话语“can you recommend a lawyerfor bankruptcies(你能推荐破产律师吗)”。自动化助理(例如,在客户端设备处本地执行的自动化助理客户端)可以使得使用(例如,在客户端设备处本地存储的)一个或多个机器学习(ML)模型来处理捕获口头话语的音频数据。例如,自动化助理客户端可以处理音频数据以确定口头话语包括助理命令。例如,自动化助理客户端可以使用本地存储的自动语音识别(ASR)模型来处理音频数据以生成口头话语的识别,并且可以使用自然语言处理(NLP)模型来处理该识别以生成包括在口头话语中的助理命令的意图和那些意图的参数,和/或可以使用其他ML模型来处理该识别。此外,自动化助理可以处理使用一个或多个ML模型生成的输出,以确定与助理命令相关联的给定类别。在此示例中,与助理命令相关联的给定类别可以是法律服务类别。此外,自动化助理可以确定法律服务类别对应于一个或多个特定类别(例如,使用规则和/或ML模型),以在向服务器和/或第三方应用传输任何请求以获得针对口头话语的响应内容之前提示提供口头话语的用户同意。结果,自动化助理可以提示用户同意向服务器和/或第三方应用传输请求以获得针对破产律师的推荐。假设用户同意传输请求,自动化助理可以生成并传输请求以执行如由用户请求的获得针对破产律师的推荐的特定履行(以及可选地连同不能在接收请求的服务器和/或第三方应用处存储请求的指示一起)。然而,如果用户不同意传输请求,则自动化助理可以获得客户端设备本地的数据以执行替代履行,诸如提供与针对破产律师的推荐相关联的任何预缓存的内容,提供来自联系人列表的律师或律师事务所的任何联系人条目,和/或提供与助理命令相关的任何其他数据。附加地或替代地,如果不存在与助理命令相关的内容,则助理命令可能失败并且自动化助理可以使得在不向服务器和/或第三方应用传输请求的情况下不能执行任何履行的通知被提供以呈现给用户。
在一些实施方式中,与助理命令相关联的给定类别可以是多个不同类别之一。多个不同类别可以由分类法以不同程度的粒度来定义。例如,多个不同类别可以包括搜索查询类别、多媒体类别、IoT设备类别、通信类别、任务类别和/或其他类别。此外,这些不同类别中的每一个都可以包括一个或多个类别(或子类别)。例如,搜索查询类别可以包括对应于与人、地点和/或事物相关联的搜索查询的实体类别、对应于与股票、银行账户余额和/或其他金钱信息相关联的搜索查询的金钱类别、对应于与关于特定位置处的天气的询问相关联的搜索查询的天气类别、对应于与餐馆相关联的搜索查询的餐馆类别、和/或与不同类型的搜索查询相关联的任何其他类别。此外,这些不同类别(或子类别)中的每一个都可以包括一个或多个类别(或进一步的子类别)。例如,实体类别可以包括:州类别、城市类别、商业位置类别、住宅位置类别和/或与位置相关联的其他类别,诸如地址类别;名人类别、联系人条目类别和/或与个人或个人信息相关联的其他类别(例如,电子邮件地址类别、电话号码类别等),等等。尽管上面的示例是关于搜索查询的类别描述的,但是应该理解这是为了说明针对给定类别的不同程度的粒度而不意味着是限制性的。例如,多媒体类别可以包括音乐类别,该音乐类别进一步包括流派类别,该流派类别进一步包括针对各种音乐流派的对应类别,等等。
在一些实施方式中,自动化助理可以基于使用一个或多个ML模型生成的输出来确定与助理命令相关联的给定类别。例如,当用户输入是口头输入时,可以使用ASR模型来处理捕获用户的口头话语的音频,以生成多个语音假设(例如,术语假设和/或转录假设)。基于与语音假设中的每个语音假设相关联的对应值(例如概率、对数似然和/或其他值),可以将一个或多个语音假设选择为对应于口头话语的识别文本。此外,可以使用NLP模型来处理识别文本,以确定用户在提供口头话语时的意图,确定该意图的参数,和/或注释识别文本。自动化助理可以基于用户的意图、意图的参数和/或识别文本的注释来确定给定类别。作为另一个示例,当用户输入是键入输入时,可以使用NLP模型来处理键入输入以确定用户在提供口头话语时的意图,确定该意图的参数,和/或注释识别文本。类似地,自动化助理可以基于用户的意图和/或识别文本的注释来确定给定类别。
在一些实施方式中,自动化助理可以使用一个或多个规则来确定给定类别对应于一个或多个特定类别。一个或多个规则可以包括例如用户定义的规则、默认规则和/或推断规则。例如,用户定义的规则可以由用户先前(例如,经由自动化助理应用)定义并指示与给定类别相关联的一个或多个助理命令应该使得自动化助理提示用户在传输任何请求之前请求同意。用户定义的规则还可以指示不应向用户提示请求的场景或定义用户同意传输请求的程度(例如,将文本数据传输到服务器和/或第三方应用,但不是任何音频数据)。此外,例如,默认规则可以指示与给定类别相关联的一个或多个助理命令应该使得自动化助理提示用户在传输任何请求之前请求同意。这些默认规则可以与例如金钱相关类别、医疗相关类别、法律相关类别和/或其他类别相关联。此外,例如,推断规则可以基于客户端设备的使用来推断。这些推断规则可以与例如用户先前同意用于从客户端设备传输请求的类别(例如,一揽子同意或一定程度的同意)相关联。
在一些实施方式中,自动化助理可以使得提示在客户端设备处视觉地和/或可听地渲染。该提示可以请求用户同意将请求传输到服务器和/或第三方应用。在这些实施方式的一些版本中,用户可以提供针对将请求(以及可选的未来请求)传输到服务器和/或第三方应用的不同程度的同意。例如,用户可以提供针对以下各项的一揽子同意:传输获得数据以执行助理命令的特定履行的请求(以及可选的也具有给定类别的未来请求),连同任何数据不能由服务器和/或第三方应用存储的指示一起传输请求,仅传输文本数据而不传输任何音频数据,不传输任何请求,和/或其他程度。如本文所描述的,可以提示用户提供针对将请求传输到自动化助理云(例如,或任何其他第一方服务器)、安装在客户端设备上的本地第三方应用、由第三方服务器托管的第三方应用和/或任何其他服务器或第三方应用的同意。例如,用户可以提供数据可以被传输到本地第三方应用但不能传输到第三方应用的基于服务器的实例的同意。作为另一个示例,用户可以提供数据可以被传输到任何第一方服务器但不能传输到任何第三方应用和/或第三方服务器的同意。
在附加或替代实施方式中,并且当用户输入是口头输入时,可以处理捕获口头输入的音频数据以确定与也在音频数据中捕获的任何环境噪声相关联的给定类别,并且可以仅响应于确定与环境噪声相关联的给定类别对应于一个或多个特定类别而提示用户同意传输请求。自动化助理可以使得使用一个或多个机器学习(ML)模型来处理捕获口头话语的音频数据,以确定口头话语包括助理命令(例如,自动语音识别(ASR)模型、自然语言处理(NLP)模型和/或其他ML模型),如上所述。可以附加地或替代地使用环境噪声模型来处理音频数据,该环境噪声模型被训练为基于使用环境噪声模型生成的输出来确定与环境噪声相关联的给定类别。环境噪声模型的输出可以包括例如多个类别和与多个类别相关联的对应值(例如,概率、对数似然等)。
在一些实施方式中,与环境噪声相关联的给定类别可以是多个不同类别之一。类似于与助理命令相关联的多个类别,与环境噪声相关联的多个不同类别可以由分类法以不同程度的粒度来定义。例如,与环境噪声相关联的多个不同类别可以包括会话类别、通勤类别、多媒体类别和/或其他类别。此外,环境噪声的多个不同类别可以包括类似于助理命令的多个不同类别的一个或多个类别(或子类别)。例如,会话类别可以包括(例如,使用语音识别模型标识的)多个不同用户的类别。
在一些实施方式中,自动化助理可以使用一个或多个规则来确定给定类别对应于一个或多个特定类别。一个或多个规则可以包括例如与上述规则类似的用户定义的规则、默认规则和/或推断规则。然而,这些规则与基于在也捕获助理命令的音频数据中捕获的环境噪声来限制传输请求相关联。例如,假设口头话语“can you recommend a lawyer forbankruptcies”指向自动化助理。进一步假设捕获口头话语的音频数据还基于使用环境噪声模型生成的输出来捕获环境噪声中的多个其他用户之间的会话。在该示例中,提示可以附加地或替代地包括音频数据捕获多个其他用户的会话(并且可选地标识那些其他用户)的指示。
通过使用本文描述的技术,可以实现一个或多个技术优势。例如,本文描述的技术使得自动化助理能够限制何时在客户端设备上本地生成的数据和/或在客户端设备上本地生成的什么数据被传输到服务器和/或第三方应用,从而提高用户数据的隐私和安全性。例如,本文描述的技术可以在传输特定数据之前主动提示用户,并且可以在特定数据被传输之前要求响应于提示的肯定输入,或者如果未接收到肯定输入(例如,代替接收到,输入否定)则可以阻止特定数据的传输。这可以保证特定数据保持安全而不依赖用户在发出助理命令之前手动指定特定数据是否应该保持安全。
作为另一个示例,本文描述的技术使得自动化助理能够选择性地通知用户何时和/或什么数据将响应于由用户提供的助理命令而从客户端设备传输,并且使得用户能够提供简明的输入(例如,口头的“是”或“否”,或单击图形界面元素)来指示是否应该传输此类数据。这种简明的输入可以比例如导航自动化助理应用的菜单以手动标识数据设置和指定那些数据设置可能需要的多个输入更高效。此外,结合自动化助理请求提供提示使得用户能够更容易地理解用户对提示的响应将应用于哪种(哪些)类型的数据,而不是手动定义与各种类别相关联的规则,其可能对于用户来说是迟钝的。此外,用户对提示的响应可以用于指示是否应该传输未来用户数据(例如,具有相同的一个类别或多个类别)。这可以减少或消除用户提供与未来用户数据的传输有关的未来用户输入的需要。
以上描述仅作为本文公开的一些实施方式的概览提供。在本文中更详细地描述那些实施方式和其他实施方式。
应当认识到,本文更详细描述的前述概念和附加概念的所有组合被预见为本文公开的主题的一部分。例如,出现在本公开的结尾的要求保护的主题的所有组合被认为是本文公开的主题的一部分。
附图说明
图1描绘了示例环境的框图,该示例环境展示了本公开的各个方面,并且可以在该示例环境中实现本文公开的实施方式。
图2描绘了图示根据各种实施方式的确定是否向服务器传输请求以获得在执行助理命令的特定履行中利用的服务器数据的示例方法的流程图。
图3A和图3B描绘了根据各种实施方式的确定是否向服务器传输请求以获得在执行助理命令的特定履行中利用的服务器数据的各种非限制性示例。
图4描绘了图示根据各种实施方式的确定是否向第三方应用传输请求以获得在执行助理命令的特定履行中利用的第三方应用数据的示例方法的流程图。
图5A和图5B描绘了根据各种实施方式的确定是否向第三方应用传输请求以获得在执行助理命令的特定履行中利用的第三方应用数据的各种非限制性示例。
图6描绘了图示根据各种实施方式的基于环境噪声来确定是否向服务器或第三方应用传输请求以获得在执行助理命令的特定履行中利用的数据的示例方法的流程图。
图7A和图7B描绘了根据各种实施方式的基于环境噪声来确定是否向服务器或第三方应用传输请求以获得在执行助理命令的特定履行中利用的数据的各种非限制性示例。
图8描绘了根据各种实施方式的计算设备的示例架构。
具体实施方式
现在转向图1,描绘了示例环境的框图,该示例环境展示了本公开的各个方面,并且可以在该示例环境中实现本文公开的实施方式。示例环境包括客户端设备110、一个或多个基于云的自动化助理组件115、一个或多个第一方服务器191以及一个或多个第三方服务器192。
客户端设备110可以执行自动化助理客户端113。自动化助理客户端118可以是与客户端设备110的操作系统分离的应用(例如,安装在操作系统“之上”)——或者可以替代地由客户端设备110的操作系统直接实现。如下文进一步描述的,自动化助理客户端118可以响应于由客户端设备110的用户接口组件112提供的各种请求而可选地与基于云的自动化助理组件115中的一个或多个交互。此外,并且也如下所述,客户端设备110的其他引擎可以可选地与基于云的自动化助理组件115中的一个或多个交互。
一个或多个基于云的自动化助理组件115可以被实现在经由一个或多个局域网(“LAN”,包括Wi-Fi LAN、蓝牙网络、近场通信网络、网状网络等)、广域网(“WAN”,包括互联网等)和/或其他网络通信地耦合到客户端设备110的一个或多个计算系统(例如,统称为“云”或“远程”计算系统的服务器)上。基于云的自动化助理组件115与客户端设备110的通信耦合大体由图1的1991指示。此外,在一些实施方式中,客户端设备110可以经由一个或多个网络(例如,LAN和/或WAN)与其他客户端设备(未描绘)通信地耦合。
一个或多个基于云的自动化助理组件115还可以经由一个或多个网络(例如,LAN、WAN和/或其他网络)与一个或多个第一方服务器191和/或一个或多个第三方服务器通信地耦合。基于云的自动化助理组件115与一个或多个第一方服务器191的通信耦合大体由图1的1992指示。此外,基于云的自动化助理组件115与一个或多个第三方服务器192的通信耦合大体由图1的1993指示。在一些实施方式中,并且虽然未在图1中描绘,但是客户端设备可以附加地或替代地经由一个或多个网络(例如,LAN、WAN和/或其他网络)与一个或多个第一方服务器191和/或一个或多个第三方服务器通信地耦合。
自动化助理客户端113通过其与一个或多个基于云的自动化助理组件115的交互可以形成从用户的角度看起来是自动化助理120的逻辑实例的东西,客户端设备110的用户可以利用自动化助理120的逻辑实例参与人机对话。例如,由虚线所包围的自动化助理120的实例包括客户端设备110的自动化助理客户端113和一个或多个基于云的自动化助理组件115。因此应当理解,与在客户端设备110上执行的自动化助理客户端113接洽的每个用户实际上可以与他或她自己的自动化助理120的逻辑实例(或在家庭或其他用户组之间共享和/或在多个自动化助理客户端113之间共享的自动化助理120的逻辑实例)接洽。尽管在图1中仅示出了客户端设备110,但是可以理解,一个或多个基于云的自动化助理组件115可以另外服务于许多附加的客户端设备组。
如本文所使用的,第一方设备或系统(例如,一个或多个第一方服务器191)指由与控制本文提及的自动化助理120的一方相同的一方控制的系统。例如,一个或多个第一方服务器191可以指托管由与控制本文提及的自动化助理120的一方相同的一方控制的搜索引擎服务、通信服务(例如电子邮件、SMS消息传递等)、导航服务、音乐服务、文档编辑或共享服务和/或其他服务的系统。相比之下,第三方设备或系统(例如,一个或多个第三方服务器192)指由与控制本文提及的自动化助理120的一方不同的一方控制的系统。例如,一个或多个第三方服务器192可以指托管相同服务的系统,但是那些服务由与控制本文提及的自动化助理120的一方不同的一方控制。
客户端设备110可以包括例如以下中的一个或多个:台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户的交通工具的计算设备(例如,车载通信系统、车载娱乐系统、车载导航系统)、交互式独立扬声器(例如,具有或没有显示器)、智能电器(诸如智能电视或智能洗衣机/烘干机)、包括计算设备的用户的可穿戴装置(例如,具有计算设备的用户的手表、具有计算设备的用户的眼镜、虚拟或增强现实计算设备)、和/或能够接收指向自动化助理120的用户输入的任何IoT设备。可以提供附加的和/或替代的客户端设备。
在各种实施方式中,客户端设备110可以包括一个或多个存在传感器111,一个或多个存在传感器111被配置为在来自对应用户的批准下提供指示检测到的存在——特别是人类存在——的信号。在那些实施方式中的一些中,自动化助理120可以至少部分基于用户在客户端设备110处(或在与客户端设备110的用户相关联的另一计算设备处)的存在来标识客户端设备110(或与客户端设备110的用户相关联的另一计算设备)以满足口头话语(或指向自动化助理120的其他输入)。可以通过下述方式来满足口头话语(或指向自动化助理120的其他输入):在客户端设备110和/或与客户端设备110的用户相关联的其他计算设备处(例如,可听地和/或视觉地)渲染响应内容,使得客户端设备110和/或与客户端设备110的用户相关联的其他计算设备受到控制,和/或使得客户端设备110和/或与客户端设备110的用户相关联的其他计算设备执行任何其他动作以满足口头话语(或指向自动化助理120的其他输入)。如本文所述,自动化助理120可以利用基于存在传感器111确定的数据来基于用户附近或最近附近的位置确定客户端设备110(或其他计算设备),并仅向客户端设备(或那些其他计算设备)提供对应的命令。在一些附加或替代实施方式中,自动化助理120可以利用基于存在传感器111确定的数据来确定是否有任何用户(任何用户或特定用户)当前靠近客户端设备110(或其他计算设备),并且可以基于靠近客户端设备110(或其他计算设备)的用户来可选地抑制向和/或从客户端设备110(或其他计算设备)提供数据。
存在传感器111可以以各种形式出现。例如,客户端设备110可以配备有一个或多个数码相机,这些数码相机被配置为捕获和提供指示在它们的视野中检测到的移动的信号。附加地或替代地,客户端设备110可以配备有其他类型的基于光的存在传感器111,诸如测量从它们的视野内的物体辐射的红外(“IR”)光的被动红外(“PIR”)传感器。附加地或替代地,客户端设备110可以配备有检测声波(或压力波)的存在传感器111,诸如一个或多个麦克风。
附加地或替代地,在一些实施方式中,存在传感器111可以被配置为检测与人类存在或设备存在相关联的其他现象。例如,在一些实施例中,客户端设备110可以配备有存在传感器111,存在传感器111检测由例如由用户携带/操作的其他计算设备(例如,移动设备、可穿戴计算设备等)和/或其他计算设备发射的各种类型的无线信号(例如,诸如无线电、超声、电磁等的波)。例如,客户端设备110可以被配置为发射人类无法察觉的波,诸如超声波或红外波,这些波可以被其他计算设备(例如,经由超声/红外接收器,诸如启用了超声的麦克风)检测到。
附加地或替代地,客户端设备110可以发射其他类型的人类无法察觉的波,诸如可以被由用户携带/操作的其他计算设备(例如,移动设备、可穿戴计算设备等)检测到并用于确定用户的特定位置的无线电波(例如,Wi-Fi、蓝牙、蜂窝等)。在一些实施方式中,GPS和/或Wi-Fi三角测量可以用于例如基于去往/来自助理设备的GPS和/或Wi-Fi信号来检测人的位置。在其他实施方式中,客户端设备110可以单独或共同使用其他无线信号特性,诸如飞行时间、信号强度等,以基于通过由用户携带/操作的其他计算设备发出的信号来确定特定人的位置。
附加地或替代地,在一些实施方式中,客户端设备110可以执行语音识别以根据用户的语音识别用户。例如,自动化助理120的一些实例可以被配置为将语音与用户的配置文件相匹配,例如,用于提供/限制对各种资源的访问的目的。在一些实施方式中,然后可以例如通过客户端设备110的存在传感器111(以及可选的GPS传感器和/或加速度计)来确定说话者的移动。在一些实施方式中,基于这种检测到的移动,可以预测用户的位置,并且当至少部分基于客户端设备110和/或其他计算设备与用户的位置的接近度使得在客户端设备110和/或其他计算设备处渲染任何内容时可以假定这个位置为用户的位置。在一些实施方式中,可以简单地假定用户处于他或她与自动化助理120接洽的最后位置中,特别是如果自上次接洽之后没有经过多少时间。
客户端设备110进一步包括相应的用户接口组件112,其可以包括一个或多个用户接口输入设备(例如,麦克风、触摸屏、键盘和/或其他输入设备)和/或一个或多个用户接口输出设备(例如,显示器、扬声器、投影仪和/或其他输出设备)。此外,客户端设备110和/或任何其他计算设备可以包括用于存储数据和软件应用的一个或多个存储器、用于访问数据和执行应用的一个或多个处理器以及促进通过网络的通信的其他组件。由客户端设备110、其他计算设备和/或由自动化助理120执行的操作可以跨多个计算机系统分布。自动化助理120可以被实现为例如在通过网络(例如图1的网络199)彼此耦合的一个或多个位置中的一台或多台计算机上运行的计算机程序。
如上所述,在各种实施方式中,客户端设备110可以操作自动化助理客户端113。在各种实施方式中,自动化助理客户端113可以包括语音捕获/自动语音识别(ASR)/自然语言处理器(NLP))/文本到语音(TTS)模块114。在其他实施方式中,相应语音捕获/ASR/NLP/TTS模块114的一个或多个方面可以与自动化助理客户端113分开实现(例如,通过一个或多个基于云的自动化助理组件119)。
语音捕获/ASR/NLP/TTS模块114可以被配置为执行一个或多个功能,这些功能包括例如:捕获用户的语音(例如经由相应的麦克风(其在一些情况下可以包括一个或多个存在传感器105)的语音捕获);使用存储在机器学习(ML)模型数据库113A中的ASR模型将捕获的音频转换为识别文本和/或其他表示或嵌入(ASR);使用存储在ML模型数据库113A中的自然语言处理(NLP)模型来解析和/或注释识别文本;和/或使用存储在ML模型数据库113A中的语音合成模型将文本转换为语音。这些ML模型的实例可以本地存储在客户端设备110处和/或可由客户端设备110(例如,通过图1的网络199)访问。在一些实施方式中,因为一个或多个助理输入设备106可能在计算资源(例如,处理器周期、存储器、电池等)方面相对受限,所以在客户端设备110本地的相应的语音捕获/ASR/NLP/TTS模块114可以被配置为使用语音识别模型将有限数量的不同口头短语转换为文本(或其他形式,诸如较低维嵌入)。一些语音输入可以被发送到一个或多个基于云的自动化助理组件115,其可以包括基于云的ASR模块116、基于云的NLP模块117和/或基于云的TTS模块118。
基于云的ASR模块116可以被配置为利用几乎无限的云资源以使用存储在ML模型数据库113A中的ASR模型将由语音捕获/ASR/NLP/TTS模块114捕获的音频数据转换成文本(然后可以将其提供给基于云的NLP模块117)。基于云的TTS模块118可以配置为利用几乎无限的云资源以使用存储在ML模型数据库113A中的语音合成模型将文本数据(例如,由自动化助理120制定的文本)转换成计算机生成的语音输出。在一些实施方式中,基于云的TTS模块118可以将计算机生成的语音输出提供给客户端设备110和/或其他计算设备以例如使用客户端设备110和/或其他计算设备的扬声器直接输出。在其他实施方式中,由自动化助理120使用基于云的TTS模块118生成的文本数据(例如,包括在命令中的客户端设备通知)可以被提供给客户端设备110和/或其他计算设备的语音捕获/ASR/NLP/TTS模块114,其然后可以使用存储在ML模型数据库113A中的语音合成模型将文本数据本地转换成计算机生成的语音,并使得计算机生成的语音经由客户端设备110和/或其他计算设备的扬声器渲染。
基于云的NLP模块117处理由用户经由客户端设备110和/或其他计算设备的用户接口组件112生成的自然语言输入,并且可以生成注释输出以供自动化助理120的一个或多个其他组件使用。例如,基于云的NLP模块117可以处理由用户经由客户端设备110的用户接口组件的112生成的自然语言自由形式输入(例如,口头输入和/或键入输入)。基于处理自然语言自由形式输入而生成的注释的输出可以包括自然语言输入的一个或多个注释以及可选的自然语言输入的一个或多个(例如,所有)术语。这些注释可以包括例如基于处理自然语言输入而确定的意图、与确定的意图相关联的参数的槽值、对应于包括在实体的自然语言输入中的实体的标签、词性、和/或包括在自然语言输入中的其他信息、和/或其他注释。
在一些实施方式中,基于云的NLP模块117被配置为标识和注释自然语言输入中的各种类型的语法信息。例如,基于云的NLP模块117可以包括词性标记器,该词性标记器被配置为用它们的语法角色来注释术语。在一些实施方式中,基于云的NLP模块117可以附加地和/或替代地包括实体标记器(未描绘),该实体标记器被配置为注释一个或多个片段中的实体引用,诸如对人(包括例如文学人物、名人、公众人物等)、组织、地点(真实的和虚构的)等的引用。在一些实施方式中,关于实体的数据可以被存储在一个或多个数据库中,诸如在知识图(未描绘)中。在一些实施方式中,知识图可以包括表示已知实体(以及在某些情况下,实体属性)的节点,以及连接节点和表示实体之间的关系的边。基于云的NLP模块117的实体标记器可以以高粒度级别(例如,以使得能够标识对诸如人的实体类别的所有引用)和/或较低粒度级别(例如,以使得能够标识对诸如特定人的特定实体的所有引用)注释对实体的引用。实体标记器可以依赖于自然语言输入的内容来解析特定实体和/或可以可选地与知识图或其他实体数据库通信以解析特定实体。
在一些实施方式中,基于云的NLP模块117可以附加地和/或替代地包括被配置成基于一个或多个上下文线索将对相同实体的引用进行分组或“聚类”的共指解析器(未描绘)。例如,可以利用共指解析器以基于在紧接在接收自然语言输入“lock it”之前渲染的客户端设备通知中提及的“front door lock”将自然语言输入“lock it”中的术语“it”解析为“front door lock”。
在一些实施方式中,基于云的NLP模块117的一个或多个组件可以依赖于来自基于云的NLP模块117的一个或多个其他组件的注释。例如,在一些实施方式中,命名的实体标记器可以依赖于来自共指解析器和/或依存句法分析器的注释来注释对特定实体的所有提及。此外,例如,在一些实施方式中,共指解析器可以依赖于来自依存句法分析器的注释来对相同实体的引用进行聚类。在一些实施方式中,在处理特定自然语言输入时,基于云的NLP模块117的一个或多个组件可以使用特定自然语言输入之外的相关数据来确定一个或多个注释——诸如,紧接在接收通知所基于的自然语言输入之前由自动化助理120在客户端设备110处渲染的通知。
尽管关于由基于云的组件115(例如,基于云的ASR模块115、基于云的NLP模块117和基于云的TTS模块118)中的一个或多个执行描述了特定功能,但是应当理解这是为了举例起见而不意味着限制。例如,在各种实施方式中,语音捕获/ASR/NLP/TTS模块114可以在客户端设备110处本地执行相同或相似的功能(模块114可以在设备上执行相同的功能),而无需与基于云的自动化助理组件115交互。
在各种实施方式中,客户端设备110还可以包括各种引擎。例如,并且如图1中所描绘的,客户端设备110还可以包括类别引擎130、履行引擎140、规则引擎150、预缓存引擎160和环境感测引擎170。在一些实施方式中,这些各种引擎可以专门在客户端设备110上执行。在附加或替代实施方式中,这些各种引擎中的一个或多个可以从客户端设备110远程执行(例如,作为基于云的自动化助理组件115的一部分)。
类别引擎130可以处理指向自动化助理120的用户输入以确定与包括在用户输入中的助理命令相关联的给定类别。与助理命令相关联的给定类别可以是多个不同类别之一。多个不同类别可以由分类法以不同程度的粒度来定义。例如,多个不同类别可以包括搜索查询类别、多媒体类别、IoT设备类别、通信类别、任务类别和/或其他类别。此外,这些不同类别中的每一个都可以包括一个或多个类别(或子类别)。例如,搜索查询类别可以包括对应于与人、地点和/或事物相关联的搜索查询的实体类别、对应于与股票、银行账户余额和/或其他金钱信息相关联的搜索查询的金钱类别、对应于与关于在特定位置处的天气的询问相关联的搜索查询的天气类别、对应于与餐馆相关联的搜索查询的餐馆类别、和/或与不同类型的搜索查询相关联的任何其他类别。此外,这些不同类别(或子类别)中的每一个都可以包括一个或多个类别(或进一步的子类别)。例如,实体类别可以包括:州类别、城市类别、商业位置类别、住宅位置类别和/或与位置相关联的其他类别,诸如地址类别;名人类别、联系人条目类别和/或与个人或个人信息相关联的其他类别(例如,电子邮件地址类别、电话号码类别等),等等。尽管上面的示例是关于搜索查询的类别描述的,但是应该理解这是为了说明针对给定类别的不同程度的粒度而不意味着是限制性的。例如,多媒体类别可以包括音乐类别,该音乐类别进一步包括流派类别,该流派类别进一步包括针对各种音乐流派的对应类别,等等。
在一些实施方式中,类别引擎130可以使得使用存储在ML模型数据库113A中的一个或多个ML模型来处理用户输入,以确定与包括在用户输入中的助理命令相关联的给定类别。例如,在用户输入是指向自动化助理120的口头话语的实施方式中,类别引擎130可以使得语音捕获/ASR/NLP/TSS模块114使用ASR模型来处理对应于口头话语的音频数据以生成口头话语的多个语音假设,并且可以选择给定语音假设作为对应于口头话语的识别文本。此外,类别引擎130可以使得语音捕获/ASR/NLP/TSS模块114使用一个或多个NLP模型来处理识别文本以注释对应于口头话语的识别文本。类别引擎130可以基于识别文本的注释来确定与助理命令相关联的给定类别。例如,假设用户提供了“我的XYZ股票今天表现如何”的口头话语。口头话语的注释可以对应于例如“金钱”、“股票”、“搜索查询”和/或其他注释。基于这些注释,类别引擎130可以确定口头话语对应于搜索查询类别、金钱信息类别、股票类别和/或另一个给定类别。作为另一个示例,在用户输入是指向自动化助理120的键入输入的实施方式中,类别引擎130可以使得语音捕获/ASR/NLP/TSS模块114使用一个或多个NLP模型来处理对应于键入输入的文本以注释文本,并且类别引擎130可以基于注释来确定与助理命令相关联的给定类别。
履行引擎140可以生成履行数据,该履行数据被用来执行本文描述的各种助理命令的履行。由履行引擎140获得的履行数据可以采取各种形式。例如,假设用户提供了口头话语“Where were the outdoor shots of‘The Shining’filmed?(‘闪灵’的户外镜头是在哪里拍摄的?)”。进一步假设可以使用存储在ML模型数据库113A中的ASR模型来处理捕获口头话语的音频数据以生成识别文本,并且可以使用存储在ML模型数据库113A中的NLP模型来处理识别文本,以确定用户的意图和与该意图相关联的参数的任何槽值。在该示例中,提供口头话语的用户的意图可以被确定为具有查询参数的槽值“Where were the outdoorshots of‘The Shining’filmed?”的搜索查询意图。可以将意图和查询参数的槽值提供给履行引擎130,并且履行引擎130可以生成搜索查询的履行数据。基于搜索查询生成的履行数据可以包括指示搜索查询的数据,诸如查询的文本、表示搜索查询的降维嵌入、和/或其他数据。此外,自动化助理120可以使得履行数据被传输到搜索引擎(例如,在第一方服务器191中的一个或多个和/或第三方服务器192中的一个或多个处执行)以获得响应内容以响应于搜索查询而呈现给用户。例如,响应内容可以包括GPS坐标或其他更明确的信息,例如“俄勒冈州,胡德山,森林界线小屋”。尽管以上示例是关于作为搜索查询的助理命令而提供的,但是应当理解,这是为了示例起见而不意味着限制。例如,其他助理命令可以包括订购商品/服务、启动定时器、设置提醒、发起电话呼叫、播放媒体、发送消息等。
在一些实施方式中,履行引擎140可以基于助理命令和/或与助理命令相关联的给定类别来确定执行助理命令的特定履行所需的履行数据的类型。履行数据的类型可以包括例如由客户端设备110生成(例如,由自动化助理120生成)的客户端设备数据、通过由客户端设备110可访问的一个或多个第三方应用生成的第三方应用数据、由第一方服务器191或第三方服务器192中的一个或多个生成的服务器数据、和/或其他类型的履行数据。继续上面的示例,并且如上所述,基于搜索查询“Where were the outdoor shots of‘TheShining’filmed?”生成的履行数据可以被传输到搜索引擎(例如,在第一方服务器191和/或第三方服务器192中的一个或多个处执行)以获得响应内容以响应于搜索查询而呈现给用户。在此示例中,执行获得响应内容的特定履行所需的履行可以是服务器数据,因为用于获得响应内容的搜索引擎由一个或多个服务器(例如,第一方服务器191和/或第三方服务器192中的一个或多个)执行。
在附加或替代实施方式中,履行引擎140可以基于与客户端设备110相关联的一个或多个上下文信号来确定执行助理命令的特定履行所需的履行数据的类型。一个或多个上下文信号可以包括例如给定服务器(例如,第一方服务器191和/或第三方服务器中的一个或多个)和/或在客户端设备110处可访问的给定应用(例如,一个或多个第一方应用和/或第三方应用)的能力、给定应用(例如,一个或多个第一方应用和/或第三方应用)是在客户端设备110的前台还是后台中运行、和/或与客户端设备110相关联的其他上下文信号。自动化助理120可以基于下述各项来确定给定服务器和/或给定应用的能力:给定服务器和/或给定应用向自动化助理120提供能力的指示(例如,通过发布给定服务器和/或给定应用可以向自动化助理120履行的一个或多个助理命令)、由给定应用当前显示在客户端设备110的前台中的内容、给定服务器和/或给定应用的预期实体类型匹配包括在给定助理命令中的实体类型、和/或其他信号。
履行数据的类型可以包括例如由客户端设备110生成(例如,由自动化助理120生成)的客户端设备数据、通过由客户端设备110可访问的一个或多个第三方应用生成的第三方应用数据、由第一方服务器191或第三方服务器192中的一个或多个生成的服务器数据、和/或其他类型的履行数据。继续上面的示例,并且如上所述,基于搜索查询“Where werethe outdoor shots of‘The Shining’filmed?”生成的履行数据可以被传输到搜索引擎(例如,在第一方服务器191和/或第三方服务器192中的一个或多个处执行)以获得响应内容以响应于搜索查询而呈现给用户。在此示例中,执行获得响应内容的特定履行所需的履行可以是服务器数据,因为用于获得响应内容的搜索引擎由一个或多个服务器(例如,第一方服务器191和/或第三方服务器192中的一个或多个)执行。
规则引擎150可以确定给定类别是否对应于一个或多个特定类别。一个或多个特定类别可以包括多个不同类别的子集并且可以类似地以不同程度的粒度来定义。在一些实施方式中,规则引擎150可以使用存储在规则数据库150A中的一个或多个规则来确定给定类别是否对应于一个或多个特定类别。在这些实施方式中,一个或多个规则可以包括例如指示与给定类别相关联的任何助理命令对应于一个或多个特定类别(例如,某些类型的查询可以始终使用某些类型的履行数据来履行等)的用户定义的规则、指示与给定类别相关联的任何助理命令对应于一个或多个特定类别(例如,金钱信息查询、医疗查询、事件查询等)的默认规则、指示与给定类别相关联的先前助理命令对应于一个或多个特定类别的推断规则、和/或其他规则。在附加或替代实施方式中,规则引擎150可以使用存储在ML模型数据库113A中的一个或多个ML模型来确定给定类别是否对应于一个或多个特定类别。在这些实施方式中,可以训练一个或多个ML模型以基于处理给定类别的指示来生成针对给定类别的语义嵌入(或任何其他较低维表示)。可以在嵌入空间中将语义嵌入与针对一个或多个特定类别的先前生成的嵌入进行比较,并且如果语义嵌入在先前生成的嵌入的对应一个的阈值距离内,则可以认为给定类别对应于一个或多个特定类别。
在一些实施方式中,响应于确定给定类别对应于一个或多个特定类别,自动化助理120可以基于执行助理命令的特定履行所需的履行数据的类型来生成请求用户同意传输包括履行数据的请求的提示。例如,如果需要来自服务器(例如,第一方服务器191和/或第三方服务器192中的一个或多个)的服务器数据来执行特定履行,并且给定类别对应于一个或多个特定类别,则自动化助理120可以生成请求用户同意传输请求以获得服务器数据以执行特定履行的提示。作为另一示例,如果需要来自在客户端设备110处可访问(例如,安装在客户端设备110上或由客户端设备110通过网络199可访问)的第三方应用的第三方应用数据来执行特定履行,并且给定类别对应于一个或多个特定类别,那么自动化助理120可以生成请求用户同意传输请求以获得第三方应用数据以执行特定履行的提示。此外,自动化助理120可以使得提示经由客户端设备110的一个或多个用户接口组件112(例如,可听地和/或视觉地)被提供以呈现给用户。然而,响应于确定给定类别不对应于一个或多个特定类别,自动化助理120可以传输履行数据以获得响应内容而不提示用户。
例如,假设用户提供“我的XYZ股票今天怎么样”的口头话语,并且类别引擎130确定该口头话语对应于金钱信息类别。进一步假设履行引擎140确定,为了获得对口头话语的响应内容(例如,关于用户的XYZ股票的股票更新),自动化助理120需要向与用户的金融机构相关联的给定第三方服务器传输请求。此外,假设规则引擎150基于用户先前定义指示与金钱信息相关的任何搜索查询对应于一个或多个特定类别的规则(或默认规则)来确定金钱信息类别对应于一个或多个特定类别。因此,自动化助理120可以生成请求用户同意向与用户的金融机构相关联的给定第三方服务器传输请求的提示。响应于从客户端设备110的用户接收到对传输请求的同意,自动化助理120可以使得请求被传输。在传输请求时,自动化助理120可以可选地包括请求本身和/或连同请求一起传输的其他数据(例如,捕获口头话语的音频数据)不能由与用户的金融机构相关联的给定第三方服务器(例如,非暂时性地)远程存储的指示。因此,自动化助理120可以确保客户端设备110的用户的特定数据是安全且私密的,因为用户知道正在从客户端设备110传输的任何数据并且因为传输的任何数据不会在除了在客户端设备110本地之外的任何地方持续存在。
相比之下,假设用户响应于自动化助理120提供用于呈现给用户的提示而不同意传输请求。在该示例中,自动化助理120可以在客户端设备处本地生成客户端数据作为助理命令的替代履行。例如,预缓存引擎160可以具有先前缓存的用于助理命令的履行的内容。但是,该预缓存的用于助理命令的履行的内容可能不对应于该助理命令的特定履行所需的内容。相反,自动化助理120可以使用该预缓存的内容作为助理命令的替代履行。继续上面的示例,预缓存引擎160可以具有先前缓存的与XYZ股票的股票代码或XYZ股票的历史趋势相关联的内容。因此,如果用户不同意向与用户的金融机构相关联的给定第三方服务器传输请求以进行实时更新,则自动化助理120可以使得客户端设备110本地的该预缓存的内容被提供以呈现给客户端设备110的用户。
预缓存引擎160可以周期性地向各种服务器和/或第三方应用传输请求以获得预缓存的内容。在一些实施方式中,预缓存引擎160可以获得针对由客户端设备的用户和/或其他用户提供的阈值数量的频繁助理命令的预缓存的内容。例如,如果用户频繁请求股票更新,那么预缓存引擎160可以获得针对股票更新的预缓存的内容(例如,股票代码、历史趋势、未来预测等)。预缓存的内容可能先前已经由自动化助理120通过下述方式获得:先前存储响应于助理命令的最近实例而获得的内容(其中,用户先前同意传输请求),在一天中的特定时间请求特定内容项(例如,每天早上预缓存关于用户的特定股票或其他特定股票的信息(例如,基于受欢迎程度),和/或其他方式。作为另一示例,如果用户频繁地提供智能设备控制命令,那么预缓存引擎160可以获得预缓存的内容以控制与客户端设备110的用户相关联的一个或多个智能设备。通过提供预缓存的内容,客户端设备110的用户仍然被提供一些响应内容,尽管它可能不是客户端设备110的用户最初期望的特定履行。
在附加或替代实施方式中,自动化助理120可以基于用户输入的特征来生成请求用户同意传输包括履行数据的请求的提示,并且可以提供提示以呈现给用户。在这些实施方式中,即使包括在用户输入中的助理命令的给定类别不对应于如本文所述的一个或多个特定类别,自动化助理120也可以基于用户输入的特征来生成提示。用户输入的特征可以包括例如当用户输入是口头输入时与使用ASR模型(例如,经由语音捕获/ASR/NLP/TTS模块114和/或ASR模块116)生成的每个语音假设相关联的对应值、当用户输入是口头输入时口头话语的音频水平、和/或用户输入的其他特征。例如,如果自动化助理120对被预测为对应于口头话语(例如,基于多个语音假设的对应值确定)的识别文本没有信心,则自动化助理120可以生成请求用户验证口头话语指向自动化助理120的提示。这也为用户提供了纠正任何ASR错误的机会。作为另一示例,如果自动化助理120确定在客户端设备110处检测到的口头话语的音频水平未能满足阈值噪声水平,那么自动化助理120可以生成请求用户验证口头话语指向自动化助理120的提示。换句话说,自动化助理120可以分析用户输入的特征以确定用户输入是否是无意的和/或被误解的,并且在可选地还请求用户同意传输请求的同时在提示中包括对此的指示。
在各种实施方式中,诸如当用户输入对应于客户端设备110的用户的口头话语时,环境感测引擎170可以使用存储在ML模型数据库113A中的一个或多个环境噪声模型来处理捕获口头话语的音频数据以确定音频数据是否还捕获对应于给定类别的环境噪声。环境噪声的给定类别也可以是也以不同程度的粒度定义的多个不同类别之一。例如,环境噪声的多个不同类别可以包括会话类别、通勤类别、多媒体类别和/或其他类别。此外,环境噪声的多个不同类别可以包括类似于助理命令的多个不同类别的一个或多个类别(或子类别)。例如,会话类别可以包括(例如,使用语音识别模型标识的)多个不同用户的类别。
特别地,音频感测引擎170可以使用环境噪声模型来处理对应于口头话语的音频数据以生成与客户端设备110的环境的一个或多个声学属性相关联的输出(例如,环境的噪声水平、在环境中检测到的环境噪声的分类、和/或环境的其他声学属性)。可以基于多个训练实例来训练环境噪声模型,每个训练实例包括训练实例输入和训练实例输出。训练实例输入可以各自包括捕获口头话语的音频数据,并且对应的训练实例输出可以包括对应于在音频数据中捕获的环境噪声水平和/或也在音频数据中捕获的噪声的类型(例如,人们谈话(以及可选的这些人的身份)、车辆移动、背景中播放的电视节目或电影、和/或其他类型的噪声)的地面真实标签。
在一些实施方式中,跨环境噪声模型生成的输出可以是对应于当接收到口头话语时用户所在的环境的噪声水平(例如,分贝水平)的值和/或对应于在当接收到口头话语时用户所在的环境中检测到的噪声的类型的一个或多个标签。例如,如果音频数据对应于在客户端设备110的用户乘坐公共汽车上下班通勤时捕获的音频数据,那么基于处理音频数据跨声学模型生成的输出可以是基于由公共汽车产生的噪声的“通勤”和/或“公共汽车”标签,和/或基于公共汽车移动检测到的分贝水平(例如,90dB等)。在附加或替代实施方式中,跨环境噪声模型生成的输出可以是对应于在当接收到口头话语时用户所在的环境中检测到的噪声的类型的一个或多个标签,以及与一个或多个标签中的每一个相关联的相应度量(例如,二元值、概率、对数似然和/或其他度量)。例如,如果音频数据对应于在客户端设备110的用户乘坐公共汽车上下班通勤时捕获的音频数据,那么基于处理音频数据跨声学模型生成的输出可以是相关联的概率为0.6的“公共汽车”标签和相关联的概率为0.4的“汽车”标签,或相关联的值为1.0的“公共汽车”标签和相关联的值为0.0的“汽车”标签。
在这些实施方式的一些版本中,自动化助理120可以生成提示,该提示标识在音频数据中检测到的任何环境噪声并且以与上述相同或相似的方式请求客户端设备110的用户同意向第三方应用和/或服务器传输请求以获得响应内容。基于响应于提示接收到的进一步的用户输入,自动化助理112可以或可以不将请求传输到第三方应用和/或服务器。在那些实施方式的一些附加或替代版本中,在传输请求以获得响应于口头话语的响应内容时,自动化助理120可以包括不能由接收和处理请求的第三方应用和/或服务器(例如,非暂时性地)存储连同请求一起传输的任何音频数据的指示。因此,自动化助理120可以确保客户端设备110的用户的特定数据是安全且私密的,因为用户知道正在从客户端设备110传输(即使在音频数据中被无意捕获)的任何数据并且因为传输的任何数据不会在除了客户端设备110本地之外的任何地方持续存在。
虽然图1是关于具有单个用户的单个客户端设备描述的,但是应该理解这是为了举例而不意味着限制。例如,用户的一个或多个附加客户端设备也可以实现本文描述的技术。这些附加客户端设备可以(例如,通过网络199)与客户端设备110通信。作为另一个示例,给定客户端设备可以由共享设置(例如,用户组、家庭)中的多个用户使用。
通过使用本文描述的技术,可以实现一个或多个技术优势。例如,本文描述的技术使得自动化助理能够限制何时在客户端设备上本地生成的数据和/或在客户端设备上本地生成的什么数据被传输到服务器和/或第三方应用,从而提高用户数据的安全性和隐私。例如,本文描述的技术可以在传输特定数据之前主动提示用户,并且可以在特定数据被传输之前要求响应于提示的肯定输入,或者如果未接收到肯定输入(例如,代替接收到,输入否定)则可以阻止特定数据的传输。这可以确保特定数据保持安全而不依赖于用户在发出助理命令之前手动指定特定数据是否应该保持安全。
作为另一个示例,本文描述的技术使得自动化助理能够选择性地通知用户何时和/或什么数据将响应于由用户提供的助理命令而从客户端设备传输,并且使得用户能够提供简明的输入(例如,口头的“是”或“否”,或单击图形界面元素)来指示是否应该传输此类数据。这种简明的输入可以比例如导航自动化助理应用的菜单以手动标识数据设置和指定那些数据设置可能需要的多个输入更高效。此外,结合自动化助理请求提供提示使得用户能够更容易地理解用户对提示的响应将应用于哪种(哪些)类型的数据,而不是手动定义与各种类别相关联的规则,其可能对用户来说是迟钝的。此外,用户对提示的响应可以用于指示是否应该传输未来用户数据(例如,具有相同的一个或多个类别)。这可以减少或消除用户提供与未来用户数据的传输有关的未来用户输入的需要。
现在转向图2,描绘了图示确定是否向服务器传输请求以获得在执行助理命令的特定履行中利用的服务器数据的示例方法200的流程图。为方便起见,参考执行操作的系统来描述方法200的操作。方法200的该系统包括一个或多个处理器和/或计算设备的其他组件(例如,图1的客户端设备110、图3A和图3B的客户端设备310、图5A和图5B的客户端设备410、图7A和图7B的客户端设备710和/或图8的计算设备810、一个或多个服务器和/或其他计算设备)。此外,虽然以特定顺序示出方法200的操作,但这并不意味着限制。可以重新排序、省略和/或添加一个或多个操作。
在框252处,系统经由用户的客户端设备接收指向自动化助理的用户输入。用户输入可以包括要由自动化助理执行的助理命令。在一些实施方式中,用户输入可以是在由客户端设备的麦克风生成的音频数据中捕获的口头输入,而在附加或替代实施方式中,用户输入可以是经由客户端设备的输入设备检测到的键入输入。
在框254处,系统在客户端设备处本地处理用户输入以确定与包括在用户输入中的助理命令相关联的给定类别,该给定类别是多个不同类别之一。可以以不同程度的粒度来定义助理命令的给定类别(例如,关于图1的类别引擎130所描述的)。在一些实施方式中,诸如当用户输入是口头话语时,系统可以使用设备上ASR模型来处理捕获口头话语的音频数据以生成识别文本。此外,系统可以使用NLP模型来处理识别文本以生成针对识别文本的注释,并且系统可以基于注释来确定给定类别。在附加或替代实施方式中,诸如当用户输入是键入输入时
在框256处,系统确定是否需要服务器数据来执行助理命令的特定履行。换句话说,系统确定是否需要向服务器(例如,图1的第一方服务器191和/或第三方服务器192中的一个或多个)传输请求以获得对包括在用户输入中的助理命令的响应内容。系统可以基于例如指示需要服务器数据来执行助理命令的特定履行的履行数据的类型、各种服务器的能力和/或其他标准来确定请求是否需要被传输到服务器。如果在框256的迭代处,系统确定不需要服务器数据来执行助理命令的特定履行,则系统进行到框258。在框258处,系统使得客户端设备生成并利用数据来执行助理命令的特定履行。例如,如果用户输入包括设置定时器、设置提醒的助理命令和/或可以在客户端设备处本地执行的任何其他助理命令,那么系统可以生成并利用客户端数据来执行设置定时器、设置提醒等的特定履行。作为另一个示例,如果用户输入包括指向第三方应用的助理命令,那么系统可以利用本文关于图4描述的技术来获得第三方应用数据。当经由用户的客户端设备接收到指向自动化助理的附加用户输入时,系统返回到框252并执行方法200的后续迭代。
如果在框256的迭代处,系统确定需要服务器数据来执行助理命令的特定履行,则系统进行到框260。例如,如果用户输入包括执行搜索查询、控制IoT设备的助理命令和/或其中需要来自第一方服务器和/或第三方服务器的服务器数据来执行特定履行的任何其他助理命令,则系统进行到框260。在框260处,系统确定给定类别是否对应于一个或多个特定类别。系统可以使用一个或多个规则(例如,关于图1的规则引擎150描述的)来确定给定类别是否对应于一个或多个特定类别。
如果在框260的迭代处,系统确定给定类别不对应于一个或多个特定类别,则系统进行到框270。下面描述框270。如果在框260的迭代处,系统确定给定类别确实对应于一个或多个特定类别,则系统进行到框262。在框262处,系统生成请求用户同意向服务器传输请求以获得执行特定履行所需的服务器数据的提示。在框264处,系统使得提示经由客户端设备被提供以呈现给用户。例如,假设用户输入包括在服务器处执行搜索查询以寻找离婚律师的助理命令,并且假设与获得法律服务相关的搜索查询对应于一个或多个特定类别。在此示例中,系统可以生成提示,该提示指示自动化助理需要向服务器传输请求以执行特定履行(例如,获得离婚律师的搜索结果),并请求用户同意向服务器传输搜索查询。
在框266处,系统确定是否接收到同意向服务器传输请求以获得服务器数据的附加用户输入。如果在框266的迭代处,系统确定没有接收到附加用户输入或者已经接收到不同意传输请求的附加输入,则系统进行到框268。例如,如果系统确定用户提供了不同意传输的附加用户输入(例如,关闭提示或对提示做出否定响应),或者如果系统确定用户忽略了提示,则系统可以制止向服务器传输请求。在一些实施方式中,系统可以仅在使得提示被提供以呈现给用户的阈值持续时间内监视附加用户输入。
在框268处,系统使得客户端设备生成并利用客户端数据来执行助理命令的替代履行。在一些实施方式中,诸如当预缓存的内容可用于助理命令时,被获得以执行替代履行的客户端数据可以包括获得预缓存的内容(例如,关于图1的预缓存引擎160描述的)。在其他实施方式中,系统可以在客户端设备中搜索可以用于执行助理命令的任何替代履行的任何其他数据。在一些实施方式中,系统可以使得在没有获得服务器数据的情况下不能执行履行的指示。当经由用户的客户端设备接收到指向自动化助理的附加用户输入时,系统返回到框252并执行方法200的后续迭代。
如果在框266的迭代处,系统确定同意传输请求的附加用户输入,则系统进行到框270。在框270处,系统生成要传输到服务器以获得服务器数据的请求。在框272处,系统使得请求被传输到服务器以获得服务器数据。在框274处,系统使得客户端设备利用接收到的服务器数据来执行助理命令的特定履行。换句话说,如果用户同意系统向服务器传输请求以获得服务器数据,则系统可以照常执行助理命令的特定履行。在一些实施方式中,在生成要传输到服务器的请求时,系统可以包括从客户端设备传输到服务器的任何客户端数据不应该在服务器处存储或持续存在的指示。在一些实施方式中,用户同意传输请求可以用于更新一个或多个规则。例如,如果用户同意向服务器传输寻找离婚律师的搜索查询,则系统在未来可以不提示用户同意传输与获得法律服务相关的搜索查询。
现在转向图3A和图3B,描绘了确定是否向服务器传输请求以获得在执行助理命令的特定履行中利用的服务器数据的各种非限制性示例。在客户端设备310(例如,图1的客户端设备110的实例)处本地执行的自动化助理可以执行本文描述的一个或多个操作,诸如图2的方法200的操作。尽管在图3A和图3B中描绘的客户端设备310是具有麦克风和扬声器的独立交互式扬声器,但是应当理解这是为了举例而不意味着限制。例如,客户端设备310可以附加地或替代地是如图5A和图5B中所描绘的移动设备、如图7A和图7B中所描绘的具有显示器的独立交互式扬声器、车载客户端设备或系统、台式计算机、膝上型计算机、和/或任何其他客户端设备。
具体参考图3A,假设用户301提供了指向自动化助理的口头话语352A“Assistant,how is my XYZ stock doing today?(助理,我的XYZ股票今天表现如何?)”。捕获口头话语的音频数据可以由客户端设备310的麦克风检测,并且可以使用设备上ASR模型来处理以生成对应于口头话语352A的识别文本。在一些实施方式中,响应于确定自动化助理已经(例如,通过特定词或短语(例如,“助理”、“嘿,助理”等)、通过硬件或软件按钮按压、和/或通过其他方式)被调用,可以使用设备上ASR模型来处理音频数据。此外,可以使用设备上NLP模型来处理对应于口头话语352A的识别文本,以生成针对识别文本的注释和/或确定用户301提供口头话语352A的意图。例如,进一步假设自动化助理基于使用NLP模型生成的输出来确定股票询问的意图,确定股票参数的XYZ股票的槽值和股票价格参数的当前值,并确定包括口头话语中的助理命令的给定类别是一般搜索查询类别,或更具体地,金钱信息类别。在此示例中,自动化助理可以确定需要服务器数据来执行响应于股票询问向用户301提供股票更新的特定履行,因为自动化助理必须向服务器传输请求以获得针对口头话语352A的响应内容并获得XYZ股票的当前股票价格(例如,以确定用户的XYZ股票的当前值)。
此外,假设自动化助理确定与包括在口头话语352A中的助理命令相关联的金钱信息类别对应于触发自动化助理请求来自用户301的对向服务器传输请求的一个或多个特定类别的同意。在一些实施方式中,自动化助理可以基于一个或多个规则来确定金钱信息类别对应于一个或多个特定类别。一个或多个规则可以包括例如用户定义的规则、默认规则、推断规则和/或其他规则。例如,用户301可能先前已经定义了指示当标识出与获得金钱信息相关联的助理命令时应该提示用户301提供对将请求从客户端设备310传输出去的同意的规则。作为另一个示例,默认规则可以指示当标识出与获得金钱信息相关联的助理命令时应该提示用户301提供对将请求从客户端设备310传输出去的同意。作为又一示例,可以推断下述推断规则:当基于用户301先前限制访问金钱信息(例如,受密码保护的信息、之前取消的对获得金钱信息的其他请求等)标识出与获得金钱信息相关联的助理命令时应该提示用户301提供对将请求从客户端设备310传输出去的同意。尽管本文描述了特定规则,但应理解这是为了举例而不意味着限制。在附加或替代实施方式中,可以使用ML模型来处理给定类别的指示以确定它对应于一个或多个特定类别(例如,关于图1的类别引擎130描述的)。
响应于确定给定类别对应于一个或多个特定类别,自动化助理可以生成提示354A2“I can better answer your question by talking with acloud service,isthat okay?(我可以通过与云服务交谈来更好地回答你的问题,可以吗?)”,并且使得提示经由客户端设备310的扬声器被提供以呈现给用户301。值得注意的是,提示354A2请求用户301同意向服务器传输请求以获得响应内容以执行关于XYZ股票的特定履行。在一些实施方式中,可以提供附加信息354A1以连同提示354A2一起呈现给用户301。如图3A中所描绘的,附加信息354A1可以包括触发提示354A2的给定类别的指示,诸如“This is the firsttime you have asked me a question related to your stocks(这是你第一次问我与你的股票相关的问题)”。相应地,自动化助理可以通知用户301数据需要从客户端设备310传输出去以执行助理命令的特定履行,并且可以请求用户301同意将数据从客户端设备310传输出去。
进一步假设用户301提供同意向服务器传输请求以获得响应内容的附加口头话语356A“是”。在该示例中,自动化助理可以生成对服务器数据的请求,如由358A1所指示,将对服务器数据的请求传输到服务器,如由358A2所指示,并接收服务器数据以执行助理命令的特定履行,如由358A3所指示。然后,自动化助理可以使得响应内容358A4“XYZ stock is upto$150per share,which is a 2.5%increase(XYZ股票高达每股150美元,这是2.5%的增加)”和响应内容385A5“Your XYZ stock now totals$900(您的XYZ股票现在总计900美元)”经由客户端设备310的扬声器被提供以呈现给用户301。在一些实施方式中,并且即使用户301请求向服务器传输请求,该请求也可以连同该请求(以及连同该请求一起传输的任何数据,例如,捕获口头话语352A的音频数据)不能(例如,非暂时性地)存储在服务器处的指示一起传输。以这些和其他方式,如果用户301指示期望数据通过包括数据不可以持续存在于除客户端设备310本身之外的任何地方的指示来从设备301传输出去,则自动助理可以执行助理命令的特定履行,同时还确保用户301的数据是安全的且私密的。在一些实施方式中,如果用户301随后提供包括被确定为属于金钱信息类别的助理命令的另一口头话语,则自动化助理可以不提示用户301同意,因为用户301先前同意向服务器传输请求。换言之,自动化助理可以基于用户301同意传输请求来生成推断规则,即可以向服务器传输与金钱信息类别相关联的助理命令而不提示用户301同意。
相比之下,并且具体参见图3B,进一步假设用户提供不同意向服务器传输请求以获得响应内容的附加口头话语356B“否”。在此示例中,自动化助理可以如由358B1所指示的获得设备数据以执行助理指令的替代履行。设备数据可以包括例如与金钱信息类别相关联的预缓存的内容(例如,使用图1的预缓存引擎160获得)和/或客户端设备310本地可用的任何其他内容。例如,响应内容358B2“The ticker symbol for XYZ stock on the New YorkStock Exchange is,ironically,XYZ(具有讽刺意味的是,纽约证券交易所上XYZ股票的股票代码是XYZ)”可以经由客户端设备310的扬声器被提供以呈现给用户301。响应内容358B2可以被认为是助理命令的替代履行,因为它不是用户301的期望内容,但它仍然与助理命令相关(例如,关于XYZ股票的信息)。在一些实施方式中,如果用户301随后提供包括被确定为属于金钱信息类别的助理命令的另一口头话语,则自动化助理可以不提示用户301同意,因为用户301先前不同意向服务器传输请求。换句话说,自动化助理可以基于用户301不同意传输请求来生成推断规则,即不能向服务器传输与金钱信息类别相关联的助理命令。因此,自动化助理可以提示用户301同意或获得附加设备数据以提供对后续口头话语的响应内容。
虽然本文关于向服务器传输单个请求以获得服务器数据以执行特定履行来描述图3A和图3B,但应当理解这是为了示例而不意味着限制。例如,为了执行特定履行数据,可能需要将多个请求传输到各种服务器和/或第三方应用。例如,第一请求可以被传输到由客户端设备310可访问的第三方应用以标识用户关于XYZ股票的金钱信息,并且第二请求可以被传输到第三方服务器以确定XYZ股票的当前股票价格。在该示例中,可以提示用户同意将请求传输到获得响应内容所需的每个服务器和/或第三方应用。因此,当在客户端设备310上本地生成的特定数据可以从客户端设备310传输出去时,可以通知用户301,并且可以向用户301提供机会来防止将该特定数据从客户端设备310传输出去。此外,即使用户301确实同意将特定数据从客户端设备310传输出去,该特定数据也可以连同该特定数据不能被存储在它被传输的任何地方的指示一起传输。
此外,虽然关于用户301简单地提供同意(例如,图3A中的口头话语356A“是”)和拒绝同意(例如,图3B中的口头话语356B“否”)来描述图3A和图3B,但是应当理解,这是为了举例而不意味着限制。例如,用户301可以进一步定义同意扩展的范围。例如,假设在图3A的示例中提供同意的口头话语是“Yes,always transmit requests for stock inquiries tothe server(是的,始终向服务器传输对股票询问的请求)”。在这种情况下,用户301已经提供了对传输对股票询问的请求的一揽子同意,并且在未来可以不提示用户提供同意(直到用户301另有指示)。此外,例如,假设在图3A的示例中提供同意的口头话语是“Yes,butjust for this stock(是的,但仅针对这只股票)”。在这种情况下,用户301已经提供了对传输对对XYZ股票(而不是其他股票)的股票询问的请求的一揽子同意,并且在未来可以提示用户301提供对关于XYZ股票的股票询问的同意,但将提示用户301针对其他股票提供同意。因此,不仅用户301可以提供或拒绝同意,而且用户301还可以提供各种程度的同意。
现在转向图4,描绘了图示确定是否向第三方应用传输请求以获得在助理命令的特定履行的执行中利用的第三方应用数据的示例方法400的流程图。为方便起见,参考执行操作的系统来描述方法400的操作。方法400的该系统包括一个或多个处理器和/或计算设备(例如,图1的客户端设备110、图3A和图3B的客户端设备310、5A和图5B的客户端设备410、图7A和图7B的客户端设备710和/或图8的计算设备810、一个或多个服务器和/或其他计算设备)的其他组件。此外,虽然以特定顺序示出方法400的操作,但这并不意味着限制。可以重新排序、省略和/或添加一个或多个操作。
在框452处,系统经由用户的客户端设备接收指向自动化助理的用户输入,该用户输入包括助理命令。在一些实施方式中,用户输入可以是在由客户端设备的麦克风生成的音频数据中捕获的口头输入,而在附加或替代实施方式中,用户输入可以是经由客户端设备的输入设备检测到的键入输入。
在框454处,系统确定是否需要第三方应用数据来执行助理命令的特定履行。换句话说,系统确定是否需要向第三方应用(例如,由客户端设备可访问)传输请求以获得对包括在用户输入中的助理命令的响应内容。系统可以基于例如指示需要第三方应用数据来执行助理命令的特定履行的履行数据的类型、由客户端设备可访问的各种第三方应用的能力、与在客户端设备上执行的第三方应用相关联的一个或多个上下文信号和/或其他标准来确定是否需要向第三方应用传输请求。在一些实施方式中,系统可以仅响应于确定助理命令的给定类别对应于一个或多个特定类别而确定是否需要第三方应用数据来执行助理命令的特定履行。
如果在框454的迭代处,系统确定不需要第三方应用数据来执行助理命令的特定履行,则系统进行到框456。在框456处,系统使得客户端设备生成并利用数据来执行助理命令的特定履行。例如,如果用户输入包括设置定时器、设置提醒的助理命令和/或可以在客户端设备处本地执行的任何其他助理命令,那么系统可以生成并利用客户端数据来执行设置定时器、设置提醒等的特定履行。作为另一个示例,如果用户输入包括指向服务器的助理命令,则系统可以利用本文关于图2描述的技术来获得服务器数据。当经由用户的客户端设备接收到指向自动化助理的附加用户输入时,系统返回到框452并执行方法400的后续迭代。
如果在框454的迭代处,系统确定需要第三方应用数据来执行助理命令的特定履行,则系统进行到框458。在框458处,系统生成请求用户同意向服务器传输请求以获得服务器数据的提示。在框460处,系统使得提示经由客户端设备被提供以呈现给用户。例如,假设用户输入包括用于询问银行账户余额的助理命令,并且假设安装在用户的客户端设备上的银行应用可以提供对用户询问的响应内容。在此示例中,系统可以生成提示,该提示指示自动化助理需要向银行应用传输请求以执行特定履行(例如,获得对询问的响应内容),并请求用户同意向银行账户应用传输搜索查询。
在框462处,系统确定是否接收到同意向第三方应用传输请求以获得第三方应用数据的附加用户输入。如果在框462的迭代处,系统确定没有接收到附加用户输入或者已经接收到不同意传输请求的附加输入,则系统进行到框464。在框464处,系统使得客户端设备生成并利用客户端数据来执行助理命令的替代履行。当经由用户的客户端设备接收到指向自动化助理的附加用户输入时,系统返回到框452并执行方法400的后续迭代。如果在框462的迭代处,系统确定同意传输请求的附加用户输入,则系统进行到框466。在框466处,系统生成要传输到第三方应用以获得第三方应用数据的请求。在框468处,系统使得请求被传输到第三方应用以获得第三方应用数据。在框470处,系统使得客户端设备利用接收到的第三方应用数据来执行助理命令的特定履行。可以以与图2的框266至274相同或相似的方式但关于第三方应用和第三方应用数据执行图4的框462至470。
虽然本文关于响应于包括助理命令的用户输入向第三方应用传输请求以获得第三方应用数据描述了图4,但是应当理解,这是为了举例而不意味着限制。例如,关于图4描述的技术可以利用于其中助理命令指示第三方应用应当响应于助理命令而执行动作的场景。例如,在利用第三方导航应用(和/或对应的第三方服务器)来提供到特定地址的方向的实施方式中,可以提示用户同意在向第三方导航应用(和/或对应的第三方服务器)传输任何请求之前传输包括地址的请求。
现在转向图5A和图5B,描述了确定是否向第三方应用传输请求以获得在执行助理命令的特定履行中利用的第三方应用数据的各种非限制性示例。在客户端设备510(例如,图1的客户端设备110的实例)处本地执行的自动化助理可以执行本文描述的一个或多个操作,诸如图4的方法400的操作。尽管在图5A和图5B中描绘的客户端设备510是移动设备,但是应该理解这是为了举例而不意味着限制。例如,客户端设备510可以附加地或替代地是如图3A和图3B中所描绘的独立交互式扬声器、如图7A和图7B中所描绘的具有显示器的独立交互式扬声器、车载客户端设备或系统、台式计算机、膝上型计算机、和/或任何其他客户端设备。
图5A和图5B中所描绘的客户端设备510可以包括各种用户接口组件,包括例如用于基于口头话语和/或其他可听输入来生成音频数据的麦克风、用于可听地渲染合成语音和/或其他可听输出的扬声器以及用于接收触摸输入和/或视觉地渲染转录和/或其他视觉输出的显示器590。此外,客户端设备510的显示器590包括可以由用户(例如,图3A和图3B的用户301)与之交互以使得客户端设备510执行一个或多个动作的各种系统接口元素591、592和593(例如,硬件和/或软件接口元素)。客户端设备510的显示器590使得用户能够通过触摸输入(例如,通过将用户输入指向显示器590或其部分)并且/或者通过口头输入(例如,通过选择麦克风接口元素594——或者只是通过说话而不必在客户端设备510处选择麦克风接口元素594(即,自动化助理可以监视一个或多个术语或短语、手势、注视、嘴部运动、嘴唇运动和/或用于激活口头输入的其他条件))与在显示器590上渲染的内容交互。
例如,并且具体参考图5A,假设客户端设备510的用户正在与如由511A所指示的餐馆预订应用(例如,由客户端设备510可访问的第三方应用)交互。进一步假设用户正在查看餐馆,如由520所指示的假想咖啡馆和如由530指示的示例餐馆。进一步假设客户端设备510的用户在查看餐馆时提供口头话语“Find a bankruptcy lawyer(寻找破产律师)”。在此示例中,自动化助理可以确定口头话语是否包括指向自动化助理的助理命令或者口头话语是否指向餐馆预订应用。在一些实施方式中,自动化助理可以确定第三方应用的能力以确定口头话语是指向自动化助理还是指向一个或多个第三方应用。例如,各种第三方应用可以向自动化助理发布对应能力列表,并且自动化助理可以维护各种第三方应用的对应能力列表,自动化助理可以分析由给定第三方应用当前在客户端设备510的前台中显示的内容以确定给定第三方应用的能力,自动化助理可以确定助理命令是否包括可以由一个或多个第三方应用处置的预期助理命令,等等。
例如,图5A中所描绘的搜索字段515A是与执行搜索的自动化助理相关联的搜索字段,而搜索字段550A是与餐馆预订应用相关联的搜索字段,用于执行对餐馆、美食类型和/或可经由餐馆预订应用访问的其他内容的搜索。在图5A的示例中,并且如上所述,口头话语可以是“Find a bankruptcy lawyer”。基于处理口头话语,自动化助理可以确定口头话语包括指向自动化助理的助理命令。例如,基于口头话语是对应于法律服务类别的搜索查询、基于餐馆预订应用不能够处置包括在法律服务类别中的搜索查询或不预期属于法律服务类别的搜索查询和/或本文描述的任何其他技术,自动化助理可以确定口头话语指向自动化助理,而不是第三方应用。响应于确定口头话语指向自动化助理,搜索字段515A可以可选地包括口头话语的转录。
此外,假设助理命令的法律服务类别对应于一个或多个特定类别,自动化助理可以生成并呈现请求用户同意向服务器(或与获得法律服务相关联的第三方应用)传输请求的提示560A“You asked me to find alawyer,can I use a cloud service to providethe best results?(你让我找律师,我可以使用云服务来提供最好的结果吗?)”以呈现给用户(例如,如图3A和图3B所描述的可听地和/或如图5A中所描绘的视觉地)。此外,可以连同提示560A一起视觉地渲染一个或多个对应的可选择元素。例如,第一可选择元素560A1“是”可以连同提示560A一起渲染,并且其当被选择时,使得自动化助理生成要传输到服务器以获得服务器数据作为对口头话语的响应内容的请求。此外,第二可选择元素560A2“否”也可以连同提示560A一起渲染,并且其当被选择时,使得自动化助理生成设备数据作为对口头话语的响应内容。用户还可以通过与元素595交互来关闭提示560A而不进行响应。
相比之下,并且具体参见图5B,假设口头话语只是“Find Bankruptcy(寻找破产)”。基于处理口头话语,自动化助理可以确定口头话语包括指向第三方应用的助理命令。例如,基于口头话语是包括明显实体“Bankruptcy(破产)”的搜索查询、基于餐馆预订应用能够处置包括实体的搜索查询和/或本文描述的任何其他技术,自动化助理可以确定口头话语指向自动化助理,而不是第三方应用。因此,自动化助理可以使得餐馆预订应用呈现指示存在名为破产酒吧的本地虚构酒吧的搜索结果540。响应于确定口头话语指向第三方应用而不是自动化助理,搜索字段550A可以可选地包括口头话语的转录。
尽管口头话语不是指向自动化助理的,但是自动化助理仍然可以生成并向用户呈现提示以进一步履行口头话语。例如,自动化助理可以生成提示560B“Would you like meto give you directions to Bankruptcy Bar?(你想让我给你到破产酒吧的方向吗?)”以呈现给用户(例如,如图3A和图3B所描述的可听地和/或如图5A中描绘的视觉地),该提示通过选择一个或多个对应图形元素560B1和/或560B2提供要呈现给用户的导航方向。值得注意的是,在获得搜索结果540时,自动化助理仍然可以包括任何捕获口头话语的音频数据不能由餐馆预订应用(例如,非暂时性地)远程存储以确保从客户端设备510传输出去的任何用户数据是安全的指示。
此外,虽然关于用户简单地提供或拒绝同意(例如,经由图5A中的对应图形元素560A1和560A2和/或图5B中的对应图形元素560B1和560B2)来描述图5A和图5B,但是应当理解这是为了举例而不是意味着限制。例如,用户可以经由未描绘的其他对应图形元素和/或经由其他用户输入进一步定义同意扩展的范围。例如,可以提供与各种程度的同意相关联的一个或多个附加对应图形元素以呈现给用户。因此,用户不仅可以提供或拒绝对特定请求的同意,而且用户还可以提供各种程度的同意,这些同意可以被利用于当标识出具有相同类别的未来助理命令时确定是否和/或何时提示用户。
现在转向图6,描绘了图示基于环境噪声来确定是否向服务器或第三方应用传输请求以获得在执行助理命令的特定履行中利用的数据的示例方法600的流程图。为方便起见,参考执行操作的系统来描述方法600的操作。方法600的该系统包括一个或多个处理器和/或计算设备(例如,图1的客户端设备110、图3A和图3B的客户端设备310、图5A和图5B的客户端设备410、图7A和图7B的客户端设备710和/或图8的计算设备810、一个或多个服务器和/或其他计算设备)的其他组件。此外,虽然以特定顺序示出方法600的操作,但这并不意味着限制。可以重新排序、省略和/或添加一个或多个操作。
在框652处,系统经由用户的客户端设备的一个或多个麦克风接收音频数据,该音频数据捕获指向自动化助理的口头话语。在框654处,系统使用本地存储在客户端设备上的设备上ASR模型来处理音频数据以标识包括在口头话语中的助理命令。在一些实施方式中,系统可以直接基于使用设备上ASR模型生成的输出来标识助理命令。在其他实施方式中,系统可以使用设备上NLP模型来处理使用设备上ASR模型生成的输出以生成一个或多个注释,并且系统可以基于注释来标识助理命令(以及可选地基于注释来标识与助理命令相关联的给定类别)。
在框656处,系统使用本地存储在客户端设备上的设备上环境噪声模型来处理音频数据以确定与在音频数据中捕获的环境噪声相关联的给定类别,该给定类别是以各种程度的粒度定义的多个不同类别之一。可以训练设备上环境噪声模型来对在包括口头话语的音频数据中捕获的环境噪声进行分类。例如,环境噪声可以对应于会话类别(例如,当用户提供口头话语时其他用户在背景中谈话)、多媒体类别(例如,在背景中播放的音乐、电视和/或其他媒体)和/或与环境噪声相关的其他类别。在环境噪声被分类到会话类别中的实施方式中,可以使用一个或多个语音识别模型来附加地或替代地处理音频数据,以在说话者嵌入可用的情况下标识正在谈话的其他用户。
在框658处,系统确定与环境噪声相关联的给定类别是否对应于一个或多个特定类别。在一些实施方式中,系统可以利用一个或多个规则来确定给定类别是否对应于一个或多个特定类别。一个或多个规则可以包括例如用户定义的规则、默认规则、推断规则和/或其他规则。例如,这些规则中的一个或多个可以指示如果当接收到助理命令时客户端设备的用户的语音曾经在环境噪声中被捕获(例如,用户在客户端设备的环境中,但是不是提供口头话语的用户),那么捕获该口头话语的音频数据不能从客户端设备传输到任何服务器或第三方应用。作为另一示例,这些规则中的一个或多个可以指示如果当接收到助理命令时环境噪声捕获音乐或其他媒体(例如,用户在客户端设备的环境中,但不是提供口头话语的用户),那么捕获该口头话语的音频数据始终可以从客户端设备传输到任何服务器或第三方应用。
如果在框658的迭代处,系统确定给定类别不对应于一个或多个特定类别,则系统进行到框660。在框660处,系统使得客户端设备获得并且利用来自服务器(例如托管第三方应用)或第三方应用的数据来执行助理命令的特定履行。例如,系统还可以实现图2的方法200和/或图4的方法400的操作中的一个或多个,以获得服务器数据或第三方应用数据以执行助理命令的特定履行(并且如果确定不向服务器或第三方应用传输请求,则可选地获得客户端数据)。例如,如果系统确定与环境噪声相关联的给定类别对应于一个或多个特定类别,则系统可以实现图2的方法200和/或图4的方法400的一个或多个操作,以确定是否需要服务器数据和/或第三方应用数据来执行特定履行。如果是这样,则系统可以包括音频数据也捕获环境会话的指示。然而,如果系统确定不需要服务器数据和/或第三方应用数据(例如,可以经由客户端设备在本地执行特定履行),则可以根本不提示用户。当经由用户的客户端设备接收到指向自动化助理的附加用户输入时,系统返回到框652并执行方法600的后续迭代。
如果在框658的迭代处,系统确定给定类别确实对应于一个或多个特定类别,则系统进行到框662。在框662处,系统生成要传输到服务器或第三方应用以获得数据以执行助理命令的特定履行的请求。在框664处,系统使得请求被传输到服务器或第三方应用以获得数据,该请求连同不能由服务器或第三方应用(例如,非暂时性地)存储被传输到服务器或第三方应用的任何音频数据的指示一起传输。在框666处,系统使得客户端设备利用接收到的数据来执行助理命令的特定履行。可以以与图2的框270至274相同或相似的方式执行图6的框662至666。
尽管图6中描绘的方法600的操作确实包括提示用户,但是应该理解这是为了清楚起见而不意味着限制。例如,图6的方法600的迭代可以包括图2的方法200和/或图4的方法400的各方面的迭代。例如,系统可以提示用户同意向服务器或第三方应用传输请求,并基于响应于提示接收到的进一步的用户输入来确定是否向服务器或第三方应用传输请求。
现在转向图7A和图7B,描绘了基于环境噪声来确定是否向服务器或第三方应用传输请求以获得在执行助理命令的特定履行中利用的数据的各种非限制性示例。在客户端设备710(例如,图1的客户端设备110的实例)处本地执行的自动化助理可以执行本文描述的一个或多个操作,诸如图6的方法600的操作。虽然在图7A和图7B中所描绘的客户端设备710是具有显示器的独立交互式扬声器,但应理解这是为了举例而不意味着限制。例如,客户端设备710可以附加地或替代地是如图3A和图3B中所描绘的独立交互式扬声器、如图5A和图5B中所描绘的移动设备、车载客户端设备或系统、台式计算机、膝上型计算机和/或任何其他客户端设备。
例如,并且具体参考图7A,假设用户701在由虚线包围的环境700中时提供指向自动化助理的口头话语752A“Assistant,is slime a liquid or solid?(助理,粘液是液体还是固体?)”,。捕获口头话语的音频数据可以由客户端设备710的麦克风检测,并且可以使用设备上ASR模型来处理以生成对应于口头话语752A的识别文本。在一些实施方式中,响应于确定自动化助理已经(例如,通过特定词或短语(例如,“助理”、“嘿。助理”等)、通过硬件或软件按钮按压、和/或通过其他方式)被调用,可以使用设备上ASR模型来处理音频数据。此外,可以使用设备上NLP模型来处理对应于口头话语752A的识别文本,以生成针对识别文本的注释和/或确定用户701在提供口头话语752A时的意图。例如,进一步假设自动化助理基于使用NLP模型生成的输出来确定搜索查询的意图,确定实体参数的粘液的槽值和状态参数的液体或固体,并确定包括在口头话语的助理命令的给定类别是一般搜索查询类别,或者更具体地是科学类别。在此示例中,自动化助理可以确定需要服务器数据来执行向用户701提供响应于搜索查询的答案的特定履行,因为自动化助理必须向服务器传输请求以获得针对口头话语752A的响应内容。
此外,假设自动化助理确定与包括在口头话语752A中的助理命令相关联的科学类别不对应于触发自动化助理请求来自用户701的对向服务器传输请求的同意的一个或多个特定类别。但是,如图7A的环境700中所描绘的,假设当接收到口头话语752A时,第一附加用户702和第二附加用户703也在环境700中具有如由754A所指示的会话。在一些实施方式中,自动化助理可以附加地或替代地处理捕获口头话语752A的音频数据以确定与也在音频数据中捕获的环境噪声相关联的给定类别。例如,自动化助理可以使用环境噪声模型来处理捕获口头话语752A的音频数据,以基于第一附加用户702和第二附加用户703也在环境700中具有如由754A所指示的会话来确定会话类别。此外,在扬声器嵌入可用于客户端设备710的实施方式中,自动化助理可以确定第一附加用户702和第二附加用户703是否对应于使用语音识别模型和说话者嵌入对自动化助理已知的用户(例如,用户701的父母、用户701的兄弟姐妹等)。
此外,自动化助理可以基于一个或多个规则来确定会话类别对应于特定类别中的一个或多个。一个或多个规则可以包括例如用户定义的规则、默认规则、推断规则和/或其他规则。例如,用户701(或附加用户702或703之一)可能先前已经定义了规则,该规则指示当标识出捕获助理命令(其也捕获环境会话)的音频数据使得用户701、702或703中的一个或多个用户知道何时环境会话在音频数据中被无意地捕获到时应该提示用户701提供对将请求从客户端设备710传输出去的同意。作为另一个示例,默认规则可以指示捕获环境会话的任何音频数据应该连同捕获环境会话的音频数据不应该远离客户端设备710持续存在的指示一起传输,或者只有对应于助理命令的文本应当被传输到服务器和/或第三方应用,而不传输任何捕获口头话语752A的音频数据。作为又一示例,规则中的一个或多个可以指示从客户端设备710传输出去的任何音频数据应该被过滤以在从客户端设备710传输出去之前去除任何环境噪声。尽管本文描述了特定规则,但是应当理解,这是为了举例而不意味着限制。在一些实施方式中,如果基于使用语音识别模型和说话者嵌入处理音频数据而确定附加用户702或703之一的身份,则自动化助理可以仅应用这些规则。
响应于确定给定类别对应于一个或多个特定类别,自动化助理可以生成提示(未描绘)“I captured some ambient conversation along with your utterance,is itokay if I still transmit the request?(我连同你的话语一起捕获了一些环境会话,如果我仍然传输请求是否可以?)”,并且使得提示经由客户端设备710的扬声器和/或客户端设备710的显示器790被提供以呈现给用户301。值得注意的是,即使用户同意传输请求,该请求可以连同音频数据不能在客户端设备710之外的任何地方(例如,在生成对口头话语752A的响应内容的服务器或第三方应用处)持续存在的指示一起传输。以这些和其他方式,自动化助理可以确保不仅提供口头话语752A的用户701的数据是安全的,而且还可以确保可能由客户端设备710的麦克风无意捕获的附加用户702和703的数据是安全的。
相比之下,并且具体参见图7B,进一步假设用户在由虚线包围的环境700中时提供指向自动化助理的相同口头话语752A“Assistant,is slime a liquid or solid?”。然而,在该示例中,假设第一附加用户702和第二附加用户703不在该环境中,使得未在捕获口头话语752A的音频数据中捕获会话754A。在此示例中,在音频数据中可能没有捕获到环境噪声,并且自动化助理可以进行以根据本文(例如,关于图2的方法200和/或图4的方法400)描述的技术来执行特定履行。值得注意的是,自动化助理仍可以使用环境噪声模型来处理音频数据,但是可以基于当接收到口头话语时在环境700中存在的其他环境噪声来确定环境噪声对应于空类别或另一类别。
图8是可以可选地用于执行本文描述的技术的一个或多个方面的示例计算设备810的框图。在一些实施方式中,客户端设备、基于云的自动化助理组件和/或其他组件中的一个或多个可以包括示例计算设备810的一个或多个组件。
计算设备810通常包括至少一个处理器814,其经由总线子系统812与多个外围设备通信。这些外围设备可以包括存储子系统824(其包括例如存储器子系统825和文件存储子系统826)、用户接口输出设备820、用户接口输入设备822和网络接口子系统816。输入和输出设备允许用户与计算设备810交互。网络接口子系统816提供到外部网络的接口并耦合到其他计算设备中的对应接口设备。
用户接口输入设备822可以包括键盘、诸如鼠标、轨迹球、触摸板或图形输入板的定点设备、扫描仪、并入到显示器中的触摸屏、诸如语音识别系统、麦克风的音频输入设备、和/或其他类型的输入设备。一般而言,术语“输入设备”的使用旨在包括将信息输入到计算设备810中或通信网络上的所有可能类型的设备和方式。
用户接口输出设备820可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备或用于创建可见图像的某种其他机制。显示子系统还可以诸如经由音频输出设备提供非视觉显示。一般而言,术语“输出设备”的使用旨在包括将信息从计算设备810输出到用户或另一机器或计算设备的所有可能类型的设备和方式。
存储子系统824存储提供本文描述的一些或所有模块的功能的编程和数据构造。例如,存储子系统824可以包括用于执行本文公开的方法的选定方面以及用于实现图1中描绘的各种组件的逻辑。
这些软件模块通常由处理器814单独执行或与其他处理器结合执行。存储子系统824中使用的存储器825可以包括多个存储器,其包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)830和其中存储固定指令的只读存储器(ROM)832。文件存储子系统826可以为程序和数据文件提供永久性存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移除介质、CD-ROM驱动器、光驱、或可移除介质盒。实现特定实施方式的功能的模块可以由文件存储子系统826存储在存储子系统824中,或者存储在由处理器814可访问的其他机器中。
总线子系统812提供了用于让计算设备810的各种组件和子系统按预期彼此通信的机制。尽管总线子系统812被示意性地示出为单个总线,但是总线子系统812的替代实施方式可以使用多个总线。
计算设备810可以是各种类型的,包括工作站、服务器、计算集群、刀片服务器、服务器场、或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图8中描绘的计算设备810的描述仅旨在作为用于说明一些实施方式的目的的特定示例。计算设备810的许多其他配置可能具有比图8中描绘的计算设备更多或更少的组件。
在本文描述的系统收集或以其他方式监视关于用户的个人信息或者可以利用个人和/或监视信息的情况下,可以向用户提供机会来控制程序或特征是否收集用户信息(例如,关于用户的社交网络、社交行为或活动、职业、用户的偏好或用户的当前地理位置的信息),或控制是否和/或如何从内容服务器接收可能与用户更相关的内容。此外,特定数据在其被存储或使用之前可能会以一种或多种方式处理,使得去除个人身份信息。例如,可以处理用户的身份,使得无法确定用户的个人身份信息,或者可以在获得地理位置信息的情况下概括用户的地理位置(诸如到城市、邮政编码或州级别),使得无法确定用户的特定地理位置。因此,用户可以控制如何收集和/或使用关于用户的信息。
在一些实施方式中,提供了一种由一个或多个处理器实现的方法,并且该方法包括:经由用户的客户端设备接收指向自动化助理的用户输入,该用户输入包括助理命令;在用户的客户端设备处本地处理用户输入以确定与助理命令相关联的给定类别,该给定类别是多个不同类别之一;基于助理命令来确定是否需要服务器数据来执行助理命令的特定履行;以及响应于确定需要服务器数据来执行助理命令的特定履行:确定与助理命令相关联的给定类别是否对应于一个或多个特定类别;以及响应于确定与助理命令相关联的给定类别对应于特定类别中的一个或多个:基于与助理命令相关联的给定类别来生成请求用户同意向服务器传输请求的提示;使得提示经由客户端设备被提供以呈现给用户;经由用户的客户端设备接收指向自动化助理的附加用户输入,该附加用户输入响应于提示;以及基于附加用户输入来确定是否向服务器传输请求以履行助理命令。要传输到服务器的请求对执行助理命令的特定履行所需的服务器数据进行请求。
本文公开的技术的这些和其他实施方式可以任选地包括以下特征中的一个或多个。
在一些实施方式中,该方法可以进一步包括:响应于确定附加用户输入不同意向服务器传输请求以履行助理命令:制止使得请求被传输到服务器以履行助理命令;以及使得客户端设备生成客户端数据以尝试执行助理命令的特定履行。
在那些实施方式的一些版本中,该方法可以进一步包括:确定是否能够利用客户端数据来执行助理命令的特定履行;以及响应于确定不能利用客户端数据来执行助理命令的特定履行:生成通知,该通知指示在没有服务器数据的情况下不能执行助理命令的特定履行;以及使得通知经由客户端设备被提供以呈现给用户。
在那些实施方式的一些进一步版本中,该方法可以进一步包括利用客户端数据来执行助理命令的替代履行,其中,执行助理命令的替代履行以尝试执行助理命令的特定履行。
在那些进一步的实施方式的一些附加或替代版本中,该方法可以进一步包括:响应于确定能够利用客户端数据来执行助理命令的特定履行:利用客户端数据来执行助理命令的特定履行。
在一些实施方式中,该方法可以进一步包括:响应于确定附加用户输入同意向服务器传输请求以履行助理命令:使得请求被传输到服务器以获得服务器数据以履行助理命令。
在一些实施方式中,该方法可以进一步包括:响应于确定与助理命令相关联的给定类别不对应于特定类别中的一个或多个:使得请求被传输到服务器以获得服务器数据以执行助理命令的特定履行。在那些实施方式的一些版本中,确定与助理命令相关联的给定类别不对应于特定类别中的一个或多个可以包括确定用户先前同意向服务器传输与给定类别相关联的请求。
在一些实施方式中,该方法可以进一步包括确定指向自动化助理的任何先前用户输入是否包括对应于给定类别的先前助理命令。确定是否需要服务器数据来执行助理命令的特定履行可以是响应于确定没有指向自动化助理的先前用户输入包括对应于给定类别的先前助理命令。
在一些实施方式中,助理命令可以是与第三方相关联的第三方助理命令,并且服务器数据可以是与第三方相关联的第三方服务器数据。
在一些实施方式中,助理命令可以是与第一方相关联的第一方助理命令,并且服务器数据可以是与第一方相关联的第一方服务器数据。
在一些实施方式中,使得提示经由客户端设备被提供以呈现给用户可以包括使得包括提示的合成语音音频数据经由客户端设备的一个或多个扬声器被可听地渲染以呈现给用户。
在一些实施方式中,使得提示经由客户端设备被提供以呈现给用户可以包括使得提示和一个或多个对应的可选择元素经由客户端设备的显示器被视觉地渲染以呈现给用户。
在一些实施方式中,确定与助理命令相关联的给定类别是否对应于特定类别中的一个或多个可以包括利用一个或多个规则来确定与助理命令相关联的给定类别是否对应于特定类别中的一个或多个。在那些实施方式的一些版本中,一个或多个规则可以包括以下中的一个或多个:指示与给定类别相关联的任何助理命令对应于特定类别中的一个或多个的一个或多个用户定义的规则;指示与给定类别相关联的任何助理命令对应于特定类别中的一个或多个的一个或多个默认规则;或者指示与给定类别相关联的先前助理命令对应于特定类别中的一个或多个的一个或多个推断规则。
在一些实施方式中,在用户的客户端设备处本地处理用户输入以确定与助理命令相关联的给定类别可以包括使用本地存储在助理设备处的设备上助理命令分类模型来处理用户输入以确定来自多个不同类别当中的给定类别。
在一些实施方式中,提供了一种由一个或多个处理器实现的方法,并且该方法包括:经由用户的客户端设备接收指向自动化助理的用户输入,该用户输入包括助理命令;确定是否需要第三方应用数据来执行助理命令的特定履行,第三方应用数据与由客户端设备可访问的第三方应用相关联;以及响应于确定需要第三方应用数据来执行助理命令的特定履行:生成请求用户同意向第三方应用传输请求的提示;使得提示经由客户端设备被提供以呈现给用户;经由用户的客户端设备接收指向自动化助理的附加用户输入,该附加用户输入响应于提示;以及基于附加用户输入来确定是否向第三方应用传输请求以请求第三方应用数据。要传输到第三方应用的请求对执行助理命令的特定履行所需的第三方应用数据进行请求。
本文公开的技术的这些和其他实施方式可以任选地包括以下特征中的一个或多个。
在一些实施方式中,确定是否需要第三方应用数据来执行助理命令的特定履行可以包括:基于第三方应用向客户端设备提供第三方应用的一个或多个能力的指示来确定一个或多个能力;以及确定需要第三方应用数据的能力中的一个或多个能力来执行助理命令的特定履行。
在一些实施方式中,第三方应用可以在客户端设备的前台中运行,并且确定是否需要第三方应用数据来执行助理命令的特定履行可以包括:基于由第三方应用当前在客户端设备的前台中显示的内容来确定第三方应用的一个或多个能力;以及确定需要第三方应用数据的能力中的一个或多个能力来执行助理命令的特定履行。
在一些实施方式中,确定是否需要第三方应用数据来执行助理命令的特定履行可以包括:在客户端设备处本地处理用户输入以确定与助理命令相关联的给定类别,该给定类别是多个不同类别之一;以及基于与助理命令相关联的给定类别来确定需要第三方应用数据来执行助理命令的特定履行。
在一些实施方式中,提供了一种由一个或多个处理器实现的方法,该方法包括:经由用户的客户端设备的一个或多个麦克风接收音频数据,该音频数据捕获指向自动化助理的口头话语;使用本地存储在客户端设备上的设备上语音识别(ASR)模型来处理音频数据以确定包括在口头话语中的助理命令;使用本地存储在客户端设备上的设备上环境噪声模型来处理音频数据以确定与在音频数据中捕获的环境噪声相关联的给定类别,该给定类别是多个不同类别之一;确定与在音频数据中捕获的环境噪声相关联的给定类别是否对应于一个或多个特定类别;以及响应于确定与在音频数据中捕获的环境噪声相关联的给定类别对应于一个或多个特定类别:生成要传输到服务器或第三方应用的请求;经由用户的客户端设备接收数据以执行助理命令的特定履行;以及使得客户端设备利用该数据来执行助理命令的特定履行。要传输到服务器或第三方应用的请求对执行助理命令的特定履行所需的数据进行请求。进一步地,该请求包括不能由服务器或第三方应用存储捕获包括助理命令的口头话语的音频数据的指示。
此外,一些实施方式包括一个或多个计算设备的一个或多个处理器(例如,中央处理单元(CPU)、图形处理单元(GPU)和/或张量处理单元(TPU)),其中,一个或多个处理器可操作以执行存储在相关联的存储器中的指令,并且其中,指令被配置为使得执行上述方法中的任一种。一些实施方式还包括存储可由一个或多个处理器执行以执行上述方法中的任一种的计算机指令的一个或多个非暂时性计算机可读存储介质。一些实施方式还包括计算机程序产品,该计算机程序产品包括可由一个或多个处理器执行以执行上述方法中的任一种的指令。

Claims (22)

1.一种由一个或多个处理器实现的方法,所述方法包括:
经由用户的客户端设备接收指向自动化助理的用户输入,所述用户输入包括助理命令;
在所述用户的所述客户端设备处本地处理所述用户输入以确定与所述助理命令相关联的给定类别,所述给定类别是多个不同类别中的一个;
基于所述助理命令来确定是否需要服务器数据来执行所述助理命令的特定履行;以及
响应于确定需要服务器数据来执行所述助理命令的所述特定履行:
确定与所述助理命令相关联的所述给定类别是否对应于一个或多个特定类别;以及
响应于确定与所述助理命令相关联的所述给定类别对应于所述特定类别中的一个或多个:
基于与所述助理命令相关联的所述给定类别来生成请求所述用户同意向服务器传输请求的提示,其中,要传输到所述服务器的所述请求对执行所述助理命令的所述特定履行所需的所述服务器数据进行请求;
使得所述提示经由所述客户端设备被提供以呈现给所述用户;
经由所述用户的所述客户端设备接收指向所述自动化助理的附加用户输入,所述附加用户输入响应于所述提示;以及
基于所述附加用户输入来确定是否向所述服务器传输所述请求以履行所述助理命令。
2.根据权利要求1所述的方法,进一步包括:
响应于确定所述附加用户输入不同意向所述服务器传输所述请求以履行所述助理命令:
制止使得所述请求被传输到所述服务器以履行所述助理命令;以及
使得所述客户端设备生成客户端数据以尝试执行所述助理命令的所述特定履行。
3.根据权利要求2所述的方法,进一步包括:
确定是否能够利用所述客户端数据来执行所述助理命令的所述特定履行;以及
响应于确定不能利用所述客户端数据来执行所述助理命令的所述特定履行:
生成通知,所述通知指示在没有所述服务器数据的情况下不能执行所述助理命令的所述特定履行;以及
使得所述通知经由所述客户端设备被提供以呈现给所述用户。
4.根据权利要求3所述的方法,进一步包括:
利用所述客户端数据来执行所述助理命令的替代履行,其中,执行所述助理命令的所述替代履行以尝试执行所述助理命令的所述特定履行。
5.根据权利要求3所述的方法,进一步包括:
响应于确定能够利用所述客户端数据来执行所述助理命令的所述特定履行:
利用所述客户端数据来执行所述助理命令的所述特定履行。
6.根据前述权利要求中的任一项所述的方法,进一步包括:
响应于确定所述附加用户输入同意向所述服务器传输所述请求以履行所述助理命令:
使得所述请求被传输到所述服务器以获得所述服务器数据以履行所述助理命令。
7.根据前述权利要求中的任一项所述的方法,进一步包括:
响应于确定与所述助理命令相关联的所述给定类别不对应于所述特定类别中的一个或多个:
使得所述请求被传输到所述服务器以获得所述服务器数据以执行所述助理命令的所述特定履行。
8.根据权利要求7所述的方法,其中,确定与所述助理命令相关联的所述给定类别不对应于所述特定类别中的一个或多个包括:
确定所述用户先前同意向所述服务器传输与所述给定类别相关联的请求。
9.根据前述权利要求中的任一项所述的方法,进一步包括:
确定指向所述自动化助理的任何先前用户输入是否包括对应于所述给定类别的先前助理命令;
其中,确定是否需要所述服务器数据来执行所述助理命令的所述特定履行是响应于确定没有指向所述自动化助理的先前用户输入包括对应于所述给定类别的先前助理命令。
10.根据前述权利要求中的任一项所述的方法,其中,所述助理命令是与第三方相关联的第三方助理命令,并且其中,所述服务器数据是与所述第三方相关联的第三方服务器数据。
11.根据权利要求1至9中的任一项所述的方法,其中,所述助理命令是与第一方相关联的第一方助理命令,并且其中,所述服务器数据是与所述第一方相关联的第一方服务器数据。
12.根据前述权利要求中的任一项所述的方法,其中,使得所述提示经由所述客户端设备被提供以呈现给所述用户包括:
使得包括所述提示的合成语音音频数据经由所述客户端设备的一个或多个扬声器被可听地渲染以呈现给所述用户。
13.根据权利要求1至11中的任一项所述的方法,其中,使得所述提示经由所述客户端设备被提供以呈现给所述用户包括:
使得所述提示和一个或多个对应的可选择元素经由所述客户端设备的显示器被视觉地渲染以呈现给所述用户。
14.根据前述权利要求中的任一项所述的方法,其中,确定与所述助理命令相关联的所述给定类别是否对应于所述特定类别中的一个或多个包括:
利用一个或多个规则来确定与所述助理命令相关联的所述给定类别是否对应于所述特定类别中的一个或多个。
15.根据权利要求14所述的方法,其中,所述一个或多个规则包括以下中的一个或多个:
一个或多个用户定义的规则,所述一个或多个用户定义的规则指示与所述给定类别相关联的任何助理命令对应于所述特定类别中的一个或多个;
一个或多个默认规则,所述一个或多个默认规则指示与所述给定类别相关联的任何助理命令对应于所述特定类别中的一个或多个;或者
一个或多个推断规则,所述一个或多个推断规则指示与所述给定类别相关联的先前助理命令对应于所述特定类别中的一个或多个。
16.根据前述权利要求中的任一项所述的方法,其中,在所述用户的所述客户端设备处本地处理所述用户输入以确定与所述助理命令相关联的所述给定类别包括:
使用本地存储在所述助理设备处的设备上助理命令分类模型来处理所述用户输入以确定来自所述多个不同类别当中的所述给定类别。
17.一种由一个或多个处理器实现的方法,所述方法包括:
经由用户的客户端设备接收指向自动化助理的用户输入,所述用户输入包括助理命令;
确定是否需要第三方应用数据来执行所述助理命令的特定履行,所述第三方应用数据与由所述客户端设备可访问的第三方应用相关联;以及
响应于确定需要所述第三方应用数据来执行所述助理命令的所述特定履行:
生成请求所述用户同意向所述第三方应用传输请求的提示,其中,要传输到所述第三方应用的所述请求对执行所述助理命令的所述特定履行所需的所述第三方应用数据进行请求;
使得所述提示经由所述客户端设备被提供以呈现给所述用户;
经由所述用户的所述客户端设备接收指向所述自动化助理的附加用户输入,所述附加用户输入响应于所述提示;以及
基于所述附加用户输入来确定是否向所述第三方应用传输所述请求以请求所述第三方应用数据。
18.根据权利要求17所述的方法,其中,确定是否需要所述第三方应用数据来执行所述助理命令的所述特定履行包括:
基于所述第三方应用向所述客户端设备提供所述第三方应用的一个或多个能力的指示来确定所述一个或多个能力;以及
确定需要所述第三方应用数据的所述能力中的一个或多个能力来执行所述助理命令的所述特定履行。
19.根据权利要求17或权利要求18所述的方法,其中,所述第三方应用在所述客户端设备的前台中运行,并且其中,确定是否需要所述第三方应用数据来执行所述助理命令的所述特定履行包括:
基于由所述第三方应用当前在所述客户端设备的所述前台中显示的内容来确定所述第三方应用的一个或多个能力;以及
确定需要所述第三方应用数据的所述能力中的一个或多个能力来执行所述助理命令的所述特定履行。
20.一种由一个或多个处理器实现的方法,所述方法包括:
经由用户的客户端设备的一个或多个麦克风接收音频数据,所述音频数据捕获指向自动化助理的口头话语;
使用本地存储在所述客户端设备上的设备上语音识别(ASR)模型来处理所述音频数据以确定包括在所述口头话语中的助理命令;
使用本地存储在所述客户端设备上的设备上环境噪声模型来处理所述音频数据以确定与在所述音频数据中捕获的环境噪声相关联的给定类别,所述给定类别是多个不同类别中的一个;
确定与在所述音频数据中捕获的所述环境噪声相关联的所述给定类别是否对应于一个或多个特定类别;以及
响应于确定与在所述音频数据中捕获的所述环境噪声相关联的所述给定类别对应于一个或多个特定类别:
生成要传输到服务器或第三方应用的请求,
其中,要传输到所述服务器或所述第三方应用的所述请求对执行所述助理命令的特定履行所需的数据进行请求,以及
其中,所述请求包括不能由所述服务器或所述第三方应用存储捕获包括所述助理命令的所述口头话语的所述音频数据的指示;
经由所述用户的所述客户端设备接收所述数据以执行所述助理命令的所述特定履行;以及
使得所述客户端设备利用所述数据来执行所述助理命令的所述特定履行。
21.一种系统,包括:
至少一个处理器;以及
存储指令的存储器,所述指令在被执行时使得所述至少一个处理器执行对应于权利要求1至20中的任一项的操作。
22.一种存储指令的非暂时性计算机可读存储介质,所述指令在被执行时使得至少一个处理器执行对应于权利要求1至20中的任一项的操作。
CN202180088109.3A 2021-03-12 2021-12-10 用于提供安全自动化助理的方法和系统 Pending CN116648745A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/200,238 US11886482B2 (en) 2021-03-12 2021-03-12 Methods and systems for providing a secure automated assistant
US17/200,238 2021-03-12
PCT/US2021/062907 WO2022191886A1 (en) 2021-03-12 2021-12-10 Methods and systems for providing a secure automated assistant

Publications (1)

Publication Number Publication Date
CN116648745A true CN116648745A (zh) 2023-08-25

Family

ID=79283230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180088109.3A Pending CN116648745A (zh) 2021-03-12 2021-12-10 用于提供安全自动化助理的方法和系统

Country Status (4)

Country Link
US (2) US11886482B2 (zh)
EP (1) EP4143823A1 (zh)
CN (1) CN116648745A (zh)
WO (1) WO2022191886A1 (zh)

Families Citing this family (6)

* 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
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US20220343066A1 (en) * 2021-04-15 2022-10-27 Apple Inc. Digital assistant handling of personal requests
US20230036045A1 (en) * 2021-07-30 2023-02-02 International Business Machines Corporation Adapting artificial intelligence (ai) ecosystem specifications
US11804215B1 (en) * 2022-04-29 2023-10-31 Apple Inc. Sonic responses

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018231247A1 (en) 2017-06-16 2018-12-20 Hewlett-Packard Development Company, L.P. Voice assistants with graphical image responses
WO2020242595A1 (en) 2019-05-31 2020-12-03 Apple Inc. Voice identification in digital assistant systems
US10872168B1 (en) * 2019-06-07 2020-12-22 Piamond Corp. Method and system for providing user notification when personal information is used in voice control device
US11176928B2 (en) * 2019-10-15 2021-11-16 Google Llc Efficient and low latency automated assistant control of smart devices
US11252149B1 (en) * 2020-09-30 2022-02-15 Amazon Technologies, Inc. Resource management techniques for dialog-driven applications

Also Published As

Publication number Publication date
US11886482B2 (en) 2024-01-30
EP4143823A1 (en) 2023-03-08
WO2022191886A1 (en) 2022-09-15
US20240119083A1 (en) 2024-04-11
US20220292128A1 (en) 2022-09-15

Similar Documents

Publication Publication Date Title
KR102116959B1 (ko) 대화형 보조 모듈들에 의한 액세스의 조건 규정
EP3513534B1 (en) Proactive provision of new content to group chat participants
CN116648745A (zh) 用于提供安全自动化助理的方法和系统
KR102097621B1 (ko) 이미지 및/또는 다른 센서 데이터 기반의 자동화 어시스턴트 요청 해석
EP3590249B1 (en) Generating iot-based notification(s) and provisioning of command(s) to cause automatic rendering of the iot-based notification(s) by automated assistant client(s) of client device(s)
CN113557566A (zh) 动态地适配助理响应
US11392213B2 (en) Selective detection of visual cues for automated assistants
US11854533B2 (en) Speaker awareness using speaker dependent speech model(s)
CN116368562A (zh) 针对自动化助理启用自然对话
KR20220167393A (ko) 환경 간섭이 특정 자동화된 어시스턴트 상호작용을 방해할 것으로 예상될 때의 대체 인터페이스 제안
US20230143177A1 (en) Contextual suppression of assistant command(s)
CN115552874A (zh) 经由智能手机从智能扬声器和智能显示器发送消息
CN114144789A (zh) 图形用户界面中的内容的声控输入
CN113767379A (zh) 使用内容代理和/或存储的内容参数来渲染内容
US20240111811A1 (en) Selecting a device to respond to device-agnostic user requests
US20240169152A1 (en) Selection system for contextual prediction processing versus classical prediction processing
KR20230153450A (ko) 자동 스피치 인식의 로컬 실행을 위한 디바이스 중재

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