相关申请的交叉引用
本申请要求于2018年9月28日提交的美国专利申请no.16/145,275的优先权,其全部内容通过引用并入本文。
本技术涉及消费品,并且更具体地,涉及针对语音可控媒体回放系统或其一些方面的方法、系统、产品、特征、服务和其他元素。
背景技术:
访问和收听外放设置中的数字音频的选项是有限的,直到2003年sonos公司申请了其首批专利申请中的一件题为“methodforsynchronizingaudioplaybackbetweenmultiplenetworkeddevices(用于在多个联网设备之间同步音频播放的方法)”的专利申请,并在2005年开始出售媒体回放系统。sonos无线高保真(hifi)系统使人们可以通过一个或多个联网回放设备体验来自许多源的音乐。通过安装在智能电话、平板计算机或计算机上的软件控制应用,人们能够在具有联网回放设备的任何房间中播放他或她期望的内容。另外,使用控制器,例如,能够将不同的歌曲流传输到具有回放设备的每个房间,能够将房间组合在一起进行同步回放,或者可以在所有房间中同步收听相同的歌曲。
鉴于对数字媒体的兴趣日益增长,仍然需要开发一种消费者易于使用的技术以进一步增强收听体验。
附图说明
参考以下说明书、所附权利要求和附图,可以更好地理解所公开的技术的特征、方面和优点,在附图中:
图1a是具有根据所公开技术的方面配置的媒体回放系统的环境的局部剖视图;
图1b是图1a的媒体回放系统和一个或多个网络的示意图;
图2a是示例回放设备的功能框图;
图2b是图2a的回放设备的示例外壳的立体图;
图3a-3e是示出了根据本公开的方面的示例回放设备配置的图;
图4a是根据本公开的方面的示例控制器设备的功能框图;
图4b和图4c是根据本公开的方面的控制器接口;
图5是根据本公开的方面的示例网络麦克风设备的某些组件的功能框图;
图6a是示例语音输入的图;
图6b是描绘根据本公开的方面的示例声音样本的图;
图7是根据本公开的方面的用于两阶段唤醒词检测的示例方法的流程图;
图8是根据本公开的方面的用于生成关键词发现和选择模型的系统的功能框图;
图9是示出了根据本公开的方面的在压缩之前和压缩之后经由软权重共享的神经网络模型的权重的对数权重分布的图;以及
图10示出了根据本公开的方面的神经网络模型的压缩稀疏行表示的示例。
附图是出于说明示例实施例的目的,但是应当理解的是,本发明不限于附图中所示的布置和手段。在附图中,相同的附图标记标识至少大致相似的元件。为了促进对任何特定元件的讨论,任何参考数字中的一个或多个最高有效位指的是首次引入该元件的附图。例如,首先参照图1a介绍和讨论元件103a。
具体实施方式
i.概述
在“智能”家居中,语音控制可能是有益的,该“智能”家居包括连接到通信网络的智能电器和设备(例如,无线音频回放设备、照明设备和家庭自动化设备(例如,恒温器、门锁等))。在一些实施方式中,网络麦克风设备可以用于控制智能家居设备。
网络麦克风设备(“nmd”)是一种网络计算设备,通常包括麦克风的布置(例如,麦克风阵列),该麦克风的布置被配置为检测nmd环境中存在的声音。检测到的声音可以包括与背景噪声(例如,回放设备输出的音乐或其他环境噪声)混合在一起的人的语音。实际上,nmd通常会过滤检测到的声音,以从人的语音中消除背景噪声,从而促进识别该语音是否包含表示语音控制的语音输入。如果是这样,则nmd可以基于这种语音输入来采取措施。
nmd通常采用唤醒词引擎(通常在nmd上搭载)来识别该nmd检测到的声音是否包含包括特定唤醒词的语音输入。唤醒词引擎可以被配置为使用一种或多种识别算法来识别(即,“发现”)特定唤醒词。该唤醒词识别过程通常被称为“关键词发现”。在实践中,为了帮助促进关键词发现,nmd可以缓冲nmd的麦克风检测到的声音,然后使用唤醒词引擎来处理该缓冲的声音以确定是否存在唤醒词。
当唤醒词引擎在检测到的声音中发现唤醒词时,nmd可以确定发生了唤醒词事件(即,“唤醒词触发”),这表明nmd已检测到包括潜在语音输入的声音。唤醒词事件的发生通常会使nmd执行涉及检测到的声音的附加过程。在一些实施方式中,除其他可能的附加过程之外,这些附加过程可以包括:输出指示已经识别出唤醒词的警报(例如,可听见的铃声和/或光指示器),以及从缓冲器提取检测到的声音数据。提取检测到的声音可以包括:根据特定格式读出并封装检测到的声音的流,并向适当的语音助手服务(vas)发送该封装的声音数据以用于解释。
继而,与由唤醒词引擎识别的唤醒词相对应的vas通过通信网络从nmd接收发送的声音数据。传统上,vas采用远程服务的形式,该远程服务是使用一个或多个配置为处理语音输入的云服务器(例如,amazon的alexa、apple的siri、microsoft的cortana、google的assistant等)来实施的。在某些情况下,vas的某些组件和功能可能分布在本地设备和远程设备上。附加地或替代地,vas可以采用在nmd或包括nmd的媒体回放系统处实现的本地服务的形式,使得语音输入或某些类型的语音输入(例如,基本命令)在本地处理而无需来自远程vas干预。
在任何情况下,当vas接收到检测到的声音数据时,该vas通常会处理该数据,这涉及识别语音输入并确定在该语音输入中捕获的单词的意图。然后,vas可以根据该确定的意图使用某指令将响应提供回nmd。根据该指令,nmd可以使一个或多个智能设备执行操作。例如,在其他示例中,根据来自vas的指令,nmd可以使回放设备播放特定歌曲,或者使照明设备打开/关闭。在一些情况下,nmd或具有nmd的媒体系统(例如,配备有nmd的回放设备的媒体回放系统)可以被配置为与多个vas交互。实际上,nmd可以基于在nmd检测到的声音中识别的特定唤醒词,选择一个vas而不是另一个。
在一些实施方式中,被配置为网络媒体回放系统的一部分的回放设备可以包括nmd的组件和功能(即,回放设备是“配备有nmd的”)。在这方面,这种回放设备可以包括麦克风,该麦克风被配置为检测存在于该回放设备环境中的声音(例如,人们说话、该回放设备本身或附近的另一回放设备正在输出的音频或其他环境噪声),还可以包括用于缓冲检测到的声音以促进唤醒词识别的组件。
一些配备了nmd的回放设备可以包括内部电源(例如,可充电电池),该内部电源允许该回放设备在未物理连接至墙壁电源插座等的情况下进行操作。就这一点而言,这种回放设备在本文中可以被称为“便携式回放设备”。另一方面,被配置为依赖于来自墙壁电源插座等的电力的回放设备在本文中可以被称为“固定回放设备”,尽管这样的设备实际上可以在家庭或其他环境中移动。在实践中,人们可能经常携带便携式回放设备往返于家庭或其他环境,该环境中保留有一个或多个固定回放设备。
在一些情况下,为nmd或nmd系统(例如,回放设备的媒体回放系统)配置了多个语音服务。可以在设置过程中配置一个或多个服务,并且稍后可以为该系统配置附加语音服务。这样,nmd充当与多个语音服务的接口,也许减轻了从每个语音服务中获取nmd以便与各个语音服务进行交互的需求。此外,nmd可以与家庭中存在的服务特定的nmd协同操作,以处理给定的语音命令。
在为nmd配置两个或多个语音服务的情况下,可以通过说出与特定语音服务相对应的唤醒词来调用该特定语音服务。例如,在查询amazon时,用户可以说出唤醒词“alexa”,然后再说出语音命令。其他示例包括“ok,google”(用于查询google)和“hey,siri”(用于查询apple)。
在一些情况下,通用唤醒词可以用于指示向nmd输入的语音。在一些情况下,这是制造商特定的唤醒词,而不是绑定到任何特定语音服务的唤醒词(例如,“hey,sonos”,其中,nmd是sonos回放设备)。给定这样的唤醒词,nmd可以识别特定的语音服务以处理请求。例如,如果在唤醒词之后的语音输入与特定类型的命令(例如,音乐回放)相关,则向与该类型的命令相关联的特定语音服务(例如,具有语音命令功能的流音乐服务)发送该语音输入。
关键词发现可能计算需求和功耗大,因为它涉及连续处理声音数据以检测该声音数据是否包含一个或多个关键词。此外,关键词发现算法可能在回放设备上消耗大量存储空间,从而导致更大的存储空间需求和较慢的关键词发现算法的空中软件更新。解决这些问题的一种方法是采用被设计为计算效率高和/或需要较少存储空间的关键词发现算法。例如,基于算法处理捕获的声音数据的方式,某些关键词发现算法可以固有地比其他算法更有效。此外,例如,还可以通过使用更简单的模型来定义关键词,或通过使用更简单的过滤器来处理捕获的声音数据,使得在比较捕获的声音数据和关键词模型时减少处理操作,从而使特定的关键词发现算法计算效率更高。可以在各种实施例中采用调整关键词发现算法以提高其计算效率的其他示例。然而,计算强度较小的关键词发现算法通常在检测关键词方面也不太准确,并且可能导致较高的假正率和/或假负率。
本文公开了有助于解决这些或其他问题的系统和方法。特别是,为了减少nmd的计算资源使用量、功耗和/或存储空间需求,同时在检测唤醒词时仍保持足够高的精度,nmd执行两个或多个具有不同计算复杂度的关键词发现算法。例如,当侦听一个或多个唤醒词时,nmd使用第一关键词发现算法,该算法使用相对较低的处理功率。与上述讨论一致,第一关键词发现算法可以牺牲精度以利于计算简单和/或减少存储空间需求。为了解决这个问题,响应于使用第一算法检测唤醒词,nmd使用第二关键词发现算法,该算法使用更高的处理功率和/或更大的存储空间,并且比第一算法更准确,以便验证或揭示第一算法检测到的唤醒词的存在。以此方式,代替连续执行计算需求和功耗大的关键词发现算法,nmd仅保守地使用基于初步唤醒词检测的算法,该初步唤醒词检测使用计算需求较少的算法。
附加地或替代地,第一算法可以用于对候选唤醒词的初步检测。基于识别的候选唤醒词,可以从多个可能的唤醒词引擎中选择一个唤醒词引擎。这些唤醒词引擎可以利用计算强度更高并且需要更多功率和存储空间的算法。因此,一旦使用用于初步检测的第一算法检测到合适的候选唤醒词,则仅选择并激活特定的唤醒词引擎可能是有益的。在一些实施例中,用于初步检测的第一算法可以比唤醒词引擎更高效,例如,更小的计算强度。
需求较少的唤醒词检测算法的示例包括神经网络模型,该模型已经被压缩以减少存储空间和功率需求。在一些实施例中,神经网络模型可以是软加权共享神经网络模型,其可以使用压缩稀疏行(csr)表示或用于实现压缩神经网络模型的其他合适技术来存储权重,如下文更详细地描述。
作为示例,在一些实施例中,nmd通过该nmd的一个或多个麦克风捕获音频内容,并且该nmd使用第一算法来确定捕获的音频内容是否包括多个唤醒词中的特定候选唤醒词,其中,多个唤醒词中的每一个对应于各自的语音服务。响应于确定捕获的声音数据包括特定的候选唤醒词,nmd从多个唤醒词引擎中选择并激活第一唤醒词引擎。选择的唤醒词引擎可以使用第二算法来确认或否定捕获的声音数据中候选唤醒词的存在。在此,第二算法可能比第一算法计算强度更高。在一些实施例中,例如,通过配置不同的算法来检测与不同vas相关的唤醒字,可以从多个可能的唤醒词检测算法中选择第二算法。
在一些实施例中,如果第二算法确认捕获的声音数据中候选唤醒词的存在,则nmd使对应于特定唤醒词的相应语音服务处理捕获的音频内容。相反,如果第二算法否定捕获的声音数据中候选唤醒词的存在,则nmd停止处理该捕获的声音数据以检测特定的唤醒词。
尽管本文所述的一些实施例可以涉及由给定的行动者(例如,“用户”和/或其他实体)执行的功能,但是应当理解的是,该描述仅出于解释的目的。除非权利要求本身的语言明确要求,否则不应将权利要求解释为要求任何此类示例行动者进行动作。
ii.示例操作环境
图1a和1b示出了媒体回放系统100(或“mps100”)的示例配置,在媒体回放系统100中可以实现本文公开的一个或多个实施例。首先参考图1a,所示的mps100与具有多个房间和空间的示例家居环境(其可以被统称为“家居环境”、“智能家居”或“环境101”)相关联。环境101包括具有多个房间、空间和/或回放区的家庭,包括主浴室101a、主卧室101b(在本文中被称为“尼克的房间”)、第二卧室101c、私室101d、书房101e、客厅101f、餐厅101g、厨房101h和室外阳台101i。尽管下文在家居环境的上下文中描述了某些实施例和示例,但是本文所述的技术可以在其他类型的环境中实现。在一些实施例中,例如,mps100可以在一个或多个商业环境(例如,餐厅、购物中心、机场、酒店、零售店或其他商店)、一个或多个交通工具(例如,运动型多功能车、巴士、汽车、轮船、轮船、飞机)、多个环境(例如,家庭和交通工具环境的组合)和/或可能需要多区音频的其他合适环境中实现。
在这些房间和空间中,mps100包括一个或多个计算设备。一起参考图1a和1b,这样的计算设备可以包括:回放设备102(分别标识为回放设备102a-102o)、网络麦克风设备103(分别标识为“nmd”103a-102i)以及控制器设备104a和104b(统称为“控制器设备104”)。参照图1b,家居环境可以包括附加和/或其他计算设备,包括本地网络设备,例如,一个或多个智能照明设备108(图1b)、智能恒温器110和本地计算设备105(图1a)。在下文所述的实施例中,各种回放设备102中的一个或多个可以被配置为便携式回放设备,而其他回放设备可以被配置为固定回放设备。例如,耳机102o(图1b)是便携式回放设备,而书架上的回放设备102d可以是固定设备。作为另一示例,阳台上的回放设备102c可以是电池供电的设备,允许其在未插入墙壁插座时被运输到环境101内以及环境101外部的各个区域。
仍参考图1b,mps100的各种回放、网络麦克风和控制器设备102-104和/或其他网络设备可以通过点对点连接和/或通过其他连接彼此耦合,该其他连接可以通过包括网络路由器109的lan111进行有线和/或无线连接。例如,可以被指定为“左”设备的私室101d(图1a)中的回放设备102j可以与回放设备102a具有点对点连接,该回放设备102a也在私室101d中并且可以被指定为“右”设备。在相关实施例中,左回放设备102j可以通过点对点连接和/或通过经由lan111的其他连接与其他网络设备(例如,回放设备102b)通信,该其他网络设备可以被指定为“前”设备。
如图1b进一步所示,mps100可以通过广域网(“wan”)107耦合到一个或多个远程计算设备106。在一些实施例中,每个远程计算设备106可以采取一个或多个云服务器的形式。远程计算设备106可以被配置为以各种方式与环境101中的计算设备进行交互。例如,远程计算设备106可以被配置为在家居环境101中促进流传输和/或控制媒体内容(例如,音频)的回放。
在一些实施方式中,各种回放设备、nmd和/或控制器设备102-104可以通信地耦合到与vas相关联的至少一个远程计算设备和与媒体内容服务(“mcs”)相关联的至少一个远程计算设备。例如,在图1b的所示示例中,远程计算设备106a与vas190相关联,并且远程计算设备106b与mcs192相关联。尽管为了清楚起见在图1b的示例中仅示出了单个vas190和单个mcs192,但是mps100可以耦合到多个不同的vas和/或mcs。在一些实施方式中,vas可以由amazon、google、apple、microsoft、sonos或其他语音助手提供商中的一个或多个来操作。在一些实施方式中,mcs可以由spotify、pandora、amazonmusic或其他媒体内容服务中的一个或多个来操作。
如图1b进一步所示,远程计算设备106还包括远程计算设备106c,该远程计算设备106c被配置为执行某些操作,例如,远程促进媒体回放功能、管理设备和系统状态信息、指导mps100的设备与一个或多个vas和/或mcs之间的通信,以及其他操作。在一个示例中,远程计算设备106c为一个或多个sonos无线hifi系统提供云服务器。
在各种实施方式中,一个或多个回放设备102可以采用板载(例如,集成的)网络麦克风设备的形式或包括板载(例如,集成的)网络麦克风设备。例如,回放设备102a-e分别包括或配备有对应的nmd103a-e。除非在说明书中另外指出,否则包括或配备有nmd的回放设备在本文中可以互换地被称为回放设备或nmd。在一些情况下,一个或多个nmd103可以是独立设备。例如,nmd103f和103g可以是独立设备。独立nmd可以省略通常包括在回放设备(例如,扬声器或相关电子设备)中的组件和/或功能。例如,在这种情况下,独立nmd可能不会产生音频输出或可能会产生有限的音频输出(例如,相对低质量的音频输出)。
mps100的各种回放和网络麦克风设备102和103可以各自与唯一名称相关联,该唯一名称可以例如在设置这些设备中的一个或多个期间由用户分配给各个设备。例如,如图1b的所示示例所示,用户可以将名称“书架”分配给回放设备102d,因为它实际上位于书架上。类似地,可以将名称“岛”分配给nmd103f,因为它实际上位于厨房101h中的岛台面上(图1a)。可以根据区或房间为一些回放设备分配名称,例如,回放设备102e、102l、102m和102n,它们分别被命名为“卧室”、“餐厅”、“客厅”和“书房”。此外,某些回放设备可以具有功能描述性名称。例如,回放设备102a和102b分别被分配了名称“右”和“前”,因为这两个设备被配置为在私室101d(图1a)的区中媒体回放期间提供特定的音频通道。阳台中的回放设备102c可以命名为便携式设备,因为它是电池供电的和/或易于运输到环境101的不同区域。其他命名约定也是可能的。
如上所述,nmd可以检测和处理来自其周围环境的声音,例如,包括背景噪声的声音,该背景噪声与该nmd附近的人说出的语音混合。例如,当nmd在环境中检测到声音时,该nmd可以处理检测到的声音以确定该声音是否包括语音,该语音包含用于该nmd并最终用于特定vas的语音输入。例如,nmd可以识别语音是否包括与特定vas相关联的唤醒词。
在图1b的所示示例中,nmd103被配置为经由lan111和路由器109通过网络与vas190交互。例如,当nmd在检测到的声音中识别出潜在唤醒词时,可以发起与vas190的交互。该识别导致唤醒词事件,这又导致nmd开始向vas190发送检测到的声音数据。在一些实施方式中,mps100的各种本地网络设备102-105(图1a)和/或远程计算设备106c可以与远程计算设备交换各种反馈、信息、指令和/或相关数据,该远程计算设备与所选择的vas相关联。这样的交换可以与包含语音输入的发送消息有关或无关。在一些实施例中,一个或多个远程计算设备和媒体回放系统100可以通过如本文所述的通信路径和/或使用如在2017年2月21日提交的美国申请no.15/438,749中所述的元数据交换信道来交换数据,该美国申请题为“voicecontrolofamediaplaybacksystem(媒体回放系统的语音控制)”,其全部内容通过引用并入本文。
在接收到声音数据流之后,vas190确定来自nmd的流数据中是否存在语音输入,如果存在,则vas190还将确定该语音输入中的潜在意图。vas190接下来可以将响应发送回mps100,这可以包括直接向导致唤醒词事件的nmd发送该响应。该响应通常基于vas190确定的存在于语音输入中的意图。作为示例,响应于vas190接收到语音提示为“播放披头士乐队的heyjude”的语音输入,vas190可以确定该语音输入的基本意图是发起回放,并进一步确定该语音输入的意图是播放特定歌曲“heyjude”。在这些确定之后,vas190可以向特定mcs192发送命令以检索内容(即,歌曲“heyjude”),并且随后,该mcs192直接向mps100提供(例如,流传输)这个内容或间接通过vas190提供。在一些实施方式中,vas190可以向mps100发送命令,该命令使mps100本身从mcs192检索内容。
在某些实施方式中,当在由彼此相邻的两个或多个nmd检测到的语音中识别出语音输入时,nmd可以促进彼此之间的仲裁。例如,环境101(图1a)中配备有nmd的回放设备102d与配备有nmd的客厅回放设备102m相对接近,并且设备102d和102m都可以至少有时检测到相同的声音。在这种情况下,这可能需要仲裁,以确定最终由哪个设备负责向远程vas提供检测到的声音数据。例如,可以在先前引用的美国申请no.15/438,749中找到在nmd之间进行仲裁的示例。
在某些实施方式中,nmd可以被分配给可能不包含nmd的指定的或默认的回放设备,或与该回放设备相关联。例如,可以将厨房101h中的岛nmd103f(图1a)分配给离该岛nmd103f相对较近的餐厅回放设备102l。在实践中,响应于远程vas接收到来自nmd的语音输入以播放音频,nmd可以指示分配的回放设备播放音频,该nmd可能已经响应于用户说出的命令而向该vas发送语音输入以播放特定的歌曲、专辑、播放列表等。例如,在先前引用的美国专利申请no.15/438,749中可以找到关于将nmd和回放设备分配为指定设备或默认设备的附加细节。
可以在以下部分中找到与示例mps100的不同组件以及不同组件可以如何交互以向用户提供媒体体验有关的其他方面。尽管本文的讨论通常可以参考示例mps100,但本文所述的技术不限于特别是上述家居环境中的应用。例如,本文所述的技术在其他家居环境配置中可能是有用的,该其他家居环境配置或多或少包括回放、网络麦克风和/或控制器设备102-104中的任何一个。例如,本文的技术可以在具有单个回放设备102和/或单个nmd103的环境中使用。在这种情况的一些示例中,可以省去lan111(图1b),并且单个回放设备102和/或单个nmd103可以直接与远程计算设备106a-d通信。在一些实施例中,电信网络(例如,lte网络、5g网络等)可以与独立于lan的各种回放、网络麦克风和/或控制器设备102-104通信。
a.回放和网络麦克风设备示例
图2a是示出了图1a和图1b的mps100的回放设备102之一的某些方面的功能框图。如图所示,回放设备102包括各种组件,下文进一步详细讨论每个组件,并且回放设备102的各种组件可以通过系统总线、通信网络或某个其他连接机制可操作地彼此耦合。在图2a的所示示例中,回放设备102可以被称为“配备有nmd”的回放设备,因为它包括支持nmd功能的组件,例如,图1a中所示的nmd103之一。
如图所示,回放设备102包括至少一个处理器212,该处理器212可以是时钟驱动的计算组件,该计算组件被配置为根据存储在存储器213中的指令来处理输入数据。存储器213可以是有形的、非暂时性的计算机可读介质,其被配置为存储可由处理器212执行的指令。例如,存储器213可以是数据存储设备,其可以加载有可由处理器212执行以实现某些功能的软件代码214。
在一个示例中,这些功能可以涉及回放设备102从音频源获取音频数据,该音频源可以是另一回放设备。在另一示例中,该功能可以涉及回放设备102通过至少一个网络接口224向网络上的另一设备发送音频数据、检测到的声音数据(例如,对应于语音输入)和/或其他信息。在又一示例中,该功能可以涉及回放设备102使一个或多个其他回放设备与回放设备102同步地回放音频。在又一示例中,该功能可以涉及回放设备102促进与一个或多个其他回放设备配对或绑定以创建多通道音频环境。许多其他示例功能也是可能的,下面讨论其中一些功能。
如刚刚提到的,某些功能可以涉及回放设备102与一个或多个其他回放设备同步回放音频内容。在同步回放期间,听众可能无法感知同步回放设备在音频内容回放之间的时间延迟差异。通过引用整体并入本文的2004年4月4日提交的题为“systemandmethodforsynchronizingoperationsamongapluralityofindependentlyclockeddigitaldataprocessingdevices(用于同步多个独立时钟控制的数字数据处理设备之间操作的系统和方法)”的美国专利no.8,234,395更详细地提供了回放设备之间的音频回放同步的一些示例。
为了促进音频回放,回放设备102包括音频处理组件216,该音频处理组件216通常被配置为在回放设备102呈现音频之前处理该音频。在这方面,音频处理组件216可以包括一个或多个数模转换器(“dac”)、一个或多个音频预处理组件、一个或多个音频增强组件、一个或多个数字信号处理器(“dsp”)等。在一些实施方式中,一个或多个音频处理组件216可以是处理器212的子组件。在操作中,音频处理组件216接收模拟和/或数字音频,并且处理和/或有意更改音频以产生音频信号进行播放。
然后,可以向一个或多个音频放大器217提供产生的音频信号,以通过可操作地耦合到放大器217的一个或多个扬声器218进行放大和回放。音频放大器217可以包括被配置为将音频信号放大到用于驱动一个或多个扬声器218的级别的组件。
扬声器218中的每一个可以包括单独的传感器(例如,“驱动器”),或者扬声器218可以包括完整的扬声器系统,该扬声器系统包括具有一个或多个驱动器的外壳。扬声器218的特定驱动器可以包括例如重低音扬声器(例如,用于低频)、中音驱动器(例如,用于中频)和/或高音扬声器(例如,用于高频)。在一些情况下,传感器可以由音频放大器217的各个对应的音频放大器驱动。在一些实施方式中,回放设备可以不包括扬声器218,而是可以包括用于将该回放设备连接到外部扬声器的扬声器接口。在某些实施例中,回放设备可以既不包括扬声器218也不包括音频放大器217,而是可以包括用于将该回放设备连接到外部音频放大器或视听接收机的音频接口(未示出)。
除了产生用于由回放设备102回放的音频信号之外,音频处理组件216可以被配置为处理要通过网络接口224向一个或多个其他回放设备发送以进行回放的音频。在示例场景中,如下所述,可以例如通过回放设备102的音频线路输入接口(例如,自动检测3.5mm音频线路输入连接)(未示出)或通过网络接口224从外部源接收要由回放设备102处理和/或回放的音频内容。
如图所示,至少一个网络接口224可以采取一个或多个无线接口225和/或一个或多个有线接口226的形式。无线接口可以为回放设备102提供网络接口功能,以根据通信协议(例如,任何无线标准,包括ieee802.11a、802.11b、802.11g、802.11n、802.11ac、802.15、4g移动通信标准等)与其他设备(例如,其他回放设备、nmd和/或控制器设备)无线通信。有线接口可以为回放设备102提供网络接口功能,以根据通信协议(例如,ieee802.3)通过有线连接与其他设备进行通信。尽管图2a中所示的网络接口224包括有线接口和无线接口,但是在一些实施方式中,回放设备102可以仅包括无线接口或仅包括有线接口。
通常,网络接口224促进回放设备102与数据网络上的一个或多个其他设备之间的数据流。例如,回放设备102可以被配置为通过数据网络从一个或多个其他回放设备、lan内的网络设备和/或wan(例如,互联网)上的音频内容源接收音频内容。在一个示例中,回放设备102发送和接收的音频内容和其他信号可以以数字分组数据的形式来发送,该数字分组数据包括基于互联网协议(ip)的源地址和基于ip的目的地地址。在这种情况下,网络接口224可以被配置为解析数字分组数据,使得去往回放设备102的数据被回放设备102正确地接收和处理。
如图2a所示,回放设备102还包括可操作地耦合到一个或多个麦克风222的语音处理组件220。麦克风222被配置为检测回放设备102的环境中的声音(即,声波),然后将其提供给语音处理组件220。更具体地,每个麦克风222被配置为检测声音并将该声音转换成表示检测到的声音的数字或模拟信号,然后这可以使语音处理组件220基于检测到的声音执行各种功能,如下文更详细地描述。在一个实施方式中,麦克风222被布置为麦克风阵列(例如,六个麦克风的阵列)。在一些实施方式中,回放设备102包括多于六个麦克风(例如,八个麦克风或十二个麦克风)或少于六个麦克风(例如,四个麦克风、两个麦克风或单个麦克风)。
在操作中,语音处理组件220通常被配置为检测和处理通过麦克风222接收到的声音,识别检测到的声音中潜在的语音输入,并提取检测到的声音数据以启用vas(例如,vas190(图1b))来处理在检测到的声音数据中识别的语音输入。语音处理组件220可以包括一个或多个模数转换器、回声消除器(“aec”)、空间处理器(例如,一个或多个多通道维纳滤波器、一个或多个其他滤波器和/或一个或多个波束形成器组件)、一个或多个缓冲器(例如,一个或多个循环缓冲器)、一个或多个唤醒词引擎、一个或多个语音提取器和/或一个或多个语音处理组件(例如,被配置为识别与家庭相关联的特定用户或特定用户组的语音的组件)以及其他示例语音处理组件。在示例实施方式中,语音处理组件220可以包括或者采取一个或多个dsp或一个或多个dsp模块的形式。在这方面,某些语音处理组件220可以被配置有特定参数(例如,增益和/或频谱参数),该特定参数可以被修改或被调谐以实现特定功能。在一些实施方式中,一个或多个语音处理组件220可以是处理器212的子组件。
在一些实施方式中,语音处理组件220可以检测并存储用户语音配置文件,该用户语音配置文件可以与mps100的用户帐户相关联。例如,语音配置文件可以被存储为和/或与存储在一组命令信息或数据表中的变量进行比较。语音配置文件可以包括用户语音的音调或频率方面和/或用户语音的其他独特方面,例如,先前引用的美国专利申请no.15/438,749中所述的那些。
如图2a进一步所示,回放设备102还包括电源组件227。电源组件227至少包括外部电源接口228,该外部电源接口228可以通过将回放设备102物理地连接至电源插座或某个其他外部电源的电缆等耦合到电源(未示出)。其他电源组件可以包括例如变压器、转换器以及被配置为格式化电源的类似组件。
在一些实施方式中,回放设备102的电源组件227可以附加地包括内部电源229(例如,一个或多个电池),该内部电源229被配置为在未物理连接到外部电源的情况下为回放设备102供电。当配备有内部电源229时,回放设备102可以独立于外部电源进行操作。在一些这样的实施方式中,外部电源接口228可以被配置为促进对内部电源229的充电。如之前所讨论的,包括内部电源的回放设备在本文中可以被称为“便携式回放设备”。另一方面,使用外部电源操作的回放设备在本文中可以被称为“固定回放设备”,尽管这种设备实际上可以在家居或其他环境中移动。
回放设备102还包括用户接口240,该用户接口240可以独立于或与一个或多个控制器设备104所促进的用户交互相结合来促进用户交互。在各种实施例中,用户接口240包括一个或多个物理按钮和/或支持在触敏屏幕和/或表面上提供的图形界面等,以便用户直接提供输入。用户接口240还可以包括灯(例如,led)和扬声器中的一个或多个,以向用户提供视觉和/或音频反馈。
作为说明性示例,图2b示出了回放设备102的示例性外壳230,在外壳230的顶部234处包括控制区域232形式的用户接口。控制区域232包括用于控制音频回放、音量水平和其他功能的按钮236a-c。控制区域232还包括用于将麦克风222切换到开启状态或关闭状态的按钮236d。
如图2b进一步所示,控制区域232至少部分地由形成在外壳230的顶部234中的孔围绕,麦克风222(在图2b中不可见)通过该孔接收回放设备102的环境中的声音。麦克风222可以沿着顶部234和/或在顶部234或外壳230的其他区域内的各种位置中布置,以便从相对于回放设备102的一个或多个方向检测声音。
举例来说,sonos公司目前提供(或已经提供)可以实现本文公开的某些实施例的某些回放设备的销售,包括“play:1”、“play:3”、“play:5”、“playbar”、“connect:amp”、“playbase”、“beam”、“connect”和“sub”。任何其他过去、现在和/或将来的回放设备可以附加地或备选地用于实现本文公开的示例实施例的回放设备。此外,应当理解的是,回放设备不限于图2a或图2b所示的示例或sonos产品供应。例如,回放设备可以包括有线或无线耳机组,或者采取有线或无线耳机组的形式,该耳机组可以通过网络接口等作为媒体回放系统100的一部分进行操作。在另一示例中,回放设备可以包括个人移动媒体回放设备的扩展基座,或与其交互。在又一示例中,回放设备可以是集成到另一个设备或组件,例如,电视、照明器材或在室内或室外使用的一些其他设备。
b.回放设备配置示例
图3a-3e示出了回放设备的示例配置。首先参考图3a,在一些示例实例中,单个回放设备可以属于某个区。例如,阳台上的回放设备102c(图1a)可以属于a区。在以下所述的一些实施方式中,可以将多个回放设备“绑定”以形成“绑定对”,它们一起形成单个区。例如,可以将图3a中名为“床1”的回放设备102f(图1a)绑定到图3a中名为“床2”的回放设备102g(图1a)以形成b区。绑定的回放设备可以具有不同的回放职责(例如,通道职责)。在以下所述的另一实施方式中,多个回放设备可以被合并以形成单个区。例如,可以将名为“书架”的回放设备102d与名为“客厅”的回放设备102m合并以形成单个区c。合并后的回放设备102d和102m可以不具体分配不同的回放职责。即,合并的回放设备102d和102m除了可以同步播放音频内容之外,还可以如未合并时那样各自播放音频内容。
为了控制的目的,mps100中的每个区可以被表示为单个用户接口(“ui”)实体。例如,如控制器设备104所显示的,a区可以被提供为名为“便携”的单个实体,b区可以被提供为名为“立体声”的单个实体,以及c区可以被提供为名为“客厅”的单个实体。
在各种实施例中,某个区可以采用属于该区的回放设备之一的名称。例如,c区可以采用客厅设备102m的名称(如图所示)。在另一示例中,c区可以采用书架设备102d的名称。在另一示例中,c区可以采用书架设备102d和客厅设备102m的某种组合的名称。用户可以通过控制器设备104处的输入来选择所选择的名称。在一些实施例中,可以将某个区命名为与属于该区的设备不同的名称。例如,图3a中的b区被命名为“立体声”,但是b区中的所有设备都没有此名称。在一方面,b区是表示名为“立体声”的单个设备的单个ui实体,该单个设备由名为“床1”和“床2”的组成设备组成。在一个实施方式中,床1设备可以是主卧室101h中的回放设备102f(图1a),床2设备也可以是主卧室101h中的回放设备102g(图1a)。
如上所述,绑定的回放设备可以具有不同的回放职责,例如,某些音频通道的回放职责。例如,如图3b所示,床1设备和床2设备102f和102g可以被绑定,以产生或增强音频内容的立体声效果。在该示例中,床1回放设备102f可以被配置为播放左声道音频分量,而床2回放设备102g可以被配置为播放右声道音频分量。在一些实施方式中,这种立体声绑定可以被称为“配对”。
另外,被配置为被绑定的回放设备可以具有附加的和/或不同的各自的扬声器驱动器。如图3c所示,可以将名为“前”的回放设备102b与名为“sub”的回放设备102k绑定。前设备102b可以呈现中高频范围,而sub设备102k可以呈现低频,例如,重低音扬声器。当未绑定时,前设备102b可以被配置为呈现整个频率范围。作为另一示例,图3d示出了分别与右回放设备102a和左回放设备102j进一步绑定的前设备102b和sub设备102k。在一些实施方式中,右设备102a和左设备102j可以形成家庭影院系统的环绕或“卫星”通道。绑定的回放设备102a、102b、102j和102k可以形成单个d区(图3a)。
在一些实施方式中,回放设备也可以被“合并”。与某些绑定的回放设备相比,合并的回放设备可能没有分配回放职责,但可以分别呈现每个相应回放设备能够回放的音频内容的全部范围。然而,合并的设备可以被表示为单个ui实体(即,如上所述的区)。例如,图3e示出了客厅中合并的回放设备102d和102m,这将导致这些设备由c区的单个ui实体表示。在一个实施例中,回放设备102d和102m可以同步地回放音频,在此期间,每一个回放设备均输出每个相应的回放设备102d和102m能够呈现的音频内容的全部范围。
在一些实施例中,独立nmd本身可以在一个区中。例如,来自图1a的nmd103h被命名为“壁橱”,并形成图3a中的i区。nmd也可以与其他设备绑定或合并,以形成区。例如,可以将名为“岛”的nmd设备103f与回放设备102i厨房绑定,两者一起形成f区,该f区也被命名为“厨房”。例如,在先前引用的美国专利申请no.15/438,749中可以找到关于将nmd和回放设备分配为指定设备或默认设备的附加细节。在一些实施例中,可以不将独立nmd分配给区。
单个、绑定和/或合并的设备的区可以被布置为形成一组同步回放音频的回放设备。这样的一组回放设备可以被称为“组”、“区组”、“同步组”或“回放组”。响应于通过控制器设备104提供的输入,可以动态地对回放设备进行分组和取消分组以形成同步回放音频内容的新的或不同的组。例如,参考图3a,a区可以与b区分在一组,以形成区组,该区组包括两个区的回放设备。作为另一示例,a区可以与一个或多个其他c-i区分在一组。a-i区可以以多种方式进行分组和取消分组。例如,可以将三个、四个、五个或更多个(例如,全部)区a-i分在一组。如先前参考的美国专利no.8,234,395中所述,当被分在一组时,单个和/或绑定的回放设备的区可以彼此同步地回放音频。分组并绑定的设备是便携和固定回放设备之间的关联的示例类型,其可以响应于触发事件而引起,如上文所讨论并且在下文更详细地描述。
在各种实施方式中,可以为环境中的各区分配特定名称,该特定名称可以是区组内的区的默认名称或区组内的区名称的组合,例如,如图3a所示的“餐厅 厨房”。在一些实施例中,还可以将区组命名为由用户选择的唯一名称,例如,如图3a所示的“尼克的房间”。名称“尼克的房间”可以是用户在该区组的先前名称上选择的名称,例如,房间名称“主卧室”。
再次参考图2a,某些数据可以作为一个或多个状态变量被存储在存储器213中,该状态变量被周期性地更新并且用于描述回放区、回放设备和/或与之关联的区组的状态。存储器213还可以包括与媒体回放系统100的其他设备的状态相关联的数据,其可以不时地在设备之间共享,使得一个或多个设备具有与该系统相关联的最新数据。
在一些实施例中,回放设备102的存储器213可以存储与状态相关联的各种变量类型的实例。变量实例可以与对应于类型的标识符(例如,标签)一起存储。例如,某些标识符可以是用于识别区的回放设备的第一类型“a1”、用于识别可以绑定在该区中的回放设备的第二类型“b1”和用于识别该区可能所属的区组的第三类型“c1”。作为相关示例,在图1a中,与阳台相关联的标识符可以指示该阳台是特定区的唯一回放设备,而不是在区组中。与客厅相关联的标识符可以指示该客厅没有与其他区分在一组,而是包括绑定的回放设备102a、102b、102j和102k。与餐厅相关联的标识符可以指示该餐厅是餐厅 厨房组的一部分,并且设备103f和102i被绑定。由于厨房是餐厅 厨房区组的一部分,因此与该厨房关联的标识符可以指示相同或相似的信息。其他示例区变量和标识符如下所述。
在又一示例中,如图3a所示,mps100可以包括表示区和区组的其他关联的变量或标识符,例如,与区域相关联的标识符。区域可以涉及区组的集群和/或不在区组内的区的集群。例如,图3a示出了名为“第一区域”的第一区域和名为“第二区域”的第二区域。第一区域包括阳台、私室、餐厅、厨房和浴室的区和区组。第二区域包括浴室、尼克的房间、卧室和客厅的区和区组。在一方面,区域可以用于调用区组和/或区的集群,其共享另一集群的一个或多个区和/或区组。在这方面,这样的区域不同于区组,该区组不与另一区组对区进行共享。用于实现区域的技术的其他示例可以在例如2017年8月21日提交的题为“roomassociationbasedonname(基于名称的房间关联)”的美国申请no.15/682,506和2007年9月11日提交的题为“controllingandmanipulatinggroupingsinamulti-zonemediasystem(在多区媒体系统中控制和操作分组)”的美国专利no.8,483,853中找到。这些申请中的每一个通过引用整体并入本文。在一些实施例中,mps100可以不实现区域,在这种情况下,系统可以不存储与区域相关联的变量。
存储器213还可以被配置为存储其他数据。这样的数据可以属于回放设备102可访问的音频源或该回放设备(或一些其他回放设备)可以与之关联的回放队列。在以下所述的实施例中,存储器213被配置为在处理语音输入时存储用于选择特定vas的一组命令数据。
在操作过程中,图1a环境中的一个或多个回放区可能每个都在播放不同的音频内容。例如,用户可能正在阳台区烧烤并收听由回放设备102c播放的嘻哈音乐,而另一用户可能正在厨房区中准备食物并收听由回放设备102i播放的古典音乐。在另一示例中,回放区可以与另一回放区同步地播放相同的音频内容。例如,用户可以在书房区,其中,回放设备102n正在播放与阳台区的回放设备102c正在播放的嘻哈音乐相同的音乐。在这种情况下,回放设备102c和102n可以同步地播放嘻哈音乐,使得用户可以在不同回放区之间移动时无缝地(或者至少基本上无缝地)欣赏被外放的音频内容。如先前参考的美国专利no.8,234,395中所述,可以以类似于回放设备之间的同步方式来实现回放区之间的同步。
如上所述,可以动态地修改mps100的区配置。因此,mps100可以支持多种配置。例如,如果用户将一个或多个回放设备物理地移入或移出某个区,则可以将mps100重新配置以适应变化。例如,如果用户将回放设备102c从阳台区物理地移动到书房区,则书房区现在可以包括回放设备102c和102n。在一些情况下,用户可以使用例如控制器设备104之一和/或语音输入来将移动的回放设备102c与书房区配对或分在一组和/或重命名书房区中的播放器。作为另一示例,如果将一个或多个回放设备102移动到家居环境中但还不是回放区的特定空间,则可以将移动的回放设备重命名或与该特定空间的回放区相关联。
此外,mps100的不同回放区可以被动态地组合成区组或划分成单独的回放区。例如,餐厅区和厨房区可以被组合成用于宴会的区组,使得回放设备102i和102l可以同步地呈现音频内容。作为另一示例,可以将私室区中的绑定的回放设备分为(i)电视区和(ii)独立的收听区。电视区可以包括前回放设备102b。收听区可以包括右回放设备102a、左回放设备102j和sub回放设备102k,如上所述,它们可以被分组、配对或合并。以这种方式划分私室区可以允许一个用户在客厅空间的一个区域中的收听区收听音乐,而另一用户在客厅空间的另一区域中观看电视。在相关示例中,用户可以在将私室区划分为电视区和收听区之前,利用nmd103a或103b(图1b)中的任何一个来控制私室区。一旦划分,可以例如由nmd103a附近的用户控制收听区,并且可以例如由nmd103b附近的用户控制电视区。然而,如上所述,任何nmd103可以被配置为控制mps100的各种回放设备和其他设备。
c.控制器设备示例
图4a是示出了图1a的mps100的所选控制器设备104中的一个的某些方面的功能框图。这样的控制器设备在本文中也可以被称为“控制设备”或“控制器”。图4a中所示的控制器设备可以包括通常类似于上述网络设备的某些组件的组件,例如,处理器412、存储程序软件414的存储器413、至少一个网络接口424以及一个或多个麦克风422。在一个示例中,控制器设备可以是用于mps100的专用控制器。在另一示例中,控制器设备可以是网络设备,例如,iphonetm、ipadtm或任何其他智能手机、平板电脑或网络设备(例如,网络计算机(例如,pc或mactm)),可以在该网络设备上安装媒体回放系统控制器应用软件。
控制器设备104的存储器413可以被配置为存储控制器应用软件和与mps100和/或系统100的用户相关联的其他数据。存储器413可以加载有软件414中的指令,该指令可由处理器412执行以实现某些功能,例如,促进mps100的用户访问、控制和/或配置。如上所述,控制器设备104被配置为通过网络接口424与其他网络设备通信,该网络接口424可以采取无线接口的形式。
在一个示例中,系统信息(例如,状态变量)可以通过网络接口424在控制器设备104和其他设备之间传送。例如,控制器设备104可以从回放设备、nmd或另一网络设备接收mps100中的回放区和区组配置。类似地,控制器设备104可以通过网络接口424向回放设备或另一网络设备发送这样的系统信息。在一些情况下,另一网络设备可以是另一控制器设备。
控制器设备104还可以通过网络接口424向回放设备传送回放设备控制命令,例如,音量控制和音频回放控制。如上所述,也可以由用户使用控制器设备104来执行对mps100的配置更改。配置更改可以包括:将一个或多个回放设备添加到区/从区中删除;将一个或多个区添加到区组/从区组中删除;形成绑定或合并的播放器;将一个或多个回放设备与绑定或合并的播放器分离等。
如图4a中所示,控制器设备104还包括用户接口440,该用户接口440通常被配置为促进用户对mps100的访问和控制。用户接口440可以包括触摸屏显示器或其他物理接口,其被配置为提供各种图形控制器界面,例如,图4b和4c中所示的控制器界面440a和440b。一起参考图4b和图4c,控制器界面440a和440b包括回放控制区域442、回放区区域443、回放状态区域444、回放队列区域446和源区域448。所示的用户接口仅是可以在网络设备(例如,图4a所示的控制器设备)上提供、并且由用户访问以控制媒体回放系统(例如,mps100)的接口的一个示例。替代地,可以在一个或多个网络设备上实现变化的格式、样式和交互序列的其他用户接口,以提供对媒体回放系统的类似的控制访问。
回放控制区域442(图4b)可以包括可选择图标(例如,通过触摸或通过使用光标),该可选择图标在被选择时使所选择的回放区或区组中的回放设备播放或暂停、快进、快退、跳到下一个、跳到上一个、进入/退出随机播放模式、进入/退出重复模式、进入/退出交叉淡入淡出模式等。回放控制区域442还可以包括可选择图标,该可选择图标在被选择时修改均衡设置和/或回放音量等。
回放区区域443(图4c)可以包括mps100内的回放区的表示。如图所示,回放区区域443还可以包括区组的表示,例如,餐厅 厨房区组。在一些实施例中,回放区的图形表示可以是可选择的,以调出附加的可选择图标来管理或配置mps100中的回放区,例如,绑定区的创建、区组的创建、区组的分离以及区组的重命名等。
例如,如图所示,可以在回放区的每个图形表示内提供“分组”图标。在特定区的图形表示内提供的“分组”图标可以是可选择的,以调出用于选择要与特定区分在一组的mps100中的一个或多个其他区的选项。一旦被分组,已经与特定区分在一组的区中的回放设备将被配置为与该特定区中的回放设备同步地播放音频内容。类似地,可以在区组的图形表示内提供“分组”图标。在这种情况下,“分组”图标可以是可选择的,以调出用于取消选择要从区组中移除的该区组中的一个或多个区的选项。通过用户接口对各区进行分组和取消分组的其他交互和实现也是可能的。当回放区或区组配置被修改时,可以动态地更新回放区在回放区区域443(图4c)中的表示。
回放状态区域444(图4b)可以包括在所选择的回放区或区组中当前正在播放、先前播放或被安排为接下来播放的音频内容的图形表示。可以在控制器接口上(例如,在回放区区域443和/或回放状态区域444内)可视地区分所选择的回放区或区组。图形表示可以包括曲目标题、艺术家姓名、专辑名称、专辑年份、曲目长度和/或其他相关信息,当用户通过控制器接口控制mps100时,用户了解这些信息可能是有用的。
回放队列区域446可以包括与所选择的回放区或区组相关联的回放队列中的音频内容的图形表示。在一些实施例中,每个回放区或区组可以与回放队列相关联,该回放队列包括与该回放区或区组回放的零个或多个音频项相对应的信息。例如,回放队列中的每个音频项可以包括统一资源标识符(uri)、统一资源定位符(url)或一些其他标识符,该标识符可以由回放区或区组中的回放设备用于从本地音频内容源或网络音频内容源查找和/或检索音频项,然后可以由回放设备回放该音频项。
在一个示例中,可以将播放列表添加到回放队列,在这种情况下,可以将与播放列表中的每个音频项对应的信息添加到回放队列。在另一示例中,回放队列中的音频项可以被保存为播放列表。在另一示例中,当回放区或区组正在连续播放流式音频内容(例如,互联网收音机,其可以持续播放直到被停止),而不是具有回放持续时间的分立音频项时,回放队列可以为空或被填充但“未在使用中”。在替代实施例中,回放队列可以包括互联网收音机和/或其他流音频内容项,并且当回放区或区组正在播放这些项时处于“使用中”。其他示例也是可能的。
当回放区或区组被“分组”或“取消分组”时,可以清除与受影响的回放区或区组相关联的回放队列,或者重新关联。例如,如果包括第一回放队列的第一回放区与包括第二回放队列的第二回放区被分在一组,则所建立的区组可以具有相关联的回放队列(其最初是空的),其包含来自第一回放队列的音频项(例如,如果第二回放区被添加到第一回放区),或包含来自第二回放队列的音频项(例如,如果第一回放区被添加到第二回放区),或包含来自第一回放队列和第二回放队列二者的音频项的组合。随后,如果所建立的区组被取消分组,则所得到的第一回放区可以与先前的第一回放队列重新关联,或者与新的回放队列相关联,该新的回放队列是空的,或者包含与来自在所建立的区组被取消分组之前所建立的区组相关联的回放队列的音频项。类似地,所得到的第二回放区可以与先前的第二回放队列重新关联,或者与新的回放队列相关联,该新的回放队列是空的,或者包含来自在与所建立的区组被取消分组之前所建立的区组相关联的回放队列的音频项。其他示例也是可能的。
仍然参考图4b和4c,音频内容在回放队列区域446(图4b)中的图形表示可以包括曲目标题、艺术家姓名、曲目长度和/或与回放队列中的音频内容相关联的其他相关信息。在一个示例中,音频内容的图形表示可以是可选择的,以调出附加的可选择图标来管理和/或操纵回放队列和/或回放队列中表示的音频内容。例如,可以将所表示的音频内容从回放队列中移除,将所表示的音频内容移动到回放队列内的不同位置,或者选择所表示的音频内容以立即播放,或者在任何当前播放的音频内容之后进行播放等。与回放区或区组相关联的回放队列可以存储于该回放区或区组中的一个或多个回放设备上的、不在该回放区或区组中的回放设备上的和/或一些其他指定设备上的存储器中。这种播放队列的播放可以涉及一个或多个播放设备可能按顺序或随机顺序回放队列中的媒体项。
源区域448可以包括与对应的vas相关联的可选择音频内容源和/或可选择语音助手的图形表示。可以选择性地分配vas。在一些示例中,同一nmd可以调用多个vas,例如,amazon的alexa、microsoft的cortana等。在一些实施例中,用户可以将vas专门分配给一个或多个nmd。例如,用户可以将第一vas分配给图1a所示的客厅中的nmd102a和102b中的一个或两个,并将第二vas分配给厨房中的nmd103f。其他示例是可能。
d.音频内容源示例
源区域448中的音频源可以是音频内容源,可以通过所选择的回放区或区组从该音频内容源中检索音频内容并播放。区或区组中的一个或多个回放设备可以被配置为从各种可用音频内容源中检索回放音频内容(例如,根据音频内容的对应uri或url)。在一个示例中,回放设备可以直接从对应的音频内容源(例如,通过线路输入连接)中检索音频内容。在另一示例中,可以在网络上,通过一个或多个其他回放设备或网络设备向回放设备提供音频内容。如下文更详细描述的,在一些实施例中,音频内容可以由一个或多个媒体内容服务提供。
示例音频内容源可以包括:媒体回放系统(例如,图1的mps100)中的一个或多个回放设备的存储器、一个或多个网络设备(例如,控制器设备、启用网络的个人计算机或附接网络的储存器(“nas”))上的本地音乐库、通过互联网(例如,基于云的音乐服务)提供音频内容的流音频服务、或者通过回放设备或网络设备上的线路输入连接连接至媒体回放系统的音频源等。
在一些实施例中,可以从媒体回放系统(例如,图1a的mps100)中添加或移除音频内容源。在一个示例中,每当添加、移除或更新一个或多个音频内容源时,可以执行对音频项编索引。对音频项编索引可以包括:扫描由媒体回放系统中的回放设备可访问的网络上共享的所有文件夹/目录中的可识别音频项,并且生成或更新包括元数据(例如,标题、艺术家、专辑、曲目长度等)及其他关联信息(例如,找到的每个可识别音频项的uri或url)的音频内容数据库。用于管理和维护音频内容源的其他示例也是可能的。
e.网络麦克风设备示例
图5是示出了根据本公开的实施例配置的nmd503的功能框图。nmd503包括语音捕获组件(“vcc”)560、多个识别引擎569和至少一个语音提取器572,每个语音提取器572可操作地耦合到vcc560。nmd503还包括上述麦克风222和至少一个网络接口224,并且还可以包括其他组件,例如,音频放大器、扬声器、用户接口等,为清楚起见该其他组件未在图5中示出。
nmd503的麦克风222被配置为从nmd503的环境向vcc560提供检测到的声音sd。检测到的声音sd可以采用一个或多个模拟或数字信号的形式。在示例实施方式中,检测到的声音sd可以由与馈送到vcc560的各个通道562相关联的多个信号组成。
每个通道562可以对应于特定的麦克风222。例如,具有六个麦克风的nmd可以具有六个对应的通道。检测到的声音sd的每个通道可以与其他通道具有某些相似性,但在某些方面可能有所不同,这可能是由于给定通道的相应麦克风相对于其他通道的麦克风的位置引起的。例如,检测到的声音sd的一个或多个通道可以具有比其他通道更大的语音与背景噪声的信噪比(“snr”)。
如图5进一步所示,vcc560包括aec564、空间处理器566和一个或多个缓冲器568。在操作中,aec564接收检测到的声音sd并过滤或处理该声音以抑制回声和/或改善检测到的声音sd的质量。然后可以向空间处理器566传递该处理后的声音。
空间处理器566通常被配置为分析检测到的声音sd并识别某些特征,例如,声音的振幅(例如,分贝级)、频谱、方向性等。一方面,如上所述,空间处理器566可以基于检测到的声音sd的组成通道562中的相似性和差异,帮助从潜在的用户语音中过滤或抑制检测到的声音sd中的环境噪声。作为一种可能性,空间处理器566可以监视将语音与其他声音区分开的指标。例如,这种指标可以包括语音带内相对于背景噪声的能量以及该语音带内的熵(频谱结构的一种度量),该语音带内的熵中语音通常比大多数常见背景噪声低。在一些实施方式中,空间处理器566可以被配置为确定语音存在概率,这种功能的示例在2018年5月18日提交的题为“linearfilteringfornoise-suppressedspeechdetection(用于噪声抑制的语音检测的线性滤波)”的美国专利申请no.15/984,073中公开,其全部内容通过引用并入本文。
在操作中,一个或多个缓冲器568(其中一个或多个可以是存储器213(图2a)的一部分或与之分离)捕获与检测到的声音sd相对应的数据。更具体地说,一个或多个缓冲器568捕获由上游aec564和空间处理器566处理的检测到的声音数据。
通常,检测到的声音数据形成由麦克风222检测到的声音的数字表示(即,声音数据流)sds。实际上,声音数据流sds可以采用多种形式。作为一种可能性,声音数据流sds可以由帧组成,每个帧可以包括一个或多个声音样本。可以从一个或多个缓冲器568流式传输(即,读出)帧,以由下游组件(例如,nmd503的识别引擎569和语音提取器572)进行进一步处理。
在一些实施方式中,至少一个缓冲器568利用滑动窗口方法来捕获检测到的声音数据,其中,在至少一个缓冲器568中保留给定数量(即,给定窗口)的最新捕获的检测到的声音数据,而当较旧的检测到的声音数据落在窗口之外时,它们将被覆盖。例如,至少一个缓冲器568可以在给定时间临时保留20个声音样本的帧,在到期时间之后丢弃最旧的帧,然后捕获新的帧,将其添加到声音样本的19个先前帧中。
实际上,当声音数据流sds由帧组成时,这些帧可以采用具有各种特性的各种形式。作为一种可能性,这些帧可以采用具有一定分辨率(例如,16比特分辨率)的音频帧的形式,该分辨率可以基于采样率(例如,44,100hz)。附加地或替代地,这些帧可以包括与这些帧定义的给定声音样本相对应的信息,例如,元数据,该元数据指示频率响应、功率输入电平、snr、麦克风通道标识和/或给定声音样本的其他信息,以及其他示例。因此,在一些实施例中,帧可以包括声音的一部分(例如,给定声音样本的一个或多个样本)和关于声音的一部分的元数据。在其他实施例中,帧可以仅包括声音的一部分(例如,给定声音样本的一个或多个样本)或关于声音的一部分的元数据。
在任何情况下,nmd503的下游组件可以处理声音数据流sds。例如,识别引擎569可以被配置为将一种或多种识别算法应用于声音数据流sds(例如,流声音帧),以在检测到的声音sd中发现潜在唤醒词。识别引擎569包括关键词发现器576、第一唤醒词引擎570a、第二唤醒词引擎570b以及可选地如下文关于图7更详细地描述的其他引擎571a。当识别引擎569发现潜在唤醒词时,一个或多个识别引擎569可以向语音提取器572提供“唤醒词事件”(也称为“唤醒词触发”)的指示。
响应于唤醒词事件(例如,响应于来自识别引擎569的指示唤醒词事件的信号),语音提取器572被配置为接收和格式化(例如,封装)声音数据流sds。例如,语音提取器572将声音数据流sds的帧封装成消息。语音提取器572通过网络接口218向远程vas(例如,vas190(图1b))发送或流式传输可能包含实时或接近实时语音输入的消息mv。
该vas被配置为处理从nmd503发送的消息mv中包含的声音数据流sds。更具体地说,该vas被配置为基于声音数据流sds来识别语音输入。参照图6a,语音输入680可以包括唤醒词部分680a和发声部分680b。唤醒词部分680a对应于导致唤醒词事件的检测到的声音。例如,唤醒词部分680a对应于使识别引擎569向语音提取器572提供唤醒词事件的指示的检测到的声音。发声部分680b对应于检测到的声音,该检测到的声音潜在包括跟随唤醒词部分680a的用户请求。
作为说明性示例,图6b示出了示例第一声音样本。在该示例中,声音样本对应于与图6a的发现的唤醒词680a相关联的声音数据流sds(例如,一个或多个音频帧)。如图所示,示例第一声音样本包括:(i)紧接在说出唤醒词之前在回放设备102i的环境中检测到的声音,该声音可以被称为前滚动部分(在时间t0和t1之间);(ii)在说出唤醒词时在回放设备102i的环境中检测到的声音,该声音可以被称为唤醒计部分(在时间t1和t2之间)和/或(iii)在说出唤醒词之后在回放设备102i的环境中检测到的声音,该声音可以被称为后滚动部分(在时间t2和t3之间)。其他声音样本也是可能的。
通常,vas可以首先处理声音数据流sds中的唤醒词部分680a以验证唤醒词的存在。在一些实例中,vas可以确定唤醒词部分680a包括错误的唤醒词(例如,当单词“alexa”是目标唤醒词时的单词“election”)。在这种情况下,vas可以向nmd503(图5)发送响应,指示nmd503停止提取声音数据,这可能导致语音提取器572停止检测到的声音数据向vas的进一步流传输。一个或多个识别引擎569(例如,关键词检测器576)可以恢复或继续监视声音样本,直到另一潜在唤醒词导致另一唤醒词事件。在一些实施方式中,vas可以不处理或接收唤醒词部分680a,而是仅处理发声部分680b。
在任何情况下,vas处理发声部分680b以识别在检测到的声音数据中任何单词的存在并从这些单词确定潜在意图。这些单词可以对应于某个命令和某些关键词684(在图6a中分别标识为第一关键词684a和第二关键词684b)。关键词可以是例如语音输入680中的识别mps100中特定设备或分组的词。例如,在所示的示例中,关键词684可以是识别要在其中播放音乐的一个或多个区(例如,客厅和餐厅(图1a))的一个或多个单词。
为了确定单词的意图,vas通常与vas(未示出)所关联的一个或多个数据库和/或mps100的一个或多个数据库(未示出)进行通信。这样的数据库可以存储多种用户数据、分析、目录和其他信息以用于自然语言处理和/或其他处理。在一些实施方式中,可以基于语音输入处理来更新这样的数据库以用于神经网络的自适应学习和反馈。在某些情况下,发声部分680b可以包括附加信息,例如,检测到的用户说出的单词之间的停顿(例如,非语音的时间段),如图6a所示。该停顿可以在发声部分680b内标定用户说出的单独命令、关键词或其他信息的位置。
基于某些命令标准,vas可以根据识别语音输入中的一个或多个命令(例如,命令682)来采取动作。命令标准可以基于在语音输入中包含某些关键词以及其他可能性。附加地或替代地,用于命令的命令标准可以涉及与一个或多个特定命令的识别相结合的、对一个或多个控制状态和/或区状态变量的识别。控制状态变量可以包括:例如,识别音量的指示器、与一个或多个设备相关联的队列以及回放状态,例如,设备是否正在播放队列、是否暂停等。区状态变量可以包括:例如,用于识别将哪些区播放器(如果有)分在一组的指示器。
在处理语音输入之后,vas可以基于其从语音输入确定的意图,向mps100发送具有指令的响应以执行一个或多个动作。例如,基于语音输入,vas可以指导mps100在一个或多个回放设备102上发起回放、控制这些设备中的一个或多个(例如,提高/降低音量、分组/取消分组设备等)、打开/关闭某些智能设备以及其他动作。如以上所讨论的,在接收到来自vas的响应之后,nmd503的一个或多个识别引擎569可以恢复或继续监视声音数据流sds,直到发现另一潜在唤醒词为止。
返回参考图5,在多vas实施方式中,nmd503可以包括vas选择器574(以虚线示出),该vas选择器574通常被配置为:当特定的唤醒词引擎(例如,第一唤醒词引擎570a、第二唤醒词引擎570b或附加唤醒词引擎571)识别给定的唤醒词时,该vas选择器574指导语音提取器的提取和向适当的vas发送声音数据流sds。在这样的实施方式中,nmd503可以包括多个不同的唤醒词引擎和/或语音提取器,每一个都由特定的vas支持。与以上讨论类似,每个唤醒词引擎可以被配置为从一个或多个缓冲器568接收声音数据流sds作为输入,并且应用识别算法为适当的vas引起唤醒词触发。因此,作为一个示例,第一唤醒词引擎570a可以被配置为识别唤醒词“alexa”,并且当发现“alexa”时使nmd503调用amazonvas。作为另一示例,第二唤醒词引擎570b可以被配置为识别唤醒词“ok,google”,并且当发现“ok,google”时使nmd503调用googlevas。在单个vas实施方式中,可以省略vas选择器574。
在附加的或替代的实施方式中,nmd503可以包括其他语音输入识别引擎571(以虚线示出),其使nmd503能够在没有远程vas的辅助下进行操作。作为示例,这样的引擎可以在检测到的声音中识别某些命令(例如,“播放”、“暂停”、“打开”等)和/或某些关键词或短语,例如,分配给给定回放设备的唯一名称(例如“书架”、“阳台”、“书房”等)。响应于识别这些命令、关键词和/或短语中的一个或多个,nmd503可以传送使音频处理组件216(图2a)执行一个或多个动作的信号(在图5中未示出)。例如,当用户说“heysonos,停止书房里的音乐”时,nmd503可以直接或间接地通过mps100的一个或多个其他设备向书房回放设备102n传送信号,使书房设备102n停止音频回放。减少或消除对来自远程vas的辅助的需要,可以减少在远程处理语音输入时可能发生的延迟。在某些情况下,所采用的识别算法可以被配置为识别在没有前面的唤醒词的情况下说出的命令。例如,在以上示例中,nmd503可以采用识别算法,该算法触发事件以停止书房中的音乐,而无需用户先说“heysonos”或另一唤醒词。
iii.用于唤醒词的两阶段检测的示例系统和方法
如图5所示,nmd503的识别引擎569包括在第一唤醒词引擎570a和第二唤醒词引擎570b以及以上讨论的另一其他语音输入识别引擎571上游的关键词发现器576。在操作中,声音数据流sds从vcc560向关键词发现器576传递。关键词发现器576分析声音数据流sds,以检测关键词(例如,唤醒词或命令)。如以下更详细地描述的,在一些实施例中,关键词发现器576识别声音数据流sds中的候选关键词。响应于在声音数据流sds中发现一个或多个关键词或候选关键词,关键词发现器576还选择适当的输出以提供声音数据流sds进行附加处理。如图所示,关键词发现器576可以向第一唤醒词引擎570a传递声音数据流sds,第二唤醒词引擎570b和/或另一引擎571被配置用于本地设备功能。在一些实施例中,基于通过声音数据流sds中的关键词发现器576发现的关键词来确定输出目的地。
在一些实施例中,关键词发现器576可以对声音数据流sds执行第一算法,以识别语音输入中的初步或候选唤醒词。与第一唤醒词引擎570a和/或第二唤醒词引擎570b所使用的下游算法相比,第一算法可以具有更小的计算复杂度和/或消耗更少的存储器。在一些示例中,第一算法用于确定语音输入是否包括多个可能的唤醒词中的一个唤醒词,例如“alexa”、“okgoogle”和“hey,siri”。
在一些实施例中,关键词发现器576被配置为向声音数据流sds中的候选唤醒词分配概率分数或范围。例如,第一种算法可以表示在声音数据流sds中检测到唤醒词“ok,google”的概率为80%,在这种情况下,“ok,google”可以被识别为候选或初步唤醒词。在一些实施例中,识别的候选唤醒词需要某个最小阈值概率分数。例如,以60%或更高的概率识别的唤醒词可以被识别为候选唤醒词,而以小于60%的概率识别的唤醒词不可以被识别为候选唤醒词。特定阈值可以在不同实施例中变化,例如,大于50%、60%、70%、80%或90%的概率。在一些实施例中,在单个声音数据流sds中,可以为两个不同的唤醒词分别分配概率分数或范围,使得每一个被识别为候选唤醒词。
关键词发现器576采用的第一算法可以包括现在已知或以后开发的各种关键词发现算法,或其变体。在一些实施例中,第一算法使用神经网络来进行关键词发现,例如,深度神经网络(dnn)、卷积神经网络(cnn)或递归神经网络(rnn),以基于大量特定于关键词的训练数据对关键词进行建模。在一些实施例中,关键词发现器576利用的神经网络已经被压缩以实现神经网络的计算复杂度和/或存储空间需求的显著降低。这使神经网络可以本地存储在nmd或回放设备上,而不会消耗过多功率或存储空间。以下参考图8-10描述了有关用于唤醒词检测的神经网络压缩的附加详细信息。
基于通过关键词发现器576对唤醒词的初步检测,可以向适当的唤醒词引擎(例如,第一唤醒词引擎570a或第二唤醒词引擎570b)传递声音数据流sds,或者可以向配置用于本地设备功能的另一引擎571传递语音输入。在一些实施例中,第一唤醒词引擎570a和第二唤醒词引擎570b可以与不同的语音助手服务相关联。例如,第一唤醒词引擎570a可以与amazon语音助手服务相关联,并且第二唤醒词引擎570b可以与google语音助手服务相关联。还可以包括这里未示出的其他唤醒词引擎,例如,与apple语音服务相关联的第三唤醒词引擎等。这些唤醒词引擎中的每一个可以响应于关键词发现器576的确定被启用(例如,加电)和禁用(例如,断电)。因此,仅当由关键词发现器576选择时,才可以启用和激活特定的唤醒词引擎。
唤醒词引擎570a和570b中的每一个被配置为分析从关键词发现器576接收的声音数据流sds,以检测确认的唤醒词。确认的唤醒词可以是先前由关键词发现器576识别的相同的唤醒词。在一些实施例中,第一唤醒词引擎570a或第二唤醒词引擎570b(取决于选择哪个)具有更高的精度,因此对检测到的唤醒词具有更高的置信度。第一唤醒词引擎570a和第二唤醒词引擎570b可以使用计算强度更高的算法来检测确认的唤醒词。在一个示例中,关键词发现器576识别候选唤醒词“alexa”,然后选择与amazon语音服务相关联的第一唤醒词引擎570a,以进一步处理语音输入。接下来,第一唤醒词引擎570a分析语音输入以确认或否定在该语音输入中存在唤醒词“alexa”。如果确认了唤醒词,则nmd503可以向适当的语音助手服务传递声音数据流sds的附加数据(例如,图6a的语音发声部分680b),以进行如上所述的进一步处理。如果否定唤醒字,则nmd503可以不针对该特定声音数据流sds采取进一步动作,或者nmd503可以提供警报或指示第一唤醒词引擎570a否定初步唤醒词的其他输出。
如上所述,各种唤醒词引擎570a和570b可以分别与不同的语音服务相关联。这样的唤醒词引擎可以利用不同的算法来识别语音输入中已确认的唤醒词,无论是现在已知的还是后来开发的,或其变体。这种算法的示例包括但不限于:(i)滑动窗口模型,其中,将捕获的音频的滑动时间间隔内的特征与关键词模型进行比较;(ii)垃圾模型,其中,为每个关键词和非关键词构造隐藏马尔可夫模型(hmm),以便使用非关键词模型来帮助从关键词语音中区分非关键词语音;(iii)使用大词汇量连续语音识别(lvcsr),其中,将输入语音解码为可搜索预定义关键词的格;以及(iv)基于大量特定于关键词的训练数据,使用神经网络(例如,深度神经网络(dnn)、卷积神经网络(cnn)或递归神经网络(rnn))对关键词进行建模。
如前所述,在一些实施例中,代替或除了向第一唤醒词引擎570a和/或第二唤醒词引擎570b传递声音数据流sds之外,关键词检测器576可以向另一引擎571传递声音数据流sds。如果关键词发现器576在声音数据流sds中识别出关键词(例如,本地设备命令),则关键词发现器576可以向另一引擎571传递该输入以执行命令。作为一个示例,如果关键词发现器576检测到关键词“调高音量”,则关键词发现器576可以向另一引擎571传递声音数据流sds。在各种实施例中,另一引擎571可以包括被配置为执行任意数量的不同功能的组件,例如,修改回放音量、轨道控制(暂停、跳过、重复等)、设备分组或取消分组、停用麦克风或任何其他本地设备功能。在一些实施例中,另一引擎571限于在接收到声音数据流sds的特定nmd上执行功能。在其他实施例中,另一引擎571可以使得在与接收到声音数据流sds的nmd通信的其他回放设备或nmd上执行功能。
a.唤醒词的两阶段检测示例
如上所述,在一些示例中,nmd被配置为监视和分析接收的音频以确定在该接收的音频中是否存在任何唤醒词。图7示出了用于nmd确定在接收到的音频中是否存在任何唤醒词的方法700的示例实施例。方法700可以通过本文公开和/或所述的任何nmd、或者现在已知或以后开发的任何其他nmd来实现。
方法700的各种实施例包括方框702至718所示的一个或多个操作、功能和动作。尽管顺序地示出了这些方框,但是这些方框也可以并行执行和/或以与本文公开和描述的顺序不同的顺序执行。而且,各个方框可以基于期望的实现方式被组合成更少的方框、被划分成附加的方框和/或被移除。
方法700开始于方框702,其涉及nmd通过一个或多个麦克风捕获检测到的声音数据。捕获的声音数据包括来自nmd环境的声音数据,并且在一些实施例中,包括语音输入,例如,图6a中描绘的语音输入680。
在方框704处,方法700涉及使用第一算法的nmd来识别声音数据中的候选唤醒词。候选唤醒词可以是多个可能唤醒词中的一个,并且在一些情况下,多个唤醒词中的每一个对应于多个语音服务中的相应语音服务。在一些实施例中,这涉及nmd使以上结合图5所述的关键词发现器576利用唤醒词检测算法来检测候选唤醒词。另外,在一些实施例中,该多个唤醒词包括以下一项或多项:(i)对应于amazon语音服务的唤醒词“alexa”;(ii)对应于google语音服务的唤醒词“ok,google”;或(iii)对应于apple语音服务的唤醒词“hey,siri”。因此,在一些示例中,使用第一算法执行第一唤醒词检测过程涉及nmd使用第一算法来确定捕获的声音数据是否包括多个唤醒词,例如,“alexa”、“ok,google”和“hey,siri”。此外,在一些示例中,nmd并行地使用第一算法来同时确定捕获的声音数据是否包括多个唤醒词。
另外,在一些实施例中,该多个唤醒词包括以下一项或多项:(i)对应于amazon语音服务的唤醒词“alexa”;(ii)对应于google语音服务的唤醒词“ok,google”;或(iii)对应于apple语音服务的唤醒词“hey,siri”。因此,在一些示例中,使用第一算法执行第一唤醒词检测过程涉及nmd使用第一算法来确定捕获的声音数据是否包括多个唤醒词,例如,“alexa”、“ok,google”和“hey,siri”。此外,在一些实施例中,nmd并行地使用第一算法来同时确定捕获的声音数据是否包括多个唤醒词。
在一些实施例中,识别候选唤醒词包括用一个或多个唤醒词分配概率分数或范围。例如,第一算法可以指示在语音输入中已经检测到唤醒词“alexa”的概率为70%,在这种情况下,可以将“alexa”视为候选唤醒词。在一些实施例中,可以为两个不同的唤醒词分别分配概率分数或范围,使得每一个都被识别为候选唤醒词。
如上所述,在方框704中用来识别候选唤醒词的第一算法可以包括现在已知或以后开发的各种关键词发现算法,或其变体。在一些实施例中,第一算法使用神经网络来进行关键词发现,例如,深度神经网络(dnn)、卷积神经网络(cnn)或递归神经网络(rnn),以基于大量特定于关键词的训练数据对关键词进行建模。在一些实施例中,方框704中利用的神经网络已经被压缩以实现神经网络的计算复杂度和/或存储空间需求的显著降低。这使神经网络可以本地存储在nmd或回放设备上,而不会消耗过多功率或存储空间。以下参考图8-10描述了有关用于唤醒词检测的神经网络压缩的附加详细信息。
在框706处,方法700涉及nmd在框704处确定在声音数据中是否已检测到任何候选唤醒词。如果nmd没有将捕获的声音数据中的多个唤醒词中的任何一个识别为候选唤醒词,则方法700返回到方框702,并且nmd继续捕获附加的声音数据并使用第一算法来处理该附加的声音数据以识别该声音数据中的候选唤醒词。替代地,如果nmd确实使用第一算法识别了特定唤醒词,则方法700前进到方框708,在该方框708中nmd尝试确认在捕获的声音数据中是否存在候选唤醒词。
响应于在声音数据中识别候选唤醒词,nmd在方框708中选择并激活第一唤醒词引擎或在方框709中选择并激活第二唤醒词引擎。在一些实施例中,激活第一唤醒词引擎涉及nmd加电(例如,从低功率或无功率状态到高功率状态)或使特定唤醒词引擎组件能够分析捕获的声音数据。
可以基于方框704中在声音数据中检测到的特定候选唤醒词来进行第一唤醒词引擎和第二唤醒词引擎之间的选择。例如,第一唤醒词引擎可以与第一vas相关联,并且第二唤醒词引擎可以与第二vas相关联。如果候选唤醒词与第一vas相关联,则在方框708中选择并激活第一唤醒词引擎。相反,如果候选唤醒词与第二vas相关联,则在方框709中选择并激活第二唤醒词引擎。
在一个示例中,第一唤醒词引擎被配置为检测唤醒词“alexa”,使得如果nmd在方框706处确定初步唤醒词检测过程检测到单词“alexa”作为候选唤醒词,则nmd在方框708处响应性地激活第一唤醒词引擎,并在方框710中确认或否定声音数据中存在候选唤醒词“alexa”。在相同或另一示例中,第二唤醒词引擎被配置为检测唤醒词“okgoogle”,使得如果nmd在方框706处确定在方框704中识别的初步唤醒词是“okgoogle”,则nmd在方框709处响应地激活第二唤醒词引擎,并在方框711中确认或否定声音数据中“okgoogle”的存在。在一些实施例中,方法700涉及使用附加的唤醒词检测模块来执行附加的唤醒词检测过程。例如,在一些实施例中,方法700涉及针对每个唤醒词使用相应的唤醒词检测模块,nmd被配置为检测所述每个唤醒词。
在方框708处,方法700涉及nmd使第一唤醒词引擎分析声音数据,以确认或否定声音数据中候选唤醒词的存在。如果确认,则nmd可以输出确认的唤醒词。确认的唤醒词可以是与先前在方框704中被识别的初步唤醒词相同的唤醒词,除此之外,第一唤醒词引擎可以具有更高的期望精度,并且因此对检测到的唤醒词具有更高的置信度。在一些实施例中,与用于识别候选唤醒词的第一算法相比,第一唤醒词引擎可以使用计算强度更高的算法来检测确认的唤醒词。在一个示例中,在方框704中第一算法识别候选唤醒词“alexa”,并且在方框708中选择与amazon语音服务相关联的唤醒词引擎。然后,在方框710中,amazon唤醒词引擎分析声音数据以确认或否定该声音数据中“alexa”的存在。如果amazon唤醒词引擎识别出唤醒词“alexa”,则将其识别为确认的唤醒词。在另一示例中,在方框704中第一算法识别候选唤醒词“okgoogle”,并且在方框708中选择与google语音服务相关联的唤醒词引擎。然后,在方框710中,google唤醒词引擎分析声音数据以确认或否定该声音数据中“okgoogle”的存在。
以上所述结合初步唤醒词检测和下游唤醒词引擎的算法可以包括现在已知或以后开发的各种关键词发现算法,或其变体。关键词发现算法的示例包括但不限于:(i)滑动窗口模型,其中,将捕获的音频的滑动时间间隔内的特征与关键词模型进行比较;(ii)垃圾模型,其中,为每个关键词和非关键词构造隐藏马尔可夫模型(hmm),以便使用非关键词模型来帮助从关键词语音中区分非关键词语音;(iii)使用大词汇量连续语音识别(lvcsr),其中,将输入语音解码为可搜索预定义关键词的格;以及(iv)基于大量特定于关键词的训练数据,使用神经网络(例如,深度神经网络(dnn)、卷积神经网络(cnn)或递归神经网络(rnn))对关键词进行建模。关于神经网络的使用的附加细节在下文参考图8-10进行了描述。
在方框712处,方法700涉及确定在捕获的声音数据中是否已经检测到确认的唤醒词。如果在方框710或方框711中已经检测到确认的唤醒词,则方法700前进到方框714。并且,如果在方框710或方框711中未检测到确认的唤醒词(即,在方框710或方框711中否定了初步唤醒词),则方法700前进至方框716。
在方框714处,方法700涉及nmd通过其网络接口使对应于特定唤醒词的相应语音服务来处理捕获的声音数据。在一些实施例中,这首先涉及识别多个语音服务中的哪个语音服务对应于特定的唤醒词,其示例在美国专利申请no.15/229,868中公开,其全部内容通过引用并入本文。
在一些实施例中,使相应的语音服务处理捕获的声音数据涉及:nmd通过网络接口向相应的语音服务的一个或多个服务器传输表示声音数据的数据、以及用于处理表示声音数据的数据的命令或查询。该命令或查询可以使相应的语音服务处理语音命令,并且可以根据相应的语音服务而变化,以使该命令或查询与相应的语音服务(例如,语音服务的api)一致。
如上所述,在一些示例中,捕获的音频包括语音输入680,该语音输入680又包括表示唤醒词680a的第一部分和表示语音发声680b的第二部分,该语音发声680b可以包括一个或多个命令,例如,命令682。在一些情况下,nmd可以仅发送表示至少语音输入的第二部分的数据(例如,表示语音发声680b的部分)。通过排除第一部分,nmd可以减少发送语音输入680所需的带宽,并且避免由于唤醒词680a而可能对语音输入680进行的误处理,以及其他可能的好处。替代地,nmd可以发送表示语音输入680的两个部分或语音输入680的一些其他部分的数据。
在一些实施例中,使相应的语音服务处理捕获的声音数据涉及:nmd查询与相应的语音服务相对应的唤醒词检测算法。如上所述,对语音服务的查询可以涉及在nmd本地或使用网络接口远程调用语音服务的相应api。响应于对相应语音服务的唤醒词检测算法的查询,nmd接收响应,该响应指示在查询中提交的捕获的声音数据是否包括与该语音服务相对应的唤醒词。当特定语音服务的唤醒词检测算法检测到捕获的声音数据包括与该特定语音服务相对应的特定唤醒词时,nmd可以使该特定语音服务进一步处理声音数据,例如,在捕获的声音数据中识别语音命令。
在使相应的语音服务处理捕获的音频之后,nmd接收处理结果。例如,如果检测到的声音数据表示搜索查询,则nmd可以接收搜索结果。作为另一示例,如果检测到的声音数据表示对设备的命令(例如,对回放设备的媒体回放命令),则nmd可以接收该命令以及也许与该命令相关联的附加数据(例如,与该命令相关联的媒体源)。nmd可以基于命令的类型和接收到的结果适当地输出这些结果。
替代地,如果检测到的声音数据包括定向到nmd以外的另一设备的语音命令,则结果可能被定向到该设备而不是nmd。例如,参考图1a,厨房101h中的nmd103f可以接收语音输入,该语音输入被定向到餐厅101g的回放设备102l(例如,以调整回放设备102l的媒体回放)。在这样的实施例中,尽管nmd103f促进了语音输入的处理,但是可以向回放设备102l发送处理结果(例如,用于调整媒体回放的命令)。替代地,语音服务可以向nmd103f发送结果,该nmd103f可以将命令中继到回放设备102l,或者使回放设备102l执行该命令。
在方框716处,方法700,nmd响应于确定捕获的声音数据不包括特定的唤醒词而停止处理该捕获的声音数据以检测确认的唤醒词。在一些实施例中,停止处理捕获的声音数据以检测特定的唤醒词涉及:nmd进一步处理捕获的声音数据以确定该捕获的声音数据是否包括与特定的唤醒词不同的唤醒词。例如,对于多个唤醒词中的每个相应的唤醒词,nmd可以使用一个或多个算法来确定捕获的声音数据是否包括相应的唤醒词。
附加地或替代地,在一些实施例中,停止处理捕获的声音数据以检测特定的唤醒词不涉及nmd停止完全处理该捕获的声音数据。相反,nmd继续通过重复方法700(例如,通过捕获附加声音数据并在该附加的捕获的声音数据上执行第一和第二唤醒词检测过程)来监听唤醒词。
在任何情况下,在方框718处,方法700涉及nmd停用所选择的唤醒词引擎(即,第一和/或第二唤醒词引擎,取决于先前选择并激活了哪个引擎)。因此,在一些示例中,方法700涉及:nmd在方框716处停止处理声音数据之后停用所选择的唤醒词引擎。在其他示例中,方法700涉及:nmd在方框714处使语音服务处理特定唤醒词之后,停用所选择的唤醒词引擎。与以上讨论一致,在一些实施例中,停用所选择的唤醒词引擎涉及nmd断电或禁止唤醒词引擎组件570a和/或570b分析捕获的声音数据。
b.用于唤醒词检测的压缩神经网络示例
图8是系统800的功能框图,该系统800用于生成用于关键词发现和选择的压缩神经网络。如图8所示,向关键词选择和压缩模块804提供预训练神经网络802。预训练神经网络802可以是例如基于大量特定于关键词的训练数据对一个或多个所选关键词建模的神经网络,例如,深度神经网络(dnn)、卷积神经网络(cnn)或递归神经网络(rnn)。关键词选择和压缩模块804可以优化和压缩预训练神经网络,以提供比预训练神经网络输入802执行得更好的压缩神经网络,例如,计算强度较低和/或需要较少的存储空间而不会显著降低关键词检测的精度。
如下文更详细描述的,关键词选择和压缩模块804可以通过将预训练神经网络的权重压缩到k集群(例如,通过在权重上拟合高斯混合模型(gmm))来重新训练和压缩预训练神经网络802。这种技术被称为软加权共享,并且可以导致神经网络的显著压缩。通过将gmm的分量与预训练神经网络的权重拟合在一起,权重倾向于紧密集中在许多集群分量周围,而集群中心会优化自身以使该网络具有较高的预测精度。这导致很高的压缩率,因为神经网络只需要对k集群均值进行编码,而不是对预训练神经网络的所有权重进行编码。另外,可以在gmm中以较高的初始责任将一个集群固定为0,从而允许如下文关于图10所讨论的稀疏表示。
在关键词选择和压缩模块804的初始化模块806处,gmm的分量被初始化。例如,预定数量的非固定分量的平均值可以在预训练神经网络802的权重范围内均匀分布。可以初始化方差,使得每个高斯在其各自的区域中具有显著的概率质量。在一些实施例中,也可以基于预训练通过初始化模块806来初始化神经网络的权重。在一些实施例中,可以用17个分量(24 1)来初始化gmm,并且权重和均值、对数方差和对数混合比例的学习率都可以分别被初始化。
在初始化gmm分量之后,联合优化模块808使用gmm重新训练预训练神经网络模型。联合优化模块808将初始化的gmm拟合在预训练神经网络的权重上,并运行优化算法以聚合gmm集群周围的神经网络的权重。例如,在一些实施例中,可以通过梯度下降来优化以下等式:
其中,w是神经网络模型参数(或权重),μj,σj,πj是gmm的均值、方差和混合权重,x和t是神经网络的声学特征输入和分类目标。损耗分解为神经网络项p(t|x,w)和gmm项
在一些示例中,加权因子τ可以被设置为0.005。为鼓励稀疏性并改善下一阶段的压缩,gmm的一个分量可以具有固定的均值μj=0=0和混合权重πj=0=0.999。其余分量被学习。替代地,该阶段也可以训练πj=0,但使用超先验(例如,beta分布)对其进行限制。在连续迭代之后,函数收敛,使得神经网络的权重在gmm集群的周围紧密聚合。
在联合优化模块808中,梯度下降计算对于选择的学习率和参数可能高度敏感。如果学习率太高,则gmm可能太快坍塌,并且神经网络的权重可能会遗留在任何组件之外,并且无法集群。相反,如果学习率太低,则混合权重将收敛太慢。在一些实施例中,学习率可以被设置为大约5x10-4。在某些实施例中,可以对混合方差应用逆伽马(inverse-gamma)超先验,以防止混合分量太快坍塌。
作为关键词选择和压缩模块804的最后阶段,量化模块571进一步压缩该模型。例如,在神经网络已经通过联合优化模块808重新训练之后,可以将每个权重设置为针对其承担最大责任的分量的平均值。该过程被称为量化。然而,在量化之前,可以删除多余的分量。在一个示例中,可以在所有分量之间计算kullback-leibler(kl)散度,并且对于kl散度小于阈值的情况,可以将这两个分量合并以形成单个分量。在量化之后,与预训练神经网络802相比,所得的神经网络在权重上的独特值数量明显减少。
然后,关键词选择和压缩模块804的输出可以在被输出为关键词发现器576之前经历后处理812(例如,附加过滤、格式化等)。在一些实施例中,后处理可以包括压缩的稀疏行(csr)表示,如以下参考图10所述。如以上参考图5和图7所述,关键词发现器576可以用于执行唤醒词检测,例如以对捕获的声音数据执行初步唤醒词检测分析。基于该压缩神经网络的输出,可以例如利用与特定vas或一组特定唤醒词相关联的唤醒词引擎来执行第二唤醒词检测过程。
有关可共享软加权神经网络、量化、压缩的稀疏行表示以及kl散度的使用的附加详细信息和示例可以参见:ulrich等人的“softweight-sharingforneuralnetworkcompression(用于神经网络压缩的软加权共享)”,其可在https://arxiv.org/abs/1702.04008v2上获得;han等人的“deepcompression:compressingdeepneuralnetworkswithpruning,trainedquantizationandhuffmancoding(深度压缩:通过修剪、训练量化和霍夫曼编码压缩深层神经网络)”,其可在https://arxiv.org/abs/1510.00149v5上获得;以及han等人的“learningbothweightsandconnectionsforefficientneuralnetworks(学习高效的神经网络的权重和连接)”,其可在https://arxiv.org/abs/1506.02626v3上获得;其每一个均通过全部引用并入本文。以上引用的论文中公开的任何技术都可以并入上述的关键词选择和压缩模块804和/或后处理812中。
图9说明了通过软加权共享进行压缩之前和之后,神经网络的权重的对数权重分布。图9顶部的直方图示出了预训练神经网络(例如,图8的预训练神经网络802)的权重w的分布。在已经执行了软加权共享再训练之后(例如,如关键词发现器576的压缩神经网络中所反映的),在右侧示出了相同的分布。散点图说明了每个权重值的变化。如图所示,权重被绘制在一起以聚合在离散值周围,与预训练神经网络相比,极大地减少了软加权共享神经网络中权重上不同值的数量。另外,权重的最大集中度为零,从而最小化所得神经网络中非零权重的数量。这允许使用压缩的稀疏行表示(csr)进行更大的压缩,如下文参考图10所述。通过软加权共享以及csr(或权重的其他压缩表示)实现的权重上不同值的减少,显著减小神经网络的大小和计算复杂度,而不会使精度实质性下降。
图10说明了神经网络模型的压缩稀疏行(csr)表示的示例。除了共享权重聚合之外,还可以使用稀疏表示进一步压缩神经网络模型。一个示例是标准csr表示,其中,矩阵m由三个一维数组表示。特别地,参考图10,矩阵d可以由三个一维数组a、ia和ja表示。数组a是通过获取矩阵d的非零分量(5、8、3和6)获得的。数组ia是从矩阵d的每一行中非零分量的数量递归获得的,其附加的第一值为0。在矩阵d中,每行中非零分量的数量分别为0、2、1和1。递归地将这些值相加可得到0、2(0 2)、3(2 1)和4(3 1)的值,如数组ia所示。最后,从矩阵d中每个非零值的列索引生成数组ja。例如,第一个非零值(5)在列0中,第二个非零值(8)在列1中,第三个非零值(3)在列2中,第四个非零值(6)在列1中。因此,数组ja包括值0、1、2、1。这三个数组可以以压缩格式表示矩阵m,例如,通过减少表示神经网络模型所需存储的值的总数。在图10的示例中,矩阵m具有16个值,而三个数组a、ia和ja具有总共13个值的组合。
这些数组中的每一个都可以被进一步优化。例如,数组ia中的最大数是d中非零元素的总数,因此ia中的数可以以较低的精度存储。可以通过使用密码本量化索引来优化数组a。并且可以用较低的精度索引优化数组ja和/或存储差异。
在评估已经使用csr技术压缩的神经网络模型时,发明人发现基线神经网络的大小显著减小。在具有八个分量的一个示例中,神经网络的基线总大小为540kb。在压缩的稀疏行表示之后,该大小减小为462.5kb,反映了总压缩率为1.16。在优化了csr数组之后,该大小进一步减小到174kb,反映了总压缩率为3.1。因此,发现结合数组优化使用csr表示可以将总大小减少三分之二以上。如上所述,这些和其他压缩技术可用于减小用于检测唤醒词的神经网络模型的大小和/或计算复杂度。
c.使用神经网络在nmd之间进行仲裁的示例
如前所述,在某些实施方式中,当在语音中识别出由位于彼此附近的两个或更多个nmd检测到的语音输入时,nmd可以促进彼此之间的仲裁。例如,彼此靠近放置的两个nmd至少有时可以检测到相同的声音。在这种情况下,这可能需要仲裁,以确定最终由哪个设备负责向远程vas提供检测到的声音数据。
在一些实施例中,两个或更多nmd中的每一个可以使用上述关键词发现算法中的任何一个(例如,利用关键词发现器576、第一唤醒词引擎570a和/或第二唤醒词引擎570b)来分析检测到的声音数据以识别唤醒词或候选唤醒词。例如,两个nmd可以分别使用基于神经网络的关键词发现器来识别语音输入中的候选唤醒词。在至少一些实施例中,关键词发现器还可以向声音数据流sds中的候选唤醒词分配概率分数或范围。基于相对概率分数和由每个nmd识别的候选唤醒词,可以选择nmd之一以向远程vas提供检测到的声音数据。
作为一个示例,第一nmd和第二nmd可以彼此靠近放置,使得它们检测相同的声音。在第一个nmd上操作的关键词发现器可以指示有80%的可能性已在第一nmd的声音数据流sds中检测到唤醒词“ok,google”,而在第二个nmd上操作的关键词发现器可以指示有70%的可能性已经在第二nmd的声音数据流sds中检测到唤醒词“ok,google”。由于第一nmd具有比第二nmd更高的检测到唤醒词的可能性,因此可以选择第一nmd与远程vas通信。
结论
以上描述尤其公开了各种示例系统、方法、装置和尤其包括在硬件上执行的固件和/或软件的制品。应当理解的是,这些示例仅是示意性的,而不应当被认为是限制性的。例如,可以想到,这些固件、硬件和/或软件方面或组件中的任意一个或全部可以专门在硬件中实现、专门在软件中实现、专门在固件中实现、或在硬件、软件和/或固件的任意组合中实现。因此,所提供的示例不是实现这些系统、方法、装置和/或制品的唯一方式。
主要在说明性的环境、系统、过程、步骤、逻辑块、处理以及直接或间接地与耦接到网络的数据处理设备的操作相类似的其他象征性表示的方面上,提出本说明书。本领域技术人员通常使用这些处理描述和表示,以向本领域技术人员的其他技术人员传播他们的工作内容。阐述了各种具体细节,以提供本公开的透彻理解。然而,本领域技术人员应理解,不需要特定、具体细节就可以实施本公开。在其他实例中,没有描述熟知的方法、过程、组件和电路,以避免不必要地使实施例的方面模糊不清。因此,本公开的范围由随附权利要求、而不是以上实施例的描述来界定。
当随附权利要求中的任一项权利要求被理解成涵盖纯软件和/或固件实现时,在此明确限定至少一个示例中的至少一个元素以包括存储软件和/或固件的非暂时性有形介质,如存储器、dvd、cd、蓝光等。
例如,根据以下所述的各个方面示出了本技术。为了方便起见,将本技术各方面的各种示例描述为编号示例(1、2、3等)。这些仅作为示例提供,并不限制本技术。请注意,任何从属示例可以以任何组合被组合,并且被放置在相应的独立示例中。可以以类似的方式呈现其他示例。
示例1:一种方法,包括:通过网络麦克风设备捕获声音数据;以及通过所述网络麦克风设备,识别所述声音数据中的候选唤醒词;基于对所述声音数据中候选唤醒词的识别,从多个唤醒词引擎中选择第一唤醒词引擎;利用所述第一唤醒词引擎,分析所述声音数据以检测确认的唤醒词;以及响应于检测确认的唤醒词,向一个或多个与语音助手服务相关联的远程计算设备发送所述声音数据的语音发声。示例2:根据示例1所述的方法,其中,识别候选唤醒词包括确定所述候选唤醒词存在于所述声音数据中的概率。示例3:根据示例1-2中任一项所述的方法,其中,所述第一唤醒词引擎与所述候选唤醒词相关联,并且其中,所述多个唤醒词引擎中的另一个与一个或多个附加唤醒词相关联。示例4:根据示例1-3中任一项所述的方法,其中,识别候选唤醒词包括:将神经网络模型应用于所述声音数据。示例5:根据示例4所述的方法,其中,所述神经网络模型包括压缩神经网络模型。示例6:根据示例4所述的方法,其中,所述神经网络模型包括软加权共享神经网络模型。示例7:根据示例1-6中任一项所述的方法,还包括:在发送附加声音数据之后,通过网络麦克风设备接收与附加声音数据有关的媒体内容的选择。示例8:根据示例1-7中的任一项所述的方法,其中,所述多个唤醒词引擎包括:所述第一唤醒词引擎;以及第二唤醒词引擎的示例,其被配置为执行所述网络麦克风设备的本地功能。
示例9:一种网络麦克风设备,包括:一个或多个处理器;至少一个麦克风;以及一种有形的、非暂时性的计算机可读介质,其存储可由一个或多个处理器执行的指令,以使所述网络麦克风设备执行包括示例1-8中的任一项所述的操作。
示例10:有形的、非暂时性计算机可读介质,其存储可由一个或多个处理器执行的指令,以使网络麦克风设备执行包括示例1-8中的任一项所述的操作。
1.一种方法,包括:
通过网络麦克风设备捕获声音数据;
通过所述网络麦克风设备,使用关键词发现算法(576)来识别所述声音数据中的候选唤醒词;
基于对所述声音数据中候选唤醒词的识别,从多个唤醒词引擎(570a、570b、571)中选择第一唤醒词引擎(570a、570b、571);
利用所述第一唤醒词引擎(570a、570b、571),分析所述声音数据以确认检测到唤醒词;以及
当所述第一唤醒词引擎(570a、570b、571)确认检测到所述唤醒词时,向一个或多个与语音助手服务相关联的远程计算设备发送所述声音数据的语音发声。
2.根据权利要求1所述的方法,其中,识别所述候选唤醒词包括:确定所述候选唤醒词在所述声音数据中存在的概率。
3.根据权利要求2所述的方法,其中,所述唤醒词引擎(570a、570b、571)被配置为确定所述候选唤醒词在所述声音数据中是否以比所述关键词发现算法(576)更高的精度存在。
4.根据前述权利要求中任一项所述的方法,其中,所述关键词发现算法(576)被配置为识别与多个相应语音助手服务和相应唤醒词引擎相对应的多个唤醒词。
5.根据前述权利要求中任一项所述的方法,其中,相对于所述多个唤醒词引擎(570a、570b、571),所述关键词发现算法(576)至少为以下中的一项:
在计算上不太复杂;以及
消耗更少的存储空间。
6.根据前述权利要求中任一项所述的方法,其中,所述第一唤醒词引擎(570a、570b、571)与所述候选唤醒词相关联,并且其中,所述多个唤醒词引擎(570a、570b、571)中的另一个与一个或多个附加唤醒词相关联。
7.根据前述权利要求中任一项所述的方法,其中,识别所述候选唤醒词包括:将神经网络模型(802)应用于所述声音数据。
8.根据权利要求7所述的方法,其中,所述神经网络模型(802)包括压缩神经网络模型(804)。
9.根据权利要求7或8所述的方法,其中,所述神经网络模型(802、804)被本地存储在nmd上。
10.根据权利要求8或9所述的方法,其中,所述压缩神经网络模型(804)是通过将高斯混合模型拟合到所述神经网络(802)的权重来压缩的。
11.根据权利要求10所述的方法,还包括:通过在所述神经网络(802)的权重范围内分配非固定分量的均值来初始化所述高斯混合模型。
12.根据权利要求11所述的方法,还包括:在所述神经网络模型的权重上拟合所述初始化的高斯混合模型,并且将神经网络的权重聚合在所述高斯混合模型集群周围。
13.根据权利要求12所述的方法,还包括量化所述神经网络模型。
14.根据权利要求8至13中的一项所述的方法,还包括:使用所述神经网络模型的压缩稀疏行表示来压缩所述神经网络模型。
15.根据前述权利要求中任一项所述的方法,其中,选择所述第一唤醒词引擎(570a、570b、571)包括:将所述nmd从低功率或无功率状态加电到高功率状态。
16.根据前述权利要求中任一项所述的方法,还包括:在发送附加声音数据之后,通过所述网络麦克风设备接收与所述附加声音数据有关的媒体内容的选择。
17.根据前述权利要求中任一项所述的方法,其中,所述多个唤醒词引擎包括:
所述第一唤醒词引擎(570a、570b);以及
第二唤醒词引擎(571),被配置为执行所述网络麦克风设备的本地功能。
18.根据前述权利要求中任一项所述的方法,还包括:当所述第一唤醒词引擎(570a、570b、571)未确认检测到所述唤醒词时,停用所述第一唤醒词引擎(570a、570b、571)。
19.根据前述权利要求中任一项所述的方法,还包括:在选择所述第一唤醒词引擎(570a、570b、571)之前,使用各自的检测到的声音数据中的候选唤醒词的关键词发现算法(576),基于所确定的概率,与一个或多个附加nmd对哪个nmd将选择所述唤醒词引擎进行仲裁。
20.一种有形的、非暂时性的计算机可读介质,其存储可由一个或多个处理器执行的指令,以使网络麦克风设备执行前述权利要求中任一项所述的方法。
21.一种网络麦克风设备,包括:
一个或多个处理器;
至少一个麦克风;以及
根据权利要求20所述的有形的、非暂时性的计算机可读介质。
技术总结