2

如何计算 iOS 上麦克风的 A 加权和 C 加权 dB 声级?

这是我尝试过的,但我得到的读数远低于我 iPhone 旁边的声级计:

  1. 使用 Novocain 库,我稍作修改,将音频会话模式设置为测量。
  2. 使用 Maximilian 音频库通过 FFT 运行传入的音频帧并将幅度转换为 dB。
  3. 使用 Maximilian 音频库的 Octave Analyzer 将 FFT 输出放入 10hz 到 20480hz 的倍频程箱中。
  4. 对于每个倍频程箱,我应用相关 dB 加权的 db 增益(例如,将-70.fdb 增益应用于存储在 10hz 箱中的 db 值以获得 A 加权 dB 增益)。
  5. 通过将每个 dB bin 减小为幅度,将增益减小为幅度,将每个 bin 的 db 值相加,进行加法,然后再次转换回 dB 值。

这是在正确的轨道上,我有疑问吗?有人可以概述一种方法吗?建议一个图书馆和/或其他例子(我看过)。

注意——我想要近似的 dB(A) 和 dB(C) 值,这不需要科学。不确定如何补偿麦克风的频率响应,如果补偿麦克风的响应,上述技术是否正确?

4

1 回答 1

6

我认为您无法通过设备测量物理声压级。在第 2 步中,您“将幅度转换为 dB”。但是,您从设备记录的幅度具​​有任意单位。录制16 位音频时,音频表示为 -32768 到 +32767 范围内的数字。如果您使用的是浮点数据,那么它会被 32768 归一化,因此它的范围是(大约)-1 到 +1。

该设备的麦克风必须应对各种声级。通常,设备将具有某种形式的自动增益控制,以适应当前的平均声级。这意味着如果您测量 1.0 的峰值,那么您无法知道它对应的实际 SPL。您可以将录音转换为一系列 dB,但这使用了不同的 dB 定义:作为功率比。这与 SPL 测量值(例如 dB(A))没有相关性。

如果您能够关闭 AGC 并根据您的声级计校准您的设备,则可能会产生一个近似的 dB(A) 测量

编辑:JASA 发表了一篇论文,详细比较了现有 SPL 测量应用程序与统计数据,用于比较不同代 iPhone:智能手机声音测量应用程序的评估

于 2012-10-25T14:43:31.713 回答