Pipeline TTS
Pipeline TTS
Texte français → audio — pipeline G2P + choix de moteur + conversion vocale optionnelle
Présentation
Le pipeline TTS de Lectura combine le pipeline G2P avec l’un des 3 moteurs acoustiques pour produire de l’audio à partir de texte. Une étape de conversion vocale optionnelle permet de changer le timbre en post-traitement.
Pipeline
Texte français
│
▼
┌───────────────┐
│ Pipeline G2P │ tokenisation + formules + phonémisation + liaison
└───────┬───────┘
│ phonèmes IPA + métadonnées prosodiques
▼
┌───────────────┐
│ Moteur TTS │ choix parmi 3 moteurs (voir ci-dessous)
└───────┬───────┘
│ audio brut
▼
┌───────────────┐
│ VC (optionnel) │ retimbre via OpenVoice ou RVC
└───────┬───────┘
│
▼
Audio final
Essayer en ligne
Comparatif des 3 moteurs
| Monospeaker | Multi-Speaker | Diphone | |
|---|---|---|---|
| Architecture | Matcha-Conformer + HiFi-GAN | Dual Conformer/FastPitch + HiFi-GAN | Concaténation WORLD |
| Paramètres | 17.9M | Conformer 384 + FastPitch 256 | — (diphones pré-calculés) |
| Taille ONNX | ~29 Mo (INT8) | ~80 Mo (INT8 dual) | ~15 Mo |
| Voix natives | 1 (SIWIS) | 6 (3F + 3M) | 1 (SIWIS) |
| Styles | 7 presets (vecteur 5D) | 7 presets (vecteur 5D) | — |
| Débit CPU | ~30x temps-réel | ~50x temps-réel | Temps-réel |
| Sortie | 22050 Hz | 22050 Hz | 44100 Hz |
| Modes lecture | — | — | FLUIDE, MOT_A_MOT, SYLLABES |
| Retimbre | OpenVoice (optionnel) | — | OpenVoice (optionnel) |
| Usage principal | Voix naturelle haute qualité | Multi-voix, narration | Pédagogie, lecture assistée |
Modes de lecture (Diphone)
Le moteur Diphone supporte 3 modes de lecture adaptés à l’apprentissage :
- FLUIDE : lecture naturelle, prosodie complète
- MOT_A_MOT : chaque mot articulé séparément avec pause inter-mots
- SYLLABES : chaque syllabe distinctement articulée
Installation
# Monospeaker (Matcha-Conformer, haute qualité)
pip install lectura-tts-mono[onnx]
# Multi-Speaker (6 voix, rapide)
pip install lectura-tts-multi[onnx]
# Diphone (pédagogique, modes de lecture)
pip install "lectura-tts-dipho[local]"
# Avec retimbre (Monospeaker + OpenVoice)
pip install lectura-tts-mono[onnx,retimbre]
# Avec retimbre (Diphone + OpenVoice)
pip install "lectura-tts-dipho[local,retimbre]"
# Avec lecture syllabique (aligneur-syllabeur)
pip install lectura-tts-mono[onnx,aligneur]
pip install lectura-tts-multi[onnx,aligneur]
pip install "lectura-tts-dipho[local,aligneur]"
# Via le meta-package lectura
pip install "lectura[tts-mono]" # Monospeaker + G2P
pip install "lectura[tts-multi]" # Multi-Speaker + G2P
pip install "lectura[tts-dipho]" # Diphone + G2P
pip install "lectura[tts]" # Les 3 moteurs
Extras disponibles par pipeline
| Extra | lectura-tts-mono |
lectura-tts-multi |
lectura-tts-dipho |
|---|---|---|---|
| Backend local | [onnx] |
[onnx] |
[local] |
[retimbre] |
oui | oui | oui |
[aligneur] (lecture syllabique) |
oui | oui | oui |
Chaque pipeline inclut le G2P par défaut. Les moteurs bruts (lectura-monospeaker, lectura-multispeaker, lectura-diphone) fonctionnent aussi en mode API sans backend local.
Exemple de code
# Monospeaker — haute qualité, 7 styles
from lectura_monospeaker import creer_engine
engine = creer_engine()
result = engine.synthesize(text="Bonjour le monde.", style="narratif")
# Multi-Speaker — 6 voix
from lectura_multispeaker import creer_engine
engine = creer_engine()
audio = engine.synthesize(text="Bonjour.", speaker="bernard", style="expressif")
# Diphone — modes pédagogiques
from lectura_diphone import synthetiser
audio = synthetiser("Le chat dort.", voix="siwis")
Briques utilisées
| Brique | Rôle |
|---|---|
| Pipeline G2P | Texte → phonèmes IPA |
| TTS Monospeaker | Moteur Matcha-Conformer |
| TTS Multi-Speaker | Moteur dual Conformer/FastPitch |
| TTS Diphone | Moteur concaténation WORLD |
| VC ZeroShot | Retimbre OpenVoice (optionnel) |
| VC Locuteurs | Retimbre RVC (optionnel) |