Shazam y su Funcionamiento que identifica cada Canción

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:

  1. Antes que nada, Shazam  deja la huella  unun amplio catálogo de música y la guarda en una base de datos.
  2. Un usuario “etiqueta”  una  canción que escucha, que deja una huella de 10 segundos de audio.
  3. 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.
  4. 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

Salir de la versión móvil