掌桥专利:专业的专利平台
掌桥专利
首页

智能设备的高效和低延迟自动化助理控制

文献发布时间:2023-06-19 11:42:32


智能设备的高效和低延迟自动化助理控制

背景技术

人类可以与本文被称为“自动化助理”的交互式软件应用进行人机交互。例如,人类(当与自动化助理交互时可以被称为“用户”)可以向自动化助理提供输入,使得自动化助理生成并且提供响应输出,以控制一个或多个智能设备,和/或执行一项或多项其他功能。用户提供的输入可以是例如(例如,经由触摸屏的)触摸输入、(例如,经由相机检测到的)手势和/或口头自然语言输入(即,经由麦克风检测到的话语),其在某些情况下可以被转换为文本(或其他语义表示)然后进一步被处理。

在许多情况下,自动化助理包括由助理客户端设备本地执行并且由用户直接参与的自动化助理客户端,以及利用云的更强大资源来帮助自动化助理客户端响应用户输入的云端(cloud counterpart)。例如,自动化助理客户端可以向云端提供用户的口头话语的音频录音(或其文本转换),以及可选地,提供指示用户身份的数据(例如证书)。云端可以对查询执行各种处理,以将结果返回到自动化助理客户端,然后自动化助理客户端可以向用户提供对应的输出。

许多用户可以使用多个客户端设备来使用自动化助理。例如,一些用户拥有客户端设备的协调“生态系统”,诸如智能电话、平板电脑、车辆计算系统、可穿戴计算设备、智能电视、独立助理中心交互式扬声器、具有扬声器的独立助理中心交互式显示器以及其他客户端设备。用户可以使用这些客户端设备中的任何一个加入与自动化助理的人机对话(假设已安装自动化助理客户端)。在某些情况下,这些客户端设备可能散布在用户的主要住所、次要住所、工作场所和/或其他建筑物中。例如,诸如智能电脑、平板电脑、智能手表等的移动客户端设备可能在用户的个人身上和/或用户最后放置它们的位置。诸如传统的台式计算机、智能电视和独立助理中心设备的其他客户端设备可能会更固定,但仍可能位于用户的家或工作场所中的各个位置(例如房间)。

存在使用户(例如,单个用户、家庭中的多个用户、同事、同居者等)能够利用客户端设备的协调生态系统中的任何一个的自动化助理客户端来控制与自动化助理客户端相关联的多个智能设备中的任何一个的技术。例如,用户可以向客户端设备的自动化助理客户端发出“关闭客厅灯(turn off the living room lights)”的口头命令,以使对应的智能设备(即链接到自动化助理客户端并标记为“客厅”灯的灯)关闭。

在响应于在客户端设备处接收的用户输入来控制智能设备时,许多现有技术经由互联网将对应于用户输入的数据发送到远程自动化助理服务器。远程自动化助理服务器:处理数据以基于该请求确定要控制的智能设备;基于该请求生成对智能设备的控制请求;以及经由互联网向与智能设备相关联的一方或多方(例如,智能设备的制造商)的服务器发送控制请求。在生成控制请求时,远程自动化助理服务器可以处理数据(例如,使用自然语言理解组件)以生成数据的语义表示,然后基于语义生成控制请求。各方的服务器接收控制请求,然后经由互联网将对应的控制命令发送到智能设备,无论是通过与智能设备共存的集线器(例如,在BLE、Z-Wave、ZigBee等的情况下)还是直接经由IP连接发送到智能设备(例如,在Wi-Fi和不需要集线器的其他智能设备的情况下)均可。

然而,这样的技术呈现出诸如高延迟、客户端和/或服务器资源的过度使用和/或网络资源的过度使用的缺点。例如,高延迟和/或服务器资源的过度使用可能是远程助理服务器需要处理所接收的音频数据和/或文本以生成相应话语的语义表示,然后基于所生成的语义表示生成控制请求的结果。高延迟可能附加或替代的是将请求从远程助理服务器发送到各方服务器的结果,这通常会因远程助理服务器和各方服务器地理上彼此不接近而恶化。同样,例如,网络资源的过度使用可能是将高带宽音频数据和/或文本从客户端设备发送到远程助理服务器的结果和/或将(例如向智能设备确认请求的改变的)高带宽响应文本、语音和/或图形从远程助理服务器发送到客户端设备的结果。

发明内容

最近的努力是将各种自动化助理功能的性能从云自动化助理组件转移到自动化助理客户端设备(即,提供自动化助理接口的客户端设备)。例如,最近的努力是生成可以在各种客户端设备的硬件资源(例如,存储器资源、处理器资源等)的约束内使用的语音识别模型,同时仍然获得良好的结果。同样地,已经努力在设备上转移自然语言理解(NLU)和/或履行(例如,响应于用户输入执行动作)。在设备上执行这些功能可以实现各种技术优势,诸如延迟减少(例如,由于没有客户端-服务器往返)、网络使用率减少(例如,由于没有客户端-服务器往返)和/或低连接性或无连接情况下的可操作性。

然而,对于许多请求,设备内置NLU和/或设备内置履行可能失败。作为一个非限制性示例,考虑向位于用户的客厅中的助理客户端设备提供并且包括“使这些灯更亮并且使其更暖色(make these lights a bit brighter and make them warmer)”的口头话语。生成口头话语的适当语义表示需要解析“这些灯”、“更亮”和“更暖色”的含义。助理客户端设备的有限硬件资源可能会妨碍解析含义所需的机器学习模型、规则和/或设备拓扑的本地存储和/或使用。但是,比助理客户端设备具有更强大的资源的远程助理系统能够解析这些含义。例如,远程助理系统可以利用远程存储的设备拓扑,针对在客厅客户端设备处接收(例如,在客厅客户端设备处最响亮和/或最清晰地听到)的口头话语,确定“这些灯”指的是客厅灯A、B和C。此外,远程助理系统可以利用远程机器学习模型和/或规则来确定“更亮”是指“比客厅灯A、B和C的当前亮度强度水平亮30%(或其他百分比或值)”。此外,远程助理系统可以利用远程机器学习模型和/或规则来确定“更暖色”是指“比当前色温低20%(或其他百分比或值)的色温”。

因此,由于助理客户端设备的硬件和/或其他约束,在解析诸如控制智能设备的某些请求的各种用户请求时仍需要利用远程助理系统。但是,总是将口头话语的无法解析的音频数据和/或文本提供给远程助理系统以进行全面处理可能会导致远程助理系统上资源的过度使用和/或执行相应操作(例如,控制智能设备)时的过度延迟。

技术解决方案

因此,本文描述的实施方式涉及用于控制智能设备的特定技术,这些技术具有低延迟和/或提供计算效率(客户端和/或服务器)和/或网络效率。这些实施方式涉及在控制各种智能设备(例如,智能灯、智能恒温器、智能插头、智能设备、智能路由器等)时,生成和/或利用本地存储在助理客户端设备上的高速缓存的缓存条目。每个缓存条目包括文本到一个或多个相应语义表示的映射。

缓存条目的语义表示可以是响应于将文本和/或对应的音频数据从助理客户端设备在先发送到远程助理系统,由一个或多个远程自动化助理服务器(在本文中也被称为“远程助理系统”)先前生成的语义表示。响应于由远程助理系统响应于在先发送而发送到客户端设备的缓存请求,助理客户端设备可以将缓存条目存储在高速缓存中。映射到缓存条目的语义表示的缓存条目的文本可以在缓存条目中被表示为文本本身和/或其表示,诸如其Word2Vec嵌入和/或停用字自由变体。

如本文详细所述,缓存条目的语义表示可以包括云语义表示和/或本地可解释语义表示。客户端设备可以解释本地可解释语义表示,以生成对应的控制命令,客户端设备可以通过一个或多个本地信道将这些控制命令发送到本地智能设备和/或智能设备控制器,以致动对应的本地控制智能设备。可以生成控制命令以符合用于本地智能设备和/或智能设备控制器的协议套件。另一方面,云语义表示由客户端设备发送到远程助理系统,并且可以由远程助理系统解释,以生成发送到对应的智能设备控制系统的对应的控制请求以致动对应的控制智能设备。

