# Session-specific fixes and patterns ## 2026-05-12 — Radio juridique (PDF 489, 30.03-03.04.26) ### Bug corrigé : chemin venv edge-tts incorrect - `EDGE_VENV_PYTHON` pointait vers `~/.tts-venv/bin/python` au lieu de `~/.hermes/tts-venv/bin/python`. - Le fallback `~/.hermes/tts-venv` était déclaré en second dans la variable FALLBACK, créant une incohérence. - **Fix** : `EDGE_VENV_PYTHON = Path.home() / ".hermes" / "tts-venv" / "bin" / "python"` (primaire correct). - **Fix** : `EDGE_VENV_PYTHON_FALLBACK = Path.home() / "tts-venv" / "bin" / "python"` (fallback sans .hermes, vérifié en second). - **Fix** : dans `edge_generate`, utiliser `EDGE_VENV_PYTHON or EDGE_VENV_PYTHON_FALLBACK` (primaire d'abord). ### Bug corrigé : timeout edge-tts fixe à 30s - Le timeout de 30s causait des `TimeoutError` sur les segments longs (focus body > 5000 chars). - **Fix** : `timeout = max(60, len(text) // 20)` — minimum 60s, ~1 char/20ms (débit edge-tts moyen). - Pour un texte de 2000 chars → timeout 100s ; 5000 chars → timeout 250s. ### Bug corrigé : ordre de fallback dans edge_generate - `EDGE_VENV_PYTHON_FALLBACK or EDGE_VENV_PYTHON` vérifiait le fallback EN PREMIER. - Comme FALLBACK pointait vers `~/.tts-venv` (inexistant), tous les segments échouaient. - **Fix** : `EDGE_VENV_PYTHON or EDGE_VENV_PYTHON_FALLBACK` — primaire d'abord. ### Performance - 33 segments générés avec succès (zéro échec). - Durée totale : 15.5 min, 17.7 Mo MP3. - edge-tts sur 33 segments : ~180s total. ## 2026-05-12 — Radio juridique 493 ### Bug corrigé : répétition présentateur/expert - `_format_expert_response()` ajoutait un préambule `\"C'est un arrêt important. Voici ce qu'il faut en retenir concernant {title}.\"` qui répétait le titre déjà annoncé par Henri. - **Fix** : retourner `\"\".join(sentences)` directement, sans préambule. - Le présentateur utilise des relances neutres : *\"Marc, dis-nous tout sur ce point.\"* ### Bug potentiel : `_format_focus_content()` hardcodé - La ligne `\"La Cour de cassation, chambre sociale, a rendu deux arrêts le 9 avril 2026\"` est en dur. - **À améliorer** : extraire les dates/références depuis le contenu du focus, pas en dur. ### Structure du script (26 segments pour PDF 2 pages) - intro_jingle → intro_host → partie1_intro → partie1_transition - partie2_intro → partie2_expert_intro → q0_host/expert × 7 → partie2_transition - partie3_intro → partie3_expert_intro → partie3_q1_host → partie3_q1_expert → outro ### Performance - XTTS sur CPU 24 threads : ~42 sec pour 26 segments audio - edge-tts : ~10 sec pour 26 segments (si XTTS non disponible)