用于减少自动化助理交互中的时延的方法和系统与流程

未命名 09-17 阅读:75 评论:0

用于减少自动化助理交互中的时延的方法和系统


背景技术:

1.人类可以利用在本文中称为“自动化助理”(也称为“聊天机器人”、“交互式个人助理”、“智能个人助理”、“个人语音助理”、“谈话代理”等)的交互式软件应用从事人机对话。例如,人类(当与自动化助理交互时可以被称为“用户”)可以向自动化助理提供口头自然语言输入(即,口语话语),该口头自然语言输入可以在一些情况下被转换成文本并且然后被处理,和/或通过提供文本(例如,键入的)自然语言输入。自动化助理通常,说出的自然语言输入可以在一些情况下被转换成文本(或其他语义表示),然后被进一步处理。自动化助理通常通过以下来响应口头话语:口述口头话语、提供响应性用户接口输出(例如,可听和/或可视的用户接口输出)、控制智能设备和/或执行其他动作。
2.自动化助理通常依赖于组件的流水线来解释和响应用户请求。例如,自动语音识别(asr)引擎可以用于处理对应于用户的口头话语的音频数据,并且生成asr输出例如口头话语的转录(即,项和/或其它令牌的序列)。此外,自然语言理解(nlu)引擎可以用于处理asr输出,并且生成nlu输出,诸如用户在提供口头话语时的意图和可选地与意图相关联的参数的槽值。而且,履行引擎可以用于处理nlu输出,并且生成履行输出,例如获得对口头话语的响应内容的结构化请求。组件的这种流水线能够引起解释和响应用户请求的时延,这能够基于用户请求的复杂性和/或用户请求的类型而不同程度地加剧。结果,用户可能重复相同的口头话语,认为自动化助理没有听到用户,或者通过在自动化助理呈现响应于口头话语的任何内容之前等待直到接收到响应内容为止而延长人机对话和/或消耗额外计算资源。


技术实现要素:

