用异步解码器流式传输端到端语音识别的系统和方法与流程



1.本发明总体上涉及一种语音识别系统,更具体地,涉及一种用于具有低延时要求的自动语音识别应用的具有联合帧同步解码(fsd)和标签同步解码(lsd)的流式传输端到端语音识别的方法和系统。


背景技术:



2.自动语音识别(asr)系统被广泛地部署用于诸如基于语音的搜索之类的各种接口应用。近年来,端到端和序列到序列神经网络模型在asr界得到了越来越多的关注和普及。端到端asr系统的输出通常是字素序列,该字素序列可以是单个字母,或者是诸如单词片段、完整单词或句子片段之类的较大单位。端到端asr的吸引力在于:与传统asr系统相比,端到端asr由于其主要由神经网络组件组成而实现了简化的系统结构,并且避免了构建asr系统所需的语言专家知识。这种端到端asr系统可以直接学习语音识别器的包括发音模型、声学模型和语言模型在内的所有组件,这避免了对特定语言的语言信息和标记化的需要。
3.用于端到端asr系统的序列到序列模型主要基于两类神经网络输出范式,即,适用于帧同步解码(fsd)的具有逐帧决策的神经网络和使用标签同步解码(lsd)的具有逐标签决策的神经网络。具有fsd的端到端asr系统更适合于流传输/在线asr应用,其中asr输出可以在每个口语单词之后立即以低延迟生成。然而,基于lsd的asr系统(其在语音识别中经常表现出优异的结果)不太适合于在线/流传输asr应用,这是因为通常由于在解码之前丢失对准信息(即,缺少关于输入序列是否包含足够信息以生成下一输出令牌的信息)而需要整个语音话语作为输入。
4.因此,fsd和lsd是异步解码器。可能地,在不需要流式传输端到端语音识别的应用中,与每个单个神经网络模型相比,fsd神经网络和lsd神经网络的组合可以实现更低的单词错误率。然而,这些asr系统需要fsd神经网络和lsd神经网络之间的同步,以便使asr系统能够实现“实时”语音识别。
5.因此,需要有效地同步fsd神经网络和lsd神经网络,以便为“实时”/在线/流应用实现基于组合的fsd-lsd的asr。


技术实现要素:



