File size: 9,730 Bytes
344b51c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3815937
344b51c
95111dc
344b51c
 
 
 
 
3815937
 
 
 
 
 
344b51c
95111dc
344b51c
 
 
 
 
 
 
 
 
3815937
344b51c
 
 
3815937
344b51c
 
 
3815937
344b51c
3815937
 
344b51c
 
 
 
 
 
3d629d4
344b51c
 
 
 
 
 
 
 
 
 
204cbc1
344b51c
 
204cbc1
344b51c
 
 
8ab2f3e
344b51c
 
 
3d629d4
 
95111dc
 
 
344b51c
 
 
 
 
3815937
 
8ab2f3e
 
3815937
 
344b51c
 
 
 
 
 
 
 
 
3815937
 
 
344b51c
 
 
 
3815937
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8ab2f3e
 
3815937
8ab2f3e
344b51c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3815937
8ab2f3e
 
 
344b51c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---

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).