gpt4 book ai didi

Python:实时或从 wav 文件获取音量分贝级别

转载 作者:行者123 更新时间:2023-12-05 00:59:37 26 4
gpt4 key购买 nike

对于项目工作,我需要通过录制的音频文件或使用麦克风实时录制来测量音量。经过初步研究,我尝试使用声音文件库。该文件是使用 soundfile 和使用 20*np.log10(np.sqrt(np.mean(np.absolute(a)**2))) 读取的,我已经计算了 dB 值。我得到了声音文件的负值。但是正常的声音可能在 50-70 dB 的范围内,我得到一个负值。谁能帮我解决这个问题?

最佳答案

简短回答:dB 与 dB 不同。您的结果可能是正确的。

长答案:dB 水平始终定义与某个引用值的关系。 For audio / acoustics, there are many reference values ,并且您需要指定要使用的值以使 dB 为单位的值有意义。然后将 dB 值计算为

20*log10(value/reference)dB

(假设它是 root-power quantity ,对于功率量,因子是 10,而不是 20)。需要注意的重要一点是,除以引用值会按预期删除单位。

所以,当你说

normal sound may be in the range of 50-70 dB

这不是一个准确的说法,你可能是说

normal sound may be in the range of 50-70 dB SPL

您在哪里给出相对于 reference sound pressure level of 20 µPa 的值.

在数字系统中,声音文件通常由 float < 1 表示,然后我们说dB FS (dB full scale)引用值为 1(无单位)。根据数学定律,dB FS 值为负数。

同样清楚的是,您不能直接将 dB FS 值与 dB SPL 值相关联:如果您播放相同的音频文件(即取一些 dB FS 值)并播放两次,但调高扬声器的音量旋钮,它将导致两个不同的值 dB SPL(您所听到的)。

关于Python:实时或从 wav 文件获取音量分贝级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52943151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com