23 noviembre, 2024

El secreto detrás de la nueva función de Google que te permite encontrar canciones con tan solo tararearlas.

Cómo es el sistema de inteligencia artificial que se alimenta de una base de datos de 50 millones de canciones.

Google incorporó recientemente una nueva herramienta en su buscador, a partir de la cual es posible descubrir el nombre de una canción con tan solo tararear o silbar la tonada. Esta función, que se dio a conocer el 15 de octubre, está disponible en todo el mundo a través de la aplicación de Google en smartphones del sistema operativo iOS o Android y reconoce 22 idiomas. Ahora bien, ¿cuál es el secreto detrás de esta tecnología?

El secreto es el aprendizaje automático. Cuando se tararea una canción el modelo de aprendizaje automático transforma ese audio en una secuencia que representa la melodía. Luego esas secuencias son contrastadas con una base de datos que está conformada por 50 millones de canciones, según resumió Christian Frank, gerente e ingeniero de software en Google, en una conferencia de prensa.

Esta tarea que parece tan sencilla cuando se describe en apenas un párrafo, en realidad conlleva una gran complejidad. Lograr que la inteligencia artificial contraste y reconozca de manera adecuada el tarareo con una canción no es una labor sencilla. Los temas tienen instrumentos, voces de fondo, y una gran variedad elementos que distan bastante de lo que puede ser una melodía tarareada algo que, por otra parte, también varía mucho según quién cante.

El punto, entonces, era lograr resolver este acertijo de alguna manera. Y para eso, los ingenieros de Google optaron por implementar una solución que, a diferencia de otros métodos existentes, produce una incrustación en el espacio melódico de un espectrograma sin intentar generar una representación intermedia.

Hacen coincidir una melodía tarareada directamente con las grabaciones originales (polifónicas), sin la necesidad de tener una versión tarareada de cada una. Este enfoque simplifica enormemente la base de datos de la función, y permite que se actualice constantemente con grabaciones originales de todo el mundo.

La red neuronal se entrena con datos de entrada (en este caso, pares de audio tarareado o cantado con audio grabado) para producir incrustaciones para cada entrada, que luego se utilizarán para hacer coincidir una melodía tarareada.

Así, el modelo de aprendizaje automático puede generar una incrustación para una melodía que es similar a la incrustación de la grabación de referencia de la canción. Entonces, encontrar la canción correcta es solo una cuestión de buscar incrustaciones similares en una base de datos de grabaciones de referencia calculadas a partir del audio de la música.

Los datos para entrenar el sistema

Para entrenar el modelo de aprendizaje automático se requería tener pares de canciones (grabadas y cantadas). En un principio la base de datos tenía segmentos de canciones cantadas, y apenas unas pocas de ellas tenían tarareos.

Luego se fueron generando datos de melodías tarareadas a partir de audios que se se obtuvieron de SPICE, un modelo de extracción de tonos que se obtuvo como parte del proyecto Freddie Meter, una app que permite saber cuán parecido canta el usuario al legendario Freddie Mercury

El siguiente paso fue reemplazar el generador de tonos simple con una red neuronal que produce audio que se asemeja a una melodía real tarareada o silbada. La instancia final fue comparar los datos de entrenamiento mezclando y haciendo coincidir las muestras de audio. En este sentido, si se tenía un clip de dos cantantes diferentes se los alineaba y de ese modo se le mostraba al modelo un par de audios que representaban la misma melodía.

Este incremento y superposiciones de datos de entrenamiento permitieron que el modelo de red neuronal pueda reconocer canciones tarareadas o cantadas.

Como se ve, el “detrás de escena” que permite encontrar en Google el nombre de la canción con apenas tararearla fue un trabajo de varios meses que implicó la selección de datos, varias pruebas y error y la implementación de una red neuronal que se sigue nutriendo con melodías de todo el mundo.