首页> 中国专利> 端到端流关键词检出

端到端流关键词检出

摘要

一种用于检测热词的方法(600)包括:接收表征由用户设备(102)捕获的流音频(118)的输入帧(210)的序列,和使用记忆神经网络(300)生成指示在流音频中存在热词的概率分数(350)。该网络包括顺序堆叠的单值分解过滤器(SVDF)层(302),并且每个SVDF层包括至少一个神经元(312)。每个神经元包括相应的存储器组件(330);第一级(320),其被配置成单独地对每个输入帧的音频特征(410)执行过滤并输出到存储器组件;以及第二级(340),其被配置成对驻留在相应的存储器组件中的所有所过滤的音频特征执行过滤。该方法还包括确定概率分数是否满足热词检测阈值,以及在用户设备上发起唤醒过程以处理附加的词语。

著录项

  • 公开/公告号CN112368769A

    专利类型发明专利

  • 公开/公告日2021-02-12

    原文格式PDF

  • 申请/专利权人 谷歌有限责任公司;

    申请/专利号CN201980044566.5

  • 申请日2019-06-13

  • 分类号G10L15/16(20060101);G10L15/22(20060101);G06N3/04(20060101);

  • 代理机构11219 中原信达知识产权代理有限责任公司;

  • 代理人周亚荣;邓聪惠

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 09:52:39

说明书

技术领域

本公开涉及用于检出流音频中的关键词的端对端系统。

背景技术

支持语音的环境(例如,家、工作场所、学校、汽车等)允许用户向基于计算机的系统大声讲出查询或命令,该基于计算机的系统处理和回答该查询和/或基于该命令来执行功能。能够使用通过环境的各个空间或区域分布的连接的麦克风设备的网络来实现支持语音的环境。与针对存在于环境中的另一个人的话语相反,这些设备可以使用热词来帮助辨别何时将给定话语指向系统。因此,设备可以在睡眠状态或休眠状态下操作并且只有当检测到的话语包括热词时才唤醒。神经网络最近已作为用于训练模型以检测流音频中由用户讲出的热词的有吸引力的解决方案出现。通常,用于在流音频中检测热词的系统包括信号处理前端组件、神经网络声学编码器组件和人工设计的解码器组件。这些组件通常被彼此独立地训练,从而产生附加复杂性并且与联合地训练所有组件相比为次优的。

发明内容

本公开的一个方面提供一种用于在流音频中检测热词的方法。该方法包括:在用户设备的数据处理硬件处接收输入帧的序列,每个输入帧包括表征由用户设备捕获的流音频的相应的音频特征;以及通过数据处理硬件,使用记忆神经网络来生成指示在流音频中存在热词的概率分数。记忆神经网络包括顺序堆叠单值分解过滤器(SVDF)层,其中,每个SVDF层包括至少一个神经元。每个神经元包括相应的存储器组件、第一级和第二级。相应的存储器组件与对应神经元的相应的存储器容量相关联。第一级被配置成单独地对每个输入帧的相应的音频特征执行过滤并且将过滤后的音频特征输出到相应的存储器组件。第二级被配置成对驻留在相应的存储器组件中的所有过滤后的音频特征执行过滤。该方法也包括:通过数据处理硬件确定概率分数是否满足热词检测阈值;以及当概率分数满足热词检测阈值时,通过数据处理硬件在用户设备上发起唤醒过程以用于处理热词和/或音频流中紧跟该热词之后的一个或多个其他词语。

本公开的实施方式可以包括以下任选特征中的一个或多个。在一些实施方式中,与用于来自SVDF层中的每一个的神经元的相应的存储器组件相关联的存储器容量的和为记忆神经网络提供与一般讲话者讲出热词花费的时间长度成比例的固定存储器容量。在一些示例中,与相应的存储器组件中的至少一个相关联的相应的存储器容量不同于与剩余存储器组件相关联的相应的存储器容量。在其他示例中,与所有SVDF层的相应的存储器组件相关联的相应的存储器容量是相同的。

在一些示例中,远程系统在多个训练输入音频序列上训练记忆神经网络。在这些示例中,每个训练输入音频序列包括:输入帧的序列,每个输入帧包括表征热词的语音成分的一个或多个相应的音频特征;以及指派给输入帧的标签,每个标签指示相应的输入帧的音频特征包括热词的语音成分的概率。在一些配置中,对于每个训练输入音频序列,训练记忆神经网络包括:通过将第一标签指派给包括热词的语音成分的输入帧的一部分并且将第二标签指派给包括热词的语音成分的输入帧的剩余部分来训练编码器部分;以及通过应用指示所对应的训练输入音频序列包括热词或不包括热词的标签来训练解码器部分。在这里,将第一标签指派给输入音频帧的部分可以包括:将第一标签指派给包括表征热词的最后语音成分的一个或多个相应的音频特征的至少一个输入帧;以及将第二标签指派给各自包括表征热词的剩余语音成分的一个或多个相应的音频特征的剩余输入帧。在其他配置中,对于每个训练输入音频序列,训练记忆神经网络包括:在训练的第一级期间,通过将标签指派给所对应的训练输入音频序列的输入帧来预训练编码器部分;以及在训练的第二级期间,用来自训练的第一级的所指派的标签初始化编码器部分并且用来自编码器部分的输出训练解码器部分以检测热词或不检测热词。

