使用双向循环 DNN 进行首次大词汇量连续语音识别

Awni Y. Hannun
Computer Science Department
Stanford University
Stanford, CA 94305
awni@cs.stanford.edu
&Andrew L. Maas
Computer Science Department
Stanford University
Stanford, CA 94305
amaas@cs.stanford.edu
Daniel Jurafsky
Linguistics Department
Stanford University
Stanford, CA 94305
jurafsky@stanford.edu
&Andrew Y. Ng
Computer Science Department
Stanford University
Stanford, CA 94305
ang@cs.stanford.edu
摘要

我们提出了一种仅使用神经网络和语言模型来执行首次通过大词汇量连续语音识别的方法。 深度神经网络声学模型现在在基于 HMM 的语音识别系统中很常见,但构建此类系统是一项复杂的、特定于领域的任务。 最近的工作证明了通过直接从音频预测转录文本来放弃 HMM 序列建模框架的可行性。 本文以两种方式扩展了这种方法。 首先,我们证明简单的循环神经网络架构可以实现高精度。 其次,我们提出并评估了一种改进的前缀搜索解码算法。 这种解码方法可以使用语言模型进行首次语音识别,完全不需要基于 HMM 的系统的繁琐基础设施的帮助。 《华尔街日报》语料库上的实验证明了相当有竞争力的单词错误率,以及双向网络重现的重要性。

1简介

现代大词汇量连续语音识别 (LVCSR) 系统非常复杂且难以修改。 这种复杂性很大程度上源于使用隐马尔可夫模型 (HMM) 将单词建模为亚语音状态序列的范式。 基于 HMM 的系统需要精心设计的训练方案来构建连续更复杂的 HMM 识别器。 构建、理解和修改基于 HMM 的 LVCSR 系统的总体难度限制了语音识别的进展,并将其与相关领域的许多进展隔离开来。

最近 Graves & Jaitly (2014) 演示了一种无 HMM 的方法来训练语音识别器,该识别器使用神经网络直接预测给定语音音频的转录字符。 这种方法抛弃了现代基于 HMM 的 LVCSR 系统中存在的许多假设,有利于将语音识别视为直接序列转换问题。 该方法使用联结时间分类 (CTC) 损失函数来训练神经网络,这相当于通过对所有可能的输入-输出序列比对进行有效求和来最大化输出序列的可能性。 使用 CTC,作者能够训练神经网络来预测测试话语的字符序列,在《华尔街日报》LVCSR 语料库上,字符错误率 (CER) 低于 10%。 虽然这些结果本身令人印象深刻,但在字错误率 (WER) 方面与现有的基于 HMM 的系统相比尚不具备竞争力。 语音识别中良好的单词级性能通常在很大程度上依赖于语言模型来提供可能的单词序列的先验概率。

为了在解码过程中整合语言模型信息,Graves & Jaitly (2014) 使用他们的 CTC 训练神经网络来重新评分由最先进的 HMM 生成的格子或 n 最佳假设列表 -为基础的系统。 这引入了一个潜在的混杂因素,因为 n 最佳列表显着限制了可能的转录集。 此外,它导致整个系统仍然依赖 HMM 语音识别基础设施来实现最终结果。 相比之下,我们提出了first-pass解码结果,它使用神经网络和语言模型从头开始解码,而不是对现有的一组假设进行重新排序。

我们描述了一种解码算法,该算法直接将语言模型与 CTC 训练的神经网络相集成,以搜索可能的单词序列空间。 我们的首次解码算法使 CTC 训练的模型能够从语言模型中受益,而无需依赖现有的基于 HMM 的系统来生成词格。 这消除了对以 HMM 为中心的语音识别工具包的长期依赖,使我们能够仅使用神经网络和 n-gram 语言模型就获得相当有竞争力的 WER 结果。

深度神经网络 (DNN) 是语音识别中使用最广泛的神经网络架构(Hinton 等人,2012) DNN 是一种相当通用的分类和回归问题架构。 在基于 HMM 的 LVCSR 系统中,DNN 通过在给定时间点的声学输入的情况下预测 HMM 的隐藏状态来充当声学模型。 然而,在此类 HMM-DNN 系统中,关于输出序列的时间推理发生在 HMM 而不是神经网络内。 神经网络的 CTC 训练迫使网络对输出序列依赖性进行建模,而不是独立于其他时间帧进行推理。 为了更好地处理这种时间依赖性,之前的 CTC 工作使用了长短期记忆 (LSTM) 网络。 LSTM 是一种神经网络架构,最初设计用于防止 sigmoidal DNN 或时间循环深度神经网络 (RDNN) 的梯度消失问题(Hochreiter & Schmidhuber,1997)

