3
我需要在一段时间内将音频应用于视频,但需要一些音频持续时间更长(或更短)。如何改变音频的速度而不改变音调?我试图改变fps(通过乘以所需的持续时间除音频持续时间),但它不是我想要的。如何在不改变音调的情况下更改音频速度?
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")
您需要更改音频的音调,以便在不同的速度回放时听起来正常。这可以通过以相应更高或更低的速率重新采样音频来完成。简单的例子:以双倍速度播放将需要将音高减半。 – martineau
你需要用相位声码器算法来延长你的音频时间,这会很难,这种算法的发展是数学上复杂的 – ederwander