用于训练多语言语音识别网络的方法和系统以及用于执行多语言语音识别的语音识别系统

文档序号:1246809 发布日期:2020-08-18 浏览:5次 >En<

阅读说明:本技术 用于训练多语言语音识别网络的方法和系统以及用于执行多语言语音识别的语音识别系统 (Method and system for training a multilingual speech recognition network and speech recognition system for performing multilingual speech recognition ) 是由 渡部晋司 堀贵明 关博史 J·勒鲁克斯 J·赫尔希 于 2018-05-31 设计创作,主要内容包括:一种用于训练多语言语音识别网络的方法包括:提供与预定语言相对应的话语数据集;在话语数据集中插入语言标识(ID)标签,其中,话语数据集中的每一个由语言ID标签中的每一个来加标签;将加标签的话语数据集级联;从话语数据集生成初始网络参数;根据预定序列选择初始网络参数;以及用一系列所选择的初始网络参数和级联的加标签的话语数据集迭代地训练端到端网络,直到训练结果达到阈值。(A method for training a multilingual speech recognition network comprising: providing an utterance data set corresponding to a predetermined language; inserting language Identification (ID) tags in the utterance data set, wherein each of the utterance data set is tagged by each of the language ID tags; concatenating the tagged utterance data set; generating initial network parameters from the utterance data set; selecting initial network parameters according to a predetermined sequence; and iteratively training the end-to-end network with the series of selected initial network parameters and the concatenated tagged utterance dataset until a training result reaches a threshold.)

用于训练多语言语音识别网络的方法和系统以及用于执行多 语言语音识别的语音识别系统

技术领域

本发明总体上涉及用于多语言端到端语音识别的设备及方法,更具体地,涉及用于训练用于联合进行语言识别和语音识别的神经网络的方法及系统。

背景技术

端到端自动语音识别(ASR)最近通过达到传统混合ASR系统获得的最先进性能,同时在易于开发性方面也超过了它们,从而证明了其有效性。传统ASR系统需要诸如发音词典和单词分段之类的语言依存资源,这些资源被并入以音素作为中间表示的模型中。这些资源是手工开发的,因此存在两个缺点:首先,它们可能易于出错,或者在其它方面是次优的;其次,它们极大地增加了开发ASR系统(特别是针对新语言)所需的工作量。因此,语言依存资源的使用使得多语言识别系统的开发尤其复杂。相反,端到端ASR系统在没有诸如音素或单词之类的表示语音/语言结构的任何明确中间表示的情况下,将输入语音特征序列直接转换为输出标签序列(在本发明的实施方式中,主要是由n-gram字符组成的字符或标识的序列)。它们的主要优点在于避免了对手工制作的语言依存资源的需求。

关于多语言/语言独立ASR已有一些在先研究。在基于深度神经网络(DNN)的多语言系统的上下文中,使用DNN计算语言独立瓶颈特征。因此,有必要准备语言依存的后端系统,例如发音词典和语言模型。另外,有必要预测说出的语言以将语言独立模块和语言依存模块级联。

发明内容

在本发明中,公开了一种具有语言独立神经网络架构的系统和方法,该系统和方法能够在多种不同语言中联合地识别语音并标识语言。例如,本发明使我们能够自动识别英语、日语、汉语普通话、德语、西班牙语、法语、意大利语、荷兰语、葡萄牙语和俄语的话语,并联合标识每句话语的语言。

根据本发明的实施方式,网络跨语言共享包括softmax层的所有参数。

例如,由于网络通过级联多种语言的字素集来共享包括softmax层的所有参数,因此本发明的语言独立神经网络架构能够在诸如英语、日语、汉语普通话、德语、西班牙语、法语、意大利语、荷兰语、葡萄牙语、俄语等的不同语言中联合地识别语音并且标识语言。

本发明的语言独立神经网络能够通过以下步骤进行多语言端到端语音识别:(1)制作作为来自多种语言的字素集和语言ID的并集的通用标签集,并基于此构建初始网络,(2)将语言ID标签插入到多个不同语言语料库的每句话语的转录中,(3)通过从多个不同语言语料库中选择一句或多句话语并将它们以任意顺序级联来生成话语,其中,相应的转录也以相同的顺序级联,(4)用生成的话语和转录来训练初始网络,以及(5)用经训练的网络识别语音。

这种用于多语言语音识别的整体式端到端ASR系统具有3个优点:首先,整体式架构去除了语言依存ASR模块和外部语言标识模块;其次,端到端架构使得无需准备手工制作的发音词典;以及第三,共享网络,使得即使对于资源匮乏的语言,也能够学习更好的特征表示。

因为训练数据被增广为包括语言切换,所以本发明还使得即使在语音信号中存在语言切换,端到端ASR系统也可以正确地工作。

根据本发明的一些实施方式,一种用于训练多语言语音识别网络的方法包括:提供与预定语言相对应的话语数据集;在话语数据集中插入语言标识(ID)标签,其中,话语数据集中的每一个由语言ID标签中的每一个来加标签;将加标签的话语数据集级联;从话语数据集生成初始网络参数;以及用一系列的初始网络参数和级联的加标签的话语数据集迭代地训练端到端网络,直到训练结果达到阈值。

