3 points par GN⁺ 2026-01-10 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Sopro TTS est un modèle léger de synthèse texte-parole en anglais, compatible avec le clonage vocal zero-shot et la génération en streaming
  • Il compte 169 millions de paramètres et génère 30 secondes d’audio en environ 7,5 secondes sur CPU à 0,25 RTF
  • Il peut cloner la voix d’un locuteur à partir de 3 à 12 secondes d’audio de référence seulement, et utilise une architecture de convolutions dilatées de style WaveNet et cross-attention légère
  • Projet à petit budget entraîné sur un seul GPU L40S, avec une marge d’amélioration des performances si la qualité des données progresse
  • Compatible avec les modes streaming et non streaming, ainsi qu’avec une CLI, une API Python et une démo web, ce qui le rend très pratique pour l’expérimentation et l’intégration côté développeur

Présentation de Sopro TTS

  • Sopro signifie « souffle » en portugais, et a été développé comme modèle TTS léger en anglais
    • Architecture combinant convolutions dilatées et cross-attention au lieu d’un Transformer
    • Projet personnel entraîné sur un seul GPU L40S
  • Principales caractéristiques
    • 169M paramètres, prise en charge du streaming, clonage vocal zero-shot
    • 0,25 RTF sur CPU, avec génération de 30 secondes d’audio en 7,5 secondes
    • Clonage vocal possible à partir de 3 à 12 secondes d’audio de référence

Installation et exécution

  • Seules les versions minimales des dépendances sont imposées, ce qui permet l’installation sans créer d’environnement dédié
    • Exemple : la version torch==2.6.0 apporte environ 3× de performances sur un CPU M3
  • Méthodes d’installation
    • PyPI : pip install sopro
    • Dépôt GitHub : git clone puis pip install -e .

Exemples d’utilisation

  • Exemple d’exécution en CLI
    • Possibilité de définir le texte, l’audio de référence et le fichier de sortie
    • Paramètres de contrôle avancés disponibles, comme --style_strength, --no_stop_head, --stop_threshold, --stop_patience
  • Exemple d’API Python
    • Chargement du modèle avec SoproTTS.from_pretrained("samuel-vitorino/sopro", device="cpu")
    • Compatible à la fois avec les modes non streaming et streaming
    • En mode streaming, les chunks audio générés peuvent être assemblés séquentiellement

Démo interactive en streaming

  • Après installation, lancement d’un serveur local avec la commande uvicorn demo.server:app
  • Possibilité également de construire et lancer avec Docker
    • docker build -t sopro-demo .
    • docker run --rm -p 8000:8000 sopro-demo
  • La démo est accessible dans le navigateur via http://localhost:8000

Précautions et limites

  • Manque possible de cohérence dans la sortie, pouvant nécessiter des ajustements de paramètres
  • La qualité du clonage vocal dépend fortement de la qualité du micro et du bruit ambiant
  • La version non streaming offre une meilleure qualité audio
  • La longueur de génération est limitée à environ 32 secondes (400 frames) ; au-delà, des sorties hallucinées peuvent apparaître
  • ffmpeg est requis avec torchaudio ; l’usage de soundfile est recommandé
  • Les données d’entraînement sont sous forme pré-tokenisée ; les audios d’origine ont été supprimés pour des raisons d’espace de stockage
  • Des projets futurs mentionnent la publication du code d’entraînement et l’extension du support multilingue

Données d’entraînement

  • Utilisation des jeux de données Emilia YODAS, LibriTTS-R, Mozilla Common Voice 22, MLS

Références et technologies de base

  • Exploite des recherches et bases de code comme Mimi Codec (Kyutai), WaveNet, Attentive Stats Pooling, AudioLM, CSM

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.