El sueño más preciado de los amantes del karaoke y de la composición musical por fin se ha hecho realidad: Deezer (el servicio de música en streaming) acaba de publicar una herramienta a base de Inteligencia Artificial que separa la voz de la música en pistas diferentes. Puede, incluso, diferenciar entre la voz y el resto de instrumentos de la canción, ya sean la batería, el bajo, el piano, etcétera. Se llama Spleeter (haciendo un juego de palabras con splitter, que significa 'separador') y el código ya se puede descargar desde GitHub.
Los resultados no son perfectos pero son mejores que cualquier cosa hecha hasta la fecha. Spleeter incluye tres modelos de inteligencia artificial preentrenados que separan la voz y otros acompañamientos. Estos modelos ya han sido probados previamente por el equipo de Deezer y son, por decirlo así, “los que funcionan”. El usuario también puede entrenar un modelo desde cero.
Separar audio y voz ha sido uno de los grandes quebraderos de cabeza de los productores musicales de todo el mundo durante años. También de los DJs y de todos aquellos que una vez quisieron ponerle letra a sus melodías favoritas, ya fuera en un karaoke o en su casa. Aunque hoy por hoy separar la voz de la música es posible, el proceso suele ser costoso en términos de tiempo y la calidad final no suele merecer la inversión.
“Las grabaciones de música suelen ser una mezcla de varias pistas de instrumentos individuales (voz principal, batería, bajo, piano, etc.). La tarea de la separación de las fuentes de música es: dada una mezcla, ¿podemos recuperar estas pistas separadas?”, explica la compañía. Para llevar a cabo esa tarea de separación ha sido imprescindible entrenar durante miles de horas a un software construido con redes neuronales, que aprendió a diferenciar lo que era música de lo que no lo era.
En un email remitido a The Verge, Deezer explica que entrenó al algoritmo con más de 20.000 canciones de todos los géneros en las que las voces estaban previamente aisladas. A partir de aquí, Spleeter aprendió por sí mismo a separar la voz de la música. Gracias a las redes neuronales, la herramienta se ha perfeccionado hasta tal punto que ya se puede encontrar funcionando en la web: un programador llamado Geraldo Ramos ha puesto en marcha Moises.ai, destinado a todos los usuarios que quieran probar a subir sus canciones y separar la voz y la música.
El bloguero y especialista en tecnología Andy Baio también ha probado Spleeter y sus sensaciones son bastante buenas. Está sorprendido sobre todo por la rapidez de la herramienta, que tarda un minuto en procesar 5,5 minutos de música. El modelo que separa la canción en cinco pistas diferentes tarda 3 minutos por cada 5 minutos y medio de música. Los procesos se aceleran bastante si en vez de correr Spleeter en un ordenador al uso lo hacemos en otro que cuente con una GPU (unidad gráfica de procesamiento).
Usar Spleeter es sencillo (si eres programador)
“El reto es, pues, aproximarnos lo mejor posible a los sonidos originales sin crear demasiadas distorsiones”, continúa la multinacional. Hace poco, Deezer ya publicó una herramienta similar, Unmix, construida también a partir de TensorFlow y Python. La diferencia con Spleeter es que esta no soportaba archivos MP3, la calidad era inferior y tardaba más tiempo en procesar el audio. Además, fue entrenada con tan solo 150 canciones.
Deezer cuenta en su blog oficial que llevan usando Spleeter durante bastante tiempo “en nuestras investigaciones”, así que pensaron “que debíamos compartirlo”. La multinacional no tiene pensado poner a la venta la librería de código, al menos de momento. Ahora mismo se puede descargar desde aquí, pero para usarla es necesario contar con unos mínimos conocimientos de programación, ya que lejos de una bonita interfaz, el usuario que consiga correr Spleeter en su ordenador solo verá líneas de código. Está construido sobre Python y TensorFlow, otras dos librerías de código abierto (como Spleeter) utilizadas para trastear con redes neuronales y entornos de programación. Pero antes de nada es necesario instalar Conda, un gestor de paquetes de código abierto.