如何在Unity C中获得声音的峰值功率#

时间:2015-03-04 07:17:27

标签: c# unity3d

在Unity中录制声音后,是否可以获得声音的峰值功率?或者它有什么方法可以计算声音的峰值功率?

1 个答案:

答案 0 :(得分:3)

峰值在声音方面并不是很有趣。如果你想要更接近声音的感知音量,一个非常好的指标是RMS。要做到这一点,你必须做一些数学运算:

  • 使用audio.GetOutputData
  • 加载示例数据
  • 所有采样值的总和
  • sum / amountOfSamples的平方根 - 即RMS(均方根)
  • 如果您希望获得以dB为单位的值,则可以将其设为20 * log10(rms / reference),其中reference代表您希望在0 dB获得的值。例如,一个很好的参考点是0.1。请注意,RMS值始终从01,而dB值有点狂野 - 但它们更接近人类听觉。如果你想要非常认真,可以在不同的音量下看到不同的频率 - 例如,看看dBA。