Muchos de ustedes seguramente usan el servicio que proporciona en sus equipos Shazam para identificar la música que escuchan y que no conocen. Después de todo es fácil sacar el teléfono, abrir la app y conocer todo acerca de la canción misteriosa en segundos.. pero ¿Cómo nos proporciona Shazan toda esa información de forma rápida?
Como sabemos, Shazam toma una pequeña muestra de música e identifica la canción. hay varias formas de usarlo pero una de las más convenientes es instalar la app gratuita en tu iPhone. Sólo preciona el botón “tag now”, acerca el micrófono a una bocina e identificará la canción además de proporcionarte información del artista y un enlace para comprar el album.
Lo que es tan resaltable de este servicio, es que trabaja hasta en canciones extrañas y hasta con ruidos de fondo de lugares públicos.
Hay una explicación para el funcionamiento de este servicio que se explica en este documento hecho por uno de los desarrolladores pero la idea principal se relaciona con la huella musical basada en el espectrograma.
Éstos son los pasos básicos:
- Antes que nada, Shazam deja la huella unun amplio catálogo de música y la guarda en una base de datos.
- Un usuario “etiqueta” una canción que escucha, que deja una huella de 10 segundos de audio.
- La app Shazam sube esa huella a su servicio, el cual busca en su base de datos para revisar que exista esa huella y la empareja.
- Si concuerda la información de la canción se presenta al usuario y sino muestra un mensaje de error.
La huella trabaja de esta forma: Se puede pensar en un fragmento de música como una g´rafica de frecuencias llamadas espectogramas. En un eje se observa el tiempo, en otro la frecuencia y la intensidad en el tercero. Cada punto de la gráfica representa la intensidad de una frecuencia dada en un punto específico en el tiempo. Asumiendo que el tiempo está en el eje de las X y la frecuencia en el de las Y, y la línea horizontal sería el tono y la vertical el ruido blanco una canción se vería de la siguiente forma.
Ejemplo del espectograma de una canción con picos de intensidad marcados en rojo. Wang, Avery Li-Chun. An Industrial-Strength Audio Search Algorithm. Shazam Entertainment, 2003. Fig. 1A,B.
La huella del algoritmo en una canción de Shazam genera un gráfico en 3D donde se puede identificar las frecuencias de intensidad fuerte. Para cada uno de estos puntos se registra una frecuencuencia y la cantidad de tiempo desde el inicio de la canción. Basados en el documento al parecer se encuentran 30 de estos puntos por segundo por lo que un ejemplo para una canción de 10 segundos sería:
Shazam construye su base de huellas como una tabla hash (estructura de datos computarizados que realiza un cálculo matemático en un campo de identificación, para determinar el tamaño de los elemento de los datos), para identificar la frecuencia. Cuando Shazam recibe una huella, usa el primero de los datos (en este caso 823.44), y todas las canciones que concuerdan con éste. Su tabla hash se vería de la siguiente forma:
[Ampliando l: T no se usa sólo un par de marcas en el espectograma. sino que se marcan varios puntos de intensidad mas un segundo marca. Así que la clave no se basa sólo en la frecuencia. De esta forma se busca de forma rápida en el catálogo las órdenes de diferente magnitud permitiendo tomar ventaja de la tabla.
En la gráfica de arriba las canciones y sus muestras tienen varias frecuencias coincidentes, pero no se alinean en el tiempo, así que no hay resultados, mientras que en la gráfica de abajo las canciones y las muestras ocurren una vez, asi que coincide su muestra con su canción. (Wang, Avery Li-Chun. An Industrial-Strength Audio Search Algorithm. Shazam Entertainment, 2003. Fig. 2B).
Si una canción específica se busca varias veces, se revisa para ver si esas frecuencias corresponden en el tiempo. Y hay una forma inteligente de hacerlo. Se crea una segunda gráfica de frecuencias, en donde en uno de los ejes se encuentra el tiempo desde el comienzo de la canción y en el otro eje es el tiempo de la frecuencia en que aparece la muestra. Si hay una relación temporal entre este conjunto de puntos, entonces los puntos se alinean de forma diagonal. También usan otro método de señales para encontrar esta línea, y si existe, le otorgarán una correspondencia entre muestra y canción.
Creo que ahora me queda más claro que tan importantes son las matemáticas en la música y en general, la música es una representación matemática!
[youtube]http://www.youtube.com/watch?v=WkFTcbC9jnk[/youtube]
Traducido de Gizmodo