Una de las funciones más curiosas que Google ha lanzado recientemente es "Hum to search", que podemos traducir literalmente como "tararear para buscar". En pocas palabras, esta función es capaz de encontrar esa canción que tenemos incrustada en la cabeza y que no dejamos de cantar, pero cuyo título no recordamos, tarareándola. Funciona sorprendentemente bien y, aunque parezca arte de magia, lo cierto es que es una inteligencia artificial la que se encarga de darle vida.
No es algo estrictamente nuevo per se, si nos paramos a pensarlo. Aplicaciones como SoundHound ya contaban con esta función desde hace tiempo. Google también permitía encontrar el título de una canción en Search o usando la función Now Playing de los Google Pixel, pero ambas requerían que sonase la música original, que puede distar (y mucho) del audio tarareado por una persona que no recuerda bien la letra. ¿Cómo funciona? Vamos a verlo.
La clave: centrarse en la melodía
Una canción tiene instrumentos, letra, ritmo, tempo... un tarareo es más confuso. Puede que la persona no recuerde bien el ritmo, puede que tampoco sepa cuándo hacer énfasis en agudos o graves, o puede que simplemente no sepa tararear del todo bien. Para solucionar este problema, el modelo de machine learning de Google se centra en la melodía.
Muchos modelos de reconocimiento musical funcionan de la siguiente forma: cogen una muestra de sonido, la convierten en un espectrograma y comparan con una base de datos. Esa muestra de sonido suele ser rica en información, algo que no sucede en los tarareos. Para que nos hagamos una idea, en la imagen inferior tenemos el espectrograma de un tarareo y una grabación de estudio de 'Bella Ciao'. La diferencia es evidente.
Google tiene una base de datos de 50 millones de imágenes con aspecto similar (de 50 millones de canciones) y el modelo debe encontrar, usando la imagen de la izquierda, la que coincide con una de esas 50 millones. Por eso lo que hace es centrarse en la "melodía dominante", de forma que tiene que ignorar las voces de fondo, los instrumentos, el timbre de la voz y todo el ruido intruso propio de grabar un audio con el móvil.
Para ello, Google modificó los modelos de reconocimiento de Now Playing y Sound Search, que ya llevan operativos un buen tiempo, y entrenó la red neuronal con pares (audio tarareado y audio grabado), generando así una incrustación para cada uno. Para reconocer el tarareo, la red debe "producir incrustaciones para las cuales los pares de audio que contienen la misma melodía estén cerca el uno del otro". En la imagen inferior podemos ver cómo los resultados del procesamiento (los números de abajo) del tarareo y del sonido original no coinciden, pero son bastante similares. A eso se refiere Google.
De esa forma se entrena a la red neuronal que, tras ser expuesta a estos pares millones y millones de veces, es capaz de generar una incrustación del tarareo similar a la de la grabación de referencia, es decir, la canción. Luego es solo cuestión de buscar coincidencias en una base de datos y dar con el resultado. No es una tarea fácil, pero Google asegura que el sistema es capaz de encontrar cuatro de cada cinco canciones.
El reto: encontrar canciones para entrenar
Un modelo de reconocimiento facial se entrena usando millones y millones de imágenes de caras procedentes de una base de datos. Estas abundan, entre comillas. Las que no abundan son las de pares de canciones tarareadas y cantadas, así que Google se tuvo que poner manos a la obra. ¿Cómo? Simulando el tarareo.
Para ello, usaron un software de extracción de tono llamado SPICE para simular el tarareo. El resultado es el siguiente: así sonaba el clip de audio original y así sonaba el generado por SPICE. No es un tarareo perfecto, ni mucho menos, pero se le acerca. Posteriormente, refinaron el resultado con una red neuronal que genera audio semejante a un tarareo o silbido real (porque el sistema funciona también con silbidos). Así sonaba el original y así sonaba el tarareo final.
Los clips de audio han sido obtenidos de diferentes fuentes y bases de datos y desde Google aseguran que es música licenciada. Es más, desde Google nos cuentan que crearon una app de prueba interna para que los compañeros pudieran probarla y les pidieron que, si querían, donasen el audio para entrenar a la red neuronal. También confirmaron a Xataka que este sistema no usa los tarareos del usuario para entrenar a la red neuronal. El usuario puede elegir si quiere o no, pero por defecto está desactivado.
El sistema actual es capaz, según Google, de detectar canciones en 22 idiomas, español incluido. Funciona mejor con la música popular porque es la que escuchan más personas y desde Google prefirieron centrarse en las canciones más "potencialmente tarareables". La base de datos, como decíamos, cuenta con 50 millones de canciones, que es más o menos la cantidad de canciones que hay en Spotify.
via Robótica e IA - Xataka https://ift.tt/2GT1rzI
No hay comentarios:
Publicar un comentario