如何将多个mp3(非wav)文件与Python的pyaudio合并。我发现了几种将mp3文件与其他应用程序或语言合并的方法。例如,我找到了mp3wrap应用程序。还有这个in go language。但是我该如何在Python中做到这一点。当尝试这样做时,我失败了。
答案 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
我只是用上面提到的方法做了同样的事情。