具有动态可切换端点的基于语音的用户接口的制作方法

文档序号:23068200发布日期:2020-11-25 17:55阅读:124来源:国知局
具有动态可切换端点的基于语音的用户接口的制作方法

相关申请的交叉引用

本申请要求于2018年3月26日提交的美国专利申请15/936,109的优先权,该申请的全部公开内容通过引用并入本文中。

本公开总体上涉及基于语音的用户接口,并且更具体地,涉及使用具有动态可切换端点(例如,输入设备、输出设备和/或受控设备)的基于语音的接口来控制设备的方法和系统。



背景技术:

最近,基于语音的数字助理(例如苹果的siri、亚马逊的echo、谷歌的googleassistant和微软的cortana等)已被引入市场,以处理诸如家用电器控制、web搜索、日历、提醒之类的各种任务。此类基于语音的数字助理的一个优势是用户可以在不用手持或者甚至不用看向设备的情况下以免手动的方式与该设备交互。通常,为了启动基于语音的助理,用户可以按下中央控制设备(例如,智能手机或中央通信集线器)的按钮或在中央控制设备的触摸屏上选择图标,或向中央控制设备说出触发短语(例如,预定义的唤醒词或命令)。基于语音的数字助理在被激活后理解其接收到的语音命令,并执行动作(例如,提供信息性答复和/或发送编码指令以控制诸如智能家居环境中的电器之类的外围设备)。

使用中央控制设备上的基于语音的用户接口来控制多个设备具有许多局限性。例如,用户必须一直处于中央控制设备的可及范围内以便激活数字助理(例如,通过按下中央控制设备上的按钮或向中央控制设备说出唤醒词)。中央控制设备价格较贵,并且制造和维护困难且费用高。即使使用多个中央控制设备,它们的动作彼此独立,仍有可能彼此冲突。

因此,有益的是提供一种改进方法,用以对通过使用基于语音的用户接口的数字助理来控制多个设备(例如,家用电器和其他设备)的方式进行改进。



技术实现要素:

因此,需要一种使用数字助理通过基于语音的用户接口来控制多个设备(例如,家用电器和其他设备)的方法。

下述的实施例提供了通过具有动态可切换端点(例如,输入端点设备、输出端点设备和/或受控端点设备)的基于语音的用户接口来控制多个设备的系统和方法,并且一般而言,提供了对具有动态可切换端点设备的数字助理进行控制的系统和方法。

在一些实施例中,一种对具有动态可切换端点设备的数字助理进行控制的方法,包括:在具有一个或多个处理器和存储器的计算系统中:注册多个输入端点设备和多个受控端点设备,其中,多个输入端点设备中的每个输入端点设备具有各自的音频输入接口,并且每个输入端点设备被配置成通过网络将捕获到的语音输入传输至计算系统,并且其中,多个受控端点设备中的每个受控端点设备被配置成根据通过网络从计算系统接收到的相应指令来执行请求的任务;以及针对从用户到计算系统的多个基于语音的请求中的每个基于语音的请求动态地选择相应的输入端点设备和相应的受控设备,包括:在第一时间点,从多个输入端点设备中的两个或更多个输入端点设备的第一集合中获取第一语音输入的相应实例;基于已经从多个输入端点设备中的两个或多个输入端点设备的第一集合中获取的第一语音输入的相应实例,来获得第一语音输入的代表副本;基于第一语音输入的代表副本确定第一可执行意图;根据第一可执行意图,将第一编码指令分派给从多个受控端点设备中选择的第一受控端点设备。

在一些实施例中,该方法还包括:注册多个输出端点设备,其中,多个输出端点设备中的每个输出端点设备具有各自的音频输出接口,该音频输出接口被配置成输出通过网络从计算系统接收到的音频内容;以及针对从用户到计算系统的多个基于语音的请求中的每个基于语音的请求动态地选择相应的输出端点设备,包括:将与第一可执行意图对应的第一音频输出通过网络分派给从多个输出端点设备中选择的第一输出端点设备,其中,第一输出端点设备输出第一音频输出。

根据一些实施例,提供了一种计算机可读存储介质(例如,非暂时性计算机可读存储介质),该计算机可读存储介质存储由电子设备的一个或多个处理器执行的一个或多个程序,该一个或多个程序包括执行本文所述的任何方法的指令。

根据一些实施例,提供了一种电子设备(例如,便携式电子设备),该电子设备包括执行本文所述的任何方法的装置。

根据一些实施例,提供了一种电子设备(例如,便携式电子设备),该电子设备包括一个或多个处理器和存储由一个或多个处理器执行的一个或多个程序的存储器,该一个或多个程序包括执行本文描述的任何方法的指令。

根据一些实施例,提供了一种在电子设备中使用的信息处理装置,该信息处理装置包括执行本文所述的任何方法的装置。

附图说明

为了更好地理解各种所描述的实施例,应当参考结合以下附图所描述以下实施例,在附图中,在整体附图中相似的附图标记指代对应的部分。

图1a是示出常规配置的框图,在该常规配置中数字助理通过由中央控制设备(例如,智能手机、平板电脑或智能集线器)以及具有其自己独立的语音输入接口的语音控制设备(例如,智能冰箱)提供的基于语音的用户接口进行操作。

图1b是示出根据一些实施例的改进配置的框图,在该改进配置中数字助理通过具有动态可切换端点(例如,输入设备、输出设备和受控设备)的基于语音的用户接口进行操作。

图2是根据一些实施例的包括多个可由数字助理控制的家庭设备的智能家居环境。

图3a是示出根据一些实施例的数字助理的功能的框图。

图3b是示出根据一些实施例的数字助理的i/o处理模块的框图。

图4a-4d是示出根据一些实施例的具有动态可切换端点的基于语音的接口的各种操作场景的框图。

图5是示出根据一些实施例对具有动态可切换端点设备的数字助理进行控制的方法的流程图。

图6是示出根据一些实施例的数字助理系统或数字助理服务器系统的框图。

在所有附图中,相似的附图标记指代对应的部分。

具体实施方式

下文描述的实施例提供了通过在多个端点设备之间动态地切换输入和输出通道的数字助理,来对具有动态可切换端点设备的数字助理进行控制的系统和方法(例如,包括控制具有或不具有内置音频输入接口的多个家庭设备(例如,包括具有内置音频输入接口的端点设备和不具有内置音频输入接口的端点设备))。在一些实施例中,本文所描述的系统和方法与中央控制设备(例如智能手机、平板设备或专用通信集线器等)结合使用或替换中央控制设备使用。

在一些实施例中,使用电子设备中的语音触发器来启动基于语音的助理。与基于语音的数字助理(或其他基于语音的服务,例如语音转文本转录服务)的交互通常在用户发出触发短语(例如,“你好,助理”)或按下控制设备(例如智能手机或中央通信集线器)的功能键(例如按钮或图标)时开始,以激活数字助理。一旦数字助理被激活(例如通过指示灯、声音(例如,哔哔声)或有声输出(例如,“我能为您做什么?”来指示)),用户就可以继续发出其他语音命令或询问以描述用户希望数字助理执行的任务。数字助理处理发出的内容并推断出用户的意图;如果识别出意图,则数字助理执行请求的任务,例如,通过输出所请求的信息和/或发送指令以控制另一设备(例如,家用电器、智能家居设备等)的一个或多个功能。

常规的数字助理系统使用在中央控制设备(例如,智能电话,平板电脑或中央通信集线器)上使能的基于语音的用户接口以收集用户的语音命令和询问并将用户的语音命令和询问传输至后端服务器,后端服务器处理语音命令和询问,并将所请求的信息返回至中央控制设备或发出指令以控制另一个设备。使用仅在中央控制设备上可用的基于语音的用户接口的缺点之一是:作为数字助理的唯一音频输入接口,中央控制设备需要相对鲁棒和稳定,从而导致更高的制造成本和维护成本,以及更低的适应性、更少的产品选择和更小的灵活性。

使用移动智能设备作为数字助理的唯一音频输入接口的一个问题是:语音输入通道需要长时间保持打开的状态,使得可以随时捕获和识别语音触发。对于移动智能设备来说,保持语音输入通道开启带来了问题,因为移动智能设备的电池有限且这样的长时间后台操作使得移动智能设备很快耗尽电量。

插入电源的中央通信集线器的一个问题是:为了使中央通信集线器清晰地捕获用户的语音触发短语或语音命令,用户需要停留在中央通信集线器的较小范围内。该限制降低了数字助理在较大房间和/或具有多个房间的房屋中的可用性。用户总是不得不放弃他/她正在做的任何事情,并移动到中央通信集线器的位置以指示数字助理执行任务,这对于用户来说也比较麻烦。此外,如果用户希望控制与中央通信集线器不在同一个房间中的设备,则用户不能够观察到要控制的设备的当前情况和/或视觉确认是否在受控设备上正确地执行所期望功能。使用数字助理时对用户位置的这种局限性降低了数字助理的使用效率,且增加了错误操作的可能性。

上述问题的常规解决方案可以是使用位于房屋中不同位置的多个中央通信集线器,这些中央通信集线器均连接至同一数字助理。此类解决方案的问题是这些中央通信集线器的安装成本较高,并且在这些独立的中央通信集线器之间可能存在干扰且缺乏合作性。例如,如果用户发出的音量足够大并且多个中央通信集线器位于相对靠近用户的位置,则这些独立的中央通信集线器中的每一个都可以通过所发出的相同的触发短语进行唤醒。因此,多个通信集线器可能都会响应用户的输入,并产生重复的音频输出和指令。此外,来自不同通信集线器的输出可能会被其他通信集线器捕获,从而产生一系列音频输入,干扰了真实用户输入的捕获和理解。此外,当在多个独立的智能设备和/或中央通信集线器上提供音频输入接口时,由于在这些设备上产生回声和谐振,这些接口上的噪声容许量也会降低。此外,当在多个独立的中央控制设备捕获和处理相同的语音命令之间存在延迟时,多个重复指令会被发送至受控设备,从而在受控设备处引起冲突和混乱。上述提出的所有这些问题将这些中央通信集线器的使用场景限制为每个房间一个集线器,使得每次只有这些集线器中的一个集线器传输语音输入。

