Press "Enter" to skip to content

Mozilla Common Voice上的语音识别—第二部分:模型

Jonathan Velasquez在Unsplash上的照片

这是基于Mozilla Common Voice数据集的口语语音识别的第二篇文章。在第一部分中,我们讨论了数据选择并选择了最佳嵌入。现在让我们训练几个模型并选择最佳模型。

模型比较

我们将在完整数据集(40K个样本,有关数据选择和预处理的更多信息请参见第一部分)上训练和评估以下模型:

· 卷积神经网络(CNN)模型。我们将语言分类问题简单地视为二维图像的分类问题。基于CNN的分类器在语言识别的TopCoder竞赛中展现出了良好的结果。

CNN架构(作者创作,使用PlotNeuralNet创建)

· Bartz等人(2017年)的CRNN模型。CRNN结合了CNN的描述能力和RNN对时序特征的捕捉能力。

CRNN架构(来自Bartz等人,2017年)

· Alashban等人(2022年)的CRNN模型。这只是CRNN架构的另一种变体。

· AttNN:De Andrade等人(2018年)的模型。该模型最初用于语音识别,随后应用于智能博物馆项目中的口语语言识别。除了卷积和LSTM单元外,该模型还具有后续的注意力块,该块被训练以根据其对分类的相关性对输入序列的部分(即傅里叶变换计算的帧)进行加权。

· CRNN*模型:与AttNN相同的架构,但没有注意力块。

· 延时神经网络(TDNN)模型。我们在这里测试的模型用于为Snyder等人(2018年)的口语语言识别生成X-vector嵌入。在我们的研究中,我们绕过了X-vector生成,直接训练网络进行语言分类。

所有模型均基于相同的训练/验证/测试集划分和相同的MEL频谱嵌入,其中包含前13个MEL滤波器组系数。这些模型可以在这里找到。

下图显示了验证集上的学习曲线(每个“epoch”代表数据集的1/8)。

不同模型在Mozilla Common Voice数据集上的性能(作者创作的图像)

以下表格显示了基于10次运行的准确率的均值和标准差。

每个模型的准确率(作者创作的图像)

可以清楚地看到,AttNN、TDNN和我们的CRNN*模型表现相似,其中AttNN的准确率最高,达到92.4%。另一方面,CRNN(Bartz等人,2017年)、CNN和CRNN(Alashban等人,2022年)的性能非常一般,其中CRNN(Alashban等人,2022年)的准确率仅为58.5%。

然后,我们在训练集和验证集上训练了获胜的AttNN模型,并在测试集上进行了评估。92.4%的测试准确率(男性为92.4%,女性为92.3%)接近验证准确率,这表明模型没有在验证集上过拟合。

为了理解评估模型之间的性能差异,我们首先注意到TDNN和AttNN是专门为语音识别任务设计的,并且已经在之前的基准测试中进行了测试。这可能是这些模型排名靠前的原因。

AttNN和我们的CRNN模型(相同的架构但没有注意力机制)之间的性能差距证明了注意力机制在口语语言识别中的相关性。尽管具有类似的架构,但以下CRNN模型(Bartz等人,2017)的性能较差。这可能仅仅是因为默认的模型超参数对MCV数据集不是最优的。

CNN模型没有任何特定的记忆机制,排名其次。严格来说,CNN具有一定的记忆概念,因为计算卷积涉及固定数量的连续帧。因此,更高层次的卷积层由于CNN的分层特性,封装了更长时间间隔的信息。事实上,TDNN模型(排名第二)可以被视为一维CNN。因此,如果在CNN架构搜索中投入更多时间,CNN模型的性能可能接近TDNN。

Alashban等人(2022)的CRNN模型令人惊讶地显示出最低的准确性。有趣的是,这个模型最初设计用于识别MCV中的语言,并且据原始研究报告,准确性约为97%。由于原始代码不公开,很难确定这个巨大差异的原因。

