Voicebank : vraies voix françaises (CML-TTS) + pool anonyme + garde-fou Qwen3
Remplace la voicebank générée par Kokoro (timbre anglais sur français phonémisé -> accent que Qwen3 clonait) par 41 vraies voix FR issues de CML-TTS (livres audio studio) : 1 narrateur dédié, 18F/14M nommées, 4F/4M anonymes réservées. - scripts/import_voices.py : import multi-shards parquet, 1 clip/locuteur (le plus propre via levenshtein), genre estimé par F0 (YIN, anti-octave), filtre débit de parole (ref_text aligné sur l'audio). - VoiceEntry.anonymous + assign_voices : les figurants « anonyme (...) » tirent dans un pool réservé, jamais mélangé avec les voix nommées ; narrateur dédié (fr_narrator remplace fr_f_siwis). - dedup._anon_attrs : genre/âge déduits du nom anonyme (bon genre de voix). - tts/qwen3.py : garde-fou anti-dérive (rejette/réessaie les sorties en boucle ou coupées en estimant la durée plausible du chunk). Limite connue : Qwen3 ne sait pas synthétiser les fragments d'1-2 mots (incises, titres) -> trous ; à traiter (repli Kokoro ou fusion des incises). Inclut aussi du travail en cours antérieur (refacto backend LLM pluggable mlx/lmstudio, benchmark, ajustements frontend/API). Claude-Session: https://claude.ai/code/session_01XSVvcy1mfb4k1xDgib9vVU
This commit is contained in:
@@ -67,6 +67,21 @@ DEFAULT_PROMPT_DEDUP = (
|
||||
class Settings(BaseModel):
|
||||
"""Reglages techniques globaux, persistes dans data/settings.json."""
|
||||
|
||||
# --- Moteur LLM d'analyse ---
|
||||
# "mlx" : mlx-lm (Apple Silicon), utilise `gemma_model`.
|
||||
# "lmstudio" : API OpenAI locale de LM Studio (sert GGUF *et* MLX), utilise
|
||||
# `lmstudio_base_url` + `lmstudio_model`.
|
||||
gemma_backend: str = config.GEMMA_BACKEND
|
||||
lmstudio_base_url: str = config.LMSTUDIO_BASE_URL
|
||||
lmstudio_model: str = "" # vide -> 1er modele charge dans LM Studio
|
||||
# Par defaut, le backend LM Studio DELEGUE la config de generation
|
||||
# (temperature, plafond de tokens) au modele charge dans LM Studio : on
|
||||
# n'impose ni `temperature` ni `max_tokens` dans la requete. Les reglages
|
||||
# "Generation Gemma" ci-dessous pilotent alors uniquement le backend MLX.
|
||||
# Mettre a False pour reimposer ces reglages a LM Studio (utile pour des
|
||||
# benchmarks reproductibles a temperature fixe).
|
||||
lmstudio_defer_config: bool = True
|
||||
|
||||
# --- Modeles MLX (identifiants HuggingFace) ---
|
||||
gemma_model: str = config.GEMMA_MODEL
|
||||
qwen3_model: str = config.QWEN3_TTS_MODEL
|
||||
@@ -179,7 +194,7 @@ def _invalidate_model_caches() -> None:
|
||||
except Exception: # noqa: BLE001
|
||||
pass
|
||||
try:
|
||||
from .analysis.gemma import _load
|
||||
_load.cache_clear()
|
||||
from .analysis.llm.factory import reset_llm_cache
|
||||
reset_llm_cache()
|
||||
except Exception: # noqa: BLE001
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user