在Python中加入和重叠声音

时间:2013-09-11 22:40:52

标签: python audio wav

是否有任何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现在应该是由声音01组成的12秒音频,如果声音0超过2秒,它将重叠。

问:那里有类似的东西吗?

1 个答案:

答案 0 :(得分:2)

首先,您几乎可以只使用标准库。

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

audioop允许您对音频缓冲区执行简单操作 - 没有什么太花哨,但足以规范化,缩放和合并。而且你可以轻松地构建你想要的东西。

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