由中央控制设备提供常规音频输入接口的另一个问题是这种类型的中央控制设备通常会限制与中央控制设备兼容的产品的类型和品牌。例如,特定品牌的中央控制设备的供应商可能仅允许通过中央控制设备上提供的音频输入接口来控制某些品牌和型号的家用电器设备或智能家居设备。该限制意味着降低了基于语音的数字助理的适用性。此外,一些传统设备将被遗弃,并且将无法通过基于语音的数字助理来控制。

除了可以通过网络控制多种设备的基于语音的数字助理之外,还有独立的语音控制设备。这些独立的语音控制设备能够直接捕获来自用户的语音输入(例如,直接对独立语音控制设备的内置麦克风说话),识别有效的语音命令(例如,基于本地语音识别功能或通过与远程服务器的直接通信),并根据识别出的有效语音命令执行一组有限的功能。这些独立的语音控制设备不会捕获和处理针对其他设备的语音输入。在许多情况下,这些独立语音控制设备需要特定地激活(例如,通过用户打开或按下设备本身的命令按钮)。房屋中可以有多个这些独立语音控制设备。它们彼此之间是独立的。它们可以由用户发出的相同触发短语同时唤醒,并且即使用户的语音命令仅用于其中的一个设备,这些设备也可以将随后发出的语音命令视为针对其自身的命令。另外,当同时激活多个这些独立语音控制设备(例如,有时是由用户无意间激活的)时,用户与其中一个设备之间交流的语音可能会被一个或多个其他设备捕获并从其他设备生成不需要的回复。此外,当这些多个独立语音控制设备不使用时,这些设备的音频输入接口和语音命令处理功能在大多数时间处于休眠状态,从而导致独立语音控制设备上可用硬件和计算能力未得到充分使用。

如上所述,使用唤醒词或短语来激活语音控制数字助理和/或独立的语音控制设备的常规方法会在都响应同一唤醒的多个设备之间引起混乱和冲突。常规解决方案中不同的设备可能需要使用不同的唤醒词。然而,这种解决方案意味着用户不仅必须通过附加的设置过程来为不同的设备设置不同的唤醒词,而且还不得不记住针对不同设备的不同的唤醒词,使得设备难以管理和使用。

如本文所公开的,基于语音的数字助理被配置为具有多通道输入采集接口,该多通道输入采集接口能够从多个端点设备同时接收相同语音输入的实例(例如,在多个独立的音频输入流中捕获并传输的语音输入),该多个端点设备具有音频输入接口且接收语音输入时位于用户的附近。基于语音的数字助理仅动态地选择从多个端点设备中的一个端点设备中接收到的语音输入的副本作为语音输入,该语音输入将通过语音到文本处理模块和自然语言处理模块进行处理,以推断出体现在语音输入中的用户意图。基于捕获语音输入和将语音输入传输至数字助理服务器的端点设备的各种质量以及包含已经从不同的端点设备接收到的语音输入的音频流的质量,来选择用于意图推断的语音输入副本。基于语音的数字助理处理包含语音输入的已选的音频流,并且该基于语音的数字助理从多个端点设备中选择要输出音频输出(例如,确认输出、信息性答复)和/或执行请求的任务的目标设备。基于语音的数字助理从其中采集输入以及向其分派输出的端点设备包括:具有各自音频输入接口和/或各自语音输出接口的设备、不具有语音输入/输出接口但可以通过经由网络从数字助理接收到的命令被远程控制的设备、和/或具有音频输入接口和语音输出接口并且可以通过经由网络从数字助理接收到的命令被远程控制的设备。每个具有语音输入接口(例如,麦克风)的设备都可以用作语音控制数字助理的输入端点。每个具有音频输出接口(例如扬声器)的设备都可以用作语音控制数字助理的输出端点。由基于语音的数字助理控制的设备不需要具有自己的语音输入接口或音频输出接口。当用户发出语音命令时,数字助理动态地确定特定端点设备扮演的角色,并且该角色取决于设备与用户物理上的接近程度以及设备的输入/输出功能。

本文阐述的方法和功能配置解决了以上概述的常规方法的问题和缺点,并提供了至少一些下文所描述的优势。根据本文提供的公开,其他优势将变得明显。

首先,通过利用特定位置处所有可用的音频输入接口(例如,分布在房屋的不同房间中的具有音频输入接口的不同设备),消除了中央通信集线器/控制设备或多个独立的中央通信集线器/控制设备的需求和缺陷。可以避免为每个房间购买中央通信集线器的较高成本。将处理用户语音输入并推断用户意图的任务分配给云端上的数字助理的服务器端。即使仍然可以使用除其他音频输入端点设备之外的一个中央通信集线器或控制设备,也无需在房屋的不同房间中放置其他集线器或控制设备来控制不同房间中的设备。从集中式云帐户的角度来看,每个远程可控制的设备(例如,语音使能的家用电器和未语音使能的设备)都用作从属设备。每个远程受控设备(例如,智能家用电器)可以具有低成本和低维护成本的非常简单的语音输入模块(例如,不需要在设备侧频繁地更新软件/固件)。由于对端点设备的处理能力没有特殊的要求,因此,无论设备是否初始语音使能,任何品牌和型号的端点设备都可以作为输入端点设备和/或输出端点设备集成到数字助理系统中。需要注意,这里所描述的输入端点设备和输出端点设备不是指作为智能手机或中央通信集线器(例如,提供数字助理客户端侧的多功能设备)专用的输入和输出设备的麦克风和扬声器,其中该麦克风和扬声器不直接与数字助理服务器通信且不执行除充当智能手机或中央通信集线器的输入和/或输出接口之外的其他功能。

通过利用房屋中现有的语音控制设备上已经可用的可用音频输入接口,无需花费额外的投入来改造现有设备或购买新设备以扩展位置,在该位置可以从用户处收集语音命令。

在一些实施例中,基于语音的数字助理对应于云端侧上的集中式账户(例如,针对特定家庭的智能家庭账户)。可以灵活配置基于语音的数字助理,使得注册到该基于语音的数字助理的每个端点设备可以被注册为输入端点设备、输出设备和/或受控端点设备,其中输入端点设备能够捕获附近发出的语音输入并将该语音输入通过网络传输到基于语音的数字助理;输出端点设备用于接收来自数字助理服务器的音频输出(例如,警报声音、音乐或基于语音的信息性答复)以及通过扬声器将它们传递给用户;受控端点设备可以基于其硬件功能,根据通过网络从数字助理接收到的机器指令来执行请求的任务(例如,调节室温、打开或关闭等)。每个端点设备还根据其主要功能(例如,除了作为数字助理的输入和输出设备之外的功能)以及其是否可以控制其他设备和/或由其他设备控制来限定。基于语音的数字助理为受控的家庭帐户建立所有输入端点设备和输出端点设备以及受控端点设备的数据库,并根据实时发生的每个特定的控制场景来动态确定要使用哪个输入通道和哪个输出通道。

如本文所述,多个端点设备可以邻近彼此存在,但是它们共享一个后端数字助理,该后端数字助理仅从多个端点设备接收到的输入中选择一个输入来处理和推断用户的意图,然后仅选择端点设备之一作为受控设备和/或用以输出基于语音的输出的设备。因此,设备之间不存在串音(cross-talk),并且多个端点设备的动作和音频输出之间也没有干扰。

如本文中所描述的,在一些实施例中,多个端点设备可以邻近彼此存在,并且可以捕获用户发出的相同语音,并将该语音的记录发送到后端数字助理服务器。数字助理服务器利用包含从多个输入通道接收到的语音输入的音频流来选择包含语音输入的最佳质量音频流,或者对来自多个输入通道的不同音频流进行比较、增强和/或集成渠道以获得最佳质量的语音输入。作为结果,尤其是在嘈杂的环境中,当端点设备的音频输入接口质量不高,和/或当用户从不是特别靠近多个端点设备的某个位置讲话时,语音输入的鲁棒性和清晰度得到了改善。在一些实施例中,还利用多个端点设备的空间位置信息来更好地增强从不同语音输入通道接收到的语音输入,从而在不增加设备成本的情况下进一步提高语音输入质量。

如上所述,针对多个独立的受控语音可控设备和/或中央通信集线器/控制设备利用多个不同的唤醒词的传统解决方案本身有时是有问题的。根据本文所述的方法和系统,可以使用单个唤醒词来触发在云端侧的公共的基于语音的数字助理,并且通过云端侧实施的智能化来消除用户意图的歧义以及分派控制目标设备的命令。因此,只需要在服务器端升级应用软件即可容纳另外的功能并支持其他类型的设备。

根据本文提供的公开内容,本文描述的方法和系统的其他优势和益处对于本领域技术人员而言是明显的。

图1a是根据常规配置的数字助理的操作环境100的框图。术语“家庭助理”、“数字助理”、“虚拟助理”、“智能自动化助理”、“基于语音的数字助理”、“语音助理”或“自动数字助理”是指理解口语和/或文本形式的自然语言输入以推断出用户意图(例如,识别与自然语言输入相对应的任务类型),并根据推断出的用户意图执行动作(例如,执行与所识别的任务类型相对应的任务)的信息处理系统。例如,为了对推断出的用户意图采取行动,系统可以执行一项或多项以下操作:识别具有被设计为实现推断出的用户意图的步骤和参数的任务流(例如,识别任务类型);从推导的用户意图中将特定要求输入至任务流;通过调用程序、方法、服务、api等来执行任务流(例如,向服务提供商发送请求或向受控设备发送机器命令);以及以听觉(例如,语音)和/或视觉形式生成对用户的输出响应。

