测量音频“响度”:RMS vs LUF

2024-05-15 20:48:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图测量电视内容的各种剪辑(从~2-40秒不等)的“响度”。我感兴趣的是内容的相对响度-人们在什么场景中大声喊叫与低语,大声的音乐与安静的场景等等。我想这意味着我感兴趣的是获取增益(输入响度),而不是音量(输出响度)。。。你知道吗

我用python尝试了两种方法:

1)librosa的RMS: np.mean(librosa.feature.rms(spectrogram, center=True).T, axis=0)

2)pyloudnorm:(实现ITU-R BS.1770-4响度算法(LUFS))

          `meter = pyln.Meter(samplerate)
          loudness = meter.integrated_loudness(waveform)`

当我比较两者的结果时,它们有时是一致的,但往往是不同的(同一篇文章的RMS相对较高,但响度较低,反之亦然)。更重要的是,虽然他们似乎都得到了一些正确的东西,但似乎都不是一个非常准确的代表什么是出来的电视。我想知道是否有一些步骤,我需要采取过滤掉一些频率,没有察觉到,但影响这些指标在某种程度上,或者如果我只是错过了一些主要的?谢谢您!你知道吗


Tags: 方法内容音乐剪辑np增益场景感兴趣
1条回答
网友
1楼 · 发布于 2024-05-15 20:48:26

响度,一件东西被感知到的响度,可能是相当棘手的。众所周知,它与频率有关,我们对中等频率范围更为敏感。它与振幅是非线性的。在某个时刻,两倍于时间。在短音阶上也有时间依赖性效应,突然的响声会导致随后的声音看起来比之前没有的声音要小(时间掩蔽)。从长期来看,我们倾向于适应逐渐增加的量(脱敏)。我们倾向于过滤掉信息很少的声音(如静态/重复性噪音)。等。。你知道吗

你至少应该应用频率加权。A-加权是常用的,https://en.m.wikipedia.org/wiki/A-weighting这可以通过加权librosa的STFT谱图来实现。然后你可以计算它的均方根值。您还应该将其转换为desibel。你知道吗

相关问题 更多 >