从* .wav文件中提取振幅列表以在Python中使用

时间:2011-02-03 19:19:07

标签: python wav fft frequency amplitude

我遇到了一些编程和转换问题。我正在设计一个AI来识别乐器演奏的音符,并需要从波形文件中提取原始声音数据。我的目标是在文件中的大块时间执行FFT操作以供AI使用。为此,我需要一个音频文件的振幅列表,但我似乎无法找到一个可行的转换技术。这些文件以MP3的形式开始,然后我将它们转换为wav文件,但是当我尝试读取它时,我总是最终得到一个压缩文件,它会发出乱码。有谁知道我怎么可能将wav文件转换成与Python波模块兼容的东西,甚至可以直接将数据转换成振幅列表?

2 个答案:

答案 0 :(得分:3)

默认的Python wave模块不是很彻底。您可以尝试将scipy中包含的那个作为替代方案。

退房:Reading *.wav files in Python

如果您打算使用音频进行任何数字繁重的提升,那么scipy可能是您最好的选择。

答案 1 :(得分:2)

我相信Python可以读取.dat文件。您可以使用SoX将mp3或wav或其他任何内容转换为.dat文件,这些文件只是“时间 - 左放大器 - 右放大器”的文本列表

代码很简单 sox soundfile.mp3 soundfile.dat

http://sox.sourceforge.net/

Sox是命令行 - 我在我的mac上使用Terminal运行它,但任何了解Bash或Linux命令的东西都应该根据你正在使用的cpu而工作。

希望有所帮助!

您可能也想查看纯数据,它有一些很好的FFT变换内置到直观的图形编程语言中。