Skip to content

Pasos básicos para usar shazam

shazam y su uso
Pasos básicos para usar shazam
5 (100%) 1 vote

Hay un servicio genial llamado Shazam, que toma una pequeña muestra de música e identifica la canción. Hay dos maneras de usarlo, pero una de las más prácticas es instalar su aplicación gratuita en un iPhone. Simplemente presiona el botón “etiquetar ahora”, mantén el micrófono del teléfono junto a un altavoz, y normalmente identificará la canción y proporcionará información del artista, así como un enlace para comprar el álbum.

Lo que es tan extraordinario del servicio, es que funciona en canciones muy oscuras y lo hará incluso con ruido de fondo extraño. Lo hice trabajar sentado en una atestada cafetería y pizzería.

Así que tenía curiosidad de cómo funcionaba y, afortunadamente, hay un documento escrito por uno de los desarrolladores que explica exactamente eso. Por supuesto, omiten algunos de los detalles, pero la idea básica es exactamente la esperada: se basa en la música de huellas digitales basada en el espectrograma.

Aquí están los pasos básicos:

  1. De antemano, Shazam toma las huellas dactilares de un catálogo completo de música y almacena las huellas dactilares en una base de datos.
  2. Un usuario “etiquetas” una canción que escuchan, que huellas dactilares una muestra de 10 segundos de audio.
  3. La aplicación Shazam carga la huella digital al servicio de Shazam, que ejecuta una búsqueda de una huella digital correspondiente en su base de datos.
  4. Si se encuentra una coincidencia, la información de la canción se devuelve al usuario; de lo contrario, se devuelve un error.

Así es como funciona la toma de huellas dactilares:

Puedes pensar en cualquier pieza de música como un gráfico de tiempo y frecuencia llamado espectrograma. En un eje está el tiempo, en otro es la frecuencia, y en el tercero es la intensidad. Cada punto en el gráfico representa la intensidad de una frecuencia dada en un punto específico en el tiempo. Suponiendo que el tiempo está en el eje xy la frecuencia está en el eje y, una línea horizontal representaría un tono puro continuo y una línea vertical representaría un estallido instantáneo de ruido blanco. Aquí hay un ejemplo de cómo podría verse una canción:

Espectrograma de una muestra de canción con intensidades máximas marcadas en rojo. Wang, Avery Li-Chun. Un algoritmo de búsqueda de audio de fuerza industrial.

El algoritmo de Shazam toma una huella de una canción generando este gráfico en 3D e identificando las frecuencias de “intensidad máxima”. Para cada uno de estos puntos pico, realiza un seguimiento de la frecuencia y la cantidad de tiempo desde el comienzo de la pista. Según los ejemplos del artículo, supongo que encontrarán aproximadamente 3 de estos puntos por segundo.

Actualización:

Un comentarista a continuación señala que en su propia implementación necesitó más de 30 puntos / seg.] Así que un ejemplo de una huella dactilar para una muestra de 10 segundos podría ser:

Shazam crea su catálogo de huellas dactilares como una tabla hash, donde la clave es la frecuencia. Cuando Shazam recibe una huella dactilar como la anterior, utiliza la primera clave  y busca todas las canciones coincidentes. Su tabla hash puede ser similar a la siguiente:

[Algunos detalles adicionales: no solo marcan un solo punto en el espectrograma, sino que marcan un par de puntos: la “intensidad máxima” más un segundo “punto de anclaje”. Entonces su clave no es solo una frecuencia, es un hash de las frecuencias de ambos puntos. Esto conduce a menos colisiones hash que a su vez acelera la búsqueda de catálogos en varios órdenes de magnitud al permitirles aprovechar mejor el tiempo constante de búsqueda.

Gráfico superior:

Las canciones y la muestra tienen muchas coincidencias de frecuencia, pero no se alinean a tiempo, por lo que no hay coincidencia. Gráfico de fondo: las coincidencias de frecuencia ocurren al mismo tiempo, por lo que la canción y la muestra son una coincidencia.

Si una canción específica es golpeada varias veces (según los ejemplos del documento, creo que necesita aproximadamente 1 golpe de frecuencia por segundo), entonces verifica si estas frecuencias se corresponden en el tiempo. De hecho, tienen una forma inteligente de hacerlo. Crean una trama en 2D de aciertos de frecuencia, en un eje está el tiempo desde el comienzo de la pista, esas frecuencias aparecen en la canción, en el otro eje está el momento en que aparecen esas frecuencias en la muestra. . Si hay una relación temporal entre los conjuntos de puntos, entonces los puntos se alinearán a lo largo de una diagonal. Usan otro método de procesamiento de señal para encontrar esta línea, y si existe con cierta certeza, entonces etiquetan la canción como una coincidencia.

shazam

Shazam