Sto cercando di trovare un modo per rilevare la frequenza del suono registrata dal microfono dell'iPhone. Mi piacerebbe rilevare se la frequenza del suono sta salendo o scendendo.Come rilevare la frequenza/intonazione del suono su un iPhone?
risposta
puoi provare a usare SCListener. È una piccola classe open source e molto facile da usare
MODIFICA: Il formattatore non piace il _ nel nome. Ecco il link. http://github.com/stephencelis/sc_listener
Per rilevare la frequenza è necessario controllare l'algoritmo fast Fourier transform (FFT).
Nota che SC_listener non funziona su iPhone con sistema operativo iOS 3.0 o successivo, controlla AVAudioRecorder e FFT. In qualche modo funziona nel simulatore però ...
Per il rilevamento del passo semplice, penso che la FFT sia abbastanza buona. Prova a guardare Aurio Touch 2 e riferimenti vDSP in framework accelerato.
Ho scritto del codice con la spiegazione per il pitch di tracciamento in C. Usa la FFT, che non è il metodo ottimale, ma puoi vedere se questo è abbastanza buono per la tua applicazione. Idealmente, dovresti sostituire la FFT con qualcosa di hardware accelerato.
http://blog.bjornroche.com/2012/07/frequency-detection-using-fft-aka-pitch.html
Beethoven si presenta come una buona opzione: https://github.com/vadymmarkov/Beethoven
Sembra SC_Listener è deprecato, per iOS 3.0+, si può provare a usare questo tutorial, che funziona abbastanza bene: http: //mobileorchard.com/tutorial-detecting-when-a-user-blows-into-the-mic/ – Raptor