使用 AudioKit 测量(频率加权)声级

Rob*_*Rob 5 iphone audio-recording ios swift audiokit

我正在尝试使用 AudioKit 为 iOS 实现 SLM 应用程序。因此,我需要确定不同的响度值以 a) 显示当前响度(平均超过一秒)和 b)做进一步的计算(例如计算更长的时间跨度内的“等效连续声级”)。该应用程序应该能够跟踪频率加权分贝值,如 dB(A) 和 dB(C)。

我确实理解我面临的一些问题与我在信号和音频处理领域普遍缺乏了解有关。我的问题是如何使用 AudioKit 来完成这项任务。我将描述我当前的流程并希望获得一些意见:

  1. 在此麦克风上创建AKMicrophone和 a的实例AKFrequencyTracker
  2. 创建一个Timer具有一定间隔的实例(当前1/48_000.0
  3. 在计时器内部:检索amplitudefrequency。根据振幅计算分贝值20 * log10(amplitude) + calibrationOffset(校准偏移将在专业 SLM 的帮助下确定每个设备型号)。根据频率加权(A 和 C)计算检索到的频率的偏移,并将这些应用于初始 dB 值。将 dB、dB(A) 和 dB(C) 值存储在一个数组中。
  4. 计算给定时间范围内数组的平均值(1 秒)。

我在其他地方读到使用计时器这不是最好的方法。还有什么可以用于“采样”?究竟是什么frequencyAKFrequencyTracker?这个频率是否足以确定 dB(A) 和 dB(C) 值,还是我需要一个AKFFTTap?如何从AKFrequencyTracker平均值中检索值,即 RMS 使用什么时间范围?

可能相关的问题:在 swift 中从 AudioKit 获取 dB(a) 级别AudioKit FFT 转换为 dB?