3.本文所公开的实施方式针对通过以更快速和更有效的方式结束自动化助理交互来减少自动化助理交互中的时延并且针对减少在客户端设备处重复针对自动化助理的用户输入的发生量。在一些实施方式中,客户端设备可以接收捕获用户的口头话语的音频数据。音频数据可以由客户端设备的麦克风生成。此外,可以处理音频数据以确定要由自动化助理执行的助理命令。可以使用时延预测模型来处理助理命令,以生成预测时延来履行助理命令。此外,客户端设备(或自动化助理)可以基于预测时延来确定是否在渲染响应于口头话语来呈现给用户的内容之前渲染用于呈现给用户的预先缓存内容。响应于确定在响应于口头话语的内容之前渲染用于呈现给用户的预先缓存内容,预先缓存内容可以为助理命令定制并且可以被渲染以用于呈现给用户,同时客户端设备(或自动化助理)获得响应于口头话语的内容。此外,可以在预先缓存内容之后以下述方式渲染内容以用于呈现给用户:从提供了口头话语的用户的角度来看,预先缓存内容和该内容好像是单个输出(例如,被可听地渲染以用于呈现给用户的合成语音的单个实例和/或被可视地渲染以用于以流传输方式呈现给用户的单个转录)。
4.例如,假设用户提供了口头话语“what’s the weather in louisville(路易斯维尔的天气怎么样)?”,用户的客户端设备的麦克风生成捕获口头话语的音频数据。可以使用
自动语音识别(asr)模型来处理音频数据,以生成asr输出,并且可以使用自然语言理解(nlu)模型来处理asr输出,以生成nlu输出。在该示例中,助理命令可以基于asr输出和/或nlu输出被识别为天气命令。此外,在客户端设备处执行的自动化助理可以生成获得响应于口头话语的内容(例如,“55degrees and sunny(55度且晴朗)”的当前天气预报)的请求,并且将该请求传送到远程系统以获得该内容。当自动化助理生成请求并且将其传送给远程系统以获得内容时,自动化助理可以并行地生成该自动化助理通过使用时延预测模型处理asr输出、nlu输出和/或当在客户端设备处接收到口头话语时与客户端设备相关联的设备信号来履行天气命令的预测时延。此外,自动化助理可以基于预测时延来确定是否在渲染响应于请求的内容(例如,当前天气预报)之前渲染预先缓存内容。
5.假设自动化助理确定在渲染响应于请求的内容之前渲染预先缓存内容,则自动化助理可以从用于天气命令的多个不同预先缓存内容段中选择一段预先缓存内容,以被定制到助理命令(例如,“hi[name],[location]weather[time]is

(嗨[姓名],[地点]天气[时间]是......)”)。此外,自动化助理可以使得针对预先缓存内容所选择的预先缓存内容段被定制到助理命令,从而产生定制预先缓存内容段(例如,“hi john,louisville weather right now is

(嗨,约翰,路易斯维尔现在的天气是.....).”。)。当自动化助理正在渲染定制预先缓存内容段以用于呈现给用户时,应当在客户端设备处接收响应于请求的内容(例如,当前天气预报)。接收到的内容可以与预先缓存内容同步,从而导致从用户的角度看来好像是合成语音的单个实例“hi john,louisville weather right now is 55degrees and sunny(嗨,约翰,路易斯维尔现在的天气是55度且晴朗)”。因此,因为更快地结束自动化助理交互,可以通过在内容之前渲染预先缓存内容来减少自动化助理交互中的时延,从而节省了客户端设备处的计算资源。而且,可以通过在内容之前渲染预先缓存内容来减少用户将重复口头话语的发生量,从而由于接收到较少的用户输入而节省了在客户端设备处的计算资源。
[0006]
在一些实施方式中,时延预测模型可以是基于多个训练实例而训练的机器学习(ml)模型(例如,分类模型、决策树和/或能够被训练以生成预测时延的其它ml模型)。训练实例中的每个可以包括训练实例输入和训练实例输出。用于多个训练实例中的给定训练实例的训练实例输入可以包括,例如,用于给定助理命令的nlu数据(例如,意图、用于与意图相关联的参数的槽值,和/或其它nlu数据)、用于给定助理命令的asr数据(例如,语音假设和/或其它asr数据)、和/或当接收到给定助理命令时与客户端设备相关联的一个或多个的设备信号(例如,客户端设备的地点、客户端设备的类型、客户端设备的网络连接类型和/或其它信号)。此外,训练实例输出可以包括与自动化助理执行给定助理命令相关联的基准真值时延。
[0007]
在基于给定训练实例来训练时延预测模型时,可以使用时延预测模型来处理训练实例输入,以生成与给定助理命令的履行相关联的预测时延。此外,可以将基于处理训练实例输入而生成的预测时延与和给定助理命令的履行相关联的基准真值时延进行比较,以生成一个或多个损失。可以基于给定训练实例的一个或多个损失(例如,通过在时延预测模型上反向传播一个或多个损失)来更新时延预测模型。可以以这种方式训练时延预测模型,直到满足一个或多个训练条件。训练条件可以包括,例如,时延预测模型的性能满足性能阈值,时延预测模型基于训练实例的阈值量来训练,训练时延预测模型的阈值持续时间,和/
或其它训练条件。当满足一个或多个训练条件时,可以部署时延预测模型以供客户端设备使用。
[0008]
在一些实施方式中,时延预测模型可以在它被部署以供客户端设备使用之后在客户端设备处本地更新。例如,自动化助理可以确定与给定助理命令的履行相关联的实际时延,并且将实际时延与和给定助理命令的履行相关联的预测时延进行比较,以生成一个或多个损失。可以基于用于给定助理命令的一个或多个损失(例如,通过在时延预测模型上反向传播一个或多个损失)来更新时延预测模型。因此,时延预测模型可以基于在客户端设备处履行的助理命令和/或基于客户端设备专用的设备信号在客户端设备处个性化。
[0009]
在一些实施方式中,从中选择该预先缓存内容段的多个不同预先缓存内容段可以具有不同的长度,使得可以在不同的持续时间上渲染用于不同类型的助理命令的多个不同预先缓存内容段中的每一个。例如,第一预先缓存内容段可以是第一长度并且可以花费第一持续时间渲染以用于在客户端设备处呈现给用户(例如,在上述示例中的“[location]weather[time]is

([地点]天气[时间]是......)”),第二预先缓存内容段可以是第二长度,并且可以花费第二持续时间渲染以用于在客户端设备处呈现给用户(例如,在上述示例中的“hi[name],[location]weather[time]is

(嗨[姓名],[地点]天气[时间]是......)”),第三预先缓存内容段可以是第三长度,并且可以花费第三持续时间渲染以用于呈现给用户(例如,在上述示例中的“hi[name],the radar for[location]says the weather[time]is

(嗨[姓名],[地点]的雷达说天气[时间]是......)”),依此类推。在该示例中,与第二预先缓存内容段相关联的第二长度可以比与第一预先缓存内容段相关联的第一长度长,结果,与第二预先缓存内容段相关联的第二持续时间可以比与第一预先缓存内容段相关联的第一持续时间长。此外,与第三预先缓存内容段相关联的第三长度可以比与第二预先缓存内容段相关联的第二长度长,结果,与第三预先缓存内容段相关联的第三持续时间可以比与第二预先缓存内容段相关联的第二持续时间和与第一预先缓存内容段相关联的第一持续时间二者都长。
[0010]
在这些实施方式的一些版本中,自动化助理可以基于将预测时延与一个或多个时延阈值进行比较来选择给定预先缓存内容段。例如,当预测时延未能满足第一时延阈值时,自动化助理可以选择第一预先缓存内容段,当预测时延满足第一时延阈值但未能满足第二时延阈值时,选择第二预先缓存内容段,当预测时延满足第一时延阈值和第二时延阈值时,选择第三预先缓存内容段,依此类推。因此,自动化助理可以基于自动化助理履行助理命令的预测时延来从多个不同预先缓存内容段中动态地选择以被定制到助理命令。换句话说,自动化助理可以从多个不同预先缓存内容段中选择给定预先缓存内容段,从而可以在渲染预先缓存内容期间接收响应于请求的内容,并且以及时方式在渲染预先缓存内容时被跟踪。
[0011]
在这些实施方式的一些版本中,多个不同预先缓存内容段可以特定于助理命令。换句话说,不同类型的助理命令可以与相应多个不同预先缓存内容段相关联。例如,天气命令可以与第一不同的多个预先缓存段相关联,物联网(iot)设备控制命令可以与第二不同的多个预先缓存段相关联,媒体命令可以与第三不同的多个预先缓存段相关联,搜索查询命令可以与第四不同的多个预先缓存段相关联,助理例程命令可以与第五不同的多个预先缓存段相关联,导航命令可以与第六不同的多个预先缓存段相关联,软件应用控制命令可
以与第七不同的多个预先缓存段相关联,依此类推用于多个不同类型的助理命令。在这些实施方式中的一些其它版本中,用于从多个对应的不同预先缓存内容段中选择给定预先缓存内容段的时延阈值可以针对不同类型的助理命令中的每一个而变化,而在其它实施方式中,用于选择给定预先缓存内容段的时延阈值可以是相同的。
[0012]
在一些实施方式中,自动化助理可以基于以口头话语为基础而确定的信息、从口头话语推断的信息和/或已知信息来使得所选择的预先缓存段被定制到助理命令。在用户提供了口头话语“what’s the weather in louisville(路易斯维尔的天气怎么样)?”的上述示例中,所选择的预先缓存内容段包括三个参数——[姓名]、[地点]和[时间]。自动化助理可以基于关于用户的已知信息来确定用于[姓名]参数的值,例如当用户在配置自动化助理时提供他或她的姓名时。此外,自动化助理可以基于以口头话语为基础生成的指示“louisville(路易斯维尔)”是用于天气命令的地点参数的槽值的nlu输出来确定用于[地点]参数的值。而且,自动化助理可以基于以口头话语为基础生成的指示“当前时间”是用于天气命令的时间参数的槽值的口头话语的nlu输出来推断用于[地点]参数的值。
[0013]
在一些实施方式中,在传送获得内容的请求(例如,从远程系统和/或到在客户端设备处可访问的软件应用)时,该请求可以包括需要将约简数据传送回到客户端设备的指示。在用户提供了口头话语“what’s the weather in louisville(路易斯维尔的天气怎么样)?”的上述示例中,传送到远程系统的请求可以仅请求远程系统提供温度(例如,55度)和形容词来描述天气(例如,晴朗)。换句话说,该请求可以包括因为在该内容之前渲染的预先缓存内容包括该内容的大部分所以远程系统不需要传送回结构化段的内容(例如,“louisville weather right now is 55degrees and sunny(路易斯维尔现在的天气是55度且晴朗)”)的指示。这使得请求能够具有约简大小,从而在通过一个或多个网络传送请求和/或内容时节省网络资源。
[0014]
尽管上述示例针对响应于助理命令渲染内容来描述,但是应当理解,出于示例的目的而不是限制性的。在另外的或可替代的实施方式中,当没有内容本身时,例如当助理命令控制设备(例如,媒体命令、iot设备控制命令等)时,可以利用本文描述的技术来渲染预先缓存内容。此外,尽管上述示例针对响应于单个助理命令渲染内容来描述,但是应当理解,也是出于示例的目的,而不是限制性的。在另外的或可替代的实施方式中,当口头话语包括多个助理命令时,例如当口头话语启动助理例程(例如,早上好例程,晚安例程和/或其它助理例程)时,可以利用本文描述的技术来渲染预先缓存内容。在这些实施方式中,可以为主力例程整体地生成预测时延,或者为包括在助理例程中的一个或多个单独的助理命令生成预测时延。例如,假设给定助理例程包括时间命令、交通命令和天气命令。在这种情况下,可以为每个命令整体地或者在单独的级别上生成预测时延。
[0015]
通过使用本文描述的技术,可以实现一个或多个技术优点。作为一个非限制性示例,本文描述的技术使得自动化助理能够在获得内容的同时渲染针对助理命令定制的预先缓存内容,从而以更快和更有效的方式结束自动化助理和用户之间的人机对话。例如,自动化助理可以在等待响应于要在客户端设备处获得的口头话语的某些内容之前开始响应于包括在具有预先缓存内容的口头话语中的助理命令,其中预先缓存内容被定制到该助理命令。作为另一个非限制性示例,本文描述的技术使得自动化助理能够向用户提供自动化助理以快速和有效的方式接收到助理命令的指示,从而减少用户将重复包括助理命令的口头
话语的发生量。作为另一个非限制性示例,对响应于助理命令的内容的请求可以请求较少信息,从而减小了在一个或多个网络上传送的信息的大小,并且消耗较少的网络资源。
[0016]
提供以上描述仅作为本文所公开的一些实施方式的概述。这些实施方式和其它实施方式在本文中以进一步的细节被描述。
[0017]
应当理解,本文更详细描述的上述概念和附加概念的所有组合被认为是本文所公开的主题的一部分。例如,在本公开的末尾出现的所要求保护的主题的所有组合被认为是本文所公开的主题的一部分。
附图说明
[0018]
图1描绘了示例环境的框图,该示例环境展示了本公开的各个方面并且在该示例环境中可以实现本文所公开的实施方式。
[0019]
图2描绘了根据各种实施方式的展示了本公开的各个方面的示例处理流程。
[0020]
图3描绘了根据各种实施方式的基于自动化助理履行助理命令的预测时延来确定是否可听地渲染预先缓存内容以用于呈现给用户的示例方法的流程图。
[0021]
图4描绘了根据各种实施方式的基于自动化助理履行助理命令的预测时延来选择要呈现给用户的预先缓存内容的示例方法的流程图。
[0022]
图5a、图5b和图5c描绘了根据各种实施方式的客户端设备基于自动化助理履行各种助理命令的预测时延来可听地渲染预先缓存内容以用于呈现给用户的各种非限制性示例。
[0023]
图6描绘了根据各种实施方式的计算设备的示例架构。
具体实施方式
[0024]
现在转到图1,描绘了示例环境的框图,该示例环境展示了本公开的各个方面并且在该示例环境中可以实现本文公开的实施方式。示例环境包括客户端设备110、一个或多个基于云的自动化助理组件115、一个或多个第一方服务器191和一个或多个第三方服务器192。
[0025]
客户端设备110可以执行自动化助理客户端113。自动化助理客户端113可以是与客户端设备110的操作系统分离的应用(例如,安装在操作系统“之上”),或者可以替代地由客户端设备110的操作系统直接地实现。如下面进一步描述的,自动化助理客户端113可以可选地响应由客户端设备110的用户接口组件112所提供的各种请求与一个或多个基于云的自动化助理组件115交互。此外,并且还如下所述,客户端设备110的其它引擎可以可选地与一个或多个基于云的自动化助理组件115交互。
[0026]
一个或多个基于云的自动化助理组件115可以在一个或多个计算系统(例如,统称为“云”或“远程”计算系统的服务器)上实现,该计算系统经由一个或多个局域网(“lan”,包括wi-fi lan、蓝牙网络、近场通信网络、网状网络等)、广域网(“wan”,包括互联网等)和/或其它网络通信地耦合到客户端设备110。基于云的自动化助理组件115与客户端设备110的通信耦合通常由图1的1991来指示。此外,在一些实施方式中,客户端设备110可以经由一个或多个网络(例如,lan和/或wan)与其它客户端设备(未描绘)通信地耦合。
[0027]
一个或多个基于云的自动化助理组件115还可以经由一个或多个网络(例如,lan、
wan和/或其它网络)与一个或多个第一方服务器191和/或一个或多个第三方服务器通信地耦合。基于云的自动化助理组件115与一个或多个第一方服务器191的通信耦合通常由图1的1992来指示。此外,基于云的自动化助理组件115与一个或多个第三方服务器192的通信耦合通常由图1的1993来指示。在一些实施方式中,并且尽管在图1中没有明确描绘,但是客户端设备110可以另外地或替代地经由一个或多个网络(例如,lan、wan和/或其它网络)与一个或多个第一方服务器191和/或一个或多个第三方服务器192通信地耦合。
[0028]
自动化助理客户端113,通过其与一个或多个基于云的自动化助理组件115的交互,可以形成从用户的角度来看好像是客户端设备110的用户可以与其从事人机对话的自动化助理120的逻辑实例。例如,由虚线包围的自动化助理120的实例包括客户端设备110的自动化助理客户端113和一个或多个基于云的自动化助理组件115。因此,应当理解,与在客户端设备110上执行的自动化助理客户端113接洽的每个用户实际上可以与他或她自己的自动化助理120的逻辑实例(或者在用户的家庭或其他组之间共享和/或在多个自动化助理客户端113之间共享的自动化助理120的逻辑实例)接洽。尽管在图1中仅图示了客户端设备110,但是应当理解,一个或多个基于云的自动化助理组件115可以另外地服务于客户端设备的许多另外的组。此外,尽管在图1中图示了基于云的自动化助理组件115,但是应当理解,在各种实施方式中,自动化助理120可以专门在客户端设备110处实现。
[0029]
如本文所用,第一方设备或系统(例如,一个或多个第一方服务器191)指的是由一方控制的系统,该方与控制本文所指的自动化助理120的一方相同。例如,一个或多个第一方服务器191可以指的是一种系统,该系统托管搜索引擎服务、通信服务(例如,电子邮件、sms消息传递等)、导航服务、音乐服务、文档编辑或共享服务,和/或被与控制本文所指的自动化助理120的一方相同的一方控制的其它服务。相反,第三方设备或系统(例如,一个或多个第三方服务器192)指的是由一方控制的系统,该方不同于控制本文所指的自动化助理120的一方。例如,一个或多个第三方服务器192可以指的是托管相同服务的系统,但是那些服务由与控制本文引用的自动化助理120的一方不同的一方控制。
[0030]
客户端设备110可以包括例如以下中的一个或多个:台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户的车辆的计算设备(例如,车载通信系统、车载娱乐系统、车载导航系统)、交互式独立扬声器(例如,具有或不具有显示器)、诸如智能电视或智能洗衣机/烘干机的智能电器、包括计算设备的用户的可穿戴设备(例如,具有计算设备的用户的手表、具有计算设备的用户的眼镜、虚拟或增强现实计算设备)和/或能够接收针对自动化助理120的用户输入的任何iot设备。可以提供另外的和/或替代的客户端设备。
[0031]
在各种实施方式中,客户端设备110可以包括一个或多个存在传感器111,其被配置为在来自对应用户的批准情况下提供指示检测到的存在特别是人类存在的信号。在这些实施方式中的一些中,自动化助理120可以至少部分地基于在客户端设备110(或在与客户端设备110的用户相关联的另一计算设备)处的用户的存在来识别客户端设备110(或与客户端设备110的用户相关联的另一计算设备)以满足口头话语(或针对自动化助理120的其它输入)。口头话语(或者针对自动化助理120的其它输入)可以通过以下来满足:在客户端设备110和/或与客户端设备110的用户相关联的其它计算设备处(例如,可听地和/或可视地)渲染响应内容,通过使得客户端设备110和/或与客户端设备110的用户相关联的其它计算设备被控制和/或通过使得客户端设备110和/或与客户端设备110的用户相关联的其它
计算设备执行任何其它动作以满足口头话语(或针对自动化助理120的其它输入)。如本文所述,自动化助理120可以利用基于存在传感器111所确定的数据来基于用户在附近或最近在附近的位置确定客户端设备110(或其它计算设备),并且仅向客户端设备110(或那些其它计算设备)提供对应命令。在一些另外或替代的实施方式中,自动化助理120可以利用基于存在传感器111所确定的数据来确定任何用户(任何用户或特定用户)当前是否接近于客户端设备110(或其他计算设备),并且可以基于接近客户端设备110(或其他计算设备)的用户而可选地抑制向客户端设备110(或其他计算设备)提供数据和/或提供来自客户端设备110(或其他计算设备)的数据。
[0032]
存在传感器111可以以各种形式出现。例如,客户端设备110可以被配备有一个或多个数字相机,该一个或多个数字相机被配置为捕获并且提供指示在其视场中检测到的移动的信号。另外或者替代地,客户端设备110可以被配备有其他类型的基于光的存在传感器111,诸如测量从它们的视场内的对象辐射的红外(“ir”)光的无源红外(“pir”)传感器。另外或者替代地,客户端设备110可以被配备有检测声学(或压力)波的存在传感器111,例如一个或多个麦克风。
[0033]
另外或替代地,在一些实施方式中,存在传感器111可以被配置为检测与人类存在或设备存在相关联的其它现象。例如,在一些实施例中,客户端设备110可以被配备有存在传感器111,其检测由例如用户携带/操作的其他计算设备(例如,移动设备、可穿戴计算设备等)和/或其他计算设备发射的各种类型的无线信号(例如,诸如无线电波、超声波、电磁等的波)。例如,客户端设备110可以被配置为发射人类不可感知的波,诸如超声波或红外波,其可以由其他计算设备(例如,经由诸如具有超声波能力的麦克风的超声波/红外接收器)检测到。
[0034]
另外或替代地,客户端设备110可以发射其他类型的人类不可感知的波,诸如无线电波(例如wi-fi、蓝牙、蜂窝等),其可以由用户携带/操作的其他计算设备(例如移动设备、可穿戴计算设备等)来检测,并且用于确定用户的特定地点。在一些实施方式中,gps和/或wi-fi三角测量可以用于例如基于到/来客户端设备110的gps和/或wi-fi信号来检测人的地点。在其他实施方式中,客户端设备110可以单独或共同地使用诸如飞行时间、信号强度等的其他无线信号特性,以基于由用户携带/操作的其他计算设备所发射的信号来确定特定人的地点。
[0035]
另外或替代地,在一些实施方式中,客户端设备110可以执行语音识别以从用户的声音识别用户。例如,自动化助理120的一些实例可以被配置为将声音与用户的简档匹配,例如出于提供/限制对各种资源的访问的目的。在一些实施方式中,然后,讲话者的移动可以例如由客户端设备110的存在传感器111(以及可选地gps传感器和/或加速度计)确定。在一些实施方式中,基于这种检测到的移动,可以预测用户的地点,并且当至少部分地基于客户端设备110和/或其他计算设备与用户的地点的接近度而使得在客户端设备110和/或其他计算设备处渲染任何内容时,可以将该地点假设为用户的地点。在一些实施方式中,可以简单地假设用户处于他或她与自动化助理120接洽的最后地点,特别是在自最后接洽以来尚未经过很多时间的情况下。
[0036]
客户端设备110还包括用户接口组件112,其可以包括一个或多个用户接口输入设备(例如,麦克风、触摸屏、键盘和/或其他输入设备)和/或一个或多个用户接口输出设备
(例如,显示器、扬声器、投影仪和/或其他输出设备)。此外,客户端设备110和/或任何其它计算设备可以包括用于存储数据和软件应用的一个或多个存储器、用于访问数据和执行应用的一个或多个处理器、以及有助于通过网络通信的其它组件。由客户端设备110、其它计算设备和/或由自动化助理120执行的操作可以分布在多个计算机系统上。自动化助理120可以被实现为例如在一个或多个地点中通过网络(例如,图1的网络199)彼此耦合的一个或多个计算机上运行的计算机程序。
[0037]
如上所述,在各种实施方式中,客户端设备110可以操作自动化助理客户端113。在各种实施例中,自动化助理客户端113可以包括语音捕获/自动语音识别(asr)/自然语言理解(nlu)/文本到语音(tts)模块114。在其它实施方式中,相应语音捕获/asr/nlu/tts模块114的一个或多个方面可以与自动化助理客户端113分离地实现(例如,由一个或多个基于云的自动化助理组件119实现)。
[0038]
语音捕获/asr/nlu/tts模块114可以被配置为执行一个或多个功能,包括例如:捕获用户的语音(语音捕获,例如,经由相应麦克风(其在一些情况下可以包括一个或多个存在传感器105));使用存储在机器学习(ml)模型数据库110a中的asr模型将所捕获的音频转换为识别的文本和/或其它表示或嵌入;使用存储在ml模型数据库110a中的nlu模型来解析和/或注释识别的文本;和/或使用存储在ml模型数据库110a中的tts模型将文本转换为语音。这些ml模型的实例可以本地存储在客户端设备110处和/或由客户端设备110通过图1的网络199可访问。在一些实施方式中,因为客户端设备110可以在计算资源(例如,处理器周期、存储器、电池等)方面相对受限,所以可以将客户端设备110本地的相应语音捕获/asr/nlu/tts模块114配置为使用语音识别模型将有限数量的不同口头短语转换为文本(或其它形式,例如较低维度嵌入)。一些语音输入可以被发送到一个或多个基于云的自动化助理组件115,其可以包括基于云的asr模块116、基于云的nlu模块117和/或基于云的tts模块118。
[0039]
基于云的asr模块116可以被配置为利用云的几乎无限的资源来使用存储在ml模型数据库110a中的asr模型将由语音捕获/asr/nlu/tts模块114捕获的音频数据转换为文本,然后可以将其提供给基于云的nlu模块117。基于云的tts模块118可以被配置为利用云的几乎无限的资源来使用存储在ml模型数据库110a中的语音合成模型将文本数据(例如,由自动化助理120制定的文本)转换为计算机生成的合成语音。在一些实施方式中,基于云的tts模块118可以将计算机生成的语音输出提供给客户端设备110和/或其他计算设备,以被直接输出,例如使用客户端设备110和/或其他计算设备的扬声器。在其它实施方式中,由自动化助理120使用基于云的tts模块118生成的文本数据(例如,包括在命令中的客户端设备通知)可以被提供给客户端设备110和/或其它计算设备的语音捕获/asr/nlu/tts模块114,其然后可以使用存储在ml模型数据库110a中的语音合成模型将文本数据本地转换为计算机生成的语音,并且使得计算机生成的语音经由客户端设备110和/或其他计算设备的扬声器来渲染。
[0040]
基于云的nlu模块117处理由用户经由客户端设备110和/或其它计算设备的用户接口组件112生成的自然语言输入,并且可以生成注释输出以供自动化助理120的一个或多个其它组件使用。例如,基于云的nlu模块117可以处理由用户经由客户端设备110的用户接口组件112生成的自然语言自由形式输入(例如,口头输入和/或键入的输入)。基于处理自然语言自由形式输入而生成的注释输出可以包括自然语言输入的一个或多个注释,以及可
选地自然语言输入的一个或多个(例如,全部)项。这些注释可以包括,例如,基于处理自然语言输入而确定的意图、用于与所确定的意图相关联的参数的槽值、对应于包括在用于实体的自然语言输入中的实体的标签、语音部分、和/或包括在自然语言输入中的其它信息、和/或其它注释。
[0041]
在一些实施方式中,基于云的nlu模块117被配置为识别并且注释自然语言输入中的各种类型的语法信息。例如,基于云的nlu模块117可以包括语音标记器的一部分,该语音标记器被配置成利用词语的语法作用来注释项。在一些实施方式中,基于云的nlu模块117可以另外或替代地包括实体标记器(未描绘),该实体标记器被配置为注释一个或多个分段中的实体引用,诸如对人们(包括例如文学角色、名人、公众人物等)、组织、地点(真实的和想象的)等的引用。在一些实施方式中,关于实体的数据可以被存储在一个或多个数据库中,诸如在知识图(未描绘)中。在一些实施方式中,知识图可以包括表示已知实体(以及在一些情况下,实体属性)的节点,以及连接节点并表示实体之间的关系的边。基于云的nlu模块117的实体标记器可以以高粒度水平(例如,能够识别对诸如人们的实体类的所有引用)和/或较低粒度水平(例如,能够识别对诸如特定人的特定实体的所有引用)注释对实体的引用。实体标记器可以依靠自然语言输入的内容来解析特定实体并且/或者可以可选地与知识图或其他实体数据库通信以解析特定实体。
[0042]
在一些实施方式中,基于云的nlu模块117可以另外和/或替代地包括共指解析器(未描绘),该共指解析器被配置为基于一个或多个场境线索来将对同一实体的引用进行分组或“聚类”。例如,基于在紧接在接收自然语言输入“lock it(锁住它)”之前渲染的客户端设备通知中提及了“front door lock(前门锁)”,可以利用共指解析器来将自然语言输入“lock it”中的词语“it”解析为“front door lock”。
[0043]
在一些实施方式中,基于云的nlu模块117的一个或多个组件可以依靠来自基于云的nlu模块117的一个或多个其他组件的注释。例如,在一些实施方式中,命名的实体标记器可以依靠来自在注释对特定实体的所有提及时的共指解析器和/或依赖分析器的注释。另外,例如,在一些实施方式中,共指解析器可以依靠来自在将对同一实体的引用进行聚类时的依赖分析器的注释。在一些实施方式中,在处理特定自然语言输入时,基于云的nlu模块117的一个或多个组件可以使用特定自然语言输入之外的相关数据来确定一个或多个注释—诸如由客户端设备110处的自动化助理120紧接在接收通知基于的自然语言输入之前渲染的通知。
[0044]
尽管特定功能被描述为关于由一个或多个基于云的组件115(例如,基于云的asr模块115、基于云的nlu模块117和基于云的tts模块118)执行,但是应当理解,出于示例的目的而不是限制性的。例如,在各种实施方式中,语音捕获/asr/nlu/tts模块114可以在客户端设备110处本地执行相同或类似的功能,而不与基于云的自动化助理组件115交互。
[0045]
尽管图1被描述为关于具有单个用户的单个客户端设备,但是应当理解,出于示例的目的而不是限制性的。例如,用户的一个或多个另外客户端设备也可以实现本文描述的技术。这些另外客户端设备可以与客户端设备110(例如,通过网络199)通信。作为另一个示例,给定客户端设备可以由共享设置中的多个用户在(例如,一组用户、家庭)利用。
[0046]
在各种实施方式中,客户端设备110还可以包括用于处理在客户端设备110处经由用户接口组件112接收到的各种用户输入的各种引擎。例如,如图1所示,客户端设备110还
可以包括时延预测引擎130、预先缓存引擎140、填充器引擎150、履行引擎160和更新引擎170。客户端设备110还可以包括设备上存储器,包括ml模型数据库110a和预先缓存内容数据库140a。在一些实施方式中,这些各种引擎可以专门在客户端设备110上执行。在另外的或替代的实施方式中,这些各种引擎中的一个或多个可以远离客户端设备110执行(例如,作为基于云的自动化助理组件115的一部分)。
[0047]
如本文所述,客户端设备110可以利用这些各种引擎来减少响应用户请求的时延和/或减少在客户端设备110处接收的用户输入量,从而通过以更快和更有效的方式结束人机对话会话和/或减少用户重复相同用户请求的发生量来节省计算资源。例如,现在转到图2,描绘了展示本公开的各个方面的示例处理流程。图2中所描绘的处理流程可以由图1的示例环境中所描绘的客户端设备110的各种引擎来执行。
[0048]
例如,假设语音捕获/asr/nlu/tss模块114的语音捕获引擎114a检测由客户端设备110的一个或多个麦克风所生成的音频数据114a1。音频数据可以捕获客户端设备110的用户的口头话语。语音捕获/asr/nlu/tss模块114的asr引擎114b可以使用存储在ml模型数据库110a中的asr模型来处理音频数据114a1以生成asr输出114b1。asr输出114b1可以包括,例如,预测为对应于在音频数据114a1中捕获的用户的口头话语的一个或多个语音假设、用于一个或多个语音假设中的每一个的一个或多个对应预测值(例如,概率、对数似然性和/或其他值)、预测为对应于在音频数据114a1中捕获的用户的口头话语的多个音素、和/或其它asr输出。
[0049]
在一些实施方式中,asr引擎114b可以仅响应于确定调用了自动化助理120来处理音频数据114a1。自动化助理120可以通过以下来调用:响应于确定音频数据114a1包括调用自动化助理120的一个或多个特定单词或短语(例如,使用存储在ml模型数据库110a中的热词模型所确定),诸如“assistant(助理)”、“hey assistant(嗨,助理)”等,响应于确定在调用自动化助理120的由客户端设备110的一个或多个视觉组件检测到的调用手势(例如,使用存储在ml模型数据库110a中的热词自由模型所确定)(诸如特定手移动、针对自动化助理120的眼睛注视和/或唇部移动等)之后接收到音频数据114a1,响应于确定在按钮(例如,硬件或软件按钮)按压(在被按压时调用自动化助理120)之后音频数据114a1被接收到、和/或通过任何其它手段。在另外的或替代的实施方式中,asr引擎114b可以连续地处理由客户端设备110的一个或多个麦克风生成的音频数据114a1(假设客户端设备110的用户已经同意音频数据114a1的连续处理)。
[0050]
此外,语音捕获/asr/nlu/tss模块114的nlu引擎114c可以使用语音捕获/asr/nlu/tss模块114的nlu模型来处理asr输出114b1以生成nlu输出114c1。nlu输出114c1可以包括,例如,用于用户的口头话语的一个或候选意图、用于一个或多个候选意图中的每一个的一个或多个相应预测值(例如,概率、对数似然性和/或其它值)、用于与一个或多个候选意图相关联的一个或多个对应参数的一个或多个槽值、和/或其它nlu输出。而且,自动化助理120可以基于nlu输出114c1来确定代表客户端设备110的用户执行助理命令。作为一个工作示例,假设用户提供了口头话语“assistant,what is the weather in louisville(助理,路易斯维尔的天气怎么样)?”。在该示例中,图2的处理流程可以用于确定口头话语针对自动化助理120(例如,基于确定口头话语包括项“assistant(助理)”),并且可以确定口头话语包括天气意图,该天气意图具有用于与天气意图相关联的地点参数的第一槽值[路易
斯维尔,ky]和用于与天气意图相关联的时间参数的第二槽值[当前时间]。因此,自动化助理120可以基于处理捕获用户的口头话语的音频数据114a1来确定将代表客户端设备110的用户执行的理命令。
[0051]
在一些实施方式中,时延预测引擎130可以使用时延预测模型来处理nlu输出114c1,以生成用于自动化助理120履行助理命令的预测时延130a。自动化助理120可以通过以下来履行助理命令:通过可听地和/或可视地渲染内容以呈现给客户端设备110的用户,通过使得客户端设备110被控制,通过使得用户的另一个客户端设备被控制,和/或通过执行其它履行。如本文所述,预测时延130a例如可以是用于自动化助理120生成履行请求,将履行请求传送到适当方(例如,客户端设备110可访问的一个或多个软件应用110b、一个或多个第一方服务器191、一个或多个第三方服务器192等)并且使得执行该履行(例如,可听地和/或可视地渲染内容以呈现给客户端设备110的用户,通过使得客户端设备110被控制,通过使得用户的另一客户端设备被控制,和/或通过执行其他履行)的预测持续时间。例如,时延预测引擎130可以使用时延预测模型来处理包括在nlu输出114c1中以生成预测时延130a的意图。在这些示例中的一些示例中,时延预测引擎130可以使用时延预测模型并且连同包括在nlu输出114c1中的意图一起处理用于与也包括在nlu输出114c1中的意图相关联的一个或多个对应参数的一个或多个槽值。
[0052]
在一些另外或替代的实施方式中,时延预测引擎130可以使用时延预测模型并且连同nlu输出114c1来处理asr输出114b1(例如,如从asr输出114b1到时延预测引擎130的虚线所指示)一起处理以生产用于自动化助理120履行助理命令的预测时延130a。在一些另外的或替代的实施方式中,时延预测引擎130可以使用时延预测模型并且连同nlu输出114c1一起处理由客户端设备生成的一个或多个设备信号110c。一个或多个设备信号110c可以包括,例如,由客户端设备110的一个或多个地点传感器生成的客户端设备110的地点、客户端设备110的类型(例如,移动设备、车载设备、独立交互扬声器等)、客户端设备110的网络连接类型、和/或提供客户端设备110的环境的场境的其它设备信号。
[0053]
在各种实施方式中,时延预测模型可以是基于多个训练实例而训练的ml模型(例如,分类模型、决策树和/或能够被训练以生成预测时延130a的其它ml模型)。每个训练实例可以包括训练实例输入和训练实例输出。针对多个训练实例中的给定训练实例,训练实例输入可以包括,例如,用于给定助理命令的nlu数据(例如,意图、用于与意图相关联的参数的槽值和/或其它nlu数据)、用于给定助理命令的asr数据(例如,语音假设和/或其它asr数据)和/或当接收到给定助理命令时与客户端设备(例如,客户端设备110和/或另一客户端设备)相关联的一个或多个设备信号。此外,训练实例输出可以包括与给定助理命令的履行相关联的基准真值时延。在基于给定训练实例来训练时延预测模型时,可以使用时延预测模型来处理训练实例输入,以生成与给定助理命令的履行相关联的预测时延。此外,可以将基于处理训练实例输入而生成的预测时延与和给定助理命令的履行相关联的基准真值时延进行比较,以生成一个或多个损失。可以基于用于给定训练实例的一个或多个损失(例如,通过在时延预测模型上反向传播一个或多个损失)来更新时延预测模型。可以以这种方式训练时延预测模型,直到满足一个或多个训练条件为止。训练条件可以包括,例如,时延预测模型的性能满足性能阈值、时延预测模型基于训练实例的阈值量来训练、训练时延预测模型的阈值持续时间,和/或其它训练条件。当满足一个或多个训练条件时,可以部署时
延预测模型以供客户端设备110和/或一个或多个基于云的自动化助理组件115使用。
[0054]
预先缓存引擎140可以基于预测时延130a来确定是否在可听地和/或可视地渲染响应于履行请求的内容之前,在客户端设备110执行动作之前,和/或在用户的另一客户端设备执行动作之前,可听地和/或可视地渲染预先缓存内容以用于呈现给客户端设备110的用户。而且,并且假设预先缓存引擎140确定可听地和/或可视地渲染预先缓存内容,则预先缓存引擎140可以基于预测时延130a来确定可听地和/或可视地渲染什么预先缓存内容以用于呈现给客户端设备110的用户。预先缓存内容可以本地存储在客户端设备110处(例如,在预先缓存内容数据库140a中),而响应于履行请求的内容可以在客户端设备110处(例如,经由一个或多个软件应用110b)本地获得,和/或从远程系统(例如,第一方服务器191和/或第三方服务器192中的一个或多个)获得。
[0055]
在一些实施方式中,预先缓存内容数据库140a可以包括用于不同类型的助理命令的多个不同预先缓存内容段。可以在不同的持续时间内渲染用于不同类型的助理命令的多个不同预先缓存内容段中的每一个。换句话说,用于不同类型的助理命令的多个不同预先缓存内容段中的每一个可以具有不同的长度,并且可以基于预测时延130a来选择。例如,针对天气命令,预先缓存内容数据库140a可以包括:花费第一持续时间在客户端设备110处可听地渲染的第一预先缓存内容段;花费第二持续时间在客户端设备110处可听地渲染的第二预先缓存内容段,该第二持续时间比第一持续时间长;花费第三持续时间在客户端设备110处可听地渲染的第三预先缓存内容段,该第三持续时间比第一和第二持续时间二者都长,依此类推。在该示例中,可以在预测时延130a未能满足第一时延阈值时选择第一预先缓存内容段,可以在预测时延130a满足第一时延阈值但是未能满足第二时延阈值时选择第二预先缓存内容段,可以在预测时延130a满足第一时延阈值和第二时延阈值时选择第三预先缓存内容段,依此类推。
[0056]
其它类型的助理命令可以与不同预先缓存内容相关联。例如,针对iot设备控制命令,预先缓存内容数据库140a可以包括:花费第一持续时间(例如,其可以是或可以不是用于天气命令的相同的第一持续时间)在客户端设备110处可听地渲染的第一替换预先缓存内容段、花费比第一持续时间更长的第二持续时间((例如,其可以是或可以不是用于天气命令的相同的第二持续时间))在客户端设备110处可听地渲染的第二替代预先缓存内容段、花费比第一持续时间和第二持续时间二者都长的第三持续时间(例如,其可以是或可以不是用于天气命令的相同的第三持续时间)在客户端设备110处可听地渲染的第三替代预先缓存内容段,依此类推。在该示例中,当预测时延130a未能满足第一时延阈值(例如,其可以是或可以不是用于天气命令的相同的第一时延阈值)时,可以选择第一替代预先缓存内容段,当预测时延130a满足第一时延阈值但未能满足第二时延阈值(例如,其可以是或可以不是用于天气命令的相同的第二时延阈值),可以选择第二替代预先缓存内容段,当预测时延130a满足第一时延阈值和第二时延阈值时,可以选择第三预先缓存内容段,依此类推。
[0057]
继续上述工作示例,进一步假设,针对天气命令,第一预先缓存内容段对应于“[地点]天气[时间]是[履行信息]”,第二预先缓存内容段对应于“美好的[地点][时间]的天气是[履行信息]”,并且第三预先缓存内容段对应于“好的,雷达显示[地点][时间]的天气是[履行信息]”。在该示例中,可以假设预测时延130a未能满足第一时延阈值来选择对应于“[地点]天气[时间]是[履行信息]”的第一预先缓存段,可以假设预测时延130a满足第一时
延阈值但是未能满足第二时延阈值来选择对应于“美好的[地点][时间]的天气是[履行信息]”的第二预先缓存段,并且假设预测时延130a满足第一时延阈值但是未能满足第二时延阈值来选择对应于“好的,雷达显示[地点][时间]的天气是[履行信息]”的第三预先缓存段。出于示例的目的,假设预测时延130a满足用于接收到的天气命令的第一时延阈值和第二时延阈值,使得对应于“好的,雷达显示[地点][时间]的天气是[履行信息]”的第三预先缓存段被选择为预先缓存内容140a以用于向客户端设备110的用户可听和/或可视呈现。
[0058]
填充器引擎150通过利用基于口头话语确定的和/或基于口头话语推断的槽值来填充所选择的预先缓存内容140a的一个或多个参数,而将预先缓存内容140a定制到助理命令。换句话说,填充器引擎150可以识别口头话语中的一个或多个项,并且将这些项注入到预先缓存内容中,使得所选择的预先缓存内容140a可以被定制到基于口头话语所确定的助理命令。被注入到预先缓存内容中的项可以基于包括在口头话语中的助理命令。继续该工作示例,填充器引擎150可以确定[地点]对应于“路易斯维尔”,并且[时间]对应于“当前时间”,从而得到“好的,雷达显示[路易斯维尔]现在的天气是[履行信息]”的填充的预先缓存内容150a。
[0059]
在一些实施方式中,语音捕获/asr/nlu/tss模块114的tts引擎114d可以使用存储在ml模型数据库110a中的tts模型来处理填充的预先缓存内容150a,以生成合成语音音频数据,该合成语音音频数据包括对应于填充的预先缓存内容150a的合成语音114d1。包括填充的预先缓存内容150a的合成语音114d1可以在生成填充的预先缓存内容150a时经由客户端设备110的一个或多个扬声器可听地渲染。在另外的或替代的实施方式中,转录引擎(未描绘)可以使得在生成填充的预先缓存内容150a时经由客户端设备110的显示器可视地渲染对应于填充的预先缓存内容150a的转录。
[0060]
值得注意的是,随着nlu输出114c1由上述各种引擎处理以生成填充的预先缓存内容150a,nlu输出114c1可以由履行引擎160并行地处理。履行引擎160a可以处理nlu输出114c1以生成履行数据160a。履行引擎160a可以将履行数据160a传送到由客户端设备110、一个或多个第一方服务器191和/或一个或多个第三方服务器192可访问的一个或多个软件应用110b。基于nlu输出114c1所生成的履行数据160a可以包括指示助理命令的数据,诸如对应于助理命令的文本(例如,使用asr引擎114b生成)、助理命令的意图(例如,使用nlu引擎114c确定)、用于与助理命令的意图相关联的参数的槽值(例如,使用nlu引擎114c生成)和/或其它数据。继续工作示例,自动化助理120可以使得履行数据160a被传送到天气服务引擎(例如,在一个或多个软件应用110b、第一方服务器191和/或一个或多个第三方服务器192处执行)以获得响应于口头话语而呈现给用户的内容160b。内容160b可以对应于包括在工作示例的所选择的预先缓存内容140a中的[履行信息]。在各种实施方式中,可以将履行数据160a与以下指示一起被传送:填充的预先缓存内容150a当前正被可听地和/或可视地渲染以供呈现给客户端设备110的用户,并且内容160b可以更简洁(例如,仅传送回温度和其他天气信息,而不包括任何[地点]或[时间]信息)。
[0061]
在一些实施方式中,语音捕获/asr/nlu/tss模块114的tts引擎114d可以使用存储在ml模型数据库110a中的tts模型来处理内容160a,以生成另外合成语音音频数据,该另外合成语音音频数据将内容160b添加到当前正被渲染以用于经由客户端设备110的一个或多个扬声器呈现给客户端设备110的用户的合成语音114d1。因此,到合成语音114d1的包括填
充的预先缓存内容150a(例如,“okay,the radar shows that the weather in louisville right now is

(好的,雷达显示路易斯维尔的天气现在正好是......)”)的初始部分被可听地渲染给用户的时候,合成语音114d1的包括内容160b(例如,
“…
55degrees and sunny(......55度且晴朗)”)的后续部分应该紧接在初始部分之后可听地渲染,使得从用户的角度来看,合成语音114d1的初始部分和合成语音114d1的后续部分好像是来自自动化助理120的合成语音的单个实例。在另外的或替代的实施方式中,转录引擎(未描绘)可以使得对应于内容160b的转录紧接在填充的预先缓存内容150a的转录之后经由客户端设备110的显示器被可视地渲染。
[0062]
在一些实施方式中,履行引擎160可以确定与履行包括在口头话语中的助理命令相关联的实际时延160b。更新引擎170可以将预测时延160a与实际时延160b进行比较,以确定用于时延预测模型的更新170a。更新170a可以是例如用于时延预测模型的一个或多个损失,该一个或多个损失以与上述关于生成用于训练时延预测模型的一个或多个损失相同或相似的方式被生成。更新引擎170可以随后使得时延预测模型基于更新170a(例如,通过在时延预测模型上反向传播一个或多个损失)来更新。
[0063]
尽管本文关于处理天气命令来描述图2,但是应当理解,这是出于示例的目的,并不意味着是限制性的。例如,本文描述的技术可以用于在履行任何助理命令之前基于履行给定助理命令的预测时延可听地和/或可视地渲染预先缓存内容,并且包括但不限于针对公共和/或私有信息的搜索查询命令、iot设备控制命令、助理例程命令、导航命令、媒体命令、软件应用控制命令和/或针对自动化助理的任何其它助理命令。
[0064]
通过使用本文描述的技术,可以实现一个或多个技术优点。作为一个非限制性示例,本文描述的技术使得自动化助理能够在获得内容的同时渲染针对助理命令定制的预先缓存内容,从而以更快和更有效的方式结束自动化助理和用户之间的人机对话。例如,自动化助理可以在等待响应于要在客户端设备处获得的口头话语的某些内容之前开始响应包括在具有预先缓存内容的口头话语中的助理命令,其中该具预先缓存内容针对该助理命令而定制。作为另一个非限制性示例,本文描述的技术使得自动化助理能够向用户提供自动化助理以快速和有效的方式接收到助理命令的指示,从而减少用户将重复包括助理命令的口头话语的发生量。作为另一个非限制性示例,对响应于助理命令的内容的请求可以请求较少的信息,从而减小了在一个或多个网络上传送的信息的大小并且消耗较少的网络资源。
[0065]
现在转到图3,描绘了图示基于自动化助理履行助理命令的预测时延来确定是否可听地渲染预先缓存内容以用于呈现给用户的示例方法300的流程图。为方便起见,关于执行操作的系统来描述方法300的操作。方法300的该系统包括计算设备(例如,图1的客户端设备110、图5a、5b和5c的客户端设备510、和/或图6的计算设备610、一个或多个服务器、和/或其它计算设备)的一个或多个处理器、存储器和/或其它组件。此外,虽然以特定顺序示出了方法300的操作,但这并不意味着是限制性的。可以重新排序,省略和/或添加一个或多个操作。
[0066]
在框352,系统接收捕获用户的口头话语的音频数据,该音频数据由用户的客户端设备的一个或多个麦克风生成。在框354,系统基于处理音频数据来确定要由自动化助理执行的助理命令。例如,系统可以使用asr模型来处理捕获口头话语的音频数据以生成asr输
出,并且系统可以使用nlu模型来处理asr输出以生成nlu输出。系统可以基于asr输出和/或nlu输出来确定助理命令。在一些实施方式中,系统可以仅响应于确定在自动化助理被调用之后接收到音频数据来处理音频数据。
[0067]
在框356,系统使用时延预测模型来处理要由自动化助理执行的助理命令,以生成自动化助理履行助理命令的预测时延。自动化助理可以通过以下来履行助理命令:通过可听地和/或可视地渲染内容以呈现给客户端设备的用户,通过使得客户端设备被控制,通过使得用户的另一个客户端设备被控制,和/或通过执行其它履行。预测时延可以例如是用于自动化助理生成履行请求,将履行请求传送到适当方(例如,由客户端设备可访问的一个或多个软件应用、一个或多个远程系统等)并且使得执行履行的预测持续时间。例如,系统可以使用时延预测模型来处理asr输出、nlu输出和/或当接收到口头话语时与客户端设备相关联的一个或多个设备信号以生成预测时延。
[0068]
在框358,系统确定是否在可听地渲染响应于口头话语的内容之前可听地渲染预先缓存内容以用于呈现给用户。预先缓存内容可以本地存储在用户的客户端设备处。响应于口头话语的内容可以从客户端设备和/或一个或多个远程系统(例如,图1的第一方服务器191或第三方服务器192中的一个或多个)可访问的一个或多个软件应用获得。在一些实施方式中,系统可以基于在框356生成的预测时延来确定是否在可听地渲染响应于口头话语的内容之前可听地渲染预先缓存内容以用于呈现给用户。例如,系统可以基于在框356生成的预测时延未能满足一个或多个时延阈值和/或基于在框356生成的预测时延满足一个或多个时延阈值,来确定可听地渲染预先缓存内容以用于呈现给用户。如果在框358的迭代处,系统确定在可听地渲染响应于口头话语的内容之前可听地渲染预先缓存内容以用于呈现给用户,则系统可以前进到框360。
[0069]
在框360,系统基于自动化助理履行助理命令的预测时延从多个不同预先缓存内容段中选择一段预先缓存内容。值得注意的是,从中选择该段预先缓存内容的多个不同预先缓存内容段可以专用于助理命令。换句话说,每种类型的助理命令可以与多个对应不同预先缓存内容段相关联。例如,天气命令可以与第一多个不同预先缓存内容段相关联,iot设备控制命令可以与第二多个不同预先缓存内容段相关联,搜索查询命令可以与第三多个不同预先缓存内容段相关联,依此类推。
[0070]
作为框360的操作的一个非限制性示例,并且简要地转到图4,描绘了基于自动化助理履行助理命令的预测时延来选择要呈现给用户的预先缓存内容的示例方法360a。在框452,系统确定预测时延是否满足第一时延阈值。如果在框452的迭代处系统确定预测时延不满足第一时延阈值,则系统进行到框454。在框454,系统从多个预先缓存内容段中选择第一预先缓存内容段,以被定制到助理命令。第一预先缓存内容段可以具有第一长度,使得第一预先缓存内容段花费第一持续时间可听地和/或可视地渲染以呈现给用户。在一些实施方式中,第一预先缓存内容段可以是默认预先缓存内容段,诸如“好的,[履行信息]”。如果在框452的迭代处系统确定预测时延满足第一时延阈值,则系统进行到框456。
[0071]
在框456,系统确定预测时延是否满足第二时延阈值。如果在框456的迭代处系统确定预测时延不满足第二时延阈值,则系统进行到框458。在框458,系统从多个预先缓存内容段中选择第二预先缓存内容段,以被定制到助理命令。第二预先缓存内容段可以具有第二长度,使得第二预先缓存内容段花费第二持续时间来可听地和/或可视地渲染以呈现给
用户。与第二预先缓存内容段相关联的第二长度可以比与第一预先缓存内容段相关联的第一长度长。结果,可听地和/或可视地渲染第二预先缓存内容段以用于呈现给用户的第二持续时间可以比与第一预先缓存内容段相关联的第一持续时间长。如果在框456的迭代处系统确定预测时延满足第二时延阈值,则系统进行到框460。
[0072]
在框460,系统从多个预先缓存内容段中选择第三预先缓存内容段,以被定制到助理命令。第三预先缓存内容段可以具有第三长度,使得第三预先缓存内容段花费第三持续时间来可听地和/或可视地渲染给呈现用户。与第三预先缓存内容段相关联的第三长度可以比与第一预先缓存内容段相关联的第一长度和与第二预先缓存内容段相关联的第二长度长。结果,可听地和/或可视地渲染第三预先缓存内容段以用于呈现给用户的第三持续时间可以比与第一预先缓存内容段相关联的第一持续时间和与第二预先缓存内容段相关联的第二持续时间长。
[0073]
尽管关于特定时延阈值(例如,第一时延阈值和第二时延阈值)来描述图4的方法360a,但是应该理解,其出于示例的目的而不意味着限制。例如,可以在选择一预先缓存内容段时利用任何量的时延阈值。此外,针对不同的助理命令,这些时延阈值可以相同或不同。例如,用于天气命令的第一时延阈值可以是500毫秒,而用于iot设备控制命令的第一时延阈值可以是750毫秒。作为另一示例,用于天气命令和iot设备控制命令二者的第一时延阈值都可以是500毫秒。因此,系统可以基于自动化助理履行助理命令的预测时延从多个不同预先缓存内容段中动态地选择以被定制到助理命令。
[0074]
返回参考图3,在框362,系统使得所选择的预先缓存内容段被定制到助理命令。所选择的预先缓存内容段可以包括可以填充有基于助理命令所确定的和/或基于助理命令所推断的槽值的一个或多个参数(例如,关于图2所描述的工作示例的参数[地点]和[时间])。系统可以将这些槽值注入到参数中,从而产生定制(或填充)的所选择的预先缓存内容段。
[0075]
在框364,系统使得定制的所选择的预先缓存内容段被渲染以用于呈现给用户。在一些实施方式中,可以可听地渲染定制的所选择的预先缓存内容段,以用于经由客户端设备或另外客户端设备的一个或多个扬声器呈现给用户。在这些实施方式中,可以使用tts模型来处理定制的所选择的预先缓存内容段,以生成合成语音音频数据,该合成语音音频数据包括对应于定制的所选择的预先缓存内容段的合成语音。在另外的或替代的实施方式中,可以可视地渲染定制的所选择的预先缓存内容段,以用于经由客户端设备或另外客户端设备的显示器呈现给用户。在这些实施方式中,可以提供对应于定制的所选择的预先缓存内容段的转录,以用于在客户端设备处显示(并且可选地以流传输方式以与也对应于定制的所选择的预先缓存内容段的任何合成语音正在被可听地渲染的同时被渲染)。
[0076]
如果在框358的迭代系统确定在可听地渲染响应于口头话语的内容之前不可听地渲染预先缓存内容用于呈现给用户,则系统可以进行到框366。在框366,系统从客户端设备和/或远程系统获得响应于口头话语的内容。系统可以生成获得内容的请求,并且基于助理命令(例如,在客户端设备、一个或多个第一方服务器、一个或多个第三方服务器等处可访问的一个或多个软件应用)将该请求传送到适当通道,并且从适当通道接收内容。值得注意的是,即使当系统确定在可听地渲染响应于口头话语的内容之前可听地渲染预先缓存内容以用于呈现给用户时,系统也可以从框360进行到框366。因此,当系统获得响应于口头话语的内容时,系统可以选择和渲染定制的所选择的预先缓存内容段以用于呈现给用户。
[0077]
在框368,系统使得内容被渲染以用于呈现给用户。在一些实施方式中,可以可听地渲染内容,以用于经由客户端设备或另外客户端设备的一个或多个扬声器呈现给用户。在这些实施方式中,可以使用tts模型来处理内容,以生成包括对应于该内容的合成语音的附加的合成语音音频数据。在另外的或替代的实施方式中,可以经由客户端设备或另外客户端设备的显示器可视地渲染内容以用于呈现给用户。在这些实施方式中,可以提供对应于定制的所选择的预先缓存内容段的转录,以用于在客户端设备处显示(并且可选地,以流传输方式以与也对应于定制的所选择的预先缓存内容段的任何合成语音正在被可听地渲染的同时被渲染)。
[0078]
值得注意的是,在框364被渲染以用于呈现给用户的定制的所选择的预先缓存内容段以及在框368被渲染以用于呈现给用户的呈现的内容可以被渲染,使得从用户的角度来看好像作为内容的单个实例(例如,如虚线框所示)。例如,通过基于预测时延来选择要被定制到助理命令的该预先缓存内容段,系统应当到定制预先缓存内容段已经完成被渲染以用于呈现给用户的时候从适当通道获得内容,使得可以以它好像是预先缓存的定制预先缓存内容段的方式将该内容添加到合成语音和/或转录,并且该内容实际上是单段的内容。
[0079]
在一些实施方式中,系统可以响应于确定用户已经完成了口头话语,使得定制的所选择的预先缓存内容段被渲染以用于呈现给用户。系统可以使用例如终点模型来确定用户已经完成了口头话语,该终点模型被训练以确定用户何时已经完成了提供口头话语。在这些实施方式的一些版本中,如果在启动渲染定制的所选择的预先缓存内容段之前在框366处获得内容,则可以丢弃定制的所选择的预先缓存内容段,并且可以渲染该内容以减小人机对话的长度。
[0080]
在框370,系统使得基于自动化助理履行助理命令的实际时延来更新时延预测模型。例如,假设自动化助理履行助理命令的预测时延是900毫秒,但是自动化助理履行助理命令的实际时延仅是500毫秒。在该示例中,可以将预测时延与实际时延进行比较以生成一个或多个损失,并且可以基于该一个或多个损失来更新时延预测模型。值得注意的是,在该示例中,可以在定制的所选择的预先缓存内容段被完全渲染以用于呈现给用户之前获得内容。在一些实施方式中,可以中断渲染定制的所选择的预先缓存内容段以呈现内容,而在其它实施方式中,可以不中断渲染定制的所选择的预先缓存内容段以渲染内容。作为另一示例,假设自动化助理履行助理命令的预测时延仅为500毫秒,但是自动化助理履行助理命令的实际时延为900毫秒。在该示例中,可以将预测时延与实际时延进行比较以生成一个或多个损失,并且可以基于该一个或多个损失来更新时延预测模型。值得注意的是,在该示例中,可以在定制的所选择的预先缓存内容段已经被完全渲染以用于呈现给用户之后获得内容。在一些实施方式中,可以以与本文描述的相同或类似的方式生成另外定制的所选择的预先缓存内容段,以填充在渲染内容时的任何不希望的间隙,而在其它实施方式中,可以在接收到内容时呈现内容的渲染,而不生成另外定制的所选择的预先缓存内容段。系统可以返回到框352,以便在接收到捕获用户的另外口头话语的另外音频数据时执行方法300的后续迭代。
[0081]
尽管图3的方法300关于渲染响应于口头话语的内容来描述,但是应当理解,这出于示例的目的,并不意味着是限制性的。例如,假设用户提供口头话语来启动到特定状态的餐厅预订应用,例如用于虚拟餐馆的称为假想咖啡馆的餐厅预订页面。在该示例中,定制的
所选择的段可以是例如“okay,launching the restaurant reservation application to hypothetical caf
é
(好的,启动到假想咖啡馆的餐厅预定应用)”,并且被渲染以用于呈现给用户的内容可以是所加载的餐厅预定页面。作为另一示例,假设用户提供口头话语以将智能烤箱预热到特定温度,例如375华氏度。在该示例中,定制的所选择的段可以是,例如,“preheating the oven to 375degrees fahrenheit for you(将烤箱预热到375华氏度以供您使用)”,并且被渲染以用于呈现给用户的内容可以是智能烤箱处的听觉指示,即该烤箱已经开始预热到期望温度。
[0082]
现在转到图5a、5b和5c,描绘了客户端设备510基于自动化助理旅行各种助理命令的预测时延而可听地渲染预先缓存内容以用于呈现给用户501的各种非限制性示例。客户端设备510可以包括:用于基于口头话语和/或其它可听输入来生成音频数据的麦克风;用于可听地渲染合成语音和/或其它可听输出的扬声器;和/或用于可视地渲染转录和/或其他可视输出的显示器580。尽管图5a、5b和5c中所描绘的客户端设备510是具有显示器的独立客户端设备,但是应当理解,这出于示例的目的而不是限制性的。例如,客户端设备510可以是移动设备、没有显示器的独立扬声器、家庭自动化设备、车载系统、膝上型计算机、台式计算机和/或能够执行自动化助理以从事与用户501的人机对话会话的任何其它设备。
[0083]
具体参考图5a,假设用户501提供口头话语552a1“assistant,how’s the weather looking for my trip to estes park in three weeks(助理,我三周后要到埃斯蒂斯公园旅行,天气怎么样)?”。在该示例中,自动化助理可以使得使用asr模型处理捕获口头话语552a1的音频数据,以生成asr输出。此外,自动化助理可以使得使用nlu模型处理asr输出,以生成nlu输出。而且,自动化助理可以使得nlu输出被处理以生成履行数据。自动化助理可以基于履行数据来生成对响应于口头话语的内容的请求。在该示例中,请求可以是与具有estes park,co(埃斯蒂斯公园co)的值的[地点]参数和具有three weeks(3周)的值的[时间]参数相关联的天气请求。如由552a2所指示,该请求可以被传送到适当通道。在图5a的示例中,适当通道可能是由远程系统(例如,图1的一个或多个第三方服务器192)托管的天气服务。
[0084]
在等待响应于请求在客户端设备510处接收到的内容的同时,自动化助理可以并行地确定与自动化助理履行天气命令的预测持续时间相关联的预测时延,并且可以基于预测时延来确定是否使得预先缓存内容被渲染以用于呈现给用户501。例如,自动化助理可以使得使用时延预测模型处理基于口头话语552a1所生成的asr输出、基于口头话语552a1所生成的nlu输出和/或与客户端设备510相关联的设备信号,以确定预测时延。自动化助理可以基于预测时延从与天气命令相关联的多个不同预先缓存内容段中选择给定预先缓存内容段。此外,自动化助理可以使得所选择的给定预先缓存内容段被定制到口头话语552a1。
[0085]
在图5a的示例中,假设自动化助理基于预测时延来确定使得预先缓存内容被渲染以用于呈现给用户501。进一步假设自动化助理基于将预测时延与一个或多个时延阈值进行比较来选择一段预先缓存内容“雷达显示[地点][时间]的天气是[履行信息]”。进一步假设自动化助理利用基于口头话语552a1所确定的信息来填充所选择的预先缓存内容段的参数(例如,[地点]和[时间]),从而得到定制预先缓存内容段“the radar shows that the weather in estes park when you arrive in three weeks is

