Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Objective-C从iPhone和x27标准化分贝电平;内置麦克风_Ios_Objective C_Audio - Fatal编程技术网

Ios Objective-C从iPhone和x27标准化分贝电平;内置麦克风

Ios Objective-C从iPhone和x27标准化分贝电平;内置麦克风,ios,objective-c,audio,Ios,Objective C,Audio,作为我正在创建的应用程序的一部分,我正在构建一个分贝计,我已经让它从我的iPhone上的麦克风接收峰值和平均功率(值范围从-60到0.4),现在我需要弄清楚如何将这些功率级转换为如下图所示的分贝级 有人知道我该怎么做吗?我无法为我的一生找出一个算法,这是一种至关重要的,因为应用程序的整个要点是处理真实的单词音频级别,如果这有意义的话 任何帮助都将不胜感激 从文档中可以看出,从AVAudioRecorder返回的“功率级”(假设您正在使用,您没有指定)已经是分贝。请参阅averagePowerFo

作为我正在创建的应用程序的一部分,我正在构建一个分贝计,我已经让它从我的iPhone上的麦克风接收峰值和平均功率(值范围从-60到0.4),现在我需要弄清楚如何将这些功率级转换为如下图所示的分贝级

有人知道我该怎么做吗?我无法为我的一生找出一个算法,这是一种至关重要的,因为应用程序的整个要点是处理真实的单词音频级别,如果这有意义的话


任何帮助都将不胜感激

从文档中可以看出,从
AVAudioRecorder
返回的“功率级”(假设您正在使用,您没有指定)已经是分贝。请参阅
averagePowerForChannel
的文档:

返回值

声音的当前平均功率,单位为分贝 正在录制。返回值为0 dB表示满刻度,或 最大功率;返回值-160 dB表示最小功率(即 是的,几乎是沉默)


苹果公司在使麦克风的频率响应在设备之间保持平坦和一致方面做得相当好,所以你只需要确定一个校准点。为此,您需要一个参考音频源和校准的声压级计

值得注意的是,声压测量值通常是根据实际情况进行测量的。这是人类听觉系统的频率加权。为了测量这一点,您需要将相关的滤波曲线应用于从麦克风获取的结果


还要注意峰值和平均值(在本例中为RMS)测量值之间的差异

该文档非常草率:我假设这里的“平均值”是RMS。OP要求转换为dBSPL。您引用的方法是dBFS。完全不同的东西。可能是重复的。你可以看一看《谢谢你》的帖子,这真的帮了你大忙。