首页 > 乐器声学 专利正文
在客户端设备上主动缓存助理动作内容以使能口头话语或键入的话语的设备上解析的制作方法

时间:2022-01-23 阅读: 作者:专利查询

在客户端设备上主动缓存助理动作内容以使能口头话语或键入的话语的设备上解析的制作方法
在客户端设备上主动缓存助理动作内容以使能口头话语或键入的话语的设备上解析


背景技术:

1.人类可以使用在此称为“自动助理”(也称为“数字代理”、“交互式个人助理”、“智能个人助理”、“助理应用”、“对话代理”等)的交互式软件应用参与人机对话。例如,人类(当他们与自动助理交互时可以被称为“用户”)可以通过下述方式向自动助理提供命令和/或请求:使用口头自然语言输入(即口头话语),这在某些情况下可以被转换成文本然后处理:和/或提供文本(例如,键入的)自然语言输入(即键入的话语)。自动助理通过提供响应用户界面输出来响应请求,该响应用户界面输出可以包括听觉和/或视觉用户界面输出。
2.如上所述,许多自动助理被配置为经由口头话语进行交互。用户可以经由口头话语向客户端设备的自动助理界面提交查询和/或命令,口头指示用户有兴趣被提供什么信息和/或用户有兴趣执行的动作。通常,口头话语由客户端设备的麦克风检测并被捕获为音频数据。音频数据被传输到远程系统进行进一步处理。远程系统处理音频数据以确定适当的响应,并将响应传输到客户端设备。
3.远程系统的组件可以将大量计算资源用于处理音频数据,从而能够实现比否则可能在客户端设备内本地实现更复杂的语音识别和语义分析功能。然而,客户端-服务器方法在处理声音输入时必然要求客户端在线(即与远程系统通信)。在各种情况下,可能无法在所有时间和所有位置保证连续的在线连接,因此每当客户端设备“离线”并因此未连接到在线服务时,在客户端设备中可能禁用客户端-服务器基于声音的用户界面。此外,客户端-服务器方法可能消耗大量带宽,因为它需要将高带宽音频数据从客户端传输到远程系统的组件。在远程系统处理来自大量客户端设备的请求的典型情况下,带宽消耗被放大。此外,客户端-服务器方法在向用户提供响应时可能表现出显著的延迟,这可能导致基于声音的用户-客户端交互被延长,并且客户端设备的资源被利用延长的持续时间。


技术实现要素:

4.本文公开的实施方式用于通过在客户端设备本地主动缓存主动助理缓存条目——以及通过主动助理缓存条目的设备上利用来减少从自动助理获得响应所需的时间。
5.在各种实施方式中,在客户端设备上运行的自动助理应用可以使用设备上的语音处理来处理本地检测到的音频数据并生成对应于由音频数据捕获的口头话语(例如,用户界面输入)的识别的文本。自动助理应用可以进一步利用由设备上的nlu生成的识别的文本和/或自然语言理解(nlu)数据,以标识与口头话语相对应的本地存储的主动缓存条目。还可以基于其他用户界面输入——诸如键入的短语或话语——来执行标识。可以通过确定识别的文本和/或nlu数据(来自键入或口头的话语)匹配主动缓存条目的助理请求参数来标识本地存储的主动缓存条目。响应于确定匹配,自动助理应用然后可以使用所标识的主动缓存条目的动作内容适当地响应口头话语。自动助理应用的响应可以包括例如:执行在动作内容中包含的深层链接;呈现内容中包含的文本、图形和/或音频(或使用设备上的语音合成器从响应转换的音频数据);和/或向外围设备传输(例如,经由wifi和/或蓝牙)命令以
控制外围设备。此外,可以提供自动助理应用的响应,可选地无需与服务器进行任何实时通信,或者至少不需要等待来自服务器的响应——从而进一步减少可以提供响应的时间。
6.如本文更详细地描述的,存储在客户端设备的本地主动缓存中的一个或多个(例如,所有)主动缓存条目是“主动的”,因为它们响应于最近基于用户输入在客户端设备上被请求而未被存储在主动缓存中。相反,可以从远程系统——诸如服务器——主动预取主动缓存条目,然后将其存储在主动缓存中——尽管从未接收到符合主动缓存的助理请求参数的用户输入。
7.可以向不同的客户端设备提供不同的主动缓存条目,并且本文公开的各种实施方式涉及远程系统在确定向哪些客户端设备提供哪些主动缓存条目时所使用的技术。在这些实施方式中的一些实施方式中,在确定向给定客户端设备提供(主动地或响应于请求)哪些主动缓存条目时,远程系统从候选主动缓存条目的超集中选择缓存条目的子集以用于提供到给定客户端设备。在选择子集时可以利用各种考虑因素,包括考虑给定客户端设备的属性和/或主动缓存条目的一个或多个属性的考虑因素。客户端设备的/用于客户端设备的属性可以包括与客户端设备的操作相关联的任何数据,例如与操作系统的版本级别相关联的数据、客户端设备的模型、在客户端设备上安装了哪些应用(以及哪些版本)、客户端设备用户的搜索历史、客户端设备的位置历史、客户端设备的电源模式或电池电量等。
8.作为一个示例,在选择子集的一个或多个主动缓存条目时,可以考虑哪些应用被安装在给定客户端设备上(以及可选地哪些应用被隐式或显式标记为首选)并将其与候选主动缓存条目的动作内容(和/或元数据)进行比较。例如,可以生成多个候选的主动缓存条目,每个条目具有相同的助理请求参数,但不同的动作内容。不同动作内容中的每个可以针对特定应用定制,并且可以是例如对应的深层链接,该深层链接可由助理客户端应用在本地执行以使对应的附加应用在第一状态下打开以执行给定动作。例如,假设“调整恒温器时间表”、“改变恒温器时间表”和/或“{intent=change/adjust;device=thermostat;property=schedule}”的助理请求参数。对于这样的助理请求参数,可以利用各种不同的应用来实现适当的响应,诸如第一恒温器制造商的第一应用和第二恒温器制造商的第二应用。第一和第二主动缓存条目两者可以具有相同的助理请求参数,但包含不同的深层链接。例如,第一主动缓存条目可以具有用于第一应用的第一深层链接(其当被执行时导致第一应用在对应的调度改变界面打开)并且第二主动缓存条目可以具有用于第二应用的不同的第二深层链接(其当被执行时使第二应用在对应的时间表改变界面上打开)。
9.在这样的示例中,可以基于确定给定客户端设备安装了第一应用但没有安装第二应用来选择第一主动缓存条目(但不是第二)以供应到给定客户端设备。这使给定客户端设备能够快速和有效地响应符合助理请求参数的键入或口头话语,因为它可以选择该条目的动作内容的唯一第一深层链接——而无需本地确定应该使用多个不同的深层链接中的哪一个。此外,相对于包括多个不同深层链接的动作内容,第一和第二主动缓存条目的动作内容在存储空间方面被减少。这使得它们中的每一个都能够更有效地单独存储在对应的本地主动缓存中,并在传输到对应的客户端设备时消耗更少的带宽。因此可以消耗更少的计算机和网络资源。此外,在主动缓存条目中使用深层链接可以促进具有更少用户输入和更少处理步骤的动作的执行,这可以减少客户端设备在执行动作时消耗的资源。对较少用户输入的要求对于灵活性降低的用户也可能是有益的,并且可以提高设备的效用。
10.作为另一示例,在选择子集中的一个或多个主动缓存条目时,可选地取决于事件量级,更可能选择与具有一个或多个确定事件的实体相关的主动缓存条目。此外,甚至可以响应于确定事件的发生来生成实体的主动缓存条目。为实体确定事件的一些示例是:确定与实体相关的请求的增加;确定实体的互联网内容的增加;和/或预测与实体相关的请求的增加。
11.例如,如果确定对“jane doe”的助理请求(和/或传统搜索请求)的数量激增以及“jane doe”的互联网内容激增,则与jane doe相关的主动缓存条目可以被生成和/或更有可能提供给各种客户端设备用于本地主动缓存(比激增之前更有可能)。向各种客户端设备提供“jane doe”的主动缓存条目可以可选地进一步基于确定这些各种客户端设备具有与jane doe相关的对应属性(例如,过去对jane doe和/或相关实体的搜索(例如,相同类型的其他实体);与jane doe相关的地理位置;和/或其他属性)。
12.在这些和其他方式中,可以在对实体的持续请求(以及用于处理请求的相关联的带宽消耗和相关联的服务器端处理器消耗)的预期中提供实体的主动缓存条目,以使得能够更快速响应最终请求。此外,为许多客户端设备提供主动缓存条目可能发生在网络使用率相对较低的期间(例如,在那些客户端设备空闲和充电时候的夜间)——使能在低使用率期间使用网络资源,而在较高使用率时期减轻网络资源使用。换句话说,jane doe的主动缓存条目可以在低使用率期间预先存储在客户端设备上,然后在高使用率期间用于本地响应客户端设备上的键入的话语或口头话语。当这在大量客户端设备上发生时,如本文所设想的,它可以实现网络资源的有效重新分配。因此可以提高网络性能。此外,各种实施方式仅选择客户端设备的子集来为“jane doe”提供主动缓存条目,并基于具有与jane doe相关的属性的子集的客户端设备来选择子集。通过只为子集选择和提供主动缓存条目,可以实现使用带宽和网络资源的减少。可以实现这样的减少,同时仍然选择性地利用网络资源来向可能利用这些条目的客户端设备提供主动缓存条目,实现在那些客户端设备处更快地提供响应并减少与这些客户端设备的交互持续时间。
13.作为为实体确定和利用事件的另一示例,可以预测与假设艺术家(在该示例中,假设音乐艺术家)相关的请求的增加,尽管尚未观察到请求的增加。例如,可以基于从一个或多个附加系统确定假设艺术家将发布新歌曲和/或新专辑来预测请求的增加。响应于请求增加的预测,与假设艺术家相关的主动缓存条目可以被生成和/或可以更有可能被提供给各种客户端设备以用于本地主动缓存(比激增之前更有可能)。例如,具有“播放假设艺术家”、“听某个假设艺术家”和/或“{intent=listen to music;artist=hypothetical artist}”的助理请求参数的主动缓存条目。主动缓存条目还可以包括助理动作内容,诸如例如一个或多个深层链接,当被执行时,每个深层链接使对应的应用在来自假设艺术家的音乐被流送并在客户端设备可听地呈现的状态下打开。将“假设艺术家”的主动缓存条目提供给各种客户端设备可以可选地进一步基于确定这些各种客户端设备具有与假设艺术家相关的对应属性(例如,来自假设艺术家和/或相关音乐艺术家的音乐、存储在所述设备上的假设艺术家的音乐文件、与假设艺术家相关的搜索历史等的过去流送)。向给定客户端设备提供主动缓存条目还可以基于确定给定客户端设备具有对应于主动缓存条目的深层链接之一(例如,在一些实施方式中的唯一深层链接)的应用。
14.除了每个本地存储在对应的客户端设备的本地主动缓存之外,一些实施方式还可
以包括每个为客户端设备的子集生成的远程主动缓存。用于远程主动缓存的客户端设备的子集可以是单个客户端设备,或者是基于具有彼此共同属性的那些客户端设备而分组的一组客户端设备。例如,远程主动缓存可以仅用于单个客户端设备,或者可以用于具有相同或相似属性的一千个客户端设备。
15.给定客户端设备(仅针对给定客户端设备,或给定客户端设备和具有相同/相似属性的其他客户端设备)的远程主动缓存包括(或限于)补充除了在给定客户端设备的本地主动缓存中的那些之外的主动缓存条目。在许多实施方式中,远程主动缓存的主动缓存条目仍然是所有可用候选缓存条目的子集。远程主动缓存的主动缓存条目可以包括基于给定客户端设备的属性和/或主动缓存条目的属性(例如,基于比较客户端设备属性和主动缓存条目属性和/或基于主动缓存条目属性)而被确定为与给定客户端设备相关的那些。但是,远程缓存的主动缓存条目包括未提供用于本地主动缓存中的本地存储的那些。不为本地主动缓存中的本地存储提供它们的决定可以基于本地主动缓存的存储空间限制(例如,提供它们将导致超出本地主动缓存的存储限制)并基于这些条目被确定为与在给定客户端设备的本地主动缓存中存储的那些相比不太相关。换句话说,给定客户端设备的远程主动缓存可以包括主动缓存条目,这些条目被确定为与给定客户端设备相关,但基于存储空间限制和基于主动缓存条目被确定为与为在给定客户端设备的本地主动缓存中本地存储提供的那些条目相比不太相关而未被存储在给定客户端设备的本地缓存中。
16.当响应分配给远程主动缓存的来自客户端设备的助理请求时,远程自动助理组件可以利用远程主动缓存。例如,对于在给定客户端设备的音频数据中检测到的口头话语,该给定客户端设备可以将音频数据和/或本地确定的识别的文本传输到远程自动助理组件。到远程自动助理组件的传输可以可选地响应于确定没有本地主动缓存条目是响应的,或者可以与确定本地主动缓存条目是否响应并行发生。该传输可以伴随有给定客户端设备的标识符,以及用于标识给定客户端设备的远程主动缓存的标识符。自动助理组件的远程履行模块可以确定远程主动缓存条目是否响应于助理请求。如果是,远程履行模块可以利用响应条目来确定用于响应助理请求的助理动作内容。助理动作内容可以由远程自动助理组件远程执行和/或传输到给定客户端设备用于本地执行。
17.远程自动助理组件对远程主动缓存的利用使得远程自动助理组件能够更快速地响应自动助理请求(例如,针对请求给定动作的执行的自动助理的键入或口头话语)。这可以是助理动作被直接映射到主动缓存条目中的助理请求参数的结果,使得能够从主动缓存条目有效地标识助理动作并且无需响应助理请求而实时生成助理动作。例如,如果在主动缓存条目中缺少助理动作,则必须即时可选地通过与一个或多个附加远程系统的通信来生成助理动作,这由于与额外的远程系统的通信而在计算上可能很繁重并引入延迟。因此,尽管需要客户端-服务器往返,但是在解析助理请求时利用远程主动缓存仍然提供响应的减少延迟的供应,并且因此减少用户-助理交互的持续时间。此外,在一些实施方式中,特定于客户端设备子集的远程主动缓存可以存储在地理上靠近该子集的客户端设备的一个或多个服务器处,诸如接收来自给定地理区域的助理请求的服务器。这可以进一步减少解析助理请求的等待时间,因为可以从主动缓存中更快地确定助理动作,而无需在多个地理距离较远的服务器之间进行服务器到服务器的通信。
18.在此公开的各种实施方式针对包括至少一个或多个麦克风和自动助理应用的客
户端设备(例如,智能电话和/或其他客户端设备)。自动助理应用可以被安装在客户端设备的操作系统“之上”和/或自身可以形成客户端设备的操作系统的一部分(或全部)。自动助理应用包括和/或访问设备上的语音识别、设备上的自然语言理解和设备上履行。例如,可以使用设备上语音识别模块执行设备上语音识别,该模块使用客户端设备本地存储的端到端语音识别机器学习模型处理音频数据(由麦克风检测)。设备上的语音识别为音频数据中存在的口头话语(如果有)生成识别的文本。此外,例如,可以使用设备上的nlu模块来执行设备上的自然语言理解(nlu)以生成nlu数据,该模块处理使用设备上语音识别生成的识别的文本和可选的上下文数据。nlu数据可以包括对应于口头话语的意图和可选的意图参数(例如,槽值)。
19.可以使用设备上履行模块来执行设备上履行,该模块利用识别的文本(来自设备上的语音识别)和/或nlu数据(来自设备上的nlu)以及可选的其他本地数据,以确定为解析口头话语的意图而采取的行动(以及可选的意图参数)。这可以包括确定对口头话语的本地和/或远程响应(例如,回答)、用于基于口头话语执行的与本地安装的应用的交互、基于口头话语传输到物联网(iot)设备(直接或经由相应的远程系统)的命令和/或基于口头话语执行的其他解析动作。设备上履行然后可以发起所确定的动作的本地和/或远程履行/实施以解析口头话语。设备上履行然后可以发起所确定的动作的本地和/或远程执行/实施以解析口述话语。如本文所述,在各种实施方式中,设备上履行利用本地存储的主动缓存来响应各种用户输入。例如,基于确定识别的文本和/或nlu数据匹配主动缓存条目的助理请求参数,设备上履行可以利用本地存储的主动缓存的主动缓存条目的动作内容来响应口头话语。
20.在各种实施方式中,可以至少选择性地利用远程语音处理、远程nlu和/或远程履行。例如,识别的文本可以至少选择性地传输到远程自动助理组件以用于远程nlu和/或远程履行。例如,可以选择性地传输识别的文本以用于与设备上的性能并行的远程性能,或者响应设备上nlu和/或设备上履行的故障。然而,设备上的语音处理、设备上nlu、设备上履行和/或设备上履行可以优先考虑,至少因为它们在解析口头话语时提供的延迟减少(由于没有解析口头话语所需的客户端-服务器往返)。此外,在没有网络连接或网络连接受限的情况下,设备上的功能可能是唯一可用的功能。
21.在各种实施方式中,响应于检测到显式助理调用提示的发生和/或响应于隐式调用提示的一些发生,激活设备上语音识别和/或其他设备上处理。显式调用提示是当单独检测到时,将总是使得至少激活设备上的语音识别的一种提示。显式调用提示的一些非限制性示例包括检测具有至少阈值置信度的口头热词、显式助理界面元素(例如,触摸屏显示器上的硬件按钮或图形按钮)的启动、具有至少阈值强度(例如,由移动电话边框中的传感器检测到的)和/或其他显式调用提示的“电话挤压”。然而,其他提示是隐含的,因为设备上的语音识别将仅响应于那些提示的某些出现——诸如在某些上下文中的出现(例如,跟随或结合其他隐含提示的出现)——而被激活。例如,设备上的语音识别可以可选地不响应于检测到单独的语音活动而被激活,但可以响应于检测到语音活动以及在客户端设备处检测到用户存在和/或在客户端设备处检测到用户在阈值距离内而被激活。此外,例如,来自非麦克风传感器——诸如陀螺仪和加速度计——的指示用户已拿起客户端设备和/或当前持有客户端设备的传感器数据可以可选地不单独激活设备上的语音识别。然而,可以响应于这
样的指示以及检测到无热词音频数据中的语音活动和/或定向语音(在此更详细地描述)来激活设备上的语音识别。无热词音频数据是缺少包括热词的任何口头话语的音频数据,热词是明确的助理调用提示。作为又一示例,具有小于阈值强度的“电话挤压”可以可选地单独不足以激活设备上的语音识别。然而,设备上的语音识别可以响应于这种低强度的“电话挤压”以及检测到无热词音频数据中的语音活动和/或定向语音而被激活。
22.本文公开的一些实施方式包括一个或多个计算设备,这些计算设备包括一个或多个处理器,诸如中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)和/或张量处理单元(tpu)。一个或多个处理器可操作以执行存储在相关联的存储器中的指令,并且这些指令被配置为导致本文描述的任何方法的执行。计算设备可以包括例如具有麦克风、至少一个显示器和/或其他传感器组件的客户端助理设备。一些实施方式还包括一个或多个非暂时性计算机可读存储介质,其存储可由一个或多个处理器执行以执行本文描述的方法中的任一个的计算机指令。
附图说明
23.图1是其中可以实现本文公开的实施方式的示例环境的框图。
24.图2描绘了根据各种实施方式的示例处理流程,该流程展示了图1的各种组件如何可以进行交互。
25.图3图示了主动缓存条目的一些示例。
26.图4描绘了图示根据本文公开的实施方式的预取和存储主动缓存条目的示例方法的流程图。
27.图5a描绘了图示生成主动缓存条目、将主动缓存条目的本地子集供应到给定客户端设备和/或确定主动缓存条目的远程子集的示例方法的流程图。
28.图5b描绘了图示图5a的块510的一些实施方式的流程图。
29.图5c描绘了图示图5a的块510的一些附加或替代实施方式的流程图。
30.图6图示了计算设备的示例架构。
具体实施方式
31.首先转向图1,图示了至少选择性地执行自动助理客户端170的客户端设备160。术语“助理设备”在本文中还用于指代至少选择性地执行自动助理客户端170的客户端设备160。自动助理客户端170在图1的例子中包括语音捕获引擎171、视觉捕获引擎172、设备上语音识别引擎173、设备上nlu引擎174、设备上履行引擎176、设备上执行引擎176和预取引擎177。
32.一个或多个远程自动助理组件180可以可选地在一个或多个计算系统上实现,一个或多个计算系统经由通常以190指示的一个或多个局域网和/或广域网(例如,因特网)在通信上耦合到客户端设备160。例如,远程自动助理组件180可以经由高性能服务器集群来实现。
33.在各种实施方式中,自动助理客户端170的实例,通过其与一个或多个基于云的自动助理组件180的交互,可以形成从用户的角度看来似乎是自动助理195的逻辑实例,用户可以与它参与人机交互(例如,口头交互、基于手势的交互和/或基于触摸的交互)。
34.客户端设备160可以是例如:台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户的车辆的计算设备(例如,车载通信系统、车载娱乐系统、车载导航系统)、独立交互式扬声器、智能设备,诸如智能电视(或配备具有自动助理功能的联网加密狗的标准电视)和/或包括计算设备的用户的可穿戴设备(例如,具有计算设备的用户的手表、具有计算设备的用户的眼镜、虚拟或增强现实计算设备)。可以提供附加和/或替代的客户端计算设备。
35.客户端设备160可以可选地配备有具有一个或多个视场的一个或多个视觉组件163。视觉组件163可以采用各种形式,诸如单像相机、立体相机、lidar组件(或其他基于激光的组件)、雷达组件等。可以例如通过视觉捕获引擎174使用一个或多个视觉组件163以捕获其中部署客户端设备160的环境的视觉帧(例如,图像帧、基于激光的视觉帧)。在一些实施方式中,可以利用这样的视觉帧来确定用户是否存在于客户端设备160附近和/或用户(例如,用户的面部)相对于客户端设备的距离。自动助理客户端170可以利用这样的确定来确定是否激活设备上语音识别引擎173、设备上nlu引擎174、n设备履行引擎175和/或设备上执行引擎176。视觉帧可以附加地或替代地用于本地检测各种用户无触摸手势(例如,“竖起大拇指”、“挥手”等)。可选地,检测到的手势可以是这里描述的主动缓存条目的“助理请求参数”,基于该手势要采取的对应动作可以是主动缓存条目的“动作内容”。
36.客户端设备160还可以配备一个或多个麦克风165。语音捕获引擎172可以被配置为捕获用户的语音和/或经由麦克风165捕获的其他音频数据。如本文所述,这样的音频数据可以由设备上的语音识别引擎173使用。
37.客户端设备160还可以包括一个或多个存在传感器167和/或一个或多个显示器169(例如,触敏显示器)。显示器169可以可选地用于呈现来自设备上语音识别引擎173的流式文本转录。显示器169还可以是用户界面输出组件之一,通过它呈现来自自动助理客户端170的响应的视觉部分。存在传感器167可以包括例如pir和/或其他无源存在传感器。在各种实施方式中,自动助理客户端170的一个或多个组件和/或功能可以响应于基于来自存在传感器167的输出的人类存在的检测而被启动。在其中自动助理客户端170的启动组件和/或功能取决于首先检测到一个或多个用户的存在的实施方式中,可以节省电力资源。
38.自动助理客户端170响应于检测到显式调用提示的出现和/或检测到隐式调用提示的出现而激活设备上语音识别引擎173。当被激活时,设备上语音识别引擎173使用设备上语音识别模型(为了简单起见未在图1中示出)处理由麦克风165捕获的音频数据以确定由音频数据捕获的口头话语中的识别的文本(如果有)。设备上语音识别模型可以可选地是端到端模型,并且可以可选地辅以一种或多种技术,这些技术寻求生成额外的识别的文本假设,并使用各种考虑因素选择最佳假设。处理的音频数据可以包括在激活设备上语音识别之后捕获的音频数据,以及可选的本地缓冲的最近音频数据(例如,在激活设备上语音识别引擎173之前缓冲)。由设备上语音识别引擎173处理的音频数据可以包括原始音频数据和/或其表示。当检测到新的音频数据时,可以以流方式将音频数据提供给设备上语音识别引擎173。
39.在一些实施方式中,当设备上语音识别引擎173被激活时,人类可感知的提示被呈现以通知用户这样的激活已经发生和/或在识别发生时呈现识别的文本的流。视觉呈现还可以包括可选择的“取消”元素,当经由触摸屏显示器处的触摸输入选择该元素时,其停止
设备上语音识别引擎173。如本文所用,激活语音识别引擎173或其他组件意味着至少使其执行超出了它在激活之前的先前执行的处理。这可能意味着从完全休眠状态激活它。
40.设备上nlu引擎174、设备上履行引擎175和/或设备上执行引擎176可以可选地响应于检测到显式和/或隐式调用提示的发生而被激活。或者,引擎中的一个或多个可以仅基于对来自设备上语音识别引擎173的识别的文本的初始分析——指示识别的文本可能是助理请求——来激活。
41.当设备上nlu引擎174被激活时,设备上nlu引擎174对由设备上语音识别引擎173生成的识别的文本执行设备上自然语言理解,以生成nlu数据。nlu引擎174可以可选地利用一个或多个设备上nlu模型(为了简单起见未在图1中示出)来生成nlu数据。nlu数据可以包括例如对应于口头话语的意图和可选的意图的参数(例如,槽值)。
42.此外,当设备上履行引擎145被激活时,设备上履行引擎145使用识别的文本(来自设备上语音识别引擎173)和/或使用nlu数据(来自设备nlu引擎174)生成履行数据。设备上履行引擎145可以访问本地存储在客户端设备160处的主动缓存178,以确定识别的文本和/或nlu数据是否匹配主动缓存的主动缓存条目的助理请求参数。如果是,则设备上履行引擎145可以利用匹配主动缓存条目的动作内容作为所生成的履行数据的全部或部分。动作内容可以包括基于请求和/或与履行这样的请求相关联的数据要采取的动作。如果不是,则设备上履行引擎145可以可选地利用其他设备上履行模型(如果有的话)来尝试生成履行数据,或者可以等待来自远程自动助理组件180的远程履行数据(例如,当自动助理客户端170在线并向远程自动助理组件180提供识别的文本和/或其他数据以用于生成履行数据时)。设备上语音识别和本地主动缓存的结合可以减少向服务器/从服务器传输数据的需求,从而减少带宽和网络资源的使用。此外,即使在网络连接较差或没有网络连接的地区,也可以向用户提供低延迟响应。
43.在确定识别的文本或nlu数据是否匹配主动缓存的主动缓存条目的助理请求参数时,设备上履行引擎145可以利用精确匹配和/或软匹配。例如,在确定识别的文本是否与助理请求参数匹配时,设备上履行引擎145可以要求识别的文本与助理请求参数的文本的精确匹配,或者仅允许最小的变化(例如,包含或排除某些停用词)。此外,例如,在确定nlu数据是否与助理请求参数匹配时,设备上履行引擎145可以要求nlu数据与助理请求参数的nlu数据的精确匹配。虽然此处关于通过设备上语音识别确定的识别的文本描述了各种示例,但应理解,也可以以类似的方式提供和响应键入的文本(例如,使用虚拟键盘键入的)和/或基于键入的文本的nlu数据。
44.当履行数据由设备上履行引擎175生成时,履行数据然后可以被提供给设备上执行引擎176用于基于履行数据(例如,基于主动缓存条目的动作内容的动作的设备上履行)的设备上执行。基于履行数据的动作内容的设备上执行可以包括例如:执行在动作内容中包含的深层链接;呈现在动作内容中包含的文本、图形和/或音频(或使用设备上的语音合成器从响应转换而来的音频数据);和/或向外围设备传输(例如,通过wifi和/或蓝牙)在动作内容中包含的命令以控制外围设备。
45.预取引擎177从主动缓存系统120预取主动缓存条目以包含在主动缓存178中。预取并存储在主动缓存178中的一个或多个主动缓存条目可以是具有不符合先前提供给自动助理客户端170的任何用户输入的助理请求参数和/或具有自动助理客户端170从未使用过
的动作内容的主动缓存条目。因此,此类缓存条目可以减少为从未在自动助理客户端170处接收到的各种用户输入提供助理响应的时间量。
46.在一些实施方式和/或情况中,主动缓存系统120可以可选地将主动缓存条目推送到预取引擎177。然而,在其他实施方式和/或情况中,主动缓存系统120响应于来自预取引擎177的预取请求来传输主动缓存条目。在那些实施方式中的一些实施方式中,响应于确定一个或多个条件被满足,预取引擎177传输预取请求。条件可以包括例如以下中的一个或多个:存在特定的网络条件(例如,与wi-fi网络的连接和/或与具有特定带宽条件的wi-fi网络的连接);客户端设备160正在充电和/或至少具有阈值电池充电状态;用户没有主动使用客户端设备(例如,基于设备上的加速度计和/或陀螺仪数据);客户端设备的当前处理器使用和/或当前内存使用不超过特定阈值;等等。因此,可以在某些理想条件存在的时段期间检索主动缓存条目,但随后将其利用在任何条件下——包括不存在某些理想条件的那些条件。
47.来自预取引擎177的预取请求可以包括客户端设备160的标识符和/或与客户端设备相关联的账户的标识符,和/或可以包括已经存储在主动缓存178中的主动缓存条目的另一指示。主动缓存系统120可以利用已经存储在主动缓存178中的主动缓存条目的指示,响应于预取请求,仅提供尚未存储在主动缓存中的主动缓存条目。这可以通过仅传输新的/更新的主动缓存条目以添加到主动缓存178,而不是将新的/更新的主动缓存条目与现有缓存条目一起传输以完全取代主动缓存178来节省网络资源。作为一个示例,主动缓存系统120可以为客户端设备160的标识符维护主动缓存178中的活动的主动缓存条目的列表。主动缓存系统120可以利用这样的列表来确定响应于包含标识符的预取请求而提供哪些新的/更新的主动缓存条目。作为另一示例,预取请求可以包括映射到存储在主动缓存178中的主动缓存条目集合的令牌或其他标识符,并且主动缓存系统120可以利用这样的令牌来确定哪些新的/更新的主动缓存条目不在映射集合中,且应响应于包含令牌的预取请求应提供哪些新的/更新的主动缓存条目。
48.预取引擎177还可以选择性地从主动缓存178中去除主动缓存条目。例如,主动缓存条目可以包括生存时间(ttl)值作为其元数据的一部分。ttl值可以定义持续时间或阈值时间段,在其之后主动缓存条目可以被认为是陈旧的并且因此不被设备上履行引擎175利用和/或由预取引擎177从主动缓存178中去除。例如,如果主动缓存条目的ttl值指示它应该生存7天,并且主动缓存条目的时间戳指示它是在8天前收到的,则预取引擎177可以从主动缓存178中去除主动缓存条目。这可以释放客户端设备160的有限存储资源,并在主动缓存178中为其他即时的主动缓存条目腾出空间,其他即时的主动缓存条目的整体大小可能由于客户端设备160的有限的存储资源而受到限制。
49.在一些实施方式中,预取引擎177可以附加地或替代地从主动缓存178去除主动缓存条目以为新的主动缓存条目腾出空间,尽管去除的主动缓存条目中的一个或多个基于它们的ttl值而未被指示为陈旧。例如,主动缓存178可以具有最大大小,其可以例如由用户设置和/或基于客户端设备160的存储容量确定。如果来自预取请求的新主动缓存条目将超过最大大小,预取引擎177可以去除一个或多个现有缓存条目来为新的主动缓存条目腾出空间。在一些实施方式中,可以基于缓存条目的时间戳来去除主动缓存条目,例如,最早的主动缓存条目可以首先被预取引擎177去除。在一些实施方式中,现有主动缓存条目的元数据
可以包括分数、排名或其他优先级数据(在本文中也更一般地称为排名度量),并且具有最低优先级的那些可以被预取引擎177去除。附加地或替代地,预取引擎177可以偏向于去除从未使用过的主动缓存条目,可选地还考虑它们的时间戳以偏向从未使用过并且已经存在于主动缓存中至少阈值持续时间的条目。附加地或替代地,主动缓存系统120可以可选地响应于预取请求,提供应该去除哪些现有主动缓存条目的指示。
50.主动缓存系统120生成主动缓存条目并用为请求客户端设备选择的主动缓存条目来响应来自客户端设备160和其他客户端设备的预取请求。主动缓存系统120可以进一步生成远程主动缓存184,其由远程自动助理组件180利用并且每个可以专用于一个或多个客户端设备。
51.主动缓存系统120可以包括缓存条目生成引擎130、缓存组装引擎140和实体事件引擎150。通常,缓存条目生成引擎130利用这里描述的各种技术生成大量候选主动缓存条目(在图1和图2被引用为缓存候选134)。缓存组装引擎140为多个客户端设备中的每一个确定应向对应客户端设备提供以存储在对应客户端设备的本地主动缓存中的缓存候选134的对应子集。缓存组装引擎140还可以可选地生成远程主动缓存184,其每个都与客户端设备的子集相关联并且每个都包括缓存候选的对应子集,并且每个由远程自动助理组件180利用来用于对于对应的客户端设备的履行。实体事件引擎150可以可选地通过与一个或多个远程系统151对接来确定与各种实体相关的事件的发生。在一些实施方式中,实体事件引擎150可以向缓存条目生成引擎130提供与那些事件相关的信息,以使得缓存条目生成引擎130为实体生成一个或多个对应的缓存候选130。在一些实施方式中,实体事件引擎150可以附加地或替代地提供与那些事件缓存组装引擎140相关的信息,那些事件缓存组装引擎140可以使用该信息来确定是否向对应的客户端设备提供各种缓存候选和/或提供各种缓存候选以包括在远程主动缓存184中。
52.在图1中,缓存条目生成引擎130包括请求参数模块131、动作内容模块132和元数据模块133。请求参数模块131为每个主动缓存条目生成助理请求参数。主动缓存条目的助理请求参数表示用于执行给定动作的一个或多个助理请求。助理请求可以是请求执行给定动作的键入或口头话语。例如,多个助理请求可以每个是用于呈现当天本地预报的请求,诸如以下键入或口头话语:“today’s forecast(今天的预报)”、“today’s local forecast(今天的本地预报)”、“what’s the weather for today(今天的天气如何)”和“how’s the weather(天气怎么样)”。请求参数模块131寻求生成捕获用于执行相同给定动作的那些多个助理请求的文本表示和/或nlu表示。例如,前面话语的每个的文本可以被包括为助理请求参数和/或对于所有话语共有的nlu表示,诸如{intent=weather;location=local;date=today}”的结构化表示。
53.动作内容模块132为每个主动缓存条目生成动作内容。动作内容可以在主动缓存条目到主动缓存条目中变化。主动缓存条目的动作内容可以包括例如:要执行的深层链接;要呈现的文本、图形和/或音频;和/或要传输到外围设备的命令。
54.继续当前日期示例的本地预测,动作内容模块132可以为多个缓存条目中的每个生成不同的动作内容,其中,针对不同地理区域定制每个的动作内容。例如,第一主动缓存条目可以用于第一城市并且包括助理请求参数和第一动作内容,第一动作内容包括要呈现的文本、图形和/或音频并且指定第一城市的每日预报。第二主动缓存条目可以用于第二城
市,并包括相同(或相似)的助理请求参数,但包括第二动作内容,该第二动作内容包括要呈现的文本、图形和/或音频,并指定第二城市的不同的每日预报。如关于缓存组装引擎140所描述的,这两个不同的缓存条目可以基于客户端设备的属性提供给不同的客户端设备和/或远程主动缓存184。例如,可以为第一城市的第一客户端设备提供第一主动缓存条目,但不提供第二主动缓存条目。
55.在一些实施方式中,动作内容模块132可以为多个缓存条目中的每一个生成不同的动作内容,其中,每个的动作内容针对一个或多个不同应用定制。例如,第一主动缓存条目可以包括“play hypothetical artist(播放假设艺术家)”、“listen to some hypothetical artist(听一些假设艺术家)”和/或“{intent=listen to music;artist=hypothetical artist}”的助理请求参数。第二主动缓存条目可以包括相同(或相似)的助理请求参数。尽管如此,动作内容模块132可以为第一主动缓存条目生成包括深层链接的第一动作内容,该深层链接在被执行时使第一音乐应用在使假设艺术家的音乐开始流送的状态下打开。动作内容模块132可以为第二主动缓存条目生成包括不同深层链接的第二动作内容,该深层链接当执行时,使第二音乐应用在导致使艺术家的音乐开始流送的状态下打开。如关于缓存组装引擎140所描述的,这两个不同的缓存条目可以基于客户端设备的属性提供给不同的客户端设备和/或远程主动缓存184。即,基于客户端设备已安装和/或指示为用于音乐流传输的优选应用的应用。例如,具有作为唯一音乐流应用的第一应用的第一客户端设备可以被提供第一主动缓存条目,而不是第二主动缓存条目。
56.对于一些助理请求参数,可能仅有单个主动缓存条目。例如,对于与寻求骑士查理王猎犬(cavalier king charles spaniel,一种狗)图像的助理请求相关的助理请求参数,可以提供单个主动缓存条目,其包括具有骑士查理王猎犬的图像的动作内容。
57.元数据模块133可选地为缓存条目生成元数据。一些元数据可以可选地由主动缓存系统120利用而不必传输到客户端设备。例如,元数据模块133可以为主动缓存条目生成元数据,该元数据指示与主动缓存条目相关联的一个或多个实体、用于主动缓存条目的动作内容的语言和/或用于主动缓存条目的其他数据。缓存组装引擎140可以利用这样的元数据来确定应该向哪个(哪些)客户端设备提供主动缓存条目。例如,对于包括作为动作内容的第一城市的本地天气预报的主动缓存条目,元数据模块133可以生成指示第一城市的元数据。缓存组装引擎140可以利用这样的元数据来选择主动缓存条目以仅针对包括第一城市作为当前或优选位置的客户端设备包括在本地或远程主动缓存中。此外,例如,对于包括作为动作内容的与女演员相关的图形和/或文本的主动缓存条目,元数据模块133可以生成指示女演员的元数据。缓存组装引擎140可以利用这样的元数据来选择主动缓存条目以仅针对具有对应于女演员的属性的客户端设备包括在本地或远程主动缓存中。例如,具有基于先前观看的关于名人的内容指示女演员的属性和/或具有基于包括女演员的流媒体电影或电视节目指示女演员主演的电影/节目的属性的客户端设备。
58.元数据模块133还可以生成元数据,该元数据用主动缓存条目传输到客户端设备和/或用于维护远程主动缓存。例如,元数据模块133可为主动缓存条目生成时间戳,该时间戳指示其何时生成和/或最后验证(例如,动作内容的准确性的验证)。元数据模块133还可以为主动缓存条目生成ttl值。可以基于各种考虑因素——诸如助理请求参数和/或动作内容的性质——生成给定主动缓存条目的ttl值。例如,某些动作内容——诸如与天气相关的
动作内容——是动态的,具有此类动作内容的主动缓存条目可以具有相对较短的ttl(例如,6小时、12小时)。另一方面,某些动作内容是静态的,且具有此类动作内容的主动缓存条目可以具有相对较长的ttl(例如,7天、14天、30天)。作为另一示例,包括静态内容但基于实体事件引擎150的事件检测提供和/或生成的主动缓存条目可以具有比包括静态内容但独立于实体事件引擎150的任何事件检测被提供和/或生成的主动缓存条目更短的ttl。
59.在图1中,缓存组装引擎140包括本地模块141和远程模块142。本地模块141从缓存候选134中并为每个客户端设备选择缓存候选134的对应子集以提供给客户端设备。本地模块141可以基于各种考虑因素来确定要提供到给定客户端设备的子集,该各种考虑因素诸如是客户端设备的属性与主动缓存条目的属性的比较和/或用于主动缓存条目的排名度量。
60.例如,在为给定客户端设备选择子集时,本地模块141可以过滤掉任何主动缓存条目,其元数据指示:其动作内容仅适用于未安装在给定客户端设备上的对应应用(例如,仅用于该应用的深层链接);其动作内容仅适用于与给定客户端设备无关的地理区域;其动作内容仅使用未设置为给定客户端设备的主要(和可选的次要)语言的语言。可以基于下述内容来选择剩余的主动缓存条目:它们的属性与给定客户端设备的属性的比较、剩余主动缓存条目的排名度量(也可以被视为属性)和/或其他考虑因素。
61.例如,与具有指示未能对应于过去被确定为由给定客户端设备交互的一个或多个实体的替代实体的元数据的主动缓存条目相比较,本地模块141可以更有可能选择具有指示对应于过去被确定为由给定客户端设备交互的一个或多个实体的一个或多个实体的元数据的主动缓存条目。此外,例如,给定主动缓存条目的排名度量可以指示经由助理界面(整体或针对给定客户端设备)提交其对应的助理请求的频率和/或呈现它们对应的动作内容的频率(整体或针对给定客户端设备)。动作内容的呈现可以包括使动作内容的任何相关联的文本/图形/可听内容在客户端设备处被呈现以用于动作的执行。执行深层链接可以包括自动执行相关联的动作(例如,将应用打开到特定状态),或者可以包括使客户端设备处于准备好执行相关联的动作的状态,其中,例如执行可以响应于用户界面输入。排名度量还可以基于由实体事件模块150进行的与给定主动缓存条目相关的最近事件检测。例如,假设给定的主动缓存包括用于安装新外围设备(例如,新的智能恒温器)的助理请求参数和包括安装指令的动作内容。如果实体事件模块150确定与新外围设备相关的请求(助理请求、搜索引擎请求或其他请求)显著增加和/或与新外围设备相关的内容(例如,网页、社交媒体评论)显著增加,则对应的排名度量可以指示更高的排名,并使主动缓存条目更有可能被选择。
62.在确定给定客户端设备的主动缓存条目时,本地模块141还可以考虑已经分配给给定客户端设备的主动缓存的存储空间。此外,当给定客户端设备已经包括现有的主动缓存条目时,当确定是否为给定客户端设备提供新的主动缓存条目时,可以考虑现有的主动缓存条目。例如,可以考虑现有主动缓存条目的排名度量和/或可以考虑给定客户端设备的现有主动缓存的(如果有)未占用存储空间。
63.远程模块142可选地生成和维护一个或多个远程主动缓存184。每个远程主动缓存184是用于客户端设备的子集。远程主动缓存184的子集可以是单个客户端设备,或者共同共享一个或多个(例如,所有)属性的客户端设备的集合。例如,远程主动缓存的客户端设备
集合可以是位于相同地理区域、安装了相同应用和/或其过去的交互表明对至少阈值数量的相同实体的共同兴趣的那些设备。对于客户端设备的远程主动缓存184,远程模块142可以选择一个或多个未被过滤掉并且尚未提供用于存储在本地主动缓存中的缓存候选134。例如,对于客户端设备160,假设主动缓存178具有500mb的限制。进一步假设本地模块141已经为主动缓存178选择并提供了值500mb的主动缓存条目。远程模块142然后可以利用与本地缓存模块141相同的考虑因素来选择附加的主动缓存条目以包括在用于客户端设备160的远程主动缓存184中。例如,用于客户端设备160的远程主动缓存184可以具有2gb的限制,并且远程模块142可以通过比较主动缓存条目的属性和客户端设备160,和/或考虑主动缓存条目的排名度量来选择值2gb的剩余主动缓存条目。
64.实体事件引擎150与一个或多个远程系统151接口以监视与各种实体相关的事件的发生。为实体确定事件的一些示例是:确定与实体相关的请求的增加;确定用于实体的互联网内容的增加;和/或预测与实体相关的请求的增加。例如,实体事件引擎150可以确定针对特定的助理请求(和/或传统搜索请求)的数量是否已经激增和/或针对特定路由器的互联网内容是否存在激增。作为响应,实体事件引擎150可以向缓存组装引擎140提供与激增相关的度量,并且缓存组合引擎140可以更有可能(比激增之前)向各种客户端设备提供与特定路由器相关的主动缓存条目,用于本地主动缓存和/或远程主动缓存。为各种客户端设备提供主动缓存条目还可以基于确定那些各种客户端设备具有与路由器相关的对应属性(例如,过去搜索特定路由器或一般路由器)。
65.实体事件引擎150还可以向缓存条目生成引擎130提供激增的指示。作为响应,缓存条目生成引擎130可以可选地为特定路由器生成一个或多个主动缓存条目。缓存条目生成引擎130可以基于确定没有当前缓存候选134与特定路由器相关和/或小于阈值数量的缓存候选134与特定路由器相关,可选地为特定路由器生成一个或多个主动缓存条目。例如,缓存生成引擎130可以确定特定路由的类别(例如,路由器的一般类别)并确定用于对该类别的实体的频繁查询的模板。例如,模板“[路由器别名]的最大带宽是多少”(基于对其他特定路由器别名的关联查询)或“[路由器别名]的默认ip地址是多少”(基于对其他路由器别名的关联查询)。然后可以基于用特定路由器的别名替换“路由器别名”来生成主动缓存条目的助理请求参数。此外,可以基于来自用特定路由器的别名替换“路由器别名”的查询的顶部搜索结果的片段和/或使用其他技术来生成主动缓存条目的动作内容。例如,对于“特定路由器的默认ip地址是什么”的助理请求,可以生成“192.168.1.1”的动作内容。
[0066]
在一些实施方式中,实体事件引擎150可以确定指示现有缓存条目的动作内容陈旧的事件,并向缓存条目生成引擎130提供指示以使得缓存条目生成引擎130生成新缓存条目以反映更新的操作内容和/或去除具有陈旧内容的现有缓存条目。如这里所使用的,生成新的主动缓存条目以反映更新的动作内容可以包括更新现有的主动缓存条目以反映新的动作内容(以及可选地更新的元数据),同时保持主动缓存条目的助理请求参数。它还可以包括完全去除现有的主动缓存条目并生成具有相同助理请求参数但更新的动作内容(以及可选地更新的元数据)的新主动缓存条目。作为一个示例,实体事件引擎150可以确定地理区域的天气预报已经改变了至少阈值量,并且因此导致生成新的对应的主动缓存条目。
[0067]
在一些实施方式中,远程自动助理组件180可以包括执行语音识别的远程asr引擎181、执行自然语言理解的远程nlu引擎182和/或生成履行数据的远程履行引擎183,可选地
利用如本文所述的远程主动缓存184。还可以可选地包括远程执行模块,其基于本地或远程确定的履行数据执行远程执行。可以包括附加的和/或替代的远程引擎。如本文所述,在各种实施方式中,设备上语音处理、设备上nlu、设备上履行和/或设备上执行可以至少由于它们在解析口头话语和/或键入的话语(由于不需要客户端-服务器往返来解析口头话语)时提供的延迟和/或网络使用减少而被优先化。然而,可以至少选择性地利用一个或多个基于云的自动助理组件180。例如,此类组件可与设备上组件并行利用,并在本地组件发生故障时使用此类组件的输出。例如,在某些情况下(例如,当大小受限的主动缓存178未能包括匹配的主动缓存条目时),设备上履行引擎175可能失败,并且远程履行引擎183可以利用更鲁棒的远程主动缓存184(或当远程主动缓存不匹配时的额外的资源)以在这种情况下生成履行数据。远程实现引擎184可以与设备上履行引擎175并行操作并且在设备上履行失败时利用其结果,或者可以响应于确定设备上履行失败而被调用。
[0068]
在各种实施方式中,nlu引擎(设备上和/或远程)可以生成带注释的输出,该输出包括所识别的文本的一个或多个注释和自然语言输入的一个或多个(例如,所有)术语。在一些实施方式中,nlu引擎被配置为识别和注释自然语言输入中的各种类型的语法信息。例如,nlu引擎可以包括可以将单个单词分成语素和/或例如用它们的类来注释语素的语素模块。nlu引擎还可以包括词性标注器,该词性标注器被配置为用它们的语法角色来注释术语。此外,例如,在一些实施方式中,nlu引擎可以附加地和/或替代地包括被配置为确定自然语言输入中的术语之间的句法关系的依赖解析器。
[0069]
在一些实施方式中,nlu引擎可以附加地和/或替代地包括实体标记器,该实体标记器被配置为注释一个或多个片段中的实体引用,诸如对人(包括例如文学人物、名人、公众人物等.)、组织和地点(真实的和想象的)等等的引用。在一些实施方式中,nlu引擎可以附加地和/或替代地包括被配置为基于一个或多个上下文提示对同一实体的引用进行分组或“聚类”的共引用解析器(未描绘)。在一些实施方式中,nlu引擎的一个或多个组件可以依赖于来自nlu引擎的一个或多个其他组件的注释。
[0070]
nlu引擎还可以包括意图匹配器,其被配置为确定参与与自动助理195的交互的用户的意图。意图匹配器可以使用各种技术来确定用户的意图。在一些实施方式中,意图匹配器可以访问一个或多个本地和/或远程数据结构,其包括例如语法和响应意图之间的多个映射。例如,包含在映射中的语法可以随着时间被选择和/或学习,并且可以代表用户的共同意图。补充或代替语法,在一些实施方式中,意图匹配器可以单独或与一种或多种语法结合使用一种或多种训练的机器学习模型。可以例如通过下述方式训练这些训练的机器学习模型来标识意图:将来自口头话语的识别的文本嵌入到降维空间中,然后诸如使用诸如欧几里得距离、余弦相似度等的技术确定哪些其他嵌入(以及因此意图)最接近。一些语法具有可以填充槽值(或“参数”)的槽(例如,《artist》)。可以以各种方式确定槽值。通常用户将主动提供槽值。例如,对于语法“order me a《topping》pizza”,用户可能说出短语“order me a sausage pizza”,在这种情况下,自动填充槽《topping》。可以基于例如用户位置、当前呈现的内容、用户偏好和/或其他提示来推断其他槽值。即使到客户端设备的用户界面输入与缓存条目的一个或多个助理请求参数不匹配(可选地精确匹配),使用如本文所述的可以在本地实现的意图管理器也可以允许检索主动缓存条目。这可以提高设备的效用。
[0071]
现在转向图2,示出了根据各种实施方式的示例处理流程,该流程展示了图1的各
种组件如何可以进行交互。
[0072]
在图2中,预取引擎177向主动缓存系统120发送请求221。主动缓存系统120用主动缓存条目222响应该请求。如本文所述,主动缓存条目222可以是缓存候选的子集并且可以基于客户端设备160的属性、缓存条目222的属性、缓存条目222的排名度量和/或基于已经在缓存条目178中的主动缓存条目为客户端设备160选择。预取引擎177将缓存条目222存储在主动缓存178中,可选地去除一个或多个现有的主动缓存条目以为缓存条目222腾出空间。
[0073]
在将缓存条目222存储在主动缓存178中之后的时间(例如,几分钟或几小时之后),经由客户端设备160(图1)的麦克风165(图1)检测音频数据223。检测到的音频数据223是到客户端设备的用户界面输入的示例。设备上语音识别模块处理音频数据223以生成识别的文本171a。
[0074]
识别的文本171a可以可选地提供给设备上履行引擎175和/或远程履行引擎183。当识别的文本171a被提供给设备上履行引擎175,且设备上履行引擎175确定它匹配主动缓存178的主动缓存条目的助理请求参数时,设备上履行引擎175可以生成履行数据175a,履行数据175a至少包括匹配的主动缓存条目的动作内容。
[0075]
补充或代替考虑识别的文本171a,设备上履行引擎175可以考虑由设备上nlu引擎174基于识别的文本171a的处理(并且可选地基于上下文数据)生成的nlu数据174a。当nlu数据174a被提供给设备上履行引擎175,且设备上履行引擎175确定它匹配主动缓存178的主动缓存条目的助理请求参数时,设备上履行引擎175可以生成履行数据175a,其至少包括匹配的主动缓存条目的动作内容。如果nlu数据的意图与所述助理请求参数匹配,则还可以生成履行数据。
[0076]
设备上履行引擎176可以处理设备上履行数据175a,包括(或限于)匹配主动缓存条目的动作内容,并执行对应动作。这可以包括:基于动作内容生成听觉、视觉和/或触觉响应;执行动作内容的深层链接;和/或传输(例如,经由蓝牙或wi-fi)包含在动作内容中的命令。
[0077]
在一些实施方式中,识别的文本171a被提供给远程履行引擎183。与提供给设备履行引擎175并行地,或者可选地仅响应于设备履行引擎175确定(基于识别的文本171a和/或nlu数据174a)在主动缓存178中没有匹配条目,它可以提供给远程履行引擎183。远程履行引擎183可以访问被分配给客户端设备160的远程主动缓存184a,并且确定它是否包括具有匹配识别的文本171a和/或针对识别的文本171a的远程确定的nlu数据的助理请求参数的主动缓存条目。如果是,它可以可选地向设备上履行引擎176提供远程履行数据183a,其包括来自匹配的远程主动缓存条目的动作内容。可选地,远程履行引擎183响应于本地履行(通过设备上履行引擎175)已经失败的指示和/或响应于没有从客户端设备160接收到“停止”命令(可以在本地履行成功时提供)仅提供远程履行数据183a。远程履行引擎183还可以可选地利用其他技术来“即时”生成履行数据183a(例如,动作内容)。这可以与访问远程主动缓存184a以确定是否存在机器远程主动缓存条目并行完成和/或响应于确定不存在匹配的远程主动缓存条目而执行。由于已经预先生成远程主动缓存184a中的动作内容,因此远程履行数据可以由远程履行引擎183更快地并且利用比即时生成更少的资源获得。因此,如果匹配的远程主动缓存条目被标识,则各种实施方式可以仅基于远程主动缓存184a提供远
程履行数据,可选地不尝试即时生成履行数据和/或如果确定匹配则停止即时生成。
[0078]
图3图示了主动缓存条目310、320和330的一些非限制性示例。这样的主动缓存条目可以与大量附加条目一起存储在本地主动缓存178(图1)中或远程主动缓存184(图1)之一中。
[0079]
主动缓存条目310包括请求参数310a,其表示用于执行获得明天本地天气预报的给定动作的各种助理请求。请求参数310a包括“明天的天气”、“明天天气”的文本表示以及指定“天气”的意图以及“日期”槽的“明天”以及“位置”槽的“本地”的槽值的结构化nlu数据表示。主动缓存条目310的动作内容310b包括描述明天本地天气的文本以及传达明天本地天气的图形。响应于确定用户输入(例如,口头话语或键入话语)与请求参数310a匹配,可以呈现文本和图形两者。可选地,也可以作为响应呈现基于文本的合成语音。主动缓存条目310的元数据310c包括12小时的ttl和时间戳。如这里所描述的,一旦确定ttl已经到期,就可以从主动缓存中去除(或至少不再使用)主动缓存条目310。如这里还描述的,可以为给定地理区域中的给定客户端设备提供主动缓存条目310,而可以为其他地理区域中的其他客户端设备提供具有相同请求参数但不同动作内容的其他主动缓存条目。
[0080]
主动缓存条目320包括请求参数320a,其表示用于执行访问对应应用的恒温器时间表调整状态的给定动作的各种助理请求。请求参数320a包括“调整恒温器时间表”、“改变恒温器时间表”的文本表示以及指定“恒温器”的意图以及对于“设置”槽的“改变/调整时间表”的槽值的结构化nlu数据表示。主动缓存条目320的动作内容320b包括到特定应用的深层链接。可以响应于确定用户输入(例如,口头话语或键入话语)与请求参数320a匹配来执行深层链接。执行深层链接使特定应用在可以调整恒温器时间表设置的状态下打开(即,应用处于下一个用户输入可以导致执行动作的状态)。主动缓存条目320的元数据320c包括30天的ttl和时间戳。如这里所描述的,一旦确定ttl已经到期,就可以从主动缓存中去除(或至少不再使用)主动缓存条目320。还如本文所述,基于确定客户端设备安装有特定应用(对应于动作内容320b的深层链接)和/或将其指示为主要恒温器应用,可以为给定客户端设备提供主动缓存条目320,同时可以为没有安装特定应用的其他客户端设备提供具有相同请求参数但不同动作内容(例如,不同深层链接)的其他主动缓存条目。
[0081]
主动缓存条目330包括请求参数330a,其表示用于执行获得“john doe”(假设的人)的估计净值的给定动作的各种助理请求。请求参数330a包括“john doe的净值”和“john doe的价值是多少”的文本表示。主动缓存条目330的动作内容330b包括描述john doe的净值的文本。可以响应于确定用户输入(例如,口头话语或键入话语)与请求参数330a匹配来呈现文本。可选地,也可以作为响应呈现基于文本的合成语音。主动缓存条目330的元数据330c包括7天的ttl和时间戳。如这里所描述的,一旦确定ttl已经期满,就可以从主动缓存中去除(或至少不再使用)主动缓存条目330。还如本文所述,可以基于确定给定客户端设备的属性与john doe相关来为给定客户端设备提供主动缓存条目330。这可以基于例如用户过去搜索john doe、访问与john doe相关联的互联网内容和/或搜索与john doe具有强关系的其他实体(例如,根据知识图或其他数据结构确定)。在各种实施方式中,可以至少部分地基于确定与john doe相关的事件(例如与john doe相关的请求和/或互联网内容的增加)来生成和/或提供主动缓存条目330。例如,可以基于确定john doe是名人(类别)而生成与john doe的净值相关的主动缓存条目,并且对名人的频繁查询具有“[名人别名]净值是什
么”的模板。此外,例如,可以基于受与john doe相关的请求和/或互联网内容的增加影响的排名度量来提供主动缓存条目以用于存储在本地或远程主动缓存条目中。
[0082]
图4描绘了图示根据本文公开的实施方式的预取和存储主动缓存条目的示例方法400的流程图。为了方便,参照执行操作的系统来描述方法400的操作。该系统可以包括各种计算机系统的各种组件,诸如客户端设备(例如,图1的预取引擎177)的一个或多个组件。此外,虽然以特定顺序示出方法400的操作,但这并不意味着是限制性的。可以重新排序、省略或添加一个或多个操作。
[0083]
在块410,系统确定一个或多个预取条件是否已经发生。如果没有,系统继续确定是否发生了预取条件。如果是,则系统进行到块420。预取条件可以包括例如以下一项或多项:对于客户端设备存在特定网络条件;客户端设备正在充电和/或至少具有阈值电池充电状态;用户没有主动利用客户端设备;客户端设备的当前处理器使用率和/或当前内存使用率不超过特定阈值;和/或自最近的预取请求以来已经过去了一定时间(例如,至少一小时)。
[0084]
在块420,系统传输预取请求。预取请求可以可选地包括客户端设备的标识符和/或令牌或指示已经在客户端设备处本地存储的主动缓存条目的其他指示。
[0085]
在块430,系统响应于块420的请求接收主动助理缓存条目。
[0086]
在块440,系统将接收到的主动助理缓存条目存储在本地主动缓存中。块440可以可选地包括块440a,其中,系统从本地主动缓存中去除一个或多个现有主动缓存条目来为接收到的主动缓存条目腾出空间。在块440之后,可选地在阈值时间量已经过去之后,系统可以再次进行到块410。
[0087]
图5a描绘了图示生成主动缓存条目、将主动缓存条目的本地子集供应到给定客户端设备和/或确定主动缓存条目的远程子集的示例方法500的流程图。图5b描绘了图示图5a的块510的一些实施方式的流程图。图5c描绘了说明图5a的块510的一些附加或替代实施方式的流程图。为了方便,参照执行操作的系统来描述方法500的操作。该系统可以包括各种计算机系统的各种组件,诸如远程服务器的一个或多个组件(例如,图1的主动缓存系统)。此外,虽然以特定顺序示出了方法500的操作,但这并不意味着是限制性的。可以重新排序、省略或添加一个或多个操作。
[0088]
首先从图5a开始,在块510,系统生成主动助理缓存条目。在生成每个主动助理缓存条目时,块510可以包括子块512、514和/或516。在块512,系统为主动助理缓存条目生成助理请求参数。在块514,系统为主动助理缓存条目生成动作内容。在块516,系统为主动助理缓存条目生成元数据。下面参考图5b和5c以及本文其他地方提供了块510的实施方式的附加描述。
[0089]
在块520,系统选择客户端设备。
[0090]
在块530处,系统确定所选择客户端设备的主动助理缓存条目的本地子集。系统基于客户端设备的属性和主动助理缓存条目的属性来确定本地子集。例如,可以基于具有与客户端设备的属性对应的属性来选择一些主动助理缓存条目。这样的属性可以包括应用(例如,安装在客户端设备上并对应于主动助理缓存条目的深层链接)、地理位置(例如客户端设备的并且对应于主动助理缓存条目的)、与对应于主动助理缓存条目的实体进行比较的经由客户端设备(例如,通过搜索或访问内容)交互的实体和/或其他属性。此外,例如,可
以附加地或替代地基于主动缓存条目的排名度量来选择一些主动缓存条目。本地子集中包含的主动助理缓存条目的数量可以受客户端设备的主动助理缓存大小的影响。
[0091]
在块540处,系统可选地确定所选择客户端设备的主动缓存条目的远程子集。远程子集可以包括(或限于)未包括在块530的本地子集中的主动缓存条目。在一些实施方式中,块540可以考虑客户端设备的属性和主动助理缓存条目的属性以确定框540的远程子集。远程子集中包括的主动助理缓存条目的数量也可以受到远程主动助理缓存的大小的影响。远程主动助理缓存可以特定于客户端设备,或者特定于包括客户端设备和其他类似客户端设备的客户端设备的受限组。远程主动助理缓存可如本文所述由远程自动助理组件利用以减少在提供对于源自客户端设备的请求的响应上的延迟。
[0092]
然后系统可以返回到块520,选择另一客户端设备,并且为另一客户端设备执行块530和540。应当理解,可以并行执行块520、530和540的多次迭代,每个用于不同的客户端设备。还应理解,可以定期或不定期地为各种客户端设备重复块520、530和540,以保持最新的本地和/或远程主动助理缓存,并考虑可以通过块510的多次迭代生成的新生成的主动助理缓存条目。
[0093]
在块550,系统可选地接收来自给定客户端设备的预取请求。例如,给定客户端设备可以如关于方法400所描述的那样传输预取请求。
[0094]
在块560处,系统向给定客户端设备提供在块530的迭代中为给定客户端设备确定的本地子集的一个或多个主动助理缓存条目。提供本地子集的哪些条目可以基于确定哪些(如果有)已经存储在给定客户端设备的本地主动缓存中。例如,可选地,在块560可以仅提供还没有出现在本地主动缓存中的那些。提供的主动助理缓存条目可以由给定客户端设备的自动助理应用存储在本地主动缓存中供自动助理应用利用于,以本地履行在给定客户端设备处提供的未来用户界面输入。
[0095]
当执行块550时,可以响应于预取请求而执行块560。当不执行块550时,块560可以包括独立于来自给定客户端设备的显式请求主动推送主动助理缓存条目。应当理解,块560(以及可选地块550)将针对大量客户端设备中的每一个执行,并且将针对客户端设备中的每一个在多个场合执行。还应理解,通过方法500,不同的主动缓存条目将被提供给不同的客户端设备(和/或用于存储在对应的远程主动缓存中),并且将随着时间而更新。
[0096]
转向图5b,提供了流程图510b,其图示了图5a的块510的一些实施方式。在块511b,系统确定是否存在用于实体的事件。如果不是,则系统在块511b继续监视事件。如果是,则系统通过可选地前进到块512b并为实体生成助理请求参数、前进到块514b并为助理请求参数生成动作内容、以及前进到块516b并为主动缓存条目生成元数据来基于事件生成主动缓存条目。主动缓存条目将包括助理请求参数、动作内容和元数据。在块517b,系统确定是否为实体生成更多主动助理缓存条目。如果是,则系统通过可选地执行块512b的另一次迭代和执行块514b和块516b的另一次迭代来为实体生成另一主动助理缓存条目。如果不是,则系统返回到块511b并监视用于该实体和/或另一实体的另一事件。
[0097]
作为一个示例,在框511b,事件可以是对于地理区域的天气预报的改变。继续该示例,可以生成主动缓存条目,其在块514b处反映新的动作内容(描述新的天气预报)和在块516b处反映新的元数据(例如,时间戳),但对于地理区域的天气预报保持与先前条目相同的助理请求参数。
[0098]
作为另一示例,在块511b,事件可以是与特定音乐艺术家相关的音乐流请求的增加。继续该示例,可以生成主动缓存条目,其包括:在512b生成的与流送来自特定音乐艺术家的音乐的助理请求相关的助理请求参数;在块514b生成的动作内容,其包括用于第一应用的流送特定艺术家的深层链接;以及在块516b生成的元数据(例如,ttl值)。此外,在块517b,可以确定生成另一主动缓存条目,该条目包括相同的助理请求参数和/或元数据,但是不同的在动作内容中的深层链接。不同的深层链接在块514b的另一次迭代中生成,并且包括为第二应用流送特定音乐艺术家的深层链接。
[0099]
作为又一示例,在块511b,事件可以是与特定城市相关的请求和/或内容的增加。继续该示例,可以生成主动缓存条目,其包括:基于对其他城市的频繁助理请求(例如,请求特定城市的人口)在512b生成的助理请求参数;在框514b生成的动作内容,包括视觉和/或文本响应(例如,群体的视觉和/或文本表示);以及在块516b生成的元数据(例如,ttl值)。此外,在块517b,可以确定生成额外的主动缓存条目,其基于对其他城市的其他频繁助理请求。例如,可以生成额外的主动缓存条目,其包括:基于对其他城市的其他频繁助理请求(例如,请求特定城市的气候信息),在512b生成的助理请求参数;在框514b生成的动作内容,其包括视觉和/或文本响应(例如,气候信息的视觉和/或文本表示);以及在块516b生成的元数据(例如,ttl值)。
[0100]
转向图5c,提供了流程图510c,其图示了图5a的块510的一些附加或替代实施方式。例如,框510的一些迭代可以基于流程图510b来执行,而其他的可以基于流程图510c来执行。在块512c,系统生成助理请求参数。作为工作示例,可以为流送蓝草(bluegrass)音乐生成助理请求参数,诸如“播放一些蓝草”、“干扰一些蓝草”和/或“{intent=stream music;genre=bluegrass}”。
[0101]
在块514c处,系统通过在子块514c1处确定请求参数的n个应用来生成动作内容,其中,n是大于1的整数。例如,系统可以确定用于流送蓝草音乐的15个应用。此外,在子块514c2处,系统为n个应用中的每个确定动作内容。例如,系统将对应深层链接确定为用于n个应用中的每个的动作内容,该深层链接在被执行时使对应的应用流送蓝草音乐。
[0102]
在块516c,系统生成元数据。
[0103]
在块518c,系统生成n个主动助理缓存条目。n个生成的主动助理缓存条目中的每个都具有512c的相同的助理请求参数和516c的可选的相同元数据,但包含不同的动作内容(即,每个动作内容可以包含用于具有n应用个中的单个的对应的深层链接的动作内容)。
[0104]
图6是可以可选地用于执行这里描述的技术的一个或多个方面的示例计算设备610的框图。在一些实施方式中,客户端设备、基于云的自动助理组件和/或其他组件中的一个或多个可以包括示例计算设备610的一个或多个组件。
[0105]
计算设备610通常包括至少一个处理器614,其经由总线子系统612与多个外围设备通信。这些外围设备可以包括:存储子系统624,包括例如存储器子系统625和文件存储子系统626;用户界面输出设备620;用户界面输入设备622;以及,网络接口子系统616。输入和输出设备允许用户与计算设备610交互。网络接口子系统616提供到外部网络的接口并被耦合到其他计算设备中的对应的接口设备。
[0106]
用户界面输入设备622可以包括:键盘;诸如鼠标、轨迹球、触摸板或图形输入板之类的定点设备;扫描仪;并入显示器中的触摸屏;诸如语音识别系统、麦克风之类的音频输
入设备;以及/或者其他类型的输入设备。一般而言,术语“输入设备”的使用旨在包括所有可能类型的设备以及将信息输入到计算设备610或通信网络上的方式。
[0107]
用户界面输出设备620可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(crt)、诸如液晶显示器(lcd)的平板设备、投影设备或用于创建可见图像的一些其他机构。显示子系统还可以例如经由音频输出设备提供非视觉显示器。一般而言,术语“输出设备”的使用旨在包括所有可能类型的设备以及将信息从计算设备610输出到用户或另一机器或计算设备的方式。
[0108]
存储子系统624存储提供这里描述的一些或所有模块的功能的编程和数据构造。例如,存储子系统624可以包括用于执行这里描述的方法的选择方面以及实现这里描述的各种组件的逻辑。
[0109]
这些软件模块通常由处理器614单独或与其他处理器组合执行。存储子系统624中使用的存储器625可以包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(ram)630和其中存储固定指令的只读存储器(rom)632。文件存储子系统626可以为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、cd-rom驱动器、光驱或可移动介质盒。实现某些实施方式的功能的模块可以由文件存储子系统626存储在存储子系统624中,或者存储在处理器614可访问的其他机器中。
[0110]
总线子系统612提供一种机制,用于使得计算设备610的各种组件和子系统如预期那样彼此通信。尽管总线子系统612被示意性地示为单条总线,但是总线子系统的替代实施方式可以使用多条总线。
[0111]
计算设备610可以是各种类型的,包括工作站、服务器、计算集群、刀片服务器、服务器群或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图6中描绘的计算设备610的描述仅旨在作为用于说明一些实施方式的目的的特定示例。计算设备610的许多其他配置可能具有比图6中描绘的计算设备更多或更少的组件。
[0112]
在此处描述的系统收集或否则监视关于用户的个人信息,或者可能利用个人和/或监视的信息)的情况下,可以向用户提供控制程序或特征是否收集用户信息(例如,有关用户社交网络、社交行为或活动、职业、用户偏好或用户当前地理位置的信息),或控制是否和/或如何从内容服务器接收可能与用户更相关的内容的机会。此外,某些数据可能会在存储或使用之前以一种或多种方式进行处理,以便删除个人身份信息。例如,用户的身份可能会被处理使得无法确定用户的个人身份信息,或者在获取地理位置信息的位置时用户的地理位置可以被上位化(诸如至城市、邮政编码或州级),从而无法确定用户的特定地理位置。因此,用户可以控制如何收集和/或使用关于用户的信息。
[0113]
在一些实施方式中,提供了一种由一个或多个处理器执行的方法并且该方法包括确定表示用于执行给定动作的一个或多个助理请求的助理请求参数。助理请求参数定义助理请求的一种或多种文本表示和/或助理请求的一种或多种语义表示。该方法还包括确定可以使用第一应用执行并且也可以使用第二应用执行给定动作。该方法还包括为第一应用生成第一动作内容和为第二应用生成第二动作内容。第一动作内容包括用于第一应用的第一深层链接。第一深层链接可由安装了第一应用的客户端设备的助理客户端应用本地执行,并且第一深层链接的本地执行使第一应用在第一状态下打开以执行给定动作。第二动
作内容包括用于第二应用的第二深层链接。第二深层链接不同于第一深层链接,可由安装了第二应用的客户端设备的助理客户端应用本地执行,并且第二深层链接的本地执行使第二应用在第二状态下打开以执行给定动作。该方法还包括:生成包括助理请求参数和第一动作内容的第一主动助理缓存条目;以及生成包括助理请求参数和第二动作内容的第二主动助理缓存条目。该方法还包括为给定客户端设备生成主动缓存条目。生成主动缓存条目包括基于安装了第一应用但没有安装第二应用的给定客户端设备包括第一主动缓存条目,但不包括第二主动缓存条目。该方法进一步包括可选地响应于接收到由给定客户端设备传输的主动缓存请求将主动缓存条目传输到给定客户端设备。给定客户端设备的自动助理应用将主动缓存条目存储在本地主动缓存中,以供自动助理应用用于本地履行在给定客户端设备处提供的未来用户界面输入。
[0114]
本文公开的技术的这些和其他实施方式可以包括以下特征中的一个或多个。
[0115]
在一些实施方式中,该方法还包括确定对给定动作的请求的增加,并且响应于确定对给定动作的请求的增加,生成第一主动缓存条目并生成第二主动缓存条目。
[0116]
在一些实施方式中,该方法还包括确定对给定动作的请求的增加,并且将第一主动缓存条目包括在主动缓存条目中进一步基于对给定动作的请求的增加。在这些实施方式中的一些实施方式中,进一步基于对给定动作的请求的增加将第一主动缓存条目包括在主动缓存条目中包括:确定给定动作所指向的实体对应于为其生成主动缓存条目的给定客户端设备的一个或多个属性。在那些实施方式的一些版本中,第一应用是音乐流送应用,给定动作是实体的流送音乐,并且给定客户端设备的属性包括给定客户端设备与实体的关联。请求可以包括例如自动助理请求和/或附加请求。自动助理请求针对对应的自动助理应用,并且每个请求都是响应于对应的用户界面输入而生成的。附加请求是自动助理请求的补充,并且源自附加于自动助理应用的一个或多个附加应用。
[0117]
在一些实施方式中,该方法还包括预测对给定动作的请求的增加,并且响应于确定对给定动作的请求的增加,生成第一主动缓存条目并生成第二主动缓存条目。在一些附加或替代实施方式中,该方法还包括预测对给定动作的请求的增加并且将第一主动缓存条目包括在主动缓存条目中进一步基于所确定的对给定动作的请求的增加。预测对给定动作的请求的增加可以包括确定与给定动作所针对的实体相关的互联网内容的增加和/或确定与给定动作所针对的实体相关联的未来事件。
[0118]
在一些实施方式中,该方法还包括为第一主动助理缓存条目生成生存时间值并且将生存时间值包括在第一主动助理缓存条目中。响应于由生存时间值定义的持续时间的期满,生存时间值使给定客户端设备从本地主动缓存中去除第一主动助理缓存条目。在这些实施方式中的一些实施方式中,该方法进一步包括,由给定客户端设备的助理客户端应用:基于将生存时间值与第一主动助理缓存条目的时间戳进行比较,从主动缓存条目中去除第一主动助理缓存条目。
[0119]
在一些实施方式中,该方法还包括,由给定客户端设备的助理客户端应用:响应于传输主动缓存请求而接收主动缓存条目;并将主动缓存条目存储在给定客户端设备的本地主动缓存中。在那些实施方式中的一些实施方式中,该方法进一步包括,由给定客户端设备的助理客户端应用在将主动缓存条目存储在本地主动缓存中之后:使用设备上的语音识别基于在由客户端设备的一个或多个麦克风检测到的音频数据中捕获的口头话语生成识别
的文本作为用户界面输入;基于访问主动缓存确定第一主动助理缓存条目的助理请求参数与识别的文本和/或基于识别的文本生成的自然语言理解数据相匹配;并且,响应于确定匹配,在本地执行第一深层链接以使第一应用在第一状态下打开以执行给定动作。
[0120]
在一些实施方式中,该方法还包括,由给定客户端设备的助理客户端应用:确定给定客户端设备的网络状态和/或给定客户端设备的计算负载状态满足一个或多个条件;响应于确定网络状态和/或计算负载状态满足一个或多个条件而传输主动缓存请求;响应于传输主动缓存请求而接收主动缓存条目;并将主动缓存条目存储在给定客户端设备的本地主动缓存中。
[0121]
在一些实施方式中,提供了一种由一个或多个处理器执行的方法并且该方法包括确定与特定实体相关联的事件的发生。该方法还包括:响应于确定与特定实体相关联的事件的发生,为特定实体生成一个或多个主动助理缓存条目。每个主动助理缓存条目定义了:相应助理请求参数和相应助理动作内容。相应助理请求参数各自表示与特定实体相关的一个或多个相应助理请求,并定义助理请求的一个或多个文本表示和/或助理请求的一个或多个语义表示。相应助理动作内容中的每一个都可由客户端设备的助理客户端应用本地解释以使得助理客户端应用本地执行与特定实体相关并响应于一个或多个相应助理请求的助理动作。该方法还包括基于确定子集的客户端设备每个都具有对应于特定实体的一个或多个对应属性来选择客户端设备的该子集。该方法还包括将特定实体的主动助理缓存条目传输到子集中的多个客户端设备,而不将主动助理缓存条目传输到不在所选子集中的其他客户端设备。传输主动助理缓存条目导致每个客户端设备的对应自动助理应用将主动助理缓存条目本地缓存在本地主动缓存中,以供自动助理应用用于本地履行在给定客户端设备处提供的未来口头话语。
[0122]
本文公开的技术的这些和其他实施方式可以包括以下特征中的一个或多个。
[0123]
在一些实施方式中,确定与特定实体相关联的事件的发生包括确定与特定实体相关的请求的增加和/或用于特定实体的因特网内容的增加。
[0124]
在一些实施方式中,为特定实体生成一个或多个主动助理缓存条目中的给定一个包括:基于特定实体的一个或多个属性生成与特定实体相关的一个或多个相应理请求;以及基于一个或多个相应助理请求生成相应助理请求参数。
[0125]
在一些实施方式中,特定实体是特定人或特定组织。
[0126]
在一些实施方式中,基于特定实体的一个或多个属性生成一个或多个相应助理请求包括:确定实体的类别;为该类别中的实体的最频繁查询确定模板;并且使用模板和实体的别名生成相应助理请求中的至少一个。
[0127]
在一些实施方式中,与特定实体相关联的事件是为特定实体改变的或杜天宇特定实体为新的属性。在这些实施方式中的一些实施方式中,为特定实体生成一个或多个主动助理缓存条目包括:通过针对先前生成的主动助理缓存条目变更相应动作内容来生成主动助理缓存条目的给定一个,以使在用于该给定一个的动作的本地执行期间呈现属性。在那些实施方式的一些版本中,特定实体是地理区域中的天气并且属性是地理区域中的高温、地理区域中的低温和/或地理区域中的下雨机会。在那些实施方式的一些其他版本中,特定实体是事件并且属性是事件的开始时间、事件的结束时间和/或事件的位置。
[0128]
在一些实施方式中,该方法还包括选择与该子集的客户端设备不重叠的客户端设
备的第二子集。该方法还包括将主动助理缓存条目存储在一个或多个远程主动缓存中,这些远程主动缓存用于响应来自第二子集的客户端设备的助理请求。在那些实施方式中的一些实施方式中,一个或多个远程主动缓存包括用于第二子集的每个客户端设备的远程主动缓存中的对应一个。
[0129]
在一些实施方式中,该方法还包括,通过子集的客户端设备的给定客户端设备的助理客户端应用:传输主动缓存请求,并响应接收主动缓存请求将主动助理缓存条目传输到给定客户端设备。
[0130]
在一些实施方式中,该方法还包括,通过子集的客户端设备中的给定客户端设备的助理客户端应用:接收主动缓存条目;并将主动缓存条目存储在给定客户端设备的给定本地主动缓存中。在那些实施方式中的一些实施方式中,该方法进一步包括,在将主动缓存条目存储在本地主动缓存中之后,并且通过给定客户端设备的助理客户端应用:使用设备上的语音基于在客户端设备的一个或多个麦克风检测到的音频数据中捕获的口头话语生成识别的文本;基于对主动缓存的访问,确定主动助理缓存条目的给定的一个的相应助理请求参数与识别的文本和/或基于识别的文本生成的自然语言理解数据相匹配;并且,响应于确定匹配,本地解释主动助理缓存条目的给定的一个的相应助理动作内容。在那些实施方式的一些版本中,本地解释主动助理缓存条目的给定一个的相应助理动作内容包括使助理动作内容的文本和/或图形内容在客户端设备处呈现。
[0131]
在一些实施方式中,提供了一种由一个或多个处理器实施方式的方法并且该方法包括确定与特定实体相关联的事件的发生。该方法还包括:基于确定与特定实体相关联的事件的发生,基于确定子集的客户端设备每个都具有对应于该特定实体的一个或多个对应属性来选择客户端设备的该子集。该方法还包括将针对特定实体的一个或多个主动助理缓存条目传输到子集的多个客户端设备,而不将主动助理缓存条目传输到不在所选子集中的其他客户端设备。特定实体的主动助理缓存条目各自定义:表示与特定实体相关的一个或多个相应助理请求的相应助理请求参数;由客户端设备的助理客户端应用本地可解释以使得助理客户端应用本地执行与特定实体相关并响应于一个或多个相应助理请求的助理动作的相应助理动作内容。传输主动助理缓存条目导致每个客户端设备的对应自动助理应用将主动助理缓存条目本地缓存在本地主动缓存中,以供自动助理应用用于本地履行在给定客户端设备处提供的未来口头话语。
[0132]
本文公开的技术的这些和其他实施方式可以包括以下特征中的一个或多个。
[0133]
在一些实施方式中,确定与特定实体相关联的事件的发生包括:确定特定实体的互联网内容的增加;确定对特定实体的请求增加,包括来自一个或多个非自动助理应用的请求;和/或通过与一个或多个远程服务器的交互来确定特定实体的属性的变化。