Lëtzebuergesch Clavier · Labs · démonstration
Cette version du clavier n'utilise pas son modèle embarqué : elle envoie le son du micro au service de reconnaissance LuxASR de l'Université du Luxembourg, et affiche le texte qui revient. Elle existe pour une seule raison : montrer à quoi ressemblerait la dictée luxembourgeoise si elle s'appuyait sur ce service plutôt que sur un petit modèle enfermé dans le téléphone.
C'est l'inverse exact de la version Labs, dont
tout l'argument est que rien ne sort de l'appareil. Ici, l'application
demande la permission Internet et envoie à
luxasr.uni.lu l'enregistrement de ce que vous venez de dire,
dès que vous avez fini de parler.
N'y dictez donc rien de confidentiel. Le traitement des enregistrements par ce service ne relève pas de nous, et n'est pas couvert par notre politique de confidentialité, qui décrit la version publiée du clavier.
Cette version n'est pas destinée à être distribuée. Elle sert de support de démonstration. Qu'une dictée en ligne atteigne un jour la version stable supposerait deux préalables qui ne sont pas réunis : l'accord formel du service appelé, et une politique de confidentialité réécrite, celle qui est publiée décrivant une application qui n'envoie rien. D'ici là, cette version n'est proposée ni par la page d'accueil ni sur le Play Store.
Le luxembourgeois dispose de deux services publics de traitement de la parole, et ils n'ont pas le même propriétaire. LuxASR est un service de l'Université du Luxembourg, établissement public : c'est celui que cette démonstration appelle, et le seul. La Sproochmaschinn et sa Schreifmaschinn sont un service du Zenter fir d'Lëtzebuerger Sprooch, sous tutelle du ministère de la Culture, et le clavier ne l'appelle pas, ni ici ni ailleurs.
La distinction n'est pas un détail administratif. Ce prototype montre que le clavier sait déjà confier sa dictée à un service distant, donc qu'il saurait la confier à celui du ZLS, ce qui serait le choix cohérent : la dictée du clavier écrirait alors avec la même machine que les autres outils de la langue. Cette décision ne s'écrit pas dans le code : elle appartient à ceux qui tiennent ces services.
📲 Télécharger l'APK de démonstration
Android 5.0 ou plus récent · fichier APK à installer à la main · demande les permissions micro et Internet
Paramètres › Système › Claviers › Claviers à l'écran, puis
choisissez-le comme clavier courant, au besoin, via l'icône de clavier
qui apparaît en bas de l'écran quand un champ de texte est ouvert.
Le téléphone a besoin d'une connexion pour l'étape 4, et pas seulement pour le téléchargement. Sans réseau, le micro ne rend rien : cette version n'a pas de repli hors ligne, volontairement, pour que la démonstration montre bien ce qu'elle prétend montrer.
Le déroulé ci-dessous n'est pas une intention : il est mesuré sur vingt-deux énoncés d'un corpus de conférences de presse, d'une à trois phrases, de huit à vingt et une secondes.
Les cadences sont celles de l'application, et l'attente de 1,3 s est la valeur mesurée. Seule la durée de la parole est raccourcie : une dictée réelle en dure une douzaine.
La barre de suggestions laisse place à un bandeau 🌐 LuxASR · Schwätzt…, « parlez ». Le globe est là à chaque étape, exprès : on ne doit jamais pouvoir confondre cette version avec celle qui reconnaît dans le téléphone.
Le micro change de couleur, un anneau se met à tourner autour de lui, et il pulse au rythme de la voix captée.
C'est le changement principal de cette version : l'énoncé n'est plus découpé et envoyé au fil de la parole, il est enregistré en entier puis transcrit d'un seul tenant. Aucun mot ne peut donc s'afficher avant la fin.
À la place, le champ montre un micro suivi de six barres qui défilent au rythme de ce qui est réellement capté. Ce n'est pas décoratif : une voix trop lointaine, une main sur le micro, une autre application qui l'a réquisitionné se voient sur-le-champ, à l'endroit même où l'on regarde.
On perd le texte qui se construit sous les yeux. On gagne onze points et demi de justesse, 26,8 % de mots erronés contre 38,3 %, parce que le modèle voit la phrase complète au lieu de deviner à chaque morceau où elle se coupe.
Cinq secondes de silence suffisent, et le seuil s'adapte au bruit de la pièce. Retoucher le micro fait la même chose immédiatement. Le silence qui entoure la phrase n'est pas envoyé : les modèles de cette famille inventent du texte quand on leur donne du blanc.
Le témoin est posé là où le texte va atterrir, souligné comme lui : il dit que quelque chose travaille. Une seconde et trois dixièmes en médiane, deux et un dixième au pire, sur vingt-deux énoncés.
Ce délai ne s'allonge pas avec la longueur de la dictée : il vaut environ un dixième de la durée de ce qu'on a dit. Puis le texte perd son soulignement, il est acquis, et les suggestions reviennent.
Aucun mot ne s'affiche pendant qu'on parle. C'est déroutant quand on vient d'un clavier qui écrit au fil de la voix, et c'est assumé : la version qui affichait en direct se trompait d'un tiers plus souvent. Le tracé de niveau est là pour que l'attente ne ressemble pas à une panne.
Les énoncés très courts peuvent ne rien rendre. Une phrase de deux secondes est revenue vide, deux fois sur deux. Trois mots jetés au micro ne suffisent pas toujours.
Des chiffres s'affichent dans le bandeau, du genre
7.2 s → 330 ms pendant la dictée puis ✅ …
quelques secondes après. C'est un instrument de mesure laissé en place
pour cette démonstration, pas un défaut d'affichage.
Dans un champ de mot de passe, le micro refuse de démarrer et le dit. Aucun traitement n'est déclenché, pas même localement.
Si l'accès au micro est refusé, ou si le service est injoignable, le bandeau affiche lequel des deux est en cause. La distinction est délibérée : un service en panne n'est pas un téléphone incapable, et le message précédent faisait accuser l'appareil à tort.
Les deux versions sont le même clavier, à un détail près : d'où vient le texte quand vous parlez. Tout le reste (la disposition QWERTZ, le dictionnaire, les suggestions) est identique.
| Labs, modèle embarqué | Cette démonstration | |
|---|---|---|
| Où va la voix | Nulle part : aucune permission réseau | À luxasr.uni.lu, à la fin de chaque dictée |
| Sans connexion | Fonctionne : avion, tunnel, sans forfait | Ne fonctionne pas du tout |
| Justesse | 72 % de mots erronés sur notre corpus d'essai | 26,8 % de mots erronés sur des dictées d'une à trois phrases, en interrogeant le service directement, et 11 % à 15 % sur un extrait lu proprement |
| Ponctuation, majuscules | Rendues par le modèle, souvent à côté | Rendues, et justes sur nos essais |
| Délai | ≈ 6 s par passe sur un téléphone ancien, quelle que soit la longueur de la phrase | Rien pendant qu'on parle, puis le texte entier ≈ 1,3 s après la dernière syllabe, 2,1 s au pire, et le délai ne grandit pas avec la longueur de la dictée |
| Taille de l'application | 38,4 Mo, dont 31 pour le modèle | 6,2 Mo : rien à embarquer |
| Dépendance | Aucune : le modèle est dans l'application | Entière : le service, sa disponibilité, son accord |
Les 72 % viennent de 161 énoncés de longueur courante extraits d'un corpus de conférences de presse gouvernementales luxembourgeoises, hors du domaine d'entraînement du modèle. C'est une borne haute, mais l'ordre de grandeur est celui-là : au-delà d'environ 25 %, corriger coûte plus cher que taper.
Les chiffres en regard viennent d'un banc passé le 1er septembre 2026 sur vingt-deux dictées d'une à trois phrases, découpées aux pauses du locuteur, huit à vingt et une secondes. Interrogé directement, sans micro ni haut-parleur, le service se trompe sur 26,8 % des mots. La même mesure sur la version qui transcrivait au fil de la parole donnait 38,3 % : l'écart est le prix du découpage, pas celui du service. Un banc antérieur, sur des tranches plus courtes, a montré que rejouer au haut-parleur devant le micro d'un téléphone coûte encore quatre points en médiane, la chaîne acoustique, cette fois. La mesure équivalente sur cette version reste à faire.
Ces valeurs sont pessimistes des deux côtés : les transcriptions humaines du corpus omettent parfois ce que l'orateur a réellement dit, et le passage est alors compté faux. À l'opposé, les 11 % à 15 % viennent d'un extrait lu proprement, rejoué cinq fois : trois passes entre 11,1 % et 14,8 %, deux à 52 % à cause d'une clause dupliquée en fin de transcription, un défaut connu des modèles de cette famille, que l'application filtre lorsqu'il prend la forme d'une boucle, mais pas lorsqu'il n'apparaît qu'une fois. La vérité de l'usage courant est entre les deux, et d'autant plus près du bas qu'on articule dans un endroit calme.
L'application enregistre l'énoncé en PCM 16 bits à 16 kHz, rogne le silence qui l'entoure, puis l'envoie d'un bloc au service, qui le met en file et le transcrit. Le clavier interroge le travail cinq fois par seconde et insère le texte quand il arrive. Aucun enregistrement n'est conservé sur le téléphone.
Une version précédente poussait l'audio en continu sur une connexion WebSocket et réécrivait le texte à chaque hypothèse reçue. Elle a été abandonnée pour une raison mesurée. Les deux points d'entrée servent le même modèle : sur soixante-deux énoncés, quarante-trois transcriptions sont identiques au caractère près. Mais le découpage en direct oblige à décider où la phrase s'arrête, et une pause n'est pas une fin de phrase. Sur des dictées d'une à trois phrases, décider vaut onze points et demi de mots erronés. Le délai final, lui, ne change pas.
Le silence n'est pas envoyé, et ce n'est pas une économie de données : les modèles de cette famille inventent du texte quand on leur en donne. Un énoncé laissé tourner quatre-vingt-dix secondes, dont trente de salle vide, a rendu deux cent soixante-dix mots pour cent quatre-vingt-douze réellement prononcés.
Le simulateur de cette page fait la même chose, à une réserve près, qui ne tient pas à nous : depuis un navigateur, la soumission est soumise à la politique d'origine croisée, et la réponse qui porte le numéro du travail n'en déclare pas. Le navigateur la bloque donc, alors que l'application, elle, passe sans difficulté. Quand cela arrive, la page ne fait pas reparler l'utilisateur : elle rejoue sur l'ancienne connexion WebSocket l'énoncé qu'elle a déjà enregistré, et le texte arrive quand même, avec la justesse moindre du découpage en direct. Une seule entête ajoutée côté service ferait basculer la page sur l'API sans qu'on y touche.