英语原文共 5 页
语音自动识别中分割时间上下文的深度学习
Moez Baccouche, Benocirc;ıt Besset, Patrice Collen and Olivier Le Blouch
Orange Labs - France Teacute;leacute;com, 4 rue du Clos Courtel, F-35510, Cesson-Seacute;vigneacute;, France.
摘要
本篇论文介绍了语音识别最近的重要进展,即用深度神经结构取代基础的混合GMM/HMM方法。这些模型被证实能显著地提高识别性能,这归功于其捕获数据的潜在结构的能力。然而,它们仍然特别复杂,因为一个给定音素的整体时间的上下文是通过单一一个模型来学习的,因此该模型必须具有大量的可训练权重。本文提出了另一种解决方案,将整体时间的上下文分割成块,每个块都用一个单独分离的深度模型学习。我们证明了,与传统的深度学习方法相比,这种方法显著减少了参数的数量,并且在TIMIT数据集上得到了更好的结果,在最先进的技术方法中名列前茅(只有20.20%的音素错误率)。我们还表明,我们的方法能够吸收理解不同性质的数据,包括范围从宽到窄的带宽信号。
索引词:语音识别,神经网络,深度学习,分割时间上下文
引言
人工神经网络(ANN)在语音自动识别中的应用始于几十年前,其主要是结合了ANN和隐马尔可夫模型(HMM)的混合系统[1]。这种方法的关键思想是训练一个神经模型来估计HMM的后验状态,从而用贝叶斯规则计算声音的发射概率。然而,尽管对其有很大的期望,ANN/HMM系统还是被其他混合模型所超越,这些混合模型结合了HMM和高斯混合模型(GMM)[2]。该模型被证明准确性更高,并且可以用一些具有判别能力和“易于实现”的技术进行训练。
然而,尽管有这些优点,GMM/HMM方法仍然存在许多缺点,特别是在处理非线性建模问题时。因此,长期以来人们一直怀疑,如果将标准的一层神经结构替换成具有更多可训练参数的复杂神经结构,神经模型可能会优于GMM/HMM方法。然而,这种复杂的模型很难训练,并且有严重的过拟合的缺点。机器学习的最新进展为这些问题提供了一些解决方案。第一项进展成果依靠所谓的深度模型,即经过精心设计和学习的具有多个隐藏层的神经结构。利用最新的基于逐层贪婪训练的方法,可以有效地学习这种深度结构,它不仅在TIMIT数据集[3]上表现得非常出色,而且在大词汇任务[4、5、6、7]上也表现得非常出色,这导致了深度学习在语音识别中的广泛应用。
最近的其他研究提出了不同的解决方案,可以总结为报告神经系统结构设计的复杂性,而不是增加可训练参数的数量。事实上,有几项研究发现,使用运用不同的模型学习信号的每个部分的层次结构有利于语音识别。例如,TRAP系统[8]提出学习与临界频带频谱密度相对应的特征向量的时间段。一个独立的神经分类器是用来自每个临界频带的数据进行训练的,然后获得的输出被用来给另一个神经分类器提供信息,该程序的功能是将所有的决策整合成最终的决策。Schwarz等人则介绍了另一种类似的方法,即分割时间上下文(STC),提出了在较短的时间上下文窗口上操作的一种不同的层次结构,并产生了更好的结果。
尽管如此,TRAP和STC系统都使用简单的神经分类器和单个隐藏层。本文提出了一种将STC系统的结构特征与最新的深度学习技术相结合的方法,以提高深度结构的建模能力。
论文其余部分的内容如下。第2节介绍了所提出模型的概述以及相应的训练步骤。我们在第3节中介绍了在TIMIT[3]和NTIMIT[10]数据集上测试的实验结果,然后在第4节中总结并给出了关于这项任务的一些观点。最后,在第5节我们讨论了本文所作出的贡献与该领域先前的实验成果之间有什么联系。
2.所提出的方法
2.1应用模型
所采用的模型如图1所示。它可以看作是Schwarz等人[9]的STC系统和深度学习技术[6]的结合。其思想是充分利用深度模型捕获数据潜在结构的能力,同时通过在短的时间上下文窗口,而不是长的非分割的时间上下文窗口上操作来简化建模任务。
我们的方法包括三个步骤:(i)像STC系统一样将长的时间上下文分割成若干个块,(i i)用单独分离的深度神经网络对每个块进行建模,以及(i i i)最后一步,在这个步骤中,神经网络被训练用来合并每个块对应的单个决策。
具体地来说,系统在一组B个临界频带上运行,该频带对应于一个傅立叶变换滤波器组和L帧的长的时间上下文(见图1)。因此,当前上下文窗口中包含的语音信号被编码为一组L个特征向量(每帧一个特征向量),每个特征向量具有B个系数,并描述临界频带频谱密度的时间演化中的一段。
图1. 提出模型的概观
就像前文所提到的那样,时间上下文窗口被分割成多个簇,称之为STC块,每个连续的块之间有一个重叠的帧。每个STC块先经过一个时间加权步骤,然后进行离散余弦变换(DCT)。如[6]中所述,将获得的向量归一化,以使平均值和单位方差为零。这些归一化的特征向量构成了表示层,而学习过程就在该表示层中执行:对于每个STC块,一个深度神经模型(称为STC网络)被训练用来输出在可能的音素标签上的概率分布。这些标签对应于语音建模中常用的基于HMM的状态表示,其中每个音素与3个隐藏状态相关联。对于每个训练样本,需要注意的是,所有STC网络都被训练用来面向同一个标签:该标签与完整(非分割)的时间上下文窗口的中心帧相对应。
所得到的输出被每个STC网络收集起来并连结在一起,用来生成一个对来自每个块的各个决策进行编码的向量。这个向量被归一化,正如之前对于STC网络所描述的那样,然后该矢量被用来训练另一个神经网络(称为合并),它通过融合所有决策来学习估计HMM状态的最终后验分布。就像用一个经典的基于HMM的语音识别系统那样,这些合并的输出于是被输入维特比解码器。
2.2 训练程序
在我们的系统中使用的所有深度神经模型都按照[6]中所述的程序进行训练,其中第一个有生成功能的预训练步骤之后是有判决能力的微调步骤。这种方法的思想是用一个更好的开始点来代替网络可训练权重的标准的随机初始化,该开始点直接从输入数据中学习。这种初始化方式已经被证明可以加快收敛速度并防止过拟合的发生。
注意,除了音素识别之外,这种结合了无监督和有监督学习的训练过程,已经广泛并成功地应用于从字符识别[12]到信息检索[13]的各种其他的机器学习问题。
预训练步骤是分层的,换句话说,它在于逐次地学习一对层,这对层的内部状态作为下一对层的训练数据来起作用。每个学习模块(即一对层)被称为受限玻尔兹曼机(RBM):一个由可见和隐藏单元组成的无向图,分别用来构建观测模型和特征模型。两种RBM被使用:(i)高斯RBM,对于其可见单元,它能够允许实值状态;(i i)二进制RBM,仅有二进制单元。具体来说,输入高斯RBM首先用实值特征向量进行训练。然后,将得到的二进制隐藏单元作为训练下一个RBM的数据。可以根据需要重复这个过程,用来学习任意多对层。需要注意的是,高斯RBM仅用于输入层。使用对比发散算法进行训练[14]。一旦所有层都经过训练,它们就被堆叠起来,并添加一个输出层来构成最终的多层(深层)架构。
微调步骤包括使用动量算法执行标准反向传播,使用在预训练步骤中学习到的值对网络进行初始化。这允许稍微地调整权重,为的是接近最具鉴别力的权重空间区域。在此训练步骤中,我们使用每帧分类错误率作为目标函数。需要注意的是,孔微调阶段会重复多次(在我们的实验中为5次,具体见第3节),用来改善在音素时间段上HMM状态的校准过程(第一次迭代对应于分割成三个等长段的一次均匀分割)。还需要注意的是,只有深度结构是使用这两个步骤来训练的,只有一个隐藏层的神经网络(比如,就像我们在第3节看到的,在我们事例中的合并那样)是用具有随机初始化过程的标准反向传播来训练的。
3.实验结果
在本节中,我们给出了与上述方法相对应的实验结果。首先,我们重点评估了我们系统在宽带信号上运作时的识别性能。这将使用TIMIT数据集[3]来完成。然后,我们将研究使用我们的方法处理窄带和宽带数据的可能性。
3.1 在TIMIT数据集上的实验
TIMIT声学语音连续语音语料库[3]是用于语音识别的标准数据集。它由630个讲话者组成,每个讲话者读10个句子。这些句子语音丰富,代表了8种美式英语的方言。我们使用了标准的训练数据集(与删除说话者的校准语句后的462个说话者相对应)和一个单独的验证数据集,目的是:(i)调整超参数,以及(ii)执行早期的中止程序(即在过拟合前中止训练算法)。
使用标准核心测试数据集计算结果,该测试数据集与训练数据集和验证数据集之间没有重叠。基于提供的会话录音,使用音素错误率(PER),在会话层(使用标准CMU/MIT会话映射[15])上执行评估。动态编程校准期间的替换、删除和插入的最优值在在验证数据集上进行调整。
在我们所有的实验中,临界频带的数量B被设置为23。需要注意的是,我们还试验了每帧使用更大数量的系数(通常是40,包含一阶和二阶的时间导数,如[6]中所建议的那样),但我们观察到,这大大增加了模型的复杂性(因为STC网络具有更大的输入层),而这样并不会提高其性能。
我们使用了与L=31帧相对应的长的时间上下文:要识别的中心实际帧,过去的15帧,未来的15帧。因此,我们系统的输入(在分割时间上下文并应用时间加窗和DCT之前)是一个包含713个值(31帧times;23个系数)的向量。
至于训练,对于预训练和最终调整步骤,我们使用了神经网络培训者TNET库,该库提出了小批反向传播和对比发散算法的CUDA GPGPU实现。使用以下参数进行训练:
-对于预训练步骤:高斯和二进制RBM的学习率分别为和,动量为0.9(除了5个第一世代,该世代不使用动量;译者注:本文将epoch翻译为世代,后同,一个epoch指代所有的数据送入网络中完成一次前向计算及反向传播的过程),小批大小为128。
-对于微调步骤:初始学习率为(每经过验证音素错误率减少少于0.5的世代学习率减半),动量为0.5,小批大小为512。
需要注意的是,预训练阶段仅使用训练数据集的一个小子集来实现,其被证实能在不影响性能的情况下大大缩短计算时间。还应注意的是,早期的中止程序在微调阶段中被使用,该阶段包含在将学习率减半后,验证音素错误率降低小于0.1时中断训练这一操作。
我们进行了一系列实验。通过改变识别系统的不同结构参数进行实验,以选择最佳的结构参数。我们已经进行过的实验有:(i)三种类型的时间窗口(汉明窗、矩形窗和窗);(ii)应用或不应用DCT,DCT保持每个STC块5个系数;(iii)改变STC块的数量(2、3或5);以及(iv)几个STC网络结构。对于后者,深度模型(不止一层)如第2节所述进行了预训练操作,而只有一层的架构则直接使用反向传播算法进行训练。对于合并网络,它对应于一个单层结构,在所有实验中该结构有1500个神经元。其他合并的结构(包括深度的)也在没有性能改进的情况下进行了测试。
我们在表1中报告了所获得的结果,对应于在微调步骤的最后一次(第五次)迭代中获得的在测试核心数据集上的音素错误率(PER)。最好的模型,提供20.20%的音素错误率,与将时间上下文分割为5个块,每个STC块具有三层的深度结构的分割操作相对应。最好的结果是用5个系数的DCT得到的,没有加上时间窗口,这与Schwarz等人在[9]中所观察到的结果一致。
时间窗口 |
DCT大小 |
STC块数目 |
STC网络结构 |
音素错误率(%) |
汉明窗 |
5 |
2 |
|
22.73 |
汉明窗 |
5 |
3 |
|
22.40 |
汉明窗 |
5 |
5 |
|
21.81 |
|
5 |
5 |
|
21.82 |
矩形窗 |
5 |
5 |
|
21.70 |
矩形窗 |
5 |
5 |
|
20.71 |
矩形窗 |
5 |
5 |
|
20.38 |
矩形窗 |
5 |
5 |
|
20.20 |
矩形窗 |
- |
5 |
|
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。