对多个家庭装置进行控制的方法和系统与流程

文档序号:21789113发布日期:2020-08-07 20:40阅读:226来源:国知局
对多个家庭装置进行控制的方法和系统与流程

相关申请的交叉引用

本申请要求于2017年12月31日提交的美国专利申请no.62/612,620的优先权,该美国专利申请的公开内容通过参引全部合并到本文中。

本公开总体上涉及数字助手,更具体地,涉及一种使用基于语音的命令来控制数字助手的方法和系统。



背景技术:

近来,基于语音的数字助手,如苹果的siri(苹果智能语音助手)、亚马逊的echo(亚马逊智能音箱)、谷歌的googleassistant(谷歌助手)以及微软的cortana(微软小娜),已经被引入到市场来处理各种各样的任务,例如家用电器控制、网络搜索、日程、提醒等。这种基于语音的数字助手的一个优势在于用户可以以解放双手的方式与装置交互而不需要触摸甚至不需要看着该装置。用户可以按键或者在触摸屏上选择一个图标或者说出触发短语(例如,预定的唤醒命令)来启动基于语音的助手。

在家用电器控制设置中,当家里有多个相同类型的电器时,更难确定用户的意图。可以基于用户过去的行为或者基于数字助手和用户之间的交互问题及回答来执行用户意图的歧义消除。然而,这种交互消耗时间且繁琐,并且计算量大。

因此,提供一种方式以改善由使用基于语音的命令的数字助手来控制多个装置会是有益的。



技术实现要素:

因此,需要一种通过语音命令使用数字助手(如家庭助手)来控制多个家庭装置的方法。

以下描述的实施例提供了通过基于语音的助手、使用用于多个装置的名称列表来控制多个装置的方法和系统。

在一些实施例中,使用基于语音的助手来控制多个装置的方法包括:接收音频输入;对所述音频输入执行语音到文本的转换,以获得文本串;搜索多个家庭装置的名称列表,以确定所述文本串是否包括所述名称列表中至少一个所述家庭装置的对应别名;根据确定所述文本串包括与第一装置类型的第一家庭装置相应的第一别名,生成要操作所述第一装置类型的所述第一家庭装置的第一可操作意图;以及根据确定所述文本串包括与所述第一装置类型的第二家庭装置相应的第二别名,生成要操作所述第一装置类型的所述第二家庭装置的第二可操作意图;其中,所述第一装置类型的所述第二家庭装置与所述第一家庭装置不同。

在一些实施例中,提供一种计算机可读存储介质(例如,非瞬态的计算机可读存储介质),该计算机可读存储介质存储用于给电子装置中的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行本文中描述的任意方法的指令。

根据一些实施例,提供一种包括用于执行本文中描述的任意方法的部件的电子装置(例如,便携式电子装置)。

根据一些实施例,提供一种包括一个或多个处理器和存储器的电子装置(例如,便携式电子装置),所述存储器存储用于给所述一个或多个处理器执行的一个或多个程序,该一个或多个程序包括用于执行本文中描述的任意方法的指令。

根据一些实施例,提供一种用于电子装置中的信息处理设备,所述信息处理设备包括用于执行本文中描述的任意方法的部件。

附图说明

为了更好的理解所描述的各实施例,应结合以下附图来参考以下的具体实施方式,其中,在所有附图中类似的附图标号指代相应的部分。

图1是示出根据一些实施例的数字助手操作的环境的框图。

图2是示出根据一些实施例的数字助手客户端系统的框图。

图3a是示出根据一些实施例的独立数字助手系统或数字助手服务器系统的框图。

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

图4是根据一些实施例的智能家庭环境,智能家庭环境包括可以由数字家庭助手控制的多个家庭装置。

图5a-5c是示出根据一些实施例的用于控制家庭装置的数字助手的说话者识别阶段、家庭装置注册阶段、以及操作阶段的框图。

图6是示出根据一些实施例的用于控制和操作数字助手以控制多个家庭装置的方法的流程图。

类似的参考数字是指附图中相应的部分。

具体实施方式

下面描述的实施例提供了通过使用语音命令的家庭助手装置来对多个家庭装置(例如,包括相同类型的多个装置)进行控制的系统和方法。

在一些实施例中,在电子装置处使用语音触发来启动基于语音的助手。同基于语音的数字助手(或者其它基于语音的服务,例如语音到文本转录服务)进行交互通常开始于当用户在装置上按下功能可供性(affordance)(例如,按键或者图标)以激活数字助手时,随后该装置向用户提供数字助手已激活并在听取的某种指示,如光、声音(例如,哔哔)、或者发声输出(例如,“有什么可以为您效劳?”)。如本文中描述的,还可以实现语音触发,如此响应于特定的预先确定的词、短语或声音而激活语音触发且不需要用户进行物理交互。例如,用户可以通过背诵预先定义的触发短语“嗨,助手!”来激活语音助手。作为响应,该装置输出哔哔声、声音、或者语音输出(例如,“有什么可以为您效劳?”)向用户表明听取模式已激活。因此,用户不需要物理接触提供数字助手功能的装置就可以启动和该数字助手的交互。数字助手可以被耦合到一个或多个其它装置中(例如,家用电器、智能家居装置等)来控制这些装置的功能。

一种用语音触发器启动基于语音的服务的技术是,让基于语音的服务连续地听取预先确定的触发词、短语、或声音(在本文中可以将其中任一种称做“触发声音”)。然而,连续地操作该基于语音的服务(例如,基于语音的数字助手)需要大量的音频处理和电池电量。在一些实施例中,触发声音检测器被配置为检测多种不同的触发声音,如一组单词、短语、声音、和/或其组合。在一些实施例中,不同的用户可以预先定义不同的触发词来使用,或者向数字助手给出不同的名称。例如,数字助手会响应由一个用户说出的短语“hey,alex(嗨,亚历克斯)”,以及由另一个用户说出的“wakeup,nora(醒醒,诺拉)”,只要这些是由这些用户为数字助手限定的触发短语。

在家庭控制场景中,可以通过数字家庭助手控制多个装置。一般说来,用户语音输入中的意图推断和命名实体识别可以同时进行、也可以按顺序进行。在后一种情况下,与语音输入相应的转录文本被输入到意图分类器(例如,本体360)中,以确定用户希望数字家庭助手执行哪个任务。在一些实施例中,数字家庭助手的自然语言处理模块定位被识别的意图的命名实体识别模型,并将用户速度输入的文本版本传递给该模型,以获得输入中被识别的命名实体。意图分类器的性能在很大程度上依赖于文字文本。例如,如果文本包含词语“空调”和“温度”,那么意图很可能是“ac_set_temperature(空调_设置_温度)”。然而,如果家里有多于一个的空调,则消除歧义是困难的,除非用户的语音输入包括必要的消除歧义信息(例如,用户的输入包括空调的位置信息或其他描述,例如,卧室空调、婴儿的空调等等)。如本文公开的,向相同类型的多个家庭装置中的每个家庭装置都提供一个唯一的别名,该别名不需要包括与该装置相关的描述信息,如客厅空调的别名为“狗”、卧室空调的别名为“猫”。由于别名可能不包含数字助手的自然语言处理模块用于意图推断的某些关键字,意图分类器将失去其准确性,并导致后续的错误操作。这就解释了为什么现有的家用电器控制系统不能使用语音输入来同时处理单一电器类型中的多个装置。一些系统尝试了一些方法来非同时地控制多个装置。例如,如果家里有两台空调,一台在客厅,另一台在卧室。当用户在客厅中并希望对客厅空调进行操作时,他/她使用用户装置上的设置图形用户界面将客厅空调设置为默认的命令接收器。当用户移动到卧室并希望对卧室空调进行操作时,他/她使用图形用户界面将默认的命令接收器切换为卧室空调。否则,为了对正确的空调进行操作,用户会必须要明确地说明空调的位置描述符。或者,使用用户的位置来猜测用户打算对哪台空调进行操作。然而,这种估计通常是不正确的,因为用户可能希望对在另一个房间的空调进行操作。使用别名避免了这些使用其它解决方案的问题,且每个用户都能选择对他/她自己有意义的别名,并且一旦在装置注册阶段将别名提供给数字助手,意图推断就会更加有效和高效。

