Retour au blog
·Produit

OnType 1.0 — Votre voix, votre clavier


Nous avons commencé à développer OnType le 31 janvier 2026. Quatre-vingt-un jours et près de 900 commits plus tard, nous livrons la version 1.0 — un outil de saisie vocale pour macOS qui transforme votre voix en texte exactement là où se trouve votre curseur. Pas de changement d'application. Pas d'attente. Pas de cloud par défaut.

OnType n'est pas seulement une application de dictée. C'est trois façons différentes de parler, chacune pensée pour un type de moment précis. Voici comment elles fonctionnent.

Tap to speak freely. AI removes fillers and restructures.

Push-to-Talk — Pensez-le, dites-le, envoyez-le

Le mode le plus simple. Maintenez votre raccourci (Fn par défaut), parlez, puis relâchez. Le texte apparaît à votre curseur au moment même où vous relâchez la touche. Le streaming en temps réel vous permet de voir chaque mot au fur et à mesure de sa reconnaissance — pas après un délai, pas dans une fenêtre séparée.

En coulisses, nous avons énormément travaillé sur la latence. L'enregistrement audio supprime automatiquement les 120 premières millisecondes — l'intervalle entre l'appui sur la touche et le moment où vous commencez réellement à parler — afin que le moteur ASR ne perde jamais de temps sur le silence ou le bruit de la touche. Le résultat : la transcription démarre pratiquement au moment où votre première syllabe atteint le microphone.

Dites quelque chose de rapide comme "à tout à l'heure à trois heures, au même endroit" dans Slack. OnType le transcrit localement via une reconnaissance vocale optimisée avec MLX, exécutée sur le Neural Engine de votre Mac Apple Silicon. Latence inférieure à 200 ms. Votre audio ne quitte jamais la machine.

see you at three same place

Compose — Transformez une parole brouillonne en texte propre

La parole réelle est désordonnée. On dit "euh" et "genre". On commence une phrase, on se corrige en plein milieu, puis on s'interrompt. La dictée traditionnelle transcrit fidèlement tous ces faux départs. Pas OnType Compose.

Appuyez une fois sur votre raccourci pour démarrer l'enregistrement. Parlez librement — hésitations, auto-corrections, pensées à moitié formées comprises. Appuyez de nouveau pour terminer. OnType fait passer votre transcription brute dans un moteur de réécriture local qui comprend ce que vous vouliez vraiment dire.

Voici à quoi cela ressemble en pratique. Vous dites quelque chose comme :

euh, alors, pour le lancement de la semaine prochaine, il faut d'abord mettre à jour la doc, et ensuite, genre, les cas de test ne sont pas encore prêts, attendez non, les tests sont faits, c'est les scripts de déploiement qu'il faut vérifier. et puis il faut aussi optimiser un peu les performances, ah oui, le plus important, c'est la compatibilité client, c'est la priorité absolue. euh, pour la doc, il s'agit surtout de synchroniser les changements de l'API.

Le téléprompteur du HUD OnType visualise votre parole en temps réel — les mots de remplissage reçoivent un discret soulignement ondulé, les auto-corrections apparaissent barrées et les commandes vocales (comme "attendez, non" pour signaler une correction) sont surlignées en bleu. Vous voyez le chaos brut au moment même où il se produit.

um so about the launch next week, first we need to update the docs, and then like the test cases aren't done yet, wait no, tests are done, it's the deploy scripts that need checking. and then performance needs some optimization too, oh right, most importantly client compatibility, that's top priority. uh the docs thing is mainly about syncing the API changes.

Puis, une fois que vous appuyez pour terminer, l'IA le réécrit en quelque chose d'exploitables :

Préparation du lancement pour la semaine prochaine :
1. Tests de compatibilité client (priorité absolue)
2. Vérification des scripts de déploiement
3. Synchronisation de la documentation des changements d'API
4. Optimisation des performances

Comment le moteur de réécriture vous comprend

L'IA ne se contente pas de supprimer les mots de remplissage. Elle reconnaît trois types distincts d'auto-correction et traite chacun d'eux différemment :

  • Rétractation explicite — lorsque vous dites "attendez, non" ou "ça devrait être", le moteur ignore tout ce qui précède le signal de correction et ne conserve que la version corrigée.
  • Remplacement par répétition — lorsque vous recommencez une phrase et la répétez avec des modifications, la seconde version prend le dessus sur la première.
  • Annotation en ligne — lorsque vous précisez un terme ("ici, 'pie' signifie PI"), le moteur remplace l'original par la version corrigée et supprime la méta-explication.

