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.

moss-tts-on-dgx-spark

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_path puede 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