图1是根据一些实施例的数字家庭助手的操作环境100的框图。术语“家庭助手”、“数字助手”、“虚拟助手”、“智能自动化助手”、“基于语音的数字助手”、“语音助手”、或者“自动化数字助手”,是指理解以语音和/或文本格式输入的自然语言来推断用户意图(例如,确认与该自然语言输入相应的任务类型)并基于所推断的用户意图来执行动作(例如,执行与所述确认的任务类型对应的任务)的任意信息处理系统。例如,为了按照所推断的用户意图来行动,系统可以执行以下动作中的一个或多个:识别任务流,该任务流含有为了实现所推断的用户意图而设计的步骤和参数(例如,识别任务类型);将来自所推断的用户意图的特定需求输入到任务流中;通过调用程序、方法、服务、api(应用接口)、或者类似的(例如,发送请求到服务提供商)来执行任务流;以及以听得见的(例如,语音)和/或看得见的形式生成输出响应给用户。

特别地,一旦启动,家庭助手系统就能够接受用户请求,该用户请求至少部分是以自然语言命令、请求、陈述、叙述、和/或询问的形式。通常,用户请求寻求信息性回答、或由数字装置对任务的执行。令人满意的对用户请求的响应通常是提供所请求的信息性回答,对所请求任务的执行,或二者的结合。例如,用户可以问数字助手系统一个问题,如“现在房间内的温度是多少?”。基于用户当前的位置和周围环境的温度,数字装置可能回答“室内温度是80度。”。用户还可以请求执行任务,例如,通过陈述“请打开空调”。作为响应,家庭助手可能通过生成语音输出“好的,马上”来告知已收到该请求,然后继续通过空调的预先定义的控制api来打开房间内的空调。还有许多其它和家庭助手交互的方式来请求信息或者请求执行各种任务。此外为了提供口头的响应以及采取程序化的行动,家庭助手还能提供其它视觉或音频形式的响应(例如,文本、提示信号、音乐、视频、动画等)。

如图1所示,在一些实施例中,数字助手系统可以按照客户端-服务器模型来实现。数字助手系统包括在用户装置(例如,104a和104b)上执行的客户端侧部分(例如,102a和102b)(以下“数字助手(da)客户端102”),以及在服务器系统108上执行的服务器侧部分106(以下“数字助手(da)服务器106”)。da客户端102通过一个或多个网络110与da服务器106通信。da客户端102提供客户端侧功能,例如面向用户的输入和输出处理,以及和da客户端106进行通信。da服务器106提供用于任意数量的da客户端102的服务器侧功能,每个da客户端102位于对应的用户装置104(也叫做客户端装置或电子装置)上。

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

用户装置104的例子包括但不限于:家庭控制中心装置、手持计算机、个人数字助手(pda)、平板计算机、膝上型计算机、桌上型计算机、蜂窝电话、智能电话、增强型通用无线分组业务(egprs)移动电话、媒体播放器、导航装置、游戏机、电视机、远程控制器,或者这些数据处理装置中的任意两个或更多个装置的组合或者任意其它适当的数据处理装置。参考图2所示的示例性用户装置104来提供关于用户装置104的更多细节。

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

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

虽然图1所示的数字助手系统包括客户端侧部分(例如,da客户端102)和服务器侧部分(例如,da服务器106)两者,但是在一些实施例中,数字助手系统仅指服务器侧部分(例如,da服务器106)。在一些实施例中,数字助手的功能可以作为安装在用户装置上的独立应用来实现。此外,数字助手的客户端部分和服务器端部分的功能划分在不同的实施例中可能不同。例如,在一些实施例中,da客户端102是瘦客户端,只提供面向用户的输入和输出处理功能,并将数字助手的所有其他功能委派给da服务器106。在一些其他实施例中,da客户端102被配置为执行或辅助da服务器106的一个或多个功能。

图2是根据一些实施例的用户装置104的框图。用户装置104包括存储器接口202、一个或多个处理器204、和外围设备接口206。用户装置104中的各组件由一个或多个通信总线或信号线耦合。用户装置104包括各种传感器、子系统、以及和外围设备接口206耦合的外围装置。传感器、子系统、以及外围装置收集信息和/或为用户装置104的各种功能提供便利。

在一些实施例中,用户装置104包括一个或多个提供通信功能的有线和/或无线通信子系统224。通信子系统224通常包括各种通信端口、射频接收器和发送器、和/或光学的(例如,红外)接收器和发送器。

在一些实施例中,用户装置104包括耦合到一个或多个扬声器228和一个或多个麦克风230的音频子系统226来促进语音使能功能(例如,语音识别、语音复制、数字录音、以及电话功能)。在一些实施例中,音频子系统226耦合到语音触发系统216。在一些实施例中,语音触发系统216和/或音频子系统226包括用于接收和/或分析声音输入的低功率音频电路和/或程序(即包括硬件和/或软件),包括例如一个或多个模数转换器、数字信号处理(dsp)、声音检测器、内存缓冲区、编码解码器等类似的。在一些实施例中,低功率音频电路(单独的低功率音频电路,或除了用户装置104其它组件之外还包括低功率音频电路)给用户装置104的一个或多个方面提供语音(或声音)触发功能,例如,基于语音的数字助手或者其它基于语音的服务。在一些实施例中,低功率音频电路甚至在用户装置104的其它组件(如一个(多个)处理器204、i/o子系统240、存储器250等类似的)处于关机和/或待机模式时仍提供语音触发功能。在一些实施例中,语音触发系统216与说话者识别系统相互作用或包括说话者识别系统,说话者识别系统有助于数字助手的说话者特定的语音触发功能。

在一些实施例中,i/o子系统240还耦合到外围设备接口206。i/o子系统206包括用于各种输入和输出装置(例如,触屏显示器、触摸板、键盘、红外端口、usb端口、和/或指针装置如铁笔)的输入和输出控制器。

存储器接口202被耦合到存储器250。在一些实施例中,存储器250包括非瞬态计算机可读介质,例如高速随机存取存储器和/或非易失性存储器(例如,一个或多个磁盘存储装置、一个或多个闪存装置、一个或多个光学存储装置、和/或其它非易失性固态存储装置)。

在一些实施例中,存储器250存储操作系统252、通信模块254、图形化用户界面模块256、传感器处理模块258、语音输入处理模块260、应用262,以及其子集或超集。操作系统252包括用于处理基础系统服务和执行硬件相关任务的指令。通信模块254有助于和一个或多个附加装置、一个或多个计算机和/或一个或多个服务器进行通信。图形化用户接口模块256有助于图形化用户接口处理。传感器处理模块258有助于传感器相关的处理和功能(例如,处理用一个或多个麦克风228接收到的语音输入)。语音输入处理模块260有助于语音输入处理的过程和功能。应用模块262有利于用户应用的各种功能,例如电子讯息、网页浏览、媒体处理、导航、家用电器控制和/或其他处理和功能。在一些实施例中,用户装置104在存储器250中存储一个或多个软件应用,每个软件应用分别和多个外部服务供应商中的至少一个外所服务提供商相关联。

如上所述,在一些实施例中,存储器250还储存客户端侧数字助手指令(例如,在数字助手客户端模块264中)和各种用户数据266(例如,用户语音样本、用户声纹、用户特定的词汇表数据、偏好数据、和/或其他数据,其他数据如用户的电子地址薄或联系人列表、待办列表、采购列表、用户对家用电器的偏好等)来提供数字助手的客户端侧功能。

