在 Python 中组合多个音频文件(有延迟)

Posted

技术标签:

【中文标题】在 Python 中组合多个音频文件(有延迟)【英文标题】:Combining multiple audio files in Python (with delay) 【发布时间】:2011-01-03 01:00:11 【问题描述】:

我希望在 Python 中组合一系列不同的音频文件 (mp3)。要求之一是我需要能够在每个文件的末尾指定延迟。为了说明,类似:

[file1.mp3--------3秒---------][延迟---------2秒--------] [file2.mp3]-------------4 秒][延迟---------2 秒][file3.mp3----------3秒---------]

这里有没有人知道可以做到这一点的任何 mp3 库? Python在这里并不是真正的必需品。如果用另一种语言会更容易,那就没问题了。

【问题讨论】:

【参考方案1】:

我认为FFmpeg 可以做到这一点,只要有正确的论点。不需要真正使用库。

【讨论】:

我还需要做其他事情(例如解析、重命名文件、根据音频文件的长度动态改变延迟等)。【参考方案2】:

要合并 wav 或 aiff 文件,您可以执行以下操作:(灵感来自here)

import aifc

def concatenate(*items):
    data = []

    for item in items:
        f = aifc.open(item, 'rb')
        data.append([f.getparams(), f.readframes(f.getnframes())])
        f.close()

    output = aifc.open('output.aif', 'wb')
    output.setparams(data[0][0])

    for item in data:
        output.writeframes(item[1])

    output.close()

查看 wav 格式的链接(几乎相同,但使用 wave 库)

要添加静音,我只需使用您最喜欢的音频编辑器制作一秒钟的静音文件,然后以适当的静音连接。

【讨论】:

以上是关于在 Python 中组合多个音频文件(有延迟)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用python将长音频(EX:1小时)文件拆分为多个短长度(5s)音频文件

结合多个音频文件在 iOS 上实时播放

使用 Python 组合多个 CSV 文件

循环下载多个音频文件失败(python)

具有多个视频帧的 DirectShow 变换过滤器 - 与音频同步

使用 AVMutableComposition 组合视频和音频