Quiero construir algo similar a Tunatic o Midomi (probarlos si no está seguro de lo que hacen) y me pregunto qué algoritmos que tendría que utilizar; La idea que tengo sobre el funcionamiento de este tipo de aplicaciones es algo como esto:reconocimiento de música y Procesamiento de Señales
- tienen una gran base de datos con varias canciones
- para cada canción 1. reducir la calidad/velocidad de bits (64 kbps por ejemplo) y calcular el sonido "almohadilla"
- tienen el sonido/extracto de la música que desea identificar
- para la canción en 3. reducir/velocidad de bits de calidad (de nuevo a 64 kbps) y calcular sonido "de hash "
- si 4. hash de sonido se encuentra en cualquiera de las 2. hashes de sonido devolver la música emparejado
pensé en la reducción de la/velocidad de bits de calidad debido a los ruidos del entorno y las diferencias de codificación.
¿Estoy en el camino correcto aquí? ¿Alguien me puede proporcionar documentación específica o ejemplos? Midori parece incluso reconocer hum's
, ¡eso es bastante impresionante! ¿Cómo lo hacen?
¿Existen hashes de sonido o es algo que acabo de inventar? Si lo hacen, ¿cómo puedo calcularlos? Y más importante aún, ¿cómo puedo verificar si child-hash
está en father-hash
?
¿Cómo voy a ir sobre construyendo un sistema similar con Python (tal vez un módulo incorporado) o PHP?
Algunos ejemplos (preferiblemente en Python o PHP) serán muy apreciados. ¡Gracias por adelantado!
Preguntas relacionadas: [Biblioteca/código de reconocimiento de muestra de sonido] (http://stackoverflow.com/questions/2817663/sound-sample-recognition-library-code), [huella digital de huella digital opensource?] (Http: // stackoverflow .com/questions/2462410/acoustic-fingerprint-opensource). Buena [descripción general de wiki de MusicBrainz] (http://wiki.musicbrainz.org/Fingerprinting). – Albert
Aquí hay una excelente opción para Python: https://github.com/worldveil/dejavu – lollercoaster