在各种实施例中,数字助手客户端模块264能通过用户装置104的各种用户接口(例如,i/o子系统244)来接受语音输入、文本输入、触摸输入、和/或手势输入。数字助手客户端模块264还能提供音频的、视觉的、和/或触觉的形式的输出。例如,所提供的输出可以是如语音、声音、提示信号、文本消息、菜单、图形、视频、动画、振动、和/或以上两种或更多种的组合。在操作期间,数字助手客户端模块264使用通信子系统224来和数字助手服务器(例如,图1,数字助手服务器106)通信。

在一些实施例中,数字助手客户端模块264利用各种传感器、子系统和外围装置来从用户装置104的周围环境中收集额外的信息,以建立和用户输入相关联的上下文。在一些实施例中,数字助手客户端模块264向数字助手服务器(例如,图1,数字助手服务器106)提供和用户输入相关联的上下文信息或者其子集来帮助推断用户的意图。

在一些实施例中,存储器250可以包括额外的指令或者更少的指令。进一步地,用户装置104的各种功能可以在硬件和/或固件中实现,包括在一个或多个信号处理和/或应用特定集成电路中实现,因此,用户装置104不需要包括图2中所示的所有模块和应用。

图3a是根据一些实施例的示例性家庭助手系统300(也称为数字助手)的框图。在一些实施例中,家庭助手系统300在独立的计算机系统上实现。在一些实施例中,家庭助手系统300分布到多个计算机上。在一些实施例中,例如,如图1所示,家庭助手的一些模块和功能被划分为服务器部分和客户端部分,其中客户端部分位于用户装置例如,用户装置104)上(并通过一个或多个网络和服务器部分(例如,服务器系统108)通信。在一些实施例中,家庭助手系统300是图1所示的服务器系统108(和/或家庭助手服务器106)的实施例。在一些实施例中,家庭助手系统300在用户装置(例如,图1,用户装置104)中实现,从而消除对客户端-服务器系统的需求。应该注意的是,家庭助手系统300只是家庭助手系统的一个例子,并且家庭助手系统300可以有比所示的组件更多或更少的组件,或者可以结合两个或更多个的组件,或者可以有不同的组件配置或设置。图3a所示的各种组件可以在硬件、软件、固件中实现,包括一个或多个信号处理和/或应用特定的集成电路、或其任意组合。

家庭助手装置300包括存储器302、一个或多个处理器304、输入/输出(i/o)接口306、以及网络通信接口308。这些组件通过一个或多个通信总线或信号线310互相通信。

在一些实施例中,存储器302包括非瞬态计算机可读介质,例如高速随机存取存储器和/或非易失性计算机可读存储介质(例如,一个或多个磁盘存储装置、一个或多个闪存装置、一个或多个光学存储装置、和/或其它非易失性固态存储装置)。

i/o接口306将家庭助手系统300的输入/输出装置316(例如,显示器、键盘、触摸屏、麦克风)耦合到用户接口模块322。i/o接口306,连同用户接口模块322一起接收用户输入(例如,语音输入,键盘输入,触摸输入等)并相应地处理它们。在一些实施例中,当家庭助手在独立的用户装置上实现时,家庭助手系统300包括关于图2中的用户装置104所描述的组件和i/o和通信接口中的任意组件(例如,一个或多个麦克风230)。在一些实施例中,家庭助手系统300表示家庭助手实现方式中的服务器部分,以及通过位于用户装置(例如,图2中所示用户装置104)上的客户端侧部分来和用户交互。

在一些实施例中,网络通信接口308包括一个(多个)有线通信端口312和/或无线发射和接收电路314。一个(多个)有线通信端口通过一个或多个有线接口(例如,以太网、通用串行总线(usb)、火线等)来接收和发送通信信号。无线电路314通常从通信网络和其它通信装置接收射频信号和/或光学信号,以及将射频信号和/或光学信号发送至通信网络和其它通信装置。无线通信可以使用任意多个通信标准、协议和技术,例如gsm、edge、cdma、tdma、蓝牙、wi-fi、voip、wi-max、或任意其它适当的通信协议。网络通信接口308使数字助手系统300能够与网络(例如,因特网、内联网和/或无线网,如蜂窝电话网、本地无线局域网(lan)和/或城域网(man))和其它装置进行通信。

在一些实施例中,存储器302的非瞬态计算机可读存储介质存储程序、模块、指令和数据结构,包括以下各项中的所有或其子集:操作系统324、通信模块320、用户接口模块322、一个或多个应用324、数字助手模块326。一个或多个处理器304执行这些程序、模块、指令以及从数据结构中读取/向数据结构中写入。

操作系统318(例如,darwin、rtxc、linux、unix、osx、ios、windows、或嵌入式操作系统如vxworks)包括用于控制和管理一般系统任务(例如,存储器管理、存储装置控制、电源管理等)的各种软件组件和/或驱动,并有助于各种硬件、固件和软件组件之间的通信。

通信模块320有助于家庭助手系统300和其它装置之间通过网络通信接口308进行的通信。例如,通信模块320可以和图2所示的装置104的通信模块254进行通信。通信模块320还包括用于对无线电路314和/或有线通信端口312接收的数据进行处理的各种软件组件。

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

应用324包括被配置为由一个或多个处理器304执行的程序和/或模块。例如,如果数字助手系统是在独立的用户装置上实现的,那么应用324可以包括用户应用,如家庭控制中心、游戏、日历应用、导航应用或电子邮件应用。例如,如果家庭助手系统300是在服务器场(serverfarm)上实现的,则应用324可以包括资源管理应用、诊断应用或调度应用。

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

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

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

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

家庭助手326的自然语言处理模块332(“自然语言处理器”)拿取由语音到文本处理模块330生成的单词或标记的序列(“标记序列”),并试图把标记序列与数字助手识别的一个或多个“可操作意图”相关联。这里使用的“可操作意图”表示可以由数字助手326和/或数字助手系统300(图3a)执行的任务,以及具有在任务流模型354中实现的相关联的任务流。该相关联的任务流是数字助手系统300为了执行任务而采取的一系列程序化操作和步骤。数字助手系统能力的范围取决于已经实现并存储在任务流模型354中的任务流的数量和种类,或者换句话说,取决于数字助手系统300所识别的“可操作意图”的数量和种类。然而,数字助手系统300的有效性还取决于数字助手系统从用自然语言表达的用户请求中推断出正确的“一个(多个)可操作意图”的能力。

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

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

在一些实施例中,本体360由可操作意图节点和属性节点组成。在本体360中,每个可操作意图节点都直接或通过一个或多个中间属性节点链接到一个或多个属性节点。同样地,每个属性节点都直接或通过一个或多个中间属性节点链接到一个或多个可操作意图节点。

可操作意图节点,连同其所链接的概念节点,可以被描述为“域”。在目前的讨论中,每个域都与对应的可操作意图相关联,并指的是与特定的可操作意图相关联的节点组(以及节点之间的关系)。

在一些实施例中,本体360包括数字助手能够理解并采取行动的所有域(因此也包括可操作意图)。在一些实施例中,本体360可以被修改,例如通过添加或去除域或节点来修改本体,或者通过修改本体360内节点之间的关系来修改本体。

在一些实施例中,与多个相关的可操作意图关联的节点可以聚集在本体360中的“超域”下。例如,“旅行”超域可以包括属性节点和与旅行相关的可操作意图节点的集群。与旅行相关的可操作意图节点可以包括“航线预订”、“酒店预订”、“汽车租赁”、“获取方向”和“查找景点”等等。同一个超域(例如,“旅行”超域)下的可操作节点可以有许多共同的属性节点。例如,“航线预订”、“酒店预订”、“汽车租赁”、“获取方向”、“查找景点”等可操作意图节点可以共享以下属性节点中的一个或多个属性节点:“起始位置”、“目的地”、“出发日期/时间”、“到达日期/时间”和“派对规模”。

在一些实施例中,本体360中的每个节点都与一组单词和/或短语相关联,该组单词和/或短语与由节点所表示的属性或可操作意图相关。与每个节点相关联的对应单词和/或短语组是与该节点相关联的所谓“词汇表”。与每个节点相关联的对应单词和/或短语组可以存储在词汇表索引344(图3b)中,该词汇表索引与由节点所代表的属性或可操作意图相关联。例如,回到图3b,与属性“餐馆”的节点相关联的词汇表可以包括“食物”、“饮品”、“菜系”、“饥饿”、“吃”、“披萨”、“快餐”和“餐”等单词。再例如,与可操作意图“发起一个电话”的节点相关联的词汇表可以包括“呼叫”、“电话”、“拨号”、“响铃”、“拨打这个号码”、“打个电话给”等单词和短语。可选地,词汇表索引344包括不同语言的单词和短语。

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

在一些实施例中,数字助手系统300还将特定实体的名称存储在命名实体数据库350中,如此当在用户请求中检测到这些名称中的一个时,自然语言处理器332就能够识别该名称指的是本体中属性或子属性的特定实例。在一些实施例中,特定实体是企业、餐馆、人员和电影等类似的。在一些实施例中,命名实体数据库305还包括在对不同的家庭装置进行装置注册阶段的过程中由个人用户提供的家庭装置别名。在一些实施例中,数字助手系统300可以搜索和识别来自其他数据源(例如,用户的地址簿或联系人列表、电影数据库、音乐家数据库和/或餐馆数据库)的特定实体名称。在一些实施例中,当自然语言处理器332识别到标记序列中的单词是一个特定实体的名称(例如,在用户的地址簿或联系人列表中的名称,或家用装置的名称列表中的名称),则在本体中为用户请求选择可操作意图时给这个单词赋予额外的意义。在一些实施例中,数字助手的触发短语存储为被命名的实体,如此当它存在于用户的语音输入时可以被识别并赋予特殊的意义。

用户数据348包括用户特定的信息,如用户特定的词汇表、用户偏好、用户地址、用户的默认语言和第二语言、用户的联系人列表、以及每个用户的其他短期或长期信息。自然语言处理器332可以使用用户特定的信息来补充用户输入中包含的信息,从而进一步限定用户意图。例如,对于一个用户请求“邀请我的朋友来我的生日派对”,自然语言处理器332能够访问用户数据348来确定谁是“朋友”以及“生日派对”将在何时何地举行,而不是要求用户在他/她的请求中明确地提供此类信息。在一些实施例中,用户数据还包括用于说话者识别训练的用户的特定声纹或语音样本。

一旦自然语言处理器332基于用户请求而识别到可操作意图(或域),自然语言处理器332就生成结构化查询来表示所识别的可操作意图。在一些实施例中,结构化查询包括可操作意图的域中一个或多个节点的参数,并且所述参数中的至少一些参数是用用户请求中指定的特定信息和需求填充的。例如,用户可能会说,“帮我预定7点在寿司店的晚餐”。在这种情况下,自然语言处理器332可以能够基于用户输入来正确地识别到可操作意图是“餐厅预订”。根据本体,“餐厅预订”域的结构化查询可以包括如{菜系}、{时间}、{日期}和{派对规模}等参数。基于用户语音中包含的信息,自然语言处理器332可以为餐厅预订域生成部分结构化查询,其中部分结构化查询包括参数{菜系=“寿司”}和{时间=“下午7点”}。但是,在本示例中,用户的语音包含的信息不足以完成与域相关联的结构化查询。因此,基于当前可用的信息不能在结构化查询中指定其它必要的参数,如{派对规模}和{日期}。在一些实施例中,自然语言处理器332使用接收到的上下文信息填充结构化查询的一些参数。例如,如果用户请求“在我附近”的寿司餐厅,那么自然语言处理器332可以使用来自用户装置104的gps坐标在结构化查询中填充{位置}参数。

在一些实施例中,自然语言处理器332将结构化查询(包括任何已完成的参数)传递给任务流处理模块336(“任务流处理器”)。任务流处理器336被配置为执行以下任务中的一个或多个任务:从自然语言处理器332接收结构化查询;完成结构化查询;以及执行“完成”用户最终请求所需的动作。在一些实施例中,在任务流模型354中提供完成这些任务所需的各种程序。在一些实施例中,任务流模型354包括用于从用户获取额外信息的程序,以及用于执行与可操作意图相关联的操作的任务流。在一些实施例中,任务流模型354中的任务流描述用于控制用注册到数字助手的各个家庭装置的步骤,并基于装置名称列表,相对于在用户的语音输入中由家庭装置的别名指定的家庭装置,数字助手在合适的任务流中进行操作以执行这些步骤。

如上所述,为了完成结构化查询,任务流处理器336可能需要启动与用户的额外对话,以获取额外信息,和/或消除潜在的歧义语音。当需要这样的交互时,任务流处理器336调用对话处理模块334(“对话处理器”)来与用户进行对话。在一些实施例中,对话处理模块334确定如何(和/或何时)向用户询问额外信息,以及接收和处理用户响应。在一些实施例中,通过i/o处理模块328向用户提供问题以及接收用户的回答。例如,对话处理模块334通过音频和/或视觉输出向用户呈现对话输出,并通过说话或物理(如触摸手势)响应来接收用户的输入。继续上面的示例,当任务流处理器336调用对话处理器334来确定用于与“餐厅预订”域相关联的结构化查询的“聚会规模”和“日期”信息时,对话处理器334生成如“为多少人服务?”和“哪一天?”的问题来传递给用户。一旦从用户处接收到回答,对话处理模块334就将缺少的信息填充到结构化查询中,或者将信息传递给任务流处理器336来使结构化查询中缺失的信息完整。

一旦任务流处理器336完成了可操作意图的结构化查询,任务流处理器336就继续执行与可操作意图相关联的最终任务。因此,任务流处理器336根据结构化查询中包含的特定参数来执行任务流模型中的步骤和指令。例如,“餐馆预订”的可操作意图的任务流模型可以包括用于联系餐馆的步骤和指令、以及在特定时间为特定的派对规模实际请求预订的步骤和指令。例如,使用结构化查询如:{餐厅预订,餐厅=abc咖啡馆,日期=2012年3月12日,时间=下午7点,规模=5人},任务流处理器336可以执行如下步骤:(1)登录到餐厅预订系统或abc咖啡馆的服务器,该餐厅预定系统被配置为接受针对如abc咖啡馆的多个餐厅的预订,(2)在网站的表格上录入日期、时间、和派对规模信息,(3)提交表格,以及(4)在用户的日历中做一个该预定的日程表条目。在下面更详细描述的另一个示例中,响应于语音输入,任务流处理器336(例如,结合照片模块132)执行与标记或搜索数字照片相关联的步骤和指令。

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

在一些实施例中,自然语言处理器332、对话处理器334和任务流处理器336共同并反复地用于推断和限定用户的意图、获取信息以进一步阐明和完善用户意图、以及最后生成响应(例如,向用户提供输出,或完成任务)来实现用户的意图。

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

图4是根据一些实施方式的示例性的智能家庭环境。智能家庭环境400包括建筑物450,可供选择的,建筑物450是房子、办公大楼、车库、或活动房屋。应当理解的是,装置也可以被集成到不包括整个建筑物450的智能家庭环境400(例如,公寓、公寓、或办公空间)中。进一步地,智能家庭环境可以控制和/或被耦合到实际建筑物450之外的装置。事实上,智能家庭环境中的一些装置不需要在建筑物450的物理范围内。例如,控制游泳池加热器414或灌溉系统416的装置可以位于建筑物450的外部。

所述建筑物450包括多个房间452,通过墙壁454至少部分地彼此分开。墙壁454可以包括内墙或外墙。每个房间可以进一步包括地板456和天花板458。装置可以安装在墙壁454、地板456或天花板458上、与墙壁454、地板456或天花板458集成和/或由墙壁454、地板456或天花板458支撑。

在一些实施方式中,智能家庭环境400包括多个装置(包括智能的、多传感的、联网的装置),该多个装置互相无缝地集成在智能家庭网络(例如,图2的202)和/或与中央服务器或云计算系统集成以提供各种有用的智能家庭功能。智能家庭环境400可以包括一个或多个智能的、多传感的、联网的恒温器402(以下称为“智能恒温器402”),一个或多个智能的、联网的、多传感的危害检测单元404(以下称为“智能危害检测器404”),以及一个或多个智能的、多传感的、联网的入口通道接口装置406(以下称为“智能门铃406”)。在一些实施例中,智能恒温器402检测周围环境气候特征(例如,温度和/或湿度),并相应地控制高压交流(hvac)系统403。智能危险检测器404可以检测到危险物质或指示危险物质的物质(例如,烟、火和/或一氧化碳)的存在。智能门铃406可以检测人的靠近或离开一个位置(例如,外门)、控制门铃功能、通过音频或视觉的方式通知人的靠近或离开、和/或在安全系统上控制设置(例如,当居住者离开或回来时激活或去激活安全系统)。

在一些实施方式中,智能家庭环境400包括一个或多个智能的、多传感的、联网的墙壁开关408(以下称为“智能墙壁开关408”),连同一个或多个智能的、多传感的、联网的墙上插座接口410(以下称为“智能墙上插座410”)。智能墙壁开关408可以检测周围环境照明条件、检测房间占用状态、以及控制一个或多个灯的电源和/或昏暗状态。在一些示例中,智能墙壁开关408还可以控制电源状态或风扇(如吊扇)的转速。智能墙壁插头410可以检测房间或围墙的占用情况,并控制向一个或多个墙壁插头的电源供应(例如,如果没有人在家,则不向插头供电)。

在一些实施方式中,图4的智能家庭环境400包括多个智能的、多传感的、联网的电器412(以下简称“智能电器412”),如冰箱、炉灶、烤箱、电视机、洗衣机、烘干机、灯光、音响、对讲系统、车库打开器、落地扇、吊扇、壁挂空调、游泳池加热器、灌溉系统、安全系统、取暖器、窗式空调单元、机动导管喷口等等。在一些实施方式中,当插上电源时,电器可以(例如,通过表明它是什么类型的家电)向智能家庭网络发出通知,并且它可以自动与智能家庭的控件集成。由电器到智能家庭的这种通信可以通过有线或无线通信协议来实现。智能家庭还可以包括各种非通信的遗留家电器440,如旧的传统洗衣机/烘干机、冰箱等类似的,这些电器可以由智能墙壁插头410来控制。智能家庭环境400还可以进一步包括各种部分通信的遗留电器442,如红外(“ir”)控制的壁挂空调或其他红外控制装置,这些装置可以由智能危害检测器404或智能墙壁开关408提供的红外信号控制。

在一些实施方式中,智能家庭环境400包括一个或多个联网的相机418,该联网的相机418被配置为在智能家庭环境400中提供视频监控和安全。

智能家庭环境400还可以包括与在住宅物理范围之外但在住宅的近旁地理范围内的装置的通信。例如,智能家庭环境400可以包括游泳池加热器监控414,该游泳池加热器监控414将当前的游泳池温度向智能家庭环境400中的其它装置传达,和/或接收用于控制游泳池温度的命令。类似地,智能家庭环境400可以包括灌溉监控416,该灌溉监控416在智能家庭环境400中的灌溉系统进行与灌溉系统有关的信息的通信,和/或接收用于控制此类灌溉系统的控制信息。

通过网络连接,图4中的一个或多个智能家庭装置可以进一步在即使用户不靠近装置情况下允许该用户与装置进行交互。例如,用户可以使用计算机(例如,桌上型计算机、膝上型计算机或平板计算机)或其他便携式电子装置(如智能手机)466与装置进行通信。网页或应用可以被配置为接收来自用户的通信并基于该通信控制装置、和/或向用户呈现与装置的操作有关的信息。例如,用户可以查看装置的当前设定点温度并使用计算机来调整它。在此远程通信期间,用户可以在建筑物中,也可以在建筑物之外。

如上所讨论的,用户可以使用联网的计算机或便携式电子装置466在智能家庭环境400中控制智能恒温器和其他智能装置。在一些例子中,居住者(例如,居住在家中的多个个人)中的全部或部分可以用智能家庭环境400注册他们的装置466。这种注册可以在中央服务器上进行,以将居住者和/或装置认证为与住宅相关联,并允许居住者使用装置来控制家中的智能装置。例如,当居住者在工作或度假的时候,居住者可以使用他们已注册的装置466远程控制家里的智能装置。当居住者实际位于家中时(例如,当居住者坐在家中的沙发上时),居住者也可以使用他们已注册的装置来控制智能装置。应当理解的是,代替对装置466进行注册,智能家庭环境400可以推断哪些人居住在家中并因此是居住者、以及哪些装置466与这些人相关;或者,除了对装置466进行注册,智能家庭环境400还可以推断哪些人居住在家中并因此是居住者、以及哪些装置466与这些人相关。因此,智能家庭环境可以“学到”谁是居住者,并允许与这些个人相关联的装置466控制家里的智能装置。

在一些实施方式中,除了包含处理和传感能力,装置402、404、406、408、410、412、414、416和/或418(统称为“智能装置”)能够与其他智能装置、中央服务器或云计算系统、和/或所联网的其他装置进行数据通信以及信息共享。所需的数据通信可以使用各种定制或标准的无线协议(ieee802.15.4、wi-fi、zigbee、6lowpan、thread、z-wave、bluetoothsmart、isal00.11a、wirelesshart、miwi等)中的任意协议、和/或各种定制或标准的有线协议(cat6以太网、homeplug等)中的任意协议、或任何其他合适的通信协议(包括截至本申请文件递交日期仍未开发出的通信协议)来实现。

在一些实施方式中,智能装置充当无线或有线中继器(repeater)。例如,智能装置中的第一智能装置通过无线路由器与智能装置中的第二智能装置进行通信。这些智能装置互相之间可以通过与一个或多个网络462(例如,因特网)的连接进行进一步通信。通过一个或多个网络462,智能装置可以与智能家庭供应商服务器系统464(本文也称为中央服务器系统和/或云计算系统)进行通信。在一些实施方式中,智能家庭供应商服务器系统464可以包括多个服务器系统,每个服务器系统专用于与智能装置的对应子集相关联的数据处理(例如,视频服务器系统可以专用于与一个(多个)相机418相关联的数据处理)。智能家庭提供商服务器系统464可以与以下各项相关联:与智能装置相关联的制造商、支持实体或服务提供商。在一些实施方式中,用户能够使用智能装置本身联系客户支持,而不需要使用其他通信手段(例如电话或联网计算机)。在一些实施方式中,软件更新自动从智能家庭供应商服务器系统464发送到智能装置(例如,当可获得时、当购买时、或在常规时间段内)。

在一些实施例中,家里的智能装置中的一个或多个包括开放音频输入通道,该开放音频输入通道能捕获在它们附近的音频输入,以及能用作家庭助手(例如,家庭助手106、104、300、和/或326)的音频输入装置来控制安装在家里的所有智能装置。在一些实施例中,智能装置之一还包括数字助手模块,并用作家庭助手来管理安装在家中的所有智能装置。在一些实施例中,独立的家庭助手装置独立于便携式装置466和安装在家里的智能家庭装置而存在,并且独立的家庭助手装置接收并响应来自居住在家中的多个家庭成员的语音输入。在一些实施例中,可以有多个家庭助手装置分布在整个房屋中,在控制安装在家中的智能装置时,这些装置彼此独立地或协作地操作。

图5a-5c是示出根据一些实施例的基于说话者识别和多个家庭装置的名称列表来对家庭助手进行控制的方法和系统的框图。

在一些实施例中,预设触发词包括为激活或唤醒家庭助手并处理语音命令而预先定义的单个词或短语。触发词也被称为唤醒词。当家庭助手装置接收到来自用户的语音输入时,自动语音识别(asr)模块使用语音到文本转换模型将语音输入转录成文本串。如果家庭助手装置检测到该文本串包含预设的唤醒词,那么唤醒装置,并准备接收接下来的语音命令和/或处理该语音输入以确定该语音输入是否已经包含语音命令。

用于处理语音输入的传统机制存在以下问题。首先,由于周围环境噪声、说话者的口音和语音质量,如果用于识别触发词的置信度阈值设置得低以提高对触发词的敏感度,则装置常常会被相似声响的语音或背景噪声误激活。然而,如果将用于识别触发词的置信度阈值设置得高以降低装置对触发词的敏感度以及提高识别准确度,则装置经常无法被用户说出的触发词唤醒。默认的语音到文本转换模型容纳了很多人的语音和语音模式,因此,选择最适当的置信度阈值来识别触发词是很困难的。一些研究人员建议使用单个用户的语音样本来训练用户特定的语音到文本模型。然而,让每个用户提供足够多的语音样本来构建完全使用用户自己的语音样本的语音到文本转换模型简直是不现实的。在使用过程中逐步再训练语音到文本模型也不是很理想。家庭助手通常由同一家庭的多个用户使用;收集所有语音输入并将其添加到训练语料库中,而不区分说出这些语音输入的不同用户并不会提高语音到文本转换模型的准确度。相反,由于语音到文本转换模型中输入的训练材料相互冲突,这种再培训可能会降低家庭中语音到文本模型的准确度。因此,在没有最适当的语音到文本转换模型的情况下调整置信分数、以及在没有对语音输入先执行说话者识别的情况下增加用户语音输入来不断训练语音到文本转换模型并然后为每个家庭成员偏置家庭的默认语音到文本模型,实际上效果不佳。家庭助手与位于个人手持装置上的数字助手表现略有不同,因为家庭助手装置接收来自多个家庭成员的语音输入,且单个语音到文本模型并不适用于所有家庭成员。此外,再训练语音到文本转换模型不同于简单地偏置默认的语音到文本转换模型。相比起基于来自对应用户的少量语音样本来简单地偏置语音到文本转换模型的声学模型来生成该用户特定的语音到文本转换模型而言,再训练更耗时,并需要更多的训练样本。

使用触发词来激活始终保持音频输入通道打开并搜索触发词的家庭助手的另一个常见问题是,家庭助手可以被自己的声音激活。有问题的场景是,当家庭助手已经被激活,在使用系统语音(例如,预设的模拟人的声音)输出一些语音输出的过程中,而系统的语音输出包括该触发词。解决这个问题的一种方法是在系统生成语音输出时关闭音频输入通道,然而,这意味着当家庭助手正在生成语音输出时,家庭助手将不能响应用户的命令来中断家庭助手。

传统家庭助手的另一个问题是,同一个家庭中有多个用户被授权控制家庭助手。然而,可能不希望同一家庭的不同成员都能同样访问通过家庭助手所控制的所有功能和装置。例如,家庭里的小孩应该能够使用家庭助手来调节房间里的空调,但不能改变房子的安全系统。另一个例子中,办公室的清洁人员应该能够使用家庭助手来关掉办公楼里所有的灯,但不能操作打印机。一种可能的解决方案是建立说话者识别,在完成语音到文本转换并对用户输入的文本版本执行意图推断以确定用户的意图之后,禁止家庭助手执行所请求的任务。然而,使用家庭助手的整个意图推断能力来推断用户的意图,然后才确定用户的意图是被禁止执行的任务,这是一种浪费。因此,更好的方法是确认说话者,只使用意图推断功能的子集来推断该用户被允许的意图。换句话说,如果用户不被允许通过数字助手操作打印机,数字助手在对用户语音输入的文本版本执行意图推断时,将不会激活与打印机操作相关的域。数字助手接收到未被授权的命令时,将像是不理解未被授权的命令那样作出响应。例如,数字助手会说:“对不起,我不能那样做”或“对不起,我不明白您的命令”。这样,意图推断就会更快,对用户输入的解析也会更快。

在本公开中,特别是在有多个家庭成员使用家庭助手的情况下,说话者识别技术被集成到数字助手系统中以解决上述问题。在确定语音输入的说话者之后,数字助手系统可以采取适当的用户特定的操作。

在一些实施例中,数字助手使用的自动语音识别模型适用于使用预先为每个用户所记录的样本语音输入的家庭的注册用户。例如,在注册过程中,数字助手的每个被授权用户需要说出多个样本语音输入,该样本语音输入用于为每个个人用户偏置语音到文本转换模型的声学模型,以及为个人用户生成用户特定的语音到文本转换模型。这些语音样本还被用来训练说话者识别模型,该说话者识别模型可以区分家庭中不同用户的语音输入,并区分家庭用户和访客用户。在一些实施例中,对数字助手系统的语音进行预存储和处理,以便也可以使用说话者识别模型来识别数字助手的语音。在一些实施例中,每个家庭成员可以为数字助手选择一个独有的模拟语音,数字助手的每个模拟语音被存储并用于识别数字助手的语音。如果数字助手收到的语音输入和家庭成员给数字助手选择的任意一个模拟语音相匹配,那么数字助手忽略在语音输入中识别的触发词,并且不激活该语音输入的意图推理或随后收到的紧随该语音输入的语音输入。在一些实施例中,一个房子中可能有多个数字助手彼此接近,每个数字助手的模拟语音已被存储,如果一个数字助手的音频通道中接收到的语音输入被确定为和家庭中数字助手之一的模拟语音相匹配,则该语音输入不会激活任何数字助手,也不会触发意图推理。在一些实施例中,每个数字助手的每个模拟语音都具有相应的用户特定和助手特定的声学模型,以用于检测触发词,该触发词是通过使用不同模拟语音中的来自不同数字助手的一小组语音样本来生成的。在一些实施例中,数字助手或其服务器维护用于唤醒词检测的系统语音的黑名单。这有助于避免数字系统的意图推断过程被数字助手自身的语音输出或相邻数字助手的语音输出触发。

在一些实施例中,在接收到语音输入后,首先执行说话者识别过程。如果说话者被识别为家庭的注册用户之一,那么数字助手或其服务器使用用于被识别的说话者的与说话者相关的语音到文本模型来进行语音识别。这将有助于提高识别准确度。在自动语音识别过程中,随着识别准确度更高,创建更多用于检测唤醒词的置信度值的空间。

在一些实施例中,当检测到音频输入时,对音频输入进行说话者识别,并且如果音频输入与家庭中已注册的说话者中的任何说话者都不匹配,则将音频输入视为背景噪声并丢弃。在一些实施例中,当使用用户特定的声学模型时,识别背景噪声与语音的阈值比整个家庭都使用通用或默认的声学模型时要高。

在一些实施例中,数字助手系统引用查找表来确定是否允许说出语音输入的被识别的用户去操作或访问数字助手能够执行的所有功能。根据确定用户只被允许访问所有功能的子集,数字助手识别该用户被允许访问的域,并只使用用户被允许访问的域来对用户语音输入的文本版本执行意图推断。

在一些实施例中,数字助手系统能记住每个用户的个性化设置,并且当用户通过数字助手打开某些家电装置时恢复其默认/上次的设置。

在一些实施例中,数字助手系统还能基于被识别的用户过去使用的数据向他/她提出一些建议。

参考图5a,在一些实施例中,在注册阶段期间,为数字助手创建查找表。该查表包括通过数字助手可控制的装置(例如,x装置、y装置等)。对于家庭助手,能通过数字助手控制的装置可以包括不同房间的空调、房间里的音频系统、家庭安全系统、厨房电器、房间里的灯等。注册过程能继续进行,并随着时间的推移,可以添加新的装置到查找表中。在一些实施例中,默认给予已经在表中注册的现有用户对每个新装置的权限,特别地,用户注册新设备可以请求数字助手将表中的针对特定用户的许可从允许改成不允许。在一些实施例中,可以通过用户注册过程将新用户添加到查找表中。无论用户是否被允许访问查找表中的所有装置,查找表中的所有用户都是被授权控制数字助手的用户。查找表用作对数字助手具有控制权的授权用户的白名单。由于数字助手不被包括在查找表中,模拟语音不能激活数字助手并启动意图推断过程。

在一些实施例中,创建用户黑名单来表明哪些用户的语音不能被用来通过使用预先定义的唤醒词来触发意图推断过程。例如,数字助手可以被包括在用户黑名单中,客人或孩子的语音可以被包括在黑名单中。使用黑名单是一种有力的措施,并且当用户或系统被包括在黑名单中时,不仅当音频语音输入中出现触发词时不会触发意图推断,在一些实施例中,还跳过了语音到文本的转换。

在一些实施例中,在注册过程中,数字助手或其服务器请求正在注册的每个用户说出一些样本语音输入,并且该样本语音输入被数字助手或其服务器记录和存储。数字助手或其服务器使用所记录的语音样本输入,使自动语音识别声学模型适用于每个注册用户,并为每个已注册的用户生成对应的用于语音识别的用户特定的声学模型组。

在一些实施例中,使语音识别模型的默认声学模型适应于单个注册用户的一种简单方式是,首先为已注册的用户计算所记录的短语的声学特征的平均值。然后,确定声学模型中说话者特定平均值(speaker-specificmeans)与不依赖于说话者(speaker-independentmeans)的平均值之间的差。在一些实施例中,声学模型的不依赖于说话者的平均值可以由数字助手系统预先准备。在对每个单个注册用户说出的语音输入进行语音识别的过程中,会考虑该单个注册用户的说话者特定的差异。

在一些实施例中,可以使用更复杂的方法,如使用最大似然线性回归(mllr)、最大后验(map)和特征语音(eigenvoice)方法。关于这些方法的参考信息可以在如https://www.inf.ed.ac.uk/teaching/courses/asr/2008-9/asr-adapt-1x2.pdf,https://wiki.inf.ed.ac.uk/pub/cstr/listensemester1_2007_8/kuhn-junqua-eigenvoice-icslp1998.pdf中找到。

在一些实施例中,从所有已注册的用户接收的所记录的短语被用于训练说话者识别模型。该说话者识别模型相对来说易于训练并且是轻量级的,使得可以在说话者的位置本地(例如,在家庭助手装置客户端侧)执行说话者识别,而不需要服务器参与。在一些实施例中,一旦识别到说话者,就可以将说话者身份连同语音输入一起发送到服务器。

在一些实施例中,要求用户多次说出触发词,并且说话者识别是一个不依赖于文本的说话者识别过程。当用户向数字助手系统说出唤醒词时,数字助手系统将触发词的输入语音与预先录制的触发词集进行比较,并确定最佳匹配的用户。

在一些实施例中,在不依赖于文本的说话者识别过程中使用全部的语音。例如,可以在https://en.wikipedia.org/wiki/speaker_recognition上找到不依赖于文本的说话者识别的参考信息。

参考图5b,在一些实施例中,在数字助手系统的操作阶段,输入语音分别被发送到语音识别模块和说话者识别模块。在一些实施例中,语音输入不会被发送到语音识别模块,直到语音识别模块已经将该说话者识别为被授权控制数字助手的注册用户为止。

在一些实施例中,在说话者被识别后,如果用户被识别到是在用户白名单中的注册用户之一而不在用户黑名单中,则数字助手被激活并准备执行意图推断。在一些实施例中,如果用户没有被识别到是白名单中的注册用户之一,或者被识别到是在用户黑名单中,则跳过意图推断和/或语音到文本的转换。

在一些实施例中,如果用户对其打算访问的由助手控制的装置没有访问权限,则数字助手不采取任何操作来执行所请求的。如果数字助手确定用户拥有对助手所控制的装置的权限,则数字助手将根据用户的命令在指定的装置上进行操作,和/或恢复该用户的默认/上次设置。

在一些实施例中,基于已识别的用户过去的使用数据,数字助手向用户提供关于用户请求访问的装置的建议或提醒。

在一些实施例中,一种用于对数字助手系统进行操作的方法是在包括存储器和一个或多个处理器的电子装置上执行该方法,所述存储器存储用于由一个或多个处理器(例如,电子装置104)执行的指令。该方法包括:接收音频输入;对所述音频输入执行说话者识别;根据确定所述音频输入包括来自被授权控制所述家庭助手装置的第一用户的语音输入:对所述音频输入执行语音到文本的转换,以获得文本串;以及在所述文本串中搜索用于激活所述家庭助手装置的预先定义的触发词(例如,对下一个音频输入或紧随该音频输入的音频输入开始进行意图推断);以及根据确定所述音频输入包括来自所述家庭助手装置的语音输入:放弃对所述音频输入执行语音到文本的转换;以及放弃搜索预先定义的触发词。

在一些实施例中,在文本串中搜索预先定义的触发词包括:从多个预设的触发词中选择与第一用户相应的对应触发词,其中,所述多个预设的触发词与包括所述第一用户在内的多个用户中的不同用户相应;以及使用与所述第一用户相应的对应触发词作为要被搜索的预先定义的触发词。

在一些实施例中,所述方法包括:根据确定所述音频输入包括来自被授权控制所述家庭助手装置的所述第一用户的语音输入:从所述家庭助手装置的多个任务域中选择一个或多个第一任务域来对所述文本串执行意图推断,其中,所述第一用户被授权控制所述一个或多个第一任务域;放弃使用所述多个任务域中的一个或多个第二任务域处理所述文本输入,其中,所述第一用户未被授权控制所述一个或多个第二任务域。

在一些实施例中,所述方法包括:获得与所述家庭助手装置相应的默认的语音到文本模型;以及根据确定由所述第一用户提供的所记录的多个语音样本是可用的,根据由所述第一用户提供的多个语音样本来调整所述默认的语音到文本模型,以生成针对所述第一用户的第一用户特定的语音到文本模型,其中,对所述音频输入执行语音到文本的转换来获得所述文本串包括:使用针对所述第一用户的所述第一用户特定的语音到文本模型来对所述音频输入执行语音到文本的转换。在一些实施例中,根据确定由所述第一用户提供的所记录的多个语音样本是不可用的,使用所述默认的语音到文本模型来对所述音频输入执行所述语音到文本的转换。在一些实施例中,根据确定由所述第一用户提供的所记录的多个语音样本是可用的,当使用所述第一用户特定的语音到文本模型来对所述音频输入进行所述语音到文本的转换时,设置用于识别所述音频输入中的所述触发词的第一置信度阈值;以及根据确定由所述第一用户提供的所记录的多个语音样本是不可用的,当使用所述默认的语音到文本模型来对所述音频输入执行所述语音到文本的转换时,设置用于识别所述音频输入中的所述触发词的第二置信度阈值。在一些实施例中,用于所述第一用户特定的语音到文本模型的所述第一置信度阈值高于用于所述默认的语音到文本模型的所述第二置信度阈值。

参考图5c,对于向数字助手系统注册智能家庭装置的对应用户,对应用户为他/她正在注册的装置中的每个装置指定唯一的别名,以及数字助手为针对每个用户的所有已注册的装置创建名称列表。

在注册阶段,当已注册的用户通过家庭助手系统注册家里的装置时,家庭助手系统建议用户为每个正在被注册的装置提供别名。允许不同的用户将不同的名称提供给同一装置,并且一旦用户将装置的唯一序列号输入到家庭助手系统,那么家庭助手系统显示或输出家庭中其他已注册的用户提供该同一装置的名称。智能家庭助手允许用户为装置选择与其他用户一样的相同的别名,并允许用户为该装置选择与其他用户选择的别名不同的别名。

针对正在注册装置的每个已注册用户,家庭助手系统为每个装置创建三元组(装置名称、装置类型、序列号),并将所有三元组发送到数字助手服务器,其中,服务器在家庭的唯一家庭标识符下为家庭中的所有已注册用户存储所有装置的名称列表。在一些实施例中,家庭的已注册用户之一只需提供给装置一次别名,而另一个用户仅需选择加入即可使用另一个已注册用户选择的别名。在一些实施例中,当第一用户在使用该类型装置的上下文中首次说出该由另一个用户为该装置注册的别名时,数字助手向第一用户要求至少一次确认要使用由另一个用户为该装置注册的别名。

在一些实施例中,装置的名称列表包括各种电器类型的装置或者单一电器类型的装置。例如,对于同一用户来说或者对于多个不同用户来说,可以将多个不同的别名提供给同一装置,以及当一个(多个)相应的用户使用该装置时,这些多个不同别名中的每个别名都将被视为该装置的名称。相同装置类型的不同装置可以有不同的别名。用户可以使用它们对应的别名来对这些装置进行操作,或者使用装置类型的类属名来让数字家庭助手基于其他手段(例如,用户语音中的描述性术语或用户的位置、或者用户过去的偏好等等)来消除用户意图歧义。

在一些实施例中,当向数字家庭助手注册家里的第一家庭装置时,数字家庭助手服务器为该家庭自动生成家庭id(身份识别)。家里的装置的名称列表是基于家庭的唯一标识符来被检索的。

在一些实施例中,在意图分类和命名实体识别阶段,例如在完成说话者识别和语音到文本转换的过程之后,将家庭的家庭id以及从用户的语音输入获得的文本串发送到数字家庭助手系统。通过使用家庭id作为搜索秘钥,数字家庭助手系统从服务器数据库中检索针对该家庭已经被注册的家庭装置的列表。

系统在意图分类和命名实体识别中使用检索列表中的信息。这些信息有助于提高意图分类和命名实体识别的准确度。装置的类型信息将帮助系统识别输入文本的意图,例如,要打开空调而不是要打开风扇或打开收音机。序列号信息会让系统知道要控制哪个装置。装置名称信息将帮助系统从命令短语中正确识别命名实体。

图6是根据一些实施例的用于对数字助手进行操作以控制家庭装置的方法的流程图。可选地,该方法由存储在计算机存储器或非瞬态的计算机可读存储介质(例如,客户端装置104的存储器250、与数字助手系统300相关联的存储器302)中且由数字助手系统的一个或多个计算机系统(包括但不限于服务器系统108)和/或用户装置104-a的一个或多个处理器来执行的指令来支配。所述计算机可读存储介质可以包括磁盘或光盘存储装置、固态存储装置(如闪存)、或一个或多个其他非易失性存储装置。存储在计算机可读存储介质上的计算机可读指令可以包括以下中的一个或多个:源代码、汇编语言代码、目标代码、或由一个或多个处理器解释的其它指令格式。在各种实施例中,可以组合每个方法中的一些操作,和/或一些操作的顺序可以相对于附图中所示的顺序有所改变。同样,在一些实施例中,在各单独的附图中示出的操作和/或与各单独的方法相关联地讨论的操作可以组合以形成其它方法,而在同一附图中示出的操作和/或与同一方法相关联地讨论的操作可以被分成多个不同的方法。此外,在一些实施例中,方法中的一个或多个操作是由数字助手系统300和/或电子装置(例如,用户装置104)的模块来执行的,模块包括例如自然语言处理模块332、对话流处理模块334、音频子系统226、和/或其任何子模块。

图6是示出根据一些实施例的对数字助手系统进行操作的方法。在一些实施例中,在电子装置上执行方法600,电子装置包括存储器和一个或多个处理器,存储器存储用于由一个或多个处理器(例如,电子装置104)执行的指令。该方法包括:接收(602)音频输入;对所述音频输入执行(604)语音到文本的转换,以获得文本串;搜索(606)多个家庭装置的名称列表,以确定所述文本串是否包括所述名称列表中至少一个家庭装置的对应别名;根据确定所述文本串包括与第一装置类型的第一家庭装置相应的第一别名,生成(608)要操作所述第一装置类型的所述第一家庭装置的第一可操作意图;以及根据确定所述文本串包括与所述第一装置类型的第二家庭装置相应的第二别名,生成(610)要操作所述第一装置类型的所述第二家庭装置的第二可操作意图;其中,所述第一装置类型的所述第二家庭装置与所述第一家庭装置不同。

在一些实施例中,所述方法包括:响应于从第一用户接收到的第一装置注册请求,注册所述第一装置类型的所述第一家庭装置;以及响应于从与所述第一用户不同的第二用户接收到的第二装置注册请求,注册所述第一装置类型的所述第二家庭装置。在一些实施例中,所述方法包括:响应于接收到所述音频输入,对所述音频输入执行说话者识别,其中,根据确定所述说话者识别表明所述音频输入是由所述第一用户提供的,以及根据确定所述第一别名是由所述第一用户为所述第一家庭装置进行注册的,生成要操作所述第一家庭装置的所述第一可操作意图。在一些实施例中,所述方法包括:根据确定所述文本串包括与所述第一家庭装置对应的所述第一别名,以及根据确定所述第一别名不是由所述第一用户为所述第一家庭装置进行注册的别名,放弃生成要操作所述第一家庭装置的第一可操作意图。

在一些实施例中,所述方法包括:结合第一家庭标识符,从所述第一用户处接收所述第一装置注册请求,所述第一装置注册请求针对所述第一装置类型的所述第一家庭装置;响应于接收到所述第一装置注册请求,确定所述第一装置类型的另一个装置是否已经在所述第一家庭标识符下被注册;以及根据确定所述第一装置类型的至少一个其它家庭装置已经被不同于所述第一用户的另一个用户在所述第一家庭标识符下注册,向所述第一用户提供已经在所述第一家庭标识符下被注册的所述第一装置类型的所述至少一个其它家庭装置的对应别名。在一些实施例中,提供已经在所述第一家庭标识符下被注册的所述第一装置类型的所述至少一个其它家庭装置的对应别名包括:根据确定在所述第一装置注册请求中提供给所述第一装置的对应别名和提供给所述至少一个其它装置中的至少一个装置的别名是相同的,向所述第一用户提供提示信号,其中,所述至少一个其它装置是指在所述第一家庭标识符下已经被注册的所述第一装置类型的装置。在一些实施例中,所述方法包括:接收针对使用所述第一装置注册请求中的对应别名来注册所述第一装置的用户确认;以及根据确定所述第一装置注册请求中的对应别名还没有提供给已由所述第一用户注册的其它装置,用所述第一装置注册请求中的对应别名将所述第一装置注册到所述名称列表中。

为了便于解释,上述描述是参照具体实施例来描述的。然而,上述的说明性讨论并不是详尽无遗的,也不是为了将所公开的实施例限定为所公开的精确形式。鉴于以上的教导,是可能有许多修改和变化的。所选择和描述的实施例是为了最好地解释所公开的想法的原理和实际应用,从而使本领域的其他技术人员能够通过各种修改来充分地利用它们以适用于其所设想的特定用途。

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

本文中使用的术语仅用于描述特定实施例,并不用于限制权利要求。如在实施例的描述和所附权利要求中所使用的单数形式“一、一个和该”(a、an、the)也旨在于包括多数形式,除非上下文中清楚表明了其他情况。还应理解,本文中使用的术语“和/或”指的是包含多个相关联的所列项目中的一个或多个的任何和所有可能的组合。进一步地还应理解,术语“包括”和/或“包含”在用于本申请文件中时,列举说明的特征、整数、步骤、操作、元素、和/或组件的存在,但不排除存在或增加一个或多个其他特征、整数、步骤、操作、元素、组件和/或其组合。

取决于上下文,本文中使用的术语“如果”一词可以被解释为“当”或“一旦”或“响应于确定”或“根据确定”或“响应于检测到”所陈述的前提条件为真时。同样,取决于上下文,短语“如果确定[所陈述的前提条件为真]”或“如果[所陈述的前提条件为真]”或“当[所陈述的前提条件为真]时”可以被解释为“一经确定”或“一经确定就”或“响应于确定”或“根据确定”或“一经检测到”或“响应于检测到”所陈述的条件为真时。

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