现在将提供生成和利用云语义表示的非限制性示例。假设在经由助理客户端设备的一个或多个麦克风检测到的音频数据中捕获了“将灯调暗一点(dim the lights atouch)”的口头话语。助理客户端设备可以使用本地语音到文本模型处理音频数据,以生成所识别的文本“将灯调暗一点”。助理客户端设备可以检查其本地高速缓存,以确定是否存在与所识别的文本匹配的任何缓存条目。助理客户端设备可以确定不存在匹配的缓存条目,这可能是这是助理客户端设备处的口头话语的初始实例的结果,或者是由于最近从高速缓存中清除了先前匹配的缓存条目(例如,由于确定设备拓扑和/或其他条件的改变)的结果。助理客户端设备可以可选地进一步确定利用设备内置NLU组件本地不可解释所识别的文本。例如,助理客户端设备可能缺少能够将“灯”解析为特定灯的鲁棒本地设备拓扑,和/或可能缺少能够将“一点”解释为特定程度的鲁棒模型和/或规则。

客户端设备可以进一步将所识别的文本和/或音频数据发送到远程助理系统。可选地,将文本和/或音频数据发送到远程助理系统是响应于确定不存在匹配的缓存条目和/或所识别的文本不可本地解释。

响应于接收到所识别的文本和/或音频数据(远程助理系统可以使用其生成所识别的文本),远程助理系统可以处理所识别的文本以生成所识别的文本的云语义表示。例如,远程助理系统可以利用随文本传输接收的账户标识符来识别用于该账户标识符的对应的远程存储的设备拓扑。基于在设备拓扑中被映射为助理客户端设备的默认灯(例如,通过用户口述的映射,或由于被分配到同一房间)的灯A和B,对应的设备拓扑可被用于将“灯”解析为灯A和B。另外,例如,远程助理系统可以利用一个或多个远程模型和/或规则来确定“调暗一点”是指“比当前亮度强度水平暗20%(或其他百分比或值)”。语义表示可以基于这些解析生成,并且可以是例如[设备=A和B;更暗,相对强度为20%],其中“A和B”是相应灯的唯一标识符,而“更暗,强度相对为20%”表示灯将被调暗到相对于其当前强度降低20%的程度。

一旦生成了云语义表示,然后,远程助理系统可以生成用于实现语义表示的控制请求。例如,远程助理系统可以基于那些灯的最新报告状态和/或通过从控制“灯A和B”的智能设备远程系统(例如,由“灯A和B”的制造商控制的智能设备远程系统)请求(和接收)那些灯的当前状态来识别“灯A和B”的“当前亮度强度水平”。此外,远程助理系统可以通过(基于确定“调暗一点”是指“比当前亮度强度水平暗20%”)将“当前亮度强度水平”乘以0.80来生成“目标亮度强度水平”。然后,可以生成识别“灯A和B”的控制请求,并且该控制请求包括将灯设定为所生成的“目标亮度强度水平”的请求。然后,可以将控制请求发送到智能设备远程系统。响应于接收到控制请求,然后,智能设备远程系统经由因特网将对应的控制命令发送到“灯A和B”,无论是通过与“灯A和B”共存的集线器(例如,在BLE、Z-Wave、ZigBee等的情况下),还是直接经由IP连接发送到智能设备(例如,在Wi-Fi和不需要集线器的其他智能设备的情况下)均可。控制命令可以与控制请求匹配,也可以与控制请求不同,但可以基于控制请求生成。可选地,远程助理系统还将要渲染的文本、音频数据和/或图形发送到客户端设备以确认对“灯A和B”状态的变更。例如,可以将文本“好,灯A和B调暗20%(OK,lights A&B dimmed20%)”发送到客户端设备,从而使客户端设备使用本地文本-语音模型来图形地渲染文本和/或渲染对应的合成语音。

此外,远程助理系统可以将包括云语义表示,以及可选地包括文本(或其表示)以及文本(或表示)与云语义表示之间的映射的缓存请求发送到客户端设备。响应于接收到缓存请求,客户端设备可以在本地高速缓存中生成缓存条目,该缓存条目定义了文本与云语义表示的映射。例如,缓存条目可以包括文本本身与云语义表示的映射,和/或文本的表示(例如,Word2Vec表示或其他表示)与云语义表示的映射。在缓存请求本身不包括文本(或其表示)的情况下,客户端设备可以基于响应于文本(或对应的音频数据)的传输而接收到的缓存请求来包括映射。在一些实施方式中,远程助理系统还可以在缓存请求中包括确认对“灯A和B”的状态的变更的文本、音频数据和/或图形。

进一步假设,在客户端设备处生成缓存条目之后,在经由助理客户端设备的一个或多个麦克风检测到的音频数据中捕获口头话语“将灯调暗一点”的另一实例。助理客户端设备可以使用本地语音到文本模型处理音频数据,以生成所识别的文本“将灯调暗一点”。助理客户端设备可以检查其本地缓存并确定所生成的缓存条目包括与所识别的文本匹配的文本(或其表示)。如本文所使用的“匹配”可以包括精确匹配和/或软匹配。例如,在软匹配的情况下,可以基于编辑距离的分析、仅停用词的存在与否和/或利用其他技术,将文本“使灯调暗一点(dim lights by a touch)”确定为匹配“将灯调暗一点(dim the lights atouch)”。响应于确定该匹配,助理客户端设备可以将映射到缓存条目中的文本的云语义表示发送到远程助理系统。可选地,助理客户端设备可以发送云语义表示而无需将音频数据和/或所识别的文本发送到远程助理系统。

响应于接收到云语义表示,然后,远程助理系统可以生成用于实现云语义表示的控制请求。应注意到,在“将灯调暗一点”的示例中,控制请求可以根据在与“将灯调暗一点”匹配的用户输入时的“灯A和B”的“当前亮度水平”而变化。例如,在控制请求为“灯A和B”指定“目标亮度水平”的情况下,那些目标亮度水平将取决于“当前亮度水平”。然后,可以将控制请求发送到智能设备远程系统以导致对“灯A和B”的相应控制。因此,通过将语义表示发送到远程助理系统,远程助理系统可以绕过处理文本以再次生成语义表示——并且代替地利用所接收的云语义表示。

以这些和其他方式,在远程助理系统处发生较少的处理,这可以导致远程助理系统处的功率、存储器和/或处理器资源的使用减少。鉴于远程助理系统每天会接收和处理大量(例如,成千上万)智能设备控制请求,这种减少尤其重要。此外,以这些和其他方式,可以更快地生成和发送控制请求,从而导致更快变更智能设备的状态。例如,绕过由文本生成语义表示的过程可以在生成控制请求时节省至少200ms、500ms、700ms或其他的持续时间,这在控制各种智能设备(例如,打开黑暗的房间里的灯)中尤其重要。

在缓存条目还包括确认对“灯A和B”的状态的变更的文本、音频数据和/或图形的实施方式中,助理客户端设备还可以响应于确定缓存条目与输入匹配来渲染这些内容。可以立即地渲染内容,或者可选地,在可以在缓存条目中可选地指定的延时(例如,基于接收输入和实现相应状态改变之间的等待时间的延时)之后渲染内容。

注意,在前述示例中,智能设备控制请求是相对于状态的状态改变请求。即,以取决于智能设备的当前状态的方式,请求改变智能设备的状态。更具体地,以相对于灯A和B的当前亮度状态的方式,请求改变灯A和B的亮度状态。在一些实施方式中,远程助理系统可以响应于确定语义表示是相对状态改变表示,确定以提供包括语义表示的缓存请求来代替控制请求。可以基于参考智能设备的当前状态的语义表示来确定这种确定。

在那些实施方式中的一些实施方式中,响应于确定语义表示不是相对状态改变表示,远程助理系统可以提供包括控制请求的缓存请求来代替语义表示。例如,假设口头话语是“将灯设定为500流明(set the lights to 500lumens”)”。在这样的示例中,可以生成标识“灯A和B”并且标识两个灯的“目标亮度强度水平”为“500流明”的云语义表示。此外,还可以生成对应的控制请求。由于云语义表示不是相对的,因此远程助理系统可以可选地发送包括控制请求的缓存请求。作为响应,客户端设备可以生成将文本“将灯设定为500流明”(或其表示)映射到控制请求的缓存条目。此后,响应于确定所接收的输入与缓存条目的文本匹配,客户端设备可以将控制请求发送到远程助理系统。然后,远程助理系统可以将控制请求发送到智能设备远程系统,从而使远程助理系统能够直接利用控制请求,由此绕过生成语义表示和生成控制请求。这同样可以积极地影响远程助理系统的资源使用和/或延迟。