(雷达显示当你在三周内到达埃斯蒂斯公园时的天气是......)”。自动化助理可以使得使用tts模型来处理定制
预先缓存内容段,以生成包括与定制预先缓存内容段相对应的合成语音554a1的合成语音音频数据,并且使得合成语音554a1被渲染以便经由客户端设备510的扬声器可听地呈现给用户501。另外地或替代地,自动化助理可以在客户端设备510的显示器580上流式传输对应于定制预先缓存内容段的转录。
[0086]
而且,假设在渲染合成语音554a1以用于呈现给用户501的同时接收响应于口头话语552a1的内容,如由554a2所指示。尽管响应于口头话语552a1的内容的指示554a2被描绘为在渲染合成语音554a1之后被接收,但是应当理解,这为了清楚起见。当在客户端设备510处接收到响应于口头话语552a1的内容时,自动化助理可以使得使用tts模型来处理内容,以生成包括对应于内容的合成语音554a3“55degrees and sunny(55度且晴朗)”的另外合成语音音频数据,并且使得合成语音554a3被渲染以用于经由客户端设备510的扬声器可听地呈现给用户501。另外地或替代地,自动化助理可以在客户端设备510的显示器580上流式传输对应于内容的转录。
[0087]
值得注意的是,渲染合成语音554a1和渲染语音552a3可以被同步,使得从用户501的角度来看,合成语音554a1和合成语音552a3好像是来自自动化助理的单个连续流(例如,“the radar shows that the weather in estes park when you arrive in three weeks is 55degrees and sunny(雷达显示当你在三周内到达埃斯蒂斯公园时的天气是55度且晴朗)”),即使直至已经渲染了合成语音554a1自动化助理可能没有接收到内容(例如,“55degrees and sunny(55度且晴朗)”)。因此,当合成语音554a1可听地渲染以用于呈现给用户时,自动化助理不需要已经获得内容。结果,用户501和自动化助理之间的人机对话会话可以以更快和更有效的方式结束。
[0088]
尽管关于从适当通道获得内容并且使得内容被渲染以用于呈现给用户501来描述图5a的示例,但是应当理解,这出于示例的目的而不是限制性的。具体参考图5b,本文描述的技术可以用于控制软件应用和/或其它设备。例如,假设用户501提供口头话语552b1“assistant,play example song(助理,播放示例歌曲)”,其中“example song(示例歌曲)”是虚拟艺术家约翰多伊的虚拟歌曲。在该示例中,自动化助理可以使得使用asr模型来处理捕获口头话语552b1的音频数据,以生成asr输出。此外,自动化助理可以使得使用nlu模型处理asr输出,以生成nlu输出。而且,自动化助理可以使得nlu输出被处理以生成履行数据。自动化助理可以基于履行数据来生成对响应于口头话语的内容的请求。在该示例中,请求可以是与具有示例歌曲的值的[歌曲]参数和具有约翰多伊的值的[艺术家]参数相关联的音乐请求。该请求可以被传送到适当通道,如由552b2所指示。在图5b的示例中,适当通道可以是客户端设备510可访问的音乐应用或者由远程系统(例如,图1的第一方服务器191和/或第三方服务器192中的一个或多个)托管的音乐流式传输服务。
[0089]
在等待歌曲响应于请求开始播放的同时,自动化助理可以并行地确定与自动化助理履行音乐命令的预测持续时间相关联的预测时延,并且可以基于预测时延来确定是否使得预先缓存内容被渲染以用于呈现给用户501。例如,自动化助理可以使得使用时延预测模型处理基于口头话语552b1所生成的asr输出、基于口头话语552b1所生成的nlu输出和/或与客户端设备510相关联的设备信号,以确定预测时延。自动化助理可以基于预测时延从与音乐命令相关联的多个不同预先缓存内容段中选择给定预先缓存内容段。此外,自动化助理可以使得所选择的给定预先缓存内容段被定制到口头话语552b1。
[0090]
在图5b的示例中,假设自动化助理基于预测时延来确定使得预先缓存内容被渲染以用于呈现给用户501。进一步假设自动化助理基于将预测时延与一个或多个时延阈值进行比较来选择一段预先缓存内容“alright,streaming[song]by[artist]to[device](好的,流式传输[艺术家]的[歌曲]到[设备])”。进一步假设自动化助理利用基于口头话语552a1所确定的信息来填充所选择的预先缓存内容段的参数(例如,[song(歌曲)]、[artist(艺术家)]和[device(设备)]),从而产生定制预先缓存内容段“alright,streaming example song by john doe to your living room device(好的,流式传输约翰多伊的示例歌曲到您起居室设备)”。在该示例中,自动化助理可以基于一个或多个标准来确定在起居室设备处播放歌曲,该一个或多个标准诸如是起居室设备的能力(例如,起居室设备的一种类型的扬声器),用户501在起居室中的存在,和/或其他标准(例如,关于图1的存在传感器111所述)。自动化助理可以使得使用tts模型来处理定制预先缓存内容段,以生成包括与定制预先缓存内容段相对应的合成语音554b1的合成语音音频数据,并且使得合成语音554b1被渲染以用于经由客户端设备510的扬声器可听地呈现给用户501。另外地或替代地,自动化助理可以在客户端设备510的显示器580上流式传输对应于定制预先缓存内容段的转录。
[0091]
而且,假设客户端设备510接收音乐准备好在起居室设备播放的指示,同时正在渲染合成语音554b1以用于呈现给用户501,如由554b2所指示,并且歌曲开始流式传输,如由554b3所指示(其中指示554b2和554b3可以作为到客户端设备510的单个传输或单独传输的一部分被接收)。尽管指示554b2和554b3被描绘为在渲染合成语音554b1之后被接收,但是应当理解,这为了清楚起见。在一些实施方式中,当在客户端设备510处接收到这些指示554b2和554b3时,自动化助理可以使得使用tts模型来处理另外内容,以生成包括与另外内容“现在”相对应的合成语音554a4的另外合成语音音频数据,并且使得合成语音554a4被渲染以用于经由客户端设备510的扬声器可听地呈现给用户501。另外地或替代地,自动化助理可以在客户端设备510的显示器580上流式传输对应于另外内容的转录。在另外的或替代的实施方式中,自动化助理可以不使得任何另外内容被渲染以用于呈现给用户501。
[0092]
值得注意的是,即使自动化助理可能没有接收到将流式传输示例歌曲的任何指示,也可以提供合成语音554b1的渲染。尽管如此,自动化助理仍然可以使得合成语音554b1被渲染以用于呈现给用户501,预期到歌曲将在与用户501相关联的一个或多个设备处被流式传输。结果,减少当自动化助理在用户501和自动化助理之间的人机对话会话期间履行助理命令(例如,图5b的示例中的音乐命令)的同时用户501将重复口头话语552b1的出现量,从而节省在客户端设备510处的计算资源。
[0093]
尽管图5a和图5b的示例关于自动化助理执行单个动作(例如,在图5a获得天气内容,以及在图5b中播放歌曲)来描述,但是应当理解,这为了示例的目的而不是限制性的。具体参考图5c,本文描述的技术可以用于执行包括多个助理命令的助理例程。例如,假设用户501提供口头话语552c1“assistant,good morning(助理,早上好)”,其中“good morning(早上好)”调用包括时间命令、交通命令、天气命令、新闻命令和/或其它助理命令的助理例程。在该示例中,自动化助理可以使得使用asr模型来处理捕获口头话语552c1的音频数据,以生成asr输出。此外,自动化助理可以使得使用nlu模型处理asr输出,以生成nlu输出。而且,自动化助理可以使得nlu输出被处理以生成履行数据。自动化助理可以基于履行数据来
生成对响应于口头话语的内容的多个请求。在该示例中,请求可以是与具有当前时间的值的[时间]参数相关联的时间请求、与具有工作路线的值的[路线]参数相关联的交通请求、与具有路易斯维尔ky的值的[地点]参数(假设用户501位于路易斯维尔ky)和具有当前时间的值的[时间]参数相关联的天气命令和/或其它请求。多个请求可以被传送到对应适当通道,如由552c2所指示。在图5c的示例中,用于时间请求的对应适当通道可以是客户端设备510的时钟应用,用于交通请求的对应适当通道可以是客户端设备510的导航应用,用于天气请求的对应适当通道可能是由远程系统(例如,图1的一个或多个第三方服务器)托管的天气服务和/或基于用于早上好例程的助理命令的其它对应适当通道。
[0094]
在等待响应于多个请求中的一个或多个而在客户端设备510处接收内容的同时,自动化助理可以并行地确定与自动化助理履行早上好例程(routing)的一个或多个助理命令的预测持续时间相关联的预测时延,并且可以基于预测时延来确定是否使得预先缓存内容被渲染以用于呈现给用户501。例如,自动化助理可以使得使用时延预测模型来处理基于口头话语552c1所生成的asr输出、基于口头话语552c1所生成的nlu输出和/或与客户端设备510相关联的设备信号,以确定预测时延。自动化助理可以基于预测时延从与天气命令相关联的多个不同预先缓存内容段中选择给定预先缓存内容段。此外,自动化助理可以使得所选择的给定预先缓存内容段被定制到口头话语552c1。在存在多个请求(例如,助理例程)的实施方式中,自动化助理可以为包括在例程中的每个助理命令和/或包括在例程中的助理命令的子集确定预测时延。例如,自动化助理可以只考虑与时间命令相关联的预测时延,因为响应于时间命令的内容首先被渲染,并且自动化助理可以在渲染与时间请求相关联的内容的同时响应于包括在例程中的其他助理命令来获得另外内容。作为另一示例,自动化助理可以只考虑与包括在例程中的一个或多个助理命令相关联的最长预测时延。
[0095]
在图5c的示例中,假设自动化助理基于预测时延来确定使得预先缓存内容被渲染以用于呈现给用户501。进一步假设自动化助理基于将预测时延与一个或多个时延阈值进行比较来选择一段预先缓存内容“hi[name],good morning to you as well