记忆神经网络可以包括设置在相邻SVDF层之间的至少一个附加处理层。记忆神经网络包括设置在相邻SVDF层之间的至少一个瓶颈层。在一些示例中,每个输入帧的二重奏特征包括对数过滤器组(log-filterbanks)。例如,每个输入帧可以包括四十个对数过滤器组。

本公开的另一方面提供一种用于在流音频中检测音频的系统。该系统包括:用户设备的数据处理硬件;和存储器硬件,该存储器硬件与数据处理硬件通信并存储指令,这些指令当由数据处理硬件执行时使数据处理硬件执行操作。这些操作包括:接收输入帧的序列,每个输入帧包括表征由用户设备捕获的流音频的相应的音频特征;以及使用记忆神经网络来生成指示在流音频中存在热词的概率分数。记忆神经网络包括顺序堆叠单值分解过滤器(SVDF)层,其中,每个SVDF层包括至少一个神经元。每个神经元包括相应的存储器组件、第一级和第二级。相应的存储器组件与对应神经元的相应的存储器容量相关联。第一级被配置成单独地对每个输入帧的相应的音频特征执行过滤并且将过滤后的音频特征输出到相应的存储器组件。第二级被配置成对驻留在相应的存储器组件中的所有过滤后的音频特征执行过滤。这些操作也包括:确定概率分数是否满足热词检测阈值;以及当概率分数满足热词检测阈值时,在用户设备上发起唤醒过程以用于处理热词和/或音频流中紧跟该热词之后的一个或多个其他词语。

这个方面可以包括以下任选特征中的一个或多个。在一些实施方式中,与用于来自SVDF层中的每一个的神经元的相应的存储器组件相关联的存储器容量的和为记忆神经网络提供与一般讲话者讲出热词花费的时间长度成比例的固定存储器容量。在一些示例中,与相应的存储器组件中的至少一个相关联的相应的存储器容量不同于与剩余存储器组件相关联的相应的存储器容量。在其他示例中,与所有SVDF层的相应的存储器组件相关联的相应的存储器容量是相同的。

在一些示例中,远程系统在多个训练输入音频序列上训练记忆神经网络。在这些示例中,每个训练输入音频序列包括:输入帧的序列,每个输入帧包括表征热词的语音成分的一个或多个相应的音频特征;以及指派给输入帧的标签,每个标签指示相应的输入帧的音频特征包括热词的语音成分的概率。在一些配置中,对于每个训练输入音频序列,训练记忆神经网络包括:通过将第一标签指派给包括热词的语音成分的输入帧的一部分并且将第二标签指派给包括热词的语音成分的输入帧的剩余部分来训练编码器部分;以及通过应用指示所对应的训练输入音频序列包括热词或不包括热词的标签来训练解码器部分。在这里,将第一标签指派给输入音频帧的部分可以包括:将第一标签指派给包括表征热词的最后语音成分的一个或多个相应的音频特征的至少一个输入帧;以及将第二标签指派给各自包括表征热词的剩余语音成分的一个或多个相应的音频特征的剩余输入帧。在其他配置中,对于每个训练输入音频序列,训练记忆神经网络包括:在训练的第一级期间,通过将标签指派给所对应的训练输入音频序列的输入帧来预训练编码器部分;以及在训练的第二级期间,用来自训练的第一级的所指派的标签初始化编码器部分并且用来自编码器部分的输出训练解码器部分以检测热词或不检测热词。

记忆神经网络可以包括设置在相邻SVDF层之间的至少一个附加处理层。记忆神经网络包括设置在相邻SVDF层之间的至少一个瓶颈层。在一些示例中,每个输入帧的二重奏特征包括对数过滤器组。例如,每个输入帧可以包括四十个对数过滤器组。

在附图和以下描述中阐述了本公开的一种或多种实施方式的细节。根据说明书和附图以及根据权利要求书,其他方面、特征和优点将是显而易见的。

附图说明

图1是用于训练记忆的神经网络并使用训练的记忆的神经网络来检测口头话语中的热词的示例系统的示意图。

图2是由检测热词的模型使用的一般神经网络声学编码器的组件的示意图。

图3A是图1的系统的记忆神经网络的示例组件的示意图。

图3B是具有多层的记忆神经网络的示例组件的示意图。

图4A和图4B是示出从用于训练神经网络的流音频生成的音频特征标签对的示意图。

图5A和5B是图1的系统的记忆神经网络的各层的示意图。

图6是用于在流音频中检测热词的方法的示例操作布置的流程图。

图7是可用于实现本文描述的系统和方法的示例计算设备的示意图。

在各个附图中,相似的附图标记指示相似的元件。

具体实施方式

支持话音的设备(例如,执行话音助理的用户设备)允许用户大声讲出查询或命令并且处理和回答该查询和/或基于该命令来执行功能。通过使用“热词(hotword)”(也称为“关键词”、“注意词”、“唤醒短语/单词”、“触发短语”或“话音动作发起命令”),其中通过协定保留了被讲出以引起支持话音的设备注意的预定词语/短语,支持话音的设备能够辨别针对系统的话语(即,用于发起唤醒过程以用于处理话语中紧跟该热词之后的一个或多个词语)和针对环境中的个人的话语。通常,支持话音的设备在睡眠状态下操作以保存电池电力,并且除非输入音频数据遵循讲出的热词,否则不处理输入音频数据。例如,在处于睡眠状态的同时,支持话音的设备经由麦克风捕获输入音频并且使用被训练来检测在输入音频中存在热词的热词检测器。当在输入音频中检测到热词时,支持话音的设备将发起唤醒过程以用于处理热词和/或输入音频中紧随热词之后的任何其他词语。