还应注意到,在用户/账户的生态系统的助理客户端设备中,某些缓存条目可以包括同一文本到不同语义表示(或控制请求)的映射。例如,假定在不同的助理客户端设备上接收到“将灯调暗一点”,并且在设备拓扑中将“灯C和D”映射为用于不同助理客户端设备的优选灯。在这样的示例中,将生成标识“灯C和D”的语义表示来代替“灯A和B”。因此,可以为不同的客户端设备生成缓存条目,该缓存条目包括“将灯调暗一点”到标识“灯C和D”的语义表示的映射。

还应注意到,当在多个客户端设备处检测到口头话语时,可以利用一种或多种设备仲裁技术来确定在那些客户端设备的仅一个处接收到口头话语。在基于确定客户端设备离用户最近和/或以其他方式意图与用户交互(尽管不是最近的)来确定该客户端设备应当是接收设备中,这样的技术可以考虑各种特征。这样的特征可以包括在客户端设备处的口头音频数据的响度、在客户端设备处检测到音频数据的时间、与客户端设备的最近交互、用户与客户端设备的接近度和/或其他特征。

现在将提供生成和利用本地可解释语义表示的非限制性示例。再次假设在经由助理客户端设备的一个或多个麦克风检测到的音频数据中捕获了口头话语“将灯调暗一点”。助理客户端设备可以使用本地语音到文本模型来处理音频数据,以生成所识别的文本“将灯调暗一点”。助理客户端设备可以检查其本地缓存,以确定是否存在与所识别的文本匹配的缓存条目。助理客户端设备可以确定不存在匹配的缓存条目,这可能是这是助理客户端设备处的口头话语的初始实例的结果,或者是由于最近从高速缓存中清除了先前匹配的缓存条目。助理客户端设备可以利用设备内置NLU组件,可选地进一步确定所识别的文本不是本地可解释的。

客户端设备可以进一步将识别的文本和/或音频数据发送到远程助理系统。可选地,将文本和/或音频数据发送到远程助理系统是响应于确定不存在匹配的缓存条目和/或所识别的文本不可本地解释。

响应于接收到所识别的文本和/或音频数据(远程助理系统可以使用其生成所识别的文本),远程助理系统可以处理所识别的文本以生成所识别的文本的本地可解释语义表示。例如,远程助理系统可以利用在发送文本时接收到的账户标识符来标识该账户标识符的对应的远程存储的设备拓扑。基于在设备拓扑中被映射为用于助理客户端设备的默认灯的灯C,可以利用对应的设备拓扑来将“灯”解析为“灯C”。

此外,例如,远程助理系统可以利用一个或多个远程模型和/或规则来确定“使...暗一点”是指“比当前亮度强度水平暗20%(或其他百分比或值)”。远程助理系统可以通过包括“灯C”的标识符以及状态改变表示来生成本地可解释语义表示,该状态改变表示是指示如何本地解析“调暗一点”的目标强度水平的相对阶段改变表示。例如,“灯C”的标识符可以是“灯C”的本地地址。另外,例如,状态改变表示可以是“设定强度=(当前强度*0.8)”,表示“灯C”的强度应当被设定为通过识别“灯C”的当前强度值(例如,最近报告的强度,或本地请求和本地接收的强度值)乘以80%而确定的值。因此,在一些实施方式中,本地可解释语义表示可以比基于云端更精细地定义状态改变表示,以使得能够解析相对值,然后可以利用该相对值来生成本地控制命令(例如,利用如本文所述的本地适配器)。状态改变表示可以可选地另外包括:将在生成对应的本地控制命令时利用的适配器的指示(例如,适配器特定于智能设备的制造商);将利用来发送本地控制命令的信道的指示(例如,蓝牙或Wi-Fi);和/或将利用来基于本地可解释语义表示生成控制命令的协议套件的指示。本地可解释语义表示可以例如是[设备=C;设定强度=(当前强度*0.8)]。

在一些实施方式中,系统可以确定响应于下述内容来生成本地可解释语义表示:确定客户端设备(或本地连接到客户端设备的附加客户端设备)能够本地控制在所识别的文本中引用的智能设备;确定在所识别的文本中引用的智能设备能够被本地控制;和/或确定在所识别的文本中请求的状态改变能够实现本地控制(例如,在通过本地控制可以变更一些状态,而其他状态只能通过云控制变更的情况下)。

一旦生成了本地可解释语义表示,远程助理系统可以可选地将本地可解释语义表示发送到客户端设备以立即实现。换句话说,远程助理系统可以发送本地可解释语义表示,以使客户端设备响应于口头话语来解释本地可解释语义表示,生成对应的本地控制命令,以及本地发送该本地控制命令以实现“灯C”的状态改变。将本地可解释语义表示发送到客户端设备以立即实现可以是发送缓存请求本身(如下所述)或单独的发送。可替代地,远程助理系统可以替代地生成对应的云控制请求并且将其发送到用于“灯C”的智能设备控制系统,以使智能设备控制系统生成对应的控制命令并且将其发送到“灯C”来实现状态改变。

不管响应于立即请求来实现状态改变的方式如何,远程助理系统都可以将包括本地可解释语义表示以及可选地文本(或其表示)以及文本(或其表示)与本地可解释语义表示之间的映射的缓存请求发送到客户端设备。响应于接收到缓存请求,客户端设备可以在本地缓存中生成缓存条目,该缓存条目定义了文本到本地可解释语义表示的映射。例如,缓存条目可以包括文本本身到本地可解释语义表示的映射,和/或文本的表示到本地可解释语义表示的映射。在缓存请求本身不包括文本(或其表示)的情况下,客户端设备可以包括基于响应于文本(或对应的音频数据)的发送而接收到的缓存请求的映射。在一些实施方式中,远程助理系统还可以在缓存请求中包括确认“灯C”的状态的变更的文本、音频数据和/或图形。

进一步假定,在客户端设备处生成缓存条目之后,在经由助理客户端设备的一个或多个麦克风检测到的音频数据中捕获口头话语“将灯调暗一点”的另一实例。助理客户端设备可以使用本地语音到文本模型来处理音频数据,以生成“将灯调暗一点”的所识别的文本。助理客户端设备可以检查其本地缓存并确定所生成的缓存条目包括与所识别的文本匹配的文本(或其表示)。可以利用精确匹配和/或软匹配。作为响应,助理客户端设备可以处理缓存条目的本地可解释语义表示,以生成用于本地发送到“灯C”的相应本地控制请求。例如,基于包括“设定强度=(当前强度*0.8)”的本地可解释语义表示,助理客户端设备可以本地识别“灯C”的“当前强度”,然后通过将当前强度乘以0.8来确定“设定强度”的值。因此,将“强度”设定为所确定的值可以是基于本地可解释语义表示的相对状态改变而生成的特定状态改变。

此外,助理客户端设备可以基于“设定强度”的值并且可选地利用一个或多个本地适配器来生成控制命令。可以生成控制命令以符合遵循“灯C”的协议套件,诸如BLE、Z-Wave、Zigbee、Wi-Fi或其他协议套件。可以基于包括在本地可解释语义表示中的智能设备的标识符和/或基于可以包括在本地可解释语义表示中的适配器的指示来选择用在生成控制命令中的协议套件。

此外,所生成的控制命令可以被本地发送到“灯C”(或控制“灯C”的相应本地设备)。可以基于标识“灯C”(例如,标识“灯C”的地址)的本地可解释语义表示来将控制命令发送到“灯C”(或对应的本地设备),并且可以经由本地信道发送,该本地信道可以经由本地可解释语义表示来标识。本地信道可以是例如Wi-Fi无线电信道、蓝牙无线电信道或其他信道。因此,可以在“灯C”处实现状态改变,无需再次将任何数据发送到远程助理系统和/或无需远程助理系统再次生成语义表示。这可以通过避免将音频数据和/或所识别的文本发送到远程助理系统来节省网络资源,并且可以通过避免在远程系统处再次生成语义表示的需要来节省远程助理系统处的处理资源。此外,绕过向远程助理系统发送和在远程助理系统处处理可以显著地减少在智能设备处实现所请求的状态改变的等待时间。

