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

从*.wav文件中提取振幅列表以在Python中使用,python,wav,fft,frequency,amplitude,Python,Wav,Fft,Frequency,Amplitude,我在编程和转换方面有点麻烦。我正在设计一种人工智能来识别乐器演奏的音符,并需要从波形文件中提取原始声音数据。我的目标是在文件中的时间段上执行FFT操作,以供AI使用。为此,我需要一个音频文件的振幅列表,但我似乎找不到一种有效的转换技术。这些文件从MP3开始,然后我把它们转换成wav文件,但最后我总是得到一个压缩文件,当我试图阅读它时,它会发出乱七八糟的声音。有人知道我如何将wav文件转换为与Python的wave模块兼容的文件,或者甚至可以直接将数据转换为振幅列表的文件吗?默认的Python w

我在编程和转换方面有点麻烦。我正在设计一种人工智能来识别乐器演奏的音符,并需要从波形文件中提取原始声音数据。我的目标是在文件中的时间段上执行FFT操作,以供AI使用。为此,我需要一个音频文件的振幅列表,但我似乎找不到一种有效的转换技术。这些文件从MP3开始,然后我把它们转换成wav文件,但最后我总是得到一个压缩文件,当我试图阅读它时,它会发出乱七八糟的声音。有人知道我如何将wav文件转换为与Python的wave模块兼容的文件,或者甚至可以直接将数据转换为振幅列表的文件吗?

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

退房:


若你们打算用音频做任何数字上的繁重工作,scipy可能是你们最好的选择

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

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

Sox是命令行——我在mac上用终端运行它,但任何理解Bash或Linux命令的东西都应该根据您使用的cpu工作

希望有帮助


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

顺便说一句,我在macbook pro上运行PyDev for Eclipse,因此虽然windows转换器并非完全不可能,但它们非常不方便。