热词检测类似于大海捞针,因为热词检测器必须连续地侦听流音频,并且当在流音频中检测到单词的存在时正确地且立即触发。换句话说,除非检测到热词的存在,否则热词检测器的任务是忽略流音频。神经网络通常被热词检测器采用来解决在连续音频流中检测热词的存在的复杂性。热词检测器通常包括三个主要组件:信号处理前端;神经网络声学编码器;和人工设计的解码器。信号处理前端可以将由用户设备的麦克风捕获的原始音频信号转换成被格式化以供由神经网络声学编码器组件处理的一个或多个音频特征。例如,神经网络声学编码器组件可以将这些音频特征转换成音素,并且手工设计的解码器使用手工代码化算法来将音素拼接在一起以提供音频序列是否包括热词的概率。通常,这三个组件被彼此独立地训练和/或人工地设计,从而与联合地训练所有组件相比,在训练期间产生附加复杂性和效率损失。此外,部署由独立地训练的模型构成的模型消耗附加资源要求(例如,处理速度和存储器消耗)。检测不同热词以及在不同地区中检测相同热词常常需要单独的模型。例如,南非的英语讲话者发短语“Ok Google(好的谷歌)”的音可能不同于位于北达科他州的美国的英语讲话者。

本文的实施方式针对端到端热词检出系统(也称为“关键词检出系统(keywordspotting system)”),该端到端热词检出系统将编码组件和解码组件两者训练成单个记忆神经网络以确定在流音频中存在指定热词的概率。可以训练此单个记忆神经网络来检测多个热词,以及检测在不同语言和/或不同地区中讲出的同一热词。具体地,记忆神经网络是指具有与神经网络想要记住过去的流音频量成比例的固定存储器量的神经网络拓扑。例如,可能期望神经网络仅具有足够的存储器来记住与一般讲话者讲出指定热词花费的时间相当的流音频量。在一些实施方式中,记忆神经网络拓扑是单值分解过滤器(SVDF)层的分层拓扑,其中每个层包括一个或多个SVDF神经元。每个层的每个SVDF神经元包括相应的存储器容量并且所有SVDF层的存储器容量另外组成用于神经网络仅记住流音频中捕获表征热词的音频特征所必需的固定时间长度的总固定存储器。每个神经元页可以包括适当的激活函数(例如,整流线性)。附加地,由于每个SVDF层的输出是后续SVDF层的输入,所以瓶颈层可以设置在一个或多个相邻SVDF层之间以缩放馈送给后续SVDF层的输入的数目。

参考图1,在一些实施方式中,示例系统100包括各自与相应的用户10相关联并且经由网络104与远程系统110通信的一个或多个用户设备102。每个用户设备102可以对应于计算设备,诸如移动电话、计算机、可穿戴设备、智能器具、智能扬声器等,并且被配备有数据处理硬件103和存储器硬件105。远程系统110可以为单个计算机、多个计算机或具有可伸缩/弹性计算资源112(例如,数据处理硬件)和/或存储资源114(例如,存储器硬件)的分布式系统(例如,云环境)。用户设备102经由网络104从远程系统110接收训练后的记忆神经网络300并且执行训练后的记忆神经网络300以在流音频118中检测热词。训练后的记忆神经网络300可以驻留在用户设备102的热词检测器106(也称为热词器)中,该热词检测器106被配置成在不用对流音频118执行语义分析或语音辨识处理的情况下在流音频中检测热词的存在。任选地,训练后的记忆神经网络300可以附加地或任选地驻留在用户设备102和/或远程系统110的自动语音辨识器(ASR)108中以确认热词检测器106在流音频118中正确地检测到热词的存在。

在一些实施方式中,数据处理硬件112使用从带注释的话语池130获得的训练样本400来训练记忆神经网络300。带注释的话语池130可以驻留在存储器硬件114和/或一些其他远程存储器位置上。在所示的示例中,当用户10讲出包括由用户设备102作为流音频118捕获的热词(例如,“Hey Google(嘿谷歌)”)的话语120时,在用户设备102上执行的记忆神经网络300被配置成在话语120中检测热词的存在,以在用户设备102上发起唤醒过程以用于处理热词和/或话语120中紧跟该热词之后的一个或多个其他词语(例如,查询或命令)。在附加实施方式中,用户设备102将话语120发送到远程系统110以进行附加处理或验证(例如,用另一可能更加计算密集的记忆神经网络300进行)。

在所示的示例中,记忆神经网络300包括各自包括单值分解过滤器(SVDF)层302的分层拓扑的编码器部分310和解码器部分311。SVDF层302通过给每个SVDF层302提供存储器容量来为神经网络提供存储器,使得所有SVDF层302的存储器容量附加地组成用于神经网络300仅记住流音频118中捕获表征热词的音频特征410(图4A和图4B)所必需的固定时间长度的总固定存储器。

