Instalación de MOSS-TTS, TTS sin necesidad de fine-tuning (usando NVIDIA DGX Spark)
En esta publicación, comparto el proceso de implementación de MOSS-TTS, un modelo TTS (Text-to-Speech) de alto rendimiento, en el entorno de la última estación de trabajo de IA de NVIDIA, DGX Spark (Grace-Blackwell). Destaca por su impresionante capacidad de clonación de voz sin requerir fine-tuning adicional.

Resumen del entorno del sistema
Esta guía de instalación se basa en el siguiente entorno:
| Categoría | Especificación | Notas |
|---|---|---|
| Hardware | NVIDIA DGX Spark (Grace-Blackwell) | Estación de trabajo de IA de bajo consumo y bajo ruido |
| GPU | GB10 (CUDA Capability 12.1) | Arquitectura Blackwell |
| OS | Basado en Ubuntu 22.04 LTS | - |
| CUDA / Driver | CUDA 13.0 | Entorno de controlador predeterminado de Spark |
| Python | 3.10+ (usando venv) | Se eligió venv ligero en lugar de Conda |
| Consumo de VRAM | Aproximadamente 23.8 GB | Basado en el estado de espera y ejecución de inferencia |
1. Clonación del repositorio
git clone https://github.com/OpenMOSS/MOSS-TTS.github
2. Creación y activación del entorno virtual (venv)
Aunque la guía de GitHub recomienda Conda, opté por un entorno virtual de Python para facilitar futuros empaquetados con Docker o el registro de servicios systemd.
python3 -m venv myvenv
source myvenv/bin/activate
3. Actualización de herramientas de compilación básicas
pip install -U pip setuptools wheel
4. Configuración clave: Modificación de pyproject.toml
Es necesario ajustar manualmente las versiones de las dependencias para que coincidan con el entorno CUDA 13.0 de DGX Spark. Es crucial asegurar que las versiones de torch y torchaudio sean idénticas para evitar conflictos durante la instalación.
- Modificaciones:
"torch==2.10.0+cu130""torchaudio==2.10.0+cu130""torchcodec==0.10.0+cu130"
5. Instalación de paquetes de dependencias
pip install --extra-index-url https://download.pytorch.org/whl/cu130 -e .
6. Instalación de FFmpeg en el host
Sin FFmpeg, se producirá un error durante la inferencia, por lo que es recomendable instalarlo junto con las bibliotecas necesarias de antemano.
sudo apt update && sudo apt install -y ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswresample-dev libswscale-dev
sudo ldconfig
7. Precauciones al descargar y ejecutar el modelo
- No descargar directamente de HG: Descargar manualmente el modelo de HuggingFace y conectarlo a
--model_pathpuede causar errores debido a la falta de coincidencia de nombres de variables con el archivo ejecutable (moss_tts_app.py). - Se recomienda la descarga automática: Si se ejecuta con los valores predeterminados, el modelo de pesos (aproximadamente 17 GB) y el Tokenizer (7 GB) se descargarán automáticamente en la ruta de caché.
- Script de ejecución:
python clis/moss_tts_app.py --device cuda --attn_implementation auto --host 0.0.0.0 --port 7860
Nota: Puede aparecer una advertencia relacionada con
GB10 (cuda capability 12.1)al ejecutar, pero se ha confirmado que no afecta el rendimiento real de la inferencia. La carga inicial toma entre 30 y 60 segundos.
8. Reseña de uso: "Adiós al fine-tuning"
- Rendimiento de clonación: Con una sola muestra de mi voz, reproduce perfectamente el timbre y los patrones de habla en coreano, inglés y japonés.
- Velocidad: Las frases cortas se generan en 7-8 segundos, mientras que los textos más largos (3-4 oraciones) tardan aproximadamente 30 segundos.
- Características por idioma: El inglés es casi perfecto, y las lecturas incorrectas de caracteres kanji en japonés se pueden corregir fácilmente con la notación hiragana.
- Eficiencia energética: Incluso durante la inferencia, mantiene un bajo consumo de energía de alrededor de 36W, y la ausencia total de ruido del ventilador es una gran ventaja de DGX Spark.
9. Solución de problemas: ¿Por qué no usamos la imagen oficial de NVIDIA?
La imagen nvcr.io/nvidia/pytorch:26.01-py3 proporcionada por NVIDIA no permite la compilación de torchaudio y torchcodec, necesarios para el funcionamiento de TTS. Parece que la versión de PyTorch incluida por NVIDIA en la imagen está compilada de manera especial para sus productos, lo que causa un problema de incompatibilidad de versiones con torchaudio y torchcodec. Por lo tanto, lamentablemente, el entorno venv general es el más estable para Spark en este momento.
🚀 Planes futuros
- Implementación de FlashAttention 2: Probaré cuánto se reduce la velocidad de inferencia después de la instalación.
- MOSS-VoiceGenerator: También planeo explorar el modelo MOSS-VoiceGenerator, que genera nuevas voces virtuales sin necesidad de una referencia.
Artículos relacionados
-NVIDIA DGX Spark - Un nuevo estándar para la infraestructura de IA on-premise