检测振幅的音频文件每秒



我想使用iPhone SDK检测音频文件每秒的dB振幅。我需要这个功能,根据声音文件的dB量级每秒对象的嘴动画。我该怎么做呢?使用哪个音频框架是可能的?你有任何链接到任何例子吗?

我已经找到解决这个问题的办法了

我已经使用AVAudioPlayer的peakPowerForChannel和averagePowerForChannel方法来获取分贝

  AVAudioPlayer *avPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:recordedTmpFile error:&error];
    avPlayer.delegate = self;
    avPlayer.meteringEnabled = YES;
     [avPlayer prepareToPlay];
     [avPlayer play];

 NSTimer *levelTimer = [NSTimer scheduledTimerWithTimeInterval: 0.03 target: self selector: @selector(levelTimerCallback:) userInfo: nil repeats: YES];

这个方法返回peakPowerForChannel和averagePowerForChannel

- (void)levelTimerCallback:(NSTimer *)timer {
    [avPlayer updateMeters];
    NSLog(@"Peak left: %f Avg right: %f", [avPlayer peakPowerForChannel:0],[avPlayer averagePowerForChannel:0]);

}

看起来不错,不过我不懂iPhone编程,抱歉:http://www.politepix.com/2010/06/18/decibel-metering-from-an-iphone-audio-unit/

最新更新