Una biblioteca para la extracción de melodías de tararear/cantar y posiblemente convertirla a formato MIDI

Estoy tratando de desarrollar una aplicación para Android que dependa del reconocimiento de melodías usando tarareos/cantos. Antes de sumergirme en el procesamiento de señales, me gustaría saber si existe alguna biblioteca (preferiblemente en Java) que me ayude a lograr esta tarea.

Investigué un poco y encontré lo siguiente:

  1. Wao N. No es una biblioteca y produce una salida algo decente, pero bastante ruidosa.

  2. ALMEJA. Esta es una biblioteca de C++ que aún no pude compilar para probar su salida.

Me gustaría su opinión en el asunto.

¿Es razonable que la biblioteca espere una señal limpia, con poco ruido? ¿También se pretende que el "reconocimiento" coincida con algunas melodías conocidas, o que tararee melodías potencialmente nuevas? Es posible que la primera opción no requiera compatibilidad con el formato MIDI, solo obtenga algún tipo de huella dactilar de sintonía (que es mucho más fácil; por ejemplo, es posible que solo necesite reconocer arriba/igual/abajo/arriba para el tono; suficientes notas pueden ser lo suficientemente buenas como para acotar coincidencias potenciales).
Gracias por tu comentario. Lo siento si no estaba claro. Necesito convertir la melodía a MIDI. No será una búsqueda de audio usando una huella digital en absoluto.

Respuestas (1)

¿ Quizás aubio puede funcionar para usted?

Sus funciones incluyen la segmentación de un archivo de sonido antes de cada uno de sus ataques, detección de tono, marcación del ritmo y producción de transmisiones midi a partir de audio en vivo.

Es una biblioteca de C que afirma no tener dependencias, pero tiene un envoltorio de Python y puede funcionar con Linux a través de JACK, que parece ser compatible con Android .

Buena suerte, manténganos informados con sus resultados (sé que esto menciona OS X, pero elegiría un dispositivo Android si su solución es limpia y funciona con instrumentos).