此外,根据本发明的实施方式,一种用于执行多语言语音识别的语音识别系统包括:接收讲话声音的接口;一个或更多个处理器;以及一个或更多个储存装置,该一个或更多个储存装置存储通过由用于训练多语言语音识别网络的方法所获得的经训练的网络参数已经训练的端到端语音识别网络模块,其中,端到端语音网络识别模块包括指令,当执行该指令时使一个或更多个处理器执行包括以下操作:使用声学特征提取模块,从由讲话声音转换的音频波形数据中提取声学特征序列;使用具有编码器网络参数的编码器网络将声学特征序列编码为隐藏向量序列;通过将隐藏向量序列馈送到具有解码器网络参数的解码器网络来预测第一输出标签序列概率;由联接主义时序分类(CTC)模块使用CTC网络参数和来自编码器网络的隐藏向量序列,预测第二输出标签序列概率;以及使用标签序列搜索模块,通过组合从解码器网络和CTC模块提供的第一输出标签序列概率和第二输出标签序列概率,搜索具有最高序列概率的输出标签序列。

更进一步地,根据本发明的实施方式,一种用于生成用于多语言语音识别的经训练的网络参数的多语言语音识别系统包括:一个或更多个处理器;以及一个或更多个储存装置,该一个或更多个储存装置存储参数和包括一个或更多个处理器能执行的指令的程序模块,当执行指令时使得一个或更多个处理器执行包括以下操作:提供与预定语言相对应的话语数据集;在话语数据集中插入语言标识(ID)标签,其中,话语数据集中的每一个由语言ID标签中的每一个来加标签;将加标签的话语数据集级联;从话语数据集生成初始网络参数;以及根据预定序列选择初始网络参数;以及用一系列所选择的初始网络参数和级联的加标签的话语数据集迭代地训练端到端网络,直到训练结果达到阈值。

将参照附图进一步解释当前公开的实施方式。所示出的附图不一定按比例绘制,而是通常将重点放在示例当前公开的实施方式的原理上。

附图说明

[图1]

图1是例示了根据本发明的实施方式的用于多语言语音识别的方法的框图。

[图2]

图2是例示了根据本发明的实施方式的使用多语言端到端网络的语音识别模块的框图。

[图3]

图3是例示了根据本发明的实施方式的多语言语音识别模块中的神经网络的示意图。

[图4]

图4是例示了根据本发明的实施方式的多语言语音识别系统的框图。

[图5]

图5是例示了根据本发明的实施方式的多语言语音识别模块中的神经网络的示意图。

[图6]

图6是根据本发明的实施方式的训练多语言语音识别模块的数据准备过程。

[图7]

图7是根据本发明的实施方式的、根据多语言语音识别的指示作为话语中的语言数量的函数的字符错误率的评估结果。

[图8]

图8例示出了根据本发明的实施方式的多语言语音识别的示例输出。

具体实施方式

尽管上面标识的附图阐述了当前公开的实施方式,但是如讨论中所指出的,也可以考虑其它实施方式。本公开通过表示而非限制的方式呈现了示例性实施方式。本领域技术人员可以设计落入当前公开的实施方式的原理的范围和精神内的许多其它变型和实施方式。

在本发明的优选实施方式中,使用不同语言的多个语音语料库来构建语言独立神经网络。

神经网络可以用于识别讲出的话语,并联合识别话语的语言。例如,该神经网络可以用于自动转录英语、日语、汉语普通话、德语、西班牙语、法语、意大利语、荷兰语、葡萄牙语和俄语的话语,并联合标识每种话语的语言。如果有人用英语向根据本发明的实施方式构建的系统说“How are you?”时,系统可以以文本格式输出“[EN]how are you?”。如果另一人用法语向该系统说“comment allez-vous?”,则它可以以文本格式输出“[FR]commentallez-vous?”。[EN]和[FR]分别代表与英语和法语相对应的语言ID标签。如果有人用英语和法语向系统说“How are you?comment allez-vous?”,则系统可以以文本格式输出“[EN]How are you?[FR]comment allez-vous?”。

以下描述仅提供了示例性实施方式,并非旨在限制本公开的范围、适用性或配置。相反,示例性实施方式的以下描述将为本领域技术人员提供能够用于实现一个或更多个示例性实施方式的描述。在不脱离如所附权利要求书中提出的那样公开的主题的精神和范围的情况下,可以想到在元件的功能和布置上可进行各种变型。

在以下描述中给出了具体细节以提供对实施方式的透彻理解。然而,本领域普通技术人员可以理解,实施方式可以在没有这些具体细节的情况下来实践。例如,所公开的主题中的系统、过程和其它元件可以以框图形式示出为组件,以免在不必要的细节上模糊实施方式。在其它情况下,可以示出公知的过程、结构和技术,而没有不必要的细节,以避免使实施方式模糊。此外,各个附图中相似的附图标记和指定指示了相似的元件。

另外,各个实施方式可以被描述为这样的过程,该过程被描述为流程图、流图、数据流图、结构图或框图。尽管流程图可以将操作描述为顺序过程,但是许多操作可以并行或并发地执行。另外,操作的次序可以重新排列。当过程的操作完成时,过程可以终止,但是可以具有未讨论或未包含在附图中的其它步骤。此外,在具体描述的任何过程中的所有操作并非可以在所有实施方式中发生。过程可以对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,函数的终止可以对应于函数返回到调用函数或主函数。

此外,所公开主题的实施方式可以至少部分或者手动地或自动地实现。手动或自动实现可以通过使用机器、硬件、软件、固件、中间件、微代码、硬件描述语言或其任意组合来实施或至少得到辅助。当以软件、固件、中间件或微代码实现时,执行必要任务的程序代码或代码段可以存储在机器可读介质中。处理器可以执行必要任务。

