使用LSTM进行语音识别,并在MFCC中提取特征

时间:2016-05-25 17:57:15

标签: speech-recognition lstm mfcc

研究深度神经网络,特别是LSTM,我决定遵循这个链接中提出的想法:Building Speech Dataset for LSTM binary classification 建立一个分类器。

我有一个基于音频的功能,其中提取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

这真的是对的吗?在我进行的第一次测试中,我所有的销售点都倾向于标注这个"中间人"因为是最流行的。可以使用任何其他方法吗?

1 个答案:

答案 0 :(得分:1)

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

  1. 将Mfcc值存储在TXT文件中。
  2. 读取TXT文件并将所有值存储到Numpy数组中。
  3. 将这个numpy数组传递给神经网络的输入。
  4. 在输入输入之前应用填充
  5. 您可以使用超级参数(batch_size,optimizer,loss function,sequnece size)来评估结果。