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

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

Info

Publication number
CN113068410A
CN113068410A CN201980022670.4A CN201980022670A CN113068410A CN 113068410 A CN113068410 A CN 113068410A CN 201980022670 A CN201980022670 A CN 201980022670A CN 113068410 A CN113068410 A CN 113068410A
Authority
CN
China
Prior art keywords
client device
assistant
text
assistant client
representation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980022670.4A
Other languages
English (en)
Inventor
大卫·罗伊·沙伊雷尔
林迪
卢卡斯·帕尔默
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN113068410A publication Critical patent/CN113068410A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Telephonic Communication Services (AREA)
  • Selective Calling Equipment (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Vehicle Body Suspensions (AREA)
  • Lock And Its Accessories (AREA)

Abstract

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

Description

智能设备的高效和低延迟自动化助理控制
背景技术
人类可以与本文被称为“自动化助理”的交互式软件应用进行人机交互。例如,人类(当与自动化助理交互时可以被称为“用户”)可以向自动化助理提供输入,使得自动化助理生成并且提供响应输出,以控制一个或多个智能设备,和/或执行一项或多项其他功能。用户提供的输入可以是例如(例如,经由触摸屏的)触摸输入、(例如,经由相机检测到的)手势和/或口头自然语言输入(即,经由麦克风检测到的话语),其在某些情况下可以被转换为文本(或其他语义表示)然后进一步被处理。
在许多情况下,自动化助理包括由助理客户端设备本地执行并且由用户直接参与的自动化助理客户端,以及利用云的更强大资源来帮助自动化助理客户端响应用户输入的云端(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,示出了可以实现本文公开的技术的示例性环境。示例性环境包括多个助理客户端设备1101-N(在本文中也被简称为“客户端设备”)、云自动化助理组件120、智能设备系统140A-N、智能设备145A-N和用于客户端设备1101-N的设备拓扑152。图1的客户端设备1101-N和智能设备1451-N表示(例如,经由设备拓扑152)至少有选择地彼此关联的客户端设备和智能设备。例如,智能设备1451-N可以全部在家里(例如,在家的内部和/或外部),客户端设备1101-N可以至少偶尔在同一家中,以及智能设备1451-N和客户端设备1101-N可以利用一种或多种技术(例如本文所述的技术)相互链接。通过这种链接,可以根据本文所述的实施方式,利用客户端设备1101-N来控制智能设备1451-N
客户端设备1101-N中的一个或多个(例如,全部)可以执行自动化助理客户端的相应实例。然而,在一些实施方式中,客户端设备1101-N中的一个或多个可以可选地缺少自动化助理客户端的实例,并且仍然包括用于控制一个或多个智能设备的引擎和硬件组件。自动化助理客户端的实例可以是与对应的客户端设备1101-N的操作系统分离的应用(例如,安装在操作系统的“上面”),或可以替代地通过对应的客户端设备1101-N的操作系统直接实现。自动化助理客户端的每个实例可以响应于由用户经由客户端设备1101-N中的任何一个的I/O组件111提供的各种请求,可选地与云自动化助理组件120交互。此外,客户端设备1101-N的其他引擎可以可选地与云自动化助理组件120交互。
客户端设备1101-N中的一个或多个(例如,全部)可以包括相应语音-文本(STT)引擎1121-N,其利用相应本地存储的STT模型1521-N来处理捕获口头话语的音频数据,以生成口头话语的对应的识别文本。可以经由相应客户端设备的I/O组件1111-N的麦克风来检测音频数据的每个实例。在一些实施方式中,STT引擎1121-N仅在对应的客户端设备1101-N处检测到的显式自动化助理调用之后处理音频数据。在一些实施方式中,STT引擎1121-N可以至少选择性地处理音频数据,甚至是在没有显式自动化助理调用的情况下,但是丢弃(无需进一步处理)确定不包括任何“热门短语”的任何音频数据和/或所识别的文本,如本文所述。在检测到“热门短语”的情况下,可以基于“热门短语”采取一个或多个响应动作。例如,在“热门短语”与对应的本地高速缓存1581-N的缓存条目的文本匹配的情况下,可以进一步处理缓存条目的语义表示,如本文所述。
客户端设备1101-N中的一个或多个(例如,全部)还可以可选地包括相应自然语言理解(NLU)引擎1131-N,其利用相应本地存储的NLU模型1531-N来处理文本,以尝试本地生成文本的本地语义表示。文本可以是来自STT引擎112的识别文本,或者可以是(例如,经由触摸屏的虚拟键盘输入的)键入的文本,或者可以是与选择的虚拟和/或硬件按钮相关联的文本(例如,映射到在触摸屏上显示的特定虚拟按钮的选择的文本)。NLU引擎1131-N可以能够为各种文本短语生成有效的语义表示。但是,如本文所述,NLU引擎1131-N也可能无法针对各种其他文本短语(诸如,与智能设备的控制(例如,智能设备的相对控制)有关的各种文本短语)生成有效的语义表示。
一个或多个(例如,全部)客户端设备1101-N还可以包括相应履行引擎1141-N。每个履行引擎1141-N可以包括相应云模块1151-N、相应本地模块1161-N和/或相应文本-语音(TTS)引擎1171-N
云模块1151-N可以通过与云自动化助理组件120的交互来履行各种请求。例如,云模块1151可以响应于确定所接收的输入的文本(例如,识别的文本STT引擎1121-N)与本地高速缓存1581的缓存条目的文本匹配,将映射到缓存条目中的文本的云语义表示发送到云自动化助理组件120,如本文所述。云模块1151还可以可选地将由NLU引擎1131生成的云语义表示发送到云自动化助理组件120。然后,云自动化助理组件120的云履行引擎127可以在履行所接收的输入中利用所接收的云语义表示。例如,对于智能设备控制输入,云履行引擎127可以利用云语义表示来生成对应的控制请求,以发送到对应的智能设备系统140A-N,然后,该智能设备系统140A-N生成对应的控制命令并且将其发送到对应的智能设备145A-N
云模块1151-N还可以针对不能通过相应NLU引擎1131-N解析和/或不与各自的本地高速缓存1581-N的任何缓存条目匹配的所接收的输入,将表示所接收的输入的数据发送到基于云的自动化助理组件120。例如,如果所接收的输入是在音频数据中捕获的口头话语,可以将音频数据和/或(例如,从相应STT引擎1121-N)本地识别的文本发送到基于云的自动化助理组件120。对于那些发送中的至少一些,作为响应,基于云的组件120可以向相应缓存引擎1181-N提供缓存请求,以使得能够更有效地和/或以减少的等待时间来履行将来出现的输入。此外,基于云的组件120可以附加或替代地响应于所接收的输入,执行对应的云履行和/或向相应客户端设备1101-N提供本地可解释语义表示和/或本地命令以由各自的客户端设备1101-N用在执行本地履行中。
本地模块1161-N可以本地履行各种请求,而无需与云自动化助理组件120交互。例如,本地模块1161可以响应于确定所接收的输入的文本(例如,从STT引擎1121-N识别的文本)与本地高速缓存1581的缓存条目的文本匹配,在本地履行请求时利用映射到缓存条目中的文本的本地可解释语义表示。例如,本地模块1161可以在生成本地控制命令时利用本地可解释语义表示,以通过相应无线电1191本地发送到一个或多个对应的智能设备145A-N。可选地,并且如本文所述,当本地可解释语义表示用于智能设备控制时,本地模块1161-N可以在生成本地控制命令时利用一个或多个相应适配器1561-N。本地模块1161还可以可选地本地解释由NLU引擎1131生成的任何本地可解释语义表示。
文本-语音(TTS)引擎1171-N可以可选地被用来生成合成语音以提供对请求的响应。例如,TTS引擎1171可以响应于确定所接收的输入的文本(例如,从STT引擎1121-N识别的文本)与本地高速缓存1581的缓存条目的文本匹配,利用映射到缓存条目中的文本的响应文本来生成对应的合成语音,并且使得响应于所接收的输入渲染合成语音。除了基于还映射到缓存条目中的文本的语义表示(云和/或本地可解释)执行的其他动作之外,还可以渲染合成语音。此外,可以附加或可替代地视觉上渲染响应文本,和/或可以由履行引擎响应于替代内容被映射到缓存条目中的文本而附加或可替代地渲染该替代内容。
客户端设备1101-N中的一个或多个(例如,全部)还可以可选地包括上述相应缓存引擎1181-N和相应本地高速缓存1581-N。缓存引擎1181-N可以分别从云自动化助理组件120的缓存生成引擎125接收各自的缓存请求,并且将相应缓存条目存储在相应本地高速缓存1581-N中。本地高速缓存1581-N可以被存储在例如相应客户端设备1101-N的RAM和/或ROM中。如本文所述,在一些实施方式中,从缓存生成引擎125接收的缓存请求包括将存储在相应本地高速缓存1581-N中的全部缓存条目。在其他实施方式中,缓存请求可能缺少要包括在缓存条目中的文本,并且无法映射到缓存条目中的语义表示。在这样的实施方式中,相应缓存引擎1181-N可以基于其是最近提供给云自动化助理组件120的文本(或者最近提供给云自动化助理组件120的音频数据的识别文本)来确定文本。
可以在经由通常由图1的1051指示的一个或多个广域网(例如,因特网)可通信地耦合到客户端设备1101-N的一个或多个计算系统(统称为“云”或“远程”助理系统)上实现云自动化助理组件120。例如,云自动化助理组件120可以由一个或多个高性能服务器集群来实现。注意,客户端设备1101-N可以在访问广域网1051和/或彼此本地通信中利用一个或多个局域网。这样的局域网可以包括客户端设备1101-N之间的Wi-Fi网络和/或网状网络。
云自动化助理组件120还可以经由一个或多个广域网与智能设备系统140A-N可通信地耦合。云自动化助理组件120与智能设备系统140的通信耦合通常由图1的1052指示。此外,智能设备系统140可以各自经由通常由图1的1104指示的一个或多个广域网可通信地耦合到一个或多个智能设备145A-N的相应组。注意,智能设备145A-N可以在访问广域网1053时利用一个或多个局域网。
每个智能设备系统140A-N可以是第一方(1P-即,由控制自动化助理的同一方制造和/或分发的)或第三方(3P-即,由不同方制造和/或分发的)系统,并且各自可以与一个或多个对应的智能设备145A-N可通信地耦合。例如,第一智能设备系统140A-N可以由第一3P控制并且可通信地与第一智能设备145A1耦合,第二智能设备系统140可以由第二3P控制并且可通信地与第二智能设备145B1和第三智能设备145B2等耦合。
智能设备系统140A-N可以经由广域网1053与设备145A-N通信,以控制它们相应智能设备145A-N来将固件更新传递给它们相应智能设备145A-N,以确定它们相应智能设备145A-N的状态等。例如,给定的一个智能设备系统140可以与智能设备145A-N之一通信,以响应于针对智能设备系统启动能智能设备的控制的、经由移动应用接收到用户输入来控制该智能设备。
此外,例如,给定的智能设备系统140之一可以响应于来自云自动化助理组件120的请求,与智能设备145A-N之一通信来控制智能设备。例如,根据一些技术,用户可以经由客户端设备1101的一个或多个I/O组件1111提供控制智能设备的请求,诸如经由I/O组件1111的麦克风提供的“关闭沙发灯(turn off the couch light)”的口头输入。请求(例如,捕获口头输入的音频数据或本地生成的文本)可以由客户端设备1101经由广域网1051发送到云自动化助理组件120。云自动化助理组件120可以处理该请求,以基于该请求确定要控制的智能设备,并且经由广域网1052将控制请求发送到智能设备系统140A-N中的相应一个,该智能设备系统进而经由广域网1053将对应的命令发送到智能设备。但是,如本文所述,这样的技术存在诸如高等待时间和/或网络资源的过度消耗的缺点。
在一些实施方式中,多个客户端计算设备1101-N和智能设备145A-N可以以各种方式彼此关联,以便于执行本文所述的技术。例如,在一些实施方式中,多个客户端设备1101-N和智能设备145A-N可以借助于经由一个或多个LAN和/或经由一个或多个对等网络可通信地耦合来彼此关联。例如,在跨诸如家、建筑物等的特定区域或环境部署多个客户端计算设备1101-N的情况下就是这种情况。附加或可替代地,在一些实施方式中,多个客户端设备1101-N和智能设备145A-N可能由于它们是至少可选择地由一个或多个用户(例如,个人、家庭、组织的雇员、其他预定义组等)访问的客户端设备1101-N和智能设备145A-N的协调生态系统的成员而彼此关联。在那些实施方式的一些中,客户端设备1101-N和智能设备1451-N的生态系统可以在设备拓扑152中彼此手动和/或自动地关联。
客户端设备1101-N的自动化助理客户端的实例,通过其与一个或多个云自动化助理组件120的交互,可以形成从用户的角度来看是用户可以与之进行人机对话的自动化助理的逻辑实例。例如,用户可以使用任一客户端设备1101和自动化助理客户端1171或者使用客户端设备110N以及自动化助理客户端117N来参与自动化助理的同一逻辑实例。虽然自动化助理客户端1171和117N的特定实例可以变化(例如,为同一命令提供不同的智能设备控制)和/或可以经由不同的I/O组件1111和111N提供用户界面输出和/或经由不同的I/O组件1111和111N接受不同的用户界面输入(例如,I/O组件1111可以包括触摸屏,而I/O组件111N不包括触摸屏),用户仍然可以有效地参与自动化助理的同一逻辑实例。为了简洁和简单起见,如本文所使用的,术语“自动化助理”将指代在客户端设备110上执行的自动化助理客户端,并且可选地,指代(可以在多个自动化助理客户端之间共享的)一个或多个云自动化助理组件120。尽管在图1中示出了协作生态系统的两个客户端设备1101和110N,但应当理解到,生态系统中可以包括许多附加客户端设备。此外,应当理解到,还将提供客户端设备的单独的协调生态系统,其每个均与不同的用户(例如,账户)和/或环境相关联,并且这样的单独的协调生态系统还可以与云自动化助理组件120交互(但是以针对那些单独的生态系统的账户定制的交互)。
客户端设备1101-N可以包括例如下述中的一个或多个:台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户的车辆的计算设备(例如,车载通信系统、车载娱乐系统、车载导航系统)、独立的以助理为中心的交互式扬声器、带有扬声器的独立的以助理为中心的交互式显示器、诸如智能电视的智能电器,和/或包括计算设备的用户的可穿戴装置(例如,具有计算设备的用户的手表、具有计算设备的用户的眼镜、虚拟或增强现实计算设备)。可以提供附加的和/或替代的客户端计算设备。
如上所述,一个或多个客户端设备1101-N可以在处理输入和/或基于输入生成输出和/或基于输入生成智能设备控制命令中至少选择性地与云自动化助理组件120连接。云自动化助理组件120可以包括STT引擎121、NLU引擎122、TTS引擎123、缓存生成引擎125和/或云履行引擎127。
如上所述,对于在客户端设备1101-N处接收到的、不能由相应NLU引擎1131-N解析和/或在相应本地高速缓存1581-N中缺少匹配的缓存条目的请求,可以将对应于该请求的文本和/或音频数据发送到云自动化助理组件120。云自动化助理组件120可以利用其更鲁棒的NLU引擎122基于处理用于该请求的文本来生成语义表示。处理后的文本可以由客户端设备发送,或者可以是由STT引擎121利用由客户端设备发送的音频数据生成的识别文本。如本文所述,所生成的语义表示可以包括云语义表示和/或本地可解释语义表示。也如本文所述,在生成语义表示时,NLU引擎122可以利用用于客户端设备1101-N和智能设备145A-N的设备拓扑152。
缓存生成引擎125可以响应于来自客户端设备1101-N之一的发送来生成缓存请求,该缓存请求包括缓存条目,该缓存条目包括所生成的语义表示,并且可选地包括文本(或其表示)以及文本到语义表示的映射。所生成的缓存请求的缓存条目可以包括附加的和/或替代内容,诸如要渲染的响应内容、协议套件、适配器、和/或要与本地可解释语义表示一起利用的无线电、和/或其他内容。要渲染的响应内容可以包括文本、音频数据(例如,使用TTS引擎123生成的用于响应文本的合成语音)和/或图形。缓存生成引擎125将对应的缓存请求发送到相应客户端设备1101-N的相应缓存引擎1181-N,以使得将缓存条目存储在相应本地高速缓存1581-N中。
当所生成的语义表示包括云语义表示时,云履行引擎127可以处理云语义表示以生成对应的控制请求,然后将其发送至对应的智能设备系统140A-N。智能设备系统140A-N可以响应于控制请求,生成对应的控制命令并将其发送到对应的智能设备145A-N
当所生成的语义表示包括本地可解释语义表示时,相应客户端设备110A-N可以在生成对应的本地控制命令和本地发送这些本地控制命令(例如,使用各自的本地模块116A-N)中利用缓存请求的本地可解释语义解释。可替代地,云自动化助理组件120可以在单独的发送中提供本地可解释语义表示,并且相应客户端设备110A-N可以在生成对应的本地控制命令并且本地发送那些本地控制命令(例如,使用相应本地模块116A-N)中利用单独的发送的本地可解释语义解释。作为另一备选方案,云自动化助理组件120本身可以生成本地控制命令,并将本地控制命令发送到相应客户端设备110A-N,以本地发送那些控制命令。
如上所述,对于在客户端设备1101-N处接收到的、与相应本地高速缓存1581-N中包括云语义表示的缓存条目相匹配的请求,可以将云语义表示发送到云自动化助理组件120(例如,代替对应的文本和/或音频数据)。云履行引擎127可以处理所接收的云语义表示以生成对应的控制请求,然后将其发送到对应的智能设备系统140A-N。智能设备系统140A-N可以响应于该控制请求,生成对应的控制命令并将其发送到对应的智能设备145A-N
现在,参考附加的附图,提供图1的各个组件的附加描述。图2描绘了包括多个房间250、252、254、256、258、260和262的家庭平面布置图。在至少一些房间中部署了多个客户端设备1101-3。每个客户端设备1101-3可以可选地实现配置有本公开的所选方面的自动化助理客户端的实例,并且可以可选地包括一个或多个输入设备——诸如麦克风、触摸屏等,和/或一个或多个输出设备——诸如扬声器、显示器等。例如,采用交互式独立扬声器形式的第一客户端设备1101被部署在房间254中,房间254在该示例中为卧室。采用独立交互式扬声器和显示设备(例如,显示屏、投影仪等)形式的第二客户端设备1102被部署在房间252中,房间252在该示例中为客厅。同样采用交互式独立扬声器形式的第三客户端设备1103被部署在房间256中。
多个客户端设备1101-3可以经由房间252中描绘的无线路由器101和/或本地网状网络可通信地彼此和/或与其他资源(例如,智能设备和因特网)通信。另外,还可以存在其他客户端设备,特别是诸如智能手机、平板电脑、笔记本电脑、可穿戴设备等的移动设备,其例如由家中的一个或多个人(例如,用户103)携带,并且可以连接到同一局域网或可以不连接到同一局域网。应当理解到,图2中所描绘的客户端设备的配置仅是一个示例;可以跨多个其他房间和/或除家之外的区域部署更多或更少和/或不同的客户端设备。
在图2中进一步描绘了多个智能设备。智能设备包括可由第一远程智能设备系统140A控制的智能灯145A1。智能设备进一步包括可由第二远程智能设备系统140B控制的智能灯145B1和145B2。第二远程智能设备系统140B可以由与控制第一远程智能设备系统140A的一方分开的一方控制。智能设备进一步包括至少由第二客户端设备1102可本地控制的智能恒温器145C1。例如,智能恒温器145C1可以经由符合智能恒温器145C1的协议套件并且由第二客户端设备1102经由智能恒温器145C1与第二客户端设备1103之间的蓝牙连接提供的控制命令控制。应当理解到,图中描绘的智能设备145的配置仅是一个示例,可以跨多个其他房间和/或除家之外的区域部署更多或更少和/或不同的客户端设备。
现在,在描述图3A、3B、4A、4B、5A和5B的各个方面中将利用图2和图2的上述描述。
图3A示出了当第二助理客户端设备1102缺少与口头话语352的识别文本352A相匹配的缓存条目(其中,使用设备内置STT引擎生成识别文本352A)时,并且可选地,当第二助理客户端设备1102的本地NLU引擎不能有效地处理所识别的文本352A时,如何可以处理在图2的第二助理客户端设备1102处接收的口头话语“使灯亮一点”示例。在图3A中,第二助理客户端设备1102将所识别的文本352A发送到云自动化助理组件120。所识别的文本352A的发送可以是响应于第二助理客户端设备1102确定其缺少与口头话语352的所识别的文本352A相匹配的本地存储的缓存条目,并且可选地响应于第二助理客户端设备1102的本地NLU引擎无法有效地处理所识别的文本352A。
响应于接收到所识别的文本352A,云自动化助理组件120生成所识别的文本352A的云语义表示354。可以基于从第二助理客户端设备1102接收到的所识别的文本并且基于对远程存储的设备拓扑的引用来生成云语义表示354。在生成云语义表示时,云自动化助理组件120可以将所识别的文本352A中的“灯”解析为特定灯。例如,云自动化助理组件120可以利用与文本352A的发送一起接收到的账户标识符来标识用于该账户标识符的对应的远程存储的设备拓扑。此外,云自动化助理组件120可以利用与文本352A一起接收的第二助理客户端设备1102的标识符来在设备拓扑中标识第二助理客户端设备1102。更进一步,云自动化助理组件120可以基于那些灯在设备拓扑中被映射为用于第二助理客户端设备1102的默认灯来将文本352A中的“灯”解析为灯145B1和145B2。灯145B1和145B2可以基于先前的用户界面输入和/或基于在设备拓扑中它们均被分配给房间252的标识符,被默认映射为第二助理客户端设备1102
在生成云语义表示中,云自动化助理组件120还可以解析“使...亮一点”为是指“比当前亮度强度水平亮2/5(例如40%)”。这可以基于对可由云自动化助理组件120访问的一个或多个远程存储的模型和/或规则的引用。云语义表示354可以基于这些解析来生成并且可以是例如且如缓存请求356中所示的[设备=145B1和145B2;更亮,相对强度为2/5],其中“145B1和145B2”是对应的灯的唯一标识符,以及其中,“更亮,相对强度为2/5”指示将使灯相对于它们的当前强度增亮2/5的程度。
云自动化助理组件120利用所生成的云语义表示354来生成对应的控制请求。云自动化助理组件120将控制请求发送到对应于灯145B1和145B2的智能设备系统140B。作为响应,智能设备系统140B可以生成对应的控制命令,并且将那些控制命令提供给灯145B1和145B2,以使它们“变亮一点”(即,如由云语义表示所示,使相对亮度增加40%)。
此外,云自动化助理组件120生成包括云语义表示354,并且可选地包括所识别的文本352A和/或所识别的文本到云语义表示354的映射的缓存请求356并将其发送到客户端设备1102。响应于接收到缓存请求356,客户端设备1102存储包括所识别的文本352A到缓存请求356中包括的云语义表示354的映射的对应的缓存条目。
图3B示出了在图3A中将具有云语义表示354(图3A)的缓存条目存储在第二助理客户端设备1102处之后,如何不同地处理同样在第二助理客户端设备1102处接收到的、图3A的同一口头话语352的另一实例的示例。
在图3B中,第二助理客户端设备1102处理捕获口头话语352的音频数据,以生成所识别的文本。此外,第二助理客户端设备1102确定所识别的文本与图3A中的第二助理客户端设备1102的本地高速缓存中存储的缓存条目的文本匹配。作为响应,第二助理客户端设备1102将匹配缓存条目的云语义表示发送到云自动化助理组件120。然后,云自动化助理组件120可以直接处理云语义表示354,以生成对应的控制请求并且将该控制请求发送到智能设备系统140B。作为响应,智能设备系统140B可以生成对应的控制命令,并且将那些控制命令提供给灯145B1和145B2,以使它们“变亮一点”。以这些和其他方式,可以通过防止再次出现生成云语义表示来节省云自动化助理组件处的资源。此外,可以更快地生成并发送控制请求,从而减少了实现对灯145B1和145B2的对应的改变的等待时间。注意,图3B的控制请求(以及作为结果,控制命令)可以不同于图3A的控制请求,尽管是基于相同的语义表示生成的。这可以基于:云语义表示的云状态改变是相对状态改变,以及在生成控制请求时灯145B1和145B2的“当前”状态可能在图3A和图3B之间改变。
图4A示出了当第一助理客户端设备1102缺少与口头话语的文本相匹配的缓存条目时可以如何处理在图2的第一助理客户端设备1102处接收的图3A和3B的同一口头话语(“使灯变亮一点”)的示例。在图4A中,用户103提供口头话语452“使灯变亮一点”。尽管口头话语452是与图3A和3B的口头话语352相同的口头话语,为编号一致性,可以被标记为图4A和4B中的452。
在图4A中,第一助理客户端设备1101将通过使用本地STT引擎处理捕获口头话语452的音频数据生成的所识别的文本452A发送到云自动化助理组件120。所识别的文本452A的发送可以响应于第一助理客户端设备1101确定其缺少与口头话语452的所识别的文本452A相匹配的本地存储的缓存条目,并且可选地,响应于第一助理客户端设备1101的本地NLU引擎未能有效地处理所识别的文本452A。
响应于接收到所识别的文本452A,云自动化助理组件120生成所识别的文本452A的云语义表示454。云语义表示454可以是例如并且如缓存请求456所示,[设备=145A1;更亮,相对强度为2/5],其中,“145A1”是对应的灯的唯一标识符,以及其中,“更亮,相对强度为2/5”表示灯要变亮到相对于它们的当前强度的2/5的程度。云语义表示454不同于图3A的云语义表示354在于它包括灯145A1的标识符,代替灯145B1和145B2的标识符。这可以基于云自动化助理组件120利用与文本452A一起接收的第一助理客户端设备1101的标识符来标识第一助理客户端设备1101,并且基于在设备拓扑中将该灯映射为用于第一助理客户端设备1101的默认灯来将文本452A中的“灯”解析为灯145A1。因此,尽管在图3A和4A中接收到相同的口头话语,但是可以至少部分地基于从不同的助理客户端设备接收到的口头话语来生成不同的云语义表示。
云自动化助理组件120利用所生成的云语义表示454来生成对应的控制请求。云自动化助理组件120将控制请求发送到对应于语义表示454的灯145A1的智能设备系统140A。作为响应,智能设备系统140A可以生成对应的控制命令,并且将那些控制命令提供给灯145A1以使其“变亮一点”。
此外,云自动化助理组件120生成包括云语义表示454,并且可选地包括所识别的文本452A和/或所识别的文本到云语义表示454的映射的缓存请求456并将其发送到第一客户端设备1101。响应于接收到缓存请求456,第一客户端设备1101存储对应的缓存条目,该缓存条目包括所识别的文本452A到包括在缓存请求456中的云语义表示454的映射。
图4B示出了,在图4A中具有云语义表示454(图4A)的缓存条目被存储在第一助理客户端设备1101之后,如何不同地处理在第一助理客户端设备1101处接收的图4A的相同口头话语452的另一实例的示例。
在图4B中,第一助理客户端设备1101处理捕获口头话语452的音频数据,以生成所识别的文本。此外,第一助理客户端设备1101确定所识别的文本与图4A中的第一助理客户端设备1101的本地高速缓存中存储的缓存条目的文本匹配。作为响应,第一助理客户端设备1101将匹配缓存条目的云语义表示454发送到云自动化助理组件120。然后,云自动化助理组件120可以直接处理云语义表示454,以生成对应的控制请求并且将该控制请求发送到智能设备系统140A。作为响应,智能设备系统140A可以生成对应的控制命令,并且将那些控制命令提供给灯145A1,以使它“变亮一点”。
图5A示出了当第二助理客户端设备1102缺少与(使用设备内置STT引擎生成的)口头话语552的所识别的文本552A相匹配的缓存条目时——以及可选地,当第二助理客户端设备1102的本地NLU引擎不能有效地处理所识别的文本452A时,如何处理在图2的第二助理客户端设备1102处接收的另一种口头话语552“使温度降低一点(decrease temp a bit)”的示例。
在图5A中,第二助理客户端设备1102将所识别的文本552A发送到云自动化助理组件120。所识别的文本552A的发送可以响应于第二助理客户端设备1102确定其缺少与口头话语552的所识别的文本552A相匹配的本地存储的缓存条目,并且可选地响应于第二助理客户端设备1102的本地NLU引擎不能有效地处理所识别的文本552A。
响应于接收到所识别的文本552A,云自动化助理组件120生成所识别的文本552A的本地可解释语义表示554。在一些实施方式中,响应于确定由所识别的文本552A推理性地引用了智能设备(恒温器145C1)可由第二助理客户端设备1102和/或与第二助理客户端设备1102网络通信的另一客户端设备本地控制时,云自动化助理组件120生成本地可解释语义表示554(例如,代替或除了基于云的语义表示)。
可以基于对远程存储的设备拓扑的引用来生成本地可解释语义表示554,以确定“降温(decrease temperature)”请求是针对恒温器145C1的请求(例如,它可能是设备拓扑中具有“降温”作为支持的状态改变的唯一智能设备)。因此,文本552A可以被解析为推理地将恒温器145C1引用为目标智能设备。在生成云语义表示时,云自动化助理组件120还可以将“降低……一点”解析为是指“比当前设定值小2度”。这可以基于对云自动化助理组件120可访问的一个或多个远程存储的模型和/或规则的引用。本地可解释语义表示554可以基于这些解析生成,并且可以进一步生成以使客户端设备能够包括相对状态改变表示,该相对状态改变表示指示如何将目标设定值本地解析为“比当前设定值小2度”。例如,相对状态改变表示可以是“温度设定=(当前温度–2度)”。
本地可解释语义表示556可以可选地另外包括:在生成对应的本地控制命令时将使用的适配器的指示(例如,特定于智能设备的制造商的适配器);将被用来发送本地控制命令的信道(例如,蓝牙或Wi-Fi)的指示;和/或将被用在基于本地可解释语义表示556来生成控制命令的协议套件的指示。例如,并且如缓存请求556中所示,本地可解释语义表示可以是[设备=145C1;温度设定=(当前温度–2度);适配器/信道=C],其中,“145C1”是恒温器145C1的唯一标识符(例如,恒温器145C1的本地地址),其中,“温度设定=(当前温度–2度)”是本地可解释以解析当前状态改变的当前状态相关的状态改变表示;以及其中,“适配器/信道=C”指示(例如,在确定当前状态改变之后)将在生成本地控制命令时利用的适配器和/或协议套件和/或将被利用来发送本地控制命令的信道。
云自动化助理组件120生成包括云语义表示554并且可选地包括所识别的文本552A和/或所识别的文本到云语义表示554的映射的缓存请求556并将其发送到第二客户端设备1102。响应于接收到缓存请求556,第二客户端设备1102存储对应的缓存条目,该缓存条目包括所识别的文本552A到包括在缓存请求556中的云语义表示554的映射。
在一些实施方式中,并且如第二客户端设备1102和恒温器145C1之间的虚线所示,第二客户端设备1102可以利用缓存请求的本地可解释语义表示(或来自云自动化助理组件120的单独发送),以对恒温器145C1本地生成本地控制命令,并且响应于图5A的口头话语,将它们本地发送到恒温器145C1
在一些替代实施方式中,云自动化助理组件120基于所识别的文本552A生成对应的云语义表示。此外,云自动化助理组件120可以利用单独的云语义表示来生成对应的控制请求。云自动化助理组件120将控制请求发送到与恒温器145C1相对应的智能设备系统140C。作为响应,智能设备系统140C可以生成对应的控制命令,并且将那些控制命令提供给恒温器145C1,以使其设定值“降低一点”(即,降低2度,如由云语义表示所示)。
图5B示出了在图5A中将具有本地可解释语义表示554(图5A)的缓存条目存储在第二助理客户端设备1102之后,如何不同地处理在第二助理客户端设备1102处接收的图5A的相同口头话语552的另一实例的示例。
在图5B中,第二助理客户端设备1102处理捕获口头话语552的音频数据以生成所识别的文本。此外,第二助理客户端设备1102确定所识别的文本与图4A中的第二助理客户端设备1102的本地高速缓存中存储的缓存条目的文本匹配。作为响应,第二助理客户端设备1102识别缓存条目的本地可解释语义表示554,并且使用本地可解释语义表示554来生成对应的控制命令。应注意到,图5B的所生成的控制命令不同于图5B的控制命令,因为本地可解释语义表示554的状态表示是当前状态相关的状态表示,并且恒温器145C1的“当前”温度设定值可以在图5A与图5B之间变化。例如,在图5B中,第二助理客户端设备1102可以通过从当前设定值减去2度来解析目标设定值,如由本地可解释语义表示554的相对状态改变所指示的。然后,第二助理客户端设备1102可以利用对应的适配器来处理目标设定值,以生成控制命令,并且将控制命令发送到恒温器145C1的地址,该地址可选地包括在本地可解释语义表示554中。响应于接收到控制命令,恒温器145C1可以使其设定值降低2度。
图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中图示的计算设备更多或者更少的组件。
在本文所讨论的某些实施方式可以收集或者使用关于用户的个人信息(例如,从其他电子通信提取到的用户数据、关于用户的社交网络的信息、用户的位置、用户的时间、用户的生物特征信息,以及用户的活动和人口统计信息、用户之间的关系等)的情况下,为用户提供控制是否收集信息、是否存储个人信息、是否使用个人信息、以及如何收集、存储和使用关于用户的信息的一个或多个机会。即,本文所讨论的系统和方法仅在从相关用户接收到可以这样做的明确授权时才收集、存储和/或使用用户个人信息。
在一些实施方式中,提供一种方法,包括在远程助理系统处以及从助理客户端设备接收在助理客户端设备处捕获的口头话语的表示。口头话语是与链接到助理客户端设备的一个或多个智能设备的一个或多个状态有关的请求。作为一个示例,该请求可以是变更智能设备的状态的请求(即,使状态从当前状态值转变为新的状态值)。口头话语的表示包括捕获口头话语的音频数据和/或利用在客户端设备本地存储的语音到文本模型,在客户端设备生成的口头话语的文本。该方法进一步包括在远程系统处并且响应于接收到口头话语的表示:基于口头话语的表示,生成口头话语的语义表示;基于口头话语的语义表示,生成至少一个控制请求,以发送到控制一个或多个智能设备的至少一个智能设备远程系统,其中,至少一个控制请求不同于语义表示;向至少一个智能设备远程系统发送至少一个控制请求,以使至少一个智能设备远程系统向一个或多个智能设备提供一个或多个对应的命令;以及向助理客户端设备发送包括语义表示的缓存请求。向助理客户端设备发送缓存请求使得助理客户端设备在助理客户端设备的高速缓存中存储包括文本到语义表示的映射的缓存条目。
该技术的这些和其他实施方式可以可选地包括一个或多个下述特征。
在一些实施方式中,该方法进一步包括在向助理客户端设备发送缓存请求之后:在助理客户端设备处捕获附加音频数据,附加音频数据捕获附加口头话语;使用本地存储在助理客户端设备上的语音到文本模型,处理附加音频数据以生成对应于附加口头话语的当前文本;确定当前文本与缓存条目的文本匹配;以及响应于确定当前文本与缓存条目的文本匹配,并且响应于缓存条目包括文本到语义表示的映射:将语义表示发送到远程助理系统。在那些实施方式的一些中,当未在助理客户端设备处检测到显式自动化助理调用的情况下执行处理附加音频数据以生成当前文本。在那些实施方式的一些版本中,将语义表示发送到远程助理系统进一步响应于:确定当前文本满足用于在助理客户端设备处没有显式自动化助理调用的情况下使得匹配文本能够进行操作的一个或多个标准。在一些附加或可替代版本中,该方法进一步包括:在远程助理系统处接收从助理客户端设备发送的语义表示;基于语义表示,生成至少一个替代控制请求以发送到控制一个或多个智能设备的至少一个智能设备远程系统,其中,至少一个替代控制请求不同于至少一个控制请求;以及向至少一个智能设备远程系统发送至少一个替代控制请求,以使至少一个智能设备远程系统变更一个或多个智能设备的一个或多个状态。可选地,在那些可替代或附加实施方式中:生成至少一个控制请求进一步基于在生成至少一个控制请求时一个或多个智能设备的至少一个当前状态;生成至少一个替代控制请求进一步基于在生成至少一个替代控制请求的不同时间时一个或多个智能设备的至少一个替代当前状态;基于至少一个当前状态不同于至少一个替代当前状态,至少一个替代控制请求不同于至少一个控制请求。
在一些实施方式中,生成口头话语的语义表示进一步基于用于助理客户端设备的账户的设备拓扑,其中,设备拓扑限定助理客户端设备、一个或多个智能设备、附加助理客户端设备和附加智能设备。在那些实施方式的一些中,进一步基于设备拓扑来生成口头话语的语义表示包括:基于设备拓扑,将口头话语的文本中的模糊术语解析为引用一个或多个智能设备。
在一些实施方式中,语义表示包括:一个或多个状态改变的状态改变表示;以及对一个或多个智能设备中的每一个的对应的唯一标识符。在那些实施方式的一些版本中,状态改变表示是以相对方式而非绝对方式定义一个或多个状态改变的相对状态改变表示。在那些实施方式的一些附加或可替代版本中,该方法进一步包括:在远程助理系统或助理客户端设备处确定设备拓扑的变更;以及响应于确定设备拓扑的变更:使得从助理设备的高速缓存中清除缓存条目。确定设备拓扑的变更可以可选地包括:确定变更是针对助理客户端设备、一个或多个智能设备和/或分配给助理客户端设备和/或一个或多个智能设备的一个或多个房间的,在设备拓扑中定义的一个或多个属性;以及可选地,使得从高速缓存清除缓存条目进一步响应于确定缓存条目受一个或多个属性影响。
在一些实施方式中,该方法进一步包括在远程助理系统处以及从附加助理客户端设备接收口头话语的附加表示。在附加助理客户端设备处捕获口头话语,并且附加助理客户端设备和助理客户端设备两者都是同一设备拓扑的成员。在那些实施方式的一些中,该方法进一步包括在远程系统处并且响应于接收到口头话语的附加表示:基于口头话语的表示,生成口头话语的替代语义表示,其中,基于在附加助理客户端设备处捕获的附加表示和在助理客户端设备处捕获的表示,口头话语的替代语义表示不同于语义表示;以及向附加助理客户端设备发送包括替代语义表示的附加缓存请求。向附加助理客户端设备发送附加缓存请求使得附加助理客户端设备在附加助理客户端设备上的附加高速缓存中存储附加缓存条目,附加缓存条目包括文本到替代语义表示的映射。
在一些实施方式中,提供一种方法,包括:在远程助理系统处以及从助理客户端设备接收在助理客户端设备处捕获的口头话语的表示。口头话语是变更与助理客户端设备链接的给定智能设备的至少给定状态的请求。口头话语的表示包括捕获口头话语的音频数据和/或利用在客户端设备本地存储的语音到文本模型,在客户端设备处生成的口头话语的文本。该方法进一步包括在远程系统并且响应于接收到口头话语的表示:确定给定智能设备可由助理客户端设备和/或由具有与助理客户端设备的本地连接的附加客户端设备本地控制;生成口头话语的语义表示,语义表示包括本地可解释语义表示,以及向助理客户端设备发送包括语义表示的缓存请求。本地可解释语义表示可由助理客户端设备和/或附加客户端设备本地解释,以生成对应的控制命令,控制命令可在本地信道上发送以使得变更给定智能设备的至少给定状态。为至少一个智能设备生成本地可解释语义表示包括响应于确定给定智能设备可本地控制,将本地可解释语义表示包括在语义表示中。向助理客户端设备发送缓存请求使得助理客户端设备在助理客户端设备的高速缓存中存储包括文本到语义表示的映射的缓存条目。
该技术的这些和附加实施方式可以可选地包括一个或多个下述特征。
在一些实施方式中,该方法进一步包括在向助理客户端设备发送缓存请求之后:在助理客户端设备处捕获附加音频数据,附加音频数据捕获附加口头话语;使用本地存储在助理客户端设备上的语音到文本模型,处理附加音频数据以生成对应于附加口头话语的当前文本;确定当前文本与缓存条目的文本匹配;以及响应于确定当前文本与缓存条目的文本匹配,并且响应于缓存条目包括文本到语义表示的映射:在助理客户端设备处,处理本地可解释语义表示以生成给定控制命令;以及经由本地信道,发送给定控制命令以使得变更给定智能设备的至少给定状态。在那些实施方式的一些版本中,本地可解释语义表示包括:给定智能设备的标识符;以及当前状态相关状态改变表示,当前状态相关状态改变表示定义相对于给定智能设备的给定状态的对应的当前值,变更给定智能设备的至少给定状态。在那些版本的一些中,处理本地可解释语义表示以生成给定控制命令包括:在助理客户端设备处确定给定智能设备的给定状态的当前值;基于将当前值应用于当前状态相关状态改变表示,生成给定控制命令。可选地,本地可解释语义表示进一步包括智能设备的制造商的指示,以及生成给定控制命令可选地包括响应于分配给智能设备的制造商的指示的适配器,利用在助理客户端设备上本地存储的适配器。可选地,该方法进一步包括基于在本地可解释语义表示中直接或间接指示的本地信道,选择本地信道以发送给定控制命令。例如,基于分配给被包括在本地可解释语义指示中的智能设备的制造商的指示的和/或分配给被包括在本地可解释语义表示中的协议套件中的本地信道。
在一些实施方式中,在未在助理客户端设备处检测到显式自动化助理调用的情况下,执行处理附加音频数据以生成当前文本。在那些实施方式的一些中,发送给定控制命令进一步响应于确定当前文本满足用于在助理客户端设备处没有显式自动化助理调用的情况下使得匹配文本能够进行操作的一个或多个标准。
在一些实施方式中,生成口头话语的语义表示进一步基于用于助理客户端设备的账户的设备拓扑。设备拓扑限定助理客户端设备、给定智能设备、附加助理客户端设备和附加智能设备。在那些实施方式的一些中,生成口头话语的语义表示包括:将口头话语的文本中的模糊术语解析为引用给定智能设备。
在一些实施方式中,该方法进一步包括:在远程助理系统或助理客户端设备处确定设备拓扑的变更;以及响应于确定设备拓扑的变更:使得从助理客户端设备的高速缓存中清除缓存条目。在那些实施方式的一些中,确定设备拓扑的变更包括:确定变更是针对助理客户端设备、给定智能设备和/或分配给助理客户端设备和/或给定智能设备的一个或多个房间,在设备拓扑中定义的一个或多个属性;以及使得从高速缓存清除缓存条目进一步响应于确定缓存条目受一个或多个属性影响。
在一些实施方式中,提供一种方法,包括在客户端设备上的高速缓存中存储缓存条目,该缓存条目包括文本到语义表示的映射。语义表示包括可由客户端设备本地解释的本地可解释语义表示。该方法进一步包括在客户端设备处捕获附加音频数据,该附加音频数据捕获口头话语。该方法进一步包括使用本地存储在客户端设备上的语音到文本模型,处理附加音频数据以生成对应于口头话语的当前文本。该方法进一步包括确定当前文本与缓存条目的文本匹配。该方法进一步包括响应于确定当前文本与缓存条目的文本匹配,并且响应于缓存条目包括文本到语义表示的映射:在客户端设备处,处理本地可解释语义表示以生成给定控制命令;以及经由本地信道发送给定控制命令以使得变更给定智能设备的至少给定状态。

Claims (37)

1.一种方法,包括:
在远程助理系统处以及从助理客户端设备接收在所述助理客户端设备处捕获的口头话语的表示,
其中,所述口头话语是与链接到所述助理客户端设备的一个或多个智能设备的一个或多个状态有关的请求,以及
其中,所述口头话语的表示包括捕获所述口头话语的音频数据和/或利用在所述客户端设备本地存储的语音到文本模型在所述客户端设备生成的口头话语的文本;
在所述远程系统处并且响应于接收到所述口头话语的表示:
基于所述口头话语的表示,生成所述口头话语的语义表示;
基于所述口头话语的语义表示,生成至少一个控制请求,以发送到控制所述一个或多个智能设备的至少一个智能设备远程系统,其中,所述至少一个控制请求不同于所述语义表示;
向所述至少一个智能设备远程系统发送所述至少一个控制请求,以使所述至少一个智能设备远程系统向所述一个或多个智能设备提供一个或多个对应的命令;以及
向所述助理客户端设备发送包括所述语义表示的缓存请求,其中,向所述助理客户端设备发送所述缓存请求使得所述助理客户端设备在所述助理客户端设备的高速缓存中存储包括所述文本到所述语义表示的映射的缓存条目。
2.如权利要求1所述的方法,进一步包括:在向所述助理客户端设备发送所述缓存请求之后:
在所述助理客户端设备处捕获附加音频数据,所述附加音频数据捕获附加口头话语;
使用本地存储在所述助理客户端设备上的所述语音到文本模型,处理所述附加音频数据以生成对应于所述附加口头话语的当前文本;
确定所述当前文本与所述缓存条目的文本匹配;以及
响应于确定所述当前文本与所述缓存条目的文本匹配,并且响应于所述缓存条目包括所述文本到所述语义表示的映射:
将所述语义表示发送到所述远程助理系统。
3.如权利要求2所述的方法,其中,在未在所述助理客户端设备处检测到显式自动化助理调用的情况下执行处理所述附加音频数据以生成所述当前文本。
4.如权利要求3所述的方法,其中,将所述语义表示发送到所述远程助理系统进一步响应于:确定所述当前文本满足用于在所述助理客户端设备处没有显式自动化助理调用的情况下使得匹配文本能够进行操作的一个或多个标准。
5.如权利要求2-4中的任一项所述的方法,进一步包括:
在所述远程助理系统处接收从所述助理客户端设备发送的所述语义表示;
基于所述语义表示,生成至少一个替代控制请求以发送到控制所述一个或多个智能设备的所述至少一个智能设备远程系统,其中,所述至少一个替代控制请求不同于所述至少一个控制请求;以及
向所述至少一个智能设备远程系统发送所述至少一个替代控制请求,以使所述至少一个智能设备远程系统变更所述一个或多个智能设备的一个或多个状态。
6.如权利要求5所述的方法,
其中,生成所述至少一个控制请求进一步基于在生成所述至少一个控制请求时所述一个或多个智能设备的至少一个当前状态;
其中,生成所述至少一个替代控制请求进一步基于在生成所述至少一个替代控制请求的不同时间时所述一个或多个智能设备的至少一个替代当前状态;以及
其中,基于所述至少一个当前状态不同于所述至少一个替代当前状态,所述至少一个替代控制请求不同于所述至少一个控制请求。
7.如前述权利要求中的任一项所述的方法,其中,生成所述口头话语的语义表示进一步基于用于所述助理客户端设备的账户的设备拓扑,其中,所述设备拓扑限定所述助理客户端设备、所述一个或多个智能设备、附加助理客户端设备和附加智能设备。
8.如权利要求7所述的方法,其中,进一步基于所述设备拓扑来生成所述口头话语的语义表示包括:
基于所述设备拓扑,将所述口头话语的文本中的模糊术语解析为引用所述一个或多个智能设备。
9.如前述权利要求中的任一项所述的方法,其中,所述语义表示包括:
所述一个或多个状态改变的状态改变表示;以及
对所述一个或多个智能设备中的每一个的对应的唯一标识符。
10.如权利要求9所述的方法,其中,所述状态改变表示是以相对方式而非绝对方式定义所述一个或多个状态改变的相对状态改变表示。
11.如权利要求7-10中的任一项所述的方法,进一步包括:
在所述远程助理系统或所述助理客户端设备处确定所述设备拓扑的变更;以及
响应于确定所述设备拓扑的变更:
使得从所述助理设备的高速缓存中清除所述缓存条目。
12.如权利要求11所述的方法,其中,确定所述设备拓扑的变更包括:
确定所述变更是针对所述助理客户端设备、所述一个或多个智能设备和/或分配给所述助理客户端设备和/或所述一个或多个智能设备的一个或多个房间的,在所述设备拓扑中定义的一个或多个属性;以及
其中,使得从所述高速缓存清除所述缓存条目进一步响应于确定所述缓存条目受所述一个或多个属性影响。
13.如前述权利要求中的任一项所述的方法,进一步包括:
在所述远程助理系统处以及从附加助理客户端设备接收所述口头话语的附加表示,其中,所述口头话语是在所述附加助理客户端设备处捕获的,并且其中,所述附加助理客户端设备和所述助理客户端设备两者都是同一设备拓扑的成员;
在所述远程系统处并且响应于接收到所述口头话语的附加表示:
基于所述口头话语的表示,生成所述口头话语的替代语义表示,其中,基于在所述附加助理客户端设备处捕获的附加表示和在所述助理客户端设备处捕获的表示,所述口头话语的替代语义表示不同于所述语义表示;以及
向所述附加助理客户端设备发送包括所述替代语义表示的附加缓存请求,其中,向所述附加助理客户端设备发送所述附加缓存请求使得所述附加助理客户端设备在所述附加助理客户端设备上的附加高速缓存中存储附加缓存条目,所述附加缓存条目包括文本到所述替代语义表示的映射。
14.一种方法,包括:
在远程助理系统处以及从助理客户端设备接收在所述助理客户端设备处捕获的口头话语的表示,
其中,所述口头话语是变更与所述助理客户端设备链接的给定智能设备的至少给定状态的请求,以及
其中,所述口头话语的表示包括捕获所述口头话语的音频数据和/或利用在所述客户端设备本地存储的语音到文本模型在所述客户端设备处生成的口头话语的文本;
在所述远程系统并且响应于接收到所述口头话语的表示:
确定所述给定智能设备能够由所述助理客户端设备和/或由具有与所述助理客户端设备的本地连接的附加客户端设备本地控制;
生成所述口头话语的语义表示,所述语义表示包括本地可解释语义表示,
其中,所述本地可解释语义表示能够由所述助理客户端设备和/或所述附加客户端设备本地解释,以生成对应的控制命令,所述控制命令能够在本地信道上发送以使得变更所述给定智能设备的至少给定状态;
其中,为所述至少一个智能设备生成本地可解释语义表示包括响应于确定所述给定智能设备能够本地控制,将所述本地可解释语义表示包括在所述语义表示中;以及
向所述助理客户端设备发送包括所述语义表示的缓存请求,其中,向所述助理客户端设备发送所述缓存请求使得所述助理客户端设备在所述助理客户端设备的高速缓存中存储包括所述文本到所述语义表示的映射的缓存条目。
15.如权利要求14所述的方法,进一步包括在向所述助理客户端设备发送所述缓存请求之后:
在所述助理客户端设备处捕获附加音频数据,所述附加音频数据捕获附加口头话语;
使用本地存储在所述助理客户端设备上的语音到文本模型,处理所述附加音频数据以生成对应于所述附加口头话语的当前文本;
确定所述当前文本与所述缓存条目的文本匹配;以及
响应于确定所述当前文本与所述缓存条目的文本匹配,并且响应于所述缓存条目包括所述文本到所述语义表示的映射:
在所述助理客户端设备处,处理所述本地可解释语义表示以生成给定控制命令;以及
经由本地信道,发送所述给定控制命令以使得变更所述给定智能设备的至少给定状态。
16.如权利要求15所述的方法,其中,所述本地可解释语义表示包括:
所述给定智能设备的标识符;以及
当前状态相关状态改变表示,所述当前状态相关状态改变表示定义相对于所述给定智能设备的给定状态的对应的当前值变更所述给定智能设备的至少给定状态。
17.如权利要求16所述的方法,其中,处理所述本地可解释语义表示以生成所述给定控制命令包括:
在所述助理客户端设备处确定所述给定智能设备的给定状态的当前值;
基于将所述当前值应用于所述当前状态相关状态改变表示,生成所述给定控制命令。
18.如权利要求17所述的方法,其中,所述本地可解释语义表示进一步包括所述智能设备的制造商的指示。
19.如权利要求18所述的方法,其中,生成所述给定控制命令包括:响应于在所述助理客户端设备处本地存储的适配器被分配给所述智能设备的制造商的指示,利用所述适配器。
20.如权利要求18或19所述的方法,进一步包括:
基于分配给所述智能设备的制造商的指示的本地信道,选择所述本地信道以发送所述给定控制命令。
21.如权利要求15至20中的任一项所述的方法,其中,在未在所述助理客户端设备处检测到显式自动化助理调用的情况下,执行处理所述附加音频数据以生成所述当前文本。
22.如权利要求21所述的方法,其中,发送所述给定控制命令进一步响应于:确定所述当前文本满足用于在所述助理客户端设备处没有显式自动化助理调用的情况下使得匹配文本能够进行操作的一个或多个标准。
23.如权利要求14-22中的任一项所述的方法,其中,生成所述口头话语的语义表示进一步基于用于所述助理客户端设备的账户的设备拓扑,其中,所述设备拓扑限定所述助理客户端设备、所述给定智能设备、附加助理客户端设备和附加智能设备。
24.如权利要求23所述的方法,其中,生成所述口头话语的语义表示包括:
将所述口头话语的文本中的模糊术语解析为引用所述给定智能设备。
25.如权利要求14-24中的任一项所述的方法,进一步包括:
在所述远程助理系统或所述助理客户端设备处确定所述设备拓扑的变更;以及
响应于确定所述设备拓扑的变更:
使得从所述助理客户端设备的高速缓存中清除所述缓存条目。
26.如权利要求25所述的方法,其中,确定所述设备拓扑的变更包括:
确定所述变更是针对所述助理客户端设备、所述给定智能设备和/或分配给所述助理客户端设备和/或所述给定智能设备的一个或多个房间在所述设备拓扑中定义的一个或多个属性;以及
其中,使得从所述高速缓存清除所述缓存条目进一步响应于确定所述缓存条目受所述一个或多个属性影响。
27.如权利要求14-26中的任一项所述的方法,进一步包括:
在所述远程助理系统处从附加助理客户端设备接收所述口头话语的附加表示,其中,所述口头话语是在所述附加助理客户端设备处捕获的,并且其中,所述附加助理客户端设备和所述助理客户端设备都是同一设备拓扑的成员;
在所述远程系统并且响应于接收到所述口头话语的附加表示:
基于所述口头话语的表示,生成所述口头话语的替代语义表示,其中,基于在所述附加助理客户端设备处捕获的附加表示和在所述助理客户端设备处捕获的表示,所述口头话语的替代语义表示不同于所述语义表示;以及
向所述附加助理客户端设备发送包括所述替代语义表示的附加缓存请求,其中,向所述附加助理客户端设备发送所述附加缓存请求使得所述附加助理客户端设备在所述附加助理客户端设备上的附加高速缓存中存储附加缓存条目,所述附加缓存条目包括文本到替代语义表示的映射。
28.一种由客户端设备的一个或多个处理器实现的方法,所述方法包括:
在所述客户端设备上的高速缓存中存储缓存条目,所述缓存条目包括文本到语义表示的映射,其中,所述语义表示包括能够由所述客户端设备本地解释的本地可解释语义表示;
在所述客户端设备处捕获附加音频数据,所述附加音频数据捕获口头话语;
使用本地存储在所述客户端设备上的语音到文本模型,处理所述附加音频数据以生成对应于所述口头话语的当前文本;
确定所述当前文本与所述缓存条目的文本匹配;以及
响应于确定所述当前文本与所述缓存条目的文本匹配,并且响应于所述缓存条目包括所述文本到语义表示的映射:
在所述客户端设备处,处理所述本地可解释语义表示以生成给定控制命令;以及
经由本地信道发送所述给定控制命令以使得变更所述给定智能设备的至少给定状态。
29.如权利要求28所述的方法,其中,所述本地可解释语义表示包括:
所述给定智能设备的标识符;以及
当前状态相关状态改变表示,所述当前状态相关状态改变表示定义相对于所述给定智能设备的给定状态的对应的当前值变更所述给定智能设备的至少给定状态。
30.如权利要求29所述的方法,其中,处理所述本地可解释语义表示以生成所述给定控制命令包括:
在所述客户端设备处确定所述给定智能设备的给定状态的当前值;
基于将所述当前值应用于所述当前状态相关状态改变表示,生成所述给定控制命令。
31.如权利要求30所述的方法,其中,所述本地可解释语义表示进一步包括所述智能设备的制造商的指示。
32.如权利要求31所述的方法,其中,生成所述给定控制命令包括:响应于在所述助理客户端设备处本地存储的适配器被分配给所述智能设备的制造商的指示的适配器,利用所述适配器。
33.如权利要求31或32所述的方法,进一步包括:
基于本地信道被分配给所述智能设备的制造商的指示,选择所述本地信道以发送所述给定控制命令。
34.如权利要求28-33中的任一项所述的方法,其中,在未在所述客户端设备处检测到显式自动化助理调用的情况下执行处理所述音频数据以生成所述当前文本。
35.如权利要求34所述的方法,其中,发送所述给定控制命令进一步响应于:确定所述当前文本满足用于在所述助理客户端设备处没有显式自动化助理调用的情况下使得匹配文本能够进行操作的一个或多个标准。
36.至少一个计算装置,所述至少一个计算装置包括一个或多个处理器和存储计算机可执行指令的至少一个存储器,所述计算机可执行指令在由所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-35中的任一项所述的方法。
37.一种包括计算机可执行指令的计算机程序,所述计算机可执行指令在由至少一个计算装置的一个或多个处理器执行时,使得执行如权利要求1-35中的任一项所述的方法。
CN201980022670.4A 2019-10-15 2019-12-11 智能设备的高效和低延迟自动化助理控制 Pending CN113068410A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962915158P 2019-10-15 2019-10-15
US62/915,158 2019-10-15
PCT/US2019/065808 WO2021076165A1 (en) 2019-10-15 2019-12-11 Efficient and low latency automated assistant control of smart devices

Publications (1)

Publication Number Publication Date
CN113068410A true CN113068410A (zh) 2021-07-02

Family

ID=69138025

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980022670.4A Pending CN113068410A (zh) 2019-10-15 2019-12-11 智能设备的高效和低延迟自动化助理控制

Country Status (6)

Country Link
US (3) US11176928B2 (zh)
EP (2) EP4202920A1 (zh)
JP (2) JP7114722B2 (zh)
KR (3) KR102581347B1 (zh)
CN (1) CN113068410A (zh)
WO (1) WO2021076165A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7114722B2 (ja) * 2019-10-15 2022-08-08 グーグル エルエルシー スマートデバイスの、効率的で低レイテンシである自動アシスタント制御
US12026196B2 (en) * 2020-04-03 2024-07-02 Comcast Cable Communications, Llc Error detection and correction for audio cache
US11663415B2 (en) * 2020-08-31 2023-05-30 Walgreen Co. Systems and methods for voice assisted healthcare
US11886482B2 (en) * 2021-03-12 2024-01-30 Google Llc Methods and systems for providing a secure automated assistant
US11842738B1 (en) * 2021-03-22 2023-12-12 Amazon Technologies, Inc. Computing services using embeddings of a transformer-based encoder
US11567935B2 (en) * 2021-03-30 2023-01-31 Google Llc Conditional response fulfillment cache for locally responding to automated assistant inputs
US11880645B2 (en) 2022-06-15 2024-01-23 T-Mobile Usa, Inc. Generating encoded text based on spoken utterances using machine learning systems and methods
US20240046925A1 (en) * 2022-08-08 2024-02-08 Google Llc Dynamically determining whether to perform candidate automated assistant action determined from spoken utterance
CN117672226A (zh) * 2022-09-07 2024-03-08 哈曼国际工业有限公司 本地化语音辨识助理

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1545696A (zh) * 2001-06-19 2004-11-10 英特尔公司 在语音识别中采用预取指令的方法
CN102629246A (zh) * 2012-02-10 2012-08-08 北京百纳信息技术有限公司 识别浏览器语音命令的服务器及浏览器语音命令识别方法
US20140122059A1 (en) * 2012-10-31 2014-05-01 Tivo Inc. Method and system for voice based media search
US20170357478A1 (en) * 2016-06-11 2017-12-14 Apple Inc. Intelligent device arbitration and control
US20180096683A1 (en) * 2016-10-03 2018-04-05 Google Inc. Processing Voice Commands Based on Device Topology
US20190019517A1 (en) * 2017-07-13 2019-01-17 Comcast Cable Communications, Llc Caching Scheme For Voice Recognition Engines
US20190206388A1 (en) * 2018-01-04 2019-07-04 Google Llc Learning offline voice commands based on usage of online voice commands
CN110018735A (zh) * 2017-12-21 2019-07-16 哈曼国际工业有限公司 智能个人助理接口系统
US20190311710A1 (en) * 2018-04-06 2019-10-10 Flex Ltd. Device and system for accessing multiple virtual assistant services

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981098B2 (en) * 2002-04-30 2005-12-27 International Business Machines Corporation Methods and apparatus for coordinating a plurality of updates to a cache
US8606568B1 (en) * 2012-10-10 2013-12-10 Google Inc. Evaluating pronouns in context
WO2014098477A1 (ko) * 2012-12-18 2014-06-26 삼성전자 주식회사 홈 네트워크 시스템에서 홈 디바이스를 원격으로 제어하는 방법 및 장치
US10127224B2 (en) * 2013-08-30 2018-11-13 Intel Corporation Extensible context-aware natural language interactions for virtual personal assistants
KR102084507B1 (ko) * 2013-09-05 2020-03-04 삼성전자주식회사 홈 네트워크 시스템에서 홈 디바이스를 원격으로 제어하는 방법 및 장치
US10811013B1 (en) * 2013-12-20 2020-10-20 Amazon Technologies, Inc. Intent-specific automatic speech recognition result generation
AU2019234822B2 (en) * 2018-03-14 2020-10-22 Google Llc Generating IoT-based notification(s) and provisioning of command(s) to cause automatic rendering of the IoT-based notification(s) by automated assistant client(s) of client device(s)
US10607610B2 (en) * 2018-05-29 2020-03-31 Nortek Security & Control Llc Audio firewall
KR102676627B1 (ko) * 2018-10-08 2024-06-21 구글 엘엘씨 어시스턴트 클라이언트 장치에 의해 로컬로 스마트 장치 제어 및/또는 등록
JP7114722B2 (ja) * 2019-10-15 2022-08-08 グーグル エルエルシー スマートデバイスの、効率的で低レイテンシである自動アシスタント制御

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1545696A (zh) * 2001-06-19 2004-11-10 英特尔公司 在语音识别中采用预取指令的方法
CN102629246A (zh) * 2012-02-10 2012-08-08 北京百纳信息技术有限公司 识别浏览器语音命令的服务器及浏览器语音命令识别方法
US20140122059A1 (en) * 2012-10-31 2014-05-01 Tivo Inc. Method and system for voice based media search
US20170357478A1 (en) * 2016-06-11 2017-12-14 Apple Inc. Intelligent device arbitration and control
US20180096683A1 (en) * 2016-10-03 2018-04-05 Google Inc. Processing Voice Commands Based on Device Topology
US20190019517A1 (en) * 2017-07-13 2019-01-17 Comcast Cable Communications, Llc Caching Scheme For Voice Recognition Engines
CN110018735A (zh) * 2017-12-21 2019-07-16 哈曼国际工业有限公司 智能个人助理接口系统
US20190206388A1 (en) * 2018-01-04 2019-07-04 Google Llc Learning offline voice commands based on usage of online voice commands
US20190311710A1 (en) * 2018-04-06 2019-10-10 Flex Ltd. Device and system for accessing multiple virtual assistant services

Also Published As

Publication number Publication date
EP3834199B1 (en) 2023-04-05
EP3834199A1 (en) 2021-06-16
US20240005916A1 (en) 2024-01-04
JP7114722B2 (ja) 2022-08-08
WO2021076165A1 (en) 2021-04-22
JP2022153537A (ja) 2022-10-12
KR102581347B1 (ko) 2023-09-22
EP4202920A1 (en) 2023-06-28
US11783814B2 (en) 2023-10-10
KR102423711B1 (ko) 2022-07-22
JP2022500682A (ja) 2022-01-04
KR102639230B1 (ko) 2024-02-21
KR20230137488A (ko) 2023-10-04
US11176928B2 (en) 2021-11-16
US20210248998A1 (en) 2021-08-12
JP7536834B2 (ja) 2024-08-20
KR20220104303A (ko) 2022-07-26
US20220044677A1 (en) 2022-02-10
KR20210046581A (ko) 2021-04-28

Similar Documents

Publication Publication Date Title
KR102581347B1 (ko) 스마트 장치의 효율적이고 낮은 대기시간 자동 어시스턴트 제어
US20230353412A1 (en) Control and/or registration of smart devices, locally by an assistant client device
JP7250887B2 (ja) IoTベースの通知の生成、およびクライアントデバイスの自動化アシスタントクライアントによるIoTベースの通知の自動レンダリングを引き起こすコマンドの提供

Legal Events

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