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=True pour 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-lexique pour 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