¿Qué tecnología utiliza Shazam para identificar pistas?

Cualquier reconocimiento de la señal de la computadora (lo mismo se aplica al shazam que a la visión por computadora; esto hace que Google reconozca los rostros de las personas en su biblioteca de fotos) se esforzará por extraer y reconocer invariantes estadísticos de la señal entrante.

Es decir, las propiedades matemáticas de la señal que permanecen iguales cuando se transforma la señal, para la visión, eso podría ser la detección de borde (o caja) de una manera que es invariable a la rotación de la caja / borde. Para el sonido, cosas como las funciones de correlación en una ventana local pueden servir para el mismo propósito.

Básicamente, en términos muy amplios, está buscando algo que no sea un hash, sino una función matemática (o un conjunto de ellas) que puede ser una firma única de la pieza (o más probablemente un segmento de la misma) mediante la cual pequeñas variaciones en la señal de origen (a través de dimensiones que no son musicalmente significativas, por ejemplo, si la melodía se publica de nuevo en un sistema deficiente y corta todo por debajo de 100Hz y por encima de 13k, todavía lo reconocerá, y también Shazam, por lo que, aunque tal pérdida de reproducción había cambiado el señal drásticamente, no ha cambiado mucho en términos de la dimensión que nos interesa) produce pequeñas diferencias en la salida de la función (por lo que puedo reconocer que lo que alimentaste es la pista X porque a través de esta función me da algo cerca de la salida de la función que he almacenado para mi versión de referencia de X) y tengo pocas posibilidades de que diferentes pistas se asignen a valores de salida similares (para limitar los falsos positivos).

Eso es muy general. Shazam es bastante reservado de su algoritmo, porque después de todo eso es una especie de núcleo de su negocio, por lo que es especulativo, aunque espero que podamos asumir con seguridad tanto como lo anterior en los trazos del tablero: en última instancia, convierten su fragmento de audio en números y luego miran subir ese número a una base de datos asociada a pistas de referencia. Puede haber varias cosas de ese tipo en paralelo, de modo que si su fragmento coincide con la misma pieza de acuerdo con muchas de esas funciones, es un éxito (mientras que a través de una sola función puede coincidir con muchas cosas).

Sería interesante ver cómo le va a Shazam con las piezas lanzadas hacia arriba o hacia abajo: existen trabajos para sus propósitos que podrían esperar realmente lidiar con las cosas reproducidas a la velocidad original, por lo que el tempo y la información clave pueden proporcionar un primer paso en el filtrado.

Entonces la respuesta de una palabra: matemáticas. Ellos usan … ¡Matemáticas!

Ya he respondido esta pregunta aquí,

Citando por ti:

Utiliza la tecnología especial del motor de búsqueda de “huellas digitales”, cuya función principal es grabar un fragmento de 10 segundos de la canción y compararlo con las otras “huellas digitales” que se encuentran en los servidores de Shazam.

Esas “huellas digitales” están trabajando con espectrogramas especiales: gráficos de frecuencia de tiempo que se comparan en el servidor y luego coinciden con la canción real según el análisis de constelación de frecuencia. Para hacer una aplicación como Shazam con menos esfuerzo, uno puede usar servicios de código abierto, como EchoPrint . Por supuesto, es principalmente para la identificación de música, aunque otros usos prácticos como la detección de derechos de autor.

Esta es casi toda la información que conozco sobre el mecanismo de detección de canciones de Shazam.

Si está interesado en obtener más detalles sobre el desarrollo de la aplicación como Shazam, le sugiero que lea este artículo del blog:

¿Cuánto cuesta hacer una aplicación como Shazam?

Espero que te ayude .

Saludos,

John