Cómo funciona Shazam

Shazam te permite enviar una grabación hecha con tu teléfono de casi cualquier canción y Shazam te dirá el nombre de la canción, el nombre del artista y otros datos sobre esa canción. Estos otros datos suelen incluir enlaces a lugares donde se puede comprar la canción, así como las fechas de las próximas giras de ese artista. En los últimos años, Shazam ha ampliado su biblioteca para incluir anuncios y televisión. Por ejemplo, puedes hacer Shazam de un anuncio y recibir información adicional sobre el producto, incluido un enlace para comprarlo.

Fundada en 1999, Shazam es más antigua que el smartphone. En los primeros días de Shazam, los usuarios llamaban a un dispositivo que tenía este aspecto

Una búsqueda de Shazam es capaz de encontrar una coincidencia incluso en entornos ruidosos como bares o discotecas siempre que esa canción ya esté en la base de datos de Shazam. Una grabación de al menos cinco segundos dará los mejores resultados. Puedes empezar a grabar en cualquier punto de la canción y Shazam te enviará una coincidencia en cuestión de segundos. Para que este servicio funcione bien, Shazam cuenta con una creciente base de datos de más de 8 millones de canciones/archivos de audio. Suponiendo que el archivo de audio medio dura tres minutos, ¡se necesitarían más de 45 años para reproducir cada uno de ellos!

Con una base de datos de este tamaño tienen una gran cobertura, pero ¿cómo encuentra Shazam una coincidencia tan rápidamente en una base de datos tan grande? En primer lugar, los archivos de audio reales no son lo que se busca cuando Shazam una canción. En cambio, Shazam tiene una huella digital de audio para cada archivo de audio en la base de datos. La grabación que presenta un usuario de Shazam también se convierte en una huella digital de audio que permite hacer comparaciones con precisión y rapidez. Estas huellas de audio consisten en colecciones de datos numéricos. Si te preguntas cómo se convierte en números esa melodía pegadiza que estás escuchando en Shazam, la siguiente sección es para ti.

Cómo funciona el sonido

En su definición más básica, el sonido son partículas que vibran. Hay tres elementos que hacen que cada sonido sea único: La amplitud, la frecuencia y el tiempo. La amplitud es el tamaño de la vibración, que percibimos como el volumen del sonido. La frecuencia es el ritmo al que se produce la vibración. La frecuencia de un sonido es lo que percibimos como tono. La frecuencia se mide en hercios (Hz), que representan el número de veces que se repite una onda sonora por segundo. El oído humano puede escuchar sonidos que van de 20Hz a 20.000Hz. Para tener una perspectiva, la nota más baja de un piano tradicional de 88 teclas, A0, tiene una frecuencia de 27,5 Hz. La frecuencia de un tono musical en cada octava aumenta logarítmicamente. En otras palabras, la frecuencia de cada octava es el doble de la de la octava inferior. Por ejemplo, la frecuencia de A1 es de 55Hz, la de A2 es de 110Hz y la de A3 es de 220Hz.

En el gráfico anterior, se puede ver que muchos instrumentos pueden tocar las mismas notas, pero una nota en el violín y la misma nota en un piano sonarán diferentes. Esta diferencia de calidad tonal se conoce como timbre. El timbre de un sonido lo crean las frecuencias dentro del sonido que son más altas (se repiten a un ritmo más rápido) que el tono percibido del sonido. Estas frecuencias se conocen como sobretonos. Mira esta grabación que comienza con una nota (C4 261,23Hz) en un piano seguida de cada uno de los sobretonos dentro del sonido tocados uno a uno y concluye con la misma nota con la que comenzó.

Estas frecuencias de sobretono son las que dan a un instrumento su timbre característico.

El tiempo es importante porque no sólo nos da la longitud de tiempo en la que ocurre sino también en qué momento se produce un sonido en relación con otros sonidos. Una canción determinada puede estar compuesta por muchos instrumentos que varían en frecuencia y amplitud a medida que se mueven en el tiempo en relación con los demás. Debido a la complejidad de la amplitud, la frecuencia y el tiempo, y a la capacidad de medirlos con precisión, dos versiones diferentes de la misma canción seguirán generando una huella digital de audio única.

