2011-02-03 58 views
5

我遇到了一些編程和轉換問題。我正在設計一個AI來識別樂器演奏的音符,並需要從波形文件中提取原始聲音數據。我的目標是對文件中的大塊時間執行FFT操作以供AI使用。爲此,我需要一個音頻文件的幅度列表,但我似乎無法找到能夠工作的轉換技術。這些文件以MP3開頭,然後我將它們轉換成wav文件,但是當我試圖讀取它時,我總是會得到一個壓縮文件,其中會出現亂碼。有誰知道我可能如何將wav文件轉換爲與Python的wave模塊兼容的東西,甚至可以直接將數據轉換爲幅度列表的東西?從* .wav文件中提取振幅列表以便在Python中使用

+0

順便說一句,我正在用PyDev for Eclipse運行在macbook pro上,所以儘管windows轉換器並不是完全沒有問題,但它們非常不方便。 – AlexL 2011-02-03 19:22:47

回答

3

默認的Python wave模塊不是很全面。你可以試試scipy中包含的那個。

退房:Reading *.wav files in Python

如果你打算做任何數值繁重與音頻,SciPy的可能是反正你最好的選擇。

2

我相信Python可以讀取.dat文件。您可以使用SOX打開MP3或wav文件或任何成是簡單的文本列表.dat文件「時間 - 左功放 - 右放大器」

的代碼只是 SOX soundfile.mp3 soundfile.dat

http://sox.sourceforge.net/

Sox是命令行 - 我在終端上運行它,但是理解Bash或Linux命令的任何東西都應該依賴於你使用的CPU。

希望有幫助!

你可能也想看看Pure Data,它有一些很好的FFT變換內置到直觀的圖形化編程語言中。

相關問題