Paradis — Une voix française dans votre application

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 · Package Python v0.1.4 · Documentation

É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. »

« Sophie sèche ses chaussettes sur sa chaise. »

« Le TGV part à 18 h 30 et le billet coûte 12,50 €. »

Exemples EMA FP32 · Exemples EMA INT8

Utilisation Python

Python 3.10–3.12 ; pas de GPU, PyTorch ou teacher à installer.

python -m pip install paradis-tts
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".

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. 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 30.21 Mo 32,82 Mo Version par défaut
EMA INT8 8.21 Mo 9,19 Mo Téléchargement plus compact

Les poids bruts finaux sont aussi proposés : FP32 · INT8.

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.

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.

Architecture et entraînement

Adaptation française de Paradee, architecture texte s+mlp et décodeur A_full_phase. Distillation de 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.

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.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for IvannP/Paradis-TTS

Quantized
(91)
this model

Dataset used to train IvannP/Paradis-TTS