Instalando Demucs y Whisper en Python: Guía de venv

Instalar herramientas de Inteligencia Artificial como **Demucs** o **Whisper** puede parecer una tarea sencilla al principio, pero los entornos virtuales de Python añaden un nivel de complejidad que es necesario dominar. En este artículo, desglosamos el proceso completo para configurar ambos programas desde cero, asegurando que todo funcione sin errores y con los mejores parámetros.

Pantalla de terminal mostrando el comando python -m venv demucs-venv
Creación del entorno virtual y activación de pip para instalar Demucs.

Configurando el entorno virtual para Demucs

El primer paso siempre es mantener tu instalación de Python limpia. En lugar de instalar las librerías directamente en la versión global, creamos un **entorno virtual** (`venv`). Este enfoque nos permite aislar las dependencias y evitar conflictos con otros proyectos.

Para comenzar, abrimos una consola normal y nos dirigimos al directorio deseado para ejecutar el comando de creación:

python -m venv demucs-venv

A continuación, activamos este entorno. Verás que tu línea de comandos cambia ligeramente; ese pequeño detalle da tranquilidad y asegura que las siguientes instalaciones no ensucien el sistema global.

Una vez dentro del `venv`, es crucial actualizar las herramientas básicas antes de instalar cualquier paquete:

python -m pip install --upgrade pip setuptools wheel

Ahora llegamos al núcleo: **PyTorch**. Demucs depende de esta librería para el procesamiento de audio. Tienes dos caminos principales aquí. Si prefieres simplicidad y velocidad de implementación, puedes instalar la versión estándar compatible con CPU. Sin embargo, si tu hardware lo permite y tienes los drivers adecuados, la instalación con soporte CUDA ofrece un rendimiento mucho más rápido.

Finalmente, ejecutamos el comando para instalar Demucs:

pip install demucs

Troubleshooting: El error de los backends de audio

Aunque la instalación inicial parezca exitosa, es común encontrar un obstáculo al intentar separar las pistas de una canción. Si ejecutas el comando y ves que se crea el directorio pero no se guardan archivos, probablemente te encuentras con este error clásico:

RuntimeError: Couldn’t find appropriate backend to handle uri … drums.flac and format None.

Este mensaje indica claramente que **torchaudio** no tiene un backend capaz de guardar el formato FLAC en tu entorno actual. En Windows, esta librería nativa no viene por defecto y es la causa raíz del problema.

No te preocupes, existen soluciones sólidas para esto. La opción más rápida suele ser instalar el paquete soundfile, ya que trae una versión precompilada de las bibliotecas necesarias para Windows:

pip install soundfile

No obstante, si prefieres un enfoque más robusto o la solución rápida falla, puedes instalar ffmpeg. Para ello, descargas el build estático de ffmpeg, lo descomprimes y añades su carpeta bin al PATH del sistema. Una vez hecho esto, reinicias la consola para que los cambios surtan efecto.

Instalando Whisper en un venv limpio

Mientras resolvemos Demucs, podemos preparar el terreno para **Whisper**, la herramienta de transcripción de audio. El proceso es similar: creamos otro entorno virtual (`whisper-venv`) y activamos pip.

Diagrama mostrando las dos formas de solucionar el error de audio con soundfile o ffmpeg
Comparativa de soluciones para errores de backends de audio en Windows.

Instalamos nuevamente PyTorch con las preferencias que necesites (CPU o GPU), pero aquí hay un punto crítico que no se puede ignorar: **ffmpeg**. A diferencia de Demucs, Whisper es estrictamente dependiente de ffmpeg para funcionar correctamente, incluso si el paquete no lo menciona explícitamente.

Con el entorno activado y ffmpeg en el PATH, instalamos la librería oficial:

pip install openai-whisper

Al ejecutar Whisper por primera vez, parece que se congela. Esto es completamente normal; simplemente está descargando los modelos necesarios para la transcripción.

Dónde residen los modelos de Demucs

Una vez que tienes ambas herramientas funcionando, surge una pregunta natural sobre cómo se gestionan estos archivos pesados. Por defecto, Demucs utiliza la caché de Torch como almacén centralizado para todos sus modelos.

En Windows, esto significa que los archivos residirán en:

Ventana de explorador de archivos mostrando la carpeta checkpoints y los archivos .th
El directorio .cache/torch/hub/checkpoints con los modelos de Demucs.
C:UsersTU_USUARIO.cachetorchhubcheckpoints

Es importante notar que estos modelos no van dentro del venv. Son compartidos entre todos tus entornos virtuales y dependen de la ubicación en disco, no de la carpeta del proyecto.

Puedes controlar esta ubicación mediante la variable de entorno TORCH_HOME. Si definís esta variable antes de ejecutar Demucs o Whisper, podrás redirigir los modelos a una carpeta diferente, como un SSD secundario, evitando que tu disco principal se llene.

Descifrando los nombres de hash

Al inspeccionar el directorio .cache/torch/hub/checkpoints/, es posible encontrar varios archivos con extensiones .th y nombres que parecen hashes aleatorios. ¿Qué significan?

Estos son IDs internos de los modelos, como mdx_extra, htdemucs o htdemucs_ft. Aunque no sean muy intuitivos a primera vista, existen formas precisas de saber qué corresponde a cada uno.

Puedes usar el modo «hablador» de Demucs con la bandera --verbose para ver exactamente qué modelo está cargando y asociarlo al archivo correspondiente. Alternativamente, puedes inspeccionar los metadatos directamente usando Python dentro del venv:

import torch
cckpt = torch.load("cfa93e08-61ae1.th", map_location="cpu")

Esto te permitirá ver si el archivo contiene claves como model o args, confirmando su identidad.