2010-01-12 7 views
18

Mi gran colección de música (120 gb) contiene muchas canciones duplicadas, y he estado tratando de tomar huellas dactilares con la esperanza de detectar duplicados. Y dado que soy comandante de CS, siento mucha curiosidad por saber qué se hace allí. Nada de lo que hago tiene casi la precisión de algo como Shazam o Lala.com. ¿Cómo hacen "hash" pistas? He ejecutado un hash MD5 estándar en todos mis archivos (26,000 archivos) y encontré cientos de hash iguales en diferentes pistas, por lo que no funciona.¿Cómo funciona la huella digital musical (para sitios como Shazam y Lala.com)?

Estoy más interesado en Lala.com ya que trabajan con archivos completos, a diferencia de Shazam, pero supongo que ambos usan una técnica similar. ¿Alguien puede explicar cómo generar identificadores únicos para la música?

+5

Encontraste cientos de colisiones MD5? Creo que algunos investigadores de seguridad estarían interesados ​​en saber de eso. En este punto, MD5 se considera inseguro, pero aún debe esforzarse por construir dos archivos con el mismo hash pero diferente contenido. – keegan

+0

Alguien escribió una vez un buen documento que resume el algoritmo de la patente de Shazam [1], pero los abogados de Shazam hicieron que lo derribaran. No estoy convencido de que la redacción de un documento así sea una infracción de patente, pero toma mucho tiempo y dinero demostrar que, de lo contrario, estaba tan lejos. Según se informa, la patente en sí es bastante legible en comparación con muchas patentes, que se vuelven obscenas. [1]: https://www.techdirt.com/articles/20100708/04230710128.shtml –

Respuesta

9

El documento seminal sobre huellas dactilares de audio es el trabajo de Haitsma y Kalker en 2002-03. Para cada cuadro de audio, preprocesa (diferencias entre los marcos de tiempo y las bandas de frecuencia) y luego almacena una versión binarizada del espectro del cuadro.

Este procedimiento agrega solidez. Si toda la señal se desplaza en el tiempo, todavía funciona (al menos, se puede derivar un límite inferior en la degradación del rendimiento). Es bastante robusto al ruido ambiental. Desde su inicio, ha habido muchos artículos sobre la similitud de la música de bajo nivel, por lo que no hay una sola respuesta.

¿Tiene archivos absolutamente idénticos, es decir, las señales están alineadas en el tiempo, la profundidad de bits es la misma, la tasa de muestreo es la misma? Entonces, creo que un hash como MD5 debería funcionar. Pero si alguno de esos parámetros cambia, también lo harán los hash. En tal caso, un procedimiento como el mencionado anteriormente funcionaría mejor.

Eche un vistazo a los procedimientos de ISMIR disponibles gratuitamente en línea. Cosas divertidas. http://www.ismir.net/

+0

Steve - gracias, eso es exactamente lo que estaba buscando. Leeré el papel de Haitsma y Kalker. Los procesos de ISMIR parecen una fuente increíble. Sí, en mi caso, tengo canciones duplicadas pero tienen diferentes velocidades de bits, o en algunos casos tengo una canción parcial y otra pista completa, etc. –

3

Eche un vistazo a la página de Acoustic Fingerprint en Wikipedia. Tiene referencias para algunos documentos, así como enlaces a implementaciones (incluida la fuente abierta fdmf).

5

Hay muchos algoritmos para la huella digital acústica. Algunos de los más populares son:

  1. AMG LASSO
  2. AudioID
  3. LibFooID

De hecho libfooId es de código abierto, por lo que puede comprobar fuera de su código de Google de código !!

+0

Esos fueron buenos, aunque las referencias de wikipedia y referencias de musicbrainz dieron una buena información teórica que aprecio mucho también !! –

+0

Desafortunadamente, parece que LibFooID está prácticamente muerto y consiste en los restos de un proyecto de investigación. –

Cuestiones relacionadas