TTS sans fine-tuning : Installation de MOSS-TTS (avec NVIDIA DGX Spark)

Dans cet article, je partage mon expérience de déploiement de MOSS-TTS, un modèle de synthèse vocale (TTS) haute performance, sur le tout dernier poste de travail IA de NVIDIA, le DGX Spark (Grace-Blackwell). Sa particularité ? Une capacité de clonage vocal époustouflante, et ce, sans nécessiter de fine-tuning.

moss-tts-on-dgx-spark

Résumé de l'environnement système



Ce guide d'installation a été rédigé en se basant sur l'environnement suivant :

Catégorie Spécification Remarque
Hardware NVIDIA DGX Spark (Grace-Blackwell) Poste de travail IA basse consommation / silencieux
GPU GB10 (CUDA Capability 12.1) Architecture Blackwell
OS Basé sur Ubuntu 22.04 LTS -
CUDA / Driver CUDA 13.0 Environnement de pilote Spark par défaut
Python 3.10+ (utilisation de venv) venv choisi pour sa légèreté par rapport à Conda
Occupation VRAM Environ 23.8 GB Au repos et pendant l'inférence

1. Cloner le dépôt

git clone https://github.com/OpenMOSS/MOSS-TTS.github

2. Création et activation de l'environnement virtuel (venv)



Bien que le guide GitHub recommande Conda, j'ai opté pour un environnement virtuel Python (venv) afin de faciliter le packaging Docker ou l'enregistrement en tant que service systemd à l'avenir.

python3 -m venv myvenv
source myvenv/bin/activate

3. Mise à jour des outils de build de base

pip install -U pip setuptools wheel

4. Configuration clé : Modification de pyproject.toml

Il est impératif d'ajuster manuellement les versions des dépendances pour les adapter à l'environnement CUDA 13.0 du DGX Spark. Il est crucial que les versions de torch et torchaudio soient parfaitement identiques afin d'éviter les conflits lors de l'installation.

  • Modifications à apporter :
  • "torch==2.10.0+cu130"
  • "torchaudio==2.10.0+cu130"
  • "torchcodec==0.10.0+cu130"

5. Installation des paquets de dépendances

pip install --extra-index-url https://download.pytorch.org/whl/cu130 -e .

6. Installation de FFmpeg sur l'hôte

FFmpeg est indispensable pour éviter les erreurs lors de l'inférence. Il doit être installé au préalable, ainsi que ses bibliothèques.

sudo apt update && sudo apt install -y ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswresample-dev libswscale-dev
sudo ldconfig

7. Téléchargement du modèle et précautions d'exécution

  • Ne pas télécharger directement depuis HuggingFace : Si vous téléchargez manuellement le modèle depuis HuggingFace et que vous le liez via --model_path, des erreurs peuvent survenir en raison d'une incompatibilité de noms de variables avec le fichier d'exécution (moss_tts_app.py).
  • Téléchargement automatique recommandé : En exécutant l'application avec les paramètres par défaut, le modèle de poids (environ 17 Go) et le Tokenizer (7 Go) seront automatiquement téléchargés dans le répertoire de cache.
  • Script d'exécution :
python clis/moss_tts_app.py --device cuda --attn_implementation auto --host 0.0.0.0 --port 7860

Remarque : Un avertissement concernant GB10 (cuda capability 12.1) peut apparaître lors de l'exécution, mais il a été confirmé que cela n'affecte pas les performances d'inférence réelles. Le chargement initial prend environ 30 à 60 secondes.

8. Retour d'expérience : "Le fine-tuning n'est plus nécessaire"

  • Performance de clonage : Avec un seul échantillon de ma voix, MOSS-TTS reproduit parfaitement l'intonation et les habitudes vocales en coréen, anglais et japonais.
  • Rapidité : Les phrases courtes sont générées en 7 à 8 secondes, tandis que les textes plus longs (3-4 phrases) prennent environ 30 secondes.
  • Spécificités linguistiques : La qualité est presque parfaite en anglais. Pour le japonais, les erreurs de lecture des kanji peuvent être facilement corrigées en utilisant l'écriture hiragana.
  • Efficacité énergétique : Même pendant l'inférence, la consommation reste faible, autour de 36W, et l'absence totale de bruit de ventilateur est un atout majeur du DGX Spark.

9. Dépannage : Pourquoi ne pas avoir utilisé l'image officielle de NVIDIA ?

L'image nvcr.io/nvidia/pytorch:26.01-py3 fournie par NVIDIA ne permet pas la compilation de torchaudio et torchcodec, pourtant essentiels au fonctionnement de la synthèse vocale. Il semble que la version de PyTorch incluse dans l'image par NVIDIA soit une version spécialement compilée pour les produits NVIDIA. Cette incompatibilité de version entre PyTorch, torchaudio et torchcodec a causé des problèmes. Par conséquent, l'environnement venv standard reste, malheureusement, la solution la plus stable pour le Spark à l'heure actuelle.


🚀 Plans futurs

  • Implémentation de FlashAttention 2 : Je prévois de tester l'impact sur la vitesse d'inférence après son installation.
  • MOSS-VoiceGenerator : J'explorerai également ce modèle qui permet de générer de nouvelles voix virtuelles sans référence.

Articles connexes

-NVIDIA DGX Spark - La nouvelle référence des infrastructures AI sur site