本公开中示例的模块和网络可以是可以使用一个或更多个处理器来执行的计算机程序、软件或指令代码。模块和网络可以存储在一个或更多个储存装置中,或者以其它方式存储在诸如储存介质、计算机储存介质或数据储存设备(可移动和/或不可移动)之类的计算机可读介质中(例如,磁盘、光盘或磁带),其中,从一个或更多个处理器可访问计算机可读介质以执行指令。

计算机储存介质可以包括以任何方法或技术实现的用于储存诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的易失性和非易失性、可移动和不可移动介质。计算机储存介质可以是RAM、ROM、EEPROM或闪存、CD-ROM、数字多功能磁盘(DVD)或其它光储存器、盒式磁带、磁带、磁盘储存器或其它磁储存装置,或能够用于存储所需信息并且能够通过使用一个或更多个处理器的应用、模块或应用和模块二者访问的任何其它介质。任何这样的计算机储存介质可以是装置的一部分,或者可以是装置可访问的介质或者可连接至装置。可以使用可由这种计算机可读介质存储或以其它方式保存的计算机可读/可执行指令来实现本文描述的任何应用或模块。

图1示出了图4中的储存器430中存储的多语言语音识别模块100。多语言语音识别模块100是处理器(硬件处理器)可执行程序,其包括诸如语言ID插入模块112、话语级联模块113、初始网络构建模块115、端到端网络训练模块117和端到端语音识别模块200之类的程序模块(计算机可执行指令模块)。多语言语音识别模块100中包括的程序模块112、113、115、117和100也在图4中绘出。另外,储存器430包括将在后面讨论的编码器网络模块202、注意力解码器网络模块204、CTC模块208和端到端语音识别模块200。

多语言语音识别模块100根据以下步骤构建语言独立网络:

(1)初始网络构建模块115使用利用不同语言的语音语料库110的字素集和语言ID的并集而获得的通用标签集来制作(生成)初始网络参数116。

(2)语言ID插入模块112将语言ID标签插入到不同语言的语音语料库110中的每句话语的转录中。

(3)话语级联模块113通过从不同语言的语音语料库110中选择一句或更多句话语并以随机次序将它们级联来生成话语,其中,相应的转录也以与级联话语相同的次序来级联。

(4)端到端网络训练模块117使用生成的话语和转录来优化初始网络参数116,并输出经训练的网络参数118。

在一些情况下,不同语言的语音语料库110可以称为声学数据集110。此外,根据系统设计,本公开中指示的模块和网络参数可以存储在一个储存器或多个储存器中,并且模块是通过图4中所示的处理器430的计算机(硬件处理器)可执行程序。处理器430可以是一个或更多个(硬件)处理器(计算机)。每个模块通过被一个处理器或多个处理器执行,来执行一个预定处理或多个预定处理。

使用经训练的网络参数118中存储的语言独立网络,端到端语音识别模块200能够联合识别语音和用于语音输入的语言ID,并输出识别结果。

图2是例示了根据本发明的实施方式的端到端语音识别模块200的框图。

端到端语音识别模块200包括编码器网络模块202、编码器网络参数203、注意力解码器模块204、解码器网络参数205、标签序列搜索模块206、CTC模块208、CTC网络参数209。编码器网络参数203、解码器网络参数205和CTC网络参数209分别存储在储存装置中以向相应模块202、204和208提供参数。使用图4中的声学特征提取模块434从音频波形数据或频谱数据中提取声学特征序列201。音频波形数据或频谱数据可以存储在储存装置中并提供给编码器网络模块202。音频波形数据或频谱数据可以使用接收话语声音并将话语声音转换为音频波形或频谱数据的数字信号处理模块(未示出)经由图4中的输入装置475获得。此外,存储在储存装置430或存储器440中的音频波形或频谱数据可以被提供给编码器网络模块202。可以经由图4中的网络490提供话语声音的信号,并且输入装置475可以是麦克风装置。

编码器网络模块202包括编码器网络,使用从编码器网络参数203读取参数的编码器网络将声学特征序列201转换为隐藏向量序列。

使用注意力解码器网络204的注意力机制描述如下。注意力解码器网络模块204包括解码器网络。注意力解码器网络模块204接收来自编码器网络模块202的隐藏向量序列以及来自标签序列搜索模块206的先前标签,然后使用从解码器网络参数205中读取参数的解码器网络针对先前标签计算下一标签的第一后验概率分布。注意力解码器网络模块204将第一后验概率分布提供给标签序列搜索模块206。CTC模块208接收来自编码器网络模块202的隐藏向量序列以及来自标签序列搜索模块206的先前标签,并使用CTC网络参数209和动态编程技术计算下一标签序列的第二后验概率分布。在计算之后,CTC模块208将第二后验概率分布提供给标签序列搜索模块206。

标签序列搜索模块206使用从注意力解码器网络模块204和CTC模块208提供的第一后验概率分布和第二后验概率分布来找到具有最高序列概率的标签序列。由注意力解码器网络模块204和CTC模块208计算出的标签序列的第一后验概率和第二后验概率被组合为一个概率。在这种情况下,可以基于线性组合来执行计算出的后验概率的组合。利用端到端语音识别模块200,能够考虑CTC概率来找到针对输入声学特征序列的更好的对齐假设。

用于语言独立的端到端语音识别的神经网络架构

端到端语音识别通常被定义为在给定输入声学特征序列X的情况下找到最可能的标签序列的问题,即,

