2012-05-26 4 views
3

주요 목표 : AVAudioRecorder를 통해 들어오는 노이즈의 빈도를 찾습니다. 난이 따랐다 : 나는 SO 주파수를 감지하는 방법을 묻는에 많은 질문에 위로 읽고주파수로 FFT 가속화를 통한 AVAudioRecorder - 실행

http://www.ehow.com/how_12224909_detect-blow-mic-xcode.html

. 그 대답의 대다수는 "FFT 사용!"이라고 말합니다. 그런 다음 묻는 질문자는 "오, 훌륭합니다!"라고 말합니다. = 어떻게 든 마술 (나는 accelerate.h 사용합니다) ... 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? 
    } 

} 

을 그리고 "주파수와 바람 :

내 질문은 어떻게 당신이 여기에서받을 수 있나요이다 450.3 "?

어떻게 주파수로 결과를 켜고 및

  • 가속화에 누군가가 ... 나에게 나는 AVAudioRecorder의 사운드를 연결

    1. 에 사용하는 것이 실제 코드를 보여줄 수 있다면

    대단히 감사하겠습니다.

    미리 감사드립니다.

  • +0

    많은 중복이 있습니다. [가속 프레임 워크를 사용하여 iOS 용 FFT 피치 감지?] (http://stackoverflow.com/questions/10378953/fft-pitch-detection-for-ios-using-accelerate-framework) –

    답변

    5

    AVRecorder API가 Accelerate 프레임 워크에 연결되지 않으므로 아무 것도 없습니다. 대신 Audio Queue 또는 RemoteIO Audio Unit API와 완전히 다른 API를 사용하여 오디오 입력을 캡처하고, 콜백이 데이터를 얻기를 기다리는 것과 완전히 다른 코드 배열을 사용하고, 버퍼 크기 관리를 통해 데이터 배열을 가져와야합니다. 적절한 크기로 FFT를 공급 한 다음,보고있는 특정 종류의 주파수 측정에 대해 FFT 결과를 후 처리 할 수있는 충분한 DSP를 알아야합니다.

    +1

    이것은 처음보다 훨씬 복잡합니다. 생각. 고맙습니다. –