我们的工作使用 RDNN 而不是 LSTM 作为神经网络架构。 RDNN 总体上更简单,因为后续层之间只有密集的权重矩阵连接。 这种更简单的架构更适合图形处理单元(GPU)计算,可以显着减少训练时间。 最近的研究表明,具有整流器非线性的 DNN 可以在 DNN-HMM 系统中表现良好,而不会在优化过程中遇到梯度消失问题(Dahl 等人,2013;Zeiler 等人,2013;Maas 等人,2013) 这让我们充满希望,具有整流器非线性的 RDNN 可能能够与专门设计用于避免梯度消失的 LSTM 相媲美。

2型号

我们使用 CTC 损失函数来训练神经网络,以对给定声学特征作为输入的字母序列进行最大似然训练。 我们将单个单词视为由声学特征矩阵 X 和单词转录 W 组成的训练示例。 CTC 目标函数最大化对数概率logp(W;X) 我们在这里保留对损失函数的完整阐述,因为我们的公式完全遵循之前使用 CTC 预测单词转录特征的工作(Graves & Jaitly,2014;Graves 等人,2006)

2.1深度神经网络

在固定损失函数后,我们必须定义如何计算 p(c|xt),即在时间 t 时,根据音频特征 xt 预测输出字符 c 的分布。虽然有很多函数近似器可以完成这项任务,但我们选择 DNN 作为最基本的模型。 DNN 使用一系列隐藏层和输出层来计算分布 p(c|xt) 给定输入向量xt,第一个隐藏层激活是一个计算为的向量,

h(1)=σ(W(1)Txt+b(1)). (1)

矩阵W(1)和向量b(1)是该层的权重矩阵和偏置向量。 函数 σ() 是逐点非线性函数。 我们使用整流器非线性,因此选择σ(z)=max(z,0)

DNN 可以具有任意多个隐藏层。 在第一个隐藏层之后,层 i 的隐藏激活 h(i) 计算如下:

h(i)=σ(W(i)Th(i1)+b(i)). (2)

为了在可能的字符集 c 上获得正确的分布,网络的最后一层是以下形式的 softmax 输出层:

p(c=ck|xt)=exp((Wk(s)Th(i1)+bk(s)))jexp((Wj(s)Th(i1)+bj(s))), (3)

其中 Wk(s) 是输出权重矩阵 W(s) 的第 k 列,bk(s) 是标量偏差项。

我们可以在给定训练示例的情况下计算 DNN 所有参数的次梯度,从而利用基于梯度的优化技术。 请注意,DNN-HMM 模型中通常使用相同的 DNN 公式来预测字符而不是字符的分布。

2.2 循环深度神经网络

转录 W 具有许多 DNN 可能无法充分捕获的时间依赖性。 在每个时间步t,DNN 仅使用输入特征xt 计算其输出,忽略先前的隐藏表示和输出分布。 为了更好地对问题中存在的时间依赖性进行建模,我们使用 RDNN。 在 RDNN 中,我们选择一个隐藏层 j 来具有时间循环权重矩阵 W(f) 并将该层的隐藏激活计算为:

ht(j)=σ(W(j)Tht(j1)+W(f)Tht1(j)+b(j)). (4)

请注意,我们现在在时间步 t 处对层 j 的隐藏激活向量进行区分 ht(j),因为它现在取决于层 j时间t1

在使用 RDNN 时,我们发现使用整流器非线性的修改版本非常重要。 此修改后的函数选择 σ(z)=min(max(z,0),20) ,它会剪辑较大的激活以防止网络期间的发散。 将最大允许激活设置为 20 会导致限幅整流器在除最极端情况外的所有情况下充当正常整流器功能。

除了这些变化之外,RDNN 的计算与 2.1 中描述的 DNN 中的计算相同。 与 DNN 一样,我们可以使用有时称为随时间反向传播的方法来计算 RDNN 的次梯度。 在我们的实验中,我们总是完全随着时间计算梯度,而不是截断以获得近似的次梯度。

2.3双向循环深度神经网络

虽然前向循环连接反映了音频输入的时间性质,但 BRDNN 可能是更强大的序列转换模型,它可以及时保持向前和向后的状态。 这样的模型可以在进行每次预测时集成来自输入特征的整个时间范围的信息。 我们通过再次选择时间循环层 j 来扩展 RDNN 以形成 BRDNN。 BRDNN 创建前向和后向中间隐藏表示,我们分别称为 ht(f)ht(b) 我们使用时间权重矩阵 W(f)W(b) 分别在时间上向前传播 ht(f) 和在时间上向后传播 ht(b) 我们通过方程更新前向和后向分量,