其中,表示在给定预定义标签的集合的情况下的可能标签序列的集合,标签可以是字符或单词。可以使用预训练的神经网络来计算标签序列概率p(Y|X)。

在本发明的实施方式中,语言独立的神经网络可以是诸如前馈神经网络(FFNN)、卷积神经网络(CNN)和递归神经网络(RNN)之类的不同网络的组合。

例如,混合注意力/CTC架构可以用于语言独立的神经网络。图2是例示了使用具有混合注意力/CTC架构的多语言端到端网络的语音识别模块200的框图,其中,标签序列概率按如下计算。

编码器模块202包括用于将声学特征序列X=x1,…,xT转换为隐藏向量序列H=h1,…,hT的编码器网络,如

H=Encoder(X), (2)

其中,函数Encoder(X)可以由层叠的一个或更多个递归神经网络(RNN)组成。RNN可以实现为长短期记忆(LSTM),LSTM在每个隐藏单元中具有输入门、忘记门、输出门和存储单元。另一RNN可以是双向RNN(BRNN)或双向LSTM(BLSTM)。BLSTM是一对LSTM RNN,其中一个是前向LSTM并且另一个是后向LSTM。BLSTM的隐藏向量作为前向LSTM和后向LSTM的隐藏向量的级联而被获得。

使用前向LSTM,将前向第t隐藏向量计算为

其中,σ(·)是逐元素的S型函数,tanh(·)是逐元素的双曲正切函数,并且分别是xt的输入门、忘记门、输出门和单元激活向量。⊙表示向量之间的逐元素乘法。权重矩阵和偏差向量是LSTM的由下标z∈{x,h,i,f,o,c}标识的参数。例如,是隐藏到输入门的矩阵,并且是输入到输出门的矩阵。隐藏向量是从输入向量xt和先前的隐藏向量递归获得的,其中,假设为零向量。

使用后向LSTM,将后向第t隐藏向量计算为

其中,分别是xt的输入门、忘记门、输出门和单元激活向量。权重矩阵和偏差向量是LSTM的以与前向LSTM相同方式由下标标识的参数。隐藏向量是从输入向量xt和后续的隐藏向量递归获得的,其中,假设为零向量。

通过按下式将前向隐藏向量和后向隐藏向量级联来获得BLSTM的隐藏向量:

其中,T表示假设全部向量为列向量而对向量的转置操作。被视为BLSTM的参数。

为了获得更好的隐藏向量,我们可以通过将第一BLSTM的隐藏向量馈送至第二BLSTM,然后将第二BLSTM的隐藏向量馈送至第三BLSTM等,来层叠多个BLSTM。如果ht′是由一个BLSTM获得的隐藏向量,则当将其馈送至另一BLSTM时,我们假设xt=ht′。为了减少计算量,可以仅将一个BLSTM的每隔一个隐藏向量馈送至另一BLSTM。在这种情况下,输出隐藏向量序列的长度变为输入声学特征序列长度的一半。

多个BLSTM的由下标z∈{x,h,i,f,o,c}标识的参数全部被存储在编码器网络参数203中,并用于计算隐藏向量序列H。

注意力解码器模块104包括解码器网络,该解码器网络用于使用隐藏向量序列H来计算标签序列概率patt(Y|X)。假设Y是L长度的标签序列y1,y2,...,yL。为了有效地计算patt(Y|X),可以通过概率链规则将概率分解为

并且每个标签概率patt(yl|y1,…,yl-1,X)是从关于标签的概率分布中获得的,该概率分布使用解码器网络估算为:

patt(y|y1,…,yl-1,X)=Decoder(rl,ql-1), (15)

其中,y是表示标签的随机变量,rl称为内容向量,其具有H的内容信息。ql-1是解码器状态向量,其包含先前标签y1,...,yl-1和先前内容向量r0,...,rl-1.的上下文信息。因此,在给定上下文的情况下,标签概率作为y=yl的概率而被获得,即,

patt(yl|y1,…,yl-1,X)=patt(y=yl|y1,…,yl-1,X) (16)

内容向量rl通常作为编码器网络的隐藏向量的加权和给出,即,

其中,alt称为注意力权重,其满足∑talt=1。可以使用ql-1和H如下计算注意力权重:

elt=wTtanh(Wql-1+Vht+Uflt+b) (18)

fl=F*al-1 (19)

其中,W、V、F和U是矩阵,w和b是作为解码器网络的可训练参数的向量。elt是第(l-1)状态向量ql-1与第t隐藏向量ht之间的匹配评分,以形成时间对齐分布al={alt|t=1,...,T}。al-1代表用于预测先前标签yl-1的先前对齐分布{a(l-1)t|t=1,...,T}。fl={flt|t=1,...,T}是对于al-1的与F的卷积结果,其用于将先前对齐反映到当前对齐中。“*”表示卷积运算。

用状态向量ql-1和内容向量rl按下式来获得标签概率分布:

Decoder(rl,ql-1)=softmax(Wqyql-1+Wryrl+by), (21)

其中,Wqy和Wry是矩阵,并且by是向量,这些是解码器网络的可训练参数。对于K维向量v,softmax()函数如下地计算:

其中,v[i]表示v的第i元素。

之后,使用LSTM按下式将解码器状态向量ql-1更新为ql

其中,分别是输入向量xl的输入门、忘记门、输出门和单元激活向量。权重矩阵和偏差向量是LSTM的以与前向LSTM相同的方式由下标标识的参数。状态向量ql是从输入向量和先前状态向量ql-1递归获得的,其中假设q-1=0、y0=<sos>、a0=1/T来计算q0。对于解码器网络,将输入向量作为标签yl和内容向量rl的级联向量给出,这可以按照来获得,其中Embed(·)表示标签嵌入,将标签转换为固定维的向量。例如,可以通过下式来计算