6.自动语音识别(asr)系统面临其中将音频样本的输入序列或从音频帧提取的声学特征的序列映射到字符的输出序列的序列到序列建模问题。用于这种序列到序列映射的一些方法限于离线asr应用,其中整个语音话语可用于识别过程。这种方法不能应用于具有低延时约束的在线/流式传输asr系统中。一些实施方式的目的是通过使帧同步解码器(fsd)模块和标签同步解码器(lsd)模块同步来实现用于“实时”应用的asr系统。流应用可以是需要“实时”转录语音信号的任何应用,例如,在正在进行的呼叫、正在进行的演讲、正在进行的对话中转录语音话语,或者检测和识别语音命令。此外,一些实施方式的目的是通过减少由lsd模块引入的输出延迟并提高由fsd模块以及lsd模块生成的话语转录的准确性来改进
lsd模块的性能。
7.一些实施方式基于这样的认识:基于lsd的asr系统需要观察完整的输入序列(其通常是由语音暂停分段的整个语音话语),以向输入序列的每个元素分配权重,从而识别输出序列的每个输出标签。例如,输出标签可以包括单个字母字符或字符序列,诸如单词或句子片段。由于缺乏关于输入序列的哪些部分与识别下一个输出标签相关的先验知识,并且需要向输入序列的每个元素分配权重,因此基于lsd的模块通常需要处理大的输入序列。这样的处理允许利用关注话语的不同部分的优点,但是也增加了输出延迟,并且因此对于以流式传输/在线方式的语音识别是不实际的。
8.如本文所使用的,基于lsd的asr的输出延迟是接收从语音话语提取的声学特征帧的时间与识别所接收声学帧中的一个或更多个输出标签的时间之间的差。例如,当基于lsd的asr系统对整个语音话语进行操作时,对话语中的一个或更多个标签的识别被延迟,直到接收到话语的最后一个单词为止。这种识别延迟导致输出延迟增加。
9.一些实施方式基于以下认识:关于输入序列的不同部分对识别下一输出标签的相关性的先验知识是与要从输入序列识别的标签相对应的声学帧的位置的指示。实际上,如果包括相关标签信息的声学帧的位置是已知的,则可以通过限制输入序列来引导基于lsd的模型仅关注这些位置而不是所有可能的位置。以这种方式,对于每个输出标签,基于lsd的模型可以将其关注集中在该标签在输入序列中的位置周围。这种引导的关注降低了处理大输入序列的需求,这又减少了输出延迟,使得基于lsd的模型对于以流式传输/在线方式识别语音话语是实用的。
10.一些实施方式基于这样的认识:帧同步解码器(fsd)模块可用于向lsd模块提供与输入序列中的字符相对应的声学帧的位置的指示。这允许lsd模块限制对输入序列的相关部分的关注,以便识别输出标签。基于fsd的模块针对输入序列的每个帧生成输出,即,输入序列和输出序列具有相同的长度。基于lsd的asr系统的性能可以优于基于fsd的asr系统。然而,一些实施方式基于这样的认识:基于fsd的asr系统的中间操作所使用的输入序列和输出序列对准可以由基于lsd的asr系统使用以解决上述一个或更多个问题。
11.一些实施方式是基于这样的认识:fsd模块和lsd模块可以在触发关注(ta)神经网络中被联合训练,以改进流式传输(或“实时”)应用的语音识别。ta神经网络可以包括编码器神经网络、fsd神经网络、lsd神经网络和同步模块。编码器神经网络被配置为将包括在声学特征帧中的声学信息编码成编码器状态序列。fsd模块被配置为每次连续地处理每个编码器状态,并且识别对由fsd模块维持的前缀列表和相关联的fsd评分列表进行更新的编码器状态。fsd模块可保留由先前编码器状态的处理产生的前缀列表和相关联的fsd评分列表。前缀列表和fsd评分列表在解码后续编码器状态时被更新。例如,fsd模块响应于识别携带关于新转录输出的信息的编码器状态而扩展当前的fsd前缀列表以产生候选的fsd前缀列表和由fsd模块维持的对应fsd评分。
12.同步模块用于将fsd模块生成的前缀列表提供给lsd模块。这使得lsd模块能够处理由fsd模块生成的相同前缀列表。这使得fsd模块和lsd模块在前缀域中同步。此外,同步模块还向lsd模块提供编码器状态的选定部分,该选定部分取决于由扩展了当前的fsd前缀列表的fsd模块识别的编码器状态。这使得lsd模块能够将关注放在编码器状态序列的选定部分上,而不是放在对应于整个语音话语的整个编码器状态序列上。这减少了lsd模块的输
出延迟并且同步了fsd模块和lsd模块的定时。以此方式,fsd模块和lsd模块在时域和前缀域中同步,以生成用于相同序列的编码器状态的话语转录。
13.一些实施方式基于这样的认识:联合评分模块可以生成由fsd模块和lsd模块解码的联合转录输出列表,并且进一步计算相关联的联合评分列表。联合评分模块可以基于联合fsd评分和lsd评分来修剪候选前缀列表。附加地或另选地,联合评分模块可以输出具有最高联合评分的前缀作为语音话语的当前部分的转录输出。
14.因此,一个实施方式公开了基于计算机的自动语音识别系统,其中,所述系统使用与实现所述系统的模块的存储指令联接的处理器,其中,执行指令的处理器被配置为:将传入的表示语音话语特征的声学帧流编码为经编码声学特征帧的编码器状态序列;并且用帧同步解码器(fsd)模块连续处理经编码声学特征帧的每个编码器状态直到满足终止条件为止,其中,fsd模块响应于识别携带关于新转录输出的信息的编码器状态而扩展当前的fsd前缀列表以产生候选的fsd前缀列表和对应fsd评分,其中,候选列表中的每个fsd前缀是fsd模块对由fsd模块处理的编码器状态中的经解码转录输出的估计,其中,fsd前缀是经解码转录输出的概率由对应的fsd评分定义,其中,响应于产生候选的fsd前缀列表,处理器被配置为选择编码器状态的包括由fsd模块识别的编码器状态的一部分,并且触发标签同步解码器(lsd)模块来处理编码器状态的选定部分,以根据lsd模块确定lsd评分,所述lsd评分定义候选fsd前缀列表中的fsd前缀为编码器状态的选定部分中的经解码转录输出的概率;根据由相应的fsd评分和lsd评分的组合定义的联合评分来修剪候选的fsd前缀列表;并用修剪的fsd前缀列表替换当前的fsd前缀列表,以继续解码下一个转录输出。
15.另一实施方式公开了一种非暂时性计算机可读存储介质,其上实现有包括可由处理器执行以执行自动语音识别的模块的程序,所述模块包括:编码器,其被配置为将传入的表示语音话语特征的声学帧流编码为经编码声学特征帧的编码器状态序列;帧同步解码器(fsd)模块,其被配置为连续处理经编码声学特征帧的每个编码器状态以响应于识别携带关于新转录输出的信息的编码器状态而扩展当前的fsd前缀列表,以产生候选的fsd前缀列表及对应fsd评分,候选列表中的每个fsd前缀是fsd模块对由fsd模块处理的编码器状态中的解码转录输出的估计,其中,fsd前缀为经解码转录输出的概率由对应的fsd评分定义;同步模块,其被配置成选择编码器状态的包括由fsd模块识别的编码器状态的一部分;标签同步解码器lsd模块,其被配置为处理编码器状态的选定部分以根据lsd模块将所述fsd前缀的fsd评分与定义fsd前缀是经解码转录输出的概率的对应lsd评分结合;联合评分模块,其被配置为根据联合的fsd评分和lsd评分对fsd前缀进行修剪,并用修剪后的fsd前缀列表替换当前的fsd前缀列表,以继续解码下一转录输出;以及输出接口,其被配置为输出具有最高联合评分的fsd前缀作为由所述fsd模块处理的编码器状态的传入声学帧流的解码转录输出。
16.又一实施方式公开了一种用于自动语音识别的方法,其中,该方法使用与实现该方法的存储指令联接的处理器,其中,当由所述处理器执行时,所述指令执行所述方法的步骤,所述步骤包括:将传入的表示语音话语特征的声学帧流编码成经编码声学特征帧的编码器状态序列;用帧同步解码器(fsd)模块连续处理经编码声学特征帧的每个编码器状态直到满足终止条件为止,其中,fsd模块响应于识别携带关于新转录输出的信息的编码器状态而扩展当前的fsd前缀列表以产生候选的fsd前缀列表和对应fsd评分,其中,候选列表中
的每个fsd前缀是fsd模块对由fsd模块处理的编码器状态中的经解码转录输出的估计,其中,fsd前缀为经解码转录输出的概率由对应的fsd评分定义;选择编码器状态的包括由所述fsd模块识别的编码器状态的一部分;触发标签同步解码器(lsd)模块来处理所述编码器状态的选定部分,以根据所述lsd模块确定lsd评分,所述lsd评分定义候选fsd前缀列表中的fsd前缀为编码器状态的选定部分中的解码转录输出的概率;根据由相应的fsd评分和lsd评分的组合定义的联合评分来修剪候选的fsd前缀列表;以及用修剪的fsd前缀列表替换当前的fsd前缀列表,以继续解码下一个转录输出。
附图说明
17.图1a示出根据一些实施方式的配置用于端到端语音识别的自动语音识别(asr)系统的示意图。
18.图1b示出了由帧同步解码器(fsd)模块、标签同步解码器(lsd)模块和联合评分模块生成的示例性前缀列表和相关联评分。
19.图1c示出了根据一些实施方式的自动语音识别方法的框图。
20.图1d示出了根据一些实施方式的fsd模块的示例性操作。
21.图1e示出了根据一些实施方式的限制编码器状态序列的未来上下文的划分示例。
22.图1f示出了根据一些实施方式的限制编码器状态序列的未来上下文的划分示例。
23.图2a示出了根据一个实施方式的端到端语音识别系统的触发关注神经网络的框图。
24.图2b示出了根据示例性实施方式的使用深度时延架构的编码器的实现。
25.图2c示出了根据示例性实施方式的用于实现lsd模块和编码器神经网络的变换器架构。
26.图2d示出了使用递归神经网络换能器(rnn-t)架构实现fsd模块。
27.图3a示出了根据一些实施方式的用于将lsd模块实现为具有先前时间步长的隐藏解码器状态的基于关注的解码器的示例性架构。
28.图3b示出了根据一些实施方式的用于将lsd模块实现为没有先前时间步长的隐藏解码器状态的基于关注的解码器的示例性架构。
29.图4示出了根据一些实施方式的基于计算机的自动语音识别系统的框图。
30.图5示出了根据一些实施方式提出的asr系统的数据流图。
31.图6示出了根据一些实施方式的使用前缀波束搜索模块的fsd模块的实现的示意图。
32.图7示出了根据一些实施方式的可以在用于实现asr系统的各种配置中使用的一些组件的框图。
具体实施方式
33.在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供对本公开的透彻理解。然而,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践本公开。在其它实例中,设备和方法仅以框图形式示出,以避免使本公开模糊。
34.如本说明书和权利要求书中所使用的术语“例如”、“比如”、和“诸如”,以及动词“包括”、“具有”、“包含”和它们的其它动词形式,当与一个或更多个组件或其它项的列表结合使用时,其每个被理解为开放的,这意味着该列表不应被视为排除其它附加组件或项。术语“基于”是指至少部分基于。此外,应当理解,这里使用的措辞和术语是为了描述的目的而不应当被认为是限制性的。本说明书中使用的任何标题仅为了方便,而没有法律或限制作用。
35.图1a示出根据一些实施方式的配置用于端到端语音识别的自动语音识别(asr)系统的示意图。语音识别系统100获得传入的表示语音话语特征的声学帧流,并处理该声学帧流以生成转录输出序列。每个转录输出序列是由相应的输入声学信号表示的话语的转录或话语的一部分的转录。例如,asr系统100可以获得传入的声学帧流101并且生成作为由传入的声学帧流101表示的话语的转录的对应转录输出125。
36.传入的声学特征帧流101可以包括作为话语的数字表示的音频样本序列,例如,连续的数据流。从音频数据提取的每个特征帧可以对应于时间步长序列,例如,在时间步长序列中每个音频数据帧与在时间上从音频数据的前一帧进一步偏移10毫秒的25毫秒音频样本相关联。音频数据的特征帧序列中的每个音频数据帧可以包括声学信息,该声学信息以对应的时间步长表征话语的部分。例如,音频数据的特征帧序列可以包括滤波器组频谱能量向量。
37.转录输出或标记输出125可以包括由传入的声学帧流101表示的话语的转录片段序列。转录输出125可以包括一个或更多个字符。例如,转录输出125可以是来自unicode字符集的字符或字符序列。例如,字符集可以包括英语、亚洲语、西里尔字母以及阿拉伯语的字母表。字符集还可以包括阿拉伯数字、空格字符和标点符号。附加地或另选地,转录输出可以包括字节编码、单词和其它语言构造。
38.asr系统100包括编码器103、帧同步解码器(fsd)模块107、同步模块109、标签同步解码器(lsd)模块111、联合评分模块115和外部语言模型122。本公开提供了一种用于组合实现fsd模块107和lsd模块111以构建适合于“实时”语音识别的asr系统100的系统。具有fsd的端到端asr系统可以容易地应用于其中asr输出必须在每个口语单词之后立即以很小输出延迟生成的流传输/在线asr应用。然而,在语音识别中通常表现出优异结果的基于lsd的asr系统不太适合于在线/流式传输asr,这是因为由于在解码之前丢失对准信息(即,缺少关于输入序列是否包含足够信息以生成下一输出令牌的信息)而通常需要整个语音话语作为输入。然而,fsd模块107和lsd模块111可以一起实现在一个系统100中,以实现可用于流式asr应用的快速且高效的asr。
39.为此,联合评分模块115提供由fsd模块107解码的转录输出和由lsd模块111解码的转录输出的联合评分。然而,fsd模块107和lsd模块111基于两种不同的操作原理工作。为了一起实现fsd模块107和lsd模块111,需要将它们同步。同步使得联合评分模块115能够为由fsd模块107和lsd模块111解码的对应前缀的列表提供联合评分。如果这些模块107、111不同步,则由fsd模块107生成的前缀列表可以不同于由lsd模块111生成的前缀列表。此外,模块107、111产生前缀列表的时间也可以不同,因为fsd模块107在逐帧或逐编码器状态的基础上操作,而lsd模块111在逐标签的基础上操作并且消耗输入帧或编码器状态的序列。因此,在模块107、111在时域和前缀域中没有同步的情况下,联合评分模块115不能组合两个转录假设并生成具有低延时的中间输出。
40.例如,asr系统100可以接收传入的与单词“dog”的语音信号对应的声学特征帧流。此外,如果在时刻n,fsd模块107生成前缀列表,该列表包括:fsd评分为0.3的“dog”,fsd评分为0.2的“dah”,fsd评分为0.1的“dag”,并且在例如n+4的另一时刻,lsd模块111生成前缀列表,该列表包括:lsd评分为0.3的“dug”,lsd评分为0.2的“dah”,lsd评分为0.5的“dag”,然后,在模块在时域和前缀域中没有同步的情况下,由于前缀列表不同,联合评分模块115不能执行联合评分,并且由于其必须等待lsd模块,所以联合评分模块115不能在每个说出的词之后产生具有低延迟的联合输出。
41.lsd模块111在时域中与fsd模块107同步,以减小lsd模块的输出延迟。在基于lsd的asr系统中引起输出延迟,这是因为通常基于lsd的asr系统可能需要观察由语音暂停分段的整个语音话语,以向每个输入帧分配权重,以便识别每个转录输出125。由于缺乏关于输入声学信号的哪一部分与识别下一个转录输出相关的先验知识,以及需要向每个编码器状态分配权重,lsd模块111通常需要处理大的输入序列。这样的处理允许利用关注话语的不同部分的优点,但是也增加了输出延迟,并且因此对于以流式传输/在线方式的语音识别是不实际的。
42.如这里所使用的,asr系统的输出延迟是在接收语音信号的帧与识别所接收的声学信息之间的时间差。例如,当基于lsd的asr系统对整个语音话语进行操作时,对话语中的单词的识别被延迟,直到接收到话语的最后一个单词为止。这种识别延迟导致输出延迟增加。
43.关于输入序列的不同部分与识别下一转录输出的相关性的先验知识是与输入序列中要识别的转录输出对应的帧的位置的指示。实际上,如果对用于转录输出的相关信息进行编码的帧的位置是已知的,则lsd模块111的关注机制可以被限制到这些位置加上可配置数量的过去和未来编码器帧或状态。以这种方式,对于每个转录输出,lsd模块111可以将其关注集中在输入序列中的这些位置周围。这种引导的关注减少了对处理大输入序列的需要,这又减少了输出延迟,使得lsd模块111对于以流式传输/在线方式的语音识别是实用的。
44.为此,asr 100使用fsd模块107,其充当对准解码器和转录输出解码器两者。fsd模块107被训练为确定序列105中对转录输出125(诸如字符、字节编码、单词等)编码的编码器状态的位置119。在一些实施方式中,fsd模块107可以使用联结主义时间分类(ctc)神经网络目标来实现。此外,在一些实施方式中,lsd模块111可以使用基于关注的解码器来实现。ctc是一种用于训练诸如长短期记忆(lstm)神经网络之类的神经网络的目标函数和相关联神经网络输出,以解决时序可变的序列问题。基于fsd的asr系统是基于lsd的asr系统的替代方案。fsd为输入序列的每个帧生成输出,即,输入和输出是同步的,并且波束搜索算法用于在将神经网络输出折叠到前缀和输出转录之前到最佳输出序列。基于lsd的asr系统的性能可以优于基于fsd的asr系统。然而,一些实施方式是基于这样的认识:基于fsd的asr系统的中间操作所使用的输入和输出帧对准可由基于lsd的asr系统使用以解决其上述输出延迟缺点。
45.为了利用由fsd模块107提供的对准信息119,asr系统100包括同步模块109,同步模块109被配置为将编码器状态序列105划分为分区集121。例如,同步模块109可以针对所识别的编码器状态的每个位置119划分编码器状态序列,使得分区121的数量由对转录输出
125编码的所识别的编码器状态119的数量来限定(例如,相等)。
46.同步模块还向lsd模块111提交由fsd模块107生成的当前前缀列表和编码器状态序列的选定部分。这确保lsd模块111处理与fsd模块107相同的前缀列表,以便估计lsd模块的转录输出可能性。因此,实现了fsd模块107和lsd模块111在前缀域中的同步。此外,为了确保lsd模块111在fsd模块107输出fsd评分列表时的几乎同时输出前缀列表的lsd评分列表,同步模块109仅向lsd模块111提供编码器状态序列的选定部分。这使得lsd模块111能够关注编码器状态序列105的选定部分而不是整个序列105,这减小了lsd模块111的输出延迟。因此,实现了fsd模块107和lsd模块111在时域中的同步。
47.asr系统100包括编码器103,编码器103处理传入的声学特征帧流101并且生成编码器状态序列105,该编码器状态序列105为输入声学信号101提供替代的(例如,更高的)表示。编码器状态序列105可包括与第二组时间步长对应的音频数据的替代的特征帧序列。在一些实现中,输入声学序列的替代表示被子采样为较低帧速率,即,替代表示中的第二组时间步长小于输入声学序列101中的第一组时间步长。
48.此外,fsd模块107被配置(例如被训练)以连续地处理编码器状态105并更新由fsd模块107维持的前缀列表及相关联的fsd评分列表。fsd模块107被配置为连续地处理编码特征的每个编码器状态,以识别对由fsd模块维持的fsd前缀列表进行更新的编码器状态。以这种方式,fsd模块响应于识别携带关于新转录输出的信息的编码器状态而扩展当前的fsd前缀列表,以产生候选的fsd前缀列表。每个fsd前缀是fsd模块对解码转录输出的候选估计,其概率由其对应的fsd评分定义,即,fsd评分定义fsd前缀是解码转录输出的概率。fsd前缀列表和fsd评分列表在解码后续编码器状态时被更新。例如,在先前迭代期间确定的当前fsd前缀列表被扩展为当前迭代的候选前缀列表。fsd模块107向联合评分模块115提供(117)候选fsd前缀列表和相关联的fsd评分列表。联合评分模块115基于lsd和fsd评分修剪候选的fsd前缀列表,以形成用于下一次迭代的当前fsd前缀列表。以这种方式,在不牺牲解码质量的情况下保持fsd模块的计算效率。
49.为了实现该结果,在一些实施方式中,同步模块109被配置为选择编码器状态序列的一部分,其中该部分包括由fsd模块107响应于fsd模块107维持的前缀列表的更新而识别的编码器状态。同步模块107将编码器状态序列的选定部分和对应的前缀提供给lsd模块111。lsd模块111被配置(例如被训练)以处理编码器状态序列的选定部分,以更新lsd前缀列表及由lsd模块111维持的对应lsd评分。类似地,对于lsd模块,每个lsd前缀是lsd模块对解码转录输出的候选估计,其概率由其对应的lsd评分定义。在一些实施方式中,同步模块109将fsd前缀传递给lsd模块,并且lsd模块仅确定fsd前缀的lsd评分。以这种方式,fsd和lsd模块在前缀域中同步。
50.仅对编码器状态序列的选定部分进行解码使得lsd模块111能够仅关注序列105的选定部分而不关注整个序列105,这减小了lsd模块111的输出延迟。以这种方式,可以实现fsd模块107和lsd模块111在时域和前缀域中的同步。因此,fsd模块107和lsd模块111近似同时解码相同的编码器状态序列。
51.此外,为了提高转录输出的准确性,asr系统100包括联合评分模块115。联合评分模块115组合由fsd模块107和lsd模块111维持的更新的前缀列表中的对应前缀的fsd评分和lsd评分,以产生联合前缀列表和关联的联合评分列表。联合评分列表中的每个联合评分
是fsd模块107中的更新的前缀列表中的对应前缀的fsd评分和lsd模块111中的更新的前缀列表中的对应前缀的lsd评分的加权组合。另外,由外部语言模型122提供的评分可被加权并添加到联合fsd和lsd评分以进一步提高识别准确度。
52.此外,联合评分模块115将修剪后的联合前缀列表反馈(117)给fsd模块107,其中修剪阶段基于对应的联合评分从前缀列表中移除不太可能的前缀。因此,联合评分模块115根据由对应的fsd评分和lsd评分的组合定义的联合评分来修剪候选的fsd前缀列表。来自联合评分模块115的修剪使fsd模块107和lsd模块111的最佳前缀的选择同步,以便在后续时间步长上对编码器状态进行后续解码。这进一步增加了fsd模块107和lsd模块111从后续编码器状态解码转录输出125的准确度。此外,联合评分模块115可以输出具有最高联合评分的前缀作为针对当前时间步长的传入声学帧流101的转录的当前部分。
53.在一些实施方式中,fsd模块可以在与同步模块通信之前并且在触发lsd模块之前使用外部语言模型来更新和预修剪所生成的fsd前缀的列表,以便提高识别准确度并且减少由于预修剪而由lsd模块产生的计算负荷。
54.在一些实施方式中,编码器103、fsd模块107、同步模块109和lsd模块111的组合被称为触发关注(ta)模型或ta神经网络。实际上,ta模型可以在接收到部分话语时处理该部分话语,使得asr系统100对于以流式传输/在线方式的识别是实用的。此外,以下结合图1a在图1b中解释具有示例性前缀列表的fsd模块107、lsd模块111和联合评分模块115的工作。
55.图1b示出了由fsd模块、lsd模块和联合评分模块生成的示例性前缀列表和相关联评分。表191示出了由fsd模块生成的前缀列表,表192示出了由lsd模块生成的前缀列表,并且表193示出了由联合评分模块生成的前缀列表。
56.联合评分模块115合并匹配的fsd前缀和lsd前缀及其对应的fsd评分191和lsd评分192,以产生联合前缀列表和对应的联合评分列表193。例如,在一个实施方式中,联合评分模块115处理关注解码器转录输出评分112(lsd评分)和fsd模块输出评分117(fsd评分),以联合对两个转录输出进行评分并到话语的最佳联合转录输出序列。例如,对于每个时间步长,联合评分模块115可以输出最佳联合评分的转录,其可以通过如在加权因子为0.5的示例中所示的两个转录输出评分的加权和来计算。除了计算联合fsd和lsd评分之外,还可以对外部语言模型的评分进行加权和相加。
57.接下来,联合评分模块115将fsd模块维持的fsd前缀列表替换194为修剪后的联合前缀列表,该列表是最佳联合前缀的缩减列表。这种替换194通过选择用于进一步处理的最佳联合前缀假设并基于联合评分去除不可能的前缀候选来使fsd模块和lsd模块在前缀域中同步。lsd模块111通过同步模块109从fsd模块107接收当前活动前缀列表。
58.例如,输入声学特征帧可以对应于单词“dog”。fsd模块107接收经编码声学特征帧101的编码器状态序列105。如表191所示,fsd模块107生成具有对应fsd评分的fsd前缀列表。前缀列表中的每个前缀是与接收的声学帧对应的转录输出125的候选估计。fsd模块107以最高概率(即,fsd评分0.3)预测转录输出为“dog”和“dah”,并以最低概率0.1预测转录输出为“duh”。此外,fsd模块107向同步模块109提供对转录输出125和fsd前缀列表编码的编码器状态的位置。
59.同步模块109选择编码器状态序列的一部分。选定部分包括由fsd模块107识别的编码器状态。同步模块109将编码器状态序列的选定部分和对应的前缀提供给lsd模块111。
60.此外,lsd模块111对编码器状态序列的所述部分进行解码,以生成lsd前缀列表和相关联的概率列表,即,如表192所示的lsd评分。与fsd模块107不同,lsd模块111以0.4的最高概率预测转录输出为“dog”,并以较低概率预测转录输出为“duh”和“dah”。由fsd模块107和lsd模块111两者生成的概率评分可以被组合以准确地预测转录输出“dog”。
61.为此,联合评分模块115从fsd模块107和lsd模块111两者获得前缀列表和相关联的评分。为了确定最准确的输出,联合评分模块115可以组合对应前缀的fsd评分和lsd评分。评分的组合可以对应于加权平均值。然而,可以使用任何其它数学运算/方程来实现评分的组合。因此,如表193所示,联合评分模块115生成联合前缀列表和相关联的联合概率,其中前缀“dog”对应于最高联合概率。因此,联合评分模块115在当前时间步长输出“dog”作为输入声学帧的转录输出。
62.图1c示出了根据一些实施方式的自动语音识别方法的框图。实施方式将表示语音话语的特征的传入声学帧流编码(180)为经编码声学特征帧的编码器状态序列,并且利用fsd模块连续地处理(181)经编码声学特征帧的每个编码器状态,直到满足终止条件,例如,直到语音话语结束为止。fsd模块响应于识别携带关于新转录输出的信息的编码器状态而扩展当前的fsd前缀列表189以产生候选的fsd前缀列表186和候选的fsd前缀列表186的对应fsd评分185。
63.以图1b为例,使当前的fsd前缀列表189包括“do”、“du”和“da”前缀。响应于识别携带关于新转录输出的信息的编码器状态,fsd模块扩展当前“do”、“du”和“da”fsd前缀列表以产生候选的“dog”、“duh”和“dah”的fsd前缀列表186。在实践中,候选的fsd前缀列表将包括需要修剪以保持计算效率的许多前缀。例如,在一些实现方式中,当前的fsd前缀列表的大小是固定的,并且小于候选的fsd前缀列表的大小,使得修剪保留候选fsd前缀列表中的具有最高联合评分的n个最佳fsd前缀,其中n是当前fsd前缀列表的大小。为此,联合评分模块需要根据fsd评分对候选fsd前缀列表进行修剪。在该示例中,“duh”fsd前缀由于具有最低fsd评分而需要修剪。然而,一些实施方式使用fsd评分和lsd评分来基于联合评分而不是仅基于fsd评分来修剪候选的fsd前缀列表,这提高了修剪的准确性。
64.为此,一些实施方式触发(182)标签同步解码器(lsd)模块来处理由fsd模块处理的编码器状态序列的部分,以根据lsd模块确定lsd评分188,lsd评分限定候选fsd前缀列表中的fsd前缀为编码器状态序列的部分中的经解码转录输出的概率。例如使用同步模块实现的这种触发使fsd模块和lsd模块在时域和前缀域中同步,因为lsd模块处理包括由fsd模块识别的新转录输出的编码器状态的部分,并且估计fsd前缀186的lsd评分188。
65.使lsd评分和fsd评分用于fsd前缀186,一些实施方式根据由对应的fsd评分和lsd评分的组合定义的联合评分修剪(183)候选的fsd前缀列表,并且用修剪的fsd前缀列表187替换(184)当前的fsd前缀列表189,以用于解码下一转录输出。例如,fsd前缀“duh”可以由于0.2的最小联合评分而被修剪掉。
66.一个实施方式仅替换fsd前缀而不替换经替换的当前fsd前缀列表中的fsd评分。例如,在修剪fsd前缀“duh”之后,当前列表将具有前缀“dog”和“dah”,其原始fsd评分分别为0.3和0.3。以这种方式,保持了fsd解码的连续性。
67.在各种实施方式中,迭代地执行解码过程,因此对于不同的迭代,识别“d”、“o”、“a”、“g”和/或“h”的转录输出的不同位置。在一些实现中,fsd模块、lsd模块和联合评分模
块迭代地解码传入的声学帧流的转录,使得对于每次迭代,fsd和/或lsd前缀列表中的前缀用新的转录输出令牌来更新。
68.图1d示出了fsd模块的示例性操作。fsd模块107的目的之一是解码由编码器103产生的编码器状态序列105。为此,训练fsd模块107以解码序列105,以产生转录输出序列125。fsd模块107逐帧地处理编码器状态序列105,并计算对应于中间转录输出的前缀序列或前缀列表。此外,fsd模块107生成与前缀列表相关联的fsd评分列表。fsd评分列表可以通过将导致相同前缀和中间转录输出的fsd神经网络的所有路径的概率边缘化来生成。通过附加新识别的字符来扩展前缀序列的时间和帧位置提供了对准信息。在一些实施方式中,fsd模块107产生的对准信息用于划分编码器状态序列并触发使用lsd模块111实现的基于关注的解码过程。该方法背后的基本原理是lsd模块111的前缀评分可以比fsd模块107的前缀评分更好且更可靠。为此,在没有对准信息的情况下,fsd模块111产生的中间对准信息用于通过减少lsd模块111产生的输出延迟来进一步改进lsd模块111的处理。
69.在一些实施方式中,联合评分模块115被实现为产生由fsd模块107解码的转录输出和由lsd模块111解码的转录输出的联合评分。这提高了asr系统的语音识别的准确性。在一些实施方式中,fsd模块107被使用两次:第一,帮助划分lsd模块111的编码器状态序列;第二,用于进一步提高lsd模块111解码的转录输出的准确性。
70.此外,围绕索引序列元素的框识别编码器状态序列105中对转录输出125编码的编码器状态119的位置。例如,编码器103将诸如对数梅尔频谱能量的声学特征的输入声学序列x转换为长度为n的编码器状态序列xe:
71.xe=encoder(x).
72.例如,在一个实现中,与具有100hz的采样率的特征矩阵x相比,编码器输出被子采样到低四倍的帧速率。设z=(z1,...,zn)表示长度为n的逐帧标签序列,其中,表示不同的转录输出集,例如,可以是单个字符的单词片段或单词,并且∈为空白符号。设c=(c1,...,c
l
),其中,其表示长度为l的标签序列,使得当将重复标签折叠成单次出现并去除空白符号时,序列z降为c。
73.在一些实施方式中,fsd模块107概率地对编码器状态序列105解码,其中概率导出为:
[0074][0075]
其中,p(z|c)表示转变模型,p(z|xe)表示声学模型。
[0076]
在一些实施方式中,在训练期间使用强制对准过程来确定作为最高概率的标记序列或ctc路径的标记序列z
*
。用于将lsd模块调节到编码器状态序列的子序列的对准由与z
*
中的相同标签对应的帧的每个子序列内的具有最高概率的帧识别为识别的编码器状态。例如,考虑序列z
*
是使用索引i
l
和j
l
来编写的,这些索引用于第l个标签c
l
在z
*
中开始出现与最后出现,并且对于全部t,zn=c
l
,使得对于所有其它索引,i
l
≤n≤j
l
并且z
t
=∈。ta对准执行从序列z
*
到相同长度n的、包括对具有最高概率的转录输出125编码的经识别编码器状态的子集的序列z

