使用MFCC进行语音识别

时间:2018-12-03 21:09:41

标签: python keras neural-network voice-recognition mfcc

我目前正在结合使用傅立叶变换和Keras进行语音识别(说话者识别)。我听说MFCC是语音识别的更好选择,但是我不确定如何使用它。

我正在python(3)中使用librosa提取20个MFCC功能。我的问题是:我应该使用哪些MFCC功能来识别说话者?

除此之外,我不确定如何实现这些功能。我要做的是获取必要的功能并为神经网络输入一个长向量。但是,也可以显示颜色,所以图像识别也可以,还是更针对语音而不是说话者识别?

简而言之,我不确定应该从哪里开始,因为我对图像识别的经验不足,也不知道从哪里开始。

提前谢谢!

3 个答案:

答案 0 :(得分:0)

  

我的问题是:我应该使用哪些MFCC功能进行说话人识别?

我要说的是全部使用它们。从技术上讲,MFCC功能是从不同的滤波器组输出的。很难先验地说出其中哪一个有用。

  

除此之外,我不确定如何实现这些功能。我要做的是获取必要的功能并为神经网络输入一个长向量。

实际上,当您为N个样本提取MFCC时,您会得到一个类似N x T x 20 T的数组,表示经过MFCC处理后的音频信号中的帧数。我建议使用Sequence classification with LSTM。这样会带来更好的结果。

答案 1 :(得分:0)

  

除此之外,我不确定如何实现这些功能。   我要做的就是获得必要的功能并使之变长   神经网络的向量输入。

对于每个样本,您必须具有MFCC的2D矩阵,例如N x T X no_mfccs(在您的情况下,no_mfccs = 20);为了使它成为一个向量,各种研究人员采用了均值,var,IQR等统计数据来缩小特征维。有些人还使用多元回归对其进行建模,而另一些人则将其拟合为高斯混合模型。这取决于下一阶段。您可以使用统计信息将其转换为单个向量

或,正如Parthosarathi所说,您可以使用LSTM跨时间范围保留顺序信息。

  

但是,还可以显示颜色,所以图像识别也可以实现,还是更针对语音而不是说话者识别?

我不建议您将频谱图(图像)用作神经网络的特征向量,因为视觉图像和频谱图不会以相同的方式累积视觉对象和声音事件信息。

当您将图像馈送到神经网络时,它会假定图像的特征(像素值)具有相同的含义,而不管其位置如何。但是在频谱图的情况下,特征的位置非常重要。

例如向上移动男性声音的频率可能会将其含义从男人变成孩子。因此,对于这种形式的数据,二维CNN提供的空间不变性可能效果不佳。 要了解更多信息,请参考:What’s wrong with CNNs and spectrograms for audio processing?

答案 2 :(得分:0)

您可以使用具有密集层/多层感知器的MFCC,但是假设您有足够的训练数据,则可能在Mel频谱图上使用卷积神经网络会更好。