2017-03-23 98 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]中的樣本數組如果音頻中有多個聲道那麼每個幀將會爲每個通道包含一個單獨的樣本,幀按時間排序。因此,它將表示波形而不是譜圖。 –

相關問題