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
27 lines
346 B
Plaintext
27 lines
346 B
Plaintext
# Python
|
|
.venv/
|
|
__pycache__/
|
|
*.pyc
|
|
*.egg-info/
|
|
.pytest_cache/
|
|
|
|
# InkFlow : artefacts générés et sorties
|
|
data/
|
|
output/
|
|
|
|
# Node
|
|
node_modules/
|
|
|
|
# Échantillons audio (volumineux, non versionnés)
|
|
samples/
|
|
|
|
# Modèles / caches HF (au cas où téléchargés localement)
|
|
.cache/
|
|
models/
|
|
|
|
# OS
|
|
.DS_Store
|
|
|
|
# Config locale Claude Code (agent)
|
|
.claude/
|