Dites ce que j’ai dit : la dictée sans réécriture par l’IA
La dictée IA réécrit vos mots : nuances perdues, sens inversé. Pourquoi le polissage par LLM vous paraphrase et Keebye reste littéral.
Il existe une plainte au sujet de la dictée améliorée par IA qui sonne paradoxale tant qu’on ne l’a pas vécue : la transcription était bonne — c’est ce qui s’est passé après la transcription qui a tout gâché. Vous avez dit une chose, et l’outil a livré une chose polie, assurée, et légèrement différente. Une nuance discrètement supprimée. Une réserve retirée. Une phrase restructurée en quelque chose que vous n’auriez jamais dit. Et dans la pire version du schéma — celle qui pousse les gens à abandonner un outil sur-le-champ —, le sens s’inverse. « Ne déploie pas tant que les tests ne passent pas » ressort à l’autre bout comme une instruction de déployer, moins le ne pas.
Pour de la dictée occasionnelle, c’est un désagrément. Pour la façon dont j’utilise réellement la dictée — alimenter Claude Code en prompts, le workflow de piloter Claude Code à la voix —, c’est du poison. Un agent de code prend vos mots comme une spécification. Il ne sait pas que votre outil de dictée vous a paraphrasé. Si la nuance qui rendait l’instruction sûre a été lissée entre votre bouche et le terminal, l’agent exécutera joyeusement la version lissée. La précision est tout l’intérêt d’un prompt, et une couche de réécriture par IA est une machine à retirer de la précision tout en faisant paraître le résultat plus délibéré.
Pourquoi les outils de dictée IA réécrivent-ils ce que vous avez dit ?
La réponse au niveau de la catégorie n’est pas que quelqu’un aurait cherché à déformer la parole. C’est que « nettoie cette transcription » est une fonctionnalité réellement séduisante, et que la façon évidente de la construire est de faire passer la transcription brute dans un modèle de langage.
La parole brute est désordonnée — mots de remplissage, faux départs, mots répétés, ponctuation absente. Un LLM à qui l’on demande de ranger tout ça produit une sortie magnifique. L’ennui, c’est qu’un modèle de langage n’édite pas, au sens où un correcteur humain qui retire les « euh » édite. Il régénère. La sortie est un nouveau texte que le modèle considère comme une bonne version de votre entrée, et « bonne » est l’endroit par lequel votre intention fuit. Les modèles entraînés vers la serviabilité et la fluidité ont des opinions : les réserves ressemblent à du bruit, les nuances à de l’encombrement, une formulation maladroite mais précise à quelque chose à améliorer. La plupart du temps, la réécriture est inoffensive. Mais elle est probabiliste, et vous ne pouvez pas savoir, à partir de la sortie, quelles phrases ont été transcrites et lesquelles ont été composées. Le poli est uniforme ; la fidélité, non.
C’est le problème profond des pipelines de polissage par LLM : ils échouent silencieusement et avec assurance. Un moteur de reconnaissance vocale qui vous entend mal produit généralement quelque chose de visiblement faux. Une couche de réécriture qui vous trahit produit quelque chose de visiblement juste — grammatical, plausible, portant votre voix — et c’est exactement pour cela que le « ne déploie pas » inversé est envoyé au lieu d’être intercepté.
Littéral par défaut
La position de Keebye est simple : ce que le modèle de reconnaissance vocale a entendu est ce qui atterrit à votre curseur. Par défaut, aucun modèle de langage ne s’intercale entre la transcription et votre terminal pour composer une meilleure version de vous — l’étape de polissage par défaut est une courte liste de règles déterministes, et c’est tout.
C’est un pari délibéré, et il vient du cas d’usage vibecoding. Quand votre dictée est le canal de contrôle d’agents de code, le travail de l’outil est le transport, pas la rédaction. Vous êtes l’auteur ; l’agent est le public ; la couche de dictée ne devrait avoir aucune opinion. Ce workflow — dire des prompts entiers au lieu de les taper — est détaillé dans la dictée vocale pour les prompts IA.
Il existe bien un polissage par LLM dans Keebye — j’y viens —, mais il est optionnel, il s’exécute entièrement sur votre machine, et il opère sous un garde-fou conçu pour rejeter les formes courantes de dérive, d’expansion incontrôlée et de répétition. Si la sortie échoue à ce contrôle, Keebye revient aux règles. La valeur par défaut reste les règles.
Alors, que fait vraiment le nettoyage ?
Littéral ne veut pas forcément dire brut. Keebye livre une passe de nettoyage optionnelle — l’amélioration, activée par défaut, et surchargeable par app —, mais elle est à base de règles, pas de modèle, et la liste complète de ce qu’elle fait tient en un paragraphe :
Elle supprime les mots de remplissage isolés (euh, hum, bah, tu vois). Elle réduit les répétitions immédiates de mots — « le le » devient « le ». Elle réduit les espaces multiples. Elle met une majuscule à la première lettre, et ajoute un point final si vous n’avez pas terminé par un. C’est toute la liste. Les règles sont déterministes et de portée étroite ; elles ne réordonnent pas délibérément les propositions, ne suppriment pas les négations et ne substituent pas de synonymes.
Avant le nettoyage, vos substitutions de dictionnaire s’appliquent — des remplacements définis par vous pour le jargon et les noms propres que les modèles vocaux massacrent, pour que « pnpm » et les noms de vos modules arrivent orthographiés comme votre code les orthographie.
Et si même la passe à base de règles est plus d’intervention que vous n’en voulez, désactivez l’amélioration et Keebye insère la transcription brute du modèle vocal : mots de remplissage, répétitions et tout le reste. Dans certains contextes — citer quelqu’un, dicter dans un champ où le point final casse quelque chose —, la transcription brute est le meilleur choix, et la surcharge par app vous permet de le faire.
Le polissage optionnel, et le garde-fou de fidélité autour de lui
Venons-en au LLM promis. Pour ceux qui veulent un nettoyage plus intelligent, Keebye propose un mode de polissage optionnel (polish_mode réglé sur local_llm) : un petit modèle Qwen3 tournant sur l’appareil via llama.cpp, accéléré par Metal, sans rien envoyer nulle part. Ses instructions sont la version étroite du polissage — corriger la ponctuation et les majuscules, retirer les mots de remplissage, garder les mots exacts, la langue et le sens de l’utilisateur, préserver le code et les noms de fichiers tels quels. La génération est déterministe (échantillonnage glouton, même entrée → même sortie) et plafonnée ; si le modèle cale au-delà d’un délai de deux secondes, sa sortie est abandonnée.
Mais les instructions sont des espoirs, et cet article existe parce que les espoirs ne sont pas des garanties. Chaque résultat poli par le LLM passe donc par un contrôle de fidélité avant de pouvoir toucher votre curseur. La sortie doit conserver au moins 50 % des tokens de la transcription d’origine. Elle ne doit pas enfler — tout ce qui dépasse environ le double de la longueur d’origine (plus quatre tokens) échoue. La répétition incontrôlée est détectée. Si le résultat poli échoue à l’un de ces contrôles, Keebye le jette et revient au nettoyage à base de règles.
Ce garde-fou attrape la perte sévère de tokens, l’expansion incontrôlée et la répétition avant que la sortie du modèle puisse remplacer la transcription nettoyée par règles. C’est une heuristique, pas une preuve sémantique : une réécriture courte ou une négation modifiée pourrait encore passer ses seuils. Si une nuance ne peut pas se permettre de dériver, laissez le polissage IA désactivé et relisez le texte inséré avant de l’envoyer.
Les limites honnêtes
Littéral veut dire littéral. Si vous divaguez, votre divagation atterrit — même le polissage optionnel est instruit et encadré vers le nettoyage, pas la composition, donc Keebye ne transformera pas une pensée sinueuse en instruction nette. La discipline de dire ce que vous voulez dire reste la vôtre.
Le nettoyage à base de règles est volontairement bête. Il retire les « euh » ; il ne corrigera pas votre grammaire, ne restructurera pas une phrase à rallonge et ne remarquera pas que vous vous êtes contredit. Tout ce qui serait plus intelligent réintroduirait les jugements que cette conception existe précisément pour éviter.
Et la fidélité protège de la réécriture, pas de la mauvaise reconnaissance. Si le modèle vocal entend « cache » au lieu de « cash », cette erreur est fidèlement préservée — le garde-fou n’a aucune idée de ce que vous vouliez dire, seulement de ce qui a été transcrit. La dictée littérale déplace la frontière de confiance vers le modèle de reconnaissance vocale ; elle ne l’élimine pas. (À ce sujet : si votre problème est que le modèle transcrit dans la mauvaise langue, c’est une autre panne avec une autre solution — épinglez votre langue de dictée.)
Enfin, le cadrage au niveau de la catégorie : le polissage IA n’est pas une arnaque, et beaucoup d’utilisateurs préfèrent sincèrement une sortie qui se lit plus fluidement qu’ils ne parlent. Si c’est votre cas, d’autres outils l’assument bien, et nos comparaisons le disent honnêtement — Keebye vs Wispr Flow et Keebye vs Superwhisper comportent tous deux une véritable section « quand l’autre outil convient mieux ».
Transport, pas rédaction
Le marché que propose Keebye est étroit à dessein : vous parlez, et une transcription légèrement nettoyée atterrit là où est votre curseur. Quand ces mots sont des prompts destinés à un agent qui va les exécuter littéralement, l’étroitesse est une fonctionnalité. La chose la plus coûteuse qu’un outil de dictée puisse faire à un développeur n’est pas une faute de frappe. C’est une phrase fluide que vous n’avez jamais dite.
Keebye est en accès anticipé pour macOS. Lancez votre essai gratuit ci-dessous, dictez « Ne déploie pas tant que les tests ne passent pas », et vérifiez si cette contrainte exacte survit au nettoyage. Ce test, c’est tout le produit.
Testez l’instruction qui ne peut pas se permettre de dériver
Lancez votre essai gratuit et dictez un prompt avec une nuance critique — surtout une négation — puis inspectez ce qui arrive.
Start free trialEarly access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.
Continuez à lire
Dicter des prompts aux agents parallèles, voie par voie
Deux ou trois agents de code à la fois font du prompt le goulot d’étranglement. Un workflow vocal pour alimenter les voies parallèles sans quitter la vôtre.
Claude Code à la voix : construire en voies parallèles
Avec les agents de code IA, la frappe devient un frein. Un workflow pour dicter prompts, revues et réorientations en voies parallèles sur macOS.
Une dictée qui survit au terminal
Le collage échoue sans bruit dans les terminaux, SSH, tmux et claviers non-QWERTY. Pourquoi le presse-papiers échoue et ce que fait le mode frappe.