用于语音识别的 CNN 中的输入和输出特征形状

数据挖掘 神经网络 分类 回归 卷积神经网络 音频识别
2022-03-10 08:57:03

我目前正在研究这篇论文,并试图了解输入和输出形状到底是什么。该论文描述了一个由使用 cnn-hmm 作为声学模型组成的声学模型。输入是可视化为频谱图的 mel-log 滤波器能量图像。该论文描述了一种电话识别方法,其中(据我所知)在这些频谱图上应用 CNN 并使用有限的权重共享方案应该有利于电话识别。

据我了解,输入形状是 9-15 帧,这似乎有点令人困惑,因为他们不考虑话语可能具有的音素数量或它们的长度,而只是“选择”一些帧操作..这个数字似乎与输出没有任何联系——或者我误解了什么?

对于输出

我们使用了 183 个目标类别标签,即 61 个电话的每个 HMM 有 3 个状态。解码后,原始的 61 个电话类别被映射到一组 39 个类别,如 [47] 中的最终评分。在我们的实验中,从训练集中估计的基于电话的二元语言模型被用于解码。为了准备 ANN 目标,在训练数据集上训练了一个单音素 HMM 模型,并使用它基于强制对齐生成状态级标签。

因此,输出分为 183 个类,被映射到 HMM 中,每个 61 个音素有 3 个状态,而 ANN 目标(我认为它是目标 = 后验概率)通过训练具有强制对齐的单音素 hmm。我不确定我是否理解这个过程。如果 ANN 目标是 CNN 应该瞄准/回归并最终根据状态分类的目标,为什么还要处理输入?.. 为什么不制作一个简单的 DNN 来进行回归/分类?

看起来改进在于这里使用了强制对齐,并且仅在单声道上?改进在哪里?

再说一次,我应该如何基于此链接输入形状和输出形状?这将要求音频文件具有一定的长度,从未指定音频的长度,所以我假设情况并非如此。

1个回答

DNN/CNN 预测(训练)一次完成 1 帧。输出可以是 183 种输出状态中的任何一种。音频文件的长度不是问题,因为 DNN/CNN 的输入具有相同的维度,只是输入的数量随音频长度而变化。

例如,1.wav 有 500 个特征,每个特征是 39 维,而 2.wav 有 300 个特征,训练后的模型将采用 39 维输入,输出将是 183 维。因此,根据长度,我们将获得不同数量的输出。

由于话语中的所有帧都针对所有 183 种可能性进行了测试,因此输出始终保持 183 维。由于一切都是在帧级别完成的,因此无需指定话语可以具有的音素数量。

帧连接(9-15 帧)是为了利用语音数据的上下文属性。电话更改取决于上下文。对于 15 帧上下文,我们将 DNN 的输入更改为 [7*39 (left_context) 39 7*39(right_context)],一个 585 维的向量。所以现在 DNN 会以 585 维的数据作为输入,会输出一个 183 维的向量。

CNN输入

有几种不同的方法可以将这些 MFSC 特征组织到 CNN 的地图中。首先,如图 1(b) 所示,它们可以排列为三个二维特征图,每个特征图代表沿两个频率分布的 MFSC 特征(静态、增量和增量-增量)(使用频率带索引)和时间(使用每个上下文窗口中的帧号)。在这种情况下,执行二维卷积(如下所述)以同时归一化频率和时间变化。或者,我们可能只考虑归一化频率变化。在这种情况下,相同的 MFSC 特征被组织为多个一维(1-D)特征图(沿频带索引),如图 1(c)所示。例如,如果上下文窗口包含 15 帧并且每帧使用 40 个过滤器组,我们将构建 45 个(即 15 乘以 3)1-D 特征图,每个图有 40 维,如图 1(c)所示)。结果,将沿频率轴应用一维卷积。在本文中,我们将只关注图 1(c) 中的后一种排列,即沿频率的一维卷积

因此,无论音频文件的长度如何,CNN 的输入都是大小为 45 * 40 的图像块,只是此类输入的数量取决于音频文件的长度。

为什么要强制对齐?

现在我们在帧级别做所有事情,所以对于每一帧我们都需要状态标签。通常此时间信息不可用。

转录的数据通常是这样的,1.wav -> I am a cat

现在我不知道有多少帧属于我或属于a。

HMM 在此数据上进行训练,并进行强制对齐以生成每个帧的状态级别标签。

更好的输入输出关系建模比其他方法有所改进。过滤器组功能也有助于改进。与使用 MFCC 特征训练的 DNN 相比,使用滤波器组特征训练的 DNN 具有更好的性能。