2017-03-23 106 views
0

我已经标记了.wav文件来训练卷积神经网络。这些适用于孟加拉语手机,没有标准数据集可用。我想输入这些.wav文件到Tensorflow来培训我的CNN模型。我想从这些.wav文件中创建灰度光谱图,这些文件将被输入到我的模型中。我需要帮助如何做到这一点。如果有多个替代品,他们的优势和劣势是什么?如何将语音训练数据添加到张量流中

另外,它们的时间长度可变,有些是70ms,有些是160ms。有没有办法将他们分成20ms的细分市场?

+0

任何人都可以提供任何例子与librosa和matplotlib? –

+0

我终于从持续50ms的.wav文件中创建了灰度光谱图。如果有人对我的代码感兴趣,可以发布。 –

回答

0

我在研究中做了类似的事情。我使用Linux实用程序SOX来处理音频波形文件并创建光谱图。

在音频文件长度上,您可以使用SOX中的“trim”选项将文件分割成20ms段。沿着以下几条线:

sox myaudio.wav trim 0 0.02 : newfile : restart 

使用SOX的“光谱图”选项,您可以创建光谱图。

sox myaudio.wav -n spectrogram -m -x 256 -y 256 -o myspectrogram.png 

该命令将创建一个大小为256×256的单色频谱,并将其存储在文件“myspectrogram.png”。

在我的研究中,我没有将文件分成更小的块。我发现使用这个词的整个波形文件足以获得良好的认可。但是,这取决于你的长期目标是什么。

+0

谢谢。一个问题解决了。现在,这个myspectrogram.png需要被转换成TFRecord或类似的东西来作为张量流的输入。有任何想法吗? –

0

您也可以看看TensorFlow ffmpeg的OPS加载音频文件,虽然我们还没有一个内置的频谱: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/ffmpeg

+0

谢谢。我会看看,然后会回来。 –

+0

如果我没有记错在ffmpeg_lib.h中,其记录为 “//使用ffmpeg读取音频文件并将其转换为 // [-1.0,1.0]中的样本数组如果音频中有多个声道那么每个帧将会为每个通道包含一个单独的样本,帧按时间排序。因此,它将表示波形而不是谱图。 –

相关问题