(嗨[姓名],你也早上好)”。进一步假设自动化助理利用信息填充所选择的预先缓存内容段的参数(例如[姓名]),从而产生定制预先缓存内容段“hi john,good morning to you as well

(嗨,约翰,你也早上好)”。自动化助理可以使得使用tts模型来处理定制预先缓存内容段,以生成包括与定制预先缓存内容段相对应的合成语音554c1的合成语音音频数据,并且使得合成语音554c1被渲染以用于经由客户端设备510的扬声器可听地呈现给用户501。另外地或替代地,自动化助理可以在客户端设备510的显示器580上流式传输对应于定制预先缓存内容段的转录。
[0096]
而且,假设在渲染合成语音554x1以呈现给用户501的同时,接收到响应于口头话语552c1的内容,如由554c2所指示。尽管响应于口头话语552c1的内容的指示554c2被描述为在渲染合成语音554c1之后被接收,但是应当理解,这为了清楚起见。当在客户端设备510处接收到响应于口头话语552c1的内容时,自动化助理可以使得使用tts模型处理内容,以生成包括对应于内容的合成语音554c3“the time is 7:00am,traffic along your commute to work is light

(时间是上午7点,上班路上的交通很轻松
……
)”的另外合成语音音频数据,并且使得合成语音554c3被渲染,以用于经由客户端设备510的扬声器可听地呈现给用户501。另外地或替代地,自动化助理可以在客户端设备510的显示器580上流式
传输对应于内容的转录。
[0097]
值得注意的是,渲染合成语音554c1和渲染合成语音552c3可以被同步,使得从用户501的角度来看,合成语音554c1和合成语音552c3好像也是来自自动化助理的单个连续流(例如,“hi john,good morning to you as well.the time is 7:00am,traffic along your commute to work is light

(嗨,约翰,你也早上好。时间是上午7点,上班路上的交通很轻松
……
)”),即使自动化助理可能没有接收到该内容(例如,“the time is 7:00am,traffic along your commute to work is light

(时间是上午7点,上班路上的交通很轻松
……
)”),直到已经渲染合成语音554c1为止。因此,当合成语音554c1可听地渲染以用于呈现给用户时,自动化助理不需要已经获得内容。结果,即使当自动化助理执行多个助理命令时,用户501和自动化助理之间的人机对话会话也可以以更快和更有效的方式结束。
[0098]
现在转向图6,描绘了可以可选地被利用来执行本文中描述的技术的一个或多个方面的示例计算设备610的框图。在一些实施方式中,客户端设备、基于云的自动化助理组件和/或其他组件中的一个或多个可以包括示例计算设备610的一个或多个组件。
[0099]
计算设备610通常包括至少一个处理器614,该至少一个处理器614经由总线子系统612与许多外围设备通信。这些外围设备可以包括存储子系统624,包括例如存储器子系统625和文件存储子系统626、用户接口输出设备620、用户接口输入设备622和网络接口子系统616。输入和输出设备允许用户与计算设备610交互。网络接口子系统616提供到外部网络的接口并且耦合到其他计算设备中的对应接口设备。
[0100]
用户接口输入设备622可以包括键盘、诸如鼠标、轨迹球、触摸板或图形平板的指点设备、扫描仪、并入到显示器中的触摸屏、诸如语音识别系统的音频输入设备、麦克风和/或其他类型的输入设备。一般而言,术语“输入设备”的使用旨在包括用于将信息输入到计算设备610或到通信网络上的所有可能类型的设备和方式。
[0101]
用户接口输出设备620可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示。显示子系统可以包括阴极射线管(crt)、诸如液晶显示器(lcd)的平板设备、投影设备、或用于创建可见图像的某种其他机制。显示子系统也可以例如经由音频输出设备提供非视觉显示。一般而言,术语“输出设备”的使用旨在包括用于从计算设备610向用户或者向另一机器或计算设备输出信息的所有可能类型的设备和方式。
[0102]
存储子系统624存储提供本文中描述的一些或所有模块的功能的编程和数据构造。例如,存储子系统624可以包括用于执行本文中公开的方法的所选方面以及用于实现图1中描绘的各种组件的逻辑。
[0103]
这些软件模块通常由处理器614单独或与其他处理器相结合地运行。存储子系统624中使用的存储器625能够包括许多存储器,包括用于在程序运行期间存储指令和数据的主随机存取存储器(ram)630和存储有固定指令的只读存储器(rom)632。文件存储子系统626能够为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关可移动介质、cd-rom驱动器、光驱、或可移动介质盒。实现某些实施方式的功能的模块可以由文件存储子系统626存储在存储子系统624中,或者存储在可由处理器614访问的其他机器中。
[0104]
总线子系统612提供用于让计算设备610的各种组件和子系统按预期彼此通信的机制。尽管总线子系统612被示意性地示出为单条总线,但是总线子系统612的替代的实施
方式可以使用多条总线。
[0105]
计算设备610能够具有包括以下各项的不同类型:工作站、服务器、计算集群、刀片服务器、服务器场、或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化性质,图6中描绘的计算设备610的描述仅旨在作为出于说明一些实施方式的目的的特定示例。计算设备610的许多其它配置与图6中描绘的计算设备比可能具有更多或更少的组件。
[0106]
在本文所述的系统收集或以其它方式监视关于用户的个人信息或可利用个人和/或监视的信息的情况下,可以向用户提供以下机会:控制程序或特征是否收集用户信息(例如,关于用户的社交网络、社交动作或行为、职业、用户的偏好或用户的当前地理地点的信息),或控制是否和/或如何从内容服务器接收可能与用户更相关的内容。而且,某些数据在存储或使用之前可以以一种或多种方式来处理,从而删除个人可识别信息。例如,可以对用户的身份进行处理,从而不能为用户确定个人可识别信息,或者可以在获得地理地点信息的情况下将用户的地理地点概括化(例如概括化到城市、邮政编码或州级),从而不能确定用户的特定地理地点。因此,用户可以控制如何收集有关用户的信息和/或使用。
[0107]
在一些实施方式中,提供了一种由一个或多个处理器实现的方法,并且该方法包括:接收捕获用户的口头话语的音频数据,音频数据由用户的客户端设备的一个或多个麦克风生成;基于处理捕获用户的口头话语的音频数据来确定要由自动化助理执行的助理命令;使用时延预测模型来处理要由自动化助理执行的助理命令,以生成自动化助理履行助理命令的预测时延;基于自动化助理履行助理命令的预测时延来确定是否在可听地渲染远程内容以用于呈现给用户之前可听地渲染预先缓存内容以用于呈现给用户,预先缓存内容被本地存储在客户端设备处并且远程内容由远程系统响应于口头话语而生成;以及响应于确定在可听地渲染远程内容之前可听地渲染预先缓存内容以用于呈现给用户:使得预先缓存内容被定制到助理命令;以及使得预先缓存内容可听地渲染以用于经由客户端设备的一个或多个扬声器呈现给用户。
[0108]
本文公开的技术的这些实施方式和其它实施方式可以可选地包括以下特征中的一个或多个。
[0109]
在一些实施方式中,确定要由自动化助理执行的助理命令可以包括:使用自动语音识别(asr)模型来处理捕获用户的口头话语的音频数据以生成asr输出;使用自然语言理解(nlu)模型来处理asr输出以生成nlu输出;以及基于nlu输出来确定要由自动化助理执行的助理命令。
[0110]
在那些实施方式的一些版本中,使用时延预测模型来处理助理命令以生成时延预测输出可以包括:使用时延预测模型来处理nlu输出,以生成用于自动化助理履行助理命令的预测时延。在那些实施方式的一些其它版本中,使用时延预测模型来处理助理命令以生成时延预测输出还可以包括:使用时延预测模型并且连同nlu输出一起处理一个或多个客户端设备信号以生成自动化助理履行助理命令的预测时延。一个或多个客户端设备信号可以包括以下中的一个或多个:用户的客户端设备的地点、用户的客户端设备的类型或用户的客户端设备的网络连接类型。
[0111]
在那些实施方式的一些版本中,nlu输出可以包括用户的意图。在那些实施方式的一些其它版本中,nlu输出还可以包括用于与用户的意图相关联的一个或多个对应参数的一个或多个槽值。
[0112]
在一些实施方式中,该方法还可以包括获得预先缓存内容。获得预先缓存内容可以包括基于自动化助理履行助理命令的预测时延以及基于助理命令从多个不同预先缓存内容段中选择要定制到助理命令的预先缓存内容。
[0113]
在那些实施方式的一些版本中,该方法还可以包括响应于确定自动化助理履行助理命令的预测时延未能满足第一时延阈值和第二时延阈值:从多个不同预先缓存内容段中选择第一预先缓存内容段,以被定制到助理命令。第一预先缓存内容段可以被可听地渲染以用于在第一持续时间内呈现给用户。在那些实施方式的一些其它版本中,该方法还可以包括响应于确定自动化助理履行助理命令的预测时延满足第一时延阈值但是未能满足第二时延阈值:从多个不同预先缓存内容段段中选择第二预先缓存内容段,以被定制到助理命令。第二预先缓存内容段可以被可听地渲染,以用于在第二持续时间内呈现给用户,并且第二持续时间可以不同于第一持续时间。在那些实施方式的另外的版本中,该方法还可以包括响应于确定自动化助理履行助理命令的预测时延满足第一时延阈值和第二时延阈值:从多个不同预先缓存内容段中选择第三预先缓存内容段,以被定制到助理命令。第三预先缓存内容段可以被可听地渲染,以用于在第三持续时间内呈现给用户,并且第三持续时间可以与第一持续时间和第二持续时间都不同。
[0114]
在一些实施方式中,该方法还可以包括从远程系统获得远程内容。从远程系统获得远程内容可以包括:基于助理命令来生成对远程内容的请求;从客户端设备通过一个或多个网络向远程系统传送对远程内容的请求;以及响应于传送请求在客户端设备处并且通过一个或多个网络从远程系统接收远程内容。
[0115]
在那些实施方式的一些版本中,该方法还可以包括基于从远程系统获得远程内容来确定履行助理命令的实际时延。在那些实施方式的一些其它版本中,该方法还可以包括基于将与履行助理命令的预测时延与履行助理命令的实际时延进行比较来更新时延预测模型。
[0116]
在一些实施方式中,该方法还可以包括,在使得预先缓存内容被可听地渲染以用于经由客户端设备的一个或多个扬声器呈现给用户之后:使得远程内容被可听地渲染以用于经由客户端设备的一个或多个扬声器呈现给用户。在那些实施方式的一些版本中,被定制到助理的预先缓存内容和响应于助理命令的远程内容可以被可听地渲染作为合成语音的相同实例的一部分。
[0117]
在一些实施方式中,使得预先缓存内容被定制到助理命令可以包括使得用于预先缓存内容的一个或多个槽值基于助理命令被填充。
[0118]
在一些实施方式中,该方法还可以包括,响应于确定不修改要提供的输出以用于可听地呈现给用户:基于助理命令来生成对远程内容的请求;从客户端设备并且通过一个或多个网络向远程系统传送对远程内容的请求;响应于传送请求在客户端设备处并且通过一个或多个网络从远程系统接收远程内容;以及使得远程内容被提供以用于经由客户端设备的一个或多个扬声器可听地呈现给用户。
[0119]
在一些实施方式中,提供了一种由一个或多个处理器实现的方法,并且该方法包括:接收捕获用户的口头话语的音频数据,音频数据由用户的客户端设备的一个或多个麦克风生成;基于处理捕获用户的口头话语的音频数据来确定要由自动化助理执行的助理命令;使用时延预测模型来处理要由自动化助理执行的助理命令,以生成自动化助理履行助
理命令的预测时延;从远程系统获得远程内容,以可听地渲染以用于呈现给用户来履行助理命令,远程内容由远程系统响应于口头话语而生成;基于自动化助理履行助理命令的预测时延来确定是否在可听地渲染远程内容以用于呈现给用户之前可听地渲染预先缓存内容以用于呈现给用户,预先缓存内容被本地存储在客户端设备处;以及响应于确定在可听地渲染远程内容之前可听地渲染预先缓存内容以用于呈现给用户,并且在从远程系统获得远程内容的同时:从多个不同预先缓存内容段中选择预先缓存内容,所选择的预先缓存内容被定制到助理命令;使得预先缓存内容被可听地渲染以用于经由客户端设备的一个或多个扬声器呈现给用户作为合成语音的第一部分;以及响应于从远程系统获得远程内容:使得远程内容被可听地渲染以用于经由客户端设备的一个或多个扬声器呈现给用户作为合成语音的第二部分。
[0120]
在一些实施方式中,提供了一种由一个或多个处理器实现的方法,并且该方法包括:接收捕获用户的口头话语的音频数据,音频数据由用户的客户端设备的一个或多个麦克风生成;基于处理捕获用户的口头话语的音频数据来确定要由自动化助理执行的助理命令;使用时延预测模型来处理要由自动化助理执行的助理命令,以生成自动化助理履行助理命令的预测时延;基于自动化助理履行助理命令的预测时延来确定是否在可听地渲染远程内容以用于呈现给用户之前可听地渲染预先缓存内容以用于呈现给用户,预先缓存内容被本地存储在客户端设备处并且远程内容由远程系统响应于口头话语而生成;以及响应于确定在可听地渲染远程内容之前可听地渲染预先缓存内容以用于呈现给用户:确定自动化助理履行助理命令的预测时延是否满足第一时延阈值或第二时延阈值;响应于确定自动化助理的预测时延满足第一时延阈值但是不满足第二时延阈值:从多个不同预先缓存内容段中选择第一预先缓存内容段,以被定制到助理命令。第一预先缓存内容段被可听地渲染以用于在第一持续时间内呈现给用户;以及使得第一预先缓存内容段被可听地渲染以用于经由客户端设备的一个或多个扬声器呈现给用户。该方法还包括:响应于确定自动化助理的预测时延满足第一时延阈值和第二时延阈值:从多个不同预先缓存内容段中选择第二预先缓存内容段,以被定制到助理命令。第二预先缓存内容段被可听地渲染以用于在第二持续时间呈现给用户,第二持续时间不同于第一持续时间;以及使得第二预先缓存内容段被可听地渲染以用于经由客户端设备的一个或多个扬声器呈现给用户。
[0121]
在一些实施方式中,提供了一种由一个或多个处理器实现的方法,并且该方法包括:接收捕获用户的口头话语的音频数据,音频数据由用户的客户端设备的一个或多个麦克风生成;基于处理捕获用户的口头话语的音频数据来确定要由自动化助理执行的助理命令;使用时延预测模型来处理要由自动化助理执行的助理命令,以生成自动化助理履行助理命令的预测时延;基于自动化助理履行助理命令的预测时延来确定是否在可听地渲染设备上内容以用于呈现给用户之前可听地渲染预先缓存内容以用于呈现给用户,预先缓存内容被本地存储在客户端设备处并且设备上内容响应于口头话语而在客户端设备处本地生成;以及响应于确定在可听地渲染设备上内容之前可听地渲染预先缓存内容以用于呈现给用户:使得预先缓存内容被定制到助理命令;以及使得预先缓存内容被可听地渲染以用于经由客户端设备的一个或多个扬声器呈现给用户。
[0122]
本文公开的技术的这些实施方式和其它实施方式可以可选地包括以下特征中的一个或多个。
[0123]
在一些实施方式中,在客户端设备处本地生成设备上内容可以包括基于助理命令来生成对设备上内容的请求;向在客户端设备处可访问的一个或多个软件应用传送对设备上内容的请求;以及响应于传送请求从一个或多个软件应用接收设备上内容。在那些实施方式的一些版本中,该方法还可以包括基于在客户端设备处本地生成设备上内容来确定履行助理命令的实际时延。在那些实施方式的一些其它版本中,该方法还可以包括基于将履行助理命令的预测时延与履行助理命令的实际时延进行比较来更新时延预测模型。
[0124]
此外,一些实施方式包括一个或多个计算设备的一个或多个处理器(例如、中央处理单元(cpu)、图形处理单元(gpu)和/或张量处理单元(tpu)),其中一个或多个处理器可操作以执行存储在相关存储器中的指令,并且其中指令被配置成引起前述方法中的任一种的执行。一些实施方式还包括一个或多个非暂时性计算机可读存储介质,该一个或多个非暂时性计算机可读存储介质存储可由一个或多个处理器执行来执行前述方法中的任一种的计算机指令。一些实施方式还包括计算机程序产品,该计算机程序产品包括可由一个或多个处理器执行来执行前述方法中的任一种的指令。

