Pydub混合2种不同能量水平的声音

时间:2018-03-19 16:50:23

标签: audio overlay pydub

我使用Pydub Library。 我想混合两种不同分贝水平的声音,包括dB数据(不同的能量水平)。例如,我有两种声音。

sound1 = AudioSegment.from_file("species_a.wav")

sound2 = AudioSegment.from_file("species_b.wav")

combined = sound1.overlay(sound2)

我想要,例如,物种" a"说起来比物种物种" b"在我的新声音"合并"。

使用不同的能量级别(-18 dB,-12 dB,-6 dB, - 0dB)执行此操作。

有可能吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

你可以将它们标准化为(未经测试的代码,但它可能有效)

def set_to_target_level(sound, target_level):
    difference = target_level - sound.dBFS
    return sound.apply_gain(difference)

sound1_adjusted = set_to_target_level(sound1, -12.0)
sound2_adjusted = set_to_target_level(sound2, -12.0)

combined = sound1_adjusted.overlay(sound2_adjusted)