File size: 6,532 Bytes
eb119ac 4024256 eb119ac e20ea5a eb119ac 73827c4 e4016e7 a3016e5 e4016e7 eb119ac 1a19517 90f7156 5d6347c 10c2ed5 2903747 be483a3 11d0f15 8e3a5a9 777efba 8e3a5a9 2903747 8e3a5a9 b793679 b5dfa85 2903747 8e3a5a9 6456881 2903747 8e3a5a9 2903747 8e3a5a9 2903747 8e3a5a9 2903747 8e3a5a9 2903747 8e3a5a9 2903747 8e3a5a9 2903747 8e3a5a9 b5dfa85 830316f 8e3a5a9 830316f 8e3a5a9 b793679 b5dfa85 8e3a5a9 2903747 8e3a5a9 b5dfa85 b793679 8e3a5a9 2903747 8e3a5a9 2903747 8e3a5a9 2903747 8e3a5a9 2903747 b5dfa85 8e3a5a9 b5dfa85 8e3a5a9 2903747 8e3a5a9 b5dfa85 8e3a5a9 b5dfa85 8e3a5a9 bff5bf9 8e3a5a9 859943d 8e3a5a9 859943d 2903747 8e3a5a9 b5dfa85 2903747 561f322 2903747 b5dfa85 2903747 b5dfa85 2903747 8e3a5a9 1e31017 8e3a5a9 1b9b59b 8ee8d25 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 |
---
library_name: transformers
license: apache-2.0
language:
- wo
base_model:
- parler-tts/parler-tts-mini-multilingual-v1.1
pipeline_tag: text-to-speech
---
<img src="https://huggingface.co/spaces/CONCREE/Adia_TTS/resolve/main/adia.png" alt=" Adia TTS Logo" width="800" style="margin-left:'auto' margin-right:'auto' display:'block'"/>
# Adia_TTS Wolof
<a target="_blank" href="https://huggingface.co/spaces/CONCREE/Adia_TTS">
<img src="https://huggingface.co/datasets/huggingface/badges/raw/main/open-in-hf-spaces-sm.svg" alt="Open in HuggingFace"/>
</a>
# ADIA_TTS : Modèle de synthèse vocale en Wolof
## Table des matières
1. Introduction
2. Caractéristiques techniques
3. Installation
4. Utilisation
5. Configuration avancée
6. Exemples
7. Limitations
8. Références
9. Licence
## Introduction
ADIA_TTS est un modèle de synthèse vocale (Text-to-Speech) open source en wolof, développé par CONCREE. Basé sur le modèle parler-tts-mini-multilingual-v1.1, il représente une avancée significative dans la synthèse vocale pour la langue wolof.
## Points clés
* Entraîné sur 40 heures de données vocales en wolof
* Affiné pendant 100 epochs (~168 heures d'entraînement)
* Qualité vocale naturelle et fluide
* Voix unique avec contrôle des caractéristiques vocales via description
## Caractéristiques techniques
### Spécifications du modèle
* Architecture : parler-tts-mini-multilingual-v1.1
* Taille du modèle : 1.88 GB
* Format du modèle : PyTorch
* Fréquence d'échantillonnage : 24kHz
* Encodage audio : 16-bit PCM
### Performance
* Temps moyen d'inférence : secondes/phrase (CPU), 20 secondes/phrase (GPU)
* Consommation mémoire : 3.9 GB (RAM minimale recommandée)
## Installation
### Prérequis
Python 3.8 ou supérieur
PyTorch 2.0 ou supérieur
CUDA (obligatoire, pour accélération GPU)
```sh
pip install git+https://github.com/huggingface/parler-tts.git
```
## Utilisation
## Exemple de base
```py
import torch
from parler_tts import ParlerTTSForConditionalGeneration
from transformers import AutoTokenizer
import soundfile as sf
device = "cuda:0" if torch.cuda.is_available() else "cpu"
# Chargement du modèle
model = ParlerTTSForConditionalGeneration.from_pretrained("CONCREE/Adia_TTS").to(device)
tokenizer = AutoTokenizer.from_pretrained("CONCREE/Adia_TTS")
# Texte en wolof à synthétiser
text = "Entreprenariat ci Senegal dafa am solo lool ci yokkuteg koom-koom, di gëna yokk liggéey ak indi gis-gis yu bees ci dëkk bi."
# Description du style vocal
description = "A clear and educational voice, with a flow adapted to learning"
# Génération
input_ids = tokenizer(description, return_tensors="pt").input_ids.to(device)
prompt_ids = tokenizer(text, return_tensors="pt").input_ids.to(device)
audio = model.generate(
input_ids=input_ids,
prompt_input_ids=prompt_ids,
)
# Sauvegarde
sf.write("output.wav", audio.cpu().numpy().squeeze(), model.config.sampling_rate)
```
<audio controls>
<source src="https://huggingface.co/spaces/CONCREE/Adia_TTS/resolve/main/snt.wav" type="audio/wav">
</audio>
## Configuration avancée
## Paramètres de génération
```py
generation_config = {
"temperature": 0.8, # Contrôle la variabilité de la sortie
"max_new_tokens": 1000, # Longueur maximale de la séquence générée
"do_sample": True, # Active l'échantillonnage aléatoire
"top_k": 50, # Limite le nombre de tokens considérés
"repetition_penalty": 1.2, # Pénalise la répétition de tokens
}
audio = model.generate(
input_ids=input_ids,
prompt_input_ids=prompt_ids,
**generation_config
)
```
<audio controls>
<source src="https://huggingface.co/spaces/CONCREE/Adia_TTS/resolve/main/avct.wav" type="audio/wav">
</audio>
## Styles vocaux
### Exemples de descriptions pour différents styles :
1. ### Voix naturelle
```py
description = "A warm and natural voice, with a conversational flow"
```
<audio controls>
<source src="https://huggingface.co/spaces/CONCREE/Adia_TTS/resolve/main/styl1.wav" type="audio/wav">
</audio>
2. ### Voix professionnelle
```py
description = "A professional, clear and composed voice, perfect for formal presentations"
```
<audio controls>
<source src="https://huggingface.co/spaces/CONCREE/Adia_TTS/resolve/main/styl2.wav" type="audio/wav">
</audio>
3. ### Voix pour l'éducation
```py
description = "A clear and educational voice, with a flow adapted to learning"
```
<audio controls>
<source src="https://huggingface.co/spaces/CONCREE/Adia_TTS/resolve/main/styl3.wav" type="audio/wav">
</audio>
## Limitations
* Performance réduite sur les phrases très longues
* Gestion limitée des nombres et des dates
* Temps de chargement initial du modèle relativement plus long
* Le modèle est limité à 200 caractères maximum par inférence sans segmentation. Pour les textes plus longs, une segmentation manuelle est nécessaire.
* La qualité des transitions entre segments peut varier selon la méthode de segmentation choisie
* Il est recommandé de segmenter le texte aux frontières naturelles (phrases, paragraphes) pour de meilleurs résultats
## Références
```
@misc{CONCREE-2024-Adia_TTS,
author = {CONCREE},
title = {Adia_TTS},
year = {2025},
publisher = {Hugging Face},
journal = {Hugging Face repository},
howpublished = {\url{https://huggingface.co/CONCREE/Adia_TTS}}
}
```
```
@misc{lyth2024natural,
title={Natural language guidance of high-fidelity text-to-speech with synthetic annotations},
author={Dan Lyth and Simon King},
year={2024},
eprint={2402.01912},
archivePrefix={arXiv},
primaryClass={cs.SD}
}
```
## Licence
Ce projet est sous licence Apache 2.0. Voir le fichier LICENSE pour plus de détails.
## Conditions d'utilisation
* Les utilisateurs s'engagent à utiliser le modèle d'une manière qui respecte la langue wolof et la culture sénégalaise.
* Nous encourageons l'utilisation de ce modèle pour développer des solutions qui améliorent l'accessibilité numérique pour les locuteurs wolof et contribuent à réduire la fracture numérique. Les projets visant l'inclusion numérique sont particulièrement bienvenus.
* Toute utilisation du modèle doit mentionner CONCREE comme créateur original. Les utilisateurs sont fortement encouragés à partager leurs améliorations avec la communauté.
* L'utilisation commerciale est autorisée selon les termes de la licence Apache 2.0.
## Contact
Pour toute question ou support :
Email : [email protected] |