其中,OneHot(y)表示标签y的N分之1编码,它将标签索引转换为一个热向量表示。是作为可训练参数的矩阵。

由下标z∈{x,h,i,f,o,c}标识的参数以及Wqy,Wry,by全部存储在解码器网络参数205中,并用于计算标签概率分布patt(y=yl|y1,…,yl-1,X)。

CTC模块208计算给定隐藏向量序列H的标签序列Y的CTC前向概率。请注意,CTC公式使用具有不同标签的集合的长度L的标签序列通过引入带有附加“空白”标签的逐帧标签序列,其中b代表空白标签。通过使用概率链规则和条件独立假设,后验分布p(Y|X)被如下分解:

其中,认为p(zt|zt-1|Y)是包含空白标签的标签转移概率。p(zt|X)是以输入序列X为条件的逐帧后验分布,并使用双向长短期记忆(BLSTM)进行建模:

其中,用编码器网络获得ht是矩阵并且是向量,它们是CTC的可训练参数并存储在CTC网络参数209中。虽然式(29)必须处理所有可能Z的求和,但是通过使用前向算法可以有效地进行计算。

CTC的前向算法如下执行。我们使用长度为2L+1的扩展标签序列Y′=y′1,y′2,...,y′2L+1=b,y1,b,y2,...,b,yL,b,其中,在每对相邻标签之间插入空白标签“b”。设αt(s)为前向概率,它表示时间帧1,...,t内标签序列y1,...,yl的后验概率,其中s指示在扩展标签序列Y′中的位置。

对于初始化,我们设置:

α1(1)=p(z1=b|X) (31)

α1(2)=p(z1=y1|X) (32)

对于t=2至T,按如下以递归方式计算αt(s)

其中,

最后,按下式获得基于CTC的标签序列概率

pctc(Y|X)=αT(2L+1)+αT(2L). (36)

逐帧标签序列Z表示输入声学特征序列X与输出标签序列Y之间的对齐。当计算前向概率时,式(34)的递归强制Z为单调的,并且在对齐Z中不允许循环或s的大跳转,因为获得αt(s)的递归最多只考虑了αt-1(s)、αt-1(s-1)、αt-1(s-2)。这意味着,当时间帧前进一帧时,标签将从先前标签或空白改变,或保持相同的标签。此约束起转移概率p(zt|zt-1,Y)的作用,该转移概率p(zt|zt-1,Y)将对齐强制为单调。因此,当pctc(Y|X)基于不规则(非单调)对齐来计算时,其可以为0或非常小的值。

最后,我们通过按下式将式(36)中的基于CTC的概率和式(14)中的基于注意力的概率在对数域中组合来获得标签序列概率:

log p(Y|X)=λlog pctc(Y|X)+(1-λ)log patt(Y|X), (37)

其中,λ是缩放权重,使得0≤λ≤1,并且可以手动确定。

图3是例示了根据本发明的实施方式的组合神经网络模块300的示意图。组合神经网络300包括编码器网络模块202、注意力解码器网络模块204和CTC模块208。每个箭头表示进行变换或不进行转换的数据传输,每个方形节点或圆形节点表示向量或预测标签。声学特征序列X=x1,...,xT被馈送到编码器网络模块202,在该编码器网络模块202中层叠有两个BLSTM,并且第一BLSTM的每隔一个隐藏向量被馈送到第二BLSTM。编码器模块202的输出得到隐藏向量序列H=h′1,h′2,...,h′T′,其中T′=T/2。然后,将H馈送到CTC模块208和解码器网络模块204。基于CTC的序列概率和基于注意力的序列概率分别用CTC模块208、注意力解码器网络模块204来计算,并且被组合以获得标签序列概率。

联合语言标识和语音识别

语言独立的端到端系统的关键思想是,将包括所有目标语言中出现的字符集的并集在内的增广字符集视为输出标签的集合,即,其中是特定语言的字符集。通过使用这种增广字符集,可以在无需单独的语言标识模块的情况下针对任何语言计算字符序列的可能性。训练网络以自动预测每句话语的目标语言的正确字符序列。与使用每种语言的唯一字符集相反,并集的使用消除了多种语言中出现的输出符号的重复,并产生了更紧凑的模型表示,同时降低了计算成本。语言独立系统在给定连续多语言语音的情况下重复对语言ID和语音识别的预测。

此外,通过进一步增广输出标签的集合以包括语言ID,语言ID的预测成为系统的明确部分,即,将用作端到端语音识别的标签的集合根据本发明的实施方式,网络首先预测语言ID,k∈{[EN],[JP],…}。代替后验分布p(Y|X),其中Y=y1,...,yL中的字符序列并且X是声学特征向量的序列,系统将语言ID和字符序列的联合分布p(k,Y|X)建模为增广序列Y′=(k,Y)的联合分布,其中,y′1=k并且通过使用概率链规则用公式表示为:

此外,对于在话语中包括多种语言的情况,允许网络始终输出多种语言ID。对于中的字符序列Y′=y′1,...,y′L,我们用l1,...,lN表示作为语言ID的、Y′中的字符的索引(即,kn∈{[EN],[JP],…})。系统现在将语言ID和字符的联合分布建模为:

这与诸如“[EN]how<space>are<space>you?[FR]comment<space>allez-vous?”,其中,<space>正式表示空格字符的、包括语言ID的语言混合字符序列的分布的建模相同。