ht(f)=σ(W(j)Tht(j1)+W(f)Tht1(f)+b(j)),ht(b)=σ(W(j)Tht(j1)+W(b)Tht+1(b)+b(j)). (5)

请注意,循环前向和后向隐藏表示的计算完全彼此独立。 与 RDNN 一样,我们使用修改后的非线性函数 σ(z)=min(max(z,0),20) 为了获得该层的最终表示 ht(j),我们将两个时间循环分量相加,

ht(j)=ht(f)+ht(b). (6)

除了对循环层的更改之外,BRDNN 使用与 RDNN 相同的方程来计算其输出。 对于其他模型,我们可以直接计算 BRDNN 的次梯度来执行基于梯度的优化。

3解码

假设输入长度为T,则神经网络的输出将为p(c;xt)(对于t=1,,T)。 同样,p(c;xt) 是字母表 Σ 中可能字符的分布,其中包括空白符号(给定音频输入 xt)。 为了从神经网络的输出中恢复字符串,作为第一个近似值,我们在每个时间步取 argmax。 S=(s1,,sT)st=argmaxcΣp(c;xt) 所在的字符序列。 通过折叠重复字符并删除空白,将序列 S 映射到转录。 这给出了可以使用 CER 和 WER 对照参考转录进行评分的序列。

该第一个近似缺乏包含词典或语言模型的约束的能力。 我们提出了一种能够合并此类约束的通用算法。 X作为时间T的声学输入,我们寻求最大化概率的转录W

pnet(W;X)plm(W). (7)

这里,转录的总体概率被建模为两个因素的乘积:由网络给出的pnet和由先验语言模型给出的plm 在实践中,当由 n-gram 语言模型给出时,先前的 plm(W) 限制太多,因此我们降低其权重并包括单词插入惩罚(或奖励),如下所示

pnet(W;X)plm(W)α|W|β. (8)

算法1尝试找到一个使方程8最大化的字符串W

算法1 前缀束搜索:算法将前一组前缀 Aprev 初始化为空字符串。 对于当前 Aprev 中的每个时间步长和每个前缀 ,我们建议将字母表 Σ 中的字符添加到前缀。 如果字符是空白,我们不会扩展前缀。 如果字符是空格,我们会合并语言模型约束。 否则,我们扩展前缀并合并网络的输出。 所有新的活动前缀都会添加到 Anext 中。 然后,我们将 Aprev 设置为仅包含 Anext 最可能的 k 前缀。 输出是 1 最可能的转录本,尽管可以轻松扩展以返回 n 最佳列表。

该算法为每个前缀维护两个单独的概率:pb(;x1:t)pnb(;x1:t) 这些分别是给定音频输入 X 的第一个 t 时间步长的前缀 以空白结尾或不以空白结尾的概率。

集合AprevAnext分别维护上一个时间步的活动前缀和下一个时间步的建议前缀的列表。 请注意,Aprev 的大小永远不会大于波束宽度k。前缀的总体概率是单词插入项与空白和非空白结尾概率之和的乘积,

p(;x1:t)=(pb(;x1:t)+pnb(;x1:t))|W()|β, (9)

其中 W() 是序列 中的单词集。 当采用 Anextk 最可能的前缀时,我们使用等式 9 给出的概率对每个前缀进行排序。

变量end是标签序列中的最后一个字符。 函数 W() 转换为单词字符串,在每个空格字符处对序列 进行分段,并截断最后一个空格后面的所有字符。

每当算法建议向 附加空格字符时,我们都会通过包含概率 p(W(+)|W()) 来合并词典或语言模型约束。 如果 W(+) 的最后一个单词在词典中,则通过将 p(W(+)|W()) 设置为 1,否则将概率设置为 0,则概率充当强制约束所有字符串 仅包含词典中的单词。 此外,p(W(+)|W())可以通过仅考虑W()中最后的n1单词来表示n-gram语言模型。

4实验

