【问题标题】:Extracting an amplitude list from *.wav file for use in Python从 *.wav 文件中提取振幅列表以在 Python 中使用
【发布时间】:2011-06-20 21:49:25
【问题描述】:

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

【问题讨论】:

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

标签: python wav fft frequency amplitude


【解决方案1】:

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

查看:Reading *.wav files in Python

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

【讨论】:

    【解决方案2】:

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

    代码很简单 sox 声音文件.mp3 声音文件.dat

    http://sox.sourceforge.net/

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

    希望有帮助!

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

    【讨论】:

      猜你喜欢
      • 2020-05-29
      • 2017-01-11
      • 2013-11-22
      • 1970-01-01
      • 2014-12-31
      • 1970-01-01
      • 2012-09-05
      • 1970-01-01
      • 2015-04-17
      相关资源
      最近更新 更多