簡體   English   中英

無法使用 moviepy 合並多個音頻文件

[英]Not able to merge several audio files using 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", line 315, 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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM