如何实时增加或减少声音的 dB 音量(pydub)?

How to increase or decrease the volume in dB of a sound in realtime (pydub)?

我研究了一种 实时 改变我正在播放的声音音量的方法(使用 sounddevicepygame.mixer.

我可以只使用 pygame.mixer.Sound.set_volume() 的百分比音量,但我有一个大问题,因为当我不这样做时它似乎几乎不会改变任何东西输入值,如“0.01”、“0.12”、...这个问题有答案:Changing volume in pygame.mixer (almost) no effect,但我在 Windows 10 中找不到这些参数...

我的目的是设置所有内容,以便我可以 increase/decrase 实时发出特定 dB 的声音,如果音量的百分比得到尊重,我可以这样做。

如果那样做不到,那就是实时获取 pydub,据我所知这并不容易...

set_Volume 的范围是 0 到 1.0,其中 1.0 是最大响度。如果要以 dB 为单位进行设置,请首先选择一个参考点。按照惯例,这是 1.0,称为 0 dBFS,0 是 -infinity。接下来取您要设置的 dB 值,比如 -6 dBFS,并将其转换为线性标度:

level = pow(10, -6/20)