混合注意力/CTC架构可以用于对这种语言混合字符序列进行建模。当识别出语言混合话语时,网络能够切换输出序列的语言。图5示出了使用混合注意力/CTC网络的字符序列预测的示例。编码器网络通过采用由日语和英语语音组成的声学特征作为输入来计算隐藏向量序列。尽管在示例中我们假设x1,…,x5对应于日语并且x6,…,xT对应于英语,但是在实际的声学特征序列中没有区分语言的指示符。根据本发明的实施方式,注意力解码器网络能够预测后跟日语字符序列的语言ID“[JP]”,并且在对第一个日语字符序列进行解码之后,网络可以进一步预测与跟随的字符序列匹配的语言ID,这里是“[EN]”。

用于多语言语音识别的数据生成

为了预测语言混合话语,需要使用这样的语言混合语料库的集合来训练混合注意力/CTC网络。但是,很难收集足够多的在同一话语中出现多种语言的语音语料库。实际上,收集和转录这种话语是非常昂贵和费时的。在本发明的实施方式中,这种语料库是从已经存在的语言依存语料库的集合中人工生成的。

假设多个语料库中的每句话语具有其作为字符序列的相应转录。在下文中,根据图1中本发明的实施方式来说明生成这种语言混合语料库的方法。首先,语言ID插入模块112将语言ID插入到语言依存语料库中的每句话语的转录中。语言ID可以位于每个字符序列的开头。接下来,话语级联模块113从语言依存语料库中选择话语,同时注意所选择话语的覆盖范围和语言转换的变化(如下文进一步描述的)。然后将所选择的话语(及其转录)级联,并在所生成的语料库中视为单句话语。重复此过程,直至所生成的语料库的持续时间达到原始语料库的并集的持续时间。

图6示出了生成过程的细节。我们首先定义采样语言和话语的概率。采样语言的概率与其原始语料库的持续时间成正比,并添加了常数项1/N,以减轻由数据尺寸引起的选择偏差。在我们的实验中,我们将要级联的话语的最大数量Nconcat设置为3。对于在1和Nconcat之间的每个数字nconcat,我们通过基于它们的采样概率来采样nconcat种语言和话语,创建由来自原始语料库的nconcat句话语组成的级联话语。为了使原始语料库的覆盖范围最大化,我们通过引入最大使用计数nreuse(对于训练集设置为5,对于开发和评估集设置为2)来防止话语被过多地重复使用。我们使用此过程来生成训练集、开发集和评估集。

训练过程

在端到端网络训练模块117中,联合优化编码器网络参数203、解码器网络参数205和CTC网络参数209,从而减小损失函数

其中,X和Y是包括声学特征序列和标签序列的训练数据。根据本发明的实施方式,使用图1中的语言ID插入模块112和话语级联模块113从现有语言依存语料库生成训练数据(X,Y)。

Θ表示包括编码器网络参数203、解码器网络参数205和CTC网络参数209的网络参数的集合。是训练样本的数量,Xn是X中的第n声学特征序列,Yn是Y中的第n标签序列。pctc(Yn|Xn,Θ)是用参数集Θ计算出的式(53)中的基于CTC的序列概率,并且patt(Yn|Xn,Θ)是用参数集Θ计算出的式(14)中的基于注意力的序列概率。

可以通过随机梯度下降方法来优化网络参数的集合Θ。首先,初始网络构建模块115获得初始网络参数116,其中,确定矩阵和向量的尺寸以及矩阵和向量中每个元素的初始值。矩阵和向量的尺寸可以手动确定或自动确定。例如,对于取决于标签集的尺寸的矩阵和向量,根据标签集尺寸确定尺寸。例如,矩阵Wqy和Wry的行数应等于在式(21)中向量by的维数也应等于这是因为数量应等于标签概率分布patt(y|y1,…,yl-1,X)的维数。矩阵和向量的每个元素可以设置为随机实数。通过获得不同语言的原始语音语料库110中的唯一字符和语言ID来确定

接下来,端到端网络训练模块117联合优化参数集Θ中的编码器参数、解码器参数和CTC网络参数。基于梯度下降法,参数集Θ的每个元素按下式重复更新:

直到收敛,其中η是学习率。

也可以将X和Y分割成M个小子集使得以及并且对于m=1,…,M,通过重复下式来更新参数:

通过用小的子集来更新参数,可以更频繁地更新参数并且损失函数可以更快地收敛。

在我们的实验中,我们考虑两种训练过程。在平启动(flal start)过程中,从零开始仅使用所生成的语料库来训练模型。在再训练过程中,使用原始语料库和所生成的语料库如下地以两个步骤训练模型。我们首先使用没有语言切换的训练数据(即,原始语料库)对模型进行训练,然后使用具有语言切换的数据(所生成的语料库)继续训练。我们考虑这两个步骤是出于以下原因的。首先,通过没有语言切换的数据所训练的模型是用于训练具有语言切换的、更具挑战性的数据的良好起点。其次,我们允许数据生成算法选择重复的话语,以提高资源贫乏语言的比例。但是,此属性会导致覆盖率降低。两步训练缓解了此问题。

标签序列搜索

标签序列搜索模块206根据组合的标签序列概率按下式来找到最可能的标签序列

其中,pctc(Y|X)是式(36)中的基于CTC的标签序列概率,patt(Y|X)是式(14)中的基于注意力的标签序列概率,并且根据本发明的实施方式,

