9
votes

Détection de hauteur en temps réel à l'aide de FFT

J'essaie de faire une détection de hauteur en temps réel à l'aide de C ++. Je teste du code de la performance ( http://performous.org/ ), car tout le reste n'a pas travaillé pour moi. Je sais bien que cela fonctionne, mais je ne peux tout simplement pas le faire travailler. J'essayais cela depuis quelques semaines maintenant, et je n'ai pas été en mesure d'obtenir un code de détection de pitch fonctionnant.


4 commentaires

"Je ne peux pas aller au travail" signifie ??? (ne compilera pas? Ne pas courir? Tournez votre ordinateur en une boule de flamme?)


Il compile, mais sortira des fréquences de 0 à environ 1024


Jetez un coup d'œil au bibliothèque FMOD . Un de leurs échantillons fait la détection de hauteur en temps réel IIRC. La bibliothèque est gratuite pour une open source et modérément au prix d'applications commerciales. Même si vous ne voulez pas utiliser la bibliothèque, cela fournira peut-être une idée.


Et qu'est-ce qui ne va pas avec ça? Le milieu C est 440 Hz, de sorte que la plage semble raisonnable si vous échantillonnez votre micro. Quels fréquences attendez-vous?


3 Réponses :


11
votes

Au lieu d'utiliser l'entrée du micro, vous devez créer des données d'une seule fréquence connue et exécuter cela via le programme et voir si elle vous obtient le résultat correct. Ensuite, vous pouvez y ajouter des harmoniques et voir si cela fonctionne. Les données du monde réel sont trop variables pour les tests initiaux.


0 commentaires

1
votes

Le code audio performant comporte des optimisations, des limites de fréquence et des heuristiques qui ne permettent que de chanter (et d'autres tons similaires). La gamme optimale est d'environ 80 à 600 Hz.


0 commentaires

1
votes

Algorithme en temps réel C / C ++ / Obj-C pour déterminer la note (non pas) de l'entrée vocale

Vérifiez la réponse acceptée sur ce lien.

J'ai nettoyé pour une réponse à ce problème, et c'est la ressource la plus utile que j'ai trouvée.

Il semble que performant utilise cet algorithme, mais il est difficile de sortir du code performant

Edit: J'ai enfin géré une solution de travail. E-mail moi si intéressé SUPLISH | Gmail | C0M


1 commentaires

Pouvez-vous me dire comment l'avez-vous résolu?