我正在使用 AudioContext() 进行听力测试,我想知道如何将音量提高/降低 x dB。甚至可能吗?
目前,我有一个 gainNode 连接到我的 AudioContext,它看起来(简而言之)是这样的:
var context = new AudioContext(), gainNode;
context.decodeAudioData(req.target.response, function(buffer) {
gainNode = context.createGain();
...
}
要更改音量,我这样做:
gainNode.gain.value = {-1 to 1}
在这里,我没有机会准确定义 dB 值。还有其他方法吗?
我认为问题是,浏览器永远不知道扬声器发出的声音的确切音量,因此没有基础来计算新的 dB 音量。
确定当前 dB 值的一种方法是通过 2 种声音的差异,例如测试声音(白噪声)和口语数字。为了计算差异,我找到了公式:
20 * Math.log10(gainNoise / gainSpeech);
然后我有一个例如-6 dB的基础,当语音是-0.6并且噪声是-0.3时。但是如何将这个值提高某个 dB 值呢?
示例:我将 -6 dB 提高 5 dB 到 -1 dB。如何重新计算语音/噪音?