BlueTTS — Ngiemboon (plt), clonage zero-shot preserve
Finetune de BlueTTS (base notmax123/blue-v2)
pour parler ngiemboon (Plateau Ngiemboon, plt) sans perdre la capacite de
clonage vocal zero-shot du modele de base.
Chaque checkpoint est publie avec son bundle ONNX (inference CPU), ses audios d'evaluation et ses metriques — rien n'est efface, tu peux choisir le tien.
Le probleme resolu
Finetuner un TTS de clonage sur peu de locuteurs detruit l'espace locuteur : le modele
oublie le clonage et repete des syllabes. Un run precedent sur 4 voix l'a montre
sans ambiguite : sim_ecapa s'effondrait de 0.45 a 0.22 en 1 000 steps.
La parade retenue : entrainer sur 524 voix distinctes parlant un ngiemboon a accent natif
(mimba/multivoice-nnh, 26 200 clips),
pour que le modele apprenne a separer le contenu du locuteur. La diversite remplace le gel.
Evolution
| step | loss | sim moy | min | max | vues | inedites |
|---|---|---|---|---|---|---|
| 0 | 0.282 | 0.324 | 0.111 | 0.523 | 0.407 | 0.282 |
| 1000 | 0.234 | 0.414 | 0.257 | 0.654 | 0.436 | 0.392 |
| 2000 | 0.230 | 0.408 | 0.255 | 0.585 | 0.431 | 0.385 |
| 3000 | 0.228 | 0.405 | 0.257 | 0.589 | 0.426 | 0.383 |
| 4000 | 0.227 | 0.388 | 0.258 | 0.528 | 0.402 | 0.374 |
| 5000 | 0.226 | 0.391 | 0.246 | 0.577 | 0.412 | 0.369 |
| 6000 | 0.224 | 0.369 | 0.164 | 0.604 | 0.382 | 0.355 |
| 7000 | 0.224 | 0.348 | 0.157 | 0.513 | 0.368 | 0.328 |
| 8000 | 0.223 | 0.357 | 0.186 | 0.507 | 0.359 | 0.354 |
| 9000 | 0.222 | 0.328 | 0.085 | 0.458 | 0.336 | 0.321 |
- sim moy — similarite locuteur ECAPA-TDNN (
speechbrain/spkrec-ecapa-voxceleb), cosinus entre l'audio genere et l'audio de reference, moyenne sur 4 references x N phrases. - vues / inedites — phrases d'evaluation initiales vs phrases jamais vues a l'entrainement (mesure de generalisation).
Au step 9000, les phrases inedites obtiennent 0.321 contre 0.336 pour les phrases d'evaluation initiales : l'ecart (-0.015) montre que le modele generalise et ne recite pas son corpus.
| Checkpoint | Voix1_p1 | Voix1_p2 | Voix1_p3 | Voix1_p4 | Voix2_p1 | Voix2_p2 | Voix2_p3 | Voix2_p4 | Voix3_p1 | Voix3_p2 | Voix3_p3 | Voix3_p4 | Voix4_p1 | Voix4_p2 | Voix4_p3 | Voix4_p4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| step_1000 | ||||||||||||||||
| step_2000 | ||||||||||||||||
| step_3000 | ||||||||||||||||
| step_4000 | ||||||||||||||||
| step_5000 | ||||||||||||||||
| step_6000 | ||||||||||||||||
| step_7000 | ||||||||||||||||
| step_8000 | ||||||||||||||||
| step_9000 |
Recette d'entrainement
| Base | notmax123/blue-v2 (AE blue_codec.safetensors) |
| Dataset | mimba/multivoice-nnh — 26 197 clips, 524 locuteurs (50 chacun) |
| Texte | IPA pre-phonemise (text_phonemized), plt |
| Duration Predictor | reentraine de zero sur les 524 voix, 15 000 steps (loss 1.3 -> 0.059) |
| TTL | finetune, batch 7 x accumulation 8 (batch effectif 56) |
| LR | 2.5e-4, reduit a 1.25e-4 apres plateau de loss + baisse de sim_ecapa |
| Checkpoints | tous les 1 000 steps, exportes en ONNX et evalues automatiquement |
Pourquoi le DP est reentraine : c'est lui qui portait le begaiement du run 4-voix (il est conditionne par le locuteur). Sur 524 voix, il apprend un rythme robuste.
Utilisation (ONNX, CPU)
from huggingface_hub import snapshot_download
d = snapshot_download("mimba/bluetts-nnh", allow_patterns=["eval/step_9000/onnx/*"])
# -> text_encoder / vector_estimator / vocoder / duration_predictor
# + codec_encoder / style_encoder / duration_style_encoder (clonage zero-shot)
Parametres de production (worker Mimba) : total_step=8..16, speed=0.95,
cfg_scale=4.0, pace_blend=0.30. Normaliser la sortie avant ecriture
(RMS 0.08 / peak 0.95) : le vocodeur sort a un pic ~1.5 et s'ecrete sinon.
Le vocabulaire BlueTTS ne contient pas les marqueurs de prenasalisation ngiemboons
m en exposant et n en exposant : les remplacer par m / n avant encodage.
Limites
- Fidelite de clonage inferieure a la base :
sim_ecapapasse de ~0.35 (step 0) a ~0.32 apres finetune. La degradation a ete stoppee (LR reduit), pas annulee. - Variable selon la voix : certaines references se clonent nettement moins bien (voir l'ecart min/max du tableau) — tester avec ses propres references.
- Monolingue : entraine pour le ngiemboon uniquement.
- Donnees synthetiques : le corpus multi-voix est genere (OmniVoice + OpenVoice), seul l'accent provient de locuteurs natifs reels.
Licence
cc-by-nc-sa-4.0 — usage non commercial. Verifier independamment les licences de
BlueTTS, OmniVoice et OpenVoice avant tout usage commercial.
Contact : @Mimba
Model tree for mimba/bluetts-nnh
Base model
notmax123/blue-v2