=(∈
*
,c1,∈
*
,c2,∈
*
,...,c
l
,∈
*
)的映射,其中,
*
表示零
或更多次重复,并且其中,每个c
l
在对应于c
l
的帧内以最大概率出现一次,如下:
[0077][0078]
另选地,fsd模块107可将对应于z
*
中的相同字素的每个帧子序列内的第一帧或最后帧识别为识别的编码器状态。
[0079]
图1e和图1f示出了根据一些实施方式划分编码器状态序列的示例。在各种实施方式中,由可操作地连接到fsd模块107、lsd模块111和编码器103的同步模块109执行划分。同步模块109被配置为访问fsd模块107的对准信息119,划分由编码器103产生的编码器状态序列105,并且顺序地将编码器状态序列的部分121提交给lsd模块111。
[0080]
例如,在图1e的一个实施方式中,每个分区121a包括从编码器状态序列105的开始直到通过以固定移位向前移动所识别的编码器状态的位置而确定的超前编码器状态的编码器状态。图1a中示出了超前编码器状态123的示例。例如,如果固定移位的值是5,并且所识别的状态编码器的位置是编码器状态序列105中的第8,则分区121a包括前13个编码器状态。如果随后识别的编码器状态的位置是11,则分区121a包括前16个编码器状态。实际上,每个分区包括用于新转录输出的编码器状态,同时增加分区的长度,允许lsd模块111利用其长度。
[0081]
在图1f的替代实施方式中,与所识别的编码器状态的位置对应的分区121b包括相对于所识别的编码器状态的位置的预定数量的超前编码器状态和预定数量的回顾编码器状态。例如,如果所识别的编码器状态的位置是编码器状态序列中的第15个,并且如果固定的超前值和回顾值分别为4和8,则分区121b包括编码器状态序列105中的第7和第19之间的编码器状态。实际上,每个分区包括用于新转录输出的编码器状态,同时具有固定长度的分区以减少关于lsd模块111的计算负担。
[0082]
图2a示出了根据一个实施方式的端到端语音识别系统的触发关注神经网络200的框图。在该实施方式中,编码器103、fsd模块107和lsd模块111被实现为神经网络。此外,fsd模块107使用基于联结主义时间分类(基于ctc的)神经网络或ctc模块来实现,lsd模块111使用基于关注的解码器神经网络来实现。触发关注模型200包括编码器网络模块203、编码器网络参数205、关注解码器网络模块206、解码器网络参数207、同步模块209、ctc模块211和ctc网络参数213。编码器网络参数205、解码器网络参数207和ctc网络参数213存储在储存设备中,以向对应的模块203、205和211提供参数。从音频波形数据中提取声学特征序列201,并且声学特征序列201可以被存储在储存设备中并且被提供给编码器网络模块203。音频波形数据可以使用接收和处理音频数据中的语音声音的数字信号处理模块(未示出)经由输入设备获得。
[0083]
编码器网络模块203包括编码器网络,编码器网络模块203使用从编码器网络参数203读取参数的编码器网络将声学特征序列201转换为编码器特征向量序列。ctc模块211从编码器网络模块203接收嵌入向量序列,并使用ctc网络参数213和动态编程技术来计算标签序列的基于ctc的后验概率分布。在计算之后,ctc模块211向同步模块209提供包括帧位置的最可能的标签序列或前缀。
[0084]
关注解码器网络模块206包括解码器网络。关注解码器网络模块206从同步模块209接收每个包括编码器状态序列的一部分的分区,然后使用从解码器网络参数205读取参
数的解码器网络来计算标签的基于关注的后验概率分布。
[0085]
端到端语音识别通常定义为在给定输入声学特征序列x的情况下到最可能的标签序列的问题,即,
[0086][0087]
其中,表示给定一组预定义标签的一组可能的标签序列。
[0088]
在端到端语音识别中,p(y|x)是由预先训练的神经网络计算的,不需要语音词典并且不需要基于重加权有限状态换能器(wfst)的图搜索。在现有技术的基于关注的端到端语音识别中,神经网络由编码器网络和解码器网络组成。
[0089]
编码器示例
[0090]
编码器网络模块203包括用于将声学特征序列x=x
1,
...,x
t
转换为嵌入矢量序列的编码器网络,如
[0091]
xe=encoder(x),
ꢀꢀꢀꢀ
(2)
[0092]
其中,函数encoder(x)可以包括被堆叠到深层架构的一个或更多个递归神经网络(rnn)、卷积神经网络(cnn)、前馈神经网络或自关注神经网络。rnn可以实现为长短期存储器(lstm),其在每个隐藏单元中具有输入门、遗忘门、输出门和存储单元。另一个rnn可以是双向rnn(brnn)或双向lstm(blstm)。blstm是一对lstm rnn,一个是前向lstm,另一个是后向lstm。blstm的嵌入向量作为前向lstm和后向lstm的隐藏向量的级联而获得。
[0093]
对于前向lstm,前向第n个隐藏向量计算为
[0094][0095][0096][0097][0098][0099]
其中,σ(
·
)是逐元素s形函数,tanh(
·
)是逐元素双曲正切函数,和分别是x
t
的输入门、遗忘门、输出门和单元激活向量。

