Sto provando a eseguire il rilevamento del passo in tempo reale utilizzando C++. Sto testando del codice da performous (http://performous.org/), perché tutto il resto non ha funzionato per me. So per certo che funziona, ma non riesco a farlo funzionare. Ci sto provando da alcune settimane e non sono riuscito a far funzionare alcun codice di rilevamento dell'intonazione.Rilevamento del passo in tempo reale utilizzando FFT
risposta
Invece di utilizzare l'input dal microfono, è necessario creare i dati di una singola frequenza nota ed eseguirli attraverso il programma e vedere se si ottiene il risultato corretto. Quindi puoi aggiungere delle armoniche e vedere se funziona. I dati del mondo reale sono troppo variabili per i test iniziali.
Codice audio performante con alcune ottimizzazioni, limiti di frequenza ed euristica che lo rendono adatto solo per il canto (e altri toni simili). La gamma ottimale è di circa 80-600 Hz.
C/C++/Obj-C Real-time algorithm to ascertain Note (not Pitch) from Vocal Input
Controllare la risposta accettata su questo link.
Ho setacciato SO per una risposta a questo problema, e questa è la risorsa più utile che ho trovato.
Sembra che Performous utilizza questo algoritmo, ma è difficile fare fuori dal codice Performous
EDIT: Ho finalmente riuscito una soluzione di lavoro. mandami una e-mail se interessato sunfish | gmail | c0m
"non riesco a mettermi al lavoro" significa ??? (non verrà compilato? non verrà eseguito? trasforma il tuo computer in una palla di fuoco?) –
compila, ma emette frequenze che vanno da 0 a circa 1024 – Niall
e cosa c'è di sbagliato in questo? Il mezzo C è 440 Hz, quindi la gamma sembra ragionevole se si campiona il microfono. Che frequenza ti aspetti? – AShelly