我们在 81 小时华尔街日报 (WSJ) 新闻文章听写语料库(LDC 目录中的 LDC94S13B 和 LDC93S6B)上评估了我们的方法。 我们的训练集包含来自 37,318 个话语的 81 小时语音。 将 LDC 发布的语料库转换为训练和测试子集的基本准备工作遵循 Kaldi 语音识别工具包的 s5 配方(Povey 等人,2011) 然而,我们并没有应用太多用于为 HMM 系统准备成绩单的文本标准化。 相反,我们只是删除不必要的转录注释,例如词汇重音,保留转录的单词片段和首字母缩略词标点符号。 我们可以安全地放弃大部分标准化,因为我们的方法不依赖于词典或发音词典,这会导致问题,特别是对于单词片段。 我们的语言模型是随《华尔街日报》语料库发布的标准模型,没有词汇扩展。 我们使用“dev93”评估子集作为开发集,并报告“eval92”评估子集的最终测试集性能。 两个子集都使用相同的 20k 单词词汇。 用于解码的语言模型仅限于同样的 20k 单词词汇表。

输入音频被转换为具有 23 个频率仓的 log-Mel 滤波器组特征。 +/- 10 帧的上下文窗口被连接起来形成大小为 483 的最终输入向量。 我们没有执行额外的特征预处理或特征空间说话人适应。 我们的输出字母表由 32 个类别组成,即空白符号“_”、26 个字母、3 个标点符号(撇号、. 和 -)以及噪声和空格标记。

4.1 使用语言模型进行首次解码

我们训练了一个具有 5 个隐藏层的 BRDNN,全部具有 1824 个隐藏单元,总共 2090 万个自由参数。 网络的第三个隐藏层具有循环连接。 网络中的权重根据权重矩阵的输入和输出层大小(Glorot等人,2011)缩放的均匀随机分布进行初始化。 我们使用 Sutskever 等人 (2013) 中描述的 Nesterov 加速梯度优化算法,初始学习率为 105,最大动量为 0.95。 每次完整通过训练集后,我们将学习率除以 1.2,以确保整体学习率随着时间的推移而降低。 我们对网络进行了总共 20 次训练,使用我们的 Python GPU 实现大约需要 96 小时。 对于使用前缀搜索进行解码,我们使用 200 的波束大小,并与保留集进行交叉验证,以找到参数 αβ 的良好设置。 1 显示了使用此训练的 BRDNN 进行多种解码方法的单词和字符错误率。

表格1: 字错误率 (WER) 和字符错误率 (CER) 来自使用 CTC 损失函数训练的 BDRNN。 作为基线(无 LM),我们通过在每个时间步选择最可能的标签并执行 CTC 训练中的标准折叠来进行解码。 我们使用字典约束和二元语言模型将此基线与修改后的前缀搜索解码器进行比较。
Model CER WER
No LM 10.0 35.8
Dictionary LM 8.5 24.4
Bigram LM 5.7 14.1

尽管 CER 相当低,但在没有任何语言限制的情况下,WER 相当高。 这与我们的观察结果是一致的,即当一个单词看起来大部分正确但不符合高度不规则的英语拼写法时,就会发生字符级别的许多错误。 使用 20k 单词词汇表作为可能字符序列的先验的前缀搜索解码会导致 WER 显着改善,但 CER 变化相对较小。 比较无 LM 和字典 LM 方法的 CER 再次表明,如果没有 LM,字符大部分都是正确的,但分布在许多单词中,这会增加 WER。 当我们使用二元 LM 进行解码时,CER 和 WER 都会出现相对较大的下降。 二元 LM 模型的性能表明,经过 CTC 训练的系统无需依赖现有语音系统生成的格或 n 最佳列表即可获得有竞争力的错误率。

4.2 重复连接的影响

之前使用 DNN-HMM 系统进行的实验发现,DNN 声学模型中的循环连接带来的好处微乎其微。 人们很自然地想知道循环,尤其是双向循环是否是我们架构的一个重要方面。 为了评估循环连接的影响,我们比较了 DNN、RDNN 和 BRDNN 模型的训练和测试 CER,同时粗略控制模型中自由参数的总数。 2 显示了每种架构类型的结果。

表2: 无循环深度神经网络 (DNN)、具有前向时间连接的循环深度神经网络 (RDNN) 和双向循环深度神经网络 (BRDNN) 的训练和测试集字符错误率 (CER) 结果。 所有模型都有 5 个隐藏层。 DNN 和 RDNN 每个隐藏层都有 2,048 个隐藏单元,而 BRDNN 每个隐藏层有 1,824 个隐藏单元,以保持其自由参数总数与其他模型相似。 对于所有模型,我们在每个时间步选择最有可能的字符,并应用 CTC 折叠来获得字符级转录本假设。
Model Parameters (M) Train CER Test CER
DNN 16.8 3.8 22.3
RDNN 22.0 4.2 13.5
BRDNN 20.9 2.8 10.7

