Pipeline G2P
Pipeline G2P
Texte français → phonèmes IPA — pipeline complet avec tokenisation, formules, liaison et syllabation
Présentation
Le pipeline G2P orchestre 5 briques outils pour transformer un texte brut en une transcription phonétique IPA enrichie. Contrairement au Phonémiseur (modèle brut), le pipeline gère la tokenisation, les formules, les groupes de lecture et la syllabation.
Pipeline
Texte brut
│
▼
┌──────────────────┐
│ Tokeniseur │ normalisation + détection formules
└────────┬─────────┘
│
▼
┌──────────────────┐
│ Formules │ lecture des nombres, dates, sigles → mots + IPA
└────────┬─────────┘
│
▼
┌──────────────────┐
│ Phonémiseur │ BiLSTM multi-tête (G2P + POS + morpho + liaison)
└────────┬─────────┘
│
▼
┌──────────────────┐
│ Groupes de lecture│ regroupement par élision/liaison/enchaînement
└────────┬─────────┘
│
▼
┌──────────────────┐
│ Aligneur-Syllabeur│ alignement graphème-phonème + syllabation
└────────┬─────────┘
│
▼
Texte enrichi (phonèmes, syllabes, liaisons, lettres muettes)
Briques utilisées
| Brique | Package | Rôle dans le pipeline |
|---|---|---|
| Tokeniseur | lectura-tokeniseur |
Normalisation + détection de formules |
| Formules | lectura-formules |
Lecture des formules détectées |
| Phonémiseur | lectura-phonemiseur |
Modèle G2P + POS + liaison |
| Aligneur-Syllabeur | lectura-aligneur |
Alignement + syllabation |
| Lexique | lectura-lexique |
Features lexicales (optionnel) |
G2P vs eSpeak-NG
Le pipeline G2P Lectura se distingue d’eSpeak-NG par sa prise en compte du contexte phrastique : le Phonémiseur prédit la prononciation, la catégorie grammaticale, la morphologie et les liaisons en une seule passe. eSpeak-NG phonémise chaque mot isolément, sans désambiguïsation contextuelle (homographes, liaisons).
| Lectura G2P | eSpeak-NG | |
|---|---|---|
| Contexte | Phrase complète (BiLSTM) | Mot isolé |
| Homographes | Désambiguïsés par POS | Non traités |
| Liaisons | Détectées et marquées | Non gérées |
| Formules | 15+ types (nombres, dates…) | Limité |
| Syllabes | Alignement graphème-phonème | Non disponible |
Exemple de code
from lectura_phonemiseur import creer_engine
engine = creer_engine() # mode API par défaut (zero config)
result = engine.analyser(["Les", "enfants", "sont", "arrivés", "à", "la", "maison"])
print(result["g2p"]) # ['le', 'ɑ̃fɑ̃', 'sɔ̃', 'aʁive', 'a', 'la', 'mɛzɔ̃']
print(result["pos"]) # ['ART:def', 'NOM', 'AUX', 'VER:pper', 'PRE', 'ART:def', 'NOM']
print(result["liaison"]) # ['Lz', 'none', 'Lt', 'none', 'none', 'none', 'none']
Pipeline complet (texte → structure enrichie)
from lectura_g2p import analyser_texte
result = analyser_texte("Les enfants sont arrivés à la maison.")
# result contient : tokens, phonèmes, POS, liaisons, groupes de lecture, syllabes
Essayer en ligne
Installation
# Pipeline G2P (phonèmes + groupes de lecture, sans aligneur)
pip install lectura-g2p
# Pipeline complet avec aligneur-syllabeur (syllabes, lettres muettes, alignement)
pip install lectura-g2p[aligneur]
# Phonémiseur seul (modèle brut, sans pipeline)
pip install lectura-phonemiseur
# Avec backend ONNX local (inférence offline)
pip install lectura-phonemiseur[onnx]
| Extra | Contenu |
|---|---|
| (aucun) | Pipeline G2P complet (tokeniseur + formules + phonémiseur + groupes de lecture) |
[aligneur] |
+ alignement graphème-phonème et syllabation (lectura-aligneur) |
Par défaut, les modules utilisent l’API Lectura (aucune configuration nécessaire). Pour l’inférence locale, installez les backends optionnels sur les briques individuelles (lectura-phonemiseur[onnx]).
Performances
| Tâche | Métrique | Score |
|---|---|---|
| G2P | Accuracy (par mot) | 98.5% |
| POS | Accuracy | 98.2% |
| Liaison | F1 macro | 90.6% |
| Morphologie | Accuracy | 95-99% |
Mesurées sur un corpus de test de phrases françaises complètes (mots en contexte).