gpt4 book ai didi

javascript - 如何将 dbfs 校准为 db spl?

转载 作者:行者123 更新时间:2023-11-28 05:39:48 26 4
gpt4 key购买 nike

我使用网络音频 API 播放声音并使用增益节点来更改音量。当我更改增益节点的值时,分贝计显示的数字不是预期的。

context.createGain();
var source=context.createOscillator();
source.frequency.value=1000;
source.start();
source.connect(gainNode);
gainNode.connect(context.destination);

gainNode.gain.value=Math.pow(10, dbfs/20));

when dbfs=0,the Decibel meter showed 90 dbspl;
when dbfs=-10,the Decibel meter showed 84 dbspl;
when dbfs=-20,the Decibel meter showed 78 dbspl;
when dbfs=-30,the Decibel meter showed 72 dbspl;
when dbfs=-40,the Decibel meter showed 62 dbspl;
when dbfs=-50,the Decibel meter showed 52 dbspl;

实际音量没有按预期变化,是否在生成gainNode值时出现错误?我想以 80 db spl 或其他特定数字播放声音,dbfs 的值可以是多少以及如何设置 GainNode 的值?

最佳答案

您的方法的一个缺陷是您使用的是正弦波音调。您需要使用粉红噪声,否则房间中的反射可能会显着改变声波的能量。

理想情况下,您应该在消声室或自由场中进行测量,以避免反射干扰。

另一个问题可能是由于 SPL 计不准确或扬声器系统的非线性造成的。例如,您的声压级计是否经过校准?

我强烈推荐阅读this article关于 SPL 测量。

一般来说,数字和电气领域(即您的计算机上以及 DAC 和放大器内部)中的音频比声学领域(即您的房间、扬声器和麦克风)中的音频更加线性且无失真。 ),所以我会首先寻找它们的问题,而不是软件的问题。您可以尝试使用REW 作为引用,也作为首先测试您的声音/麦克风系统的工具。

关于javascript - 如何将 dbfs 校准为 db spl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39023244/

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