Files
Socialflow/qwen-tts
Claude 338546662f Voix : Qwen gardé, nombres en lettres reconnus, Gemini plus court
Vu en production avec Qwen sur GPU : la plupart des phrases basculaient sur
Gemini puis Edge (voix différente d'un sous-titre à l'autre).
- Vérification de lecture : les nombres en lettres (« trente », « vingt-cinq
  pour cent ») et leur signe (« plus », « moins ») sont comparés comme les
  chiffres écrits par Whisper, au lieu de passer pour des mots sautés.
- Prises emballées (14 s pour 34 caractères) écartées d'office ; côté
  qwen-tts, max_new_tokens borne la durée à « caractères / 6 + 3 » s.
- Le moteur choisi est gardé tant qu'il lit au moins 70 % du texte
  (avec avertissement), au lieu de 85 % ; 3 tentatives Qwen.
- Gemini : délai d'attente 45 s au lieu de 120 s, erreurs journalisées en repr.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Upu97wMmsRkBoj6iVM4rH6
2026-09-29 12:01:42 +00:00
..

Qwen TTS : voix locale sur un serveur GPU (ex. Unraid)

Service de synthèse vocale Qwen3-TTS appelé par SocialFlow (via ffmpeg-api). Sur une carte graphique NVIDIA, le gros modèle 1.7B (ton et émotion pilotés) génère une voix bien plus vite qu'en temps réel ; sur CPU, il est 5 à 7 fois plus lent.

Installation sur Unraid

  1. Pilote NVIDIA : Apps → installer le plugin Nvidia Driver, redémarrer, puis vérifier dans un terminal : nvidia-smi -L (liste les cartes et leur numéro).
  2. Récupérer ce dossier sur le serveur, par exemple :
    cd /mnt/user/appdata
    git clone https://github.com/R0m1k3/Socialflow.git
    cd Socialflow/qwen-tts
    
  3. Choisir la carte et la clé dans un fichier .env à côté de docker-compose.gpu.yml :
    QWEN_TTS_API_KEY=une-longue-cle-secrete   # openssl rand -hex 32
    QWEN_TTS_GPU=0                            # numéro ou UUID donné par nvidia-smi -L
    # QWEN_TTS_PORT=8001
    
    Une RTX 3060 12 Go suffit largement (le modèle 1.7B occupe ~5–6 Go) : autant la dédier à la voix et garder la plus grosse carte pour le reste.
  4. Construire et lancer (le premier build télécharge les modèles, quelques Go) :
    docker compose -f docker-compose.gpu.yml up -d --build
    docker logs -f socialflow-qwen-tts   # « Modèle … chargé sur NVIDIA GeForce … »
    
  5. Dans SocialFlow : Paramètres → Qwen TTS (voix locale) → adresse http://IP-DE-L-UNRAID:8001 + la clé → Tester la connexion → Enregistrer. Le moteur « Qwen (locale) » devient disponible dans le choix des voix.

Sécurité

Le service ne doit pas être exposé sur Internet. Si SocialFlow tourne sur un autre réseau que l'Unraid, reliez les deux par Tailscale (ou WireGuard) et utilisez l'adresse Tailscale de l'Unraid (http://100.x.y.z:8001). La clé d'accès est obligatoire.

Voix clonées (voix française native)

Déposez dans voices/ un extrait de 5 à 15 s et sa transcription (voir voices/README.md), puis docker restart socialflow-qwen-tts. Utilisez uniquement des voix dont vous avez les droits.

Réglages

Variable Défaut Rôle
QWEN_TTS_MODEL Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Modèle des voix prédéfinies (build)
QWEN_TTS_CLONE_MODEL Qwen/Qwen3-TTS-12Hz-1.7B-Base Modèle de clonage, vide pour désactiver (build)
QWEN_TTS_GPU 0 Carte NVIDIA utilisée
QWEN_TTS_DEVICE auto cuda:0, cpu… (auto : GPU si disponible)
QWEN_TTS_DTYPE bfloat16 sur GPU, float32 sur CPU Précision du calcul