如何通过iPhone应用程序检测声音峰值功率

时间:2011-06-13 08:11:27

标签: iphone cocos2d-iphone

所有

我无法解决我的问题,我想当应用程序启动它会检测声音,如果录音声音峰值功率大于0.9那么它会​​记录该声音,如果它的峰值水平低于0.9那么它会停下来。

如何计算录音的峰值电平。

1 个答案:

答案 0 :(得分:0)

http://developer.apple.com/library/ios/#samplecode/SpeakHere/Introduction/Intro.html

Apple有一个名为SpeakHere的演示版。在里面,您将找到一个如何从音频框架中读取“电平表”的示例。

或此代码段

[soundRecorder updateMeters];
//NSLog(@"Average input: %f Peak input: %f", [soundRecorder averagePowerForChannel:0], [soundRecorder peakPowerForChannel:0]);
decibelLabel.text = [[NSString alloc] initWithFormat:@"Decibel %f db", [soundRecorder averagePowerForChannel:0]];

编辑#2

http://developer.apple.com/library/ios/#documentation/AVFoundation/Reference/AVAudioRecorder_ClassReference/Reference/Reference.html

以上链接清楚地了解-160的含义。它是最小值,而0是最大值。

在您的情况下,您正在寻找(平均功率或峰值功率,最高可达)大于0.9的任何值,然后您可以继续以下两个选项:

1)看看(输出+ 160)> (0.9 * 160))//也许你想将0.9调到其他值

或 2)看是否(输出+160)> 144 //硬编码

或 3)看看(输出> -16)//硬编码