J'essaie de mettre en œuvre un jeu de chant qui analysera les entrées micro brutes et dira au joueur à quel point il chante. Cela doit être fait en temps réel.
J'ai rencontré beaucoup de discussions posant la même question, mais je n'en ai pas encore assez fini, probablement en raison de mon manque d'expérience dans le domaine et de mes connaissances en mathématiques superficielles. J'ai implémenté un algorithme basé sur l'article du pitch pitch du site DSPDimension: http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/
J'extrait la vraie fréquence et l'amplitude comme l'explique l'article, mais je ne sais pas trouver la fréquence fondamentale avec cela. J'ai essayé d'obtenir le bin avec la plus grande ampleur mais cela ne me donne que de bons résultats pour des signaux de hauteur plus élevée, peu importe le facteur de suréchantillonnage que j'utilise, j'obtiens toujours de mauvaises données pour les signaux à basse fréquence. Cette approche est-elle complètement fausse ou suis-je sur la bonne voie, mais je manque quelque chose?
Merci d'avance,
EDIT: J'ai oublié de mentionner que je ne suis intéressé que par la classe de pitch, donc c'est ok si le fondamental manque, mais j'ai une forte tonalité dans l'échantillon.
EDIT2: Merci à tous, je viens de terminer une version de l'algorithme qui fonctionne comme un charme. Le problème d'estimation de faible hauteur était dû à mon test d'entrée. Quand j'ai chanté la note, elle correspondait correctement. De plus, je considère maintenant toutes les harmoniques, pas seulement le pic le plus élevé.