Implementación de Spleeter para la Separación de Fuentes de Audio mediante TensorFlow

En el procesamiento de señales de audio y la postproducción de video, la extracción de pistas vocales y la música de fondo es un requisito frecuente para evitar infracciones de derechos de autor o para realizar mezclas personalizadas. Spleeter, una biblioteca de código abierto desarrollada por Deezer, utiliza redes neuronales profundas implementadas sobre TensorFlow para realizar la separación de fuentes de audio con alta precisión.

Configuración del Entorno e Instalaicón

Para mantener el aislamiento de las dependencias, es recomendable utilizar un entorno virtual de Python antes de instalar la biblioteca. Ejecute los siguientes comandos en su terminal:

python3 -m venv entorno_audio
source entorno_audio/bin/activate  # En Windows use: entorno_audio\Scripts\activate
pip install spleeter ffmpeg-python

Para verificar que los paquetes se han integrado corectamente en el entorno, puede inspeccionar los metadatos de la instalación:

pip show spleeter

La salida debería mostrar la versión instalada, la licencia MIT y las dependencias subyacentes como tensorflow, librosa y numpy.

Como alternativa para evitar conflictos con las bibliotecas nativas de TensorFlow en el sistema anfitrión, se puede desplegar el contenedor oficial mediante Docker:

docker pull deezer/spleeter:3.8-2stems

Esta imagen incluye los pesos del modelo preentrenado, ocupando aproximadamente 1.8 GB de almacenamiento.

Arquitectura de Modelos y Pistas (Stems)

El motor de inferencia de Spleeter opera con modelos preentrenados que dividen el espectrograma de audio en dfierentes componentes, conocidos como stems:

  • 2 stems: Separa la señal en voz principal y acompañamiento instrumental. Es el modelo más eficiente para tareas generales de extracción vocal.
  • 4 stems: Descompone el audio en voz, batería, bajo y otros instrumentos.
  • 5 stems: Añade una pista adicional para piano, resultando en voz, batería, bajo, piano y otros.

Ejecución de Tareas de Separación

Para procesar un archivo multimedia (como grabacion.mp4 o pista.wav) utilizando el modelo de dos pistas, se invoca la interfaz de línea de comandos (CLI) especificando el directorio de destino:

spleeter separate -p spleeter:2stems -o ./directorio_salida ./grabacion.mp4

Durante la primera ejecución, el sistema descargará automáticamente los pesos del modelo desde los servidores de Deezer. Al finalizar el procesamiento, se generarán dos archivos en formato WAV dentro de una subcarpeta con el nombre del archivo original:

  • vocals.wav: Contiene la pista vocal aislada.
  • accompaniment.wav: Contiene la pista instrumental de fondo.

Si se opta por la ejecución en contenedores, es necesario montar un volumen para compartir los archivos entre el sistema anfitrión y el entorno aislado:

docker run --rm -v $(pwd)/multimedia:/data deezer/spleeter:3.8-2stems separate -p spleeter:2stems /data/grabacion.mp4 -o /data/destino

Este enfoque garantiza que los recursos de hardware, como las GPUs compatibles con CUDA, puedan ser asignados dinámicamente al contenedor mediante la extensión nvidia-docker para acelerar la inferencia de la red neuronal.

Etiquetas: spleeter TensorFlow Python separación-de-audio Docker

Publicado el 6-22 23:26