聴覚テストで AudioContext() を使用していますが、音量を x dB 上げる/下げる方法を知りたいと思っていました。それは可能ですか?
現時点では、AudioContext に接続された gainNode があります。これは (要するに) 次のようになります。
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);
次に、スピーチが-0.6でノイズが-0.3の場合、たとえば-6 dBの基準があります。しかし、この値を特定の dB 値だけ上げるにはどうすればよいでしょうか?
例: -6 dB を 5 dB 上げて -1 dB にします。音声/ノイズを再計算するにはどうすればよいですか?