我遇到了一些编程和转换问题。我正在设计一个人工智能来识别乐器演奏的音符,并且需要从波形文件中提取原始声音数据。我的目标是在文件中的时间块上执行 FFT 操作以供 AI 使用。为此,我需要音频文件的幅度列表,但我似乎找不到可行的转换技术。这些文件以 MP3 开头,然后我将它们转换为 wav 文件,但我总是得到一个压缩文件,当我尝试阅读它时会吐出乱码。有谁知道我如何将 wav 文件转换为与 Python 的 wave 模块兼容的文件,甚至可以将数据直接转换为幅度列表的文件?
问问题
10926 次
2 回答
3
默认的 Python wave 模块不是很彻底。您可以尝试使用 scipy 中包含的替代方法。
如果您要对音频进行任何数字繁重的工作,那么 scipy 可能是您的最佳选择。
于 2011-02-03T21:02:22.293 回答
2
我相信 Python 可以读取 .dat 文件。您可以使用 SoX 将 mp3 或 wav 或任何其他文件转换为 .dat 文件,这些文件只是“时间 - 左放大器 - 右放大器”的文本列表
代码就是 sox soundfile.mp3 soundfile.dat
Sox 是命令行 - 我在我的 Mac 上使用终端运行它,但是任何理解 Bash 或 Linux 命令的东西都应该根据你使用的 cpu 来工作。
希望有帮助!
你可能也想看看 Pure Data,它有一些很好的 FFT 转换内置到直观的图形编程语言中。
于 2011-08-22T22:04:53.120 回答