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

发布于 2024-10-16 04:13:20 字数 241 浏览 8 评论 0原文

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

I'm having a little bit of programing and conversion trouble. I'm designing an AI to recognize notes played by instruments and need to extract the raw sound data from a wave file. My objective is to perform a FFT operation over chunks of time in the file for use by the AI. For this I need an amplitude list of the audio file, but I can't seem to find a conversion technique that will work. The files start as MP3's and then I convert them to wav file, but I always end up with a compressed file that spits out gibberish when I try to read it. Does anyone know how I might convert the wav file to something that would be compatible with Python's wave module or even something that would directly convert the data into an amplitude list?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

等你爱我 2024-10-23 04:13:20

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

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

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

The default Python wave module isn't very thorough. You might try the one included in scipy as an alternative.

Check out: Reading *.wav files in Python

If you're going to do any numerical heavy lifting with the audio, scipy might be your best option anyway.

花心好男孩 2024-10-23 04:13:20

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

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

http://sox.sourceforge.net/

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

希望有帮助!

您可能还想看看 Pure Data,它在直观的图形编程语言中内置了一些很好的 FFT 变换。

I believe Python can read .dat files. You can use SoX to turn mp3s or wavs or whatever into .dat files that are simply a text list of "time - Left amp - Right amp"

The code is simply
sox soundfile.mp3 soundfile.dat

http://sox.sourceforge.net/

Sox is command line - I run it with Terminal on my mac, but anything that understands Bash or Linux commands should work depending on what cpu you're using.

Hope that helps!

You might want to look at Pure Data too, it's got some nice FFT transforms built into an intuitive graphical programming language.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文