1

研究深度神经网络,特别是 LSTM,我决定按照这个链接中提出的想法:为 LSTM 二进制分类构建语音数据集 来构建分类器。

我有一个基于音频的,其中提取 MFCC 的特征,其中每个数组是 13x56 每个单词的音素。训练数据是这样的:

X = [[phon1fram[1][1], phon1fram[1][2],..., phon1fram[1][56]], 
     [phon1fram[2][1], phon1fram[2][2],..., phon1fram[2][56]], ....   
     [phon1fram[15][1], phon1fram[15][2], ..., phon1fram[15][56] ] ]
     ...
     ...
     [[phon5fram[1][1], phon5fram[1][2],..., phon5fram[1][56]], ... ,
     [phon5fram[15][1], phon5fram[15][2], ..., phon5fram[15][56]] ]

在刻字中,第一帧标签肯定会被称为“中介”,而只有最后一帧实际上代表音素?

Y = [[0, 0, ..., 0],        #intermediary
     [0, 0, ..., 0], ... ,  #intermediary
     [1, 0, ..., 0]]        # is one phoneme
    [[0, 0, ..., 0], ...    #intermediary
     [0, 1, ..., 0]         # other phoneme

这真的是正确的吗?在第一次测试中,我执行的所有预期都倾向于将这个“中间人”标记为最普遍。可以使用任何其他方法吗?

4

1 回答 1

1

我正在做同样的任务。我正在使用http://keras.io/layers/recurrent/来完成任务。使用带有 theano 后端的 keras 来完成这项任务。您可以按照以下步骤操作:

  1. 将 Mfcc 值存储在 TXT 文件中。
  2. 读取 TXT 文件并将所有值存储到 Numpy 数组中。
  3. 将此 numpy 数组传递给神经网络的输入。
  4. 在输入输入之前应用填充

您可以使用超参数(batch_size、优化器、损失函数、序列大小)来评估结果。

于 2016-07-15T12:05:43.377 回答