Paradis-TTS / evaluation /README.md
IvannP's picture
Paradis-TTS v0: FP32/INT8 CPU bundles, processed audio and evaluation
344b51c verified
|
Raw History Blame Contribute Delete
4.7 kB

Évaluation v0

300 phrases françaises de 300 articles Wikipédia, sans article commun avec les 12 000 phrases d'apprentissage, les 500 de validation et les 500 de test. La sélection déterministe exclut les doublons et quasi-doublons par Jaccard sur trigrammes de mots (seuil 0,85). Répartition : 60 courtes, 180 moyennes, 60 longues. Le jeu est figé avant les mesures ; aucun réglage ne doit être choisi à partir de ses scores.

Les phrases proviennent de wikimedia/wikipedia, snapshot français 20231101.fr, révision b04c8d1ceb2f5cd4588862100d08de323dccfbaa. Les originaux restent CC BY-SA 3.0 ; les adaptations/sélections sont CC BY-SA 4.0. Chaque ligne de heldout_v0.jsonl attribue les contributeurs, lie l'article et son historique, et conserve les offsets et la révision du snapshot. Ce fichier n'est pas couvert par la licence Apache du code.

Comparaison : Paradis FP32 et INT8 avec les mêmes traitements, Kokoro ff_siwis et Piper fr_FR-siwis-medium. Chaque moteur reçoit le même texte normalisé. Le RTF inclut G2P, génération et traitements du moteur, exclut chargement, échauffement, ASR et écriture des WAV. Tous les moteurs tournent sur CPU, deux threads configurés dans ONNX Runtime/PyTorch, dans des processus distincts. ORT utilise un thread inter-op ; les bibliothèques numériques auxiliaires conservent leurs réglages par défaut. Le pic RSS est échantillonné toutes les 20 ms et inclut le processus de synthèse complet. Piper conserve sa normalisation de volume standard ; aucun traitement Paradis ne lui est ajouté.

WER : Faster Whisper Small FP16 sur GPU pour la mesure publiée, français, beam 5, température 0, sans VAD ni conditionnement sur les phrases précédentes. La même normalisation est appliquée aux références et transcriptions (minuscules, chiffres développés, ponctuation supprimée, apostrophes et tirets séparateurs, accents conservés). Le WER global est calculé sur les sommes de substitutions, suppressions et insertions, divisées par le nombre total de mots de référence. Le rapport donne aussi un intervalle à 95 % par bootstrap de 2 000 rééchantillonnages de phrases, seed 1729. Il ne couvre pas les biais propres à l'ASR ou au corpus.

Qualité : DNSMOS P.835 non personnalisé de Microsoft, signal/bruit/global. Fenêtres de 9,01 s, pas de 1 s, répétition des clips courts et calibration polynomiale officielle. Rééchantillonnage à 16 kHz par filtre polyphase SciPy. P.808 n'est pas calculé. Ces scores sont un proxy de parole/bruit entraîné pour le débruitage, pas un MOS humain ni une mesure suffisante de naturalité TTS.

Limites : même domaine Wikipédia que l'entraînement ; possible recouvrement avec les corpus originaux de Kokoro/Piper ; noms propres difficiles pour l'ASR. Le portable exécute un entraînement GPU indépendant pendant les mesures CPU : les temps décrivent ces conditions et ne justifient aucun classement général. L'INT8 désigne le stockage des poids ; les calculs restent flottants.

Reproduction : scripts/evaluate_release.py, config_v0.json, puis les étapes synthesize (une par moteur), score et aggregate. Les WAV et logs intermédiaires restent locaux ; les scores par phrase et résultats agrégés sont publiés. Les moteurs d'évaluation ne sont pas des dépendances du package.

Les textes et transcriptions liés au jeu gardent les attributions et licences CC BY-SA décrites ci-dessus. Les mesures numériques ne sont pas des avis humains.

Exemple de reproduction (dans des environnements d'évaluation séparés du package) :

python -m pip install -r requirements-evaluation.txt
# Kokoro nécessite en plus son runtime et PyTorch CPU, dans son environnement dédié.
python scripts/evaluate_release.py synthesize --variant fp32 --bundle chemin/vers/exports
python scripts/evaluate_release.py synthesize --variant int8 --bundle chemin/vers/exports
python scripts/evaluate_release.py synthesize --variant piper
python scripts/evaluate_release.py synthesize --variant kokoro
python scripts/evaluate_release.py score --asr-device cuda --asr-compute float16
python scripts/evaluate_release.py aggregate
python scripts/audit_evaluation_split.py

chemin/vers/exports contient les dossiers fp32 et int8 décompressés. Pour une mesure ASR CPU, utiliser --asr-device cpu --asr-compute int8 ; les chiffres peuvent différer légèrement de l'ASR GPU de la publication. Le GPU d'évaluation nécessite CUDA/cuDNN compatibles avec CTranslate2. Les révisions des modèles sont figées dans config_v0.json et les versions installées dans le lock Windows. Le runtime de synthèse public reste exclusivement CPU.