1

是否有任何 Python 工具/库可以让我操作声音文件(wav/ mp3)?

所需的操作是:

  • 创建一个新的音频文件
  • 将声音放置在具有指定音量级别的时间线上,允许它们重叠

理想的工具将像这样使用:

result = AudioFile(12)   # New 12 sec audio file

sounds = [load_sound(fname) for fname in soundfiles]

result.add(sounds[0], start_time=0)
result.add(sounds[1], start_time=2, volume_level=0.6)

result.save('result.wav')

现在result.wav应该是由声音组成的 12 秒音频,如果声音超过 2 秒0,音频1将重叠。0

问:外面有这样的东西吗?

4

1 回答 1

3

首先,您几乎可以只使用标准库来做到这一点。

wave可以解析和创建WAV文件。它不能播放 MP3(或 AAC 或您可能关心的其他文件格式);如果这是一个关键功能,您需要求助于第三方库,但有很多选择。(pymad是在搜索中出现的第一个,但您应该在 PyPI 和/或 Google 上进行自己的搜索,因为 SO 不适合获得建议和意见。)

audioop让您可以对音频缓冲区进行简单的操作——没什么花哨的,但足以规范化、缩放和合并。你可以轻松地构建你想要的东西。

sox如果您想在更高级别上做事,则可以使用, libavcodec/等知名工具的绑定ffmpeg。根据我的经验,每次我需要写一些超出快速破解的东西时,我都找不到任何东西满足相关许可要求的足够完整、足够稳定的绑定,但同样,您必须自己搜索。或者,或者,只需使用 调用命令行工具subprocess,这通常要简单得多。

于 2013-09-11T22:50:58.173 回答