CN115668124A - 动态地适配分组助理设备的设备上模型以用于助理请求的协作处理 - Google Patents
动态地适配分组助理设备的设备上模型以用于助理请求的协作处理 Download PDFInfo
- Publication number
- CN115668124A CN115668124A CN202080100916.8A CN202080100916A CN115668124A CN 115668124 A CN115668124 A CN 115668124A CN 202080100916 A CN202080100916 A CN 202080100916A CN 115668124 A CN115668124 A CN 115668124A
- Authority
- CN
- China
- Prior art keywords
- assistant
- devices
- group
- model
- models
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 182
- 238000000034 method Methods 0.000 claims description 105
- 230000004044 response Effects 0.000 claims description 75
- 230000006978 adaptation Effects 0.000 claims description 53
- 230000008569 process Effects 0.000 claims description 44
- 238000001514 detection method Methods 0.000 claims description 40
- 230000015654 memory Effects 0.000 claims description 29
- 238000003860 storage Methods 0.000 claims description 22
- 238000012544 monitoring process Methods 0.000 claims description 18
- 238000012805 post-processing Methods 0.000 abstract description 2
- 230000009471 action Effects 0.000 description 14
- 238000013518 transcription Methods 0.000 description 14
- 230000035897 transcription Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 230000002452 interceptive effect Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 6
- 238000003062 neural network model Methods 0.000 description 6
- 238000009877 rendering Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 238000010926 purge Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000005577 local transmission Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/005—Language recognition
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/30—Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/32—Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Machine Translation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
实施方式涉及动态地适配哪个(哪些)助理设备上模型被本地存储在助理设备组中的助理设备处和/或动态地适配助理设备组中的助理设备的助理处理角色。在这些实施方式中的一些实施方式中,针对该组中的助理设备中的每个助理设备,对应的设备上模型和/或对应的处理角色是基于集体地考虑组中的助理设备的个体处理能力来确定的。实施方式附加地或替选地涉及在协作地处理指向组中的助理设备中的任何一个的助理请求时,协作地利用组中的助理设备及其关联的适配后设备上模型和/或适配后处理角色。
Description
背景技术
人可以参与与本文中称为“自动化助理”(也称为“聊天机器人”、“交互式个人助理”、“智能个人助理”、“个人语音助理”、“会话代理”等)的交互式软件应用的人机对话。例如,人(当他们与自动化助理交互时,可以被称为“用户”)可以使用口述自然语言输入(即,口述话语)向自动化助理提供命令和/或请求,在一些情况下,该口述自然语言输入可以被转换为文本,然后进行处理。命令和/或请求可以附加地或替选地经由一个或多个其他输入模态来提供,诸如文本(例如键入的)自然语言输入、触摸屏输入和/或无触摸手势输入(例如由对应助理设备的相机检测到)。自动化助理通常通过提供响应用户接口输出(例如可听和/或视觉用户接口输出)、控制智能设备和/或执行其他动作来响应命令或请求。
自动化助理在处理用户请求时通常依赖于组件的管线(pipeline)。例如,唤醒词检测引擎可以被用于在监视口述唤醒词(例如“OK Assistant(好的助理)”)的出现时处理音频数据,并且响应于检测到该出现,使其他组件的处理发生。作为另一示例,自动语音识别(ASR)引擎可以被用于处理包括口述话语的音频数据,以生成用户话语的转录(即,词项的序列和/或其他令牌)。ASR引擎可以基于由唤醒词检测引擎检测到的口述唤醒词的后续出现和/或响应于自动化助理的其他调用来处理音频数据。作为另一示例,自然语言理解(NLU)引擎可以被用于处理请求的文本(例如使用ASR从口述话语转换的文本),以生成作为文本的语义表示的符号表示或信念状态。例如,信念状态可以包括与文本相对应的意图以及可选地包括该意图的参数(例如槽值(slot value))。一旦通过一个或多个对话回合来完全形成(例如所有强制参数已被解析),信念状态表示将响应于口述话语而执行的动作。然后,单独的履行组件可以利用完全形成的信念状态来执行与信念状态相对应的动作。
用户在与自动化助理交互时利用一个或多个助理设备(具有自动化助理接口的客户端设备)。用于处理在助理设备处提供的请求的组件管线可以包括在助理设备处本地执行的组件和/或在与助理设备网络通信的一个或多个远程服务器处实施的组件。
已经努力增加在助理设备处本地执行的组件的数量和/或提高这种组件的稳健性和/或准确性。这些努力的动机是考虑,诸如减少时延、提高数据安全性、降低网络使用率和/或寻求实现其他技术益处。作为一个示例,一些助理设备可以包括本地唤醒词引擎和/或本地ASR引擎。
然而,由于各种助理设备的处理能力有限,与基于云的对应体相比,在助理设备处本地实施的组件可能更不稳健和/或准确。这对于较旧和/或成本较低的助理设备可能尤其正确,这些助理设备可能缺少:(a)执行各种组件和/或利用其关联模型的处理能力和/或存储器容量;(b)和/或存储各种关联模型的磁盘空间容量。
发明内容
本文公开的实施方式涉及动态地适配(adapt)哪个(哪些)助理设备上(on-device)模型被本地存储在助理设备组中的助理设备处和/或适配助理设备组中的助理设备的助理处理角色。在这些实施方式中的一些实施方式中,针对该组中的助理设备中的每个助理设备,对应的设备上模型和/或对应的处理角色基于集体地考虑该组中的助理设备的个体处理能力来确定。例如,基于给定助理设备的个体处理能力(例如给定的助理设备鉴于处理器、存储器和/或存储装置约束而是否可以存储那些设备上模型并且执行那些处理角色)以及鉴于该组的其他助理设备的对应处理能力(例如其他设备是否能够存储其他必要的设备上模型和/或执行其他必要的处理角色),能够确定给定助理设备的设备上模型和/或处理角色。在一些实施方式中,使用数据还可以被用于为该组中的助理设备中的每个助理设备确定对应的设备上模型和/或对应的处理角色。
本文公开的实施方式附加地或替选地涉及在协作地处理指向该组中的助理设备中的任何一个的助理请求时,协作地利用助理设备组及其关联的适配后(post-adaptation)设备上模型和/或适配后处理角色。
通过这些和其他方式,鉴于这些助理设备的处理能力,设备上模型和设备上处理角色可以被分布在组中的多个不同助理设备之间。进一步地,当分布在组中的多个助理设备之间时,设备上模型和/或设备上处理角色的集体稳健性和/或能力超过了助理设备中的任何一个可能单独具有的稳健性和/或能力。换句话说,本文公开的实施方式可以有效地实施被分布在组中的助理设备之间的助理组件的设备上管线。这种分布式管线的稳健性和/或准确性远远超过了作为替代而在组中的助理设备中的仅单个助理设备上实施的任何管线的稳健性和/或准确性能力。提高本文公开的稳健性和/或准确性可以对于更大量助理请求减少时延。进一步地,提高的稳健性和/或准确性导致更少(甚或没有)数据被传输给远程自动化助理组件以解析助理请求。这直接导致用户数据的安全性提高,网络使用的频率降低,通过网络传输的数据量减少和/或解析助理请求的时延减少(例如与涉及远程助理组件的情况相比,本地解析的这些助理请求可以用更少的时延来解析)。
某些适配可能导致该组中的一个或多个助理设备缺少该助理设备自身处理许多助理请求所必需的引擎和/或模型。例如,某些适配可能导致助理设备缺少任何唤醒词检测能力和/或ASR能力。然而,当在组中并且根据本文公开的实施方式适配时,该助理设备可以与组中的其他助理设备协作来协作地处理助理请求,每个其他助理设备在这样做时执行自己的处理角色并且利用自己的设备上模型。因此,指向该助理设备的助理请求仍然可以与组中的其他助理设备协作地处理。
在各种实施方式中,对组中的助理设备的适配是响应于生成该组或者修改该组(例如从该组并入或移除助理设备)来执行的。如本文描述的,组可以基于明确用户输入来生成和/或基于例如确定该组中的助理设备相对于彼此满足接近度条件来自动生成,该明确用户输入指示对于该组的期望。在仅当组以这种方式创建时执行适配的实施方式中,在该组中的两个单独设备处同时接收到的两个助理请求的出现(并且可能无法被并行地协作处理)可以被减轻。例如,当在生成组时考虑到接近度条件,两个不相干的同时请求不太可能在该组中的两个不同助理设备处被接收到。例如,与该组中的助理设备被分散在房屋的多个楼层上相比,当该组中的助理设备都在同一房间中时,这种出现可能性更小。作为另一示例,当用户输入明确地指示组应该被生成时,非重叠助理请求有可能被提供给该组中的助理设备。
作为各种实施方式中的一个特定示例,假设包括第一助理设备和第二助理设备的助理设备组被生成。进一步假设,在助理设备组被生成时,第一助理设备包括唤醒词引擎和对应的唤醒词模型、暖线索(warm cue)引擎和对应的暖线索模型、认证引擎和对应的认证模型以及对应的设备上ASR引擎和对应的ASR模型。进一步假设,在助理设备组被生成时,第二助理设备还包括与第一助理设备相同的引擎和模型(或其变型),并且附加地包括:设备上NLU引擎和对应的NLU模型、设备上履行和对应的履行模型以及设备上TTS引擎和对应的TTS模型。
响应于第一助理设备和第二助理设备被分组,被本地存储在第一助理设备和第二助理设备处的助理设备上模型和/或第一助理设备和第二助理设备的对应处理角色可以被适配。针对第一助理设备和第二助理设备中的每个助理设备,设备上模型和处理角色可以基于考虑第一助理设备和第二助理设备的第一处理能力来确定。例如,设备上模型集合可以被确定,该设备上模型集合包括能够由第一助理设备上的对应处理角色/引擎存储和利用的第一子集。进一步地,该集合可以包括能够由第二助理设备上的对应处理角色存储和利用的第二子集。例如,第一子集可以仅包括ASR模型,但第一子集的ASR模型可以比第一助理设备的适配前(pre-adaptation)ASR模型更稳健和/或准确。进一步地,它们在执行ASR时可能需要利用更多计算资源。然而,第一助理设备可以仅具有第一子集的ASR模型和ASR引擎,并且适配前模型和引擎可以被清除,从而释放供利用第一子集的ASR模型执行ASR时利用的计算资源。继续示例,第二子集可以包括与之前包括的第二助理设备相同的模型,除了ASR模型可以被省略并且更稳健和/或更准确的NLU模型可以替换适配前NLU模型。更稳健和/或更准确的NLU模型可能需要比适配前NLU模型更多的资源,但是这些资源可以通过清除适配前ASR模型来释放(并且省略来自第二子集的任何ASR模型)。
然后,在协作地处理指向该组中的助理设备中的任一个的助理请求中,第一助理设备和第二助理设备可以协作地利用其关联的适配后设备上模型和/或适配后处理角色。例如,假设口述话语“OK Assistant,increase the temperature two degrees(好的助理,将温度提高两度)”。第二助理设备的唤醒线索引擎可以检测到唤醒线索“OK Assistant(好的助理)”的出现。作为响应,唤醒线索引擎可以将命令传输给第一助理设备,以使第一助理设备的ASR引擎对在唤醒线索之后捕获的音频数据执行语音识别。由第一助理设备的ASR引擎生成的转录可以被传输给第二助理设备,并且第二助理设备的NLU引擎可以对转录执行NLU。NLU的结果可以被传递给第二助理设备的履行引擎,该履行引擎可以使用这些NLU结果来确定传输给智能恒温器的命令,以使它将温度提高两度。
前文被提供为仅一些实施方式的概述。这些和其他实施方式在本文中更详细地公开。
另外,一些实施方式可以包括一种系统,该系统包括一个或多个用户设备,每个用户设备具有一个或多个处理器以及与一个或多个处理器可操作地耦合的存储器,其中一个或多个用户设备的存储器存储指令,响应于由一个或多个用户设备的一个或多个处理器执行指令,该指令使一个或多个处理器执行本文描述的任何方法。一些实施方式还包括至少一个非暂时性计算机可读介质,该至少一个非暂时性计算机可读介质包括指令,响应于由一个或多个处理器执行指令,该指令使一个或多个处理器执行本文描述的任何方法。
应该了解,本文更详细地描述的前述概念和附加概念的所有组合被设想为本文公开的主题的一部分。例如,本公开所附的权利要求的所有组合都被设想为本文公开的主题的一部分。
附图说明
图1A是根据本文公开的实施方式的、其中没有助理设备被分组和适配的示例助理生态系统的框图。
图1B1、1B2和1B3分别图示了图1A的示例助理生态系统,其中第一助理设备和第二助理设备已被分组,并且具有可以被实施适配的不同示例。
图1C图示了图1A的示例助理生态系统,其中第一助理设备、第二助理设备和第三助理设备已被分组,并且具有可以被实施适配的示例。
图1D图示了图1A的示例助理生态系统,其中第三助理设备和第四助理设备已被分组,并且具有可以被实施的适配的示例。
图2是图示了适配组中的助理设备的设备上模型和/或处理角色的示例方法的流程图。
图3是图示了在适配组中的助理设备的设备上模型和/或处理角色时可以由组中的多个助理设备中的每个助理设备实施的示例方法的流程图。
图4图示了计算设备的示例架构。
具体实施方式
许多用户可以使用多个助理设备中的任何一个来接涉自动化助理。例如,一些用户可以处理助理设备的协调“生态系统”,该协调“生态系统”可以接收指向自动化助理的用户输入和/或可以由自动化助理控制,诸如一个或多个智能电话、一个或多个平板计算机、一个或多个车辆计算系统、一个或多个可穿戴计算设备、一个或多个智能电视、一个或多个交互式独立扬声器、具有显示器的一个或多个交互式独立扬声器、一个或多个IoT设备等其他助理设备。
用户可以使用这些助理设备中的任何一个来参与与自动化助理的人机对话(假设自动化助理客户端被安装,并且助理设备能够接收输入)。在一些情况下,这些助理设备可以被分散在用户的主要居所、第二居所、工作地点和/或其他结构周围。例如,移动助理设备(诸如智能电话、平板计算机、智能手表等)可以在用户身上和/或用户最后放置它们的地方。其他助理设备(诸如传统台式计算机、智能电视、交互式独立扬声器和IoT设备)可以更固定,然而可能位于用户家里或工作地点内的各种地点处(例如房间)。
最初转到图1A,示例助理生态系统被图示。示例助理生态系统包括第一助理设备110A、第二助理设备110B、第三助理设备110C和第四助理设备110D。助理设备110A至110D可以都被设置在家庭、企业或其他环境内。进一步地,助理设备110A至110D可以都被一起链接在一个或多个数据结构中,或者以其他方式与彼此相关联。例如,四个助理设备110A至110D可以都向同一用户账户注册,向同一用户账户集合注册,向特定结构注册和/或都被指派给设备拓扑表示中的特定结构。针对助理设备110A至110D中的每个助理设备,设备拓扑表示可以包括对应的唯一标识符,并且可以可选地包括不是助理设备(但可以经由助理设备交互)的其他设备的对应的唯一标识符,诸如不包括助理接口的IoT设备。进一步地,设备拓扑表示可以指定与相应助理设备110A至110D相关联的设备属性。给定助理设备的设备属性可以指示例如由相应助理设备支持的一个或多个输入和/或输出模态、相应助理设备的处理能力、相应助理设备的品牌、型号和/或唯一标识符(例如序列号)(基于哪些处理能力可以被确定)和/或其他属性。作为另一示例,根据被连接至同一无线网络(诸如安全接入无线网络)和/或根据集体地与彼此对等通信(例如经由蓝牙并且在配对之后),四个助理设备可以都被链接在一起,或者以其他方式与彼此相关联。换句话说,在一些实施方式中,根据多个助理设备与彼此进行安全网络连接并且无需在任何数据结构中与彼此相关联,多个助理设备可以被认为链接在一起,并且潜在地根据本文公开的实施方式适配。
作为非限制性工作示例,第一助理设备110A可以是第一类型的助理设备,诸如具有显示器和相机的交互式独立扬声器的特定型号。第二助理设备110B可以是第二类型的助理设备,诸如不具有显示器或相机的交互式独立扬声器的第一型号。助理设备110C和110D可以分别是第三类型的助理设备,诸如没有显示器的交互式独立扬声器的第三型号。第三类型(助理设备110C和110D)与第二类型(助理设备110D)相比可以具有更少的处理能力。例如,第三类型的处理器与第二类型的处理器相比可以具有更少处理能力。例如,第三类型的处理器可能缺少任何GPU,而第一类型的处理器包括GPU。而且,例如第三类型的处理器与第二类型的处理器相比可以具有更小的缓存和/或更低的操作频率。作为另一示例,第三类型的设备上存储器的大小可以小于第二设备的设备上存储器的大小(例如与2GB相比为1GB)。作为再一示例,第三类型的可用磁盘空间可以小于第一类型的可用磁盘空间。可用磁盘空间可以不同于当前可用的磁盘空间。例如,可用磁盘空间可以被确定为当前可用的磁盘空间加上当前由一个或多个设备上模型占用的磁盘空间。作为另一示例,可用磁盘空间可以是总磁盘空间减去由操作系统和/或其他特定软件占用的任何空间。继续该工作示例,第一类型和第二类型可以具有相同的处理能力。
除了被一起链接在数据结构中之外,助理设备110A至110D中的两个或更多个(例如所有)也部分地选择性地经由局域网(LAN)108彼此通信。LAN 108可以包括诸如利用Wi-Fi的无线网络、诸如利用蓝牙的直接对等网络和/或利用其他通信协议的其他通信拓扑。
助理设备110A包括助理客户端120A,它可以是操作系统之上的独立应用或者可以形成助理设备110A的操作系统的所有或部分。在图1A中,助理客户端120A包括唤醒/调用引擎121A1和一个或多个关联的设备上唤醒/调用模型131A1。唤醒/调用引擎121A1可以监视一个或多个唤醒或调用线索的出现,并且响应于检测到线索中的一个或多个,可以调用助理客户端120A的一个或多个先前不活动的功能。例如,调用助理客户端120A可以包括使ASR引擎122A1、NLU引擎123A1和/或其他引擎被激活。例如,它可以使ASR引擎122A1处理唤醒或调用线索之后的其他音频数据帧(而在调用之前,没有发生过音频数据帧的其他处理)和/或可以使助理客户端120A将其他音频数据帧和/或要被传输的其他数据传输给基于云的助理组件140以用于处理(例如由基于云的助理组件140的远程ASR引擎处理音频数据帧)。
在一些实施方式中,唤醒线索引擎121A可以连续地处理(例如如果不处于“非活动”模式)基于来自客户端设备110A的一个或多个麦克风的输出的音频数据帧流,以监视口述唤醒词或调用短语(例如“OK Assistant”、“Hey Assistant(嘿助理)”)的出现。处理可以由唤醒线索引擎121A利用唤醒模型131A1中的一个或多个来执行。例如,唤醒模型131A1中的一个唤醒模型可以是被训练以处理音频数据帧并且生成输出的神经网络模型,该输出指示一个或多个唤醒词是否存在于音频数据中。在监视唤醒词的出现时,唤醒线索引擎121丢弃(例如在缓冲器中临时存储之后)不包括唤醒词的任何音频数据帧。作为监视唤醒词的出现的补充或替代,唤醒线索引擎121A1可以监视其他调用线索的出现。例如,唤醒线索引擎121A1还可以监视按下调用硬件按钮和/或调用软件按钮。作为另一示例,并且继续工作示例,当助理设备110A包括相机时,唤醒线索引擎121A1还可以可选地处理来自相机的图像帧,以监视调用手势的出现(诸如在用户的注视指向相机的同时的挥手)和/或其他调用线索(诸如用户的注视指向相机连同用户正在说话的指示)。
在图1A中,助理客户端120A还包括自动语音识别(ASR)引擎122A1和一个或多个关联的设备上ASR模型132A1。ASR引擎122A1可以被用于处理包括口述话语的音频数据,以生成用户话语的转录(即,词项的序列和/或其他令牌)。ASR引擎122A1可以利用设备上ASR模型132A1来处理音频数据。设备上ASR模型132A1可以包括例如两次(two-pass)ASR模型,它是神经网络模型并且由ASR引擎122A1用于生成令牌上的概率序列(并且概率被用于生成转录)。作为另一示例,设备上ASR模型132A1可以包括作为神经网络模型的声学模型以及包括音素序列到词语的映射的语言模型。ASR模型122A1可以使用声学模型处理音频数据,以生成音素序列,并且使用语言模型将音素序列映射到特定词项。附加或替选的ASR模型可以被利用。
在图1A中,助理客户端120A还包括自然语言理解(NLU)引擎123A1和一个或多个关联的设备上NLU模型133A1。NLU引擎123A1可以生成作为自然语言文本的语义表示的符号表示或信念状态,诸如由ASR引擎122A1生成的转录的文本或者键入的文本(例如利用助理设备110A的虚拟键盘键入)。例如,信念状态可以包括与文本相对应的意图以及可选地包括意图的参数(例如槽值)。一旦通过一个或多个对话回合来完全形成(例如所有强制参数已被解析),信念状态表示将响应于口述话语而执行的动作。在生成符号表示时,NLU引擎123A1可以利用一个或多个设备上NLU模型133A1。NLU模型133A1可以包括一个或多个神经网络模型,这些神经网络模型被训练以处理文本并且生成输出,该输出指示由文本表达的意图和/或文本的哪个(哪些)部分对应于意图的哪个(哪些)参数的指示。NLU模型可以附加地或替选地包括一个或多个模型,这些模型包括文本和/或模板到对应的符号表示的映射。例如,映射可以包括文本“what time is it(现在几点)”到具有参数“当前位置”的意图“当前时间”的映射。作为另一示例,映射可以包括模板“add[item(s)]to my shopping list(将[物品]添加到我的购物列表)”到意图“insert in shopping list(插入购物列表)”的映射,该意图具有与模板中的[item(s)]相对应的实际自然语言中所包括的物品的参数。
在图1A中,助理客户端120A还包括履行引擎124A1和一个或多个关联的设备上履行模型134A1。履行引擎124A1可以利用来自NLU引擎123A1的完全形成的符号表示,以执行或者导致执行与符号表示相对应的动作。动作可以包括提供响应用户接口输出(例如可听和/或视觉用户接口输出),控制智能设备和/或执行其他动作。在执行或导致执行动作时,履行引擎124A1可以利用履行模型134A1。作为一个示例,针对具有指定特定智能灯的参数的意图“打开”,履行引擎124A1可以利用履行模型134A1来标识特定智能灯的网络地址和/或要传输以使特定智能灯转变为“开启”状态的命令。作为另一示例,针对具有参数“当前位置”的意图“当前”,履行引擎124A1可以利用履行模型134A1来标识客户端设备110A处的当前时间应该被取回并且可听地渲染(利用TTS引擎125A1)。
在图1A中,助理客户端120A还包括文本到语音(TTS)引擎125A1和一个或多个关联的设备上TTS模型135A1。TTS引擎125A1可以利用设备上TTS模型135A1来处理文本(或其语音表示)以生成合成语音。合成语音可以经由助理设备110A本地文本到语音(“TTS”)引擎(将文本转换为语音)的扬声器来可听地渲染。合成语音可以被生成和渲染为来自自动化助理的响应的所有或部分和/或在提示用户定义和/或澄清参数和/或意图(例如由NLU引擎123A1和/或单独的对话状态引擎编排)时生成和渲染。
在图1A中,助理客户端120A还包括认证引擎126A1和一个或多个关联的设备上认证模型136A1。认证引擎126A1可以利用一种或多种认证技术来验证多个注册用户中的哪个注册用户正在与助理设备110交互,或者如果仅单个用户针对助理设备110注册,则它是否是与助理设备110交互的注册用户(或者作为替代是访客/未注册用户)。作为一个示例,在关联用户的许可下,依赖于文本的说话者验证(TD-SV)可以针对注册用户中的每个注册用户来生成和存储(例如与其对应的用户简档相关联)。认证引擎126A1可以利用设备上认证模型136A1中的TD-SV模型来生成对应的TD-SV和/或处理音频数据TD-SV的对应部分,以生成然后可以与存储的TD-SV进行比较以确定是否存在匹配的对应的当前TD-SV。作为其他示例,认证引擎126A1可以附加地或替选地利用不依赖于文本的说话者验证(TI-SV)技术、说话者验证技术、面部验证技术和/或其他验证技术(例如PIN录入),并且利用对应的设备上认证模型136A1来认证特定用户。
在图1A中,助理客户端120A还包括暖线索引擎127A1和一个或多个关联的设备上暖线索模型137A1。暖线索引擎127A1可以至少选择性地监视一个或多个暖词或其他暖线索的出现,并且响应于检测到暖线索中的一个或多个,使特定动作由助理客户端120A执行。暖线索可以是任何唤醒词或其他唤醒线索的补充,并且暖线索中的每个暖线索都可以至少选择性地是活动的。值得注意的是,检测到暖线索的出现使特定动作即使在检测到的出现不先于任何唤醒线索时也被执行。因此,当暖线索是一个或多个特定词语时,用户可以简单地说出词语,而不需要提供任何唤醒线索,并且导致执行对应的特定动作。
作为一个示例,至少在定时器或警报经由自动化助理120A在助理设备110A处被可听地渲染时,“停止”暖线索可以是活动的。例如,在这样的时间,暖线索引擎127A可以继续(或至少在VAD引擎128A1检测到声音活动时)处理音频数据帧流,它基于来自客户端设备110A的一个或多个麦克风的输出,以监视“停止”、“中止”或者特定暖词的其他有限集合的出现。处理可以由暖线索引擎127A利用暖线索模型137A1中的一个暖线索模型来执行,诸如被训练以处理音频数据帧并且生成输出的神经网络模型,该输出指示“停止”的口述出现是否存在于音频数据中。响应于检测到“停止”的出现,暖线索引擎127A可以使清除可听声音定时器或警报的命令被实施。在这样的时间,暖线索引擎127A可以继续(或者至少在存在传感器检测到存在时)处理来自助理设备110A的相机的图像流,以监视处于“停止”姿势的手部的出现。处理可以由暖线索引擎127A利用暖线索模型137A1中的一个暖线索模型来执行,诸如被训练以处理视觉数据帧并且生成输出的神经网络模型,该输出指示手部是否存在并处于“停止”姿势。响应于检测到“停止”姿势的出现,暖线索引擎127A可以使清除可听声音定时器或警报的命令被实施。
作为另一示例,至少在音乐经由自动化助理120A在助理设备110A处被可听地渲染时,“增大音量”、“减小音量”或“下一个”暖线索可以是活动的。例如,在这样的时间,暖线索引擎127A可以继续处理音频数据帧流,该音频数据帧流是基于来自客户端设备110A的一个或多个麦克风的输出。处理可以包括使用暖线索模型137A1中的第一暖线索模型来监视“增大音量”的出现,使用暖线索模型137A1中的第二暖线索模型来监视“减小音量”的出现,并且使用暖线索模型137A1中的第三暖线索模型来监视“下一个”的出现。响应于检测到“增大音量”的出现,暖线索引擎127A可以使增大要被渲染的音乐的音量的命令被实施,响应于检测到“减小音量”的出现,暖线索引擎可以使减小音乐音量的命令被实施,并且响应于检测到“减小音量”的出现,暖线索引擎可以使导致下一轨道而不是当前音乐轨道被渲染的命令被实施。
在图1A中,助理客户端120A还包括声音活动检测器(VAD)引擎128A1和一个或多个关联的设备上VAD模型138A1。VAD引擎128A1可以至少选择性地监视音频数据中的声音活动的出现,并且响应于检测到该出现,使一个或多个功能由助理客户端120A执行。例如,响应于检测到声音活动,VAD引擎128A1可以使暖线索引擎121A1被激活。作为另一示例,VAD引擎128A1可以被用于连续侦听模式,以监视音频数据中的声音活动的出现,并且响应于检测到该出现,使ASR引擎122A1被激活。VAD引擎128A1可以利用VAD模型138A1来处理音频数据,以确定声音活动是否存在于音频数据中。
已关于助理客户端120A描述特定引擎和对应模型。然而,要注意的是,一些引擎可以被省略和/或附加引擎可以被包括在内。还要注意的是,通过其各种设备上引擎和对应模型,助理客户端120A可以完全处理许多助理请求,包括被提供为口述话语的许多助理请求。然而,由于客户端设备110A在处理能力方面相对受限,因此仍然存在无法在助理设备110A处完全地本地处理的许多助理请求。例如,NLU引擎123A1和/或对应的NLU模型133A1可能仅覆盖经由自动化助理可用的所有可用意图和/或参数的子集。作为另一示例,履行引擎124A1和/或对应的履行模型可以仅覆盖可用履行的子集。作为再一示例,ASR引擎122A1和对应的ASR模型132A1可能不够稳健和/或准确以正确地转录各种口述话语。
鉴于这些和其他考虑,基于云的助理组件140仍然可以至少选择性地被用于执行在助理设备110A处接收到的助理请求的至少一些处理。基于云的自动化助理组件140可以包括这些助理设备110A的对应的(和/或附加或替选的)引擎和/或模型。然而,由于基于云的自动化助理组件140可以利用云的几乎无限的资源,基于云的对应体中的一个或多个可以与这些助理客户端120A更稳健和/或准确。作为一个示例,响应于寻求执行本地NLU引擎123A1和/或本地履行引擎124A1不支持的助理动作的口述话语,助理客户端120A可以将口述话语的音频数据和/或其由ASR引擎122A1生成的转录传输给基于云的自动化助理组件140。基于云的自动化助理组件140(例如其NLU引擎和/或履行引擎)可以执行这种数据的更稳健的处理,支持解析和/或执行助理动作。将数据传输给基于云的自动化助理组件140经由一个或多个广域网(WAN)109,诸如互联网或私有WAN。
第二助理设备110B包括助理客户端120B,它可以是操作系统之上的独立应用或者可以形成助理设备110B的操作系统的所有或部分。与助理客户端120A一样,助理客户端120B包括:唤醒/调用引擎121B1和一个或多个关联的设备上唤醒/调用模型131B1;ASR引擎122B1和一个或多个关联的设备上ASR模型132B1;NLU引擎123B1和一个或多个关联的设备上NLU模型133B1;履行引擎124B1和一个或多个关联的设备上履行模型134B1;TTS引擎125B1和一个或多个关联的设备上TTS模型135B1;认证引擎126B1和一个或多个关联的设备上认证模型136B1;暖线索引擎127B1和一个或多个关联的设备上暖线索模型137B1;以及VAD引擎128B1和一个或多个关联的设备上VAD模型138B1。
助理客户端120B的一些或所有引擎和/或模型可以与助理客户端120A相同和/或一些或所有引擎和/或模型可以不同。例如,唤醒线索引擎121B1可能缺少检测图像中的唤醒线索的功能性和/或唤醒模型131B1可能缺少处理图像以检测唤醒线索的模型,而唤醒线索引擎121A1包括这种功能性并且唤醒模型131B1包括这种模型。例如,这可能是由于助理设备110A包括相机并且助理设备110B不包括相机。作为另一示例,由ASR引擎122B1利用的ASR模型131B1可以不同于由ASR引擎122A1利用的ASR模型131A1。例如,这可能是由于不同模型在助理设备110A和助理设备110B中针对不同处理器和/或存储器能力优化。
已关于助理客户端120B描述特定引擎和对应模型。然而,要注意的是,一些引擎可以被省略和/或附加引擎可以被包括在内。还要注意的是,通过其各种设备上引擎和对应模型,助理客户端120B可以完全处理许多助理请求,包括被提供为口述话语的许多助理请求。然而,由于客户端设备110B在处理能力方面相对受限,因此仍然存在无法在助理设备110B处完全地本地处理的许多助理请求。鉴于这些和其他考虑,基于云的助理组件140仍然可以至少选择性地被用于执行在助理设备110B处接收到的助理请求的至少一些处理。
第三助理设备110C包括助理客户端120C,它可以是操作系统之上的独立应用或者可以形成助理设备110C的操作系统的所有或部分。与助理客户端120A和助理客户端120B一样,助理客户端120C包括:唤醒/调用引擎121C1和一个或多个关联的设备上唤醒/调用模型131C1;认证引擎126C1和一个或多个关联的设备上认证模型136C1;暖线索引擎127C1和一个或多个关联的设备上暖线索模型137C1;以及VAD引擎128C1和一个或多个关联的设备上VAD模型138C1。助理客户端120C的一些或所有引擎和/或模型可以与助理客户端120A和/或助理客户端120B相同和/或一些或所有引擎和/或模型可以不同。
然而,要注意的是,与助理客户端120A和助理客户端120B不同,助理客户端120C不包括:任何ASR引擎或关联模型;任何NLU引擎或关联模型;任何履行引擎或关联模型;以及任何TTS引擎或关联模型。进一步地,还要注意的是,通过其各种设备上引擎和对应模型,助理客户端120B可以仅完全处理特定助理请求(即,符合由暖线索引擎127C1检测到的暖线索的助理请求),并且无法处理许多助理请求,诸如被提供为口述话语并且不符合暖线索的助理请求。鉴于这些和其他考虑,基于云的助理组件140仍然可以至少选择性地被用于执行在助理设备110C处接收到的助理请求的至少一些处理。
第四助理设备110D包括助理客户端120D,它可以是操作系统之上的独立应用或者可以形成助理设备110D的操作系统的所有或部分。与助理客户端120A、助理客户端120B和助理客户端120C一样,助理客户端120D包括:唤醒/调用引擎121D1和一个或多个关联的设备上唤醒/调用模型131D1;认证引擎126D1和一个或多个关联的设备上认证模型136D1;暖线索引擎127D1和一个或多个关联的设备上暖线索模型137D1;以及VAD引擎128D1和一个或多个关联的设备上VAD模型138D1。助理客户端120C的一些或所有引擎和/或模型可以与助理客户端120A、助理客户端120B和/或助理客户端120C相同和/或一些或所有引擎和/或模型可以不同。
然而,要注意的是,与助理客户端120A和助理客户端120B不同,并且与助理客户端120C一样,助理客户端120D不包括:任何ASR引擎或关联模型;任何NLU引擎或关联模型;任何履行引擎或关联模型;以及任何TTS引擎或关联模型。进一步地,还要注意的是,通过其各种设备上引擎和对应模型,助理客户端120D可以仅完全处理特定助理请求(即,符合由暖线索引擎127D1检测到的暖线索的助理请求),并且无法处理许多助理请求,诸如被提供为口述话语并且不符合暖线索的助理请求。鉴于这些和其他考虑,基于云的助理组件140仍然可以至少选择性地被用于执行在助理设备110D处接收到的助理请求的至少一些处理。
现在转到图1B1、1B2、1B3、1C和1D,图示了助理设备组的不同非限制性示例以及可以响应于助理设备组被生成而实施的适配的不同非限制性示例。通过适配中的每个适配,分组的助理设备可以被集体地用于处理各种助理请求,并且通过集体利用,与可以在适配之前单独执行的组的助理设备中的任何一个相比,可以执行对这些各种助理请求的更稳健和/或更准确的处理。这导致各种技术优点,诸如本文描述的技术优点。
在图1B1、1B2、1B3、1C和1D中,相对于图1A,具有与图1A中相同的附图标记的助理客户端的引擎和模型未被适配。例如,在图1B1、1B2和1B3中,助理客户端设备110C和110D的引擎和模型未被适配,因为助理客户端设备110C和110D未被包括在图1B1、1B2和1B3的组101B中。然而,在图1B1、1B2、1B3、1C和1D中,具有与图1A不同的附图标记(即,以“2”、“3”或“4”而不是“1”结束)的助理客户端的引擎和模型指示它已相对于图1中的对应体适配。进一步地,具有在一个附图中以“2”结束并且在另一附图中以“3”结束的附图标记的引擎或模型意味着对引擎或模型的不同适配已在附图之间进行。同样地,具有在附图中以“4”结束的附图标记的引擎或模型意味着在该附图中对引擎或模型的适配不同于附图标记以“2”或“3”结束的附图。
最初转到图1B1,设备组101B已建立,其中助理设备110A和110B被包括在设备组101B中。在一些实施方式中,设备组101B可以响应于用户接口输入来生成,该用户接口输入明确地指示对助理设备110A和110B进行分组的期望。作为一个示例,用户可以向助理设备110A至110D中的任何一个提供口述话语“group[label for assistant device110A]and[label for assistant device 110B]组[助理设备110A的标签]和[助理设备110B的标签]”。这种口述话语可以由相应的助理设备和/或基于云的助理组件140处理,被解释为对助理设备110A和110B进行分组的请求,并且组101B响应于这种解释而生成。作为另一示例,助理设备110A至110D的注册用户可以在应用处提供触摸输入,该应用支持配置助理设备110A至110D的设置。这些触摸输入可以明确地指定助理设备110A和110B将被分组,并且组101B可以被生成而作为响应。作为再一示例,自动生成设备组101B中的下面描述的示例技术中的一种示例技术作为替代可以被用于确定设备组101B应该被生成,但在生成设备组101B之前可能需要明确地批准生成设备组101B的用户输入。例如,指示设备组101B应该被生成的提示可以在助理设备110A至110D中的一个或多个处被渲染,并且仅在肯定的用户接口输入响应于提示而被接收到(并且可选地,如果该用户接口输入被验证来自注册用户)的情况下,设备组101B被实际生成。
在一些实施方式中,设备组101B作为替代可以被自动生成。在这些实施方式中的一些实施方式中,指示生成设备组101B的用户接口输出可以在助理设备110A至110D中的一个或多个处被渲染,以告知该组的对应用户和/或注册用户可以覆盖设备组101B通过用户接口输入的自动化生成。然而,当设备组101B被自动生成时,设备组101B将被生成,并且进行对应适配,而无需先请求明确地指示创建特定设备组101B的期望的用户接口输入(尽管更早时间的输入可以指示大体上批准创建组)。在一些实施方式中,响应于确定助理设备110A和110B相对于彼此满足一个或多个接近度条件,设备组101B可以被自动生成。例如,接近度条件可以包括助理设备110A和110B在设备拓扑中被指派给同一结构(例如特定的家庭、特定的度假屋、特定的办公室)和/或同一房间(例如厨房、客厅、餐厅)或者同一结构内的其他区域。作为另一示例,接近度条件可以包括来自助理设备110A和110B中的每个助理设备的传感器信号,指示它们在位置上彼此接近。例如,如果助理设备110A和110B二者持续地(例如大于时间或其他阈值的70%)在同一时间或接近同一时间(例如在其一秒内)检测到唤醒词的出现,则这可以指示它们在位置上彼此接近。而且,例如助理设备110A和110B中的一个助理设备可以发射信号(例如超声),并且助理设备110A和110B中的另外一个可以尝试检测发射的信号。如果助理设备110A和110B中的另外一个检测到发射的信号,可选地具有阈值强度,那么它可以指示它们在位置上彼此接近。用于确定时间接近度和/或自动生成设备组的附加和/或替选技术可以被利用。
无论组101B是如何被生成的,图1B1示出了可以响应于助理设备110A和110B被包括在组101B中而对它们进行的适配的一个示例。在各种实施方式中,助理客户端120A和120B之一或两者可以确定应该被进行的适配,并且使这些适配发生。在其他实施方式中,基于云的助理组件140的一个或多个引擎可以附加地或替选地确定应该被进行的适配,并且使这些适配发生。如本文描述的,要被进行的适配可以基于考虑到助理客户端120A和120B两者的处理能力来确定。例如,适配可以寻求利用尽可能多的集体处理能力,同时确保助理设备中的每个助理设备的个体处理能力足够引擎和/或模型在助理处被本地存储和利用。进一步地,要被进行的适配也可以基于使用数据来确定,该使用数据反映了与该组中的助理设备和/或生态系统的其他非分组助理设备的实际使用相关的度量。例如,如果处理能力允许或则更大但更准确的唤醒线索模型或则更大但更稳健的暖线索模型,但无法两者都允许,则使用数据可以被用于在两个选项之间进行选择。例如,如果使用数据反映了暖词的稀有(甚或没有)使用和/或唤醒词的检测通常勉强超过阈值和/或唤醒词的漏报通常被遇到,那么更大但更准确的唤醒线索模型可以被选择。另一方面,如果使用数据反映了暖词的频繁使用和/或唤醒词的检测持续超过阈值和/或唤醒词的漏报是稀有的,那么更大但更准确的暖线索模型可以被选择。考虑这种使用数据可以是确定图1B1、1B2还是1B3的适配被选择的因素,因为图1B1、1B2或1B3分别示出了同一组101B的不同适配。
在图1B1中,履行引擎124A1和履行模型134A1以及TTS引擎125A1和TTS模型135A1已从助理设备110A中被清除。进一步地,助理设备110A具有不同的ASR引擎122A2和不同的设备上ASR模型132A2以及不同的NLU引擎123A2和不同的设备上NLU模型133A2。不同的引擎可以在助理设备110A处从本地模型储存库150下载,该本地模型储存库150经由与基于云的助理组件140的交互可访问。在图1B1中,唤醒线索引擎121B1、ASR引擎122B1和认证引擎126B1及其对应模型131B1、133B1和136B1已从助理设备110B中被清除。进一步地,助理设备110B具有不同的NLU引擎123B2和不同的设备上NLU模型133B2、不同的履行引擎124B2和履行模型133B2以及不同的暖词引擎127B2和暖词模型137B2。不同的引擎可以在助理客户端110B处从本地模型储存库150下载,该本地模型储存库150经由与基于云的助理组件140的交互可访问。
与ASR引擎122A1和ASR模型132A1相比,助理设备110A的ASR引擎122A2和ASR模型132A2可以更稳健和/或更准确,但占用更多磁盘空间,利用更多存储器和/或需要更多的处理器资源。例如,ASR模型132A1可以仅包括单次(single pass)模型,并且ASR模型132A2可以包括两次模型。
同样地,与NLU引擎123A1和NLU模型133A1相比,NLU引擎123A2和NLU模型133A2可以更稳健和/或更准确,但占用更多磁盘空间,利用更多存储器和/或需要更多的处理器资源。例如,NLU模型133A1可以仅包括第一分类的意图和参数,诸如“光照控制”,但是NLU模型133A2可以包括“照明控制”以及“恒温器控制”、“智能锁控制”和“提醒”的意图。
因此,ASR引擎122A2、ASR模型132A2、NLU引擎123A2和NLU模型133A2相对于其替代的对应体有所改进。然而,要注意的是,在不先清除履行引擎124A1和履行模型134A1以及TTS引擎125A1和TTS模型135A1的情况下,助理设备110A的处理能力可能阻碍存储和/或使用ASR引擎122A2、ASR模型132A2、NLU引擎123A2和NLU模型133A2。简单地从助理设备110A清除这种模型而没有对助理设备110B的补充适配和与助理设备110B的协作处理将导致助理客户端120A缺少完全地本地处理各种助理请求的能力(即,在不必需利用一个或多个基于云的助理组件140的情况下)。
因此,对助理设备110B进行补充适配,并且助理设备110A和110B之间的协作处理在适配之后发生。与NLU引擎123B1和NLU模型133B1相比,助理设备110B的NLU引擎123B2和NLU模型133B2可以更稳健和/或更准确,但占用更多磁盘空间,利用更多存储器和/或需要更多的处理器资源。例如,NLU模型133B1可以仅包括第一分类的意图和参数,诸如“照明控制”。然而,NLU模型133B2可以覆盖更大量的意图和参数。要注意的是,由NLU模型133B2覆盖的意图和参数可以被限制为尚未由助理客户端120A的NLU模型133A2覆盖的意图。这可以防止在助理客户端120A和120B之间功能性的重复,并且在助理客户端120A和120B协作地处理助理请求时扩展集体能力。
同样地,与履行引擎124B1和履行模型124B1相比,履行引擎124B2和履行模型134B2可以更稳健和/或更准确,但占用更多磁盘空间,利用更多存储器和/或需要更多的处理器资源。例如,履行模型124B1可以仅包括NLU模型133B1的单个分类的履行能力,但是履行模型124B2可以包括NLU模型133B2以及NLU模型133A2的所有分类的履行能力。
因此,履行引擎124B2、履行模型134B2、NLU引擎123B2和NLU模型133B2相对于其替代的对应体有所改进。然而,在不先清除来自助理设备110B的经清除的模型和清除的引擎的情况下,助理设备110B的处理能力可能阻碍存储和/或使用履行引擎124B2、履行模型134B2、NLU引擎123B2和NLU模型133B2。简单地从助理设备110B清除这种模型而没有对助理设备110A的补充适配和与助理设备110A的协作处理将导致助理客户端120B缺少完全地本地处理各种助理请求的能力。
与暖线索引擎127B1和暖线索模型127B1相比,客户端设备110B的暖线索引擎127B2和暖线索模型137B2不占用任何附加磁盘空间,利用更多存储器或者需要更多的处理器资源。例如,它们可能需要相同的甚或更少的处理能力。然而,暖线索引擎127B2和暖线索模型137B2覆盖暖线索,这些暖线索是由暖线索引擎127B1和暖线索模型127B1覆盖的暖线索的补充,并且是由助理客户端120A的暖线索引擎127A1和暖线索模型127A1覆盖的暖线索的补充。
在图1B1的配置中,助理客户端120A可以被指派有以下处理角色:监视唤醒线索,执行ASR,对第一分类集合执行NLU,执行认证,监视第一暖线索集合,并且执行VAD。助理客户端120B可以被指派有以下处理角色:对第二分类集合执行NLU,执行履行,执行TTS,并且监视第二暖线索集合。处理角色可以在助理客户端120A中的每个助理客户端处被传递和存储,并且各种助理请求的处理的协调可以由助理客户端120A和120B之一或两者执行。
作为使用图1B1的适配的助理请求的协作处理的一个示例,假设口述话语“OKAssistant,turn on the kitchen lights(好的助理,打开厨房灯)”被提供,并且助理设备120A是协调处理的主导设备。助理客户端120A的唤醒线索引擎121A1可以检测到唤醒线索“OK Assistant”的出现。作为响应,唤醒线索引擎121A1可以使ASR引擎122A2处理在唤醒线索之后捕获的音频数据。唤醒线索引擎121A1也可以可选地将命令本地传输给助理设备110B,以使它从低功率状态转变为高功率状态,以使助理客户端120B准备好执行助理请求的某些处理。由ASR引擎122A2处理的音频数据可以是由助理设备110A的麦克风捕获的音频数据和/或由助理设备110B的麦克风捕获的音频数据。例如,被传输给助理设备110B以使它转变为高功率状态的命令也可以使它本地捕获音频数据,并且可选地将这种音频数据传输给助理客户端120A。在一些实施方式中,基于音频数据的相应实例的特性的分析,助理客户端120A可以确定是使用该接收到的音频数据还是本地捕获的音频数据。例如,基于具有更低信噪比的实例和/或捕获具有更高音量的口述话语,音频数据的实例可以优于另一实例而被利用。
由ASR引擎122A2生成的转录可以被传递给NLU引擎123A2,以对第一分类集合的转录执行NLU,并且还传输给助理客户端120B,以使NLU引擎123B2对第二分类集合的转录执行NLU。由NLU引擎123B2执行的NLU的结果可以被传输给助理客户端120A,并且它可以基于这些结果以及来自NLU引擎123A2的结果来确定要使用哪些结果(如果有的话)。例如,助理客户端120A可以利用具有最高概率意图的结果,只要该概率满足一些阈值即可。例如,包括意图“打开”和指定“厨房灯”的标识符的参数的结果可以被利用。要注意的是,如果没有概率满足阈值,则基于云的助理组件140的NLU引擎可以被可选地用于执行NLU。助理客户端120A可以将具有最高概率的NLU结果传输给助理客户端120B。助理客户端120B的履行引擎124B2可以利用这些NLU结果来确定要传输给“厨房灯”的命令,以使它们转变为“开启”状态,并且通过LAN 108传输这种命令。可选地,履行引擎124B2可以利用TTS引擎125B1来生成合成语音,该合成语音确认执行“打开厨房灯”。在这种情况下,合成语音可以在助理设备110B处由助理客户端120B渲染和/或被传输给助理设备110A以由助理客户端120A渲染。
作为助理请求的协作处理的另一示例,假设助理客户端120A正在渲染助理客户端120A处的刚期满的本地定时器的警报。进一步假设由暖线索引擎127B2监视的暖线索包括“停止”,并且由暖线索引擎127A1监视的暖线索不包括“停止”。最后,假设当警报正被渲染时,口述话语“停止”被提供,并且在经由助理客户端120B的麦克风检测到的音频数据中被捕获。暖词引擎127B2可以处理音频数据,并且确定出现词语“停止”。进一步地,暖词引擎127B2可以确定词语停止的出现被直接映射到清除可听声音定时器或警报的命令。该命令可以由助理客户端120B传输给助理客户端120A,以使助理客户端120A实施该命令并且清除可听声音定时器或警报。在一些实施方式中,暖词引擎127B2可以仅在某些情况下监视“停止”的出现。在这些实施方式中,响应于渲染警报或者在预期渲染警报时,助理客户端120A可以传输命令以使暖词引擎127B2监视“停止”的出现。命令可以使监视在某个时间段内发生,或者替选地直到监视命令的中断被发送为止。
现在转到图1B2,相同的组101B被图示。在图1B2中,与图1B1中相同的适配已被进行,除了ASR引擎121A1和ASR模型132A1未被ASR引擎122A2和ASR模型132A2替换。相反,ASR引擎121A1和ASR模型132A1保留,并且附加ASR引擎122A3和附加ASR模型132A3被提供。
ASR引擎121A1和ASR模型132A1可以用于第一语言(例如英语)的话语的语音识别,并且附加ASR引擎122A3和附加ASR模型132A3可以用于第二语言(例如西班牙语)的话语的语音识别。图1B1的ASR引擎121A2和ASR模型132A2也可以用于第一语言,并且可以比ASR引擎121A1和ASR模型132A1更稳健和/或准确。然而,助理客户端120A的处理能力可能阻碍ASR引擎121A2和ASR模型132A2与ASR引擎122A3和附加ASR模型132A3一起被本地存储。然而,处理能力支持存储和利用ASR引擎121A1和ASR模型132A1以及附加ASR引擎122A3和附加ASR模型132A3。
在图1B2的示例中,本地存储ASR引擎121A1和ASR模型132A1以及附加ASR引擎122A3和附加ASR模型132A3代替图1B1的ASR引擎121A2和ASR模型132A2的决策可以基于使用统计信息,该使用统计信息指示在助理设备110A和110B(和/或助理设备110C和110D)处提供的口述话语包括第一语言口述话语和第二语言口述话语。在图1B1的示例中,使用统计信息可以指示仅第一语言的口述话语,导致选择图1B1中的更稳健的ASR引擎121A2和ASR模型132A2。
现在转到图1B3,相同的组101B被再次图示。在图1B3中,与图1B1中相同的适配已被进行,除了:(1)ASR引擎121A1和ASR模型132A1由ASR引擎122A4和ASR模型132A4替换,而不是由ASR引擎122A2和ASR模型132A2替换;(2)在助理设备110B上不存在暖线索引擎或者暖线索模型;以及(3)ASR引擎122B4和ASR模型132B4在助理设备110B上本地存储和利用。
ASR引擎122A4和ASR模型132A4可以被用于执行语音识别的第一部分,并且ASR引擎122B4和ASR模型132B4可以被用于执行语音识别的第二部分。例如,ASR引擎122A4可以利用ASR模型132A4来生成输出,该输出被传输给助理客户端120B,并且ASR引擎122B4可以在生成语音的识别时处理输出。作为一个特定示例,输出可以是表示候选识别的图,并且ASR引擎122B4可以在生成语音的识别时对图执行束搜索。作为另一特定示例,ASR模型132A4可以是端到端语音识别模型的初始/下游部分(即,第一神经网络层),并且ASR模型132B4可以是端到端语音识别模型的稍后/上游部分(即,第二神经网络层)。在这种示例中,端到端模型在两个助理设备110A和110B之间被拆分,输出可以是处理之后的初始部分的最后一层(例如嵌入)的状态。作为再一示例,ASR模型132A4可以是声学模型,并且ASR模型132B4可以是语言模型。在这种示例中,输出可以指示音素序列或者音素的概率分布序列,并且ASR引擎122B4可以利用语言模型来选择对应于该序列的转录/识别。
集体工作的ASR引擎122A4、ASR模型132A4、ASR引擎122B4和ASR模型132B4的稳健性和/或准确性可以超过图1B1的ASR引擎122A2和ASR模型132A2的稳健性和/或准确性。进一步地,助理客户端120A和助理客户端120B的处理能力可能阻碍ASR模型132A4和132B4在设备中的任一设备上单独存储和利用。然而,处理能力可以支持拆分模型并且在本文描述的ASR引擎122A4和122B4之间拆分处理角色。要注意的是,在助理设备110B上,清除暖线索引擎和暖线索模型可以支持存储和利用ASR引擎122B4和ASR模型132B4。换句话说,助理设备110B的处理能力无法支持暖线索引擎和暖线索模型与图1B3所图示的其他引擎和模型一起被存储和/或利用。
在图1B3的示例中,本地存储ASR引擎122A4、ASR模型132A4、ASR引擎122B4和ASR模型132B4代替图1B1的ASR引擎121A2和ASR模型132A2的决策可以基于使用统计信息,该使用统计信息指示助理设备110A和110B(和/或助理设备110C和110D)处的语音识别通常是低置信度的和/或通常是不准确的。例如,使用统计信息可以指示识别的置信度度量低于平均值(例如基于用户群体的平均值)和/或识别经常被用户校正(例如通过编辑转录的显示)。
现在转到图1C,设备组101C已建立,其中助理设备110A、110B和110C被包括在设备组101C中。在一些实施方式中,设备组101C可以响应于用户接口输入来生成,该用户接口输入明确地指示对助理设备110A、110B和110C进行分组的期望。例如,用户接口输入可以指示从零开始创建设备组101C或者替选地将助理设备110C添加到设备组101B(图1B1、1B2和1B3)从而创建修改组101C的期望。在一些实施方式中,设备组101C作为替代可以被自动生成。例如,设备组101B(图1B1、1B2和1B3)先前可以基于确定助理设备110A和110B非常接近来生成,并且在创建设备组101B之后,助理设备110C可以由用户移动,使得它现在接近设备110A和110B。因此,助理设备110C可以被自动添加到设备组101B,从而创建修改组101C。
无论组101C是如何被生成的,图1C示出了可以响应于助理设备110A、110B和110C被包括在组101C中而对它们进行的适配的一个示例。
在图1C中,助理设备110B已经具有与图1B3中相同的适配。进一步地,助理设备110A具有与图1B3中相同的适配,除了:(1)认证引擎126A1和VAD引擎128A1及其对应模型13A1和138A1已被清除;(2)唤醒线索引擎121A1和唤醒线索模型131A1已被替换为唤醒线索引擎121A2和唤醒线索模型131A2;以及(3)在助理设备110B上不存在暖线索引擎或者暖线索模型。存储在助理设备110C上的模型和引擎未被适配。然而,助理客户端120C可以被适配为实现与助理客户端120A和助理120B的助理请求的协作处理。
在图1C中,认证引擎126A1和VAD引擎128A1已从助理设备110A中被清除,因为对应体已经存在于助理设备110C上。在一些实施方式中,仅在来自这些组件的一些或所有数据与已经存在于助理设备110C上的对应体合并之后,认证引擎126A1和/或VAD引擎128A1才可以被清除。作为一个示例,认证引擎126A1可以存储第一用户和第二用户的声音嵌入,但是认证引擎126C1可能仅存储第一用户的声音嵌入。在清除认证引擎126A1之前,第二用户的声音嵌入可以被本地传输给认证引擎126C1,使得这种声音嵌入可以由认证引擎126C1利用,确保适配前能力在适配后被维持。作为另一示例,认证引擎126A1可以存储音频数据的实例,该实例分别捕获第二用户的话语并且被用于生成第二用户的声音嵌入,并且认证引擎126C1可能缺少第二用户的任何声音嵌入。在清除认证引擎126A1之前,音频数据的实例可以从认证引擎126A1被本地传输给认证引擎126C1,使得音频数据的实例可以由认证引擎126C1利用以为第二用户生成声音嵌入,利用设备上认证模型136C1,确保适配前能力在适配后被维持。进一步地,唤醒线索引擎121A1和唤醒线索模型131A1已被替换为更小的存储大小的唤醒线索引擎121A2和唤醒线索模型131A2。例如,唤醒线索引擎121A1和唤醒线索模型131A1支持检测口述唤醒线索和基于图像的唤醒线索,而唤醒线索引擎121A2和唤醒线索模型131A2仅支持检测基于图像的唤醒线索。可选地,在清除唤醒线索引擎121A1和唤醒线索模型131A1之前,来自唤醒线索引擎121A1和唤醒线索模型131A1的基于图像的唤醒线索部分的个性化、训练实例和/或其他设置可以与唤醒线索引擎121A2和唤醒线索模型131A2合并,或者以其他方式与其共享。唤醒线索引擎121C1和唤醒线索模型131C1仅支持检测口述唤醒线索。因此,唤醒线索引擎121A2和唤醒线索模型131A2以及唤醒线索引擎121C1和唤醒线索模型131C1集体地支持检测口述和基于图像的唤醒线索。可选地,来自唤醒线索引擎121A1和唤醒线索模型131A1的口述线索部分的个性化和/或其他设置可以被传输给客户端设备110C,以与唤醒线索引擎121C1和唤醒线索模型131A1合并或者以其他方式与其共享。
进一步地,将唤醒线索引擎121A1和唤醒线索模型131A1替换为更小的存储大小的唤醒线索引擎121A2和唤醒线索模型131A2提供了额外的存储空间。该额外的存储空间以及通过清除认证引擎126A1和VAD引擎128A1及其对应模型13A1和138A1提供的额外存储空间为暖线索引擎127A2和暖线索模型137A2(集体地大于它们替换的暖线索引擎127A1和暖线索模型)提供空间。暖线索引擎127A2和暖线索模型137A2可以被用于监视与利用暖线索引擎127C1和暖线索模型137C1监视的不同的暖线索。
作为使用图1C的适配的助理请求的协作处理的一个示例,假设口述话语“OKAssistant,turn on the kitchen lights”被提供,并且助理设备120A是协调处理的主导(lead)设备。助理客户端110C的唤醒线索引擎121C1可以检测到唤醒线索“OK Assistant”的出现。作为响应,唤醒线索引擎121C1可以向助理设备110A和110B传输使ASR引擎122A4和122B4协作地处理唤醒线索之后捕获的音频数据的命令。被处理的音频数据可以是由助理设备110C的麦克风捕获的音频数据和/或由助理设备110B的麦克风和/或助理设备110C捕获的音频数据。
由ASR引擎122B4生成的转录可以被传递给NLU引擎123B2,以对第二分类集合的转录执行NLU,并且还传输给助理客户端120A,以使NLU引擎123A2对第一分类集合的转录执行NLU。由NLU引擎123B2执行的NLU的结果可以被传输给助理客户端120A,并且它可以基于这些结果以及来自NLU引擎123A2的结果来确定要使用哪些结果(如果有的话)。助理客户端120A可以将具有最高概率的NLU结果传输给助理客户端120B。助理客户端120B的履行引擎124B2可以利用这些NLU结果来确定要传输给“厨房灯”的命令,以使它们转变为“开启”状态,并且通过LAN 108传输这种命令。可选地,履行引擎124B2可以利用TTS引擎125B1来生成合成语音,该合成语音确认执行“打开厨房灯”。在这种情况下,合成语音可以在助理设备110B处由助理客户端120B渲染,被传输给助理设备110A以由助理客户端120A渲染,和/或被传输给助理设备110C以由助理客户端120C渲染。
现在转到图1D,设备组101D已建立,其中助理设备110C和110D被包括在设备组101D中。在一些实施方式中,设备组101D可以响应于用户接口输入来生成,该用户接口输入明确地指示对助理设备110C和110D进行分组的期望。在一些实施方式中,设备组101D作为替代可以被自动生成。
无论组101D是如何被生成的,图1D示出了可以响应于助理设备110C和110D被包括在组101D中而对它们进行的适配的一个示例。
在图1D中,助理设备110C的唤醒线索引擎121C1和唤醒线索模型131C1被替换为唤醒线索引擎121C2和唤醒线索模型131C2。进一步地,认证引擎126D1和认证模型136D1以及VAD引擎128D1和VAD模型138D2从助理设备110D中被清除。更进一步地,助理设备110D的唤醒线索引擎121D1和唤醒线索模型131D1被替换为唤醒线索引擎121D2和唤醒线索模型131D2,并且暖线索引擎127D1和暖线索模型137D1被替换为暖线索引擎127D2和暖线索模型137D2。
先前的唤醒线索引擎121C1和唤醒线索模型131C1可以仅被用于检测一个或多个唤醒词的第一集合,诸如“Hey Assistant”和“OK Assistant”。另一方面,唤醒线索引擎121C2和唤醒线索模型131C2可以仅检测一个或多个唤醒词的交替的第二集合,诸如“HeyComputer(嘿计算机)”和“OK Computer(好的计算机)”。先前的唤醒线索引擎121D1和唤醒线索模型131D1也可以仅被用于检测一个或多个唤醒词的第一集合,并且唤醒线索引擎121D2和唤醒线索模型131D2也可以仅被用于检测一个或多个唤醒词的第一集合。然而,唤醒线索引擎121D2和唤醒线索模型131D2比其替换的对应体更大,并且也更稳健(例如对背景噪声更稳健)和/或更准确。从助理设备110D清除引擎和模型可以使得更大大小的唤醒线索引擎121D2和唤醒线索模型131D2能够被利用。进一步地,集体地,唤醒线索引擎121C2和唤醒线索模型131C2以及唤醒线索引擎121D2和唤醒线索模型131D2支持检测唤醒词的两个集合,而助理客户端120C和120D中的每个助理客户端在适配之前只能检测第一集合。
与替换的唤醒线索引擎127D1和唤醒线索模型137D1相比,助理设备110D的暖线索引擎127D2和暖线索模型137D2可以需要更多计算能力。然而,这些能力通过从助理设备110D清除引擎和模型而可用。而且,由暖线索引擎127D2和暖线索模型137D1监视的暖线索可以是由暖线索引擎127C1和暖线索模型137D1监视的暖线索的补充。适配前,由唤醒线索引擎127D1和唤醒线索模型137D1监视的唤醒线索与由暖线索引擎127C1和暖线索模型137D1监视的暖线索相同。因此,通过协作处理,助理客户端120C和助理客户端120D可以监视更大量的唤醒线索。
要注意的是,在图1D的示例中,存在无法由助理客户端120C和120D在设备上协作地完全处理的许多助理请求。例如,助理客户端120C和120D缺少任何ASR引擎,缺少任何NLU引擎,并且缺少任何履行引擎。这可能是由于助理设备110C和110D的处理能力不支持任何这种引擎或模型而导致的。因此,针对助理客户端120C和120D不支持的暖线索的口述话语,基于云的助理组件140仍将需要被用于完全处理许多助理请求。然而,与适配前在的设备处个体地发生的任何处理相比,图1D的适配和基于该适配的协作处理仍然能够更稳健和/或准确。例如,适配支持检测附加唤醒线索和附加暖线索。
作为可能发生的协作处理的一个示例,假设口述话语“OK Computer,play somemusic(好的计算机,播放一些音乐)”。在这种示例中,唤醒线索引擎121D2可以检测到唤醒线索“OK Computer”。响应于唤醒线索引擎121D2可以导致与唤醒线索相对应的音频数据被传输给助理客户端120C。助理客户端120C的认证引擎126C1可以利用音频数据来确定唤醒线索的口述是否被认证给注册用户。唤醒线索引擎121D2还可以导致口述话语之后的音频数据被流式传输给基于云的助理组件140以用于进一步处理。音频数据可以在助理设备110D处被捕获或者在助理设备110C处被捕获(例如助理客户端120可以将命令传输给助理客户端120C,以使它响应于唤醒线索引擎121D2检测到唤醒线索而捕获音频数据)。进一步地,基于认证引擎126C1的输出的认证数据也可以与音频数据一起传输。例如,如果认证引擎126C1将唤醒线索的口述认证至注册用户,则认证数据可以包括注册用户的标识符。作为另一示例,如果认证引擎126C1未将唤醒线索的口述认证至任何注册用户,则认证数据可以包括反映了话语由访客用户提供的标识符。
各种特定示例已参照图1B1、1B2、1B3、1C和1D描述。然而,要注意的是,各种附加或替代组可以被生成和/或各种附加或替代适配可以响应于组的生成来执行。
图2是图示了适配组中的助理设备的设备上模型和/或处理角色的示例方法200的流程图。为了方便起见,流程图的操作参照执行操作的系统进行描述。该系统可以包括各种计算机系统的各种组件,诸如图1的自动化客户端120A至120D和/或图1的基于云的助理组件的组件中的一个或多个。而且,尽管方法200的操作以特定顺序被示出,但是这不旨在作为限制。一个或多个操作可以被重新排序、省略或者添加。
在框252中,系统生成助理设备组。例如,系统可以响应于用户接口输入来生成助理设备组,该用户接口输入明确地指示生成该组的期望。作为另一示例,系统可以响应于确定一个或多个条件被满足来自动生成该组。作为再一示例,系统可以响应于确定条件被满足来自动确定该组应该被生成,提供建议生成该组的用户接口输出,然后响应于肯定的用户接口来生成该组,该用户接口是响应于用户接口输出而接收到的。
在框254中,系统获得该组中的助理设备中的每个助理设备的处理能力。例如,系统可以是组中的助理设备中的一个助理设备。在这种示例中,助理设备可以获得它自己的处理能力,并且该组中的其他助理设备可以将其处理能力传输给助理设备。作为另一示例,助理设备的处理能力可以被存储在设备拓扑中,并且系统可以从设备拓扑中取回它们。作为再一示例,系统可以是基于云的组件,并且该组的助理设备可以分别将其处理能力传输给系统。
助理设备的处理能力可以包括基于一个或多个设备上处理器的能力的对应处理器值、基于设备上存储器的大小的对应存储器值和/或基于可用磁盘空间的对应磁盘空间值。例如,处理器值可以包括关于处理器的一个或多个操作频率的细节、关于处理器的缓存的大小的细节、处理器中的每个处理器是GPU、CPU还是DSP和/或其他细节。作为另一示例,处理器值可以附加地或替选地包括处理器的能力的更高级别的归类,诸如高、中或低或者GPU+CPU+DSP、高功率CPU+DSP、中功率CPU+DSP或者低功率CPU+DSP。作为另一示例,存储器值可以包括存储器的细节(诸如存储器的具体大小),或者可以包括存储器的更高级别的归类,诸如高、中或低。作为再一示例,磁盘空间值可以包括关于可用磁盘空间的细节(诸如磁盘空间的具体大小),或者可以包括可用磁盘空间的更高级别的归类,诸如高、中或低。
在框256中,系统在确定该组的设备上模型的总体集合(collective set)时利用框254的处理能力。例如,系统可以确定寻求最大化集体处理能力的使用的设备上模型集合,同时确保该集合中的设备上模型可以分别在设备上本地存储和使用,该设备可以存储和使用设备上模型。系统还可以寻求确保(如果可能的话)所选集合包括设备上模型的完整(或比其他候选集合更完整)管线。例如,与包括更稳健的NLU模型而没有ASR模型的集合相比,系统可以选择包括ASR模型但NLU模型不太稳健的集合。
在一些实施方式中,框256包括子框256A,其中系统在为该组选择设备上模型的总体集合时利用使用数据。过去的使用数据可以是与该组中的一个或多个助理设备处和/或生态系统的一个或多个附加助理设备处的过去助理交互相关的数据。在一些实施方式中,在子框256A中,系统在选择设备上模型以包括在集合中时考虑使用数据以及上面提到的考虑。例如,如果处理能力允许更准确的ASR模型(而不是不太准确的ASR模型)或者更稳健的NLU模型(而不是不太稳健的NLU模型)被包括在集合中但并非两者都被包括在集合中,则使用数据可以被用于确定选择哪个。例如,如果使用数据反映过去助理交互主要(或排他地)涉及由不太稳健的NLU模型(可以被包括在具有更准确的ASR模型的集合中)覆盖的意图,那么更准确的ASR模型可以被选择以包括在集合中。另一方面,如果使用数据反映了所包括的过去助理交互许多都涉及由更稳健的NLU模型而非不太稳健的NLU模型覆盖的意图,那么更稳健的NLU模型可以被选择以包括在集合中。在一些实施方式中,候选集合首先基于处理能力而不考虑使用数据来确定,然后,如果存在多个有效的候选集合,则使用数据可以被用于选择一个模型而不是其他模型。
在框258中,系统使助理设备中的每个助理设备本地存储设备上模型的总体集合中的对应子集。例如,系统可以向该组中的助理设备中的每个助理设备传递什么设备上模型应该被下载的对应指示。基于接收到的指示,助理设备中的每个助理设备然后可以从远程数据库下载对应模型。作为另一示例,系统可以取回设备上模型,并且将对应的设备上模型推送给该组中的助理设备中的每个助理设备。作为再一示例,针对适配前被存储在该组中的助理设备中的一个对应助理设备处并且在适配中将被存储在该组中的助理设备中的另一对应助理设备处的任何设备上模型,这种模型可以在相应设备之间被直接传递。例如,假设第一助理设备适配前存储ASR模型,并且在适配中,相同的ASR模型将被存储在第二助理设备上并且从第一助理设备中清除。在这种实例中,系统可以指命第一助理设备将ASR模型传输给第二助理设备,以本地存储在第二助理设备处(和/或指命第二助理设备从第一助理设备中下载它),并且第一助理设备随后可以清除ASR模型。除了避免WAN业务之外,本地传输适配前模型可以维持先前在传输时发生的这些设备上模型的任何个性化。针对生态系统的用户,与远程存储装置中的模型的非个性化的对应体相比,被个性化的模型可以更准确。作为又一示例,针对适配前包括存储的训练实例以在适配前个性化任何助理设备上的设备上模型的这些助理设备,这种训练实例可以被传递给适配后将具有从远程数据库下载的对应模型的助理设备。适配后具有设备上模型的助理设备然后可以利用训练实例来个性化从远程数据库下载的对应模型。从远程数据库下载的对应模型可以不同于(例如小于或大于)在适配前在其上利用训练实例的对应体,但训练实例仍然可以被用于个性化不同的下载的设备上模型。
在框260中,系统将对应角色指派给助理设备中的每个助理设备。在一些实施方式中,指派对应角色包括:使助理设备中的每个助理设备下载和/或实施与被本地存储在助理设备处的设备上模型相对应的引擎。引擎可以在执行对应处理角色(诸如执行所有或部分ASR,执行至少一些唤醒词的唤醒词识别,执行某些暖词的暖词识别和/或执行认证)时分别利用对应的设备上模型。在一些实施方式中,处理角色中的一个或多个仅在助理设备组中的主导设备的指命下被执行。例如,由给定设备利用设备上NLU模型执行的NLU处理角色可以仅响应于主导设备向给定设备传输用于NLU处理的对应文本和/或使NLU处理发生的具体命令而被执行。作为另一示例,由给定设备利用设备上暖线索引擎和设备上暖线索模型执行的暖词监视处理角色可以仅响应于主导设备向给定设备传输使暖词处理发生的命令而被执行。例如,主导设备可以使给定设备响应于在主导设备或该组中的另一设备处的警报发声而监视“停止”暖词的口述出现。在一些实施方式中,一个或多个处理角色可以至少选择性地独立于来自引导助理设备的任何指命来执行。例如,由给定设备利用设备上暖线索引擎和设备上暖线索模型执行的暖线索监视角色可以被连续执行,除非用户明确地禁用。作为另一示例,由给定设备利用设备上暖线索引擎和设备上暖线索模型执行的暖线索监视角色可以被连续执行,或者基于在给定设备处本地检测到的监视条件来执行。
在框262中,系统使在该组中的设备中的一个或多个处检测到的口述话语根据其角色在该组中的助理设备处被协作地本地处理。这种协作处理的各种非限制性示例在本文中描述。例如,示例参照图1B1、1B2、1B3、1C和1D描述。
在框264中,系统确定是否存在对该组的任何更改,诸如向该组添加设备,从该组移除设备或者禁用该组。如果否,则系统继续执行框262。如果是,则系统前进到框266。
在框266中,系统确定对该组的更改是否导致在该组中的一个或多个助理设备现在是单立的(solo)(即,不再被指派给组)。如果是,则系统前进到框268,并且使单立设备中的每个单立设备本地存储分组前设备上模型,并且承担其分组前设备上处理角色。换句话说,如果设备不再在该组中,则它可以被导致恢复到在响应于它被包括在该组中而执行的适配之前的状态。通过这些和其他方式,在恢复到该状态之后,单立设备可以以单立容量操作在功能上处理各种助理请求。在恢复到该状态之前,单立设备可能无法在功能上处理任何助理请求或者与它恢复到该状态之前本可以处理的助理请求相比至少更少数量的助理请求。
在框270中,系统确定在该更改组中是否剩余两个或更多个设备。如果是,则系统退回到框254,并且基于更改组来执行框254、256、258、260和262的另一迭代。例如,如果更改组包括附加助理设备而不丢失该组中的任何先前助理设备,则适配可以考虑到附加助理设备的附加处理能力来进行。如果框270中的决策为否,则该组已被解散,并且系统前进到框272,其中方法200结束(直到另一组被生成为止)。
图3是图示了在适配组中的助理设备的设备上模型和/或处理角色时可以由组中的多个助理设备中的每个助理设备实施的示例方法300的流程图。虽然方法300的操作按照特定顺序来示出,但是这并不旨在限制。一个或多个操作可以被重新排序、省略或者添加。
方法300的操作是可以由组中的助理设备中的每个助理设备执行的方法200的一个特定示例。因此,操作参照执行操作的助理设备(诸如图1的一个或多个助理客户端120A至120D)来描述。组中的助理设备中的每个助理设备可以响应于接收到输入来执行方法300,该输入指示它已被包括在组中。
在框352中,助理设备接收指示它已被包括在组中的分组指示。在框352中,助理设备还接收该组中的其他助理设备的标识符。例如,每个标识符可以是MAC地址、IP地址、指派给设备的标签(例如在设备拓扑中指派的使用)、序列号或其他标识符。
在可选框354中,助理设备向该组中的其他助理设备传输数据。数据使用在框352中接收到的标识符而被传输给其他设备。换句话说,标识符可以是网络地址,或者可以被用于找到要向其传输数据的网络地址。传输的数据可以包括本文描述的一个或多个处理值、另一设备标识符和/或其他数据。
在可选框356中,助理设备接收在框354中由其他设备传输的数据。
在框358中,基于可选地在框356中接收到的数据或者在框352中接收到的标识符,助理设备确定它是否是主导设备。例如,如果与在框352中接收到的其他标识符相比,设备自己的标识符是最低(或者替选地,最高)值,则设备可以将自身选择为主导者。作为另一示例,如果设备的处理值超过在可选框356中的数据中接收到的所有其他处理值,则设备可以将自身选择为主导者。其他数据可以在框354中被传输,并且在框356中被接收,并且这种其他数据可以同样地在助理设备处实现它是否应该是主导者的客观确定。更一般地,在框358中,助理设备可以在确定它是否应该是主导设备时利用一个或多个客观标准。
在框360中,助理设备确定在框358中它是否被确定为主导设备。未被确定为主导设备的助理设备然后将前进到框360的“否”分支。被确定为主导设备的助理设备将前进到框360的“是”分支。
在“是”分支中,在框360中,助理设备在确定组中的设备上模型的总体集合时利用从该组中的其他助理设备接收的处理能力以及它自己的处理能力。当可选框354未被执行或框354的数据不包括处理能力时,处理能力可以由其他助理设备在可选框352中或在框370中(如下所述)传输给主导设备。在一些实施方式中,框362可以与图2的方法200的框256共享共有的一个或多个方面。例如,在一些实施方式中,框362还可以包括在确定设备上模型的总体集合时考虑过去的使用数据。
在框364中,助理设备向组中的其他助理设备中的每个助理设备传输其他助理设备要下载的总体集合中的设备上模型的相应指示。在框364中,助理设备还可以可选地向组中的其他助理设备中的每个助理设备传输将由该助理设备利用设备上模型执行的处理角色的相应指示。
在框366中,助理设备下载和存储集合中的被指派给该助理设备的设备上模型。在一些实施方式中,框364和366可以与图2的方法200的框258共享共有的一个或多个方面。
在框368中,助理设备协调助理请求的协作处理,包括在执行协作处理的部分时利用它自己的设备上模型。在一些实施方式中,框368可以与图2的方法200的框262共享共有的一个或多个方面。
现在转到“否”分支,在可选框370中,助理设备将其处理能力传输给主导设备。例如,当框354被执行并且处理能力被包括在框354中传输的数据中时,框370可以被省略。
在框372中,助理设备从主导设备接收要下载的设备上模型的指示以及可选地接收处理角色的指示。
在框374中,助理设备下载和存储在框372中接收的设备上模型的指示中反映的设备上模型。在一些实施方式中,框372和374可以与图2的方法200的框258共享共有的一个或多个方面。
在框376中,助理设备在执行助理请求的协作处理的部分时利用其设备上模型。在一些实施方式中,框376可以与图2的方法200的框262共享共有的一个或多个方面。
图4是可以被可选地用于执行本文描述的技术的一个或多个方面的示例计算设备410的框图。在一些实施方式中,助理设备和/或其他组件中的一个或多个可以包括示例计算设备410的一个或多个组件。
计算设备410通常包括经由总线子系统412与若干外围设备通信的至少一个处理器414。这些外围设备可以包括存储子系统425(包括例如存储器子系统425和文件存储子系统426)、用户接口输出设备420、用户接口输入设备422和网络接口子系统416。输入和输出设备允许用户与计算设备410交互。网络接口子系统416提供到外部网络的接口,并且被耦合至其他计算设备中的对应接口设备。
用户接口输入设备422可以包括键盘、指向设备(诸如鼠标、轨迹球、触摸板或者绘图板)、扫描仪、被并入到显示器中的触摸屏、音频输入设备(诸如声音识别系统、麦克风)和/或其他类型的输入设备。通常,术语“输入设备”的使用旨在包括将信息输入到计算设备410中或者输入到通信网络上的所有可能类型的设备和方式。
用户接口输出设备420可以包括显示子系统、打印机、传真机或者非视觉显示器(诸如音频输出设备)。显示子系统可以包括阴极射线管(“CRT”)、平板设备(诸如液晶显示器(“LCD”))、投影设备或者用于创建可见图像的一些其他机构。显示子系统还可以提供非视觉显示器,诸如经由音频输出设备。通常,术语“输出设备”的使用旨在包括将来自计算设备410的信息输出到用户或者输出到另一机器或计算设备的所有可能类型的设备和方式。
存储子系统425存储提供本文描述的模块中的一些或者所有的功能性的编程和数据构造。例如,存储子系统425可以包括用于执行本文描述的方法中的一种或多种的所选方面和/或实施本文描绘的各种组件的逻辑。
这些软件模块通常由处理器414单独执行或者与其他处理器组合来执行。存储子系统中425中使用的存储器425可以包括若干存储器,该若干存储器包括用于在程序执行期间存储指令和数据的主随机存取存储器(“RAM”)430和固定指令被存储在其中的只读存储器(“ROM”)432。文件存储子系统426可以为程序和数据文件提供持久存储装置,并且可以包括硬盘驱动器、连同关联的可移除介质的软盘驱动器、CD-ROM驱动器、光学驱动器或者可移除介质盒。实施特定实施方式的功能性的模块可以由文件存储子系统426存储在存储子系统425中,或者存储在可由处理器414访问的其他机器中。
总线子系统412提供用于使计算设备410的各种组件和子系统按照预期来与彼此通信的机构。虽然总线子系统412被示意性地示出为单个总线,但是总线子系统的替代实施方式可以使用多个总线。
计算设备410可以是不同的类型,包括工作站、服务器、计算集群、刀片式服务器、服务器场或者任何其他数据处理系统或者计算设备。由于计算机和网络的不断变化的性质,出于图示一些实施方式的目的,图4中描绘的计算设备410的描述仅仅旨在作为具体示例。与图4中描绘的计算设备相比,计算设备410的具有更多或者更少组件的许多其他配置是可能的。
在本文描述的系统收集关于用户(或者通常在本文中称为“参与者”)的个人信息或者可以利用个人信息的情况下,用户可以被提供有以下机会:控制程序或者特征是否收集用户信息(例如关于用户的社交网络、社交动作或者活动、职业、用户的偏好或者用户的当前地理位置的信息)或者控制是否和/或如何从内容服务器接收可能与用户更相关的内容。而且,在特定数据被存储或者使用之前,该特定数据可以按照一种或多种方式来处置,使得个人可标识信息被移除。例如,用户的标识可以被处置,使得用户的个人可标识信息无法被确定,或者用户的地理位置(地理位置信息(诸如城市、邮政编码或者州级)从中获得)可以被一般化,使得用户的特定地理位置无法被确定。因此,用户可以控制关于用户的信息如何被收集和/或被使用。
在一些实施方式中,提供了一种方法,包括:生成不同助理设备的助理设备组。不同助理设备包括至少第一助理设备和第二助理设备。在生成该组时,第一助理设备包括在本地处理指向第一助理设备的助理请求时使用的本地存储的设备上模型的第一集合。进一步地,在生成该组时,第二助理设备包括在本地处理指向第二助理设备的助理请求时使用的本地存储的设备上模型的第二集合。该方法还包括:基于助理设备组中的不同助理设备中的每个助理设备的对应处理能力,确定本地存储的设备上模型的总体集合,以用于协作地本地处理指向助理设备组中的不同助理设备中的任何一个的助理请求。该方法还包括:响应于生成助理设备组,使不同助理设备中的每个助理设备本地存储该本地存储的设备上模型的总体集合的对应子集,并且将一个或多个对应的处理角色指派给助理设备组中的不同助理设备中的每个助理设备。处理角色中的每个处理角色利用本地存储的设备上模型中的一个或多个对应的本地存储的设备上模型。进一步地,使不同助理设备中的每个助理设备本地存储对应子集包括:使第一助理设备清除第一集合中的一个或多个第一设备上模型以为本地存储在第一助理设备上的对应子集提供存储空间,并且使第二助理设备清除第二集合中的一个或多个第二设备上模型以为本地存储在第二助理设备上的对应子集提供存储空间。该方法还包括:在将对应处理角色指派给助理设备组中的不同助理设备中的每个助理设备之后:经由助理设备组中的不同助理设备中的至少一个的麦克风,检测口述话语,并且响应于口述话语经由助理设备组的麦克风被检测到,使口述话语由助理设备组中的不同助理设备利用其对应处理角色来协作地本地处理。
本文公开的技术的这些和其他实施方式可以可选地包括以下特征中的一个或多个。
在一些实施方式中,使第一助理设备清除第一集合中的一个或多个第一设备上模型包括:使第一助理设备清除第一集合中的被用于检测第一唤醒词的第一设备唤醒词检测模型。在这些实施方式中,本地存储在第二助理设备上的对应子集包括被用于检测第一唤醒词的第二设备唤醒词检测模型,并且指派对应处理角色包括:向第二助理设备指派第一唤醒词检测角色,该第一唤醒词检测角色在监视第一唤醒词的出现时利用第二设备唤醒词检测模型。在这些实施方式中的一些实施方式中,口述话语包括第一唤醒词,接着是助理命令,并且在第一唤醒词检测角色中,第二助理设备检测第一唤醒词的出现,并且响应于检测到第一唤醒词的出现而引起对应处理角色中的附加处理角色的执行。在这些实施方式中的一些版本中,对应处理角色中的附加处理角色是由第一助理设备执行,并且第二助理设备通过向第一助理设备传输第一唤醒词的检测指示来引起对应处理角色中的附加处理角色的执行。
在一些实施方式中,本地存储在第一助理设备上的对应子集包括被用于检测一个或多个第一唤醒词的第一设备第一唤醒词检测模型,并且不包括被用于检测一个或多个第二唤醒词的任何唤醒词检测模型。在这些实施方式中的一些实施方式中,本地存储在第二助理设备上的对应子集包括被用于检测一个或多个第二热词的第二设备第二唤醒词检测模型,并且不包括被用于检测一个或多个第一唤醒词的任何唤醒词检测模型。在这些实施方式中的一些版本中,指派对应处理角色包括:向第一助理设备指派第一唤醒词检测角色,该第一唤醒词检测角色在监视一个或多个第一唤醒词的出现时利用第一设备唤醒词检测模型;以及向第二助理设备指派第二唤醒词检测角色,该第二唤醒词检测角色在监视一个或多个第二唤醒词的出现时利用第二设备唤醒词检测模型。
在一些实施方式中,本地存储在第一助理设备上的对应子集包括被用于执行第一语言的语音识别的第一语言语音识别模型,并且不包括被用于识别第二语言的语音的任何语音识别模型。在这些实施方式中的一些实施方式中,本地存储在第二助理设备上的对应子集包括被用于执行第二语言的语音识别的第二语言语音识别模型,并且不包括被用于识别第二语言的语音的任何语音识别模型。在这些实施方式中的一些版本中,指派对应处理角色包括:向第一助理设备指派第一语言语音识别角色,该第一语言语音识别角色在执行第一语言的语音识别时利用第一语言语音识别模型;以及向第二助理设备指派第二语言语音识别角色,该第二语言语音识别角色在执行第二语言的语音识别时利用第二语言语音识别模型。
在一些实施方式中,本地存储在第一助理设备上的对应子集包括被用于执行语音识别的第一部分的语音识别模型的第一部分,并且不包括语音识别模型的第二部分。在这些实施方式中的一些实施方式中,本地存储在第二助理设备上的对应子集包括被用于执行语音识别的第二部分的语音识别模型的第二部分,并且不包括语音识别模型的第一部分。在这些实施方式中的一些版本中,指派对应处理角色包括:向第一助理设备指派语言语音识别角色的第一部分,该语言语音识别角色的第一部分在生成对应语音的对应嵌入并且向第二助理设备传输对应嵌入时利用语音识别模型的第一部分;以及向第二助理设备指派第二语言语音识别角色,该第二语言语音识别角色在生成对应语音的对应识别时利用来自第一助理设备的对应嵌入和第二语言语音识别模型。
在一些实施方式中,本地存储在第一助理设备上的对应子集包括被用于执行语音识别的第一部分的语音识别模型。在这些实施方式中的一些实施方式中,指派对应处理角色包括:向第一助理设备指派语言语音识别角色的第一部分,该语言语音识别角色的第一部分在生成输出并且向第二助理设备传输对应输出时利用语音识别模型;以及向第二助理设备指派第二语言语音识别角色,该第二语言语音识别角色在生成对应语音的对应识别时对来自第一助理设备的对应输出执行束搜索。
在一些实施方式中,本地存储在第一助理设备上的对应子集包括被用于执行自然语言输入的语义分析的一个或多个适配前自然语言理解模型,并且一个或多个初始自然语言理解模型占用第一助理设备处的第一量的本地磁盘空间。在这些实施方式中的一些实施方式中,本地存储在第一助理设备上的对应子集包括一个或多个适配后自然语言理解模型,该一个或多个适配后自然语言理解模型除一个或多个初始自然语言理解模型外包括至少一个附加自然语言理解模型,并且占用第一助理设备处的第二量的本地磁盘空间,该第二量大于第一量。
在一些实施方式中,本地存储在第一助理设备上的对应子集包括被用于针对一个或多个第一分类的语义分析的第一设备自然语言理解模型,并且不包括被用于针对第二分类的语义分析的任何自然语言理解模型。在这些实施方式中的一些实施方式中,本地存储在第二助理设备上的对应子集包括被用于至少针对第二分类的语义分析的第二设备自然语言理解模型。
在一些实施方式中,助理设备组中的不同助理设备中的每个助理设备的对应处理能力包括基于一个或多个设备上处理器的能力的对应处理器值、基于设备上存储器的大小的对应存储器值以及基于可用磁盘空间的对应磁盘空间值。
在一些实施方式中,生成不同助理设备的助理设备组是响应于用户接口输入,该用户接口输入明确地指示对不同助理设备进行分组的期望。
在一些实施方式中,生成不同助理设备的助理设备组是响应于确定不同助理设备满足相对于彼此的一个或多个接近度条件而自动执行的。
在一些实施方式中,生成不同助理设备的助理设备组响应于肯定的用户接口输入来执行,该用户接口输入是响应于创建助理设备组的建议而接收到的,并且该建议是响应于确定不同助理设备满足相对于彼此的一个或多个接近度条件来自动生成。
在一些实施方式中,该方法还包括:在将对应处理角色指派给助理设备组中的不同助理设备中的每个助理设备之后,确定第一助理设备不再在该组中;以及响应于确定第一助理设备不再在该组中,使第一助理设备用第一集合中的第一设备上模型取代本地存储在第一助理设备上的对应子集。
在一些实施方式中,确定总体集合还基于使用数据,该使用数据反映该组中的助理设备中的一个或多个助理设备处的过去使用。
在这些实施方式中的一些实施方式中,确定总体集合包括:基于助理设备组中的不同助理设备中的每个助理设备的对应处理能力,确定多个候选集合,该多个候选集合能够分别由组中的助理设备集体地本地存储和集体地本地使用;以及基于使用数据,从候选集合中选择总体集合。
在一些实施方式中,提供了一种由助理设备的一个或多个处理器实施的方法。该方法包括:响应于确定助理设备被包括在助理设备组中,该助理设备组包括助理设备和一个或多个附加助理设备,确定助理设备是该组的主导设备。该方法还包括:响应于确定助理设备是该组中的主导设备,基于助理设备的处理能力并且基于一个或多个附加助理设备中的每个附加助理设备的接收到的处理能力,:确定设备上模型总体集合,用于协作地本地处理指向助理设备组中的不同助理设备中的任何一个的助理请求;以及针对设备上模型中的每个设备上模型,确定如下对应指定:该组中的助理设备中的哪个助理设备将本地存储设备上模型。该方法还包括:响应于确定助理设备是该组中的主导设备:与一个或多个附加助理设备通信,以使一个或多个附加助理设备分别本地存储具有针对该附加助理设备的对应指定的设备上模型中的任何一个;在助理设备处本地存储具有针对该助理设备的对应指定的设备上模型;以及向组中的助理设备中的每个助理设备指派一个或多个对应的处理角色,用于对指向该组的助理请求的协作本地处理。
本文公开的技术的这些和其他实施方式可以可选地包括以下特征中的一个或多个。
在一些实施方式中,确定助理设备是该组中的主导设备包括:将助理设备的处理能力与一个或多个附加助理设备中的每个附加助理设备的接收到的处理能力进行比较;以及基于比较来确定助理设备是该组中的主导设备。
在一些实施方式中,助理设备组是响应于用户接口输入来创建的,该用户接口输入明确地指示对不同助理设备进行分组的期望。
在一些实施方式中,该方法还包括:响应于确定助理设备是该组中的主导设备,并且响应于在该组中的助理设备中的一个或多个处接收到助理请求,使用指派给助理设备的对应处理角色,协调助理请求的协作本地处理。
在一些实施方式中,提供了一种由助理设备的一个或多个处理器实施的方法,并且包括确定助理设备已从不同助理设备的组中被移除。该组是已包括助理设备和至少一个附加助理设备的一个组。在助理设备从组中被移除时,助理设备本地存储设备上模型集合,并且设备上模型集合不足以在助理设备处本地地完全处理指向自动化助理的口述话语。该方法还包括:响应于确定助理设备已从助理设备组中被移除:使助理设备清除集合中的设备上模型中的一个或多个,并且取回并本地存储一个或多个附加的设备上模型。在取回并本地存储助理设备的一个或多个附加的设备上模型之后,一个或多个附加的设备上模型和集合中的设备上模型中的任何剩余设备上模型可以被用于在助理设备处本地地完全处理指向自动化助理的口述话语。
Claims (20)
1.一种由一个或多个处理器实施的方法,所述方法包括:
生成不同助理设备的助理设备组,所述不同助理设备至少包括第一助理设备和第二助理设备,其中,在生成所述组时:
所述第一助理设备包括在本地处理指向所述第一助理设备的助理请求时利用的本地存储的设备上模型的第一集合,并且
所述第二助理设备包括在本地处理指向所述第二助理设备的助理请求时利用的本地存储的设备上模型的第二集合;
基于所述助理设备组中的所述不同助理设备中的每个助理设备的对应处理能力,确定本地存储的设备上模型的总体集合,以于协作地本地处理指向所述助理设备组中的所述不同助理设备中的任何一个的助理请求;
响应于生成所述助理设备组:
使得所述不同助理设备中的每个助理设备本地存储本地存储的设备上模型的所述总体集合的对应子集,包括:使得所述第一助理设备清除所述第一集合中的一个或多个第一设备上模型以为本地存储在所述第一助理设备上的对应子集提供存储空间,以及使得所述第二助理设备清除所述第二集合中的一个或多个第二设备上模型以为本地存储在所述第二助理设备上的对应子集提供存储空间,以及
将一个或多个对应处理角色指派给所述助理设备组中的所述不同助理设备中的每个助理设备,所述处理角色中的每个处理角色利用所述本地存储的设备上模型中的一个或多个对应本地存储的设备上模型;以及
在将所述对应处理角色指派给所述助理设备组中的所述不同助理设备中的每个助理设备之后:
经由所述助理设备组中的所述不同助理设备中的至少一个的麦克风,检测口述话语,以及
响应于所述口述话语经由所述助理设备组的所述麦克风被检测到,使得所述口述话语由所述助理设备组中的所述不同助理设备利用其对应处理角色来协作地本地处理。
2.根据权利要求1所述的方法,
其中,使得所述第一助理设备清除所述第一集合中的一个或多个第一设备上模型包括:使得所述第一助理设备清除所述第一集合中的、被用于检测第一唤醒词的第一设备唤醒词检测模型;
其中,本地存储在所述第二助理设备上的所述对应子集包括被用于检测所述第一唤醒词的第二设备唤醒词检测模型;
其中,指派所述对应处理角色包括:向所述第二助理设备指派第一唤醒词检测角色,所述第一唤醒词检测角色在监视所述第一唤醒词的出现时利用所述第二设备唤醒词检测模型;
其中,所述口述话语包括第一唤醒词,接着是助理命令;并且
其中,在所述第一唤醒词检测角色中,所述第二助理设备检测所述第一唤醒词的出现,并且响应于检测到所述第一唤醒词的所述出现而使得执行所述对应处理角色中的附加处理角色。
3.根据权利要求2所述的方法,其中,所述对应处理角色中的所述附加处理角色是由所述第一助理设备执行的,并且其中,所述第二助理设备通过向所述第一助理设备传输所述第一唤醒词的检测指示来使得执行所述对应处理角色中的所述附加处理角色。
4.根据权利要求1所述的方法,
其中,本地存储在所述第一助理设备上的所述对应子集包括被用于检测一个或多个第一唤醒词的第一设备第一唤醒词检测模型,并且不包括被用于检测一个或多个第二唤醒词的任何唤醒词检测模型;
其中,本地存储在所述第二助理设备上的所述对应子集包括被用于检测一个或多个第二热词的第二设备第二唤醒词检测模型,并且不包括被用于检测所述一个或多个第一唤醒词的任何唤醒词检测模型;
其中,指派所述对应处理角色包括:向所述第一助理设备指派第一唤醒词检测角色,所述第一唤醒词检测角色在监视所述一个或多个第一唤醒词的出现时利用所述第一设备唤醒词检测模型;并且
其中,指派所述对应处理角色包括:向所述第二助理设备指派第二唤醒词检测角色,所述第二唤醒词检测角色在监视所述一个或多个第二唤醒词的出现时利用所述第二设备唤醒词检测模型。
5.根据任一前述权利要求所述的方法,
其中,本地存储在所述第一助理设备上的所述对应子集包括被用于执行第一语言的语音识别的第一语言语音识别模型,并且不包括被用于识别第二语言的语音的任何语音识别模型;
其中,本地存储在所述第二助理设备上的所述对应子集包括被用于执行第二语言的语音识别的第二语言语音识别模型,并且不包括被用于识别所述第二语言的语音的任何语音识别模型;
其中,指派所述对应处理角色包括:向所述第一助理设备指派第一语言语音识别角色,所述第一语言语音识别角色在执行所述第一语言的语音识别时利用所述第一语言语音识别模型;并且
其中,指派所述对应处理角色包括:向所述第二助理设备指派第二语言语音识别角色,所述第二语言语音识别角色在执行所述第二语言的语音识别时利用所述第二语言语音识别模型。
6.根据权利要求1至4中任一项所述的方法,
其中,本地存储在所述第一助理设备上的所述对应子集包括被用于执行语音识别的第一部分的语音识别模型的第一部分,并且不包括所述语音识别模型的第二部分;
其中,本地存储在所述第二助理设备上的所述对应子集包括被用于执行语音识别的所述第二部分的所述语音识别模型的所述第二部分,并且不包括所述语音识别模型的所述第一部分;
其中,指派所述对应处理角色包括:向所述第一助理设备指派语言语音识别角色的第一部分,所述语言语音识别角色的第一部分在生成对应语音的对应嵌入并且向所述第二助理设备传输所述对应嵌入时利用所述语音识别模型的所述第一部分;并且
其中,指派所述对应处理角色包括:向所述第二助理设备指派第二语言语音识别角色,所述第二语言语音识别角色在生成所述对应语音的对应识别时利用来自所述第一助理设备的所述对应嵌入和所述第二语言语音识别模型。
7.根据权利要求1至4中的任一项所述的方法,
其中,本地存储在所述第一助理设备上的所述对应子集包括被用于执行语音识别的第一部分的语音识别模型;
其中,指派所述对应处理角色包括:向所述第一助理设备指派语言语音识别角色的第一部分,所述语言语音识别角色的第一部分在生成输出并且向所述第二助理设备传输对应的输出时利用所述语音识别模型;并且
其中,指派所述对应处理角色包括:向所述第二助理设备指派第二语言语音识别角色,所述第二语言语音识别角色在生成所述对应语音的对应识别时对来自所述第一助理设备的对应的输出执行束搜索。
8.根据任一前述权利要求所述的方法,
其中,本地存储在所述第一助理设备上的所述对应子集包括被用于执行自然语言输入的语义分析的一个或多个适配前自然语言理解模型,
其中,所述一个或多个初始自然语言理解模型占用所述第一助理设备处的第一量的本地磁盘空间;
其中,本地存储在所述第一助理设备上的所述对应子集包括一个或多个适配后自然语言理解模型,所述一个或多个适配后自然语言理解模型除所述一个或多个初始自然语言理解模型外包括至少一个附加自然语言理解模型,
其中所述一个或多个适配后自然语言理解模型占用所述第一助理设备处的第二量的本地磁盘空间,所述第二量大于所述第一量。
9.根据权利要求1至7中的任一项所述的方法,
其中,本地存储在所述第一助理设备上的所述对应子集包括被用于针对一个或多个第一分类的语义分析的第一设备自然语言理解模型,并且不包括被用于针对第二分类的语义分析的任何自然语言理解模型;并且
其中,本地存储在所述第二助理设备上的所述对应子集包括被用于至少针对所述第二分类的语义分析的第二设备自然语言理解模型。
10.根据任一前述权利要求所述的方法,其中,所述助理设备组中的所述不同助理设备中的每个助理设备的所述对应处理能力包括基于一个或多个设备上处理器的能力的对应处理器值、基于设备上存储器的大小的对应存储器值以及基于可用磁盘空间的对应磁盘空间值。
11.根据任一前述权利要求所述的方法,其中,生成不同助理设备的所述助理设备组是响应于用户接口输入,所述用户接口输入明确地指示对所述不同助理设备进行分组的期望。
12.根据权利要求1至10中的任一项所述的方法,其中,生成不同助理设备的所述助理设备组是响应于确定所述不同助理设备满足相对于彼此的一个或多个接近度条件而自动执行的。
13.根据权利要求1至10中的任一项所述的方法,还包括:在向所述助理设备组中的所述不同助理设备中的每个助理设备指派所述对应处理角色之后:
确定所述第一助理设备不再在所述组中;以及
响应于确定所述第一助理设备不再在所述组中:
使得所述第一助理设备用所述第一集合中的所述第一设备上模型取代本地存储在所述第一助理设备上的所述对应子集。
14.根据任一前述权利要求所述的方法,其中,确定所述总体集合还基于使用数据,所述使用数据反映所述组中的所述助理设备中的一个或多个助理设备处的过去使用。
15.根据权利要求14所述的方法,其中,确定所述总体集合包括:
基于所述助理设备组中的所述不同助理设备中的每个助理设备的对应的处理能力,确定多个候选集合,所述多个候选集合能够分别由所述组中的所述助理设备集体地本地存储和集体地本地使用;以及
基于所述使用数据,从所述候选集合中选择所述总体集合。
16.一种由助理设备的一个或多个处理器实施的方法,所述方法包括:
响应于确定所述助理设备被包括在助理设备组中,所述助理设备组包括所述助理设备和一个或多个附加助理设备:
确定所述助理设备是所述组中的主导设备;
响应于确定所述助理设备是所述组中的所述主导设备:
基于所述助理设备的处理能力并且基于所述一个或多个附加助理设备中的每个附加助理设备的接收到的处理能力:
确定设备上模型的总体集合,用于协作地本地处理指向所述助理设备组中的所述不同助理设备中的任何一个的助理请求;以及
针对所述设备上模型中的每个设备上模型,确定如下对应指定:所述组中的所述助理设备中的哪个助理设备将本地存储该设备上模型;
与所述一个或多个附加助理设备通信,以使得所述一个或多个附加助理设备分别本地存储具有针对该附加助理设备的所述对应指定的所述设备上模型中的任何一个;
在所述助理设备处本地存储具有针对所述助理设备的所述对应指定的所述设备上模型;以及
向所述组中的助理设备中的每个助理设备指派一个或多个对应的处理角色,用于对指向所述组的助理请求的协作本地处理。
17.根据权利要求16所述的方法,其中,确定所述助理设备是所述组中的所述主导设备包括:
将所述助理设备的所述处理能力与所述一个或多个附加助理设备中的每个附加助理设备的接收到的处理能力进行比较;以及
基于所述比较来确定所述助理设备是所述组中的所述主导设备。
18.根据权利要求16或权利要求17所述的方法,其中,所述助理设备组是响应于用户接口输入而被创建的,所述用户接口输入明确地指示对所述助理设备进行分组的期望。
19.根据权利要求16至18中的任一项所述的方法,还包括:响应于确定所述助理设备是所述组中的所述主导设备,并且响应于在所述组中的所述助理设备中的一个或多个处接收到助理请求:
使用指派给所述助理设备的对应的处理角色,协调所述助理请求的协作本地处理。
20.一种由助理设备的一个或多个处理器实施的方法,所述方法包括:
确定助理设备已从不同助理设备的组中被移除,所述组已包括所述助理设备和至少一个附加助理设备,其中,在所述助理设备从所述组中被移除时:
所述助理设备本地存储设备上模型的集合,所述设备上模型的集合不足以在所述助理设备处本地完全处理指向自动化助理的口述话语;以及
响应于确定所述助理设备已从所述助理设备组中被移除:
使得所述助理设备清除所述集合中的所述设备上模型中的一个或多个,并且取回并本地存储一个或多个附加的设备上模型,其中,在取回并本地存储所述助理设备的所述一个或多个附加的设备上模型之后,所述一个或多个附加的设备上模型和所述集合中的所述设备上模型中的任何剩余设备上模型能够被用于在所述助理设备处本地完全处理指向所述自动化助理的所述口述话语。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/098,013 US11749284B2 (en) | 2020-11-13 | 2020-11-13 | Dynamically adapting on-device models, of grouped assistant devices, for cooperative processing of assistant requests |
US17/098,013 | 2020-11-13 | ||
PCT/US2020/064626 WO2022103413A1 (en) | 2020-11-13 | 2020-12-11 | Dynamically adapting on-device models, of grouped assistant devices, for cooperative processing of assistant requests |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115668124A true CN115668124A (zh) | 2023-01-31 |
Family
ID=74184871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080100916.8A Pending CN115668124A (zh) | 2020-11-13 | 2020-12-11 | 动态地适配分组助理设备的设备上模型以用于助理请求的协作处理 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11749284B2 (zh) |
EP (1) | EP4133362A1 (zh) |
JP (2) | JP7507885B2 (zh) |
KR (1) | KR20230025457A (zh) |
CN (1) | CN115668124A (zh) |
WO (1) | WO2022103413A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11749284B2 (en) * | 2020-11-13 | 2023-09-05 | Google Llc | Dynamically adapting on-device models, of grouped assistant devices, for cooperative processing of assistant requests |
US11676594B2 (en) * | 2020-12-03 | 2023-06-13 | Google Llc | Decaying automated speech recognition processing results |
US11948565B2 (en) * | 2020-12-11 | 2024-04-02 | Google Llc | Combining device or assistant-specific hotwords in a single utterance |
US20240249720A1 (en) * | 2023-01-24 | 2024-07-25 | Google Llc | Bypassing hot word detection for an automated assistant based on device-to-device proximity |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150058018A1 (en) * | 2013-08-23 | 2015-02-26 | Nuance Communications, Inc. | Multiple pass automatic speech recognition methods and apparatus |
US20150215350A1 (en) * | 2013-08-27 | 2015-07-30 | Persais, Llc | System and method for distributed virtual assistant platforms |
US20180108343A1 (en) * | 2016-10-14 | 2018-04-19 | Soundhound, Inc. | Virtual assistant configured by selection of wake-up phrase |
US20180182397A1 (en) * | 2016-12-22 | 2018-06-28 | Google Inc. | Collaborative voice controlled devices |
US20180332118A1 (en) * | 2017-05-12 | 2018-11-15 | Apple Inc. | Synchronization and task delegation of a digital assistant |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000132400A (ja) | 1998-10-27 | 2000-05-12 | Minolta Co Ltd | モジュラー型画像処理システムにおける画像処理装置並びに該装置に適用されるメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及びメモリ管理方法 |
US7031915B2 (en) * | 2003-01-23 | 2006-04-18 | Aurilab Llc | Assisted speech recognition by dual search acceleration technique |
EP1654727A4 (en) * | 2003-07-23 | 2007-12-26 | Nexidia Inc | INTERROGATIONS FOR THE DETECTION OF WORDS |
US9753712B2 (en) * | 2008-03-20 | 2017-09-05 | Microsoft Technology Licensing, Llc | Application management within deployable object hierarchy |
US9305548B2 (en) * | 2008-05-27 | 2016-04-05 | Voicebox Technologies Corporation | System and method for an integrated, multi-modal, multi-device natural language voice services environment |
US8667112B2 (en) * | 2010-07-20 | 2014-03-04 | Lg Electronics Inc. | Selective interaction between networked smart devices |
US9285944B1 (en) * | 2011-04-22 | 2016-03-15 | Angel A. Penilla | Methods and systems for defining custom vehicle user interface configurations and cloud services for managing applications for the user interface and learned setting functions |
US10419907B2 (en) * | 2012-02-22 | 2019-09-17 | Qualcomm Incorporated | Proximity application discovery and provisioning |
US10296516B2 (en) * | 2012-05-21 | 2019-05-21 | Here Global B.V. | Method and apparatus for navigation using multiple synchronized mobile devices |
US10152987B2 (en) * | 2014-06-23 | 2018-12-11 | Google Llc | Remote invocation of mobile device actions |
US9467795B2 (en) * | 2014-09-11 | 2016-10-11 | Motorola Solutions, Inc. | Method and apparatus for application optimization and collaboration of wearable devices |
US10210003B2 (en) * | 2014-09-30 | 2019-02-19 | Nuance Communications, Inc. | Methods and apparatus for module arbitration |
US9812126B2 (en) * | 2014-11-28 | 2017-11-07 | Microsoft Technology Licensing, Llc | Device arbitration for listening devices |
US10460251B2 (en) | 2015-06-19 | 2019-10-29 | Preferred Networks Inc. | Cross-domain time series data conversion apparatus, methods, and systems |
US20160378455A1 (en) * | 2015-06-29 | 2016-12-29 | Facebook, Inc. | Methods and Systems for Installing an Application Version via Close-Range Communications |
US10261830B2 (en) * | 2016-06-14 | 2019-04-16 | Microsoft Technology Licensing, Llc | Cross-device task execution |
KR102573383B1 (ko) * | 2016-11-01 | 2023-09-01 | 삼성전자주식회사 | 전자 장치 및 전자 장치 제어 방법 |
KR20180083587A (ko) * | 2017-01-13 | 2018-07-23 | 삼성전자주식회사 | 전자 장치 및 그의 동작 방법 |
US11164570B2 (en) * | 2017-01-17 | 2021-11-02 | Ford Global Technologies, Llc | Voice assistant tracking and activation |
US10255917B2 (en) * | 2017-03-31 | 2019-04-09 | International Business Machines Corporation | Coordinating the execution of a voice command across multiple connected devices |
EP3806092B1 (en) | 2017-05-12 | 2022-07-20 | Apple Inc. | Task delegation of a digital assistant |
US10665232B2 (en) | 2017-05-24 | 2020-05-26 | Harman International Industries, Inc. | Coordination among multiple voice recognition devices |
EP4181553A1 (en) * | 2017-12-08 | 2023-05-17 | Google LLC | Distributed identification in networked system |
US10536286B1 (en) * | 2017-12-13 | 2020-01-14 | Amazon Technologies, Inc. | Network conference management and arbitration via voice-capturing devices |
US10958457B1 (en) * | 2018-01-16 | 2021-03-23 | Amazon Technologies, Inc. | Device control based on parsed meeting information |
US10762900B2 (en) * | 2018-03-07 | 2020-09-01 | Microsoft Technology Licensing, Llc | Identification and processing of commands by digital assistants in group device environments |
US10782986B2 (en) * | 2018-04-20 | 2020-09-22 | Facebook, Inc. | Assisting users with personalized and contextual communication content |
CN110800046B (zh) | 2018-06-12 | 2023-06-30 | 深圳市合言信息科技有限公司 | 语音识别及翻译方法以及翻译装置 |
US11100923B2 (en) | 2018-09-28 | 2021-08-24 | Sonos, Inc. | Systems and methods for selective wake word detection using neural network models |
US11481186B2 (en) * | 2018-10-25 | 2022-10-25 | At&T Intellectual Property I, L.P. | Automated assistant context and protocol |
WO2020091454A1 (en) * | 2018-10-31 | 2020-05-07 | Samsung Electronics Co., Ltd. | Method and apparatus for capability-based processing of voice queries in a multi-assistant environment |
CN112712803B (zh) | 2019-07-15 | 2022-02-25 | 华为技术有限公司 | 一种语音唤醒的方法和电子设备 |
US11038934B1 (en) * | 2020-05-11 | 2021-06-15 | Apple Inc. | Digital assistant hardware abstraction |
US11929079B2 (en) * | 2020-10-27 | 2024-03-12 | Samsung Electronics Co., Ltd | Electronic device for managing user model and operating method thereof |
US11749284B2 (en) * | 2020-11-13 | 2023-09-05 | Google Llc | Dynamically adapting on-device models, of grouped assistant devices, for cooperative processing of assistant requests |
-
2020
- 2020-11-13 US US17/098,013 patent/US11749284B2/en active Active
- 2020-12-11 EP EP20842063.8A patent/EP4133362A1/en active Pending
- 2020-12-11 CN CN202080100916.8A patent/CN115668124A/zh active Pending
- 2020-12-11 JP JP2022569601A patent/JP7507885B2/ja active Active
- 2020-12-11 WO PCT/US2020/064626 patent/WO2022103413A1/en unknown
- 2020-12-11 KR KR1020237001778A patent/KR20230025457A/ko unknown
-
2023
- 2023-07-28 US US18/361,468 patent/US20230377580A1/en active Pending
-
2024
- 2024-03-26 JP JP2024049754A patent/JP2024079788A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150058018A1 (en) * | 2013-08-23 | 2015-02-26 | Nuance Communications, Inc. | Multiple pass automatic speech recognition methods and apparatus |
US20150215350A1 (en) * | 2013-08-27 | 2015-07-30 | Persais, Llc | System and method for distributed virtual assistant platforms |
US20180108343A1 (en) * | 2016-10-14 | 2018-04-19 | Soundhound, Inc. | Virtual assistant configured by selection of wake-up phrase |
US20180182397A1 (en) * | 2016-12-22 | 2018-06-28 | Google Inc. | Collaborative voice controlled devices |
US20180332118A1 (en) * | 2017-05-12 | 2018-11-15 | Apple Inc. | Synchronization and task delegation of a digital assistant |
Also Published As
Publication number | Publication date |
---|---|
EP4133362A1 (en) | 2023-02-15 |
US20230377580A1 (en) | 2023-11-23 |
JP2024079788A (ja) | 2024-06-11 |
JP7507885B2 (ja) | 2024-06-28 |
KR20230025457A (ko) | 2023-02-21 |
US20220157318A1 (en) | 2022-05-19 |
WO2022103413A1 (en) | 2022-05-19 |
JP2023535859A (ja) | 2023-08-22 |
US11749284B2 (en) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11948556B2 (en) | Detection and/or enrollment of hot commands to trigger responsive action by automated assistant | |
JP7507885B2 (ja) | アシスタントリクエストの協調的処理のための、グループ化されたアシスタントデバイスの、オンデバイスモデルを動的に適応させること | |
JP7371135B2 (ja) | 特定話者スピーチモデルを使用した話者認識 | |
US20220157321A1 (en) | Generating and/or utilizing voice authentication biasing parameters for assistant devices | |
JP7554921B2 (ja) | 自動アシスタントに関する自然な会話を可能にすること | |
US12094454B2 (en) | Multimodal intent understanding for automated assistant | |
US20230031461A1 (en) | Providing certain reasoning with respect to fulfillment of an assistant command | |
US12020703B2 (en) | Enabling natural conversations with soft endpointing for an automated assistant | |
CN117223053A (zh) | 自动适配基于音频数据的助理处理 | |
US12106755B2 (en) | Warm word arbitration between automated assistant devices | |
US20240203411A1 (en) | Arbitration between automated assistant devices based on interaction cues | |
US11893996B1 (en) | Supplemental content output | |
US20240312460A1 (en) | Enabling natural conversations with soft endpointing for an automated assistant | |
WO2023114087A1 (en) | Warm word arbitration between automated assistant devices | |
CN118339609A (zh) | 自动化助理装置之间的暖词仲裁 | |
WO2023009156A1 (en) | Providing certain reasoning with respect to fulfillment of an assistant command | |
KR20230153450A (ko) | 자동 스피치 인식의 로컬 실행을 위한 디바이스 중재 | |
CN116711283A (zh) | 提供关于履行助理命令的确定性推理 | |
CN117121100A (zh) | 为自动化助理启用具有软端点的自然对话 |
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 |