33 votos

Guitarra Acordes Algoritmo De Reconocimiento?

Cuál es un buen algoritmo de procesamiento de señal digital que es bueno en la guitarra los acordes? Desde la transformada Rápida de Fourier creo que sólo es preciso en las notas que tocaba en la guitarra, pero no notas que se tocan simultaenously (es decir, los acordes).

Gracias!

53voto

tias Puntos 381

La respuesta corta es que se necesita mucho más que un algoritmo. Bueno acordes de los métodos de reconocimiento podría más bien ser descrita como "sistemas", pero por lo general son, de hecho, basados en una primera transformación al dominio de la frecuencia (más a menudo DFT).

Si quieres un acorde representaton de la canción similar a este

C G Am F7 F6 C ...

entonces este es en realidad un problema que es un poco retirado de reconocer las notas en una pieza de audio. De hecho, hay dos problemas (a grandes rasgos):

  1. encontrando que las parcelas están presentes en cualquier momento
  2. la agrupación de estos lanzamientos a lo largo del tiempo, así como ser capaz de asignar un acorde de la etiqueta para un intervalo de tiempo.

Resulta que la forma de transformar desde el dominio del tiempo (audio normal) para el dominio de la frecuencia (espectro de la representación) es sólo de importancia limitada. Es muy importante lo que hacer después, y a menudo sofisticados modelos probabilísticos (similares a los de reconocimiento de voz: Hmm, DBNs, ...) se utilizan para hacer frente a este problema.

Tratar de google scholar "acorde de transcripción", o "acordes de detección", o "acordes " etiquetado" para la investigación avanzada en esta área.

La mayoría de estos enfoques uso de una transformada de Fourier discreta (DFT) para crear la inicial de espectrograma. Durante el procesamiento posterior, también, que difieren sólo ligeramente, a pesar de las diferentes series de tiempo de alisamiento se han utilizado técnicas: modelos ocultos de Markov, la dinámica de las redes Bayesianas, máquinas de soporte vectorial (SVMstruct), condicional y aleatorio campos, entre otros. El más avanzado equipo de transcriptores utilizar la sintonización automática, la información clave, la nota grave de la información, y la información de la métrica posición para mejorar los resultados. Mi tesis (Capítulo 2) da una buena visión general.

Fuente abierta de acordes algoritmos de detección:

Espero que esto ayude.

1voto

Nemeth Puntos 557

Bueno, puedes probar con otro conjunto de algoritmos para el dominio de la frecuencia, como wavelets. Pero no estoy seguro de si eso va a hacer por su exactitud problema. En realidad, yo no entendía de qué manera usted está teniendo problemas con la FFT. Siempre será una aproximación de la cuerda, no hay una manera perfecta para recuperar ese tipo de información en el sonido.

Así que, depende del análisis que haces en ese espectro, con notas individuales, no hay realmente un montón de mejores algoritmos de FFT, pero con los acordes que es muy probable que tenga que trabajar con FFT.

El problema que tendrá que lidiar es la división fundamental de los armónicos de la parte superior de armónicos, una cosa que puede ayudar es considerar sólo las frecuencias que se encuentran en la guitarra de gama. Si usted sólo tiene que trabajar con sonidos de guitarra, usted debe dar algún tiempo para el estudio de la frecuencia normal de dominio de la gráfica de la guitarra y tratar de usarlo para mejorar la exactitud.

0voto

Matthias Puntos 1

Hay algunos bastante éxito el uso de herramientas de la DFT (FFT), pero sí un montón de procesamiento después de calcular la DFT.

Pruebe este enlace para ver un resumen del estado actual de la técnica, o de google "Chordino" o "Chordata" open source acorde algoritmos de extracción.

0voto

Yury Puntos 10837

Hay un concurso entre el científico donde la gente intenta analizar los diferentes parámetros de la música. Uno de la sección de este concurso es acorde reconocimiento. Este concurso es público, por lo que cualquier persona puede participar en él y mostrar los resultados en esta esfera. Los resultados del año 2011 se publica aquí.

Un amigo mío ha logrado buenos resultados en este ámbito (y en este concurso también). Usted puede leer acerca de su enfoque en su página web.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X