Phonemiseur (G2P)
Lectura Phonemiseur
Modele unifie G2P + POS + Morphologie + Liaison pour le francais
Presentation
Un seul modele BiLSTM char-level multi-tete (1.75M parametres, ONNX INT8 = 1.8 Mo) qui predit simultanement 4 taches a partir du texte francais :
| Tache | Description | Performance (par mot) |
|---|---|---|
| G2P | Transcription phonemique IPA | 98.5% accuracy |
| POS | Etiquetage morpho-syntaxique (19 tags) | 98.2% accuracy |
| Morphologie | Genre, nombre, temps, mode, personne | 95-99% accuracy |
| Liaison | Liaisons obligatoires/facultatives | F1 90.6% |
Performances mesurees sur un corpus de test de phrases francaises completes (mots en contexte).
Quatre backends d’inference : API (zero config), ONNX Runtime (~2 ms/phrase), NumPy (~50 ms), ou pur Python (~200 ms, zero dependance).
G2P vs eSpeak-NG
Le Phonemiseur Lectura se distingue d’eSpeak-NG par sa prise en compte du contexte phrastique : il predit la prononciation, la categorie grammaticale, la morphologie et les liaisons en une seule passe. eSpeak-NG phonemise chaque mot isolement, sans desambiguisation contextuelle (homographes, liaisons).
Tester en ligne
Le test en ligne utilise l’API Lectura — aucun telechargement de modele necessaire.
Cliquez sur le bouton pour lancer la demo.
Exemple de code
from lectura_phonemiseur import creer_engine
engine = creer_engine() # mode API par defaut (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']
Architecture du modele
Phrase → Char Embedding (64d) → Shared BiLSTM (2x160h → 320d)
|
+-------------------+-------------------+
v v
G2P Head (per-char) Word repr (320d) + Lex Features (24d)
Linear(320→40) |
Word BiLSTM (128h → 256d)
|
+---+---+---+---+---+---+---+
POS Num Gen VF Mood Tns Per Liaison
Features lexicales (optionnel) : si lectura-lexique est installe, le modele recoit un vecteur de 24 dimensions par mot (candidats POS du lexique). Cela ameliore la prediction POS, la morphologie et les liaisons. Sans lexique, le modele fonctionne normalement.
Installation
pip install lectura-phonemiseur # mode API (zero config, zero dependance)
pip install lectura-phonemiseur[onnx] # backend ONNX Runtime local (~2 ms/phrase)
pip install lectura-phonemiseur[numpy] # backend NumPy local
Par defaut, le module utilise l’API Lectura (aucune configuration necessaire). Les backends locaux (ONNX, NumPy) necessitent les modeles pre-entraines, disponibles sous licence commerciale.
Caracteristiques techniques
- 1.75M parametres, modele ONNX INT8 = 1.8 Mo
- 4 backends : API (zero config), ONNX Runtime (~2 ms), NumPy (~50 ms), pur Python (~200 ms)
- Factory
creer_engine(): detection automatique du meilleur backend - Separateurs mots composes :
sep_hyphen=True,sep_apos=Truepour conserver les tirets et apostrophes dans l’IPA (aba-ʒuʁ,d'abɔʁ) - 30 000 corrections lexicales integrees (table plate + homographes POS-aware)
- Features lexicales (optionnel) : candidats POS via
lectura-lexiquepour ameliorer POS/morpho/liaison - Python 3.10+ avec type hints complets (PEP-561)
- Licence : AGPL-3.0 (non commerciale) — licence commerciale sur demande : contact@lec-tu-ra.com