Audio 如何保持音调变化的动态信号的音量?
我正在动态创建一些音频(使用WebAudio),从基本振荡器(正弦/平方/等)开始,并应用各种调制。当然,当我改变信号的音调时,明显的音量也会改变,高音听起来更响亮,低音听起来更安静 我的问题是,是否有一些标准的方法来处理信号,使其在音调变化时保持(模糊地)恒定的音量?当然,我可以添加一个增益节点,并以某种特殊的方式上下旋转它,但我猜这里有一个标准的操作(我已经找过了,但找不到)Audio 如何保持音调变化的动态信号的音量?,audio,volume,pitch,Audio,Volume,Pitch,我正在动态创建一些音频(使用WebAudio),从基本振荡器(正弦/平方/等)开始,并应用各种调制。当然,当我改变信号的音调时,明显的音量也会改变,高音听起来更响亮,低音听起来更安静 我的问题是,是否有一些标准的方法来处理信号,使其在音调变化时保持(模糊地)恒定的音量?当然,我可以添加一个增益节点,并以某种特殊的方式上下旋转它,但我猜这里有一个标准的操作(我已经找过了,但找不到) 谢谢 显然没有标准的方法来解决这个问题,下面是我提出的“解决方案”: function getVolumeAdjus
谢谢 显然没有标准的方法来解决这个问题,下面是我提出的“解决方案”:
function getVolumeAdjustment(freq) {
var x = Math.log(freq)
var db = 3.4 * x * x - 49.3 * x + 217
return db - 45
}
db
大致相当于40个电话号码,至少我从维基百科上的图片中看到了这一点。然后我减去45,这样我就有了一个音量调整(范围从-6到15左右),根据频率对每个给定的音调进行调整
这似乎基本上是可行的,但还是很高兴听到更好的答案。看看这个结果和其他类似的结果。您可以尝试近似您认为扬声器的dB SPL输出是一种调整音量的方法。否则,如果你觉得没有必要这么科学,你可以应用类似弗莱彻-蒙森曲线的方法,对典型的收听音量进行足够好的音量调整。@Linuxios谢谢,是的-当没有反应时,我最终找到了这些曲线,将一条线拟合到一条,并根据结果进行调整。重要提示:等响度轮廓表示相对音量,单位为dB SPL(声压级),这是真实世界的音量。显然,没有保证将DBF(数字dB)转换为现实世界的DBSPL或反之亦然的方法,但值得记住的是,它们是不同的单元,在这里不被转换。