如上所述,各种实施方式利用适配器来将本地可解释语义表示或在其上生成的特定状态改变本地解释为对应的控制命令。在那些实施方式中,客户端设备可以包括一个或多个适配器,每个适配器可以针对特定的智能设备、特定的智能设备制造商和/或特定的协议套件而定制。适配器在由助理客户端设备执行时,可以处理本地可解释语义表示(和/或基于本地可解释语义表示生成的特定状态改变),以生成特定控制命令,特定控制命令当被本地发送到至少一个对应的智能设备(或连接到智能设备的集线器/网桥或其他组件)时,被分别定制为可由对应的智能设备(或连接到智能设备的其他组件)直接解释,以在对应的智能设备处实现状态改变。例如,适配器可以由JavaScript(或其他解释性编程语言)实现,并且可以将基于本地可解释语义表示生成的通用智能设备控制命令转换为符合智能设备的协议套件的特定控制命令。适配器可以在自动化助理客户端内的容器中可选地执行。在多个适配器可用在助理客户端设备处的实施方式中,可以基于包括在语义表示中的智能设备的标识符和/或基于可以包括在语义表示中的适配器的指示,为本地可解释语义表示选择特定的适配器。

在缓存条目还包括确认对“灯A和B”的状态的变更的文本、音频数据和/或图形的实施方式中,助理客户端设备还可以响应于确定缓存条目与输入匹配来渲染这些内容。可以立即地,或可选地在一定延时后渲染内容。

注意,在先前的示例中,智能设备控制请求是相对于状态的状态改变请求。即,以取决于智能设备的当前状态的方式请求改变智能设备的状态。更具体地,以相对于灯C的当前亮度状态的方式请求改变灯C的亮度状态。在一些实施方式中,远程助理系统可以响应于确定语义表示是相对状态改变表示,确定代替本地控制命令,提供包括本地可解释语义表示的缓存请求。可以基于引用智能设备的当前状态的语义表示来判定这种确定。

在那些实施方式中的一些中,响应于确定语义表示不是相对状态改变表示,远程助理系统可以提供包括本地控制命令的缓存请求来代替语义表示。例如,假设口头话语为“将灯设定为500流明”。在这样的示例中,可以生成识别“灯C”并且识别该灯的“目标亮度强度水平”为“500流明”的本地可解释语义表示。此外,还可以生成对应的控制请求。由于语义表示不是相对的,因此,远程助理系统可以可选地发送包括基于本地可解释语义表示生成的本地控制命令的缓存请求。作为响应,客户端设备可以生成将文本“将灯设定为500流明”(或其表示)映射到控制命令的缓存条目。此后,响应于确定所接收的输入与缓存条目的文本匹配,客户端设备可以本地发送缓存条目的控制命令,由此绕过生成基于本地可解释语义表示的控制命令。

还应注意到,类似于云语义表示,在用户/账户的生态系统的助理客户端设备中,某些缓存条目可以包括相同文本到不同本地可解释语义表示(或本地控制命令)的映射。

上文提供了云语义表示和本地可解释语义表示的单独示例。然而,在一些实施方式中,单个缓存条目可以包括文本到本地可解释语义表示和云语义表示的映射。例如,可以针对请求识别灯“A”和“B”两者,并且可以本地控制灯“A”,但是灯“B”可仅经由云控制来控制。结果,远程助理系统可以生成并提供缓存请求,该缓存请求使用于该请求的文本被映射到以下两者:(a)本地可解释语义表示,其中,可以本地处理该本地可解释语义表示以实现“灯A”的状态改变;(b)云语义表示,其中,该云语义表示被发送到远程助理系统以实现“灯B”的状态改变。

在各种实施方式中,远程助理系统和/或客户端设备可以针对账户和/或其他条件的发生来确定设备拓扑的变更,并且作为结果,使得生态系统的客户端设备的高速缓存的一个或多个缓存条目被清除(例如,完全移除或标记为陈旧)。设备拓扑的变更可以包括例如:在设备拓扑中添加或删除智能设备、重命名设备拓扑中的智能设备和/或助理客户端设备、将设备分配给设备拓扑中的新房间和/或组,和/或设备拓扑的其他改变。这样的变更可以影响高速缓存的一些或所有语义表示,并且作为结果,响应于检测到变更,至少可以从高速缓存中清除受影响的缓存条目(以及可选地所有缓存条目)。作为一个示例,假设附加灯被添加到设备拓扑,并且被分配给具有“厨房”标签的房间。在完成该添加后,与先前分配给“厨房灯”的那些灯有关的任何语义缓存条目现在都将失效,因为它们不会反映新添加的附加灯。因此,响应于检测到该改变,可以从高速缓存中清除至少与“厨房灯”有关的那些缓存条目。例如,远程助理系统可以确定这种改变,并因此向生态系统的所有助理设备发送缓存清除请求,以使得清除所有助理客户端设备的本地缓存。此后,当接收到口头话语、键入的输入或其他输入时,将在助理客户端设备处生成新的缓存条目。例如,如果清除了用于文本“调暗厨房灯”的缓存条目,则如果用户此后提供口头话语“调暗厨房灯”,则将创建新的缓存条目。

在一些实施方式中,助理客户端设备可以利用设备内置的语音到文本模型来至少选择性地处理音频数据,而无需助理客户端设备处的显式自动化助理调用的任何检测。显式调用提示是:在单独检测到时将总是导致至少激活设备内置的语音识别的提示。显式调用提示的一些非限制性示例包括检测至少具有阈值置信度的口头热门词、启动显式助理界面元素(例如,触摸屏显示器上的硬件按钮或图形按钮)、至少具有(例如,如由手机边框中的传感器检测到的)阈值强度的“电话挤压”和/或其他显式调用提示。

作为一个示例,当在设备附近检测到人的存在时(例如,基于无源红外传感器和/或其他传感器),响应于检测到任何声音活动(例如,使用声音活动检测器)、响应于至少检测到设备附近的噪声的阈值水平、在某些日子和/或时刻期间,和/或响应于其他条件,助理客户端设备可以处理音频数据而无需显式自动化助理调用的任何检测。在助理客户端设备使用设备内置语音到文本模型处理音频数据而无需显式自动化助理调用的任何检测的实施方式中,助理客户端设备可以确定任何所识别的文本是否与指示为在助理客户端设备上的那些任何“热门短语”匹配。每个“热门短语”包括一个或多个单词的序列。当将来自音频数据的内置语音识别中所识别的文本确定为与热门短语不匹配时,助理客户端设备可以丢弃这些所识别的文本和音频数据。当将从音频数据的内置设备语音识别中所识别的文本确定为与热门短语匹配时,助理客户端设备可以基于该文本自动地启动一个或多个相应动作。可以为用户提供关于将哪些短语指示为热门短语的控制,并且可选地,在将短语指示为热门短语之前,可能需要显式用户接受。

