You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pydub参照另一音频设置AudioSegment的RMS相对电平

Pydub调整音频电平问题解决方案

核心原因

Pydub的AudioSegment为不可变对象,所有音频处理方法(包括apply_gain())都不会修改原对象本身,只会返回处理后的新AudioSegment实例。你之前的代码调用apply_gain()后没有将返回值赋值给原变量,所以调整没有生效,打印的rms和dBFS自然没有变化。

修正后代码(实现第一个音频比第二个高4dB的需求)

# 先将两个音频对齐到相同dBFS电平
if segmentOne.dBFS > segmentTwo.dBFS:
    gain = segmentOne.dBFS - segmentTwo.dBFS
    # 接收apply_gain返回的新音频片段
    segmentTwo = segmentTwo.apply_gain(gain)
elif segmentOne.dBFS < segmentTwo.dBFS:
    gain = segmentTwo.dBFS - segmentOne.dBFS
    segmentOne = segmentOne.apply_gain(gain)

# 两者电平对齐后,给第一个音频加4dB,满足相对电平要求
segmentOne = segmentOne.apply_gain(4)

# 叠加音频
segmentOne = segmentOne.overlay(segmentTwo)

效果验证

处理完成后可以输出电平数值确认是否符合预期:
print(segmentOne.dBFS, segmentTwo.dBFS)

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 04:15:09