使用 Pydub 相对于另一个音频文件设置 rms

Posted

技术标签:

【中文标题】使用 Pydub 相对于另一个音频文件设置 rms【英文标题】:Setting rms relative to another audio file using Pydub 【发布时间】:2021-11-05 23:17:53 【问题描述】:

我正在尝试在 Pydub 中相对于另一个文件设置 Audiosegment 的 rms 级别,然后再覆盖两者。我尝试使用的方法涉及将第一个文件的相对 rms 设置为比第二个文件强 +4 dB - 我知道 rms 是不可修改的,但 dBFS 是。我正在尝试使用apply_gain() 对其进行修改,但在调用该方法之前和之后打印 rms 和 dBFS 并没有显示任何差异。

目前,我的代码如下所示:

if segmentOne.dBFS > segmentTwo.dBFS:
    gain = segmentOne.dBFS - segmentTwo.dBFS
    segmentTwo.apply_gain(gain)
elif segmentOne.dBFS < segmentTwo.dBFS:
    gain = segmentTwo.dBFS - segmentOne.dBFS
    segmentOne.apply_gain(gain)

segmentOne.apply_gain(6)

segmentOne = segmentOne.overlay(segmentTwo)

我对音频不是很有经验(一点也不),所以可能有一些明显的我遗漏了。有没有办法使用 Pydub 做我需要的事情?

【问题讨论】:

【参考方案1】:

我understand apply_gain 返回音频片段的修改副本。

所以你可能必须这样做:

segmentTwo = segmentTwo.apply_gain(gain)

【讨论】:

以上是关于使用 Pydub 相对于另一个音频文件设置 rms的主要内容,如果未能解决你的问题,请参考以下文章

Python,pydub分割音频文件

如何使用pydub在静音结束时拆分音频文件而不删除静音?

PyDub 从变量播放音频

Pydub Slice Audio Segment By Sample

python处理音频文件(mp3)

停止在 pydub 中播放音频