在一些实施方式中,热门短语可以是与本文所述的对应的缓存条目的文本匹配的短语。在那些实施方式中,由助理客户端设备基于热门短语自动启动的动作可以包括发送对应的云语义表示或对应的本地可解释语义表示的本地解释。在那些实施方式中的一些中,可以基于确定满足一个或多个标准,在助理客户端设备处将缓存条目的文本指定为用于该助理客户端设备的热门短语。该标准可以包括例如(在整个最近的持续时间上或内)已经确定该文本和/或匹配文本至少阈值多次和/或(在整个最近的持续时间上或内)至少以阈值频率(总体或全部)存在于该助理客户端设备处接收到的(例如,键入和/或口头的)用户输入中。在那些实施方式的某些版本中,可以将缓存条目的文本自动地指定为热门短语,可选地,确认通过经由用户界面输入提供的这种指定(例如,“顺便说一句,我已经将X指定为热门短语。您可以在设置中轻松地改变(by the way,I’ve designated X as a hotphrase.You can easily change this in your settings)”)。在一些其他版本中,仅在响应于提示的确认用户输入之后,才可以将文本指定为热门短语。例如,响应于提示“您要求'经常开灯',要我将其指定为热门短语,这样您就不必再先说'好的,助理'了?(you ask to‘turn on the lights often’,want me to designate it as a hot phrase so you nolonger have to say‘OK assistant’first?)”的确认输入为“是”。在其他实施方式中,可以将助理客户端设备的高速缓存中的任何本地缓存条目的文本自动地指定为用于该助理客户端设备的热门短语。在将缓存条目的文本指定为热门短语的实施方式中,可以通过避免用户需要首先提供显式调用(诸如调用热词(例如,“好的助理”)来缩短用户与助理客户端设备的交互的持续时间。通过缩短与助理客户端设备交互的持续时间,改善了人-助理客户端设备的交互,从而可以在更短的持续时间内实现更大量的智能设备状态变更。

以上描述仅提供为本公开的一些实施方式的概述。在本文中更详细地描述了那些实施方式以及其他实施方式的进一步描述。

另外,一些实施方式包括一个或多个计算设备的一个或多个处理器,其中,一个或多个处理器可操作以执行存储在相关联的存储器中的指令,并且其中,所述指令被配置为使得执行本文所述的任一方法。一些实施方式包括具有一个或多个处理器的客户端设备,所述处理器执行本地存储的指令并与本地存储的数据交互以执行本文所述的一种或多种方法。一些实施方式还包括一个或多个计算机可读存储介质(暂时性或非暂时性),其存储可由一个或多个处理器执行以实现本文所述的任一方法的计算机指令。

应当意识到,本文更详细所述的前述概念和附加概念的所有组合被认为是本文公开的主题的一部分。例如,出现在本公开的结尾处的所要求保护的主题的所有组合被认为是本文公开的主题的一部分。

附图说明

图1是可以实现本文公开的实施方式的示例性环境的框图。

图2示出了包括来自多个不同方的多个智能设备,以及包括多个助理客户端设备的示例性环境。

图3A示出了当该助理客户端设备缺少与口头话语的文本匹配的缓存条目时,如何处理在图2的助理客户端设备处接收的口头话语的示例。

图3B示出了在图3A的助理客户端设备处存储具有云语义表示的缓存条目之后,如何不同地处理在图3A的同一客户端设备处接收的图3A的同一口头话语的示例。

图4A示出了当备用助理客户端设备缺少与口头话语的文本匹配的缓存条目时,如何处理在图2的该备用助理客户端设备处接收的图3A和图3B的同一口头话语的示例。

图4B示出了在图4A的备用客户端设备处存储具有云语义表示的缓存条目之后,如何不同地处理在图4A的该备用客户端设备处接收的图4A的同一口头话语的示例。

图5A示出了当该助理客户端设备缺少与口头话语的文本匹配的缓存条目时,如何处理在图3A和3B的同一助理客户端设备处接收的另一口头话语的示例。

图5B示出了在图5A的客户端设备处存储具有本地可解释语义表示的缓存条目之后,如何处理在图5A的客户端设备处接收的图5A的同一口头话语的示例。

图6是示出根据本文公开的各种实施方式,可由助理客户端设备实施的示例性方法的流程图。

图7是示出根据本文公开的各种实施方式,可由助理客户端设备实施的另一示例性方法的流程图。

图8是示出根据本文公开的各种实施方式,可由远程助理系统实现的示例性方法的流程图。

图9示出了计算设备的示例性架构。

具体实施方式

诸如智能家居警报器、智能门锁、智能摄像头、智能灯、智能恒温器、智能体重秤、智能床、智能灌溉系统、智能车库门开启器、智能插头、智能电器、智能婴儿监视器、智能电视(TV)、智能火灾警报器、智能湿度检测器、智能路由器等的智能联网设备(在本文中也被称为智能设备或物联网(IoT)设备)正在激增。通常多个智能设备位于某个结构(诸如家)的范围内——或位于诸如用户的主要住所和用户的次要住所和/或工作地点的多个相关结构内。

此外,可以分别包括助理客户端的助理客户端设备正在激增,助理客户端可以可选地与一个或多个远程自动化助理组件进行交互以形成自动化助理的逻辑实例。助理客户端设备可以专门用于助理功能(例如,仅包括助理客户端和相关接口并且专门用于助理功能的独立扬声器和/或独立音频/视频设备),或者除了其他功能可以执行辅助功能(例如,包括作为多个应用之一的助理客户端的移动电话或平板电脑)。此外,某些智能设备也可以是助理客户端设备。例如,一些智能设备可以包括助理客户端和至少(至少部分)用作用于助理客户端的助理界面的用户界面输出和/或输入设备的扬声器和/或麦克风。

已经提出了用于将智能设备与自动化助理的相应逻辑实例(以及可选地各个助理客户端设备)相关联的各种技术。例如,用户、用户组、助理客户端设备和/或助理客户端设备组(例如,均在某个结构内)可以(例如,在一个或多个数据库中)与多个不同的智能设备链接,以便能够经由自动化助理与智能设备进行交互(例如控制智能设备)。例如,家庭中的多个助理客户端设备中的每一个都可以链接到家庭中的多个不同智能设备中的每一个,以使任何用户(或一组受限的用户)能够与任何一个助理客户端设备连接以便与多个不同的智能设备中的任何一个交互。

智能设备和助理客户端设备的这种链接在本文中被称为设备拓扑,并且可以由各种数据结构来表示。设备拓扑可以是用户创建和/或自动创建的,并且可以定义各种助理客户端设备、各种智能设备、每一个的标识符和/或每一个的属性。例如,设备的标识符可以指定设备所处的结构的房间(和/或其他区域)(例如,客厅、厨房)和/或可以指定设备的昵称和/或别名(例如,沙发灯、前门锁、卧室扬声器、厨房助理等)。以这种方式,设备的标识符可以是用户可能与相应设备相关联的相应设备的名称、别名和/或位置。

设备拓扑表示可以进一步指定与相应设备相关联的一个或多个设备属性。助理客户端设备的设备属性可以包括例如由助理客户端设备和/或将由助理客户端设备控制的优选智能设备支持的一个或多个输入和/或输出模态(例如,在助理客户端设备1处接收的模糊智能TV命令应该被假定为指向智能TV1,但是它们可以被假定为指向用于助理客户端设备2的智能TV2)。例如,独立的仅扬声器助理客户端设备的设备属性可以指示它能够提供可听输出,但不能提供视觉输出。同样,例如,用于同一独立的仅扬声器助理客户端设备的设备属性可以指示未指定特定灯的照明控制请求应当被解释为与分配给与该助理客户端设备同一房间的灯有关。智能设备的设备属性可以例如标识可以被控制的智能设备的一个或多个状态、标识制造、分发和/或创建用于智能设备的固件的一方(例如3P);和/或标识智能设备的唯一标识符,诸如智能设备的地址和/或1P或3P提供的固定标识符。根据本文公开的各种实施方式,设备拓扑表示可以可选地进一步指定:哪些智能设备可以由哪些助理客户端设备本地控制、用于本地可控的智能设备的本地地址(或用于可直接本地控制这些智能设备的集线器的本地地址)、助理客户端设备和智能设备之间的本地信号强度和/或其他偏好指示符。此外,根据本文公开的各种实施方式,设备拓扑表示(或其变形)可以被远程存储在远程助理系统处和/或本地存储在用在本地控制智能设备中的多个助理客户端设备的每一个处。可选地,由于例如助理客户端设备硬件约束,每个本地存储的设备拓扑可以比远程存储的设备拓扑更不鲁棒(例如,定义更少的设备、属性和/或标识符)。

现在转到图1,示出了可以实现本文公开的技术的示例性环境。示例性环境包括多个助理客户端设备110

客户端设备110

客户端设备110

客户端设备110

一个或多个(例如,全部)客户端设备110

云模块115

云模块115

本地模块116

文本-语音(TTS)引擎117

客户端设备110

可以在经由通常由图1的105

云自动化助理组件120还可以经由一个或多个广域网与智能设备系统140

每个智能设备系统140

智能设备系统140

此外,例如,给定的智能设备系统140之一可以响应于来自云自动化助理组件120的请求,与智能设备145

在一些实施方式中,多个客户端计算设备110

客户端设备110

客户端设备110

如上所述,一个或多个客户端设备110

如上所述,对于在客户端设备110

缓存生成引擎125可以响应于来自客户端设备110

当所生成的语义表示包括云语义表示时,云履行引擎127可以处理云语义表示以生成对应的控制请求,然后将其发送至对应的智能设备系统140

当所生成的语义表示包括本地可解释语义表示时,相应客户端设备110

如上所述,对于在客户端设备110

现在,参考附加的附图,提供图1的各个组件的附加描述。图2描绘了包括多个房间250、252、254、256、258、260和262的家庭平面布置图。在至少一些房间中部署了多个客户端设备110

多个客户端设备110

在图2中进一步描绘了多个智能设备。智能设备包括可由第一远程智能设备系统140

现在,在描述图3A、3B、4A、4B、5A和5B的各个方面中将利用图2和图2的上述描述。

图3A示出了当第二助理客户端设备110

响应于接收到所识别的文本352A,云自动化助理组件120生成所识别的文本352A的云语义表示354。可以基于从第二助理客户端设备110

在生成云语义表示中,云自动化助理组件120还可以解析“使...亮一点”为是指“比当前亮度强度水平亮2/5(例如40%)”。这可以基于对可由云自动化助理组件120访问的一个或多个远程存储的模型和/或规则的引用。云语义表示354可以基于这些解析来生成并且可以是例如且如缓存请求356中所示的[设备=145

云自动化助理组件120利用所生成的云语义表示354来生成对应的控制请求。云自动化助理组件120将控制请求发送到对应于灯145

此外,云自动化助理组件120生成包括云语义表示354,并且可选地包括所识别的文本352A和/或所识别的文本到云语义表示354的映射的缓存请求356并将其发送到客户端设备110

图3B示出了在图3A中将具有云语义表示354(图3A)的缓存条目存储在第二助理客户端设备110

在图3B中,第二助理客户端设备110

图4A示出了当第一助理客户端设备110

在图4A中,第一助理客户端设备110

响应于接收到所识别的文本452A,云自动化助理组件120生成所识别的文本452A的云语义表示454。云语义表示454可以是例如并且如缓存请求456所示,[设备=145

云自动化助理组件120利用所生成的云语义表示454来生成对应的控制请求。云自动化助理组件120将控制请求发送到对应于语义表示454的灯145

此外,云自动化助理组件120生成包括云语义表示454,并且可选地包括所识别的文本452A和/或所识别的文本到云语义表示454的映射的缓存请求456并将其发送到第一客户端设备110

图4B示出了,在图4A中具有云语义表示454(图4A)的缓存条目被存储在第一助理客户端设备110

在图4B中,第一助理客户端设备110

图5A示出了当第二助理客户端设备110

在图5A中,第二助理客户端设备110

响应于接收到所识别的文本552A,云自动化助理组件120生成所识别的文本552A的本地可解释语义表示554。在一些实施方式中,响应于确定由所识别的文本552A推理性地引用了智能设备(恒温器145

可以基于对远程存储的设备拓扑的引用来生成本地可解释语义表示554,以确定“降温(decrease temperature)”请求是针对恒温器145

本地可解释语义表示556可以可选地另外包括:在生成对应的本地控制命令时将使用的适配器的指示(例如,特定于智能设备的制造商的适配器);将被用来发送本地控制命令的信道(例如,蓝牙或Wi-Fi)的指示;和/或将被用在基于本地可解释语义表示556来生成控制命令的协议套件的指示。例如,并且如缓存请求556中所示,本地可解释语义表示可以是[设备=145

云自动化助理组件120生成包括云语义表示554并且可选地包括所识别的文本552A和/或所识别的文本到云语义表示554的映射的缓存请求556并将其发送到第二客户端设备110

在一些实施方式中,并且如第二客户端设备110

在一些替代实施方式中,云自动化助理组件120基于所识别的文本552A生成对应的云语义表示。此外,云自动化助理组件120可以利用单独的云语义表示来生成对应的控制请求。云自动化助理组件120将控制请求发送到与恒温器145

图5B示出了在图5A中将具有本地可解释语义表示554(图5A)的缓存条目存储在第二助理客户端设备110

在图5B中,第二助理客户端设备110

图6是示出根据本文公开的各种实施方式,可由助理客户端设备的一个或多个处理器实现的示例性方法600的流程图。

在框602,助理客户端设备处理捕获口头话语的音频数据,以生成用于该口头话语的所识别的文本。在其他实施方式中,代替处理音频数据以生成所识别的文本,助理客户端设备可以基于(例如,使用虚拟键盘)直接键入的文本或基于对应于硬件或软件按钮按下(例如,“调暗灯”的文本被映射到标有“调暗”的图形软件按钮)提供的文本来识别文本。

在框604,助理客户端设备确定文本是否与本地缓存条目相匹配。如果是这样,则客户端设备进行到框606,并且选择来自匹配的本地缓存条目的语义表示。在框608,然后,系统使用语义表示。框608可以包括子框608A和/或608B。在子框608A,客户端设备本地处理作为本地可解释语义表示的所选择的语义表示的任何一个,以生成本地控制命令,并且经由本地信道发送控制命令。在子框608B,客户端设备将作为云语义表示的所选择的语义表示中的任何一个发送到远程系统。例如,它们可以被发送到远程系统,然后,该远程系统可以执行方法800的框812和814(下文所述的图8)。在一些实施方式中,框606可以包括附加子框,诸如助理客户端设备渲染包括在本地缓存条目中的任何响应内容的子框。例如,本地缓存条目可以包括响应文本,并且助理客户端设备可以对响应文本执行本地TTS处理,并且可听地渲染最终合成的语音。作为另一示例,本地缓存条目可以附加或可替代地包括响应图形,并且可以在助理客户端设备的显示器上可视地渲染图形。

如果框604的判定为否,则助理客户端设备进行到可选框610,并且确定文本是否可以通过本地NLU解析(例如,使用本地NLU引擎和本地模型)。如果是,则系统进行到框612,生成(本地可解释和/或云)语义表示,然后进行到框608,并且使用所生成的语义表示。

如果框610处的判定为否(或者604处的判定为否并且省略610),则客户端设备进行到框614,并且将音频数据和/或文本发送到远程助理系统。可选地,框614可以在执行框604和/或610之前和/或期间发生,并且响应于框604和610的任何一个处确定为“是”,可选地暂停远程系统处的进一步处理(例如,响应于来自客户端设备的暂停发送)。例如,如果框614发生在执行框604和/或610之前和/或期间,并且助理客户端设备在框604和/或610做出“是”确定,则可以将暂停请求发送到远程助理系统,以使得暂停与所发送的音频数据和/或文本有关的远程处理系统的任何进一步处理。以这些和其他方式,如果在框604和/或610处的确定为“否”,则可以更快地启动远程助理系统处的处理以减少等待时间,而如果判定为“是”,则还可以使这种处理暂停以节省远程助理系统资源。

在框616,客户端设备从远程助理系统接收缓存请求,该缓存请求包括文本的语义表示以及可选的文本本身(和/或其表示)。框616可选地包括子框616A,其中,助理客户端设备可选地进行到框608A以处理缓存请求(或单独的发送)的一个或多个本地可解释语义表示(如果有的话)。换句话说,在框616,助理客户端设备可以立即对缓存请求的任何本地可解释语义表示进行动作,以响应于当前口头话语或其他当前用户输入来实现任何本地智能设备动作。

在框618,客户端设备在本地高速缓存中并且响应于接收到缓存请求存储缓存条目,该缓存条目包括文本到缓存请求的语义表示的映射。

框618可选地包括子框618A,其可以在框618附近的时间或者在稍后的时间发生。在子框618A,客户端设备可选地在缓存条目中分配文本以用于免调用动作。例如,客户端设备可以将文本分配为“热门短语”,如本文所述。将文本分配为“热门短语”可以可选地基于确定满足一个或多个标准。当从独立于任何显式自动化助理调用发生的音频数据的设备内置语音识别所识别的文本被确定为与热门短语匹配时,助理客户端设备可以基于文本自动地启动一个或多个对应的动作(例如,基于对应的缓存条目的语义表示的动作)。

图7是示出根据本文公开的各种实施方式的可以由助理客户端设备的一个或多个处理器实现的另一示例性方法700的流程图。方法700示出了图6的方法600的特定实施方式,其中,确定文本与缓存条目的文本匹配(即,图6的框604为“是”),并且其中,缓存条目的语义表示包括本地可解释语义表示。

在框702,助理客户端设备处理捕获口头话语的音频数据,以生成用于口头话语的识别文本。在其他实施方式中,代替处理音频数据以生成所识别的文本,助理客户端设备可以基于其是(例如,使用虚拟键盘)直接键入或基于其对应于硬件或软件按钮按下而提供的来识别文本(例如,“调暗灯”的文本被映射到标有“调暗”的图形软件按钮)。

在框704,助理客户端设备确定文本与缓存条目的文本匹配。框704可选地包括子框704A,其中,客户端设备可选地确定该文本被分配给(例如,在助理客户端设备处)免调用动作。例如,当在没有显式自动化助理调用的情况下发生框702的处理时,可以可选地执行框704A。此外,在这样的示例中,如果确定文本(例如,在客户端设备本地)被分配给免调用动作时,可以仅执行方法700的一个或多个后续框。换句话说,当在没有显式自动化助理调用的情况下发生框702的处理时,可以执行框704A,并且当确定文本未被分配给免调用动作时,可以丢弃它,无需基于该文本执行方法700的其他框–而当确定文本被分配给免调用动作,则将基于文本执行方法700的其他框。

在框706,客户端设备基于其在缓存条目中被映射到缓存条目的文本来选择本地可解释语义表示。

在框708,客户端设备确定本地可解释语义表示的状态改变是否是当前状态相关的状态改变。如果否,则客户端设备进行到框712,并使用本地可解释语义表示的状态改变。例如,如果状态改变指示固定值,则该固定值可以被用作状态改变。如果框708处的确定为“是”,则客户端设备进行到框710,并且基于当前状态值来解析状态改变。例如,如果状态改变是当前状态相关的,则可以通过标识一个或多个智能设备的当前状态,然后基于所标识的当前状态确定状态改变来解析。例如,如果状态改变是“设定值=(当前温度+3度)”,则可以通过识别“当前温度”来解析。

在框712,客户端设备使用状态改变并且可选地使用基于缓存条目识别的适配器来生成本地控制命令。

在框714,客户端设备在基于缓存条目可选地选择的(例如,在缓存条目中显式标识的,或者基于在缓存条目中标识的协议套件、智能设备和/或无线电/信道选择的)本地信道上发送本地命令。可以基于在本地可解释语义表示中标识或由此解析的那些地址使所发送的本地命令寻址到智能设备。

在框718处,客户端设备确定在缓存条目中是否存在任何附加的未处理的语义表示。如果否,则客户端设备进行到框720,并且方法700结束。如果是,则客户端设备进行到框722,并确定是否可本地解释下一个未处理的语义表示。如果是,则客户端设备再回到框708。如果否(即,其是云语义表示),则客户端设备进行到图6的方法600的框608B,然后在执行框608B之后返回到框718。

图8是示出根据本文公开的各种实施方式的可由远程助理系统的一个或多个处理器实现的示例性方法800的流程图。

在框802,系统从助理客户端设备接收请求。在框804,系统确定该请求是否为语义云表示。如果是,则系统执行方法800的框812和814(下文所述),而不执行方法800的任何其他框。

如果否,则系统进行到框808,并且基于请求中的口头话语的表示来生成口头话语的语义表示。在其他实施方式中,该表示可以是键入的话语,或者是映射到硬件元素或软件图形元素的按下的文本。

在可选框810,系统响应于该请求,生成用于在助理客户端设备处渲染的确认内容。

在可选框812,系统基于云语义表示生成控制请求,该云语义表示是基于该请求生成的。可选框812可以包括可选框812A,其中,如果语义表示的状态表示是相对/当前状态相关的状态表示,则系统基于智能设备的当前状态来生成控制请求。

在可选框814,系统将生成的控制请求发送到智能设备远程系统。

在框816,系统生成包括(本地可解释和/或云)语义表示并且可选地包括文本到语义表示的映射的缓存请求。

在框818,系统将缓存请求发送到助理客户端设备。框818可选地包括子框818A,其中,如果缓存请求的语义表示是本地可解释语义表示,则系统可选地响应于当前请求生成用于实现本地可解释语义表示的单独请求。

图9是可以可选地用于执行本文所述的技术的一个或多个方面的示例性计算设备910的框图。计算设备910通常包括经由总线子系统912与多个外围设备通信的至少一个处理器914。这些外围设备可以包括存储子系统924(包括例如存储器子系统925和文件存储子系统926)、用户界面输出设备920、用户界面输入设备922和网络接口子系统916。输入设备和输出设备允许用户与计算设备910交互。网络接口子系统916提供到外部网络的接口并且耦合到其他计算设备中的对应的接口设备。

用户界面输入设备922可以包括键盘、诸如鼠标、轨迹球、触摸板或者图形输入板的指示设备、扫描仪、并入显示器中的触摸屏、诸如语音识别系统、麦克风的音频输入设备和/或其他类型的输入设备。一般而言,使用术语“输入设备”旨在包括将信息输入到计算设备910中或者到通信网络上的所有可能类型的设备和方法。

用户界面输出设备920可以包括显示子系统、打印机、传真机、或者非可视显示器,诸如音频输出设备。显示子系统可以包括阴极射线管(CRT)、平板设备(诸如,液晶显示器(LCD))、投影设备、或者用于创建可见的图像的一些其他机构。显示子系统还可以诸如经由音频输出设备提供非可视显示。一般而言,使用术语“输出设备”旨在包括将信息从计算设备910输出至用户或者至另一机器或者计算设备的所有可能类型的设备和方法。

存储子系统924存储提供本文所述的模块中的一些或者所有的功能的编程和数据结构。例如,存储子系统924可以包括执行本文所述的一个或多个方法的所选方面的逻辑。

这些软件模块通常由处理器914单独或者与其他处理器组合执行。用在存储子系统924中的存储器925可以包括多个存储器,该多个存储器包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)930以及存储固定指令的只读存储器(ROM)932。文件存储子系统926可以为程序和数据文件提供永久存储,并且可以包括硬盘驱动器、软盘驱动器连同相关联的可移动介质、CD-ROM驱动器、光盘驱动器、或者可移动介质盒。实现某些实施方式的功能的模块可以由文件存储子系统926存储在存储子系统924中或者可以存储在可由处理器914访问的其他机器中。

总线子系统912提供用于使计算设备910的各种组件和子系统按照预期的方式彼此通信的机制。虽然总线子系统912被示意性地示出为单个总线,但是总线子系统的替选实施方式可以使用多个总线。

计算设备910可以有各种类型,包括工作站、服务器、计算集群、刀片式服务器、服务器群、或者任何其他数据处理系统或者计算设备。由于计算机和网络的性质多变,所以图9中图示的计算设备910的描述仅仅旨在作为为了说明一些实施方式的目的的具体示例。计算设备910的许多其他配置可能具有比图9中图示的计算设备更多或者更少的组件。

在本文所讨论的某些实施方式可以收集或者使用关于用户的个人信息(例如,从其他电子通信提取到的用户数据、关于用户的社交网络的信息、用户的位置、用户的时间、用户的生物特征信息,以及用户的活动和人口统计信息、用户之间的关系等)的情况下,为用户提供控制是否收集信息、是否存储个人信息、是否使用个人信息、以及如何收集、存储和使用关于用户的信息的一个或多个机会。即,本文所讨论的系统和方法仅在从相关用户接收到可以这样做的明确授权时才收集、存储和/或使用用户个人信息。

在一些实施方式中,提供一种方法,包括在远程助理系统处以及从助理客户端设备接收在助理客户端设备处捕获的口头话语的表示。口头话语是与链接到助理客户端设备的一个或多个智能设备的一个或多个状态有关的请求。作为一个示例,该请求可以是变更智能设备的状态的请求(即,使状态从当前状态值转变为新的状态值)。口头话语的表示包括捕获口头话语的音频数据和/或利用在客户端设备本地存储的语音到文本模型,在客户端设备生成的口头话语的文本。该方法进一步包括在远程系统处并且响应于接收到口头话语的表示:基于口头话语的表示,生成口头话语的语义表示;基于口头话语的语义表示,生成至少一个控制请求,以发送到控制一个或多个智能设备的至少一个智能设备远程系统,其中,至少一个控制请求不同于语义表示;向至少一个智能设备远程系统发送至少一个控制请求,以使至少一个智能设备远程系统向一个或多个智能设备提供一个或多个对应的命令;以及向助理客户端设备发送包括语义表示的缓存请求。向助理客户端设备发送缓存请求使得助理客户端设备在助理客户端设备的高速缓存中存储包括文本到语义表示的映射的缓存条目。

该技术的这些和其他实施方式可以可选地包括一个或多个下述特征。

在一些实施方式中,该方法进一步包括在向助理客户端设备发送缓存请求之后:在助理客户端设备处捕获附加音频数据,附加音频数据捕获附加口头话语;使用本地存储在助理客户端设备上的语音到文本模型,处理附加音频数据以生成对应于附加口头话语的当前文本;确定当前文本与缓存条目的文本匹配;以及响应于确定当前文本与缓存条目的文本匹配,并且响应于缓存条目包括文本到语义表示的映射:将语义表示发送到远程助理系统。在那些实施方式的一些中,当未在助理客户端设备处检测到显式自动化助理调用的情况下执行处理附加音频数据以生成当前文本。在那些实施方式的一些版本中,将语义表示发送到远程助理系统进一步响应于:确定当前文本满足用于在助理客户端设备处没有显式自动化助理调用的情况下使得匹配文本能够进行操作的一个或多个标准。在一些附加或可替代版本中,该方法进一步包括:在远程助理系统处接收从助理客户端设备发送的语义表示;基于语义表示,生成至少一个替代控制请求以发送到控制一个或多个智能设备的至少一个智能设备远程系统,其中,至少一个替代控制请求不同于至少一个控制请求;以及向至少一个智能设备远程系统发送至少一个替代控制请求,以使至少一个智能设备远程系统变更一个或多个智能设备的一个或多个状态。可选地,在那些可替代或附加实施方式中:生成至少一个控制请求进一步基于在生成至少一个控制请求时一个或多个智能设备的至少一个当前状态;生成至少一个替代控制请求进一步基于在生成至少一个替代控制请求的不同时间时一个或多个智能设备的至少一个替代当前状态;基于至少一个当前状态不同于至少一个替代当前状态,至少一个替代控制请求不同于至少一个控制请求。

在一些实施方式中,生成口头话语的语义表示进一步基于用于助理客户端设备的账户的设备拓扑,其中,设备拓扑限定助理客户端设备、一个或多个智能设备、附加助理客户端设备和附加智能设备。在那些实施方式的一些中,进一步基于设备拓扑来生成口头话语的语义表示包括:基于设备拓扑,将口头话语的文本中的模糊术语解析为引用一个或多个智能设备。

在一些实施方式中,语义表示包括:一个或多个状态改变的状态改变表示;以及对一个或多个智能设备中的每一个的对应的唯一标识符。在那些实施方式的一些版本中,状态改变表示是以相对方式而非绝对方式定义一个或多个状态改变的相对状态改变表示。在那些实施方式的一些附加或可替代版本中,该方法进一步包括:在远程助理系统或助理客户端设备处确定设备拓扑的变更;以及响应于确定设备拓扑的变更:使得从助理设备的高速缓存中清除缓存条目。确定设备拓扑的变更可以可选地包括:确定变更是针对助理客户端设备、一个或多个智能设备和/或分配给助理客户端设备和/或一个或多个智能设备的一个或多个房间的,在设备拓扑中定义的一个或多个属性;以及可选地,使得从高速缓存清除缓存条目进一步响应于确定缓存条目受一个或多个属性影响。

在一些实施方式中,该方法进一步包括在远程助理系统处以及从附加助理客户端设备接收口头话语的附加表示。在附加助理客户端设备处捕获口头话语,并且附加助理客户端设备和助理客户端设备两者都是同一设备拓扑的成员。在那些实施方式的一些中,该方法进一步包括在远程系统处并且响应于接收到口头话语的附加表示:基于口头话语的表示,生成口头话语的替代语义表示,其中,基于在附加助理客户端设备处捕获的附加表示和在助理客户端设备处捕获的表示,口头话语的替代语义表示不同于语义表示;以及向附加助理客户端设备发送包括替代语义表示的附加缓存请求。向附加助理客户端设备发送附加缓存请求使得附加助理客户端设备在附加助理客户端设备上的附加高速缓存中存储附加缓存条目,附加缓存条目包括文本到替代语义表示的映射。

在一些实施方式中,提供一种方法,包括:在远程助理系统处以及从助理客户端设备接收在助理客户端设备处捕获的口头话语的表示。口头话语是变更与助理客户端设备链接的给定智能设备的至少给定状态的请求。口头话语的表示包括捕获口头话语的音频数据和/或利用在客户端设备本地存储的语音到文本模型,在客户端设备处生成的口头话语的文本。该方法进一步包括在远程系统并且响应于接收到口头话语的表示:确定给定智能设备可由助理客户端设备和/或由具有与助理客户端设备的本地连接的附加客户端设备本地控制;生成口头话语的语义表示,语义表示包括本地可解释语义表示,以及向助理客户端设备发送包括语义表示的缓存请求。本地可解释语义表示可由助理客户端设备和/或附加客户端设备本地解释,以生成对应的控制命令,控制命令可在本地信道上发送以使得变更给定智能设备的至少给定状态。为至少一个智能设备生成本地可解释语义表示包括响应于确定给定智能设备可本地控制,将本地可解释语义表示包括在语义表示中。向助理客户端设备发送缓存请求使得助理客户端设备在助理客户端设备的高速缓存中存储包括文本到语义表示的映射的缓存条目。

该技术的这些和附加实施方式可以可选地包括一个或多个下述特征。

在一些实施方式中,该方法进一步包括在向助理客户端设备发送缓存请求之后:在助理客户端设备处捕获附加音频数据,附加音频数据捕获附加口头话语;使用本地存储在助理客户端设备上的语音到文本模型,处理附加音频数据以生成对应于附加口头话语的当前文本;确定当前文本与缓存条目的文本匹配;以及响应于确定当前文本与缓存条目的文本匹配,并且响应于缓存条目包括文本到语义表示的映射:在助理客户端设备处,处理本地可解释语义表示以生成给定控制命令;以及经由本地信道,发送给定控制命令以使得变更给定智能设备的至少给定状态。在那些实施方式的一些版本中,本地可解释语义表示包括:给定智能设备的标识符;以及当前状态相关状态改变表示,当前状态相关状态改变表示定义相对于给定智能设备的给定状态的对应的当前值,变更给定智能设备的至少给定状态。在那些版本的一些中,处理本地可解释语义表示以生成给定控制命令包括:在助理客户端设备处确定给定智能设备的给定状态的当前值;基于将当前值应用于当前状态相关状态改变表示,生成给定控制命令。可选地,本地可解释语义表示进一步包括智能设备的制造商的指示,以及生成给定控制命令可选地包括响应于分配给智能设备的制造商的指示的适配器,利用在助理客户端设备上本地存储的适配器。可选地,该方法进一步包括基于在本地可解释语义表示中直接或间接指示的本地信道,选择本地信道以发送给定控制命令。例如,基于分配给被包括在本地可解释语义指示中的智能设备的制造商的指示的和/或分配给被包括在本地可解释语义表示中的协议套件中的本地信道。

在一些实施方式中,在未在助理客户端设备处检测到显式自动化助理调用的情况下,执行处理附加音频数据以生成当前文本。在那些实施方式的一些中,发送给定控制命令进一步响应于确定当前文本满足用于在助理客户端设备处没有显式自动化助理调用的情况下使得匹配文本能够进行操作的一个或多个标准。

在一些实施方式中,生成口头话语的语义表示进一步基于用于助理客户端设备的账户的设备拓扑。设备拓扑限定助理客户端设备、给定智能设备、附加助理客户端设备和附加智能设备。在那些实施方式的一些中,生成口头话语的语义表示包括:将口头话语的文本中的模糊术语解析为引用给定智能设备。

在一些实施方式中,该方法进一步包括:在远程助理系统或助理客户端设备处确定设备拓扑的变更;以及响应于确定设备拓扑的变更:使得从助理客户端设备的高速缓存中清除缓存条目。在那些实施方式的一些中,确定设备拓扑的变更包括:确定变更是针对助理客户端设备、给定智能设备和/或分配给助理客户端设备和/或给定智能设备的一个或多个房间,在设备拓扑中定义的一个或多个属性;以及使得从高速缓存清除缓存条目进一步响应于确定缓存条目受一个或多个属性影响。

在一些实施方式中,提供一种方法,包括在客户端设备上的高速缓存中存储缓存条目,该缓存条目包括文本到语义表示的映射。语义表示包括可由客户端设备本地解释的本地可解释语义表示。该方法进一步包括在客户端设备处捕获附加音频数据,该附加音频数据捕获口头话语。该方法进一步包括使用本地存储在客户端设备上的语音到文本模型,处理附加音频数据以生成对应于口头话语的当前文本。该方法进一步包括确定当前文本与缓存条目的文本匹配。该方法进一步包括响应于确定当前文本与缓存条目的文本匹配,并且响应于缓存条目包括文本到语义表示的映射:在客户端设备处,处理本地可解释语义表示以生成给定控制命令;以及经由本地信道发送给定控制命令以使得变更给定智能设备的至少给定状态。

相关技术
  • 智能设备的高效和低延迟自动化助理控制
  • 经由单独的客户端设备的自动化助理接口的智能设备配置指导
技术分类

06120113019588