我需要在特定时间内将音频应用于视频,并具有一定的持续时间,但某些音频的持续时间比所需的要长(或短)。如何在不改变音调的情况下更改音频速度?我尝试通过改变帧速率(通过将所需持续时间除以音频持续时间的乘法或除法)来解决问题,但效果并不理想。
original = VideoFileClip("orig.mp4")
clips = [orig.audio.volumex(0.3)]
subs = [] #some array
i = 0
for sub in subs:
clip = AudioFileClip("\\temp{}.mp3")
mult = clip.duration / (sub.end - sub.start) + 0.00001
clip = AudioArrayClip(clip.to_soundarray(buffersize=500, fps=24000/mult), fps=24000).set_start(sub.start).set_end(sub.end)
clips.append(clip)
i += 1
final = CompositeAudioClip(clips)
final.write_audiofile("final.mp3")