表示向量之间的逐元素乘法。加权矩阵和偏置向量是lstm的参数,所述参数由下标z∈{x,h,i,f,o,c}标识。例如,是隐藏到输入门矩阵,是输入到输出门矩阵。隐藏向量是从输入向量x
t
和先前隐藏向量递归获得的,其中,被假设为零向量。
[0100]
使用后向lstm,后向第t个隐藏向量计算为:
[0101][0102][0103][0104]
[0105][0106]
其中,和分别是x
t
的输入门、遗忘门、输出门和单元激活向量。加权矩阵和偏置向量是lstm的参数,所述参数以与前向lstm相同的方式由下标标识。隐藏向量是从输入向量x
t
和随后的隐藏向量递归获得的,其中,被假设为零向量。
[0107]
blstm的隐藏向量是通过将前向隐藏向量和后向隐藏向量串联为下式而获得的:
[0108]
其中,t表示假设所有向量都是列向量的向量的转置操作。和被认为是blstm的参数。
[0109]
为了获得更好的隐藏向量,一些实现方式通过将第一blstm的隐藏向量馈送到第二blstm,然后将第二blstm的隐藏向量馈送到第三blstm,以此类推,来堆叠多个blstm。如果h
t

是由一个blstm获得的隐藏向量,则当将其馈送到另一个blstm时,x
t
=h
t

。为了减少计算,一些实施方式可以仅将一个blstm的每第二个隐藏向量馈送到另一个blstm。在这种情况下,输出隐藏向量序列的长度变为输入声学特征序列长度的一半。
[0110]
在示例性实施方式中,编码器模块利用使用深时间延迟架构一起构成的时间延迟长短期存储器(tdlstm)神经网络和并行时间延迟lstm(ptdlstm)神经网络来实现。图2b示出了使用深度时间延迟架构的编码器模块的实现。在图2b中,左侧示出了使用深度时间延迟结构的编码器架构,右侧示出了神经网络构建块。深度时间延迟结构的每个矩形框表示层1中的tdlstm构建块或层2-5中的ptdlstm构建块。方括号中的数字表示每个层的帧延迟输入。黑实线和阴影矩形框突出显示单个编码器输出帧的路径。虚线和暗矩形框表示用于生成过去编码器输出帧和未来编码器输出帧的连接和构建块。
[0111]
在该示例中,深度时间延迟架构生成25个输入声学帧的延迟,其总和对应于250ms。第一神经网络层(层-1)包括tdlstm构建块,该tdlstm构建块取三个连续声学帧作为输入,由此以低三倍的帧速率生成输出,即,应用因子3的子采样。其余的编码器神经网络层,即,层2-5,基于ptdlstm。tdlstm和ptdlstm神经网络架构中的每一个包括多层神经网络块。此外,多层中的每一层可以由不同的神经网络构建块组成。下面解释tdlstm和ptdlstm的架构。
[0112]
包括在tdlstm中的不同神经网络构建块是:输入级联(cat)块215、lstm层(lstm)块217、瓶颈(bn)前馈神经网络块219和整流线性单元激活函数(relu)块221。输入级联块215首先级联所有输入声学帧,并将级联的输入声学帧提供给lstm块217。lstm块217在瓶颈前馈神经网络219之前处理时间延迟和级联的输入。瓶颈前馈神经网络块219减小到后续层(即,relu块221)的输入声学帧的大小。relu是产生对从瓶颈前馈神经网络块219接收的输入声学帧的转录输出进行编码的最终编码器状态的激活函数。
[0113]
此外,ptdlstm网络架构包括lstm层223、级联块225、瓶颈前馈神经网络块227和整流线性单元激活函数(relu)块229。在ptdlstm网络中,每个时间延迟的输入声学帧由lstm层223中的单独lstm处理,并且lstm输出被提供给级联块225。级联块225在将级联的lstm输出转发到瓶颈前馈神经网络块227和整流线性单元(relu)激活函数229之前级联lstm输出,以便产生对输入声学帧的转录输出编码的最终编码器状态。
[0114]
与应用块处理并将后向lstm限制于有限的未来上下文的其它基于rnn的流式编码
器架构(诸如延迟控制的blstm)相比,tdlstm编码器架构以及ptdlstm架构改进了asr系统的错误率以及推理速度。例如,这些架构将处理延迟限制为固定量,并允许用于流式传输asr。另外,与其它基于rnn的流架构(诸如延迟控制的blstm架构)相比,ptdlstm架构在字错误率方面展示了优势。
[0115]
lsd模块示例
[0116]
在一些实施方式中,使用基于关注的解码器来实现lsd模块。基于关注的解码器网络模块206包括用于使用嵌入向量序列xe来计算标签序列概率p(y|x)的解码器网络。假设y是l长度的标签序列y1,y2,...,y
l
。为了有效地计算p(y|x),概率可以由概率链规则分解为:
[0117][0118]
每个标签概率p(y
l
y1,

,y
l-1
,x)是从标签上的概率分布获得的,其使用解码器网络估计为:
[0119]
p(y|y1,

,y
l-1
,x)=decoder(r
l
,q
l-1
),
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0120]
其中,y是表示每个标签输出的整数的集合,r
l
被称为内容向量,其具有xe的内容信息。q
l-1
是解码器状态向量,其包含先前标签y1,...,y
l-1
和先前内容向量r0,...,r
l-1
的上下文信息。因此,标签概率被获得为给定上下文的y=y
l
的概率,即
[0121]
p(y
l
|y1,

,y
l-1
,x)=p(y=y
l
|y1,

,y
l-1

x
)
·
ꢀꢀ
(16)
[0122]
内容向量r
l
通常被给出为编码器网络的嵌入向量的加权和,即,
[0123][0124]
其中,a
ln
称为满足∑
naln
=1的关注权重。关注权重可以使用q
l-1
和xe计算为
[0125][0126]fl
=f*a
l-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(19)
[0127][0128]
其中,w,v,f和u是矩阵,w和b是向量,它们是解码器网络的可训练参数。e
ln
是第(l-1)状态向量q
l-1
和第t个隐藏向量之间的匹配评分,以形成时间对准分布a
l
={a
ln
|n=1,...,n}。a
l-1
表示用于预测先前标签y
l-1
的先前对准分布{a
(l-1)n
|n=1,...,n}。f
l
={f
ln
|t=1,...,n}是对于a
l-1
与f的卷积结果,其用于反映先前对准到当前对准。“*”表示卷积运算。
[0129]
利用状态向量q
k-1
和内容向量r
l
获得标签概率分布为
[0130]
decoder(r
l
,q
l-1
)=softmax(w
qyql-1
+w
ryrl
+by),
ꢀꢀꢀꢀ
(21)
[0131]
其中,w
qy
和w
ry
是矩阵,并且by是向量,它们是解码器网络的可训练参数。softmax()函数计算为
[0132][0133]
对于k维向量v,其中,v[i]表示v的第i个元素。
[0134]
之后,使用lstm将解码器状态向量q
l-1
更新为q
l
[0135][0136][0137][0138][0139][0140]
其中,和分别是输入向量x
l
的输入门、遗忘门、输出门和单元激活向量。加权矩阵和偏置向量是lstm的参数,它们以与前向lstm相同的方式由下标标识。从输入向量和先前状态向量q
l-1
递归地获得状态向量q
l
,其中,q0是假设q-1=0、y0=《sos》和a0=1/t来计算的。对于解码器网络,输入向量被给出为标签y
l
和内容向量r
l
的级联向量,其可以获得为其中,embed(
·
)表示标签嵌入,其将标签转换为固定维向量。
[0141]
在基于关注的语音识别中,估计适当的关注权重对于预测正确的标签是非常重要的,因为内容向量r
l
非常依赖于对准分布a
l
,如公式(17)所示。在语音识别中,内容向量表示在对准分布峰值附近编码器的隐藏向量中的声学信息,而该声学信息是预测标签y
l
的最重要的线索。然而,关注机制通常提供不规则的对准分布,因为没有显式约束,使得当递增地预测y
l
时,分布的峰值沿着时间单调地前进。在语音识别中,输入序列与输出序列的对准一般应是单调的。尽管卷积特征f
lt
减轻了不规则对准的生成,但不能保证避开它们。
[0142]
在另一实施方式中,lsd模块和编码器模块使用变换器架构来实现。图2c示出了实现lsd模块和编码器神经网络的变换器架构。图2c所示的变换器架构是基于rnn的编码器和lsd架构的替换。编码器203接收输入帧序列,其中该序列的每个帧包括与语音输入相关联的特征。这些特征可以由特征提取模块231提取。编码器203神经网络包括具有相同结构的e个堆叠层,其中每个层具有两个子层:第一是多头自关注机构235,第二是前馈神经网络层239。为了更好地优化,编码器203使用残差连接,随后针对每个子层进行层归一化237、241。另外,位置编码233被添加到编码器203的输入,这确保多头自关注235可以识别帧序列内的帧的位置。在一些实施方式中,多头自关注机制使用受限的自关注,以便控制编码器神经网络的延迟并启用流式应用。
[0143]
此外,解码器205还包括d个堆叠层,其中每一层具有多头自关注层247以处理由输出嵌入243提供的先前解码器块的输出(其中第一解码器块查看来自先前处理步骤的最后解码器块的输出)。此外,在解码器205的输入处使用位置编码245将从先前解码步骤计算的输出嵌入序列中的相对或绝对帧位置信息提供给解码器。解码器205包括多头编码器-解码器关注层251,以使用由多头自关注层247生成的查询向量来处理编码器神经网络203的输出。编码器-解码器关注层251的输出被馈送到前馈神经网络层255。此外,类似于编码器203,解码器205使用残差连接,随后针对每个子层进行层归一化249、253、257,以改进泛化和正则化。学习线性变换259和softmax函数261用于将解码器输出转换成预测的标签输出概率。
[0144]
fsd模块示例
[0145]
在一个实施方式中,使用如上所述的ctc神经网络来实现fsd模块。ctc模块211计算给定嵌入向量序列xe的标签序列y的ctc前向概率。注意到ctc公式使用l长度的标签序列y=(yi,...,y
l
),其中,并且是不同的标签集。通过引入具有的逐帧标签序列z=(zi,...,zn),其中,∈表示附加的空白标签,并利用概率链规则和条件独立性假设,将后验分布p(y|x)分解为如下:
[0146][0147]
其中,p(zn|z
n-i
,y)被认为是包括空白标签的标签转移概率。p(zn|x)是以输入序列x为条件的逐帧后验分布,并且通过使用如上所述的编码器神经网络随后是线性变换和softmax函数来建模:
[0148][0149]
其中,是用编码器网络获得的。是权重矩阵,是偏差向量,它们是ctc模型的可训练参数。尽管式(28)必须处理关于所有可能z的求和,但是它可以通过使用前向-后向算法和动态编程来有效地进行计算。
[0150]
例如,ctc的前向算法如下执行。一些实现使用长度为2l+i的扩展标签序列y

=y
′1,y
′2,...,y

2l+1
=∈,y1,∈,y2,...,∈,y
l
,∈
·
,其中,在每对相邻标签之间插入空白标签∈。设α
t
(s)为前向概率,其表示针对时间帧i,...,t的标签序列y1,...,y
l
的后验概率,其中,s指示扩展标签序列y

中的位置。
[0151]
对于初始化,设
[0152]
α1(1)=p(z1=∈|x)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(30)
[0153]
α1(2)=p(z1=y1|x)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(31)
[0154][0155]
当t=2至t,α
t
(s)递归地计算为
[0156][0157]
其中,
[0158][0159]
最后,基于ctc的标签序列概率被获得为
[0160]
p(y|x)=α
t
(2l+1)+α
t
(2l).
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(35)
[0161]
逐帧标签序列z表示输入声学特征序列x和输出标签序列y之间的对准。当计算前向概率时,式(33)的递归强制z是单调的,并且不允许s在对准z中循环或大跳跃,这是因为求α
t
(s)的递归至多只考虑α
t-1
(s)、α
t-1
(s-1)、α
t-1
(s-2)。这意味着当时间帧前进一帧时,标签从先前的标签或空白改变,或者保持相同的标签。该约束起转移概率p(z
t
|z
t-1
,y)的作用,该转移概率强制对准单调。因此,当基于不规则(非单调)对准计算时,p(y|x)可以是0或
非常小的值。同步模块209使用输入声学特征序列x和输出标签序列y之间的对准来控制基于关注的神经网络206的操作。
[0162]
在一个实施方式中,可以使用递归神经网络(rnn)换能器架构来实现fsd模块。图2d示出了基于递归神经网络换能器(rnn-t)架构的fsd模块的实现。rnn-t是联结主义时间分类(ctc)的扩展。rnn-t包括编码器263、预测网络265、联合网络267和softmax函数269。编码器263将输入声学帧序列x=(x0,...,x
t
)变换为高级特征表示h
enc