具体地,一旦被启动,数字助理系统就能够接受用户的至少部分地以自然语言命令、请求、陈述、叙述和/或询问为形式的请求。通常,用户的请求寻求信息性答复或执行任务(例如,通过家庭助理系统或受控设备)。对用户请求的满意的响应通常是提供所请求的信息性答复、执行请求的任务或两者结合。例如,用户可以向数字助理系统问问题,例如“现在房间里的温度是多少?”,数字助理可以基于用户的当前位置和环境温度回答“室温为80度”。用户也可以要求执行任务,例如说“请打开空调”。作为响应,家庭助理可以通过生成语音输出“好的,马上”来确认该请求,然后继续通过空调的预先定义的控制api打开房间中的空调。还有许多其他方式可以与数字助理进行交互以请求信息或执行各种任务。除了提供口头响应和采取程序化的动作之外,家庭助理还可以以其他视觉或音频的形式(例如,文本、警报、音乐、视频、动画等)来提供响应。

如图1a所示,在一些实施例中,根据客户-服务器模型来实现数字助理系统。数字助理系统包括在用户设备104(例如,智能电话、平板电脑或中央通信集线器)上执行的客户端侧部分102(以下称为“数字助理(da)客户端102”),以及在服务器系统108上执行的服务器侧部分106(以下称为“数字助理(da)服务器106”)。da客户端102通过一个或多个网络110与da服务器106通信。da客户端102提供诸如面向用户的输入和输出处理以及与da服务器106的通信之类的客户端功能。da服务器106为任意数量的da客户端102提供服务器端功能,每个da客户端102位于各自的用户设备104上(例如,针对不同家庭账户注册的用户设备)。在图1a所示的常规配置中,安装有数字助理客户端102的用户设备104是从用户接收语音输入并将语音输出输出到用户的唯一设备。用户必须直接与用户设备104对话以与数字助理进行交互。在数字助理服务器确定出用户的意图和用户打算使用语音命令控制的目的设备之后,数字助理服务器106控制智能家居环境122中的其他设备(例如,家用电器124)。与数字助理106进行交互时,不会使用设备124上的语音输入/输出的接口。如果某些设备124没有与用户设备104处于同一房间内,则用户将无法通过视觉确认这些设备是否正确执行任务。例如,用户可以直接对用户设备104说话以触发数字助理打开空调,语音输入被发送到数字助理服务器106,数字助理服务器106将语音反馈发回用户设备,数字助理服务器将控制指令发送到空调(例如hvac)。当用户希望通过设备自身的语音使能接口(例如,智能冰箱124(c))控制设备时,用户直接向设备说话,设备本地处理命令或联系远程服务器处理命令并在识别出命令之后执行功能。在此过程中,冰箱不会调用数字助理,并且数字助理不接收语音输入,也不向设备提供控制指令。

在一些实施例中,da服务器106包括面向客户端的i/o接口112、一个或多个处理模块114、数据和模型116以及到外部服务的i/o接口118。面向客户端的i/o接口有利于数字助理服务器106面向客户端的输入和输出处理。一个或多个处理模块114基于自然语言输入,利用数据和模型116来确定用户的意图,并基于推断出的用户意图来执行任务。在一些实施例中,da服务器106通过一个或多个网络110与外部服务120(例如,一个或多个导航服务、一个或多个消息服务、一个或多个信息服务、日历服务、一个或多个家用电器控制服务等)通信,以完成任务或获取信息。到外部服务的i/o接口118有利于此类通信。

用户设备104的示例包括但不限于家庭控制中心设备、中央通信集线器(例如,亚马逊的echo、苹果的homepod等)、手持式计算机、个人数字助理(pda)、平板电脑、膝上型计算机、台式计算机、蜂窝电话、智能手机、遥控器或这些数据处理设备中的任意两个或多个的组合或任何其他合适的数据处理设备。

一个或多个通信网络110的示例包括局域网(lan)和广域网(wan),例如internet。可以使用任何已知的网络协议来实现一个或多个通信网络110,该网络协议包括各种有线或无线协议,例如以太网、通用串行总线(usb)、火线、全球移动通信系统(gsm)、增强型数据gsm环境(edge)、码分多址(cdma)、时分多址(tdma)、蓝牙,wi-fi、互联网协议语音(voip)、wi-max或任何其他合适的通信协议。

在一些实施例中,存在一种网络路由器,该网络路由器将智能家居环境122中的不同设备连接至网络110,并将智能家居环境中的通信路由至数字助理以及将从数字助理的通信路由至智能家居环境。网络路由器不会出于数据通信以外的目的而智能地处理到从智能家居环境来的通信或到智能家居环境的通信(例如,基于通信中指定的地址将消息路由至消息的目的地),并且将网络路由器视为网络110的一部分,而不是受控设备或数字助理客户端或服务器的一部分。

可以在至少一个数据处理装置和/或计算机的分布式网络上实现服务器系统108。在一些实施例中,服务器系统108还采用第三方服务提供商(例如,第三方云服务提供商)的各种虚拟设备和/或服务来提供服务器系统108的基础计算资源和/或基础设施资源。

图1b是根据改进配置的数字助理的操作环境100'的框图。在改进的配置中,数字助理直接与多个端点设备(例如,设备124)连接以及通信,而不是或额外地数字助理客户端102安装在用户设备104上。包括音频输入接口(例如麦克风)的每个设备124可以用作数字助理的语音输入端点设备,并捕获用户发出的语音输入。用户可以在智能家居环境122'中移动,位于用户附近的多个设备124可以捕获相同的语音输入,并通过多个设备自身到数字助理服务器106的通信通道将语音输入独立地传输到数字助理服务器106。在服务器端,数字助理服务器106'可选地包括到多个端点设备的i/o接口126(包括用于从多个端点设备收集语音输入的多通道输入采集接口,以及用于向多个端点设备分派音频输出和机器命令的多通道输出分派接口)。

图1b中的数字助理服务器106'的功能包括参照图1a所描述的数字助理服务器106的所有功能,以及用于基于当前场景和用户所请求的任务来实时在多个输入端点和多个输出端点之间进行动态切换的附加功能。

如图1b所示,在一些实施例中,数字助理系统是根据客户端-服务器模型实现的。可选地,数字助理系统包括在用户设备104(例如,智能电话、平板电脑或中央通信集线器)上执行的客户端侧部分102(以下称为“数字助理(da)客户端102”),以及在服务器系统108上执行的服务器侧部分106'(以下称为“数字助理(da)服务器106”)。da客户端102通过一个或多个网络110与da服务器106通信。设备124中的每个设备还实现与数字助理服务器106'通信的瘦客户端(例如,发送包含已被本地捕获的用户的语音输入的音频流、从数字助理服务器接收音频输出和命令、输出音频输出和/或执行所需的任务)。设备124中的某些设备(例如,智能恒温器、智能冰箱等)包括语音输入接口和音频输出接口。设备124中的某些设备(例如,智能烤箱或智能真空吸尘器等)仅包括音频输入接口。设备124中的某些设备(例如,可远程控制的hvac系统、可远程控制的灯泡等)不包括音频输入接口或音频输出接口。设备124中的某些设备(例如,家庭对讲系统)不根据通过网络接收的用户命令来执行任何功能,但是可以提供用于数字助理系统的语音输入和输出接口(例如,除了基本的对讲机功能)。某些设备124具有其自己的可以独立于数字助理系统使用的语音控制系统,(例如,通过用户按下设备本身的按钮以激活本地语音控制系统,而不是通过调用数字助理系统)。在一些实施例中,当设备124在数字助理系统中注册时,绕过单独设备124的本地语音控制系统。如图1b所示,用户可以在房屋的中间讲话,且语音输入由三个端点设备124(例如,恒温器、真空吸尘器和冰箱)所捕获,包含语音输入的三个音频输入流通过相应端点设备和数字助理之间的三个独立输入通道被发送到数字助理。数字助理选择三个音频输入流中的一个音频输入流来处理用户的语音输入,并基于各种标准将音频输出发送到端点设备之一(例如恒温器)。数字助理还通过两个受控设备与数字助理之间的相应通信通道,分别将机器指令(例如,针对两个不同的任务)发送到两个单独的受控设备(例如,冰箱和空调)。在这些通信中不需要用户设备104。

在一些实施例中,da服务器106'包括一个或多个处理模块114'、数据和模型116'、到da客户端的i/o接口112、到外部服务的i/o接口118',以及到多个端点的i/o接口126。面向客户端的i/o接口112有利于数字助理服务器106'的面向客户端的输入和输出处理。到多个端点设备126的i/o接口126有利于对没有在中央控制设备或通信集线器(例如,用户设备104)上安装常规数字助理客户端模块102的多个端点设备进行输入和输出处理。一个或多个处理模块114'基于自然语言输入,利用数据和模型116'来确定用户的意图,并基于推断的用户意图来进行任务的执行。在一些实施例中,da服务器106'通过一个或多个网络110与外部服务120(例如,一个或多个导航服务、一个或多个消息服务、一个或多个信息服务、日历服务、一个或多个家用电器控制服务等)通信,以完成任务或获取信息。到外部服务的i/o接口118有利于此类通信。到多个端点的i/o接口126有利于数字助理服务器与不同输入端点设备、输出端点设备以及受控端点设备之间的多通道通信。参照图3b,提供了到多个端点的i/o接口的更多细节以及随附说明。

在一些实施例中,数字助理由用户发出同一唤醒词来触发,而不管智能家居环境中的哪个设备实际捕获了用户的话语并将该话语发送到数字助理服务器106'。在一些实施例中,不同的设备124使用不同的唤醒词,但是,一旦设备124中的一个或多个设备将话语发送到数字助理服务器并由数字助理服务器106'识别,则由任何设备124捕获到的话语中的唤醒词都会唤醒数字助理。

在一些实施例中,当用户的声音足够大以触发麦克风的操作时,具有内置麦克风且网络使能的每个设备124都可以捕获用户的唤醒词和语音命令。每当任何设备124的麦克风由用户的语音激活时,设备都会打包已捕获的语音输入,并通过设备和数字助理服务器之间的独立通信通道通过网络110将该语音输入发送到数字助理服务器106',而无需诸如在智能手机或在位于智能家居环境122的中央通信集线器上运行的数字助理客户端之类的中央控制设备104的参与。在一些实施例中,每个捕获语音输入的设备在将打包的语音输入发送给数字助理服务器之前,在打包的语音输入上加入语音输入的时间戳和设备的设备标识符,使得数字助理能够使用包含已从不同输入端点设备接收到的语音输入的多个音频输入流中的时间戳信息和设备标识符,来关联语音输入、执行音频增强以及选择要进行意图推断的语音输入。

