| --- |
| language: |
| - nnh |
| license: cc-by-nc-sa-4.0 |
| pipeline_tag: text-to-speech |
| tags: |
| - text-to-speech |
| - tts |
| - voice-cloning |
| - zero-shot |
| - malagasy |
| - nnh |
| - low-resource |
| - onnx |
| - bluetts |
| base_model: notmax123/blue-v2 |
| datasets: |
| - mimba/multivoice-nnh |
| --- |
| |
| # BlueTTS — Ngiemboon (`plt`), clonage zero-shot preserve |
|
|
| Finetune de [BlueTTS](https://github.com/maxmelichov/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`](https://huggingface.co/datasets/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** | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix1_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix1_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix1_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix1_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix2_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix2_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix2_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix2_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix3_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix3_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix3_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix3_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix4_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix4_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix4_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_1000/voix4_p4.wav"></audio> | |
| | **step_2000** | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix1_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix1_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix1_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix1_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix2_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix2_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix2_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix2_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix3_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix3_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix3_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix3_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix4_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix4_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix4_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_2000/voix4_p4.wav"></audio> | |
| | **step_3000** | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix1_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix1_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix1_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix1_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix2_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix2_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix2_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix2_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix3_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix3_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix3_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix3_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix4_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix4_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix4_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_3000/voix4_p4.wav"></audio> | |
| | **step_4000** | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix1_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix1_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix1_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix1_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix2_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix2_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix2_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix2_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix3_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix3_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix3_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix3_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix4_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix4_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix4_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_4000/voix4_p4.wav"></audio> | |
| | **step_5000** | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix1_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix1_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix1_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix1_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix2_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix2_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix2_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix2_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix3_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix3_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix3_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix3_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix4_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix4_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix4_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_5000/voix4_p4.wav"></audio> | |
| | **step_6000** | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix1_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix1_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix1_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix1_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix2_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix2_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix2_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix2_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix3_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix3_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix3_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix3_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix4_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix4_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix4_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_6000/voix4_p4.wav"></audio> | |
| | **step_7000** | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix1_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix1_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix1_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix1_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix2_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix2_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix2_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix2_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix3_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix3_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix3_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix3_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix4_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix4_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix4_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_7000/voix4_p4.wav"></audio> | |
| | **step_8000** | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix1_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix1_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix1_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix1_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix2_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix2_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix2_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix2_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix3_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix3_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix3_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix3_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix4_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix4_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix4_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_8000/voix4_p4.wav"></audio> | |
| | **step_9000** | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix1_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix1_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix1_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix1_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix2_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix2_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix2_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix2_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix3_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix3_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix3_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix3_p4.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix4_p1.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix4_p2.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix4_p3.wav"></audio> | <audio controls src="https://huggingface.co/mimba/bluetts-nnh/resolve/main/eval/step_9000/voix4_p4.wav"></audio> | |
| |
| |
| ## 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) |
|
|
| ```python |
| 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_ecapa` passe 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](baounabaouna@gmail.com)* |
|
|