与非循环 DNN 模型相比,循环模型的两种变体在测试集 CER 上均显示出显着的改进。 请注意,我们报告的 DNN 的性能只有 1680 万个参数,这小于 RDNN 和 BRDNN 模型中使用的参数总数。 我们发现较大的 DNN 在测试集上的表现较差,这表明 DNN 可能更容易过度拟合此任务。 尽管 BRDNN 的参数比 RDNN 少,但它在训练集和测试集上的表现都更好。 这再次表明架构本身推动了性能的提高,而不是自由参数的总数。 相反,由于相对于非循环 DNN,双向循环和单循环之间的差距较小,因此使用单循环网络的在线语音识别可能是可行的,而不会过度损害性能。

5结论

我们提出了一种解码算法,可通过 CTC 训练的神经网络的语言模型实现首次通过 LVCSR。 这种解码方法消除了先前工作中对基于 HMM 的系统的挥之不去的依赖。 此外,首次解码展示了 CTC 训练系统的功能,而没有通过提供的格修剪搜索空间的潜在影响的混杂因素。 虽然我们的结果没有优于《华尔街日报》语料库上最好的基于 HMM 的系统,但它们证明了基于 CTC 的语音识别系统的前景。

我们使用 BRDNN 进行的实验进一步简化了创建基于 CTC 的语音识别系统所需的基础设施。 总体而言,BRDNN 的架构不如 LSTM 复杂,并且可以相对轻松地在 GPU 上运行,因为大型矩阵乘法在计算中占主导地位。 然而,我们的实验表明,循环连接对于良好的性能至关重要。 双向循环有助于超越单向循环,但在需要低延迟在线语音识别的情况下可能会被牺牲。 结合之前基于 CTC 的 LVCSR 的工作,我们相信在没有基于 HMM 基础设施复杂性的情况下,高质量 LVCSR 存在一条令人兴奋的前进道路。

参考

  • Dahl et al. (2013) Dahl, G.E., Sainath, T.N., and Hinton, G.E. Improving Deep Neural Networks for LVCSR using Rectified Linear Units and Dropout. In ICASSP, 2013.
  • Glorot et al. (2011) Glorot, X., Bordes, A., and Bengio, Y. Deep Sparse Rectifier Networks. In AISTATS, pp. 315–323, 2011.
  • Graves & Jaitly (2014) Graves, A. and Jaitly, N. Towards End-to-End Speech Recognition with Recurrent Neural Networks. In ICML, 2014.
  • Graves et al. (2006) Graves, A., Fernández, S., Gomez, F., and Schmidhuber, J. Connectionist temporal classification: Labelling unsegmented sequence data with recurrent neural networks. In ICML, pp. 369–376. ACM, 2006.
  • Hinton et al. (2012) Hinton, G.E., Deng, L., Yu, D., Dahl, G.E., Mohamed, A., Jaitly, N., Senior, A., Vanhoucke, V., Nguyen, P., Sainath, T., and Kingsbury, B. Deep Neural Networks for Acoustic Modeling in Speech Recognition. IEEE Signal Processing Magazine, 29(November):82–97, 2012.
  • Hochreiter & Schmidhuber (1997) Hochreiter, S. and Schmidhuber, J. Long short-term memory. Neural Computation, 9:1735–1780, 1997.
  • Maas et al. (2013) Maas, A., Hannun, A., and Ng, A. Rectifier Nonlinearities Improve Neural Network Acoustic Models. In ICML Workshop on Deep Learning for Audio, Speech, and Language Processing, 2013.
  • Povey et al. (2011) Povey, D., Ghoshal, A., Boulianne, G., Burget, L., Glembek, O., Veselý, K., Goel, N., Hannemann, M., Motlicek, P., Qian, Y., Schwarz, P., Silovsky, J., and Stemmer, G. The kaldi speech recognition toolkit. In ASRU, 2011.
  • Sutskever et al. (2013) Sutskever, I., Martens, J., Dahl, G., and Hinton, G. On the Importance of Momentum and Initialization in Deep Learning. In ICML, 2013.
  • Zeiler et al. (2013) Zeiler, M.D., Ranzato, M., Monga, R., Mao, M., Yang, K., Le, Q.V., Nguyen, P., Senior, A., Vanhoucke, V., Dean, J., and Hinton, G.E. On Rectified Linear Units for Speech Processing. In ICASSP, 2013.