然而,由于可能的标签序列的数量随着序列的长度成指数增加,因此枚举Y的所有可能的标签序列并且计算λlog pctc(Y|X)+(1-λ)log patt(Y|X)是很困难的。因此,通常使用波束搜索技术来找到其中首先生成较短的标记序列假设,然后仅扩展比其它假设具有更高评分的有限数量的假设,以获得更长的假设。最后,在到达序列结尾的完整假设中选择最佳标记序列假设。

设Ωl是长度为l的部分假设的集合。在波束搜索的开始,Ω0仅包含起始符号为<sos>的一个假设。对于l=1至Lmax,通过附加可能的单个标签来扩展Ωl-1中的每个部分假设,并将新的假设存储在Ωl中,其中Lmax是要搜索的假设的最大长度。

每个部分假设h的评分按下式计算:

ψjoint(h)=λψctc(h,X)+(1-λ)ψatt(h), (44)

其中,ψatt(h)按下式计算:

ψatt(h)=ψatt(g)+log patt(y|g). (45)

为了计算ψctc(h,X),我们利用CTC前缀概率,该CTC前缀概率被定义为前缀为h的所有标签序列的累积概率:

并且,我们将CTC评分定义为

其中,v代表除空字符串以外的所有可能的标签序列。CTC评分无法如式(45)中的ψatt(h)那样递归地获得,但可以通过针对每个部分假设在输入时间帧上保持前向概率来有效地计算CTC评分。

根据本发明的实施方式,标签序列搜索模块206根据以下过程找到

Input:X,Lmax

Output:

在此过程中,Ωl分别被实现为接受长度为l的部分假设和完整假设的队列。在第1-2行,Ω0被初始化为空队列。在第3行中,初始假设<sos>的评分被设置为0。在第4-24行中,通过标签集中的每个标签y扩展Ωl-1中的每个部分假设g,其中,运算Head(Ω)返回队列Ω中的第一假设,并且Dequeue(Ω)从队列去除第一假设。

在第11行中,使用注意力解码器网络对每个扩展的假设h进行评分并且在第12行中与CTC评分组合。之后,如果y=<eos>,则在第14行中假定假设h是完整的并存储在中,其中是向中添加h的运算。如果y≠<eos>,则在第16行中,将h存储在Ωl中,其中在第17行中将Ωl中的假设数量(即,|Ωl|)与预定数量beamWidth进行比较。如果|Ωl|超过beamWidth,则在第18-19行中,从Ωl中去除Ωl中的具有最小评分hmin的假设,其中,Remove(Ωl,hmin)是从Ωl中去除hmin的运算。最后,在第25行中选择作为最佳假设。

可以使用修正的前向算法来计算CTC评分ψctc(h,X)。设为假设h在时间帧1...t上的前向概率,其中上标(n)和(b)分别表示所有CTC路径以非空白标签或空白标签结尾的不同情况。在开始波束搜索之前,对于t=1,...,T,被初始化为:

其中,我们假设并且b为空白标签。注意,由于编码器的子采样技术,时间索引t和输入长度T可以与输入话语的时间索引和输入长度不同。可以如下实现CTC评分函数。

Input:h,X

Output:ψctc(h,X)

在此函数中,在第1行中,首先将给定的假设h分割为最后标签y和其余标签g。如果y为<eos>,则在第3行中,返回假设h是完整假设的前向概率的对数。根据的定义,h的前向概率按下式给出:

如果y不是<eos>,则假定h不是完整假设来计算前向概率以及前缀概率Ψ=pctc(h,…|X)。第5-13行描述了这些概率的初始化和递归步骤。在该函数中,假设在第10-12行中每次计算和Ψ时已经通过波束搜索过程获得了第9行中的概率这是因为g是h的前缀,使得|g|<|h|。因此,能够有效地计算前缀概率和前向概率。请注意,第9行中last(g)是返回g的最后一个标签的函数。

多语言端到端语音识别设备

图4示出了根据本发明的一些实施方式的多语言端到端语音识别系统400的框图。端到端语音识别系统400包括可与键盘411和定点装置/介质412连接的人机接口(HMI)410、一个或更多个处理器420、储存装置430、存储器440、可与包括局域网和互联网的网络490连接的网络接口控制器450(NIC)、显示接口460、可与麦克风装置475连接的音频接口470、可与打印装置485连接的打印机接口480。存储器440可以是一个或更多个存储器单元。端到端语音识别系统400可以经由连接到NIC450的网络490接收电子音频波形/频谱数据495。储存装置430包括端到端语音识别模块200、语言ID插入模块112、话语级联模块113、初始网络构建模块115、端到端网络训练模块117、编码器网络模块202、注意力解码器网络模块204、CTC模块208以及端到端语音识别模块200和声学特征提取模块434。在一些情况下,依据系统设计,模块112、113、115、117、202、204和208可以独立地布置在储存器430、存储器440或外部可连接存储器中(未示出)。

在附图中省略了诸如标签序列搜索模块、编码器网络参数、解码器网络参数和CTC网络参数之类的其它程序模块。此外,定点装置/介质412可以包括作为存储在计算机可读记录介质上的计算机可执行(处理器可执行)程序的模块。注意力解码器网络模块204、编码器网络模块202和CTC模块208可以由神经网络参数形成。声学特征提取模块434是用于从中提取声学特征序列的程序模块。声学特征序列可以是具有一阶和二阶时间导数和/或音节特征的梅尔级滤波器组系数(Mel-scale filterbank coefficients)的序列。