两两准确性

在许多情况下,用户通常仅使用不超过2种语言。在这种情况下,模型性能的更合适的度量是两两准确性,即忽略所有其他语言的分数计算给定语言对的准确性。

AttNN模型在测试集上的两两准确性如下表所示,与混淆矩阵一起,对角线上是单个语言的召回率。平均两两准确性为97%。两两准确性总是高于准确性,因为只需要区分2种语言。

AttNN模型的混淆矩阵(左)和两两准确性(右)(图片作者提供)

因此,该模型最好区分德语(de)和西班牙语(es),以及法语(fr)和英语(en)(98%)。这并不令人惊讶,因为这些语言的语音系统非常不同。

尽管我们使用softmax损失来训练模型,但先前有报道称使用tuplemax损失可能可以获得更高的两两分类准确性(Wan等人,2019)。

为了研究tuplemax损失的效果,我们在PyTorch中实现了tuplemax损失后重新训练了我们的模型(实现见此处)。下图比较了在验证集上评估时,使用softmax损失和tuplemax损失对准确性和两两准确性的影响。

使用softmax和tuplemax损失计算的AttNN模型的准确性和两两准确性(图片作者提供)

可以观察到,与整体准确性(成对t检验p值=0.002)或两两准确性相比较(成对t检验p值=0.2),tuplemax损失的性能较差。

事实上,即使在原始研究中,也不能清楚地解释为什么tuplemax损失应该更好。以下是作者的一个例子:

tuplemax损失的解释(来自Wan等人,2019年)

实际上,损失的绝对值并没有多大意义。通过足够的训练迭代,这个例子可能会以一种或另一种损失被正确分类。

无论如何,tuplemax损失并不是一个通用的解决方案,选择损失函数应该谨慎根据每个特定问题进行。

结论

我们在Mozilla Common Voice(MCV)数据集的短音频片段的口语识别中达到了92%的准确率和97%的成对准确率。考虑了德语、英语、西班牙语、法语和俄语。

在对梅尔频谱图、MFCC、RASTA-PLP和GFCC嵌入进行初步研究后,我们发现梅尔频谱图中的前13个滤波器组系数能够获得最高的识别准确率。

接下来,我们比较了5个神经网络模型的泛化性能:CNN、CRNN(Bartz等人,2017年)、CRNN(Alashban等人,2022年)、AttNN(De Andrade等人,2018年)、CRNN*和TDNN(Snyder等人,2018年)。在所有模型中,AttNN表现最好,这凸显了LSTM和注意力模块在口语识别中的重要性。

最后,我们计算了成对准确率,并研究了元组最大化损失的影响。结果显示,与softmax相比,元组最大化损失降低了准确率和成对准确率。

总之,我们的结果构成了Mozilla Common Voice数据集口语识别的新基准。通过结合不同的嵌入和广泛研究有前景的神经网络架构,例如transformers,未来的研究可能会取得更好的结果。

在第三部分中,我们将讨论哪些音频转换可能有助于提高模型性能。

参考文献

  • Alashban, Adal A., 等。“使用卷积递归神经网络的口语识别系统。” Applied Sciences 12.18 (2022): 9181.
  • Bartz, Christian, 等。“使用深度卷积递归神经网络的语言识别。” Neural Information Processing: 24th International Conference, ICONIP 2017, Guangzhou, China, November 14–18, 2017, Proceedings, Part VI 24. Springer International Publishing, 2017.
  • De Andrade, Douglas Coimbra, 等。“一种用于语音命令识别的神经注意力模型。” arXiv预印本arXiv:1808.08929 (2018).
  • Snyder, David, 等。“使用x-vectors的口语识别。” Odyssey. Vol. 2018. 2018.
  • Wan, Li, 等。“用于语言识别的元组最大化损失。” ICASSP 2019–2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2019.
Leave a Reply

Your email address will not be published. Required fields are marked *