1
我使用网络音频API播放声音,并使用gainNode更改音量。当我改变增益节点的值时,分贝计显示的数字不是预期的。如何校准dbfs到db spl?
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值的任何错误?我想播放80db spl或其他特定数字的声音,dbfs的价值以及如何增加gainNode的价值?
非常感谢您的回复。使用正弦波的原因是我真正的需求,我需要播放不同频率的声音来测试某人的听力水平。在那种情况下,我用iphone6上运行的应用程序作为分贝计,并使用thinkpad x201作为扬声器。 iphone6离扬声器10cm远,声音播放时db值非常稳定。除了所有的inpact,如果我的代码在理想条件下运行,当dbfs减少1db时,dbspl会减少1db吗? – user6731513
我建议从粉红色噪声开始反正它是否有帮助。如果是这样,那么它的确是关于你所拥有的思考。顺便说一句,如果你说麦克风距离10cm远 - 他们是在桌面还是类似的东西?这会产生很多反思。尽量至少将设备放在支架上,以确保没有足够接近声音路径的反射表面。 –
非常感谢你,你的观点没问题,我的环境不够好做测试 – user6731513