Desde la perspectiva de un usuario, es simple: Inicia la aplicación, pulsa un botón y deja que tu teléfono escuche la canción. Después de unos segundos, incluso con ruido de fondo y distorsión, la aplicación te dirá cuál es la canción. Funciona tan rápido y tan bien que casi parece magia – pero, como con la mayoría de las cosas mágicas de hoy en día, se ejecuta principalmente por algoritmos.
¿Cuál es la idea detrás de estas aplicaciones?
Shazam, Soundhound y otros servicios de identificación de música funcionan básicamente de la misma manera: tienen una gran base de datos de información de canciones, un algoritmo que puede extraer rápidamente información de su muestra de canciones y una aplicación que le permite interactuar con esas cosas. Técnicamente, ni siquiera necesitas un teléfono inteligente.
Shazam era originalmente utilizable en teléfonos móviles antiguos con sólo grabar una canción y enviarla por mensaje de texto al servicio. En realidad, Soundhound ha dado algunos pasos más al permitirte cantar o tararear en su aplicación que coincide con una base de datos enviada por el usuario de otras grabaciones de canto/humming.
¿Cómo funcionan?
En términos simples, el proceso se ve así:
La base de datos de la aplicación tiene una colección masiva de huellas dactilares de canciones, o pequeñas piezas de datos sobre los patrones de sonido únicos de la canción.
Cuando un usuario pulsa el botón Record, la aplicación escucha la música y crea una huella digital basada en los pocos segundos de audio que oye.
Esta huella dactilar se coteja con la base de datos de huellas dactilares existentes. Si su huella dactilar de diez segundos coincide con parte de una canción, obtendrá el resultado de la canción (esperemos que correcto). Si no lo es, recibirás un error.
Si lo que buscas es una explicación a nivel de superficie, es todo lo que necesitas saber. La parte realmente interesante es cómo se obtiene esa huella dactilar.
Huellas dactilares de la canción
Todo comienza con un espectrograma, como el del gráfico anterior, tomado de un documento escrito por uno de los fundadores de Shazam, Avery Wang . Esto es esencialmente un gráfico con el tiempo en el eje x (horizontal), la frecuencia en el eje y (vertical), y la amplitud representada por diferentes niveles de intensidad de color. Cualquier secuencia de sonidos puede ser convertida en un espectrograma, y a cualquier punto del espectrograma se le puede asignar un conjunto de coordenadas. Así de fácil, las notas pueden ser números.
Si todo lo que necesitaban hacer era hacer coincidir unos pocos sonidos entre sí, podían detenerse aquí. Si usted desea mirar a través de una base de datos llena de millones de canciones, sin embargo, un espectrograma de detalle completo tiene demasiados puntos de datos para mirar a través de cualquier tipo de velocidad.
El gran avance en el reconocimiento de la música fue la realización de que se pueden identificar los sonidos con sólo unos pocos datos: los picos, o las partes más intensas. Deshacerse de la mayor parte de las partes de baja energía de una canción no sólo disminuye el tamaño del espectrograma, sino que hace que las aplicaciones sean menos susceptibles de identificar el ruido de fondo sordo y consistente como parte de los sonidos objetivo. Imagínese una línea del horizonte de la ciudad – las partes más identificables son las cimas de los edificios, no los pisos centrales, y eso es lo que se puede ver desde lo más lejos.
Así que cada segundo de cada canción se reduce a unos pocos de los puntos de datos más intensos; todo en la línea del horizonte de la ciudad se elimina excepto la parte superior. Pero eso todavía no es lo suficientemente eficiente como para que se pueda buscar inmediatamente, así que el siguiente paso es hash esta secuencia de picos . Hashing simplemente toma un conjunto de entradas, las ejecuta a través de un algoritmo y les asigna una salida entera. En este caso el hash se genera tomando dos de los picos de alta intensidad, midiendo el tiempo entre ellos y sumando sus dos frecuencias.
El resultado es una cadena de números, fácilmente almacenable y buscable. Cuando una computadora lee este hash, reconocerá que representa la frecuencia y la distancia de tiempo. Una vez que todos los picos de la canción han sido identificados y hashed, la transformación es completa: la canción ahora tiene un número único de 32 bits que sirve como su ID en la base de datos. Más importante aún, cada segundo de la canción está representado por los números.
Cuando su teléfono escucha música, pasa por este proceso exacto: filtra todo menos los puntos más altos, los hace pedazos y crea una huella dactilar para los pocos segundos que ha grabado. Una vez que esto se haya completado, su teléfono sólo necesita ver dónde aparecen las cadenas de números correspondientes en la base de datos, lo que le permite hacer coincidir las frecuencias y la sincronización detectadas con la canción correcta y devolvérsela en cuestión de segundos.
Música y más
Esta tecnología ha sido la más utilizada para el reconocimiento de música, pero las aplicaciones de reconocimiento de sonido también pueden funcionar con películas, comerciales, programas de televisión, cantos de pájaros y mucho más. Shazam y Soundhound son los más conocidos, pero ahora también puedes preguntar a Google qué canción está sonando y obtener una respuesta precisa.Y si te estás preguntando, ¿Están estas compañías al tanto de las canciones que se preguntan? la respuesta es sí. Las estadísticas de identificación de música han sido capaces de predecir el éxito de canciones y artistas con un nivel de precisión bastante alto , y grandes sellos discográficos como Warner han contratado a aplicaciones como Shazam para ayudar a encontrar artistas prometedores. Así que, si quieres apoyar a un artista, ¡puedes hacer tu parte y buscar su canción! Puedes ayudarles a despegar.