现在参考图2,一般的热词检测器使用没有存储器的神经网络声学编码器200。因为网络200缺少存储器,所以声学编码器200的每个神经元212必须同时地接受口头话语120的每一帧210、210a-d的每一音频特征作为输入。注意,每个帧210能够具有任何数目的音频特征,神经元212接受每个音频特征作为输入。这样的配置需要基本大小的神经网络声学编码器200,该基本大小随着固定时间长度增加和/或音频特征的数目增加而急剧地增加。声学编码器200的输出产生例如热词的每个音素已被检测到的概率。声学编码器200然后必须依靠手工代码化解码器来处理声学编码器200的输出(例如,将音素拼接在一起)以便生成指示热词的存在的分数(即,估计)。

现在参考图3A和图3B,在一些实施方式中,单值分解过滤器(SVDF)神经网络300(也称为记忆神经网络)具有任何数目的神经元/节点312,其中每个神经元312一次仅接受口头话语120的单个帧210、210a-d。也就是说,如果每个帧210例如构成30ms音频数据,则相应的帧210大约每30ms(即,时间1、时间2、时间3、时间4等)被输入到神经元312。图3A示出包括两级过滤机制的每个神经元312,该两级过滤机制是:在输入的特征维度上执行过滤的第一级320(即,第1级特征过滤器)以及在时间维度上对第一级320的输出执行过滤的第二级340(即,第2级时间过滤器)。然后将处理的结果放置在存储器组件330中。可按节点或按层级别配置存储器组件330的大小。在第1级特征过滤器320处理给定帧210(例如,通过对帧内的音频特征进行过滤)之后,将过滤后的结果放置在存储器组件330的下一个可用的存储器位置332、332a-d中。一旦所有存储器位置332都被填充,第1级特征过滤器320将覆写在存储器组件330中存储最旧过滤后的数据的存储器位置332。注意,出于说明性目的,图3A示出大小为四(四个存储器位置332a-d)和四个帧210a-d的存储器组件330,但是由于热词检测的性质,系统100将通常连续地监视流音频118,使得每个神经元312将沿着流水线“滑动”或类似于流水线处理帧210。换句话说,如果各级包括N个特征过滤器320和N个时间过滤器340(各自与输入特征帧210的大小匹配),则该层类似于通过按特征帧的大小的步幅在输入特征帧210上使N个过滤器320、340中的每一个滑动来计算特征过滤器的N x T(T等于固定时间段中的帧210的数目)个卷积。例如,由于该示例示出在第1级特征过滤器输出与帧4(F4)210d(在时间4期间)相关联的过滤后的音频特征之后的容量下的存储器组件330,所以第1级特征过滤器320通过重写与存储器位置332a内的帧1(F1)210a相关联的过滤后的音频特征来将与后面的帧5(F5)(在时间5期间)相关联的过滤后的音频特征放置到存储器330中。以这种方式,第2级时间过滤器340对从第1级特征过滤器320输出的先前T-1(T再次等于固定时间段中的帧210的数目)应用过滤。

第2级时间过滤器340然后对存储在存储器330中的每个过滤后的音频特征进行过滤。例如,图3A示出每当第1级特征过滤器320将新的过滤后的音频特征存储到存储器330中时第2级时间过滤器340对四个存储器位置332中的每一个中的音频特征进行过滤。以这种方式,第2级时间过滤器340总是在对许多过去的帧210进行过滤,其中数目与存储器330的大小成比例。每个神经元312是单个SVDF层302的一部分,并且神经网络300可以包括任何数目的层302。每个第2级时间过滤器340的输出被传递到下一个层302中的神经元312的输入。层302的数目和每层302的神经元312的数目是完全可配置的并且依赖于可用资源和期望大小、能力和准确性。本公开不限于SVDF层302的数目,也不限于每个SVDF层302中的神经元312的数目。

现在参考图3B,神经网络300的每个SVDF层302、302a-n(或简称为“层”)被连接为使得先前层的输出被接受为对应层302的输入。在一些示例中,最终层302n输出指示话语120包括热词的概率的概率分数350。

在SVDF网络300中,层设计来自以下构思:正在处理输入帧210的序列的密集连接层302能够通过使用其节点312中的每一个的奇异值分解来近似。近似是可配置的。例如,秩R近似表示为层的过滤器扩展新的维度R:第1级独立地发生,而在第2级中,所有秩的输出得以在通过非线性之前相加。换句话说,匹配维度的密集连接层的节点312的SVDF分解能够用于初始化SVDF层302,这提供原则性初始化并提高层泛化的质量。本质上,较大的密集连接层的“能力”被转移到潜在(取决于秩)小得多的SVDF中。然而,注意,SVDF层302不需要初始化来以相同或甚至更多的操作胜过密集连接或甚至卷积层。

