0

我正在尝试从具有相同持续时间(3.:30)的两个音轨(声乐和乐器)中创建混音。但是,当我尝试使用叠加功能时,我的人声开始得太早了。

from pydub import AudioSegment

sound1 = AudioSegment.from_file("vocals.mp3")
sound2 = AudioSegment.from_file("instrumental.mp3")
combined = sound1.overlay(sound2)
combined.export("mix.mp3", format='mp3')
4

1 回答 1

0

我相信您可以使用位置参数表示您希望从原始声音的哪个位置开始overlay播放的位置。def overlay(self, seg, position=0, loop=False, times=None, gain_during_overlay=None)

# This takes the duration of sound2 and overlays
# sound1 after 10% of the song2's duration.
combined = sound2.overlay(sound1, position=0.1*len(sound2))

请注意,这将使您的总歌曲长度为sound1,要解决此问题,您可以添加歌曲的其余部分:

if len(sound2) < len(sound1):
   # Play the last 10% of the song1
   combined += sound2[-1.1*len(sound1)+len(sound2):]
于 2021-02-21T22:27:24.190 回答