[0163]henc
=encoder(x)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(36)
[0164]
预测网络可以消除ctc架构中帧无关假设的限制。该预测网络可以采用长短期记忆(lstm)神经网络对上下文信息进行建模,从而将原始向量y=(y1,...,y
l-1
)转换为高级表示预测网络的输出由先前的上下文信息确定。注意到预测网络的第一输入是全零张量,y是非空白单元。式(37)和式(38)描述了预测网络如何在标签步骤l操作。联合网络通常是前馈网络,其从h
nenc
和产生
[0165][0166]
最后,通过应用softmax运算来计算每个输出令牌k的后验值
[0167][0168]
通过优化rnn-t损耗函数来训练整个网络
[0169]
loss
rnnt
=-ln(p(y|x)),
ꢀꢀ
(39)
[0170]
其由前向-后向算法来计算。
[0171]
对于rnn-t解码,通过波束搜索算法生成最可能的字符序列。在推断期间,预测网络的输入是最后的非空白符号。通过去除最可能的序列路径中的所有空白符号来获得最终输出序列。
[0172]
一些实施方式基于这样的认识,即,通过组合来自ctc的解码器输出和基于关注的解码器,可以进一步提高识别准确度。例如,在端到端语音识别的一个实现中,式(34)中的ctc前向概率与式(14)中基于关注的概率相结合,以获得更准确的标签序列概率。换能器架构包括预测网络251、编码器253、联合网络255和softmax函数257,其中编码器网络可以与基于关注的解码器网络共享,以用于联合训练和识别。
[0173]
图3a示出了根据一些实施方式的将lsd模块实现为具有基于rnn的解码器的基于关注的解码器的示例性架构。基于关注的解码器111包括上下文向量生成器301和解码器神经网络303。上下文向量生成器301接收来自在前时间步长的解码器神经网络303的隐藏解码器状态309、来自在前时间步长的上下文向量生成器301的关注权重分布307、以及替代表示121(即,上文参照图1a描述的声学帧流101的替代表示)作为输入。上下文向量生成器301处理解码器神经网络303的在前隐藏解码器状态、在前关注权重分布307和替代表示121,以计算替代表示121的时间帧上的关注权重分布,并生成当前时间步长的上下文向量311作为输出。上下文向量生成器301将当前时间步长的上下文向量311提供给解码器神经网络303。
[0174]
对于不同的迭代,基于关注的解码器111接收不同的分区315、317和319。例如,分区集合包括第一分区315和后续分区317和319。基于关注的解码器111处理第一分区315以产生第一转录输出。在基于关注的神经网络完成对将基于关注的网络置于其内部状态的第一分区的处理之后,基于关注的解码器111利用基于关注的网络处理后续的分区317、319,
而不重置基于关注的网络的内部状态,以接连产生针对后续分区的转录输出。
[0175]
实际上,基于关注的解码器111处理不同的分区而不重置基于关注的网络的内部状态以利用先前解码的信息。在确定语音话语的结束时,基于关注的解码器111被配置为重置其内部状态。
[0176]
在另一实施方式中,当基于关注的解码器111接收后续分区317、319时,后续分区317、319中的每一个重置基于关注的解码器111的内部状态,以接连地产生后续分区317、319的转录输出。
[0177]
解码器神经网络303接收时间步长的上下文向量311以及前一时间步长的转录输出313和隐藏解码器状态309作为输入。解码器神经网络303在处理用于时间步长的上下文向量311和来自先前时间步长的转录输出313之前利用先前隐藏解码器状态309初始化其内部隐藏状态,以生成用于时间步长的转录输出评分集合313作为输出。在一些实现中,解码器神经网络303是具有softmax输出层的递归神经网络(rnn)。每个转录输出评分对应于来自转录输出集的相应转录输出。例如,如上文参照图1a所述,转录输出集可以是来自unicode字符集的字符或字符序列,该unicode字符集用于书写一种或更多种自然语言,例如英语、亚洲语、西里尔字母和阿拉伯语的字母表。转录输出集还可以包括阿拉伯数字、空格字符和标点符号。给定转录输出的评分表示对应的转录输出是作为话语转录的输出序列中时间步长处的当前转录片段的可能性。
[0178]
asr系统对每个时间步长的转录输出评分313进行处理,以确定表示话语转录的转录输出序列。例如,对于每个时间步长,语音识别系统可以从转录输出评分集合中选择具有最高评分的转录输出以确定转录输出序列。
[0179]
图3b示出了根据一些实施方式的用于将lsd模块实现为没有先前时间步长的隐藏解码器状态的基于关注的解码器的示例性架构。图3b所示的架构是图3a所示架构的替换,其中基于关注的解码器111可以基于不需要先前时间步骤的隐藏解码器状态的、不同的解码器神经网络构建块303。相反,如图3b所示,构建块303需要先前转录输出325。在一些实现中,解码器神经网络323基于自关注神经网络以生成解码器状态,该解码器状态由编码器-解码器神经网络321使用以在被馈送到后处理神经网络327之前提供对输入编码器状态序列划分的关注。后处理神经网络327生成转录输出。这种基于关注的解码器神经网络构建块111可以被重复d次,其中转录输出被输入到下一个解码器构建块。
[0180]
示例实现
[0181]
图4示出了根据一些实施方式的基于计算机的自动语音识别系统400的框图。基于计算机的语音识别系统400包括将系统400与其它系统和设备连接的多个接口。系统400包括输入接口401,输入接口401被配置为从输入设备403接受表示语音话语特征的声学帧流。输入设备403可以是麦克风。附加地或另选地,基于计算机的语音识别系统400可以从各种其它类型的输入接口接收声学信号。在一些实施方式中,系统400包括音频接口,其被配置为流式传输来自声学输入设备403的声学帧。在一些其它实施方式中,输入接口包括网络接口控制器(nic)405,其被配置为经由网络407流式传输声学帧409,网络407可以是有线和无线网络中的一个或组合。
[0182]
网络接口控制器(nic)405适于通过总线423将系统400连接到网络407,网络407将系统400与感测设备(例如,诸如麦克风的输入设备403)连接。附加地或另选地,系统400可
以包括人机接口(hmi)411。系统400内的人机接口411将系统400连接到键盘413和定点设备415,其中定点设备415可以包括鼠标、轨迹球、触摸板、操纵杆、定点棒、触笔或触摸屏等。
[0183]
系统400包括被配置为执行存储的指令417的处理器421、以及存储可由处理器执行的指令的存储器419。处理器421可以是单核处理器、多核处理器、计算集或任何数量的其它配置。存储器419可以包括随机存取存储器(ram)、只读存储器(rom)、闪存或任何其它合适的存储器系统。处理器421可以通过总线423连接到一个或更多个输入和输出设备。
[0184]
根据一些实施方式,指令417可以实现用于端到端语音识别的方法。为此,计算机存储器419存储编码器103、帧同步解码器(fsd)模块107、同步模块109、标签同步解码器(lsd)模块431和联合评分模块115、门435和话语结束模块437。在一些实施方式中,自动语音识别系统(asr)400被配置用于以流式传输/在线方式进行识别。例如,门435被配置为将语音话语划分为声学序列集。例如,在一些实施方式中,门被实现为在语音转换期间划分语音的输入接口401的部件。该组中的每个声学序列的长度可以相同或可以基于发音语音的特征而变化。以这种方式,asr系统400以流线型方式转录输入声学序列。在一些实施方式中,门435将语音话语划分为声学信号块,使得输入接口同时接收一个声学信号块。例如,门435可以是去除非语音声学输入的语音活动检测模块。
[0185]
编码器103被训练以将表示语音话语特征的声学帧流409转换成编码声学特征帧的编码器状态序列。在一些实施方式中,处理器421被配置为向fsd模块107提交编码器状态序列以逐帧提交编码器状态序列。根据一些实施方式,fsd模块107可以是被训练以确定对转录输出编码的编码器状态序列中的编码器状态位置的联结主义时间分类(ctc)。在一些实施方式中,fsd模块107被配置为连续地处理经编码声学特征的每个编码器状态,以识别对由fsd模块107维持的前缀列表和相关联评分进行更新的编码器状态。每个前缀对应于解码转录输出的候选估计。此外,在一些实施方式中,相关联的评分对应于前缀的转录输出的概率。在一些其它实施方式中,相关联的评分对应于导致相同前缀的所有转录输出概率的总和。
[0186]
同步模块109被配置为响应于由fsd模块107维持的前缀列表的更新而选择编码器状态序列的包括由fsd模块107识别的编码器状态的一部分。在一些实施方式中,同步模块109被配置为基于所识别的编码器状态的位置将编码器状态序列划分为分区集合,并且将分区集合依次提交到lsd模块111中。在一些实施方式中,lsd模块111可以是基于关注的解码器。
[0187]
在一些实施方式中,lsd模块111被配置为处理编码器状态序列的选定部分,以利用转录输出的至少一个可能估计来更新由lsd模块111维持的前缀列表。当lsd模块111和fsd模块107处理相同的前缀列表时,在lsd模块解码器111和fsd模块107之间实现同步。此外,对编码器状态序列的选定部分进行解码使fsd模块107和lsd模块111的解码时间同步。
[0188]
联合评分模块115被配置为将fsd模块107维持的更新的前缀列表中的对应前缀的概率与lsd模块111维持的更新的前缀列表中的对应前缀的概率进行组合,以产生具有最佳组合概率的联合前缀列表。此外,在一些实施方式中,联合评分模块115被配置为用联合前缀列表替换由fsd模块107维持的前缀列表,以使fsd模块107和lsd模块111的前缀同步,以便在后续时间步长上进行后续解码。此外,在一些实施方式中,联合评分模块115被配置为输出对应于最高联合评分的前缀作为针对当前时间步长的传入流的转录的当前部分。
[0189]
在一些实施方式中,存储器419还存储话语结束模块437,其被配置为检测语音话语的结束。不同的实施方式使用不同的技术来实现话语结束模块437。例如,一些实施方式使用语音活动检测(sad)模块来检测话语的结束或sad与辅助端点检测系统的组合。
[0190]
自动语音识别系统400包括配置成输出系统400的转录输出的输出接口439。例如,如果转录输出表示字符,则输出接口439逐个字符地输出。类似地,如果转录输出表示单词,则输出接口439逐单词输出。附加地或另选地,在一个实施方式中,输出接口439被配置为累积转录输出集以形成单词并单独输出语音话语中的每个单词。此外,在一个实施方式中,输出接口被配置为单独地或与其它输出一起输出每个转录输出。
[0191]
在一些实施方式中,输出接口439可以在显示设备441上显示转录输出,将转录输出存储到储存介质中和/或通过网络407发送转录输出。显示设备441的示例包括计算机监视器、电视、投影仪或移动设备等。系统400还可以连接到应用接口443,应用接口443适于将系统400连接到用于执行各种任务的外部设备445。
[0192]
图5示出了根据一些实施方式的asr系统100的数据流图。在框501处,asr系统接收语音话语的一部分。处理器还被配置为将语音话语的所述部分转换成表示语音话语的声学特征帧流,并且将声学特征帧流提交给编码器模块。编码器模块产生经编码声学特征帧的编码器状态序列。在框503处,帧同步解码器(fsd)模块处理或解码编码器状态序列以识别编码器状态,该编码器状态利用fsd模块维持的相关联的fsd评分列表来扩展前缀列表。前缀列表的每个前缀是解码转录输出的候选估计。此外,fsd评分列表的每个fsd评分对应于对应前缀的转录输出的概率。在一些实施方式中,fsd评分列表中的每个fsd评分对应于导致相同前缀的所有转录输出概率的总和。因此,fsd模块提供关于对诸如字符、位、单词等的转录输出进行编码的编码器状态序列中的编码器状态的位置的信息。
[0193]
在框505处,同步模块使用由fsd模块识别的编码器状态的位置信息来选择编码器状态序列的包括由fsd模块识别的编码器状态的一部分。同步模块还向标签同步解码器(lsd)模块提交由fsd模块生成的当前前缀列表和编码器状态序列的选定部分。这确保lsd模块处理与fsd模块相同的前缀列表,以便估计转录输出的可能性。从而实现了fsd模块和lsd模块在前缀域中的同步。此外,为了确保lsd在与fsd模块的时间大致相同的时间内输出前缀列表的lsd评分列表,在框507处,仅编码器状态序列的选定部分被lsd模块解码。这使得lsd模块能够关注编码器状态序列的选定部分而不是整个语音话语,这减小了lsd模块的输出延迟。因此,实现了fsd模块和lsd模块在时域中的同步。
[0194]
此外,在框509处,联合评分模块从fsd模块和lsd模块两者接收前缀列表以及相关联的fsd评分和lsd评分。联合评分模块将fsd模块维持的前缀列表中的对应前缀的fsd评分和lsd模块维持的前缀列表中的对应前缀的lsd评分进行组合,以生成联合前缀列表和关联的联合评分列表。另外,由外部语言模型122生成的前缀概率估计可以被加权并添加到对应的联合评分,以进一步改进前缀候选估计。在框511处,联合评分模块用联合前缀列表替换由fsd模块维持的前缀列表,该联合前缀列表被修剪以去除不可能的前缀候选并加速解码过程。这进一步同步fsd模块和lsd模块的可能前缀候选的列表,用于在后续时间步长上对编码器状态进行后续解码。此外,在框513处,联合评分模块输出具有最高联合评分的前缀作为传入声学帧流的转录的当前部分。
[0195]
图6示出了根据一些实施方式的使用前缀波束搜索模块的fsd模块的实现的示意
图。在该示例中,fsd模块包括输出每个编码器状态的转录输出概率610的ctc神经网络213。前缀波束搜索模块620被配置为搜索ctc神经网络的输出610,以产生fsd评分高于阈值的候选fsd前缀列表630。在该实现中,每个fsd评分是在折叠重复标签并去除空白符号之后导致相同前缀的所有转录输出序列的所有概率的总和。
[0196]
在该示例中,ctc网络可以直接从音频输入和/或从编码器状态预测转录本。ctc网络可以产生ctc矩阵610,其中列对应于时间步长并且每行对应于字母表中的字母。由于每个列总和为1,并且ctc矩阵中的所有条目都大于0,因此ctc矩阵是每个时间步长的字母表上的分布,本质上是字母预测。在该示例中,字母表至少包含字母a-z、空格(_)和空白令牌(-),其中ctc网络需要后者。一些实现将小概率舍入为零以获得可读性。
[0197]
最简单的解码方法是在每个时间步长取概率最高的字母-一种称为最大解码或贪婪解码的方法。然而,在每个时间步长取具有最高概率的字母是一种简化,因为在给定收缩规则的情况下,可以跟踪通过ctc矩阵的多条路径,所有这些路径都产生相同的标签。
[0198]
为此,一些实施方式使用前缀波束搜索模块620不仅考虑最高概率,而且考虑在折叠重复标签和去除空白符号之后导致相同前缀的所有转录输出序列的所有概率的总和。以此方式,前缀波束搜索模块基于根据联合评分修剪的当前fsd前缀列表的fsd评分来计算候选fsd前缀列表的fsd评分。在一些实现中,前缀波束搜索模块620还使用由一个或更多个外部语言模型122生成的评分。
[0199]
图7示出了根据一些实施方式的可以在用于实现系统的各种配置中使用的一些组件的框图。例如,组件700可以包括与从环境711收集包括声学信号709的数据的传感器703或诸如声学传感器之类的传感器通信的硬件处理器701。此外,传感器703可以将声输入转换成声信号709。硬件处理器701与计算机储存存储器(即存储器713)通信,使得存储器713包括可由硬件处理器701实现的包括算法、指令和其它数据的存储数据。
[0200]
可选地,硬件处理器701可以连接到网络715,网络715与数据源717、计算机设备719、移动电话设备721和储存设备723通信。还可选地,硬件处理器701可以连接到与客户端设备727连接的网络使能服务器725。硬件处理器701可以可选地连接到外部存储器设备729和/或发送器731。此外,扬声器的文本可以根据特定用户预期用途733输出,例如,一些类型的用户用途可以包括在诸如监视器或屏幕的一个或更多个显示设备上显示文本,或者将扬声器的文本输入到计算机相关设备中用于进一步分析等。
[0201]
预期硬件处理器701可包括取决于特定应用的要求的一个或更多个硬件处理器,其中处理器可为内部的或外部的。当然,其它组件可以与组件700结合,其包括输出接口和收发器以及其它设备。
[0202]
通过非限制性示例,网络735可以包括一个或更多个局域网(lan)和/或广域网(wan),其中网络环境可以类似于企业范围的计算机网络、内部网和互联网。考虑到所提及的所有组件,可以存在与组件700一起使用的任何数量的客户端设备、储存组件和数据源。每个可以包括在分布式环境中协作的单个设备或多个设备。此外,组件700可以包括一个或更多个数据源717。数据源717包括用于训练语音识别网络的数据资源。由数据源717提供的数据可以包括标记数据和未标记数据,诸如转录的和未转录的数据。例如,在一个实施方式中,数据包括一个或更多个声音,并且还可以包括可用于初始化语音识别网络的对应转录信息或标签。
[0203]
此外,数据源717中的未标记数据可以由一个或更多个反馈回路提供。例如,可以将来自在搜索引擎上执行的口头搜索查询的使用数据提供为未转录数据。数据源的其它示例可以包括但不限于各种口语音频或图像源,其包括流式声音或视频、网络查询、移动设备相机或音频信息、网络摄像头馈源、智能眼镜和智能手表馈源、客户关怀系统、安全摄像头馈源、web文档、目录、用户馈源、sms日志、即时消息日志、口语文字转录本、诸如语音命令或捕获图像的游戏系统用户交互(例如,深度相机图像)、推特、聊天或视频通话记录或社交网络媒体。所使用的特定数据源717可基于如下应用来确定,所述应用包括数据是特定类别的数据(例如,仅与例如包括机器系统、娱乐系统的特定类型声音相关的数据)还是本质上的一般(非特定类别)的数据。
[0204]
组件700可以包括或连接到第三方设备,第三方设备可以包括任何类型的计算设备,使得可能有兴趣在计算设备上具有自动语音识别(asr)系统。例如,第三方设备可以包括计算机设备719或移动设备721。预期用户设备可以被实现为个人数字助理(pda)、诸如智能电话、智能手表、智能眼镜(或其它可佩戴智能设备)的移动设备、增强现实耳机、虚拟现实耳机。此外,用户设备可以是诸如平板电脑的膝上型计算机、遥控器、娱乐系统、车辆计算机系统、嵌入式系统控制器、电器、家庭计算机系统、安全系统、消费电子设备或其它类似电子设备。在一个实施方式中,客户端设备727能够接收输入数据,诸如可由本文描述的在设备上操作的asr系统使用的音频和图像信息。例如,第三方设备可以具有用于接收音频信息的麦克风或线路输入(line-in)、用于接收视频或图像信息的相机、或者用于从诸如因特网或数据源717的另一源接收这样的信息的通信组件(例如,wi-fi功能)。
[0205]
使用语音识别网络的asr模型可以处理输入的数据以确定计算机可用信息。例如,可以处理用户对麦克风说出的查询,以确定查询的内容,例如,如果询问了问题。示例性第三方设备719、721可选地包括在组件700中以示出可以部署深度神经网络模型的环境。此外,本公开的一些实施方式可以不包括第三方设备737、739。例如,深度神经网络模型可以在服务器上或在云网络、系统或类似布置中。
[0206]
关于储存器723,储存器723可以存储包括数据、计算机指令(例如,软件程序指令、例程或服务)和/或在本文描述的技术的实施方式中使用的模型的信息。例如,储存器723可以存储来自一个或更多个数据源717的数据、一个或更多个深度神经网络模型、用于生成和训练深度神经网络模型的信息、以及由一个或更多个深度神经网络模型输出的计算机可用信息。
[0207]
实施方式
[0208]
描述仅提供示例性实施方式,并不旨在限制本公开的范围、适用性或配置。相反,示例性实施方式的以下描述将向本领域技术人员提供用于实现一个或多个示例性实施方式的使能描述。预期可在不脱离所附权利要求书中所阐述的所公开主题的精神和范围的情况下对元件的功能和布置进行各种改变。
[0209]
在以下描述中给出具体细节以提供对实施方式的全面理解。然而,所属领域的技术人员可理解,可在没有这些特定细节的情况下实践所述实施方式。例如,所公开的主题中的系统、过程和其它元件可以以框图形式示出为组件,以便不以不必要的细节使实施方式模糊。在其它实例中,可在没有不必要细节的情况下示出众所周知的过程、结构及技术以避免使实施方式模糊。此外,各个附图中相同的参考标号和指定指示相同的元件。
[0210]
而且,可以将各个实施方式描述为作为流程图、流图、数据流图、结构图或框图而描绘的过程。尽管流程图可将操作描述为顺序过程,但许多操作可并行或同时执行。另外,可以重新布置操作的顺序。过程可在其操作完成时终止,但可具有未在图中论述或未包括的额外步骤。此外,并非在所有实施方式中都会发生任何特别描述的过程中的所有操作。过程可以对应于方法、函数、过程、子例程、子程序等。当过程对应于函数时,函数的终止可以对应于函数返回到调用函数或主函数。
[0211]
此外,所公开的主题的实施方式可以至少部分地手动或自动地实现。可通过使用机器、硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来执行或至少辅助手动或自动实施方案。当在软件、固件、中间件或微代码中实现时,用于执行必要任务的程序代码或代码段可以存储在机器可读介质中。处理器可以执行必要的任务。
[0212]
此外,本公开的实施方式和本说明书中描述的功能操作可以在数字电子电路中、在有形实现的计算机软件或固件中、在包括本说明书中公开的结构及其结构等同物的计算机硬件中、或者在它们中的一个或更多个的组合中实现。此外,本公开的一些实施方式可以被实现为一个或更多个计算机程序,即,在有形非暂时性程序载体上编码的计算机程序指令的一个或更多个模块,用于由数据处理设备执行或控制数据处理设备的操作。此外,程序指令可以在人工生成的传播信号(例如,机器生成的电信号、光信号或电磁信号)上编码,生成该传播信号以对信息进行编码,以便传输到合适的接收器设备以由数据处理设备执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行访问存储设备、或它们中的一个或更多个的组合。
[0213]
根据本公开的实施方式,术语“数据处理设备”可以包括用于处理数据的所有种类的装置、设备和机器,其包括例如可编程处理器、计算机或多个处理器或计算机。设备可以包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该设备还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或更多个的组合的代码。
[0214]
计算机程序(其也可以被称为或描述为程序、软件、软件应用、模块、软件模块、脚本或代码)可以以任何形式的编程语言(包括编译或解释的语言、或声明性或过程性语言)来编写,并且其可以以任何形式来部署,包括作为独立程序或作为模块、组件、子程序、或适于在计算环境中使用的其它单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其它程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或更多个脚本,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件(例如,存储一个或更多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在一个计算机上或在位于一个站点处或跨多个站点分布并通过通信网络互连的多个计算机上执行。适于执行计算机程序的计算机例如可以基于通用或专用微处理器或两者,或任何其它类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或实行指令的中央处理单元和用于存储指令和数据的一个或更多个存储设备。通常,计算机还将包括或可操作地联接以从用于存储数据的一个或更多个大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据或将数据传输到一个或更多个大容量存储设备或两者。然而,计算机不需要具有这种设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控
制台、全球定位系统(gps)接收器或例如通用串行总线(usb)闪存驱动器等的便携式存储设备等。
[0215]
为了提供与用户的交互,本说明书中描述的主题的实施方式可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备,例如crt(阴极射线管)或lcd(液晶显示器)监视器,以及键盘和定点设备,例如鼠标或轨迹球,用户可以通过该定点设备向计算机提供输入。也可以使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以包括声学、语音或触觉输入的任何形式接收来自用户的输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求向用户的客户端设备上的web浏览器发送网页来与用户交互。
[0216]
本说明书中描述的主题的实施方式可以在计算系统中实现,该计算系统包括后端组件,例如作为数据服务器;或者包括中间件组件,例如应用服务器;或者包括前端组件,例如,具有图形用户界面或web浏览器的客户端计算机,用户可以通过该图形用户界面或web浏览器与本说明书中描述的主题的实现交互,或者一个或更多个这样的后端、中间件或前端组件的任意组合。系统的组件可以通过数字数据通信的任何形式或介质(例如通信网络)互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”),例如互联网。
[0217]
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而出现。
[0218]
虽然已经参考某些优选实施方式描述了本公开,但是应当理解,在本公开的精神和范围内可以进行各种其它的改编和修改。因此,所附权利要求的方面覆盖了落入本公开的真实精神和范围内的所有这些变化和修改。

