Qwen TTS : serveur GPU distant (Unraid) réglé dans les paramètres

- qwen-tts : GPU NVIDIA détecté automatiquement (bfloat16), image CUDA 12.8
  (RTX 50xx comprises) via TORCH_VARIANT=cu128, docker-compose.gpu.yml
  dédié (clé obligatoire, choix de la carte) et guide d'installation Unraid.
- Paramètres → « Qwen TTS (voix locale) » : adresse + clé du service, test
  de connexion (modèle et carte graphique affichés), stockés en base
  (app_config.qwen_tts_url / qwen_tts_api_key) et transmis à ffmpeg-api à
  chaque voix ; QWEN_TTS_URL reste un défaut.
- Le service qwen-tts CPU du docker-compose principal devient optionnel
  (profil qwen-local).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Upu97wMmsRkBoj6iVM4rH6
This commit is contained in:
Claude committed 2026-09-29 09:57:32 +00:00
1 parent e312733d43
commit fdace9d8d5
24 files changed
+494 -51

No files matched your search

+12
View File
@@ -36,3 +36,15 @@ def test_qwen_voice_keeps_clones_and_matches_gender():
def test_qwen_voice_falls_back_to_same_gender_elsewhere():
assert resolve_edge_voice("uncle_fu").gender == "male"
assert resolve_gemini_voice("uncle_fu").id == "Charon"
def test_qwen_target_prefers_app_settings(monkeypatch):
from app import config
from app.tts.qwen import Target
monkeypatch.setattr(config, "QWEN_TTS_URL", "http://qwen-tts:8001")
monkeypatch.setattr(config, "QWEN_TTS_API_KEY", "env-key")
assert Target.resolve("http://unraid:8001/ ", "k") == Target("http://unraid:8001", "k")
assert Target.resolve(None, None) == Target("http://qwen-tts:8001", "env-key")
monkeypatch.setattr(config, "QWEN_TTS_URL", "")
assert Target.resolve("", None) is None