对于项目工作,我需要从录制的音频文件或使用麦克风实时录制来测量音量。经过初步研究,我尝试使用声音文件库。该文件是使用 soundfile 读取的并使用20*np.log10(np.sqrt(np.mean(np.absolute(a)**2)))
,我已经计算了dB值。我得到的声音文件为负值。但正常的声音可能在 50-70 dB 范围内,而我得到的是负值。有人能帮我解决这个问题吗?
简短回答:dB 与 dB 不同。您的结果可能是正确的。
长答案:dB 级别总是定义与某个参考值的关系。对于音频/声学来说,有很多参考价值,并且您需要指定要使用哪个 dB 值才有意义。 dB 值计算如下
![20*log10(value/reference)dB](https://chart.googleapis.com/chart?cht=tx&chl=20%5Clog_%7B10%7D%5Cleft(%5Cfrac%7B%5Cmathrm%7Bvalue%7D%7D%7B%5Cmathrm%7Breference%7D%7D%5Cright)%5Cmathrm%7BdB%7D)
(假设它是一个根功率量,对于功率量,该系数为 10,而不是 20)。需要注意的一件重要事情是,除以参考值会按预期删除单位。
所以,当你说
正常声音可能在 50-70 分贝范围内
这并不是一个准确的说法,你可能的意思是
正常声音可能在 50-70 dB SPL 范围内
您给出的值相对于参考声压级 20 µPa.
在数字系统中,声音文件通常由浮点数表示< 1
,然后我们谈到dB FS(dB 满量程)参考值1(无单位)。根据数学定律,dB FS 值为负值。
同样清楚的是,您不能直接将 dB FS 值与 dB SPL 值联系起来:如果您播放同一个音频文件(即取一些 dB FS 值)并播放两次,但调高扬声器的音量旋钮,则会导致到两个不同的 dB SPL 值(您听到的声音)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)