技术特征:


1.一种基于计算机的自动语音识别系统,其中,所述系统使用与实现所述系统的模块的存储指令联接的处理器,其中,执行所述指令的处理器被配置为:将传入的表示语音话语的特征的声学帧流编码为经编码声学特征帧的编码器状态序列;并且用帧同步解码器fsd模块连续处理经编码声学特征帧的每个编码器状态直到满足终止条件为止,其中,所述fsd模块响应于识别携带关于新转录输出的信息的编码器状态而扩展当前的fsd前缀列表以产生候选的fsd前缀列表和对应的fsd评分,其中,候选列表中的每个fsd前缀是所述fsd模块对由所述fsd模块处理的编码器状态中的经解码转录输出的估计,其中,fsd前缀为所述经解码转录输出的概率由所述对应的fsd评分定义,其中,响应于产生所述候选的fsd前缀列表,所述处理器被配置为:选择所述编码器状态的包括由所述fsd模块识别的编码器状态在内的部分,并且触发标签同步解码器lsd模块来处理所述编码器状态的选定部分,以根据所述lsd模块确定lsd评分,所述lsd评分定义所述候选的fsd前缀列表中的fsd前缀为所述编码器状态的选定部分中的所述经解码转录输出的概率;根据由对应的fsd评分和lsd评分的组合定义的联合评分来修剪所述候选的fsd前缀列表;并且用修剪的fsd前缀列表替换所述当前的fsd前缀列表,以继续解码下一个转录输出。2.根据权利要求1所述的系统,其中,所述当前的fsd前缀列表的大小是固定的并且小于所述候选的fsd前缀列表的大小,使得修剪保留所述候选的fsd前缀列表中的具有最高联合评分的n个最佳fsd前缀,其中n是所述当前的fsd前缀列表的大小。3.根据权利要求1所述的系统,其中,所述处理器仅替换fsd前缀而不替换经替换的当前fsd前缀列表中的fsd评分。4.根据权利要求1所述的系统,其中,所述处理器被配置为输出具有最高联合评分的fsd前缀,作为所传入的声学帧流的与所述编码器状态序列的所述部分相对应的一部分的经解码转录输出。5.根据权利要求1所述的系统,其中,所述fsd模块包括:联结主义时间分类ctc神经网络,其输出每个编码器状态的转录输出概率;以及前缀波束搜索模块,其被配置为搜索所述ctc神经网络的输出以产生fsd评分高于阈值的候选的fsd前缀列表,其中,每个fsd评分是在折叠重复标签和去除空白符号之后导致相同前缀的所有转录输出序列的所有概率的总和,其中,所述前缀波束搜索模块基于根据所述联合评分修剪的当前的fsd前缀列表的fsd评分来计算所述候选的fsd前缀列表的fsd评分。6.根据权利要求1所述的系统,其中,所述fsd模块包括具有递归神经网络换能器rnn-t架构的神经网络。7.根据权利要求1所述的系统,其中,所述lsd模块包括基于关注的解码器神经网络。8.根据权利要求7所述的系统,其中,所述lsd模块确定作为输入提交的编码器状态的每个分区的对应lsd评分和lsd前缀列表,并且输出仅用于与所述fsd前缀匹配的lsd前缀的lsd评分。9.根据权利要求1所述的系统,其中,所述系统的模块包括同步模块,该同步模块被配
置为通过触发所述lsd模块来处理所述编码器状态的包括由所述fsd模块识别的新转录输出的部分并且通过使所述lsd模块估计由所述fsd模块产生的fsd前缀的lsd评分,来使所述fsd模块和所述lsd模块在时域和前缀域中同步。10.根据权利要求9所述的系统,其中,所述同步模块从所述序列的开始选择所述编码器状态序列的所述部分直到超前编码器状态,其中,通过以固定移位向前移位由所述fsd模块识别的所述编码器状态的位置来确定所述超前编码器状态。11.根据权利要求9所述的系统,其中,所述同步模块选择所述编码器状态序列的一部分,该部分包括相对于由所述fsd模块识别的编码器状态的位置的预定数量的超前编码器状态和预定数量的回顾编码器状态。12.根据权利要求1所述的系统,其中,所述系统的模块包括利用所述fsd模块和所述lsd模块联合训练的编码器神经网络,以形成触发关注ta神经网络。13.根据权利要求12所述的系统,其中,所述编码器包括基于并行延时长短期记忆ptdlstm流的单向编码器神经网络。14.根据权利要求12所述的系统,其中,所述编码器和所述lsd模块使用变换器架构实现。15.一种非暂时性计算机可读存储介质,其上实现有包括由处理器能执行的用于执行自动语音识别的模块的程序,所述模块包括:编码器,其被配置为将传入的表示语音话语特征的声学帧流编码为经编码声学特征帧的编码器状态序列;帧同步解码器fsd模块,其被配置为连续处理经编码声学特征帧的每个编码器状态,以响应于识别携带关于新转录输出的信息的编码器状态而扩展当前的fsd前缀列表,以产生候选的fsd前缀列表和对应fsd评分,候选列表中的每个fsd前缀是所述fsd模块对由所述fsd模块处理的编码器状态中的解码转录输出的估计,其中,fsd前缀为经解码转录输出的概率由所述对应fsd评分来定义;同步模块,其被配置成选择所述编码器状态的包括由所述fsd模块识别的编码器状态在内的一部分;标签同步解码器lsd模块,其被配置为处理编码器状态的选定部分以根据所述lsd模块将所述fsd前缀的fsd评分与定义所述fsd前缀为所述经解码转录输出的概率的对应lsd评分联合;联合评分模块,其被配置为根据联合的fsd评分和lsd评分对所述fsd前缀进行修剪,并用修剪后的fsd前缀列表替换所述当前的fsd前缀列表,以继续解码下一转录输出;以及输出接口,其被配置为输出具有最高联合评分的fsd前缀作为由所述fsd模块处理的编码器状态的传入声学帧流的所述经解码转录输出。16.根据权利要求15所述的介质,其中,所述同步模块被配置为通过触发所述lsd模块来处理所述编码器状态的包括由所述fsd模块识别的新转录输出在内的所述部分并且通过将所述fsd前缀传递给所述lsd模块以使得所述lsd模块能够估计所述fsd前缀的lsd评分,来使所述fsd模块和所述lsd模块在时域和前缀域中同步。17.根据权利要求15所述的介质,其中,所述fsd模块包括:联结主义时间分类ctc神经网络,其输出每个编码器状态的转录输出概率;以及
前缀波束搜索模块,其被配置为搜索所述ctc神经网络的输出以产生fsd评分高于阈值的候选的fsd前缀列表,其中,每个fsd评分是在折叠重复标签并去除空白符号之后导致相同前缀的所有转录输出序列的所有概率的总和,其中,所述前缀波束搜索模块基于根据所述联合评分修剪的当前fsd前缀列表的fsd评分来计算所述候选的fsd前缀列表的fsd评分;并且其中,所述lsd模块包括基于关注的解码器神经网络。18.根据权利要求15所述的介质,其中,所述模块进一步包括:外部语言模型,其被配置为对所述候选的fsd前缀列表进行评分,其中,所述联合评分模块用所述外部语言模型确定的评分来更新联合的fsd评分和lsd评分,并且基于更新的联合fsd和lsd评分来修剪所述候选的fsd前缀列表。19.一种用于自动语音识别的方法,其中,所述方法使用与实现所述方法的存储指令联接的处理器,其中,所述指令在被所述处理器执行时执行所述方法的步骤,所述方法包括以下步骤:将传入的表示语音话语特征的声学帧流编码为经编码声学特征帧的编码器状态序列;用帧同步解码器fsd模块连续处理经编码声学特征帧的每个编码器状态直到满足终止条件为止,其中,所述fsd模块响应于识别携带关于新转录输出的信息的编码器状态而扩展当前的fsd前缀列表以产生候选的fsd前缀列表和对应fsd评分,其中,候选列表中的每个fsd前缀是所述fsd模块对由所述fsd模块处理的编码器状态中的经解码转录输出的估计,其中,fsd前缀为所述经解码转录输出的概率由所述对应fsd评分定义;选择所述编码器状态的包括由所述fsd模块识别的编码器状态在内的部分;触发标签同步解码器lsd模块来处理所述编码器状态的选定部分,以根据所述lsd模块确定lsd评分,所述lsd评分定义所述候选的fsd前缀列表中的fsd前缀为所述编码器状态的选定部分中的所述经解码转录输出的概率;根据由相应的fsd评分和lsd评分的组合定义的联合评分来修剪所述候选的fsd前缀列表;以及用修剪的fsd前缀列表替换当前的fsd前缀列表,以继续解码下一个转录输出。20.根据权利要求19所述的方法,所述方法还包括以下步骤:输出具有最高联合评分的fsd前缀,作为传入声学帧流的与所述编码器状态序列的所述部分相对应的一部分的经解码转录输出。

技术总结


语音识别系统利用帧同步解码器(FSD)模块和标签同步解码器(LSD)模块连续处理经编码声学特征的每个编码器状态。当识别出携带关于新转录输出的信息的编码器状态时,系统利用FSD模块扩展当前的FSD前缀列表,利用LSD模块评估FSD前缀,并根据联合的FSD评分和LSD评分修剪FSD前缀。通过使LSD模块处理编码器状态的包括由FSD模块识别的新转录输出的部分并产生由FSD模块确定的FSD前缀的LSD评分,来使FSD模块和LSD模块同步。和LSD模块同步。和LSD模块同步。


技术研发人员:

N

受保护的技术使用者:

三菱电机株式会社

技术研发日:

2020.12.04

技术公布日:

2022/7/22

本文发布于:2024-09-22 04:07:48,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/15796.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模块   前缀   编码器   转录
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议