我有一个从Web Audio API获得的解码 PCM 音频数据。
我想生成一个图表,表示随时间变化的音量水平(人类感知)。
volume|
level| ******
| * * **
| * * * **
|** * *** *
| ** * * * *
+---------------*-*-----************------+--- time
0 30s
audio is and quiet
loud here here
这是我目前的方法,因为我有一个由 6 个通道组成的音频。
计算时间 T 的音量:
对于每个通道,计算 200ms 窗口的 RMS 值(在我的例子中为 44100 * 0.2 = 8820 个样本)。时间 T 将在窗口的中间(忽略边缘)。
计算在步骤 #1 中获得的 6 个值的平均值。
我得到这样的东西:
这是获取音量级别的合理方法吗?
将 RMS 转换为 dB(步骤 #3:计算20*Log_10(step #2))
会产生更准确的图表吗?
什么是平滑/噪声消除的适当方法?