Echtzeit-Tonhöhenerkennung mit FFT [geschlossen]

9

Ich versuche Echtzeit-Tonhöhenerkennung mit C ++ durchzuführen. Ich teste einige Code von performous ( Ссылка ), weil alles andere für mich nicht funktioniert hat. Ich weiß sicher, dass das funktioniert, aber ich kann es einfach nicht zur Arbeit bringen. Ich habe das jetzt seit ein paar Wochen versucht, und ich konnte keinen Tonhöhenerkennungscode bekommen.

    
Niall 23.09.2009, 16:01
quelle

3 Antworten

10

Anstatt die Eingabe vom Mikrofon zu verwenden, sollten Sie Daten einer bekannten einzelnen Frequenz erstellen und diese durch das Programm laufen lassen und sehen, ob es Ihnen das richtige Ergebnis bringt. Dann können Sie Obertöne hinzufügen und sehen, ob das funktioniert. Real-World-Daten sind einfach zu variabel für erste Tests.

    
Dan Hook 24.09.2009 13:16
quelle
1

Performous Audio Code hat einige Optimierungen, Frequenzgrenzen und Heuristiken, die ihn nur zum Singen (und anderen ähnlichen Tönen) geeignet machen. Der optimale Bereich liegt bei 80-600 Hz.

    
Tronic 23.01.2010 15:56
quelle
1

C / C ++ / Obj-C Echtzeitalgorithmus zur Ermittlung der Note (nicht Tonhöhe) von der Vocal-Eingabe

Überprüfen Sie die akzeptierte Antwort auf diesen Link.

Ich habe SO nach einer Lösung für dieses Problem durchforstet, und dies ist die nützlichste Ressource, die ich gefunden habe.

Es scheint, dass Performous diesen Algorithmus verwendet, aber es ist schwer, aus dem Performous-Code

zu unterscheiden

EDIT: Ich habe endlich eine funktionierende Lösung geschafft. Mailen Sie mir bei Interesse sunfish | gmail | c0m

    
P i 19.11.2010 01:10
quelle