Echtzeit-Tonhöhenerkennung

Ich versuche zu tun, Echtzeit-Erkennung von einem Benutzer zu singen, aber ich bin in eine Menge Probleme. Ich habe versucht, viele Methoden, einschließlich FFT (FFT-Problem (Gibt zufällige Ergebnisse)) und Autokorrelation (Autokorrelation Erkennung der Tonhöhe gibt zufällige Ergebnisse mit mic-Eingang), aber ich kann nicht scheinen, um alle Methoden zu geben, ein gutes Ergebnis. Kann jemand empfehlen, eine Methode für die Echtzeit-pitch-tracking oder wie Sie verbessern auf eine Methode, die ich bereits habe? Ich kann nicht scheinen zu finden, eine gute C /C++ - Methoden für die Echtzeit-Erkennung der Tonhöhe.

Dank,

Niall.

Edit: Nur zum Hinweis, habe ich überprüft, dass der mic-input-Daten korrekt sind, und dass bei Verwendung einer Sinuswelle, die Ergebnisse sind mehr oder weniger die richtige Tonhöhe.

Edit: Sorry, so spät, aber in dem moment, im dem visualisieren der autocolleration, indem die Werte aus den Ergebnissen array, und jede index -, und Plotten Sie den index auf der X-Achse und dem Wert auf der Y-Achse (beide sind geteilt durch 100000 oder so und im mit OpenGL), stecken die Daten in einem VST-host und verwenden von VST-plugins ist keine option für mich. Im moment, es sieht aus wie einige zufällige Punkte. Mache ich es richtig, oder können Sie bitte zeigen Sie mir, zu einigen code, es zu tun oder mir helfen zu verstehen, wie die Visualisierung der rohen audio-Daten, und die Autokorrelation in den Daten.

InformationsquelleAutor der Frage Niall | 2009-08-30

Schreibe einen Kommentar