因此,本文的实施方式针对有状态的可堆叠神经网络300,其中每个SVDF层302的每个神经元312包括与对音频特征进行过滤相关联的第一级320以及与对第一级320相对于时间的输出进行过滤相关联的第二级340。具体地,第一级320被配置成一次对一个音频特征输入帧210上的一个或多个音频特征执行过滤并且将过滤后的音频特征输出到相应的存储器组件330。在这里,第1级特征过滤器320接收与时间帧210相关联的一个或多个音频特征作为用于处理的输入并且将经处理的音频特征输出到SVDF层302的相应的存储器组件330中。此后,第二级340被配置成对从第一级320输出并驻留在相应的存储器组件330中的所有过滤后的音频特征执行过滤。例如,当相应的存储器组件330等于八(8)时,第二级340将上拉到驻留在存储器组件330中的最后八(8)个过滤后的音频特征,该最后八(8)个过滤后的音频特征在对八(8)个输入帧210的序列内的音频特征进行单独过滤期间被从第一级320输出。随着第一级320将相应的存储器组件330填充到容量,包含最旧过滤后的音频特征的存储器位置332被覆写(即,先进先出)。因此,取决于在SVDF神经元312或层302处的存储器组件330的容量,第二级340能够记住由所对应的SVDF层302的第一级320处理的许多过去的输出。此外,由于在SVDF层302处的存储器组件330是加性的,所以在每个SVDF神经元312和层302处的存储器组件330也包括每个在前的SVDF神经元312和层302的存储器,从而扩展记忆神经网络300的整体接受场。例如,在具有四个SVDF层302的神经网络300拓扑中,每个SVDF层302具有存储器组件330等于八(8)的单个神经元312,最后SVDF层302将包括多达由神经网络300单独地过滤的最后三十二(32)个音频特征输入帧210的序列。然而,注意,可按层302或甚至按节点312配置存储器量。例如,第一层302a可以被分配三十二(32)个位置332,而最后层302可以被配置有八(8)个位置332。结果,堆叠SVDF层302允许神经网络300一次仅处理一个输入帧210(例如,30毫秒音频数据)的音频特征并且将许多过滤后的音频特征并入到捕获在流音频118中捕获指定热词所必需的固定时间长度的过去中。对比起来,没有存储器的神经网络200(如图2中所示)将需要其神经元212立即处理覆盖固定时间长度(例如,2秒音频数据)的所有音频特征帧,以便确定流音频包括热词的存在的概率,这大大增加网络的整体大小。此外,虽然使用长短期记忆(LSTM)的递归神经网络(RNN)提供存储器,但是RNN-LSTM使神经元在每个处理实例之后连续地更新其状态,从而实际上具有无限的存储器,从而防止记住过去有限数目的处理的输出,其中每个新的输出重写前一个输出(一旦固定大小存储器达到容量)。换句话说,SVDF网络不会将输出重现到状态(存储器)中,也不会在每次迭代时都重写所有状态;替代地,存储器使每个推理运行的状态保持与后续运行隔离,而是基于为该层配置的存储器大小推送和突然访问新条目。

现在参考图4A和图4B,在一些实施方式中,在多个训练输入音频序列400(即,训练样本)上训练记忆神经网络300,每个训练输入音频序列包括输入帧210、210a-n的序列和指派给输入帧210的标签420。每个输入帧210包括表征热词的语音成分430的一个或多个相应的音频特征410,并且每个标签420指示相应的输入帧210的一个或多个音频特征410包括热词的语音成分430的概率。在一些示例中,在预处理阶段404期间从音频流118的原始音频信号402转换每个输入帧210的音频特征410。音频特征410可以包括一个或多个对数过滤器组。因此,预处理阶段可以将音频流118(或口头话语120)分段成输入帧210的序列(例如,各30ms),并且为每个帧210生成单独的对数过滤器组。例如,可以通过四十个对数过滤器组来表示每个帧210。此外,每个连续的SVDF层302接收相对于时间从紧接在前的SVDF层302输出的过滤后的音频特征410作为输入。

在所示的示例中,每个训练输入音频序列400与训练样本相关联,该训练样本包括包含在固定时间长度(例如,2秒)内出现的指定热词的带注释的话语。也可以可选地在不包括指定热词或者包括指定热词但是横跨比固定时间长度长的时间并且因此不会由于固定存储器忘记在固定时间长度外的数据而被错误到检测到的带注释的话语400上训练记忆神经网络300。在一些示例中,固定时间长度对应于一般讲话者将讲出指定热词以召唤用户设备102以处理口头查询和/或话音命令花费的时间量。例如,如果指定热词包括短语“HeyGoogle”或“Ok Google”,则设置为等于两秒的固定时间长度很可能是足够的,因为即使慢讲话者也通常不会花费超过两秒钟来讲出指定短语。因此,由于重要的是仅在固定时间长度内检测在流音频118中出现指定热词,所以神经网络300包括与横跨固定时间(例如,两秒)的音频量成比例的固定存储器量。因此,神经网络300的固定存储器允许神经网络的神经元312一次对来自流音频118的一个输入帧210(例如,30ms时间窗口)的音频特征410(例如,对数过滤器组)进行过滤,同时存储横跨固定时间长度的最近过滤后的音频特征410并且从当前过滤迭代中去除或删除在固定时间长度外的任何过滤后的音频特征410。因此,如果神经网络300具有例如三十二(32)的存储器深度,则由神经网络300处理的前三十二(32)个帧会将存储器组件330填充到容量,并且对于在前32个之后的每个新输出,神经网络300将从存储器组件330的对应的存储器位置332中去除最旧处理的音频特征。