技术特征:
1.一种由一个或多个处理器实现的方法,所述方法包括:接收用于捕获用户的口头话语的音频数据,所述音频数据由所述用户的客户端设备的一个或多个麦克风生成;基于处理用于捕获所述用户的所述口头话语的所述音频数据,来确定要由自动化助理执行的助理命令;使用时延预测模型来处理要由所述自动化助理执行的助理命令,以生成用于所述自动化助理履行所述助理命令的预测时延;基于用于所述自动化助理履行所述助理命令的所述预测时延,来确定在可听地渲染远程内容以用于呈现给所述用户之前是否可听地渲染预先缓存内容以用于呈现给所述用户,所述预先缓存内容被本地存储在所述客户端设备处,并且所述远程内容由远程系统响应于所述口头话语而生成;以及响应于确定在可听地渲染所述远程内容之前可听地渲染所述预先缓存内容以用于呈现给所述用户:使得所述预先缓存内容被定制到所述助理命令;以及使得所述预先缓存被可听地渲染以用于经由所述客户端设备的一个或多个扬声器呈现给所述用户。2.根据权利要求1所述的方法,其中,确定要由所述自动化助理执行的所述助理命令包括:使用自动语音识别asr模型来处理用于捕获所述用户的所述口头话语的所述音频数据,以生成asr输出;使用自然语言理解nlu模型来处理所述asr输出,以生成nlu输出;以及基于所述nlu输出来确定要由所述自动化助理执行的所述助理命令。3.根据权利要求2所述的方法,其中,使用所述时延预测模型来处理所述助理命令以生成所述时延预测输出包括:使用所述时延预测模型来处理所述nlu输出,以生成用于所述自动化助理履行所述助理命令的所述预测时延。4.根据权利要求3所述的方法,其中,使用所述时延预测模型来处理所述助理命令以生成所述时延预测输出还包括:使用所述时延预测模型并且连同所述nlu输出一起处理一个或多个客户端设备信号,以生成用于所述自动化助理履行所述助理命令的所述预测时延,其中所述一个或多个客户端设备信号包括以下中的一个或多个:所述用户的所述客户端设备的地点、所述用户的所述客户端设备的类型,或所述用户的所述客户端设备的网络连接类型。5.根据权利要求2所述的方法,其中,所述nlu输出包括所述用户的意图。6.根据权利要求5所述的方法,其中,所述nlu输出还包括用于与所述用户的所述意图相关联的一个或多个对应参数的一个或多个槽值。7.根据任一项前述权利要求所述的方法,还包括:获得所述预先缓存内容,其中,获得所述预先缓存内容包括:基于用于所述自动化助理履行所述助理命令的所述预测时延,以及基于所述助理命令,从多个不同预先缓存内容段当中选择要被定制到所述助理命令的所述预先缓存内容。
8.根据权利要求7所述的方法,还包括:响应于确定用于所述自动化助理履行所述助理命令的所述预测时延未能满足第一时延阈值和第二时延阈值:从所述多个不同预先缓存内容段当中选择第一预先缓存内容段,以被定制到所述助理命令,其中所述第一预先缓存内容段被可听地渲染以用于在第一持续时间内呈现给所述用户。9.根据权利要求8所述的方法,还包括:响应于确定用于所述自动化助理履行所述助理命令的所述预测时延满足所述第一时延阈值但是未能满足所述第二时延阈值:从所述多个不同预先缓存内容段段当中选择第二预先缓存内容段,以被定制到所述助理命令,其中所述第二预先缓存内容段被可听地渲染以用于在第二持续时间内呈现给所述用户,并且其中所述第二持续时间不同于所述第一持续时间。10.根据权利要求9所述的方法,还包括:响应于确定用于所述自动化助理履行所述助理命令的所述预测时延满足所述第一时延阈值和所述第二时延阈值:从所述多个不同预先缓存内容段当中选择第三预先缓存内容段,以被定制到所述助理命令,其中所述第三预先缓存内容段被可听地渲染以用于在第三持续时间内呈现给所述用户,并且其中所述第三持续时间与所述第一持续时间和所述第二持续时间都不同。11.根据任一项前述权利要求所述的方法,还包括:从所述远程系统获得所述远程内容,其中,从所述远程系统获得所述远程内容包括:基于所述助理命令来生成对所述远程内容的请求;从所述客户端设备通过一个或多个网络向所述远程系统传送对所述远程内容的所述请求;以及响应于传送所述请求,在所述客户端设备处并通过所述一个或多个网络从所述远程系统接收所述远程内容。12.根据权利要求11所述的方法,还包括:基于从所述远程系统获得所述远程内容来确定用于履行所述助理命令的实际时延。13.根据权利要求12所述的方法,还包括:基于将用于履行所述助理命令的所述预测时延与用于履行所述助理命令的所述实际时延进行比较,来更新所述时延预测模型。14.根据任一项前述权利要求所述的方法,还包括:在使得所述预先缓存内容被可听地渲染以用于经由所述客户端设备的一个或多个所述扬声器呈现给所述用户之后:使得所述远程内容被可听地渲染以用于经由所述客户端设备的一个或多个所述扬声器呈现给用户。15.根据权利要求14所述的方法,其中,被定制到所述助理的所述预先缓存内容和响应于所述助理命令的所述远程内容被可听地渲染作为合成语音的相同实例的一部分。16.根据任一项前述权利要求所述的方法,其中,使得所述预先缓存内容被定制到所述助理命令包括:
使得用于所述预先缓存内容的一个或多个槽值基于所述助理命令被填充。17.根据任一项前述权利要求所述的方法,还包括:响应于确定没有修改要被提供以用于可听地呈现给所述用户的所述的输出:基于所述助理命令来生成对所述远程内容的请求;从所述客户端设备并通过一个或多个网络向所述远程系统传送对所述远程内容的所述请求;以及响应于传送所述请求,在所述客户端设备处并通过所述一个或多个网络从所述远程系统接收所述远程内容,使得所述远程内容被提供以用于经由所述客户端设备的一个或多个所述扬声器可听地呈现给所述用户。18.一种由一个或多个处理器实现的方法,所述方法包括:接收用于捕获用户的口头话语的音频数据,所述音频数据由所述用户的客户端设备的一个或多个麦克风生成;基于处理用于捕获所述用户的所述口头话语的所述音频数据,来确定要由自动化助理执行的助理命令;使用时延预测模型来处理要由所述自动化助理执行的助理命令,以生成用于所述自动化助理履行所述助理命令的预测时延;从远程系统获得远程内容,以可听地渲染以用于呈现给所述用户来履行所述助理命令,所述远程内容由所述远程系统响应于所述口头话语而生成;基于用于所述自动化助理履行所述助理命令的所述预测时延,来确定在可听地渲染所述远程内容以用于呈现给所述用户之前是否可听地渲染预先缓存内容以用于呈现给所述用户,所述预先缓存内容被本地存储在所述客户端设备处;以及响应于确定在可听地渲染所述远程内容之前可听地渲染所述预先缓存内容以用于呈现给所述用户,并且在从所述远程系统获得所述远程内容时:从多个不同预先缓存内容段中选择所述预先缓存内容,所选择的预先缓存内容被定制到所述助理命令;使得所述预先缓存内容被可听地渲染以用于经由所述客户端设备的一个或多个扬声器呈现给所述用户作为合成语音的第一部分;以及响应于从所述远程系统获得所述远程内容:使得所述远程内容被可听地渲染以用于经由所述客户端设备的一个或多个扬声器呈现给所述用户作为所述合成语音的第二部分。19.一种由一个或多个处理器实现的方法,所述方法包括:接收用于捕获用户的口头话语的音频数据,所述音频数据由所述用户的客户端设备的一个或多个麦克风生成;基于处理用于捕获所述用户的所述口头话语的所述音频数据,来确定要由自动化助理执行的助理命令;使用时延预测模型来处理要由所述自动化助理执行的助理命令,以生成用于所述自动化助理履行所述助理命令的预测时延;基于用于所述自动化助理履行所述助理命令的所述预测时延,来确定在可听地渲染远
程内容以用于呈现给所述用户之前是否可听地渲染预先缓存内容以用于呈现给所述用户,所述预先缓存内容被本地存储在所述客户端设备处,并且所述远程内容是由远程系统响应于所述口头话语而生成;以及响应于确定在可听地渲染所述远程内容之前可听地渲染所述预先缓存内容以用于呈现给所述用户:确定用于所述自动化助理履行所述助理命令的所述预测时延是否满足第一时延阈值或第二时延阈值;响应于确定用于所述自动化助理的所述预测时延满足所述第一时延阈值但是不满足第二时延阈值:从多个不同预先缓存内容段当中选择第一预先缓存内容段以被定制到所述助理命令,其中所述第一预先缓存内容段被可听地渲染以用于在第一持续时间内呈现给所述用户;以及使得所述第一预先缓存内容段被可听地渲染以用于经由所述客户端设备的一个或多个扬声器呈现给所述用户;以及响应于确定用于所述自动化助理的所述预测时延满足所述第一时延阈值和所述第二时延阈值:从所述多个不同预先缓存内容段中选择第二预先缓存内容段以被定制到所述助理命令,其中所述第二预先缓存内容段被可听地渲染以用于在第二持续时间内呈现给所述用户,其中所述第二持续时间不同于所述第一持续时间;以及使得所述第二预先缓存内容段被可听地渲染以用于经由所述客户端设备的一个或多个所述扬声器呈现给所述用户。20.一种由一个或多个处理器实现的方法,所述方法包括:接收用于捕获用户的口头话语的音频数据,所述音频数据由所述用户的客户端设备的一个或多个麦克风生成;基于处理用于捕获所述用户的所述口头话语的所述音频数据,来确定要由自动化助理执行的助理命令;使用时延预测模型来处理要由所述自动化助理执行的助理命令,以生成用于所述自动化助理履行所述助理命令的预测时延;基于用于所述自动化助理履行所述助理命令的所述预测时延,来确定在可听地渲染设备上内容以用于呈现给所述用户之前是否可听地渲染预先缓存内容以用于呈现给所述用户,所述预先缓存内容被本地存储在所述客户端设备处,并且所述设备上内容是响应于所述口头话语而在所述客户端设备处本地生成;响应于确定在可听地渲染所述设备上内容之前可听地渲染预先缓存内容以用于呈现给所述用户:使得所述预先缓存内容被定制到所述助理命令;以及使得所述预先缓存内容被可听地渲染,以用于经由所述客户端设备的一个或多个扬声器呈现给所述用户。21.根据权利要求20所述的方法,其中,在所述客户端设备处本地生成所述设备上内容包括:
基于所述助理命令来生成对所述设备上内容的请求;向在所述客户端设备处可访问的一个或多个软件应用传送对所述设备上内容的请求;以及响应于传送所述请求,从所述一个或多个软件应用接收所述设备上内容。22.根据权利要求21所述的方法,还包括:基于在所述客户端设备处本地生成所述设备上内容,来确定用于履行所述助理命令的实际时延。23.根据权利要求22所述的方法,还包括:基于将用于履行所述助理命令的所述预测时延与用于履行所述助理命令的所述实际时延进行比较,来更新所述时延预测模型。24.一种系统,包括:至少一个处理器;以及存储指令的存储器,所述指令在被执行时使得所述至少一个处理器执行与权利要求1至23中任一项相对应的操作。25.一种存储指令的非暂时性计算机可读存储介质,所述指令在被执行时使得至少一个处理器执行与权利要求1至23中任一项相对应的操作。

技术总结
本文描述的实施方式涉及减少自动化助理交互中的时延。在一些实施方式中,客户端设备可以接收捕获用户的口头话语的音频数据。音频数据可以被处理以确定要由自动化助理执行的助理命令。可以使用时延预测模型来处理助理命令,以生成履行助理命令的预测时延。此外,客户端设备(或自动化助理)可以基于预测时延来确定是否在可听地渲染响应于口头话语的内容之前可听地渲染预先缓存内容以用于呈现给用户。预先缓存内容可以被定制到助理命令并且在获得内容的同时被可听地渲染以用于呈现给用户,并且该内容可以在预先缓存内容之后被可听地渲染以用于呈现给用户。渲染以用于呈现给用户。渲染以用于呈现给用户。


技术研发人员:莱尔
受保护的技术使用者:谷歌有限责任公司
技术研发日:2021.12.13
技术公布日:2023/9/14
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