在一些实施例中,每个智能家居环境122都具有集中式云帐户,该集中式云帐户对与智能家居环境相关联并且在网络110上可到达/可控制的所有已注册的智能设备124进行管理。智能设备124需要遵守api以与数字助理服务器通信。一旦数字助理服务器接收到语音输入,无论是哪(几)个特定的智能设备将语音输入发送到数字助理服务器,数字助理服务器都会分析语音输入并确定用户的意图,并发送适当的命令和音频反馈到适当的智能设备以根据命令播放音频输出或执行请求的任务。只要用户的语音输入被具有音频输入接口且网络使能的设备124之一捕获(例如,用户不需要靠近其需要控制的任何特定设备或靠近中央通信集线器),则都可以激活数字助理并基于用户语音输入中的请求来控制任何设备124(例如,设备不需要语音输入使能)。

图2是根据一些实施例的示例性智能家庭环境122'。智能家庭环境122'包括建筑物250,该建筑物可以是房屋、办公楼、车库或移动住房。将理解的是,设备还可以被集成到不包括整个建筑物250的智能家庭环境122'中(例如公寓、分契式公寓或办公室地点等)。此外,智能家居环境可以控制建筑物250外部的设备和/或耦接到建筑物250外部的设备。实际上,智能家居环境中的多个设备不需要物理上位于建筑物250的内部。例如,控制泳池加热器214或灌溉系统216的设备可以位于建筑物250的外部。

所描绘的建筑物250包括由墙壁254至少部分地彼此分开的多个房间252。墙壁254可以包括内壁或外壁。每个房间还可以包括地板256和天花板258。设备可以安装在墙壁254、地板256或天花板258上,与墙壁254、地板256或天花板258集成和/或由墙壁254、地板256或天花板258支撑。

