gpt4 book ai didi

audio - 计算 A 加权(或 B 或 C)声压级分贝 iOS

转载 作者:行者123 更新时间:2023-12-03 13:24:53 26 4
gpt4 key购买 nike

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

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

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

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

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

最佳答案

我认为您无法测量设备的物理声压级。在第 2 步中,您“将振幅转换为 dB”。但是,您从设备记录的振幅具有任意单位。录音时16-bit audio , 音频表示为 -32768 到 +32767 范围内的数字。如果您正在处理 float 据,那么它会被 32768 归一化,以便它具有(大约)-1 到 +1 的范围。

设备的麦克风必须能够应对各种声级。通常设备会有某种形式的 Automatic Gain Control适应当前的平均声级。这意味着如果您测量的峰值为 1.0,那么您将无法知道它对应的实际 SPL。您可以将录音转换为一系列 dB,但这使用了不同的 dB 定义:作为 power ratio .这与 dB(A) 等 SPL 测量值无关。

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

编辑:JASA 发表了一篇论文,详细比较了现有的 SPL 测量应用程序和不同代 iPhone 的统计数据:Evaluation of smartphone sound measurement applications

关于audio - 计算 A 加权(或 B 或 C)声压级分贝 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13013895/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com