我已经标记了.wav文件来训练卷积神经网络。这些是孟加拉语手机,没有标准的数据集可用。我想将这些.wav文件输入Tensorflow来训练我的CNN模型。我想从这些.wav文件中创建灰度谱图,这些文件将输入到我的模型中。我需要帮助才能这样做。如果有不止一种选择,他们的优势和劣势是什么?
此外,它们的时间长度可变,有些是70毫秒,有些是160毫秒。有没有办法在20ms段中划分它们?
答案 0 :(得分: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
该命令将创建一个大小为256x256的单色光谱图,并将其存储在“myspectrogram.png”文件中。
在我的研究中,我没有将文件拆分成更小的块。我发现使用单词的整个波形文件足以获得良好的识别。但是,这取决于你的长期目标。
答案 1 :(得分:0)
您还可以查看TensorFlow中的ffmpeg操作来加载音频文件,但我们还没有内置频谱图: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/ffmpeg