在一些实施方式中,智能家居环境122包括多个设备:包括智能的、多传感的(multi-sensing)、连接网络的设备,这些设备在智能家居网络中和/或与中央服务器或云计算系统(例如,图1b中的数字助理106',该数字助理可以是智能家居提供商服务器系统264的一部分)之间无缝集成,以提供多种有用的智能家居功能。智能家居环境122可以包括诸如一个或多个恒温器202、危险检测单元204和入口接口设备206(例如门铃、锁等)之类的各种设备124。在一些实施例中,设备124中的一些设备可以是智能的、多传感且网络使能的。在一些实施例中,设备124中的一些设备可以提供有音频输入接口。在一些实施例中,设备124中的一些设备可以不具有音频输入和/或输出接口。在一些实施方式中,设备124响应于通过本地触摸屏或按钮接口从用户接收到的命令或者通过网络110从服务器264或数字助理106'接收到的命令,来执行各种功能。例如,恒温器202检测到环境气候特征(例如,温度和/或湿度)并相应地控制hvac系统203。危险检测器204可以检测有害物质或指示有害物质的物质(例如,烟、火和/或一氧化碳)的存在,并激活通风系统或发出警报。门铃406可以检测人接近或离开某个位置(例如,外门)、控制门铃功能、通过音频或视觉手段通告人的接近或离开,和/或控制安全系统上的设置(例如,当客人出入时激活或停用安全系统)。

在一些实施方式中,智能家居环境122'包括诸如一个或多个墙壁开关208以及一个或多个墙壁插座接口210之类的各种设备124。在一些实施例中,设备124中的一些设备可以是智能的、多传感且网络使能的。在一些实施例中,设备124中的一些设备可以提供有音频输入接口。在一些实施例中,设备124中的一些设备可以不具有音频输入和/或输出接口。在一些实施方式中,设备124响应于通过本地触摸屏或按钮接口从用户接收到的命令或者通过网络110从服务器264或数字助理106'接收到的命令,来执行各种功能。例如,墙壁开关208可以检测环境照明条件、检测房间占用状态以及控制一个或多个灯的功率和/或暗淡状态。在某些情况下,墙壁开关208还可以控制风扇(例如吊扇)的电源状态或速度。墙壁插座210可以检测房间或封闭空间的占用并控制向一个或多个墙壁插座的电力供应(例如,如果没有人在家,则不向该插座供电)。

在一些实施方式中,智能家居环境122包括诸如多个电器212之类的各种设备124,这些电器例如冰箱、火炉、烤箱、电视、洗衣机、烘干机、灯、音响、对讲系统、车库门开启器、落地风扇、吊扇、壁式空调、泳池加热器、灌溉系统、安全系统、空间加热器、交流空调装置、电动风管通风口等。在一些实施例中,设备124中的一些设备可以是智能的、多传感且网络使能的。在一些实施例中,设备124中的一些设备可以提供有音频输入接口。在一些实施例中,设备124中的一些设备可以不具有音频输入和/或输出接口。在一些实施方式中,设备124响应于通过本地触摸屏或按钮接口从用户接收到的命令或者通过网络110从服务器264或数字助理106'接收到的命令,来执行各种功能。例如,在一些实施方式中,当插上插座接通电源时,电器可以例如通过指示其是什么类型的电器来向智能家居网络宣告自己,并且可以自动与智能家居的控件集成。可以通过有线或无线通信协议来促进电器到智能家居的这种通信。

智能家居还可以包括可以由智能墙壁插座210控制的诸如旧的传统洗衣机/干衣机、冰箱之类的各种非通信的传统设备240。智能家居环境122还可以包括诸如红外(“ir”)控制的壁挂式空调或其他ir控制设备之类的各种部分通信的传统设备242,这些ir控制的设备可以由智能危险检测器204或智能墙壁开关208提供的ir信号进行控制。在一些实施例中,这些传统设备可以用作基于在电力线中的信号中的编码命令的受控设备,该命令从数字助理服务器发送并通过电力线转发给设备。

在一些实施方式中,智能家居环境1220包括一个或多个连接网络的摄像机218,摄像机用于在智能家居环境122中提供视频监视和安全性。在一些实施例中,可以由数字助理从一个或多个连接网络的摄像机所捕获的图像中推断出用户的当前位置以及不同端点设备的当前位置。

在一些实施例中,智能家庭环境122还可以包括在实体家居之外但是在家居的邻近地理范围内的设备。例如,智能家居环境122可以包括将当前泳池温度传送到智能家居环境200内其他设备和/或接收控制泳池温度的命令的泳池加热器监视器214。类似地,智能家居环境122可以包括通信与智能家居环境122内的灌溉系统相关的信息和/或接收控制此类灌溉系统的控制信息的灌溉监控器216。在一些实施例中,实体家居之外的这些设备还可以用作如本文所描述的数字助理的输入端点设备、输出端点设备和/或受控端点设备。

通过网络连接,图2中设备中的一个或多个设备还可以在即使该用户没有靠近该设备的情况下使得用户能够与该设备交互。例如,用户可以使用计算机(例如,台式计算机、膝上型计算机或平板电脑)或其他便携式电子设备(例如,智能手机)266与设备进行通信。网页或应用可以配置成从用户接收通信并基于该通信控制设备和/或向用户呈现有关设备操作的信息。例如,用户可以查看设备的当前设定温度并使用计算机对该温度进行调整。在此远程通信期间,用户可以位于建筑物中或位于建筑物外部。除了使用智能设备或计算机266上提供的接口之外,用户还可以通过由本文所述的多端点数字助理系统传输的语音输入来控制设备。

如上所述,用户(例如,住在家里的个人)可以在智能家居提供商系统264或数字助理服务器106'中注册所有设备124。用户还可以注册控制设备(例如,设备266)以在身份验证之后从远程地点控制所有设备124。当用户位于建筑物内部时,可以不借助于控制设备266,而是使用语音输入来执行此类控制。可选地,基于语音输入来执行身份验证(例如,比较从用户语音输入中所提取的声纹与存储在数字助理服务器中的授权用户的声纹)。

在一些实施方式中,设备124(例如,包括设备202、204、206、208、210、212、214、216和/或218)能够独立地建立与其他智能设备、中央服务器或云计算系统(例如,数字助理服务器106')和/或其他联网设备的数据通信和信息共享。可以使用各种自定义或标准无线协议(ieee802.15.4、wi-fi、zigbee、6lowpan、thread、z-wave、bluetoothsmart、isa100.11a、wirelesshart、miwi等)中的任一种和/或各种自定义或标准有线协议(cat6ethernet、homeplug等)中的任一种,或包括截至本文档提交之日尚未开发任何其他合适的通信协议来实施所需的数据通信。

在一些实施例中,家庭中的设备124中的一个或多个设备包括可以捕获在其附近的音频输入并用作数字助理的音频输入设备的开放式音频输入通道,该数字助理控制安装在家庭中的所有已注册设备。在一些实施例中,智能家居环境中的智能设备之一包括数字助理模块,并且该智能设备之一用作管理家居中安装的所有已注册设备的数字助理服务器106'。

图3a是根据一些实施例的示例性数字助理服务器系统106'的框图。应当注意,数字助理系统106'仅是数字助理系统的一个示例,并且数字助理系统106'可以具有比所示出的更多或更少的组件,其可以组合两个或更多个组件,或者可以具有不同的组件的配置或布置。图3a中所示的各种组件可以通过包括一个或多个信号处理和/或专用集成电路的硬件、软件、固件或其组合来实现。数字助理系统106'包括存储器、一个或多个处理器、一个或多个输入/输出(i/o)接口以及网络通信接口。这些组件通过一条或多条通信总线或信号线进行相互通信。

如图3a所示,在一些实施例中,i/o处理模块328通过网络通信接口与用户、用户设备(例如,图1b中的用户设备104)和其他设备(例如,图1b中的端点设备124)进行交互以获得用户输入(例如,语音输入)以及提供对于用户输入的响应。可选地,i/o处理模块328在接收到用户输入的同时或不久后从用户设备获得与用户输入相关的上下文信息。该上下文信息包括用户特定数据、词汇和/或与用户输入有关的偏好。在一些实施例中,上下文信息还包括在接收到用户请求时设备124的软件和硬件状态,和/或在接收到用户请求时与用户的周围环境有关的信息。在一些实施例中,i/o处理模块328还向用户发送关于用户请求的后续问题,并从用户接收关于用户请求的答复。在一些实施例中,当i/o处理模块328接收到用户请求并且该用户请求包含语音输入时,i/o处理模块328将语音输入转发给说话者识别模块340以识别说话者,然后将语音输入转发给语音到文本(stt)处理模块330,用于语音到文本的转换。在一些实施例中,基于说话者的识别结果,选择人物特定的语音到文本模型以执行语音到文本转换。

在一些实施例中,语音到文本处理模块330通过i/o处理模块328或说话者识别模块340来接收语音输入(例如,在语音记录中捕获的用户话语)。在一些实施例中,语音到文本处理模块330使用各种声学和语言模型以将语音输入识别为音素序列,并最终识别为以一种或多种语言编写的词语或符号序列。使用任何合适的语音识别技术、声学模型和语言模型(例如隐马尔可夫模型、基于动态时间规整(dtw)的语音识别等)以及其他统计和/或分析技术来实现语音到文本处理模块330。在一些实施例中,语音到文本处理可以至少部分地由第三方服务或在用户的设备上执行。一旦语音到文本处理模块330获得了语音到文本处理的结果(例如,词语或符号的序列),该语音到文本处理模块就将结果传递给自然语言处理模块332以进行意图推断。

数字助理106'的自然语言处理模块332(“自然语言处理器”)采用语音到文本处理模块330生成的词语或符号的序列(“符号序列”),并尝试将符号序列与数字助理所识别的一个或多个“可执行意图”相关联。如本文所使用的,“可执行意图”表示可以由数字助理106'和/或受数字助理系统控制的设备执行的任务,以及具有在任务流模型354中实施的相关任务流。相关任务流是为了数字助理系统106'执行任务而采取的一系列编程动作和步骤。数字助理系统功能的范围取决于已在任务流模型354中实施并存储的任务流的数量和种类,或者换句话说,取决于数字助理106'识别的“可执行意图”的数量和种类。然而,数字助理系统106'的有效性还取决于数字助理系统从以自然语言表达的用户请求中推断出正确的“可执行意图”的能力。

在一些实施例中,除了从语音到文本处理模块330获得的词语或符号的序列之外,自然语言处理器332还(例如,从i/o处理模块328)接收与用户请求相关联的上下文信息。可选地,自然语言处理器332使用上下文信息来明确、补充和/或进一步限定包含在从语音到文本处理模块330接收的符号序列中的信息。上下文信息包括例如用户偏好、用户设备的硬件和/或软件状态、在用户请求之前、期间或不久后收集的传感器信息、数字助理和用户之间的先前交互(例如,对话)等。

在一些实施例中,基于本体360进行自然语言处理。本体360是包含多个节点的分层结构,每个节点表示“可执行意图”或与一个或多个“可执行意图”或其他“属性”相关联的“属性”。如上所述,“可执行意图”表示数字助理系统能够执行的任务(例如,“可执行”的或可动作的任务)。“属性”表示与可执行意图或其他属性的子方面相关联的参数。本体360中的可执行意图节点和属性节点之间的链接限定了由属性节点表示的参数如何与可执行意图节点表示的任务关联。

在一些实施例中,图3a中所示的自然语言处理器332从语音到文本处理模块330接收符号序列(例如,文本字符串),并确定符号序列中的词语涉及哪些节点。在一些实施例中,如果发现符号序列中的词语或短语(通过词汇索引344)与本体360中的一个或多个节点相关联,则词语或短语将“触发”或“激活”那些节点。当“触发”多个节点时,自然语言处理器332将基于激活的节点的数量和/或相对重要性来选择可执行意图中的一个意图作为用户期望数字助理执行的任务(或任务类型)。在一些实施例中,选择具有最多被“触发”节点的域。在一些实施例中,选择具有最高置信度值的域(例如,基于域的各个触发节点的相对重要性)。在一些实施例中,基于被触发节点的数量和重要性的组合来选择域。在一些实施例中,在选择节点时也考虑其他因素,例如家庭助理系统300是否先前已经正确地理解了来自用户的类似请求等。

在一些实施例中,数字助理系统106'还将特定实体的名称存储在命名实体数据库350中,使得当在用户请求中检测到这些名称之一时,自然语言处理器332能够识别该名称是指本体中属性或子属性的特定实例。在一些实施例中,特定实体的名称是企业、饭店、人、电影等的名称。在一些实施例中,命名实体数据库305还包括由个人用户在设备注册阶段为不同家庭设备提供的家庭设备的别名。在一些实施例中,数字助理系统可以从其他数据源(例如用户的地址簿或联系人列表、电影数据库/音乐家数据库和/或餐馆数据库等)中搜索和识别特定实体名称。在一些实施例中,当自然语言处理器332识别出符号序列中的词语是特定实体的名称(例如,用户赋予设备的别名)时,该词语在为用户请求选择本体中的可执行意图时具有其他意义。在一些实施例中,将数字助理的触发短语存储为命名实体,使得当该触发短语存在于用户的语音输入中时可以被识别并被赋予特殊的意义。

用户数据348包括用户特定信息,诸如用户特定的词汇、用户偏好、用户地址、用户的默认语言和第二语言、用户的联系人列表以及每个用户的其他短期或长期信息。自然语言处理器332可以使用用户特定信息来补充包含在用户输入中的信息,以进一步限定用户意图。在一些实施例中,用户数据还包括用于用户身份验证的用户特定的声纹或用于说话者识别训练的语音样本。

一旦自然语言处理器332基于用户请求识别出可执行意图(或域),自然语言处理器332就产生结构化查询以表示所识别出的可采取行动的意图。在一些实施例中,结构化查询包括针对可执行意图的域内的一个或多个节点的参数,并且至少一些参数填充有用户请求中指定的特定信息和请求。

在一些实施例中,自然语言处理器332将结构化查询(包括任何已完成的参数)传递到任务流处理模块336(“任务流处理器”)。任务流处理器336被配置成执行下述中的一项或多项:从自然语言处理器332接收结构化查询、完成结构化查询、以及执行“完成”用户最终请求所需的动作。在一些实施例中,在任务流模型354中提供了完成这些任务所需的各种过程。在一些实施例中,任务流模型354包括从用户获得附加信息的过程以及执行与可执行意图相关联的动作的任务流。在一些实施例中,任务流模型354中的任务流描述了控制在家庭助理中注册的每个家庭设备的步骤,并且数字助理基于设备名称列表执行操作,以针对由用户语音输入中的家庭设备的别名所指定的家庭设备来执行适当任务流程中的步骤。在一些实施例中,执行请求的任务的步骤包括要通过网络发送到受控设备(例如,家用电器)的编码指令的列表,使得受控设备执行那些编码指令以完成用户所请求的意图。

在一些实施例中,为了完成结构化查询,任务流处理器336可能需要发起与用户的额外对话以获得附加信息和/或消除潜在歧义。当需要此类交互时,任务流处理器336调用对话处理模块334(“对话处理器”)以与用户进行对话。在一些实施例中,对话处理模块334确定如何(和/或何时)向用户询问附加信息,并且接收和处理用户的响应。

在一些实施例中,通过i/o处理模块328向用户提供问题并从用户接收答复。在一些实施例中,对话处理模块334生成体现需要由用户回答的问题的音频输出,并将音频输出发送给由数字助理所选择的输出端点设备,其中所选的输出设备将问题呈现给用户。一个或多个输入端点设备捕获用户的响应并将其传输给数字助理,在此数字助理处理从所选的输入端点设备接收到的语音响应,并从语音响应中获得需要的说明。在与数字助理的多次交流期间,用户可能正在房屋里四处走动,且正在收听来自不同输出端点设备124的、数字助理的输出,并且当这些输出被传递给用户以及当用户将他/她的答案提供给数字助理时,基于用户的位置通过一个或多个输入端点设备124的不同集合来获取他/她的答复。一旦从用户接收到答复,对话处理模块334就使用缺失的信息来向结构化查询增添数据,或者将该信息传递给任务流处理器336以使结构化查询的缺失信息完整。

一旦任务流处理器336已经完成了针对可执行意图的结构化查询,任务流处理器336就继续执行与可执行意图相关联的最终任务。因此,任务流处理器336根据结构化查询中包含的特定参数来执行任务流模型中的步骤和指令。在一些实施例中,任务流模型中的步骤和指令包括:识别用户意图使用语音命令进行控制的特定设备124;基于特定设备124的api对一个或多个机器命令进行编码;以及通过网络向特定设备124发送已编码机器命令。

在一些实施例中,任务流处理器336借助于服务处理模块338(“服务处理器”)来完成用户输入中请求的任务或提供用户输入中所请求的信息性答复。例如,服务处理器338可以代表任务流处理器336来执行下述动作:向家用电器发送命令、进行电话呼叫、设置日历条目、调用地图搜索、调用安装在用户设备中的其他用户应用程序或与该应用程序交互、以及调用第三方服务(例如,餐厅预订门户、社交网站或服务、银行门户等)或与该第三方服务交互。在一些实施例中,每个服务所需的协议和应用程序编程接口(api)都可以由服务模型356中的相应服务模型来指定。服务处理器338根据服务模型,基于服务所需的协议和api来访问针对服务的适当的服务模型并生成对该服务的请求。

在一些实施例中,合并地或迭代地使用自然语言处理器332、对话处理器334和任务流处理器336来推断和定义用户的意图,获得信息以进一步明确和完善用户的意图,并最终生成响应(例如,向用户提供输出或完成任务)以实现用户的意图。

在一些实施例中,在已经执行了满足用户请求所需的所有任务之后,数字助理326制定确认响应并通过i/o处理模块328将该响应发送回用户。如果用户请求寻求信息性答复,则确认响应将所请求的信息呈现给用户。在一些实施例中,数字助理还请求用户指示用户对数字助理326产生的响应是否满意。

图3b是根据一些实施例的数字助理的i/o处理模块328的框图。在一些实施例中,当用户说出语音输入时,i/o处理模块接收体现在语音输入中的用户请求,该语音输入由位于用户附近的一个或多个端点设备124捕获。i/o处理模块328向用户输出后续问题,以明确用户较早语音输入中的歧义,并获取必要的参数以完成用户使用较早的语音输入所请求的任务。当生成后续问题时,i/o处理模型328将后续问题发送到位于用户附近的一个或多个端点设备124。i/o处理模块328还提供信息性答复,输出根据由用户通过语音输入所请求的媒体项的音频和/或将编码机器指令发送到用户期望使用语音输入进行控制的目的设备。当执行用户所请求的任务时,i/o处理模块基于用户的语音输入和/或用户的位置来选择端点设备以输出信息性答复、媒体项的音频和/或目的设备。需要说明的是,捕获用户语音输入的端点设备、输出后续问题的端点设备、输出信息性答复、媒体项的音频的端点设备以及向其发送已编码命令的端点设备,可以全部是不同的设备并且在用户和数字助理的交互期间针对单个可执行意图/请求的任务被动态地选择。

如图3b所示,根据一些实施例,数字助理服务器106'的i/o处理模块328包括多通道输入采集接口360。多通道输入采集接口360包括针对具有内置音频输入接口(例如,麦克风)并且网络使能的多个设备124中的每个设备相应的输入通道。输入通道是并行的并且可以同时从设备124接收输入。例如,当用户在三个具有内置音频输入接口的端点设备(例如,房屋中所有已注册的端点设备124中的设备a、b、c)附近说话时,用户的语音输入由所有三个端点设备捕获,并且包含语音输入的相应的音频流分别由三个端点设备通过多通道输入采集接口360的相应输入通道发送数字助理。此时,距离用户较远的其他端点设备未捕获到用户的语音输入,也未利用多通道输入采集接口360发送任何的语音输入。在一些实施例中,多通道输入采集接口360提供时间戳,并将各自的输入设备id与从多通道输入采集接口的每个相应的输入通道接收到的语音输入相关联。在一些实施例中,输入设备id是捕获语音输入并将该语音输入传输到数字助理的输入端点设备的唯一网络地址。在一些实施例中,多通道输入采集接口360与具有内置音频输入接口并且已经向数字助理注册的每个输入端点设备保持持续的音频输入通道。在一些实施例中,多通道输入采集接口360响应于输入端点设备所做出的请求而打开音频输入通道。

在一些实施例中,i/o处理模块328包括输入通道识别模块362。输入通道识别模块362查找输入通道数据库380以识别从当前收集语音输入的特定的一个或多个输入端点设备。例如,基于已经通过多通道输入采集接口360的输入通道向数字助理传输了语音输入的输入端点设备的设备标识符或网络地址,输入通道识别模块362识别输入端点设备的设备名称、设备类型、(可选地)设备位置以及设备功能,其中当前的语音输入已从该输入端点设备传输到i/o处理模块328。在一些实施例中,输入通道标识模块362基于端点设备(用户的每个语音输入从该端点设备传输到i/o处理模块)的标识和所标识的端点设备的已知位置,来确定用户的当前位置以及用户在智能家居环境中的移动。

在一些实施例中,i/o处理模块328还包括优势输入选择模块364和/或多通道输入集成模块366。在一些实施例中,i/o处理模块328选择优势输入选择模块364和多通道输入集成模块366中之一来处理从一个或多个输入端点设备接收到的一个或多个音频输入,并将单个音频输入提供给自动语音转文本(stt)处理模块330。

在一些实施例中,优势输入选择模块364选择从用户附近的不同端点设备所传输的多个语音输入之一作为将被处理并用于意图推断的优势语音输入。例如,在一些实施例中,基于语音信号的清晰度或背景噪声的水平、语音输入的保真度和/或语音输入相对于背景噪声的音量等来选择一个语音输入流。

在一些实施例中,输入端点设备在捕获语音输入时连续监听背景噪声水平,并且在与i/o处理模块(例如,多通道输入采集接口)的通信中包括噪声水平信息。i/o处理模块使用噪声级别信息来估计来自不同输入端点设备的语音输入的信噪比,并确定选择或组合已接收语音输入的最佳方法。例如,在一些实施例中,如果信噪比超过预定阈值(例如,语音输入流具有高质量,足以用于自动语音识别),则优势输入选择模块364简单地选择具有最佳质量的语音输入或选择具有最早到达时间戳的足够质量的输入作为自动语音识别和意图推断的优势输入。

在一些实施例中,如果所有语音输入流质量都较低(例如,信噪比低于阈值,且对于自动语音识别而言不够好),则多通道输入集成模块366应用空间信号处理算法以同步所收集的音频输入流,生成信号的加权组合,并将组合后的信号作为语音输入进行馈送,以进行自动语音识别和意图推断。

在一些实施例中,当i/o处理模块从多个端点设备接收具有相同语音输入的多个捕获到的音频流时,i/o处理模块可以应用多种方法来将包含相同语音输入的多个音频流组合为单个增强的音频流,以提供更鲁棒的自动语音识别结果。本机空间划分信息(nativelyspatialdivisioninformation)将提高正在处理的音频信号质量。在一些实施例中,基于由已传输相同语音输入(例如,具有相似或相同音频内容或音频特性的语音输入,该语音输入同时或大约同时传输到i/o处理模块)已知的输入端点设备的诸如位置和音频特征等信息,多通道输入集成模块选择最佳的处理方法集合来组合来自不同输入端点设备集合的输入,以创建实现最佳效果自动语音识别结果的最高质量的输入流。

在输入递送模块374将单个语音输入提供给语音到文本处理模块330之后(例如,如图3a所示),语音到文本处理模块330从语音输入获得符号序列。符号序列被提供给自然语言处理模块332,可以基于对符号序列的分析来识别可执行意图(例如,由结构化查询表示)。该结构化查询被提供给任务流处理模块336,该任务流处理模块生成用于执行请求的任务的音频输出和/或已编码的机器命令。在一些实施例中,响应收集模块372从任务流处理模块336、服务处理模块338和对话处理模块334收集音频输出和/或机器命令,并准备选择适当的输出通道以传递音频输出和机器命令。

在一些实施例中,如图3b所示,为了将机器命令分派给用户意图控制和/或输出信息性答复、明确问题和/或其他音频输出(例如,音乐、警报声音等)的一个或多个适当设备,再次使用i/o处理模块328选择合适的输出通道,并将音频输出和编码指令分派给所标识的输出通道。

在一些实施例中,i/o处理模块328包括目的设备识别模块368。例如,目的设备识别模块368确定当前哪些输出端点设备在用户附近。取决于智能家居环境中的实际情况,捕获语音输入的一组端点设备可能不都具有音频输出功能,因此,目的设备标识模块368基于输出端点设备的位置和用户的当前位置来动态地选择当前位于用户附近的一组输出端点设备。在一些实施例中,目的设备识别模块368基于刚刚从中接收到语音输入的端点输入设备的已知位置,在输出通道数据库382中查找输出端点设备。

在一些实施例中,目的设备识别模块368还根据从语音输入推断出的可执行意图来识别要被控制的设备。例如,如果已经确定用户的意图是打开卧室中的床头灯,并且任务流模块336已经识别出打开床头灯中的灯泡的编码命令,则目的设备识别模块368识别出受控设备数据库384中与卧室位置相关联的灯泡,查找网络地址或连接到该灯泡的相应智能插座,并识别出编码命令的正确目的地。在另一个示例中,如果用户的意图是打开卧室空调,则目的设备识别模块368确定用户的身份并在智能家居环境中查找用户的卧室,并将用户卧室中的空调识别为当前任务的受控设备。在一些实施例中,用户的意图是打开门锁。目的设备识别模块识别出用户当前位置附近的所有门,并选择离用户最近的门的锁作为受控设备。

在一些实施例中,如果唯一需要执行的动作是控制受控设备,则指令分派模块376将编码命令递送到识别出的受控设备。

在一些实施例中,如果需要将音频输出提供给用户,则输出通道选择模块370选择已由目的设备识别模块368识别出的输出端点设备之一作为端点设备以输出音频输出。在一些实施例中,如果在当前交互中产生最佳语音输入的端点输入设备具有输出功能,并且用户仍在该设备附近,则输出通道选择模块370选择该设备作为输出音频的输出设备。这是有益的,因为用户可能首先是在对该设备说话,使用同一设备来输出音频响应将符合用户的期望,并且不会使用户感到困惑并试图寻到音频输出的来源。

在一些实施例中,输出通道选择模块370使用一组优先级规则来确定应该选择目的设备标识模块368识别出的一组可用输出端点设备中的哪一个输出端点设备作为当前音频输出的输出设备。优先级规则可以基于输出设备相对于用户位置的位置(例如,选择最接近用户的设备)、输出设备的音频质量(例如,选择具有最高声音质量的设备)、要传递给用户的输出类型(例如,不同的输出设备适于输出警报声音、音乐或语音)、用电量考虑等。在一些实施例中,基于多种考虑来计算分数,并且选择具有最高分的输出设备用作输出通道,以由输出通道选择模块370进行输出。

在一些实施例中,一旦选择了输出通道,多通道输出分派接口378就通过i/o处理模块328与所选的输出端点设备之间的输出通信通道来将音频输出传递至所选输出通道。在一些实施例中,只要用户在同一房间内,输出通道选择模块就使用相同的输出设备在用户和i/o处理模块之间进行连续交流。当用户在交流的中间移到另一个房间时,输出通道选择模块370重新开始处理并基于用户的新位置选择新的输出设备。通过在用户仍在同一房间时保持输出设备相对稳定,使得用户能够保持语境和关注点,并且少分心。

在一些实施例中,如果输出信道选择模块370确定可用的输出设备之一是与用户一起移动的移动设备,则输出信道选择模块选择使用该移动设备作为输出信道以进行用户和数字助理之间连续的交流。这有助于避免用户在房间或房屋中四处走动时不断唤醒用户附近的不同设备。在一些实施例中,当用户在交流期间移动的距离不超过阈值量或阈值距离时或当没有与他/她一起移动的移动设备时,输出通道选择模块370基于可用的输出设备的位置和音频质量来选择输出设备。

参照图3b所描述的功能和模块仅仅是说明性的。根据各种实施例,可以实现更多或更少的功能和模块。

图4a-4d示出了根据一些实施例的具有可切换端点的数字助理的多种使用场景。示例场景可以发生在用户和数字助理之间的连续交流中,或者可以分别发生在用户和数字助理之间的不同交流期间。示例场景可以以其被呈现的顺序(例如,在连续交流中)发生,或者它们可以基于实际情况以不同的顺序发生。这些示例仅用于说明所公开的方法和系统,并不意味着是固定的和限制性的。

如本文所公开的,数字助理能够通过多通道输入采集接口同时接收多个音频输入流,该多通道输入采集接口与智能家居环境中的多个音频输入端点设备接口相连接。例如,如图4a所示,智能家居环境中有六个设备。这七个设备位于房屋的不同部位且具有不同的功能。例如,设备0是电视、设备1是冰箱、设备2是电灯开关、设备3是恒温器、设备4是烤箱、设备5是媒体中心、设备6是智能警报器。其中五个设备(例如电视、冰箱、恒温器、烤箱和媒体中心)具有音频输入接口,而两个设备(例如电灯开关和警报器)没有音频输入接口。其中五个设备(例如电视、冰箱、恒温器、媒体中心和警报器)具有音频输出接口,而两个设备(例如电灯开关和烤箱)没有音频输出接口。具有语音输入功能的所有五个端点设备(例如电视、冰箱、恒温器、烤箱和媒体中心)都已向数字助理注册,并且它们的名称、设备类型、功能、网络地址、房屋中的位置等都在输入通道数据库380中指定。具有输出功能的所有五个端点设备(例如,电视、冰箱、恒温器、媒体中心和警报)都已向数字助理注册,并且它们的名称、设备类型、功能、网络地址、房屋中的位置等都在输出通道数据库382中指定。所有七个设备都可以由数字助理由通过网络传输的编码命令进行远程控制。所有七个设备都向数字助理注册,并且它们的名称、功能、api等存储在受控设备数据库384中。

在示例场景中,用户在一段时间内到处走动并与数字助理交谈。首先,用户在厨房中,并发出第一语音输入(例如“助理,今天的天气怎么样?”)。当时用户附近的三个设备(例如,冰箱、烤箱和电视)捕获到第一语音输入。这三个设备(例如,冰箱、烤箱和电视)中的每一个设备都捕获到第一语音输入,并基本实时地将第一语音输入传输到数字助理的i/o处理模块。出于设备质量、环境噪声水平以及与用户的距离等原因,从这三个设备接收到的第一语音输入的副本或输入流具有不同的音频质量。例如,电视距离用户最远,因此从电视接收的第一个语音输入的音量最低、延时最长。正在运行的冰箱给从冰箱接收的第一个语音输入带来嗡嗡的背景噪音。从烤箱接收到的第一语音输入的音量最高且噪声最小,因此其质量最佳。在这种特定情况下,选择从烤箱接收的第一语音输入作为发送到语音到文本处理模块以进行自动语音识别的语音输入,然后将其结果用于意图推断。当数字助理确定出用户的意图并生成音频输出(例如今天的天气预报)时,数字助理将从识别出的在用户附近的多个可用的输出终端设备中选择一个输出端点设备。在这种情况下,此时用户附近只有两个输出端点设备(例如,电视和冰箱),且由于用户与冰箱之间的距离小于用户与电视之间的距离,因此数字助理选择冰箱作为输出端点设备以向用户输出天气信息。如果在数字助理获取天气信息的过程中用户已经移动,且数字助理确定相对于冰箱来说用户现在更靠近电视,则数字助理改为将将天气信息发送到电视。

继续上面的示例,在用户走过电视并且电视已完成输出天气信息之后,用户发出第二语音输入(例如,“将恒温器设置为节能模式,然后关灯”)。在用户说出第二语音输入时,第二语音输入由用户附近的两个设备捕获。数字助理从电视和恒温器接收到第二语音输入,但没有从电灯开关接收第二语音输入,这是因为电灯开关没有音频输入接口。数字助理选择从恒温器接收到的第二语音输入的副本以将其传输到语音至文本处理模块(例如,由于其音频质量更高和/或恒温器与用户之间的距离更近),并使用其结果用于意图推断。一旦数字助理确定了用户的意图,该数字助理就生成音频输出(例如,“当前室温为75度,将室温设置为78度”),并生成用于将恒温器重置为78度的编码指令。数字助理将恒温器识别为编码指令的受控设备,并通过网络将编码指令发送到恒温器。数字助理还选择恒温器作为输出端点设备以向用户提供音频输出。数字助理还识别第二意图,并生成用于关灯的编码指令。数字助理将电灯开关识别为该另外的可执行意图的受控设备,并将编码指令发送到电灯开关。

在以上示例中,数字助理从多个输入通道动态地选择输入源,并根据用户的位置和其他考虑因素(例如,声音质量、能效等)动态地选择输出目的地。从数字助理的角度来看,可以从多个输入端点设备接收相同的语音输入,并且数字助理可从多个可用通道中进行选择以发送音频输出。捕获语音输入、传递音频输出的设备以及执行所请求的机器操作的设备可以是都不同的,并且可以在用户和数字助理之间的连续交流期间动态地变化。

图4b示出了用户现在已经进入到卧室,并且发出第三语音输入(例如,“打开收音机”)。卧室中唯一的输入端点是媒体中心,媒体中心捕获第三语音输入并将其发送给数字助理。数字助理使用该第三语音输入来确定用户的意图,并将媒体中心识别为用户请求的受控设备。数字助理识别用于打开收音机的编码机器指令,并将该编码指令发送到媒体中心。

图4c示出了用户回到厨房并发出第四语音输入(例如,“关闭烤箱”)的场景。第四语音输入被烤箱、冰箱和电视所捕获,并且通过所有的三个输入通道传输到数字助理。数字助理使用从冰箱传输的第四语音输入进行自动语音识别和意图推断。然后,数字助理将烤箱确定为用户请求的受控设备,并将与关闭烤箱相对应的编码指令发送给烤箱。

图4d示出了示例场景,其中用户仍在厨房中并发出第五语音输入(例如,“调高收音机音量”)。第五语音输入由冰箱和烤箱捕获。数字助理接收来自冰箱和烤箱的第五语音输入,并且使用从冰箱接收到的第五语音输入作为用于自动语音识别和意图推断的输入。由于用户打开了冰箱门,其阻碍用户的声音到达电视,因此电视没有捕获到第五语音输入。数字助理基于对第五种语音输入的分析来确定用户的意图,并将媒体中心识别为该用户请求的受控设备。数字助理生成调高收音机的音量的编码机器指令,并通过网络将该指令发送到媒体中心。

在以上示例中,存在可通过网络控制的四种不同类型的设备:类型1(例如,电灯开关):没有音频输入接口,没有音频输出接口;类型2(例如烤箱):音频输入接口使能,没有音频输出接口;类型3(例如,智能警报器):没有音频输入接口,音频输出接口使能;以及类型4(例如电视、媒体中心、冰箱、恒温器):音频输入接口和音频输出接口均使能。在以上示例中未使用智能警报器(设备6)。在一个示例场景中,当用户靠近警报时水壶在烤箱上沸腾,烤箱将警报触发事件发送到数字助理服务器,数字助理可选地发送音频警报(例如,“哔哔声”、“请检查烤箱。”)到警报器,并使警报其输出音频警报。

图5是对具有动态可切换端点设备的数字助理进行控制的方法500的流程图。该方法在具有一个或多个处理器和存储器的计算系统(例如服务器系统108'上的数字助理服务器106)上执行。该方法包括:注册(502)多个输入端点设备和多个受控端点设备,其中,多个输入端点设备中的每个输入端点设备具有各自的音频输入接口,并且每个输入端点设备被配置成将捕获到的语音输入通过网络发送到计算系统,并且其中,多个受控端点设备中的每个受控端点设备被配置成根据通过网络从计算系统接收到的相应指令来执行请求的任务;以及针对从用户到计算系统的多个基于语音的请求中的每个基于语音的请求动态地选择(504)相应的输入端点设备和相应的受控设备。针对从用户到计算系统的多个基于语音的请求中的每个基于语音的请求动态地选择相应的输入端点设备和受控设备包括:在第一时间点,从多个输入端点设备中的两个或更多个输入端点设备的第一集合(例如图4a中所示的实例中的电视和恒温器)中获取(506)第一语音输入(例如包含第一语音输入的相应音频输入流)的相应实例;基于已经从多个输入端点设备中的两个或更多个输入端点设备的第一集合中获取到的第一语音输入的相应实例,来获得(508)第一语音输入的代表性副本(例如,选择从恒温器接收到的最佳质量的音频流);基于第一语音输入的代表副本确定第一可执行意图;根据第一可执行意图,将第一编码指令分派给从多个受控端点设备中选择的第一受控端点设备(例如电灯开关)。

在一些实施例中,该方法还包括:注册多个输出端点设备,其中,多个输出端点设备中的每个输出端点设备具有各自的音频输出接口,该音频输出接口被配置成输出通过网络从计算系统接收到的音频内容;以及针对从用户到计算系统的多个基于语音的请求中的每个基于语音的请求动态地选择相应的输出端点设备,包括:将与第一可执行意图相对应的第一音频输出通过网络分派给从多个输出端点设备中选择的第一输出端点设备(例如恒温器),其中,该第一输出端点设备输出第一音频输出。

在一些实施例中,针对从用户到计算系统的多个基于语音的请求中的每个基于语音的请求动态地选择相应的输出端点设备,还包括:在第二时间点,从多个输入端点设备中的两个或更多个输入端点设备的第二集合(例如电视、烤箱和冰箱)中获取第二语音输入的相应实例,其中,两个或更多个输入端点设备的第二集合与两个或更多个输入端点设备第一集合不同;基于已经从多个输入端点设备中的两个或更多个输入端点设备的第二集合中获取到的第二语音输入的相应实例,来获得第二语音输入的代表性副本(例如,从烤箱接收到的最佳质量的音频);根据第二语音输入的代表性副本确定第二可执行意图;根据第二可执行意图,将第二编码指令分派给从多个受控端点设备中选择的第一受控端点设备(例如电灯开关)。在一些实施例中,针对从用户到计算系统的多个基于语音的请求中的每个基于语音的请求动态地选择相应的输出端点设备,还包括:将与第二可执行意图相对应的第二音频输出通过网络分派给从多个输出端点设备中选择的第二输出端点设备(例如冰箱),其中,第二输出端点设备与第一输出端点设备不同,并且其中,第二输出端点设备输出第一音频输出。

例如,用户可以发出两个不同的语音命令(例如,“开灯”和“关灯”)以控制位于两个不同位置的同一设备(例如,电灯开关)。基于发出第一语音命令时用户的位置,输入端点设备的第一集合(例如电视、恒温器)捕获并将包含第一语音命令的输入音频流传输给数字助理。基于发出第二语音命令时用户的位置,输入端点设备的第二集合(例如电视、烤箱、冰箱)(与输入端点设备的第一集合不同)捕获并将包含第二语音命令的输入音频流传输给数字助理。此外,根据各种标准,由数字助理选择来自不同输入端点设备的语音输入(例如,从恒温器接收到的第一语音命令以及从烤箱接收到的第二语音命令),以进行语音到文本的处理和意图推断。基于从两个语音命令中推断出的可执行意图,数字助理识别出相同的受控端点设备(例如,电灯开关),并且数字助理将相应的机器指令(例如,用于打开和关闭)通过网络发送给相同的受控端点设备。也可以基于在将输出提供给用户时用户的位置将确认音频输出发送给不同的输出端点设备。例如,将针对第一语音命令的音频响应发送给恒温器,而将针对第二语音命令的音频响应发送给冰箱。

在一些实施例中,针对从用户到计算系统的多个基于语音的请求中的每个基于语音的请求动态地选择相应的输出端点设备,还包括:在第三时间点,从多个输入端点设备中的两个或更多个输入端点设备的第一集合中获取第三语音输入的相应实例;基于已经从多个输入端点设备中的两个或更多个输入端点设备的第一集合中获取到的第三语音输入的相应实例,来获得第三语音输入的代表性副本;基于第三语音输入的代表性副本确定第三可执行意图;根据第三可执行意图,将第三编码指令分派给从多个受控端点设备中选择的第二受控端点设备,其中,该第二受控端点设备与第一受控端点设备不同,

例如,用户可以位于相同的位置并发出两个不同的命令(例如,“打开电灯”和“关闭收音机”),每个命令用于控制不同的设备(例如,分别为电灯开关和媒体中心)。这两个语音命令由多个输入端点设备的同一集合(例如电视和恒温器)发送给数字助理。取决于这些输入的音频质量,数字助理可以选择从电视接收到的第一语音命令进行处理以及选择从恒温器接收到的第二条语音命令进行处理。对于第一语音命令,数字助理发送命令给电灯开关。对于第二语音命令,数字助理发送命令给媒体中心。

在一些实施例中,多个输入端点设备和多个受控端点设备包括位于相应的智能家庭环境中的设备。

在一些实施例中,两个或更多个输入端点设备的第一集合(例如电视、恒温器)包括第一受控端点设备(例如恒温器)和至少一个不在多个受控端点设备之中的设备(例如电视)。

图6是示例性数字助理服务器600(例如,实现数字助理服务器106'的服务器设备)的框图。数字助理系统600包括存储器602、一个或多个处理器604、一个或多个输入/输出(i/o)接口606以及网络通信接口608。这些组件通过一条或多条通信总线或信号610进行相互通信。

在一些实施例中,存储器602包括非暂时性计算机可读介质,例如高速随机存取存储器和/或非易失性计算机可读存储介质(例如,一个或多个磁盘存储设备、一个或多个闪存设备、一个或多个光学存储设备和/或其他非易失性固态存储设备)等。

i/o接口606将诸如显示器、键盘、触摸屏、扬声器和麦克风之类的输入/输出设备耦接到用户接口模块622。与用户接口模块322结合的i/o接口606接收用户输入(例如,语音输入、键盘输入、触摸输入等)并相应地处理它们。

在一些实施例中,网络通信接口608包括一个或多个有线通信端口612和/或无线传输和接收电路614。一个或多个有线通信端口例如通过一个或多个有线接口(例如以太网、通用串行总线(usb),火线接口等)接收和发送通信信号。无线电路614通常从通信网络和其他通信设备接收rf信号和/或光信号以及向通信网络和其他通信设备发送rf信号和/或光信号。无线通信可以使用多种通信标准、协议和技术(例如gsm、edge、cdma、tdma、蓝牙、wi-fi、voip、wi-max或任何其他合适的通信协议等)中的任何一种。网络通信接口608使数字助理系统600能够与网络(例如因特网、内联网和/或诸如蜂窝电话网络/无线局域网(lan)和/或城域网之类的的无线网络等)和其他设备通信。

在一些实施例中,i/o接口606和网络通信接口608一起实现如图3b所描述的数字助理的多通道采集接口360、多通道输出分派接口378和指令分派接口376。

在一些实施例中,存储器602的非暂时性计算机可读存储介质存储程序、模块、指令和数据结构,该数据结构包括操作系统618、通信模块620、用户界面模块622、一个或多个应用程序624和数字助理模块626的全部或其子集。一个或多个处理器604执行这些程序、模块和指令,并从该数据结构读取或写入该数据结构。

操作系统618(例如android、darwin、rtxc、linux、unix、osx、ios、windows或诸如vxworks之类的嵌入式操作系统)包括控制和管理通用系统任务(例如,内存管理、存储设备控制、电源管理等)的各种软件组件和/或驱动器,且有利于各种硬件、固件和软件组件之间的通信。

通信模块620有利于数字助理系统600与其他设备之间通过网络通信接口608进行通信。例如,通信模块620可以与图1b所示的端点设备144的通信模块进行通信。通信模块620还包括用于处理由无线电路614和/或有线通信端口612接收到的数据的各种软件组件。

在一些实施例中,用户接口模块622通过i/o接口606(例如,从键盘、触摸屏和/或麦克风)从用户接收命令和/或输入,并在显示器上提供用户界面对象。

应用程序624包括被配置成由一个或多个处理器604执行的程序和/或模块。应用程序624可以包括诸如家庭控制中心、游戏、日历应用程序、导航应用程序或例如电子邮件应用程序和/或资源管理应用程序、诊断应用程序或计划应用程序之类的用户应用程序。

存储器602还存储数字助理模块(或数字助理的服务器部分)626。在一些实施例中,数字助理模块626包括以下子模块或其子集或超集:输入/输出处理模块328、语音到文本(stt)处理模块330、自然语言处理模块332、对话流处理模块334、任务流处理模块336、服务处理模块338和说话者识别模块340。这些处理模块中的每个处理模块都可以访问数字助理626的以下数据和模型中的一项或多项或其子集和超子集:本体360、词汇索引344、用户数据348、任务流模型354、服务模型356、扬声器语音模型358。

在一些实施例中,数字助理系统600使用在数字助理模块326中实现的处理模块(例如,输入/输出处理模块328、说话者识别模块340、stt处理模块330、自然语言处理模块332、对话流处理模块334、任务流处理模块336和/或服务处理模块338)、数据和模型,来执行以下操作中的至少一些操作:识别从用户接收到的以自然语言输入所表示的用户意图;主动引起和获得推断用户意图所需的充分信息(例如,通过消除歧义的词语、名称、意图等);确定实现推断意图的任务流;以及执行任务流以实施推断出的意图。在一些实施例中,当出于各种原因没有或不能向用户提供令人满意的响应时,数字助理也采取适当的动作。在一些实施例中,存储器包括家庭控制模块,该家庭控制模块利用家庭控制服务的api来根据用户命令和从用户的语音输入推断出的用户意图来控制在数字助理系统中注册的不同家用电器。

出于说明的目的,已经参考特定实施例描述了以上的描述。然而,以上说明性讨论并非旨在穷举或将所公开的实施例限于所公开的准确形式。鉴于以上教导,可以进行许多修改和变化。所选择和描述实施例是为了最好地解释所公开思想的原理和实际应用,从而使得本领域的其他技术人员能够最好地利用其进行各种修改,以适合预期的特定用途。

将理解的是,尽管在本文中可以使用术语“第一”、“第二”等来描述各种元素,但是这些元素不应受到这些术语的限制。这些术语仅用于区分一个元素和另一个元素。

本文所使用的术语仅是出于描述特定实施例的目的,并不旨在限制权利要求。如在实施例的说明和所附权利要求中所使用的,单数形式“一”、“一个”和“该”旨在包括复数形式,除非上下文另外明确指出。还应理解,本文所用的术语“和/或”涉及并涵盖一个或多个相关联的所列项目的任何和所有可能的组合。还将理解的是,当在本说明书中使用术语“包括”和/或“包含”时,其指定了所描述的特征、整数、步骤、操作、元素和/或组件的存在,但并不排除存在或增加一个或多个其他特征、整数、步骤、操作、元素、组件和/或其组合。

如本文中所使用的,术语“如果”可被解释为意指“当…时”、“在...之后”或“响应于确定...”或“根据...的确定”或“响应于检测到...”基于上下文所叙述的先决条件为真。类似地,短语“如果确定出[叙述的先决条件为真]”或“如果[叙述的先决条件为真]”或“当[叙述的先决条件为真]时”可被解释为意指“在确定…之后”或“在...的确定之后”或“响应于确定...”或“根据...的确定”或“在检测到...之后”或“响应于检测到...”基于上下文所叙述的先决条件为真。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1