如标题,我可以设置最大/最小音量的值,即输出音频文件不会太大声或太安静吗? (不是标准化,我只是想把具体音量调到正常,如下图。)
Loudness https://en.wikipedia.org/wiki/Loudness有点复杂 - 一个简单的解决方案是使用一种更简单的方法(例如 dBFS)进行测量,并将所有音频的增益设置为匹配。
sounds = [audio_segment1, audio_segment2, audio_segment3, audio_segment4]
def set_loudness(sound, target_dBFS):
loudness_difference = target_dBFS - sound.dBFS
return sound.apply_gain(loudness_difference)
# -20dBFS is relatively quiet, but very likely to be enough headroom
same_loudness_sounds = [
set_loudness(sound, target_dBFS=-20)
for sound in sounds
]
一个复杂的因素是,您的某些声音可能有较长的静音部分,甚至只是非常安静的部分。这会拉低平均值,并且您可能必须编写更复杂的响度测量。同样,有一种简单的方法,您可以将声音切成更短的片段,然后简单地使用最响亮的片段,假设您的整个声音长 15 分钟,我们可以取 1 分钟的片段:
from pydub.utils import make_chunks
def get_loudness(sound, slice_size=60*1000):
return max(chunk.dBFS for chunk in make_chunks(sound, slice_size))
# ...and replace set_loudness() in above example with…
def set_loudness(sound, target_dBFS):
loudness_difference = target_dBFS - get_loudness(sound)
return sound.apply_gain(loudness_difference)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)