参考图4A,对于端到端训练,训练输入音频序列400a包括可以被应用于每个输入帧210的标签420。在一些示例中,当训练样本400a包含热词时,与目标分数(例如,‘1’)相关联的目标标签420被应用于包含表征在热词结尾处或附近的语音成分430的音频特征410的一个或多个输入帧210。例如,如果热词“OK Google”的语音成分430被分成:“ou”、“k”、“eI”、“”、‘g’、‘u’、‘g’、‘@’、‘l’,则将数字‘1’的目标标签应用于与字母‘l’(即,热词的最后成分430)相对应的所有输入帧210,所有输入帧210都是热词的语音成分430的所需序列的一部分。在这种场景中,所有其他输入帧210(不与最后语音成分430相关联)被指派了不同的标签(例如,‘0’)。因此,每个输入帧210包括对应的输入特征标签对410、420。输入特征410通常是与例如遍及输入帧210根据输入音频来计算的梅尔过滤器组或对数过滤器组相对应的一维张量。标签420是从带注释的话语400a生成的,其中每个输入特征张量410经由强迫对准步骤被指派了语音类(即,将标签‘1’赋予与属于热词的最后类相对应的对,并且将‘0’赋予所有其余部分)。因此,训练输入音频序列400a包括被指派给输入帧的序列的二进制标签。带注释的话语400a或训练输入音频序列400a对应于从图1的带注释的话语池130获得的训练样本400。

在另一实施方式中,图4B包括训练输入音频序列400b,该训练输入音频序列400b包括与随着表征热词的(匹配)语音成分430的音频特征410的数目进步而沿着输入帧210的序列增加的分数相关联的标签420。例如,当热词包括“Ok Google”时,包括表征第一语音成分‘o’和‘k’的相应的音频特征410的输入帧210已指派了‘1’的标签420,然而包括表征‘1’的最终语音成分的相应的音频特征410的输入帧210已指派了‘5’的标签420。包括表征中间语音成分430的相应的音频特征410的输入帧210已指派了‘2’、‘3’和‘4’的标签。

在附加实施方式中,肯定标签420的数目增加。例如,从包括表征热词的最终语音成分430的音频特征410的第一帧210开始生成固定量的‘1’标签420。在此实施方式中,当所配置的肯定标签420(例如,‘1’)的数目大时,可以将肯定标签420应用于帧210,否则该帧将被应用非肯定标签420(例如,‘0’)。在其他示例中,修改肯定标签420的开始位置。例如,可以使标签420移位以在包含最终关键词语音成分430的帧210的分段的开始、中点或结尾处开始。仍然在其他示例中,权重损失与输入序列相关联。例如,权重损失数据被添加到输入序列,该输入序列允许训练程序减少由小未对准引起的损失(即,误差梯度)。具体地,在基于帧的损失函数情况下,损失可能是由错误分类或错误对准引起的。为了减少损失,神经网络300预测正确的标签420和标签420的正确的位置(定时)两者。即使网络300在某个时刻检测到关键词,如果结果未与给定目标标签420完美地对准,也能够将结果认为是错误。因此,对损失进行加权对于在强迫对准阶段期间有错误对准的高可能性的帧210来说是特别有用的。

