我通过从基本振荡器(正弦/平方/等)开始并应用各种调制来动态创建音频(使用WebAudio)。自然地,当我改变信号的音高时,视在音量会发生变化,较高的音高听起来更大,而较低的音更安静。

我的问题是,是否存在一些处理信号的标准方法,以在音调变化时保持(大致)恒定的音量?当然,我可以只添加一个增益节点,并以某种特殊的方式上下旋转它,但是我猜这里有一个标准的事情要做(我一直在寻找但找不到)。

谢谢!

最佳答案

由于显然没有标准方法,因此这是我破解的“解决方案”:

function getVolumeAdjustment(freq) {
    var x = Math.log(freq)
    var db = 3.4 * x * x - 49.3 * x + 217
    return db - 45
}
db大约模糊了40音节的Equal Loudness contour,至少在我从Wikipedia上的图片中注视着它的时候。然后,我减去45,以便根据其频率对每个给定的音调进行音量调节(范围从-6到15左右)。

它似乎基本上可以工作-虽然仍然很高兴听到任何更好的答案。

关于audio - 如何保持音调变化的动态信号的音量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37097244/

10-11 03:45