我正在尝试计算存储在缓冲区中的音轨的响度。缓冲区包含信号的PCM数据,我想通过使用均方根来获得“响度”。我假设我可以在时域中执行此操作,而不必切换到频域。这样做的伪代码是什么?
我是否只需采样一秒钟(音频[0]-音频[44099],音频[44099]-音频[88199]等),然后计算这些值的均方根值?因此,例如,我会这样做:
每秒钟?
1
上面的表达式中有一个缺失的括号-我自己添加了它,但显然编辑至少需要6个字符...
—
Paul R
@PaulR-
—
凯文·维米尔
<!-- html comment -->
在极少数情况下,如果另外完善的帖子有一个很小但非常重要的错误,您可以添加一个来解决字符限制。这种需求很少发生:通常需要进行6个以上的改进。例如,当缺少括号时,通常最好在TeX中使用\sqrt{}
and \frac{}{}
构造。
@Kevin:感谢您的提示-以后我会使用您的HTML注释建议。
—
Paul R
请注意,仅RMS并不能告诉您响度。极低或极高的声音的音量低于相同RMS值的3 kHz。A加权滤波器将为您提供更准确的估计。 gist.github.com/148112
—
endolith 2011年