我的主要目標:找到通過AVAudioRecorder拖入噪音的頻率。我跟了這:AVAudioRecorder通過加速FFT到頻率 - 執行
http://www.ehow.com/how_12224909_detect-blow-mic-xcode.html
我已經在SO詢問如何檢測頻率讀了諸多問題。大部分答案都是「使用FFT!」然後問問人員說:「哦,太好了!」。
我的問題是,你如何從這裏得到:
- (void)levelTimerCallback {
[recorder updateMeters];
const double ALPHA = 0.05;
double peakPowerForChannel = pow(10, (0.05 * [recorder peakPowerForChannel:0]));
lowPassResults = ALPHA * peakPowerForChannel + (1.0 - ALPHA) * lowPassResults;
if (lowPassResults > sensitivitySlider.value) {
NSLog(@"Sound detected");
//What goes here so I can spit out a frequency?
}
}
神奇地使用FFT ...(我會用accelerate.h),
和風了「頻率= 450.3" ?
如果有人能告訴我實際的代碼,我會用
- 從AVAudioRecorder插入聲音進入加速 和
- 如何結果轉換爲頻率...
這將不勝感激。
在此先感謝。
許多重複,例如[用於使用Accelerate Framework的iOS的FFT音高檢測?](http://stackoverflow.com/questions/10378953/fft-pitch-detection-for-ios-using-accelerate-framework) –