我遇到了一些编程和转换问题。我正在设计一个AI来识别乐器演奏的音符,并需要从波形文件中提取原始声音数据。我的目标是在文件中的大块时间执行FFT操作以供AI使用。为此,我需要一个音频文件的振幅列表,但我似乎无法找到一个可行的转换技术。这些文件以MP3的形式开始,然后我将它们转换为wav文件,但是当我尝试读取它时,我总是最终得到一个压缩文件,它会发出乱码。有谁知道我怎么可能将wav文件转换成与Python波模块兼容的东西,甚至可以直接将数据转换成振幅列表?
答案 0 :(得分:3)
默认的Python wave模块不是很彻底。您可以尝试将scipy中包含的那个作为替代方案。
退房:Reading *.wav files in Python
如果您打算使用音频进行任何数字繁重的提升,那么scipy可能是您最好的选择。
答案 1 :(得分:2)
我相信Python可以读取.dat文件。您可以使用SoX将mp3或wav或其他任何内容转换为.dat文件,这些文件只是“时间 - 左放大器 - 右放大器”的文本列表
代码很简单 sox soundfile.mp3 soundfile.dat
Sox是命令行 - 我在我的mac上使用Terminal运行它,但任何了解Bash或Linux命令的东西都应该根据你正在使用的cpu而工作。
希望有所帮助!
您可能也想查看纯数据,它有一些很好的FFT变换内置到直观的图形编程语言中。