如何解决无法使用moviepy合并多个音频文件
我的目录中大约有245个.webm文件。我想将所有245个文件合并到一个名为output.webm的文件中。我正在使用python的“ moviepy”模块来实现这一目标。
这是我到目前为止所做的:
import os
from moviepy.editor import *
audio_folder='path/to/directory'
audio_files = [audio_folder+'/'+img for img in os.listdir(audio_folder) if img.endswith(".webm")]
print(audio_files)
audio = concatenate_audioclips(audio_files)
audio.write_audiofile('output.webm')
执行此操作时出现以下错误:
Traceback (most recent call last):
File "demo.py",line 17,in <module>
audio = concatenate_audioclips(audio_files)
File "C:\Users\abc\AppData\Local\Programs\Python\Python38-32\lib\site-
packages\moviepy\audio\AudioClip.py",line 315,in concatenate_audioclips
durations = [c.duration for c in clips]
File "C:\Users\abc\AppData\Local\Programs\Python\Python38-32\lib\site-
packages\moviepy\audio\AudioClip.py",in <listcomp>
durations = [c.duration for c in clips]
AttributeError: 'str' object has no attribute 'duration'
我要去哪里错了?
解决方法
如Paul M上面所建议,我正在将字符串列表传递给concatenate_audioclips
函数而不是list of AudioClip Objects
。这就是我解决问题的方法。
audio_folder='path/to/directory'
audio_files = [audio_folder+'/'+img for img in os.listdir(audio_folder) if img.endswith(".webm")]
print(audio_files)
audios = []
for audio in audio_files :
audios.append(AudioFileClip(audio))
audioClips = concatenate_audioclips([audio for audio in audios])
audioClips.write_audiofile('output.webm')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。