TTS Monospeaker
Lectura TTS Monospeaker
Synthese vocale neuronale francais — FastPitch-Lite + HiFi-GAN (ONNX)
Presentation
Moteur de synthese vocale neuronale pour le francais, base sur FastPitch-Lite (modele acoustique) et HiFi-GAN (vocoder). Produit un signal audio naturel a 22050 Hz a partir de texte ou de phonemes IPA.
| Caracteristique | Valeur |
|---|---|
| Qualite | Voix feminine naturelle (corpus SIWIS) |
| Debit | ~50x temps-reel sur CPU (ONNX) |
| Taille modele | ~17 Mo (ONNX INT8, 3 fichiers) |
| Entree | Texte francais ou phonemes IPA |
| Sortie | Audio 22050 Hz, float32 |
| Controles prosodiques | Pitch, energie, debit, pauses |
| Retimbre | Changement de voix optionnel via OpenVoice [vc] |
Deux modes d’utilisation : API (zero dependance, zero config) ou local (ONNX Runtime, inference offline).
Essayer en ligne
La demo utilise l’API Lectura — aucun telechargement necessaire.
Cliquez sur le bouton pour synthetiser.
Exemple de code
from lectura_tts_monospeaker import creer_engine
engine = creer_engine() # mode API par defaut (zero config)
# A partir de texte
audio = engine.synthesize(text="Bonjour, comment allez-vous ?")
print(f"Duree : {len(audio) / 22050:.2f}s")
# A partir d'IPA avec controles prosodiques
audio = engine.synthesize(
ipa="bɔ̃ʒuʁ kɔmɑ̃ ale vu",
pitch_shift=0.0,
pitch_range=1.3,
energy_scale=1.0,
duration_scale=1.0,
)
# Sauvegarder en WAV
engine.save_wav(audio, "output.wav")
Architecture
Texte → [G2P: grapheme→phoneme] → Phonemes IPA
↓
FastPitch-Lite Encoder
(phone_ids → enc_out + dur/pitch/energy)
↓
Length Regulation + Prosody Embedding
↓
FastPitch-Lite Decoder
(decoder_in → mel spectrogram 80 bandes)
↓
HiFi-GAN Vocoder
(mel → waveform 22050 Hz)
Le pipeline complet est split en 3 modeles ONNX independants pour une flexibilite maximale (quantification, streaming, remplacement individuel).
Installation
pip install lectura-tts-monospeaker # mode API (zero config, zero dependance)
pip install lectura-tts-monospeaker[onnx] # backend ONNX Runtime local
pip install lectura-tts-monospeaker[onnx,g2p] # avec G2P integre (texte → audio)
pip install lectura-tts-monospeaker[onnx,g2p,vc] # + retimbre multi-voix (OpenVoice)
pip install lectura-tts-monospeaker[all] # tout
Par defaut, le module utilise l’API Lectura (aucune configuration necessaire). Le backend local ONNX necessite les modeles pre-entraines, disponibles sous licence commerciale.
Retimbre (optionnel)
Avec [vc], le parametre voix= permet de changer le timbre de la voix synthetisee via OpenVoice (zero-shot) :
from lectura_tts_monospeaker import synthetiser
# Voix preset
audio = synthetiser("Bonjour le monde.", voix="bernard")
# Blend de voix
audio = synthetiser("Bonjour.", voix={"siwis": 0.5, "nadine": 0.5})
# Variante grave/aigu (-1 a +1)
audio = synthetiser("Bonjour.", voix="ezwa", voix_variante=-0.5)
Presets disponibles : siwis, ezwa, nadine, bernard, gilles, zeckou.
Caracteristiques techniques
- FastPitch-Lite V6 : ~5M parametres, encodeur + decodeur, GAN fine-tuning
- HiFi-GAN : vocoder universel, signal 22050 Hz
- 2 backends : API (zero config) ou ONNX Runtime local (modeles sous licence commerciale)
- Controles prosodiques : pitch_shift, pitch_range, energy_scale, duration_scale, pause_scale
- Retimbre optionnel
[vc]: changement de voix via OpenVoice zero-shot (6 presets, blend pondere, variante formants) - Factory
creer_engine(): detection automatique du meilleur mode - Python 3.10+ avec type hints complets (PEP-561)
- Licence : AGPL-3.0 (code) — les modeles pre-entraines sont sous licence commerciale