|
--- |
|
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] |