Il corrige aussi les erreurs de reconnaissance ASR en raisonnant à partir du contexte. Les homophones qui sonnent juste mais n'ont aucun sens — comme "réfrigération" dans une discussion sur les modèles IA, alors qu'il faudrait "intelligence" — sont corrigés automatiquement. Les noms de marque mal reconnus en mots similaires sont restaurés lorsque le contexte le permet.

Réécriture sensible au contexte

OnType détecte l'application que vous utilisez et adapte sa stratégie de réécriture en conséquence. Un message rapide dans WeChat ne reçoit qu'une intervention minimale — suppression des hésitations et correction des erreurs. Une pensée longue dans Notion est restructurée en paragraphes logiques avec l'idée principale en tête. Des notes de réunion dans Linear deviennent des listes à puces avec regroupement par sujet. Un prompt IA dans Claude est optimisé pour la qualité du prompt — intention clarifiée, contexte séparé des instructions, contraintes explicitées.

Cela fonctionne en chinois, anglais, japonais, coréen, français, espagnol, allemand et italien. Les prompts tiennent compte du contexte — ils savent si vous rédigez un e-mail, prenez des notes de réunion ou écrivez des commentaires de code — et ajustent le ton et la structure en conséquence.

Translate — Parlez dans une langue, écrivez dans une autre

Parfois, vous devez écrire dans une langue dans laquelle vous ne pensez pas encore. OnType Translate vous permet de parler naturellement dans une langue et produit un texte soigné dans une autre.

Appuyez pour démarrer, prononcez votre phrase, puis maintenez Maj en terminant. Le point du HUD devient bleu pour indiquer que le mode de traduction est actif. Relâchez, et le résultat traduit apparaît à votre curseur.

我想订明天上午到北京的航班,不对,是改签,不是订新的

我想订明天上午到北京的航班,不对,是改签,不是订新的

→ Je voudrais reprogrammer mon vol pour Pékin demain matin.

Conçu pour la vitesse

OnType est obsédé par la faible latence. Le HUD en streaming affiche le texte confirmé — les mots dont le moteur ASR est sûr — à côté du texte provisoire qui peut encore changer. Au fur et à mesure que vous parlez, la bulle du HUD s'agrandit et défile avec fluidité en gardant toujours les mots les plus récents visibles. Vous ne regardez pas un indicateur statique "Écoute...". Vous regardez vos mots apparaître en temps réel.

En mode Push-to-Talk, l'écart entre le relâchement du raccourci et l'apparition du texte à votre curseur est généralement inférieur à une seconde. En mode Compose, même avec toute la chaîne de réécriture IA, le délai de bout en bout reste en général sous les deux secondes. Nous y parvenons grâce à un moteur de réécriture par segments qui traite les morceaux de transcription à mesure qu'ils arrivent, au lieu d'attendre la fin complète de l'enregistrement.

Confidentialité dès la conception

Le chemin par défaut est entièrement hors ligne. Nous livrons des modèles MLX quantifiés qui tournent sur le Neural Engine des Mac M1 et suivants. Une précision de niveau Whisper à vitesse accélérée par le matériel. Pour les utilisateurs qui ont besoin des modèles les plus lourds ou travaillent sur des Mac Intel, des fournisseurs Cloud Engine sont disponibles en option — mais le parcours local reste toujours là, toujours privé, toujours instantané.

OnType inclut aussi un moteur personnalisé de normalisation textuelle inverse (ITN). "trois mille dollars" devient "3 000 $". Les dates, devises et nombres sont formatés correctement pour votre locale automatiquement. Et des commandes vocales comme "nouvelle ligne" ou "deux-points" se convertissent en actions clavier réelles en temps réel.

Comment nous en sommes arrivés là

Le projet a commencé comme un prototype Swift centré sur un problème difficile : insérer de façon fiable le texte transcrit à la position du curseur dans chaque application macOS. Nous avons construit une chaîne d'insertion à trois niveaux — API d'accessibilité, simulation clavier, repli via le presse-papiers — et l'avons testée dans des navigateurs, terminaux, outils de design et IDE.

Ensuite, le périmètre s'est élargi. Streaming en temps réel via WebSocket. Plusieurs fournisseurs ASR (DashScope, Volcengine, OpenAI) pour Cloud Engine. Un bundle IME pour les applications qui ne prennent pas en charge l'insertion directe. Une interface de réglages basée sur WebView avec les démos interactives ci-dessus. Des flux d'onboarding qui guident les utilisateurs pour accorder les permissions. Les mises à jour automatiques via Sparkle. Le reporting d'erreurs Sentry. Une bibliothèque personnalisée de transducteurs à états finis compilée en Zig pour le remplacement de texte.

La version 1.0 est une base, pas une ligne d'arrivée. Nous travaillons déjà sur une meilleure gestion de la parole multilingue, des modes Compose plus riches et des intégrations plus profondes avec les outils que les développeurs utilisent le plus.