Cómo se hace una huella digital

Para hacer una huella digital de audio, un archivo de audio se convierte en un espectrograma en el que el eje y representa la frecuencia, el eje x representa el tiempo y la densidad del sombreado representa la amplitud (Fig 1A).

Para cada sección de un archivo de audio, se eligen los picos más fuertes y el espectrograma se reduce a un gráfico de dispersión. En este punto, la amplitud ya no es necesaria (Fig. 1B).

Ahora tenemos todos los datos básicos para hacer coincidir dos archivos que han sido sometidos al proceso de huella digital. Sin embargo, sólo es posible emparejarlos si un usuario de Shazam comenzó a grabar en el milisegundo exacto en que comenzó la canción. Como esto casi nunca ocurre, hay pasos adicionales para la toma de huellas de audio. A través de un proceso llamado hashing combinatorio, se eligen puntos en el gráfico de dispersión para que sean anclas que se vinculan a otros puntos en el gráfico que ocurren después del punto de anclaje durante una ventana de tiempo y frecuencia conocida como zona objetivo (Fig 1C).

Cada par de puntos de anclaje se almacena en una tabla que contiene la frecuencia del ancla, la frecuencia del punto y el tiempo entre el ancla y el punto conocido como hash. Estos datos se vinculan a una tabla que contiene el tiempo entre el ancla y el comienzo del archivo de audio. Los archivos en la base de datos también tienen identificadores únicos que se utilizan para recuperar más información sobre el archivo, como el título de la canción y el nombre del artista.

Cómo encontrar una coincidencia

Ahora que hemos creado huellas digitales para ambos archivos de audio, cada uno de los pares de puntos de anclaje de la grabación del usuario de Shazam se envían a la base de datos de Shazam para buscar pares de puntos de anclaje que coincidan. Esta búsqueda devolverá las huellas de audio de todas las canciones que contengan alguna coincidencia de hash. Una vez que tenemos todas las posibles coincidencias de la grabación del usuario de Shazam, tenemos que encontrar el desfase temporal entre el comienzo de la grabación del usuario de Shazam y el comienzo de una de estas posibles coincidencias de la base de datos. Este desfase temporal puede calcularse restando la hora de aparición del par de puntos de anclaje en la grabación del usuario de Shazam de la hora de aparición del hash coincidente en el archivo de audio de la base de datos de Shazam. Si una cantidad significativa de hashes coincidentes tiene el mismo desfase temporal, se determina que esa canción es una coincidencia

Cuando se mapea en un gráfico de dispersión en el que el eje y representa el momento en que el hash se produce en la grabación del usuario de Shazam y el eje x representa el momento en que el hash se produce en el archivo de audio de la base de datos de Shazam, los hashes coincidentes formarán una línea diagonal (Fig. 3A). En un histograma de los mismos datos en el que el eje y representa los tiempos de desplazamiento y el eje x representa la cantidad de coincidencias, habrá un gran pico en el tiempo de desplazamiento correcto (Fig 3B).

Este método de búsqueda de audio es lo suficientemente preciso como para encontrar coincidencias a pesar de que la grabación del usuario de Shazam contenga ruido, como gente hablando, ruido de la carretera e incluso otras canciones. Dado que el número de hashes de puntos de anclaje creados por una huella digital de audio es mucho mayor que la cantidad de coincidencias de puntos de anclaje necesarias para devolver un resultado de búsqueda positivo, los hashes de puntos de anclaje enmascarados por el ruido externo no son suficientes para impedir que Shazam encuentre sistemáticamente una coincidencia para un archivo de audio de la base de datos. Dado que el algoritmo de búsqueda está construido para encontrar coincidencias con el audio grabado en la base de datos de Shazam, si estás en un concierto y obtienes una coincidencia positiva al shazamear una canción, lo más probable es que el intérprete esté utilizando pistas de acompañamiento y/o sincronización de labios. Otro efecto secundario es que Shazam devolverá la grabación original de la que proviene una muestra si un artista no ha combinado la muestra con ningún otro sonido y no ha alterado la muestra de ninguna manera.

Leave a Reply