使用python合并多个mp3音频文件

时间:2019-11-20 16:53:22

标签: python pyaudio audio-processing

如何将多个mp3(非wav)文件与Python的pyaudio合并。我发现了几种将mp3文件与其他应用程序或语言合并的方法。例如,我找到了mp3wrap应用程序。还有这个in go language。但是我该如何在Python中做到这一点。当尝试这样做时,我失败了。

2 个答案:

答案 0 :(得分:0)

我将在ffmpeg(用于执行这种媒体处理的最佳命令行实用工具之一)周围使用python包装器。一个示例是https://github.com/kkroening/ffmpeg-python

答案 1 :(得分:0)

您可以使用 ffmpeg 连接音频。 ffmpeg 必须安装在您的系统中,对于 mac 使用这个:

<块引用>

$ brew install ffmpeg

然后使用 python 创建连接命令。

发送以下函数中的音频文件位置列表和您的输出音频位置。 最后在 python 中使用 os 模块来运行该命令,它会像魅力一样工作。 lis -> 音频文件位置列表,如:['/home/name/music_1.mp3', '/home/name/music_2.mp3'] 等等..

它将按顺序运行,您可以在此处添加任意数量的文件位置。

import os

def concat_audios(lis, file_location):
    st = ["ffmpeg"]
    for i in range(len(lis)):
        st.append("-i")
        st.append(lis[i])
    st.append("-filter_complex")
    st = ' '.join(st) + " "
    for i in range(len(lis)):
        st = st + "[" + str(i) + ":0]"

    st = st + "concat=n=" + str(len(lis)) + ":v=0:a=1[out] -map [out] " + file_location
    print(st)
    try:
        os.remove(file_location)
    except:
        pass

    os.system(st)

如果你想知道在终端中运行的 Main 命令是这样的,否则只需调用上面的函数,你的工作就完成了:

<块引用>

ffmpeg -i /home/name/music_1.mp3 -i /home/name/music_2.mp3 -filter_complex [0:0][1:0]concat=n=2:v=0:a=1[out] -map [out] /home/name/output_music.mp3

如果你愿意,你也可以使用这个模块:https://github.com/kkroening/ffmpeg-python

我只是用上面提到的方法做了同样的事情。

相关问题