为了执行端到端语音识别,可以使用键盘411、定点装置/介质412或经由连接到其它计算机(图中未示出)的网络490向端到端语音识别系统400发送指示。系统400经由HMI410接收指示,并通过加载储存装置430中存储的端到端语音识别模块200、注意力解码器网络模块204、编码器网络模块202、CTC模块208和声学特征提取模块434,来执行用于使用与存储器440连接的处理器420执行端到端语音识别的指示。

实验

原始语料库是基于WSJ、CSJ(Maekawa等,2000),HKUST(Liu等,2006)和Voxforge(德语、西班牙语、法语、意大利语、荷兰语、葡萄牙语,俄语)(“VoxForge”,nd)。

我们用混合注意力/CTC网络架构构建了语言依存端到端系统和语言独立端到端系统。语言依存模型使用4层BLSTM编码器网络,而语言独立模型具有深度BLSTM编码器网络,诸如7层深度的BLSTM编码器网络。BLSTM编码器网络中的层数不限于7层。在一些情况下,根据系统设计,层数可以为2或大于2。我们使用了级联有3维音节特征的80维梅尔滤波器组特征。对于语言独立模型,基于CTC的分支和基于注意力的分支二者中的最终softmax层具有5,520个维度(即,)。

对于英语,为了处理WSJ语料库中相对长的句子,我们通过添加与WSJ文本语料库中经常出现的高达5-gram的字符序列相对应的标记,将字母字符集扩展到201。这使输出长度L更短,以减少计算成本和GPU内存使用。

对于每种语言,我们训练了语言依存ASR模型,其中最终softmax层的维度被设置为该语言的不同字符/标记的数量。本文严格遵循端到端ASR概念,未使用任何发音词库、基于单词的语言模型、GMM/HMM或DNN/HMM。我们的混合注意力/CTC架构是用Chainer(Tokui等,2015)实现的。

结果

图7示出了在包括语言切换的多语言评估集上的经训练的语言依存端到端ASR系统和语言独立端到端ASR系统的字符错误率(CER)。CER针对10种语言取平均值,并依据每句话语中的语言数量分别示出。

在每句话语中仅包括一种语言的情况下(即,没有语言切换),语言独立模型明显优于语言依存模型。当语言数量为两种或三种时,用语言切换数据训练的语言独立模型针对2种语言的情况,将CER从31.5%降低到21.3%,针对3种语言的情况,将CER从38.6%降低到20.8%。通过再训练平启动的语言独立模型,我们获得了进一步的CER降低,即,在各种情况下CER分别为19.4%、19.3%和18.6%。

因此,语言独立ASR成功地降低了CER,并且用语言切换数据训练的模型能够在解码过程期间恰当地在语言之间进行切换。

我们还通过从用语言切换数据再训练的语言独立模型所获得的识别结果中提取语言ID来计算语言ID错误率。在每句话语中仅包括一种语言的情况下,语言ID错误率为2.0%。在每句话语中包括1至3种语言的情况下,ID错误率为8.5%。因此,本发明能够以少量错误联合识别多语言语音和语言ID。

图8示出了我们的模型所生成的转录示例。话语由日语、英语和荷兰语组成。没有语言切换的模型既无法预测正确的语言ID,也无法预测日语字符集的使用。我们能够观察到具有语言切换的模型以低CER识别出了多语言语音。

在本公开的一些实施方式中,当上述的端到端语音识别系统安装在计算机系统中时,能够以较少的计算能力有效且准确地执行语音识别,由此使用本公开的端到端语音识别方法或系统能够减少中央处理单元的使用和功耗。

此外,根据本公开的实施方式提供了用于执行端到端语音识别的有效方法,因此,使用端到端语音识别模型的方法和系统的使用能够减少中央处理器(CPU)的使用、功耗和/或网络带宽使用。

可以以多种方式中的任何一种来实现本公开的上述实施方式。例如,可以使用硬件、软件或其组合来实现实施方式。当以软件实现时,软件代码无论是设置于单台计算机中还是分布在多台计算机中,都可以在任何合适的处理器或处理器集合上执行。这样的处理器可以被实现为集成电路,并且集成电路组件中具有一个或更多个处理器。但是,可以使用任何适当格式的电路来实现处理器。

另外,本文概述的各种方法或过程可以被编码为在采用多种操作系统或平台中的任何一种的一个或更多个处理器上可执行的软件。附加地,可以使用多个合适的编程语言和/或编程或脚本工具中的任何一种来编写这种软件,并且还可以将这种软件编译为可执行的机器语言代码或在框架或虚拟机上执行的中间代码。通常,在各种实施方式中,程序模块的功能可以根据需要进行组合或分布。

此外,本公开的实施方式可以被体现为一种方法,已经提供了该方法的示例。作为该方法的一部分而执行的动作可以以任何合适的方式排序。因此,可以构造实施方式,在该实施方式中以与所例示的次序不同的次序来执行动作,这可以包括并发地执行一些动作,即使这些动作在示例性实施方式中被示为顺序动作。此外,在权利要求中使用诸如第一、第二之类的序数术语来修饰权利要求要素本身并不意味着一个权利要求要素相对于另一个具有任何优先权、优先级或次序,或者执行方法的动作的时间次序,而是仅用作标签,以将具有特定名称的一个权利要求要素与具有相同名称(除了序数词的使用)的另一要素区分开,以区分权利要求要素。

29页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于处理语音输入的方法、设备和具有指令的计算机可读存储介质、具有语音处理的机动车和用户终端设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!