La réponse courte est que vous avez besoin de beaucoup plus d'un algorithme. De bonnes méthodes de reconnaissance d'accords pourraient plus facilement être décrites comme des «systèmes», mais elles sont généralement basées sur une transformation initiale du domaine fréquentiel (le plus souvent DFT).
Si vous voulez un représentatons d'accords de la chanson similaire à ce
C G Am F7 F6 C ...
alors c'est en fait un problème qui est légèrement retiré de reconnaître les notes dans un morceau de l'audio. En fait, il y a deux problèmes (grosso modo):
- conclusion qui emplacements sont présents à tout moment
- regrouper ces emplacements au fil du temps afin de pouvoir attribuer une étiquette d'accord à un intervalle de temps.
Il s'avère que la façon dont vous passez du domaine temporel (audio normal) au domaine fréquentiel (représentation spectrale) n'a qu'une importance limitée. C'est très important ce que vous faites par la suite, et souvent des modèles probabilistes sophistiqués (similaires à ceux de la reconnaissance vocale: HMM, DBN, ...) sont utilisés pour résoudre ce problème. Essayez google scholar "transcription d'accords", ou "détection d'accords", ou "accord d'accords" pour la recherche avancée dans ce domaine.
La plupart de ces approches utilisent une transformée de Fourier discrète (DFT) pour créer le spectrogramme initial. Au cours du traitement ultérieur, ils ont tendance à ne différer que légèrement, bien que différentes techniques de lissage de séries chronologiques aient été utilisées: modèles de Markov cachés, réseaux bayésiens dynamiques, machines vectorielles de support (SVMstruct) et champs aléatoires conditionnels entre autres. Les transcripteurs les plus avancés utilisent l'accord automatique, les informations clés, les informations sur les notes de basse et les informations sur la position de la métrique pour améliorer les résultats. Mon thesis (Chapitre 2) donne un bon aperçu.
algorithmes de détection d'accords Open Source:
Hope this helps.
Demandez aux gars de Melodyne: http://www.youtube.com/watch?v=jFCjv4_jqAY – herzmeister
Sur quelle base pensez-vous que la FFT est inactive dans votre cas? – Biggles