gpt4 book ai didi

iphone - 如何从 iOS AVAudioRecorder 获取正确比例的分贝读数?

转载 作者:行者123 更新时间:2023-12-03 18:30:53 25 4
gpt4 key购买 nike

我正在尝试使用 AVAudioRecorder 获取 iOS 应用程序中的噪音级别。

我使用的代码是:

    [self.recorder updateMeters];
float decibels = [self.recorder averagePowerForChannel:0];
// 160+db here, to scale it from 0 to 160, not -160 to 0.
decibels = 160+decibels;
NSLog(@"Decibels: %.3f", decibels);

当手机放在我的 table 上时,我得到的读数约为 90-100dB。

我检查了这个this link我在那里看到的表格显示:

吸尘器 - 80dB
大型管弦乐队 - 98dB
随身听最大音量 - 100dB
摇滚音乐会前排 - 110dB

现在,尽管我的办公室可能看起来很吵,但它并不靠近最大音量的随身听。

我应该在这里做些什么来获得正确的读数吗?看来我的 iPhone 麦克风非常灵敏。如果它有什么不同的话,那就是 iPhone4S。

最佳答案

忘记我之前的回答。我找到了一个更好的解决方案(如果我错了,请纠正我)。我认为我们都想要实现的是分贝 SPL,但averagePowerChannel 方法为我们提供了麦克风的输出电压。分贝 SPL 是表示比率的对数单位。我们需要将该输出转换为声压级分贝,这并不容易,因为为此您需要引用值。换句话说,您需要 DB SPL 值以及相应的电压值。您还可以尝试通过将结果与 decibel Ultra 等应用程序进行比较来估计它们。开门见山:你需要的公式如下:

SPL = 20 * log10(referenceLevel * powf(10, (averagePowerForChannel/20)) * range) + offset;

您可以将referenceLevel 设置为5。这在我的iPhone 上给出了良好的结果。 averagePowerForChannel 是从averagePowerForChannel 方法中获得的值:方法和range 表示范围的上限。我将其设置为 160。最后,offset 是一个偏移量,您可以添加该偏移量以进入您想要的区域。我这里加了50。

不过,如果有人对此有更好的解决方案。那就太好了!

关于iphone - 如何从 iOS AVAudioRecorder 获取正确比例的分贝读数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12662183/

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