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