5

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

4

2 回答 2

3

默认的 Python wave 模块不是很彻底。您可以尝试使用 scipy 中包含的替代方法。

查看:在 Python 中读取 *.wav 文件

如果您要对音频进行任何数字繁重的工作,那么 scipy 可能是您的最佳选择。

于 2011-02-03T21:02:22.293 回答
2

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

代码就是 sox soundfile.mp3 soundfile.dat

http://sox.sourceforge.net/

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

希望有帮助!

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

于 2011-08-22T22:04:53.120 回答