La respuesta corta es que se necesita mucho más que un algoritmo. Los buenos métodos de reconocimiento de acordes podrían describirse mejor como "sistemas", pero normalmente se basan en una transformación inicial al dominio de la frecuencia (más a menudo DFT).
Si quieres un representaton acorde de la canción similar a este
C G Am F7 F6 C ...
entonces este es en realidad un problema que está un poco alejado reconocer las notas en una pieza de audio. De hecho, hay dos problemas (en términos generales):
- hallazgo que emplazamientos están presentes en cualquier momento
- agrupación de estos emplazamientos con el tiempo a fin de ser capaz de asignar una etiqueta acorde a un intervalo de tiempo.
Resulta que la forma en que transforma del dominio del tiempo (audio normal) para el dominio de la frecuencia (representación espectral) sólo es de importancia limitada. Es muy importante lo que haces después, y con frecuencia se usan modelos probabilísticos sofisticados (similares a los que se usan en reconocimiento de voz: HMM, DBN, ...) para abordar este problema.
Pruebe la "transcripción de acordes" de google scholar, o "detección de acordes", o "etiquetado de acordes" para realizar investigaciones avanzadas en esta área.
La mayoría de estos enfoques utiliza una transformada de Fourier discreta (DFT) para crear el espectrograma inicial. Durante el procesamiento posterior, también tienden a diferir solo ligeramente, aunque se han utilizado diferentes técnicas de suavizado de series de tiempo: modelos de Markov ocultos, redes bayesianas dinámicas, máquinas de vectores de soporte (SVMstruct) y campos aleatorios condicionales, entre otros. Los transcriptores más avanzados usan sintonización automática, información clave, información de notas graves e información de la posición métrica para mejorar los resultados. Mi thesis (Capítulo 2) ofrece una buena visión general.
Abiertas algoritmos de detección de acordes fuente:
Espero que esto ayude.
Pregunta a los chicos de Melodyne: http://www.youtube.com/watch?v=jFCjv4_jqAY – herzmeister
¿Sobre qué base crees que la FFT está presente en tu caso? – Biggles