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")
4

2 に答える 2

-1

wave を使用する: サンプリング レートを変更する

import wave

CHANNELS = 1
swidth = 2
Change_RATE = 2

spf = wave.open('VOZ.wav', 'rb')
RATE=spf.getframerate()
signal = spf.readframes(-1)

wf = wave.open('changed.wav', 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(swidth)
wf.setframerate(RATE*Change_RATE)
wf.writeframes(signal)
wf.close()
于 2016-12-30T13:35:40.327 に答える