|
Download README.md from IvannP/Paradis-TTS: direct link, hf CLI and curl.
- Browser
- Download file 9.73 kB
-
https://huggingface.co/IvannP/Paradis-TTS/resolve/main/README.md
- Command line
-
hf download hf://IvannP/Paradis-TTS/README.md
-
curl -L -o README.md https://huggingface.co/IvannP/Paradis-TTS/resolve/main/README.md
9.73 kB
| license: apache-2.0 | |
| language: | |
| - fr | |
| pipeline_tag: text-to-speech | |
| library_name: onnxruntime | |
| tags: | |
| - onnx | |
| - french | |
| - audio | |
| - distillation | |
| - quantized | |
| - cpu | |
| - paradis-tts | |
| base_model: | |
| - hexgrad/Kokoro-82M | |
| datasets: | |
| - wikimedia/wikipedia | |
| <img src="https://huggingface.co/IvannP/Paradis-TTS/resolve/v0.1.3/assets/paradis-banner.png" alt="Paradis — Une voix française dans votre application" width="100%"> | |
| # Paradis-TTS · modèles v0.1.3 | |
| **Une voix française compacte, utilisable sur CPU et hors ligne.** | |
| 8,08 millions de paramètres · ONNX FP32 / INT8 · audio mono 24 kHz · | |
| post-traitement activé par défaut. | |
| > « À ma connaissance, l'un des plus petits modèles open source de synthèse | |
| > vocale en français avec une voix naturelle. » — Ivann | |
| Créé en solo par **Ivann**, avec **0 € de budget d'entraînement**, et entraîné | |
| principalement en local sur un **laptop RTX 3060**. Budget hors matériel et électricité. | |
| [GitHub](https://github.com/IvannP39/Paradis-TTS-release) · | |
| [Package Python v0.1.4](https://github.com/IvannP39/Paradis-TTS-release/releases/tag/v0.1.4) · | |
| [Documentation](https://github.com/IvannP39/Paradis-TTS-release/blob/main/docs/PYTHON_PACKAGE.md) | |
| ## Écouter | |
| Les exemples ci-dessous sont de vrais WAV générés avec les poids FP32 de cette | |
| release et le profil de post-traitement par défaut. | |
| « Bonjour, voici la voix française de Paradis. » | |
| <audio controls src="https://huggingface.co/IvannP/Paradis-TTS/resolve/v0.1.3/fp32/samples/01.wav"></audio> | |
| « Sophie sèche ses chaussettes sur sa chaise. » | |
| <audio controls src="https://huggingface.co/IvannP/Paradis-TTS/resolve/v0.1.3/fp32/samples/02.wav"></audio> | |
| « Le TGV part à 18 h 30 et le billet coûte 12,50 €. » | |
| <audio controls src="https://huggingface.co/IvannP/Paradis-TTS/resolve/v0.1.3/fp32/samples/03.wav"></audio> | |
| [Exemples EMA FP32](https://huggingface.co/IvannP/Paradis-TTS/tree/v0.1.3/fp32/samples) · | |
| [Exemples EMA INT8](https://huggingface.co/IvannP/Paradis-TTS/tree/v0.1.3/int8/samples) | |
| ## Utilisation Python | |
| Python 3.10–3.12 ; pas de GPU, PyTorch ou teacher à installer. | |
| ```bash | |
| python -m pip install paradis-tts | |
| ``` | |
| ```python | |
| from paradis_tts import ParadisTTS | |
| tts = ParadisTTS() # post_traitement=True par défaut | |
| audio = tts("Bonjour tout le monde.") | |
| tts.save(audio, "bonjour.wav") | |
| ``` | |
| Au premier lancement, le modèle FP32 est téléchargé depuis Hugging Face, à une révision | |
| figée et son SHA256 est vérifié. Les appels suivants peuvent fonctionner hors | |
| ligne. Pour utiliser les fichiers de ce dépôt sans téléchargement automatique : | |
| décompresser une archive puis passer `model_folder="chemin/vers/fp32"`. | |
| ```python | |
| tts = ParadisTTS(variant="int8") | |
| tts = ParadisTTS(weight_kind="raw") # poids bruts finaux, sans moyenne EMA | |
| tts = ParadisTTS(post_traitement=False) | |
| ``` | |
| Le package est disponible sur [PyPI](https://pypi.org/project/paradis-tts/). | |
| Les distributions wheel/sources restent également disponibles sur GitHub. | |
| La progression du téléchargement et les étapes de chargement s'affichent par | |
| défaut ; `ParadisTTS(verbose=False)` les désactive. La v0.1.4 réutilise | |
| les modèles v0.1.3 et leur cache. | |
| ## Télécharger | |
| | Variante | Archive | Graphes ONNX | Usage | | |
| |---|---:|---:|---| | |
| | [EMA FP32](https://huggingface.co/IvannP/Paradis-TTS/resolve/v0.1.3/paradis_tts_fp32.zip?download=true) | 30.21 Mo | 32,82 Mo | Version par défaut | | |
| | [EMA INT8](https://huggingface.co/IvannP/Paradis-TTS/resolve/v0.1.3/paradis_tts_int8.zip?download=true) | 8.21 Mo | 9,19 Mo | Téléchargement plus compact | | |
| Les poids bruts finaux sont aussi proposés : | |
| [FP32](https://huggingface.co/IvannP/Paradis-TTS/resolve/v0.1.3/paradis_tts_raw_fp32.zip?download=true) · | |
| [INT8](https://huggingface.co/IvannP/Paradis-TTS/resolve/v0.1.3/paradis_tts_raw_int8.zip?download=true). | |
| Les deux variantes ont **8 082 881 paramètres** : 4 231 828 pour le texte et | |
| 3 851 053 pour le décodeur. Trois graphes (texte, prosodie, décodeur) s'exécutent | |
| avec ONNX Runtime CPU. L'excitation, la phonémisation et les filtres utilisent | |
| NumPy/Python et eSpeak. L'INT8 concerne le stockage des poids ; ils sont | |
| déquantifiés pour le calcul flottant. Aucun gain de vitesse INT8 n'est garanti. | |
| ## Post-traitement inclus | |
| Filtre de phase 97, restauration de présence plafonnée à 2,5 dB et adoucissement | |
| du haut du spectre à 1,5 dB. L'adoucissement dynamique est désactivé depuis | |
| la 0.1.3 après comparaison d'écoute. Les réglages | |
| d'attaques, de syllabes fortes et de lissage restent à zéro. Le fichier | |
| `postprocessing.json` permet de les personnaliser. Le traitement est appliqué | |
| automatiquement une seule fois par synthèse. | |
| ## Vitesse sur CPU — français | |
| 40 phrases françaises × 4 passages par moteur, CPU Ryzen 7 5800H, Windows, 2 threads. Poids EMA finaux à 10 000 étapes ; filtres optimisés de la 0.1.3. | |
| | Modèle | Calcul pour 10 s de voix ↓ | Vitesse | | |
| |---|---:|---:| | |
| | Piper français `siwis-medium` | 0.570 s | 17.5× | | |
| | **Paradis FP32*** | 0.695 s | 14.4× | | |
| | **Paradis INT8*** | 0.695 s | 14.4× | | |
| | Kokoro français `ff_siwis` | 5.924 s | 1.7× | | |
| \* Avec un léger post-traitement, inclus dans les temps mesurés. | |
| Appels texte → audio complets, phonémisation et traitements natifs inclus ; chargement et écriture WAV exclus. ONNX Runtime pour Paradis/Piper, PyTorch pour Kokoro. Les durées audio diffèrent entre moteurs ; la vitesse ne classe pas la qualité. Le candidat mesuré et la release utilisent les mêmes calculs audio et poids. [Protocole, mesures par phrase et incertitudes](https://github.com/IvannP39/Paradis-TTS-release/tree/main/evaluation/speed_20261016). | |
| ## Qualité : évaluation historique — v0 | |
| Les scores ci-dessous correspondent aux anciens poids bruts à 6 500 étapes, | |
| pas aux poids EMA de v0.1.3. Les nouveaux exports passent les contrôles | |
| de parité et de fonctionnement ; l'évaluation complète sur 300 phrases n'a pas été relancée. | |
| 300 phrases inédites, articles séparés du corpus de distillation. CPU AMD Ryzen 7 5800H, Windows, deux threads configurés dans ONNX Runtime/PyTorch. | |
| | Moteur | WER ↓ | DNSMOS global ↑ | RTF médian ↓ | Pic RSS | | |
| |---|---:|---:|---:|---:| | |
| | Paradis FP32 | 12.51 % | 3.36 | 0.175 | 374 Mio | | |
| | Paradis INT8 | 12.70 % | 3.35 | 0.183 | 355 Mio | | |
| | Kokoro ff_siwis | 12.33 % | 3.42 | 0.719 | 4405 Mio | | |
| | Piper siwis medium | 16.47 % | 3.25 | 0.119 | 497 Mio | | |
| WER : taux d’erreurs de mots mesuré par Whisper Small en français. DNSMOS P.835 est un proxy parole/bruit, **pas une note d’écoute humaine ni une mesure suffisante de naturalité**. RTF < 1 signifie une génération plus rapide que la lecture. Les mesures ont eu lieu sur un portable partagé avec un entraînement GPU et d’autres tâches CPU ; elles ne constituent pas un classement en conditions isolées. [Protocole, scores par phrase et limites](https://github.com/IvannP39/Paradis-TTS-release/tree/main/evaluation). | |
| ## Architecture et entraînement | |
| Adaptation française de [Paradee](https://github.com/sahilmahendrakar/paradee), | |
| architecture texte `s+mlp` et décodeur `A_full_phase`. Distillation de | |
| [Kokoro-82M](https://huggingface.co/hexgrad/Kokoro-82M), voix française `ff_siwis`, | |
| révision `f3ff3571791e39611d31c381e3a41a3af07b4987`. | |
| Corpus texte : Wikipédia française `20231101.fr`, révision | |
| `b04c8d1ceb2f5cd4588862100d08de323dccfbaa`, phrases courtes, filtrées et | |
| normalisées. Splits : 12 000 train / 500 validation / 500 test. Les cibles sont | |
| des représentations intermédiaires et de l'audio synthétique du teacher. | |
| Les enregistrements originaux SIWIS n'ont pas été utilisés directement. | |
| La v0.1.3 fige le modèle texte à 8 000 étapes et la **moyenne EMA finale du décodeur | |
| à 10 000 étapes de continuation GAN** (décroissance 0,999), après entraînement | |
| spectral, GAN et affinages précédents. Les poids bruts finaux sont disponibles | |
| en alternative. L'identité et les hashes | |
| du snapshot sont fournis dans `provenance.json` et les manifests. Le dépôt public | |
| contient le runtime et les outils d'évaluation ; les expériences d'entraînement | |
| restent dans le dépôt de développement privé. Ce checkpoint n'est pas présenté comme le | |
| meilleur choix perceptuel parmi toutes les variantes. | |
| ## Limites et provenance | |
| Une seule voix, français uniquement. Un grain peut rester audible sur certaines | |
| consonnes. La normalisation des nombres, heures, unités, sigles et liens simples | |
| est couverte ; les formats complexes et les langues mixtes peuvent être mal lus. | |
| Les erreurs, limites et biais de la voix teacher peuvent se transmettre au modèle. | |
| La première release reste expérimentale ; aucune évaluation humaine agrégée | |
| n'est revendiquée. Ce modèle ne permet pas le clonage de voix. | |
| Code et poids : Apache-2.0. Paradee : Sahil Mahendrakar, Apache-2.0. Teacher : | |
| hexgrad/Kokoro-82M, Apache-2.0. Origine déclarée de `ff_siwis` : SIWIS, | |
| CC BY 4.0 — Yamagishi, Junichi ; Honnet, Pierre-Edouard ; Garner, Philip ; | |
| Lazaridis, Alexandros (2017), *The SIWIS French Speech Synthesis Database, 2016*, | |
| University of Edinburgh, [DOI](https://doi.org/10.7488/ds/1705). | |
| Les contributeurs de Wikipédia sont attribués par phrase dans les métadonnées | |
| du dépôt GitHub ; les textes ont leurs propres licences CC BY-SA. Les sorties | |
| audio de démonstration sont synthétiques. Le G2P installé séparément inclut des | |
| composants GPL ; aucune bibliothèque eSpeak native n'est embarquée dans ces | |
| archives. [Licences et inventaire](RELEASE_LICENSES.md). | |