Shazam y compañía se han convertido en unas de esas aplicaciones más asombrosas que podemos llevar en un smartphone. Y no es que no sean famosas, porque ya las conoce todo el mundo, sino que todavía sigue pareciendo casi magia el que sean capaces de reconocer qué canción está sonando en cada momento. Veamos cómo funcionan en realidad las aplicaciones como Shazam.
Espectrografía, el pilar esencial
En realidad, estas aplicaciones se basan en lo que conocemos como espectrografía, o espectroscopia, es decir, al conjunto de conocimientos relativos al análisis espectroscópico. Y con estas palabras puede ser difícil de entender pero lo vamos a explicar en un momento. Cuando se produce cualquier sonido, nosotros podemos oírlo porque las partículas que se encuentran entre nosotros y la fuente de ese sonido se mueven, vibran. Cuando decimos que estas partículas se mueven, nos referimos a que generan ondas, que van de un lado para otro. La cantidad de veces que esas partículas se mueven de un lado para otro se denomina frecuencia, y seguro que todos hemos oído hablar de la frecuencia de un sonido, ¿verdad? Pues la espectrografía, en este caso, se dedica a medir la frecuencia de los sonidos en un determinado espacio de tiempo. Cada sonido tiene una frecuencia diferente en cada momento, y eso nos permite diferenciar, sobre un espectrograma, qué sonidos están sonando.
Todo es cuestión de comparar
¿Cómo se sabe qué canción está sonando? Comparando. En realidad, es como tomar una «radiografía» y compararla con otras radiografías de sonidos que teníamos ya guardadas, pudiendo saber así cuál de todas coincide con esa. Pues así es exactamente como funcionan Shazam y otras aplicaciones.
Shazam es un espectrógrafo
Cuando iniciamos Shazam, y nos dice que está reconociendo la canción, en realidad lo que está haciendo es convertir nuestro smartphone en un espectrógrafo. Está capturando el sonido y generando un espectrograma como el que tenéis justo encima de este párrafo. Una vez que tiene una espectrografía lo suficientemente detallada, entonces pasa a compararla con toda la base de datos que tienen almacenada.
La base de datos es lo más complejo
En realidad, lo más complejo de todo es la base de datos que almacena los espectrogramas de todas las canciones. Sabemos la dificultad que tiene crear un servicio musical que contenga toda la música del mundo. Spotify es uno de esos programas, pero todavía faltan canciones importantes en él. Pues si eso ya es de por sí complejo, imaginamos lo que debe ser almacenar los espectrogramas de todas esas canciones. Es normal que parte del trabajo del equipo de Shazam y de otras aplicaciones similares sea dedicarse a ampliar la base de datos que, en realidad, es el corazón de la aplicación.
Su funcionamiento offline es muy sencillo
A veces podríamos preguntarnos cómo pueden funcionar estas aplicaciones offline, sin conexión a Internet. En realidad es muy simple, ya que nunca nos dan los datos hasta que no se conectan a Internet. No tienen que guardar la canción entera, ni siquiera tienen que guardar el trozo musical que queremos analizar. En realidad, lo único que guardan son los datos espectrográficos, de manera que después puedan ser comparados en la base de datos, y eso no ocupa prácticamente nada.
El algoritmo es algo esencial
No obstante, otro de los aspectos más importantes de estas aplicaciones es el algoritmo que utilizan para comparar canciones. Un algoritmo, en realidad, no es más que una manera de realizar un procedimiento. El algoritmo de Shazam debe estar en constante mejora. ¿Por qué? Porque deben trabajar para conseguir que el sistema siga un camino que le permita encontrar la canción aun más rápido. Y es que uno puede pensar que una vez entendido lo de lo espectrogramas y completada la base de datos de canciones, ya está todo hecho, pero nada más lejos de la realidad. Pensemos que debe comparar el espectrograma con millones y millones de canciones. Sin embargo, el algoritmo es uno de los aspectos principales. Hay varias técnicas informáticas para mejorar este, y no vamos a hablar de ninguna en concreto porque sería como hablar de la forma de las Nubes en un día tormentoso. Sin embargo, siempre está bien saber que el algoritmo de la aplicación es uno de los elementos esenciales, junto a la función de espectrografía, y la de la base de datos de canciones.
Chazam es una mierda. Es muuuuuuuucho mejor Soundhound o track ID de Sony.
Interesante…