作为使用4A和图4B的训练输入音频序列400a、400b中的任何一个来训练的结果,神经网络300被优化(通常使用交叉熵(CE)损失)以输出指示在流音频118中是否存在热词的二元判定标签420。在一些示例中,在两个阶段中训练网络300。现在参考图5A,示意图500a示出包括例如八层的神经网络300的编码器部分(或简称为“编码器”)310a,这八层被单独地训练以产生声学后验概率。除了SVDF层之外,网络300可以例如包括瓶颈层、softmax层和/或其他层。为了训练编码器310a,标签生成将不同的类指派给热词的所有语音成分(对于不为热词的所有语音成分加上静默和“ε(epsilon)”目标。然后,通过创建第一部分(即,层和连接)与编码器310a的第一部分匹配并且从神经网络300的该编码器310a选择的检查点用于初始化它的拓扑来训练神经网络300的解码器部分(或简称为“解码器”)311a。训练被指定以“冻结”(即,不更新)编码器310a的参数,从而仅调谐拓扑的解码器311a部分。即使这是两个交错训练流水线的产物,它也自然地产生单个检出器神经网络。用此方法训练在往往对训练集的各部分呈现过度拟合的模型上是特别有用的。

替换地,从开始就端对端训练神经网络300。例如,神经网络300直接接受特征(类似于先前描述的编码器310a训练),但是替代地使用二元目标标签420(即,‘0’或‘1’)输出以供在训练训练解码器311a时使用。这样的端到端神经网络300可以使用任何拓扑。例如,如图5B中所示,除了编码器310b不包括中间softmax层之外,示意图500b示出与图5A的拓扑类似的编码器310b和解码器311b的神经网络300拓扑。与图5A的拓扑一样,图5B的拓扑可以使用具有适配率的预训练编码器检查点来调谐解码器311b部分如何被调整(例如如果适配率被设置为0,则它相当于图5A拓扑)。调整全体拓扑的参数的这种端到端流水线往往胜过图5A的单独地训练的编码器310a和解码器311a,特别是在往往不会过度拟合的较小尺寸的模型中。

因此,神经网络300避免使用手工地调谐的解码器。手工调谐解码器增加改变或添加热词时的难度。能够训练单个记忆神经网络300以检测多个不同的关键词以及跨两个或更多个地区的相同关键词。另外,与专门地为用潜在数百万个示例训练的热词检测而优化的网络相比,检测质量降低。另外,一般的手工地调谐的解码器比执行编码和解码两者的单个神经网络更复杂。传统系统往往过度参数化,从而与可比较的端到端模型比消耗显著更多的存储器和计算,并且它们无法利用同样多的神经网络加速硬件。附加地,手工调谐的解码器遭受带口音的话语影响,并且使得极其难以创建能够跨多个地区和/或语言工作的检测器。

记忆神经网络300胜过相同大小的简单全连接层,但是也受益于任选地初始化来自预训练的全连接层的参数。网络300允许对要从过去记住多少东西进行精细控制。这导致对于未受益于关注理论上无限的过去(例如连续地侦听流音频)(且实际上受伤害)的某些任务胜过RNN-LSTM。然而,网络300能够与RNN-LSTM协同工作,通常对于较低层利用SVDF,从而对过去有噪声的低级特征进行过滤,而对于较高层利用LSTM。考虑到若干相对较小的过滤器包括SVDF,参数的数目和计算被精细地控制。这在质量与大小/计算之间选择权衡时是有用的。此外,由于这种质量,网络300允许创建胜过像较大粒度操作的简单卷积神经网络(CNN)这样的其他拓扑的非常小的网络。

图6是针对在流音频118中检测热词的方法600的操作的示例布置的流程图。该流程图通过在用户设备102的数据处理硬件103处接收输入帧210的序列在操作602处开始,每个输入帧包括表征由用户设备102捕获的流音频118的相应的音频特征410。每个输入帧210的音频特征410可以包括对数过滤器组。例如,每个输入帧210可以包括四十个对数过滤器组。在操作604处,方法600包括由数据处理硬件103、使用包括顺序堆叠SVDF层302的记忆神经网络300来生成指示在流音频118中存在热词的概率分数350,其中,每个SVDF层302包括至少一个神经元312,并且每个神经元312包括相应的存储器组件330,该相应的存储器组件330与对应神经元312的相应的存储器容量相关联。每个神经元312也包括第一级320和第二级340。第一级320被配置成单独地对每个输入帧210的音频特征410执行过滤并且将过滤后的音频特征410输出到相应的存储器组件330。第二级340被配置成对驻留在相应的存储器组件330中的所有过滤后的音频特征410执行过滤。神经网络300可以包括设置在相邻SVDF层302之间的至少一个附加处理层。在一些示例中,神经网络300包括设置在相邻SVDF层302之间的至少一个瓶颈层。瓶颈层用于显著地减少各层之间的参数计数。

在一些示例中,与用于来自SVDF层302中的每一个的神经元312的相应的存储器组件330相关联的存储器容量的为给神经网络300提供与一般讲话者讲出热词花费的时间长度成比例的固定存储器容量。与相应的存储器组件330中的至少一个相关联的相应的存储器容量可以不同于与剩余存储器组件330相关联的相应的存储器容量。替换地,与所有SVDF层302的神经元312的相应的存储器组件330相关联的相应的存储器容量是相同的。

在操作606处,方法600包括由数据处理硬件103确定概率分数350是否满足热词检测阈值。当概率分数350满足热词检测阈值时,方法600包括在操作608处,由数据处理硬件103在用户设备102上发起唤醒过程以用于处理热词和/或音频流118中紧跟该热词之后的一个或多个其他词语。

在一些实施方式中,具有计算资源112和存储器资源113的远程系统110被配置成在多个训练输入序列400上训练神经网络300,每个训练输入音频序列400包括输入帧210的序列,每个输入帧包括表示表征热词的语音成分430的一个或多个相应的音频特征410。每个训练输入音频序列400也包括被指派给输入帧210的标签420,每个标签420指示相应的输入帧210的音频特征410包括热词的语音成分430的概率。在附加示例中,训练神经网络300包括,对于每个训练输入音频序列400,通过将第一标签420指派给包括热词的语音成分430的输入帧210的一部分来训练编码器部分310b。训练也包括将第二标签420指派给包括热词的语音成分430的输入帧210的剩余部分并且通过应用指示所对应的训练输入音频序列400包括热词或不包括热词的标签420来训练解码器部分311b。将第一标签420指派给输入帧210的部分可以包括将第一标签420指派给包括表征热词的最后语音成分430的一个或多个相应的音频特征410的至少一个输入帧210并且将第二标签420指派给各自包括表征热词的剩余语音成分的一个或多个相应的音频特征410的剩余输入帧210。

在一些实施方式中,方法600包括通过在训练的第一级320期间通过将标签420指派给所对应的训练输入音频序列400的输入帧210以预训练编码器部分310a,来训练神经网络300 400。在训练的第二级340期间,方法600包括用来自训练的第一级的所指派的标签420初始化编码器部分310a并且用来自编码器部分310的输出训练解码器部分311a以检测热词或不检测热词。

软件应用(即,软件资源)可以指使计算设备执行任务的计算机软件。在某些示例中,软件应用可以称为“应用”、“app”或“程序”。示例应用包括但不限于系统诊断应用、系统管理应用、系统维护应用、文字处理应用、电子表格应用、消息传递应用、媒体流应用、社交网络应用以及游戏应用。

非暂时性存储器可以是用于基于临时或永久的存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备使用的物理设备。非易失性存储器可以是易失性和/或非易失性可寻址半导体存储器。非易失性存储器的示例可以包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦可编程只读存储器(EPROM)/电子可擦可编程只读存储器(EEPROM)(例如,通常用于固件,诸如启动程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。

图7是可用于实现本文档中所述的系统和方法的示例计算设备700的示意图。计算设备700旨在代表各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机以及其它适当的计算机。本文所示的组件、它们的连接和关系以及它们的功能仅是例证性的,并不意味着限制本文档中描述和/或要求保护的发明的实施方式。

计算设备700包括处理器710、存储器720、存储设备730、连接到存储器720和高速扩展端口750的高速接口/控制器740,以及连接到低速总线770和存储设备730的低速接口/控制器760。组件710、720、730、740、750和760中的每个组件使用各种总线互连,并且可以安装在公共主板上或以其它适当的方式安装。处理器710能够处理用于在计算设备700内执行的指令,包括存储在存储器720中或存储在存储设备730上的指令,以在诸如耦合到高速接口740的显示器780之类的外部输入/输出设备上显示用于图形用户界面(GUI)的图形信息。在其它实施方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和存储器类型。而且,可以连接多个计算设备700,其中每个设备提供必要操作的部分(例如,作为服务器组、刀片服务器组或多处理器系统)。

存储器720在计算设备700内非暂时性地存储信息。存储器720可以是计算机可读介质、易失性存储器单元或非易失性存储器单元。非暂时性存储器720可以是用于临时或永久地存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备700使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦可编程只读存储器(EPROM)/电子可擦可编程只读存储器(EEPROM)(例如,通常用于固件,诸如启动程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。

存储设备730能够为计算设备700提供大容量存储。在一些实施方式中,存储设备730是计算机可读介质。在各种不同的实施方式中,存储设备730可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其它类似的固态存储设备,或设备阵列,包括在存储区域网络或其它配置中的设备。在另外的实施方式中,计算机程序产品有形地体现为信息载体。该计算机程序产品包含在被执行时执行一种或多种方法,诸如上述那些方法的指令。信息载体是计算机或机器可读介质,诸如存储器720、存储设备730或处理器710上的存储器。

高速控制器740管理计算设备700的带宽密集型操作,而低速控制器760管理较低带宽密集型操作。这种职责分配仅是例证性的。在一些实施方式中,高速控制器740耦合到存储器720、显示器780(例如,通过图形处理器或加速器)和可以接受各种扩展卡(未示出)的高速扩展端口750。在一些实施方式中,低速控制器760耦合到存储设备730和低速扩展端口790。可能包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口790可以例如通过网络适配器耦合到一个或多个输入/输出设备,例如键盘、定点设备、扫描仪或网络设备,例如交换机或路由器。

如图所示,可以以多种不同形式来实现计算设备700。例如,计算设备700可以被实现为标准服务器700a或在一组这样的服务器700a中多次实现,被实现为膝上型计算机700b或被实现为机架服务器系统700c的一部分。

本文所述的系统和技术的各种实施方式能够以数字电子和/或光学电路、集成电路、专门设计的ASIC(应用专用集成电路)、计算机硬件、固件、软件和/或其组合实现。这些各种实施方式能够包括在一个或多个计算机程序中的实现,该计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用的或通用的,耦合以从存储系统、至少一个输入设备以及至少一个输出设备接收数据和指令,并将数据和指令发送到这些设备。

这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且能够以高级过程和/或面向对象的编程语言和/或以汇编/机器语言实现。本文中使用的术语“机器可读介质”和“计算机可读介质”是指任何计算机程序产品、非暂时性计算机可读介质、用于向可编程处理器提供机器指令和/或数据的装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。

本说明书中所述的过程和逻辑流程能够由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能的一个或多个可编程处理器(也被称为数据处理硬件)来执行。过程和逻辑流程也能够由专用逻辑电路执行,该专用逻辑电路例如FPGA(现场可编程门阵列)或ASIC(应用专用集成电路)。例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备例如磁盘、磁光盘或光盘,或可操作地耦合至大容量存储设备以从中接收数据或对其传输数据,或者两者。然而,计算机不必具有此类设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器能够由专用逻辑电路补充或被并入专用逻辑电路中。

为了提供与用户的交互,本公开的一个或多个方面能够在具有显示设备和可选的键盘与定点设备的计算机上实现,显示设备例如是CRT(阴极射线管)、LCD(液晶显示器)监视器或触摸屏,以向用户显示信息,定点设备例如为鼠标和轨迹球,用户能够通过其向计算机提供输入。其它类型的设备也能够用于提供与用户的交互;例如,提供给用户的反馈能够为任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机能够通过向用户使用的设备发送文档以及从用户使用的设备接收文档来与用户进行交互;例如,通过响应于从web浏览器收到的请求,将网页发送到用户客户端设备上的web浏览器。

已经描述了许多实施方式。然而,应理解,在不脱离本公开的精神和范围的情况下,可以做出各种修改。因而,其它实施方式也在所附权利要求的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号