39 points par arsture 2026-04-03 | 15 commentaires | Partager sur WhatsApp

Je suis un étudiant qui aime développer. Chaque fois que je demandais quelque chose à une IA, la saisie au clavier devenait le goulot d’étranglement, donc j’ai cherché une solution de saisie vocale et j’ai d’abord utilisé Superwhisper. Ce n’était pas si mal, mais comme ce n’était pas conçu spécialement pour le coréen, il se trompait sans arrêt sur les mots.

  • Quand je disais « J’ai soumis une PR sur GitHub », ça transcrivait quelque chose comme « GitHube peole ollyeosseo »
  • La latence était bonne, mais le taux de reconnaissance était frustrant

En payant, ça s’améliorait un peu. Mais comme je suis étudiant et à court d’argent,,, je n’avais pas envie de payer.

→ J’ai donc essayé de le faire avec un STT local et un LLM, mais c’était beaucoup trop lent.
→ Puis je me suis dit que, comme j’étais déjà abonné à GPT, je pouvais emprunter un LLM via OAuth, et utiliser le STT presque gratuitement avec quelque chose comme Groq.

J’ai donc créé dans cette direction une appli macOS personnelle en Swift.

Fonctionnement principal : on appuie sur un raccourci clavier et on parle, puis STT → correction LLM → collage automatique à la position d’origine du curseur.
C’est 3 à 5 fois plus rapide que de taper, et même si je regarde une autre fenêtre pendant l’enregistrement, l’application mémorise la position initiale du focus et insère exactement à cet endroit.


Différences avec les applis de dictée vocale existantes

Les applis existantes s’arrêtent à STT → coller, alors que Whispree ajoute une couche de correction LLM après le STT. Je n’ai pas trouvé d’application du marché dédiée au coréen.

"밸리데이션 해야 되거든"  →  "validation 해야 되거든"  
"랙트 컴포넌트"        →  "React 컴포넌트"  
"깃헙에 펄 올려놨어"   →  "GitHub에 PR 올려놨어"  

Une fois l’appli faite, j’en ai été assez satisfait, donc j’ai continué à l’utiliser tout en lui ajoutant des fonctionnalités.

Structured Mode

À force de parler à l’IA pour saisir du texte, je me suis rendu compte que je parlais de façon plus décousue que je ne le pensais. Il y avait beaucoup de « et puis », « euh », etc. Je me suis donc dit que ce serait bien que le LLM fasse un post-traitement pour structurer ça en bullet points, et j’ai ajouté cette fonction.
Quand je veux déverser des idées de conception, j’appuie sur le raccourci et je parle d’une traite, puis ça produit un prompt organisé.

Visual Context

Avec la seule parole, le LLM manquait parfois de contexte et corrigeait à côté de la plaque. J’ai donc décidé de capturer automatiquement l’écran que je regarde pendant l’enregistrement.

  • Au début, je ne prenais que l’écran qui avait le focus, mais en pratique je parcourais aussi d’autres onglets pendant l’enregistrement
  • J’ai donc étendu ça à la capture de tous les onglets
  • Lors d’un changement d’onglet, l’onglet précédent est capturé immédiatement, et si je reste 1,5 seconde sur un écran, une capture est prise à ce moment-là
  • J’ai aussi ajouté une fonction pour coller directement les captures d’écran dans le prompt

Quick Fix (Ctrl+Shift+D)

Permet d’enregistrer immédiatement un mot mal reconnu dans le dictionnaire de correction. Cela améliore alors le taux de reconnaissance. J’avais ajouté une fonction de dictionnaire de mots, puis, par flemme, j’en ai aussi fait un raccourci clavier.


Presque gratuit

  • STT : API Groq (gratuite)
  • Correction LLM : j’utilise directement le jeton d’authentification de Codex CLI. Avec juste un compte OpenAI, il n’y a pratiquement pas de coût supplémentaire
  • Usage 100 % local possible : si vous n’avez pas de compte abonné à Codex, vous pouvez utiliser des modèles locaux. En revanche, pour une bonne DX, mieux vaut utiliser un modèle Qwen léger, ou bien seulement le STT...

Fournisseurs et modes

  • STT : 3 options — WhisperKit / Groq / MLX Audio
  • LLM : 6 modèles locaux (Qwen, GLM) + 5 modèles OpenAI
  • Modes de correction : 4 options — Standard / Filler Removal / Structured / Custom
  • Une fonction Can I Run dans l’app permet de vérifier le niveau de compatibilité avec votre machine

Installation

brew tap Arsture/whispree && brew install --cask whispree  

macOS 14+ (Sonoma), Apple Silicon uniquement. Au départ, c’était uniquement pour mon usage personnel, donc je l’ai développé pour macOS, et les autres plateformes ne sont pas encore prises en charge.


Au début, le nom était aussi FreeWhisper. Je voulais juste l’utiliser gratuitement pour moi-même. Mais au moment de le publier en open source, FreeWhisper me paraissait un peu bancal. Comme j’empruntais des clés d’API, j’ai aussi pensé à « NotMyWhisper ». J’aimais bien l’idée, un peu comme quelque chose « emprunté ». Mais à force de l’utiliser, j’ai fini par me dire : « Ce n’est pas le whisper de quelqu’un d’autre, c’est mon whisper, non ? » Finalement, c’est donc devenu Whispree.

C’est un projet open source sous licence MIT. Les retours sont les bienvenus.

GitHub: https://github.com/Arsture/whispree

15 commentaires

 
grollcake 22 일 전

Je l’utilise de nouveau après un bon moment, et il a beaucoup progressé entre-temps.
En revanche, il y a un point que j’aimerais voir amélioré.
La fonction de contexte visuel est vraiment très bien. Mais afficher l’écran capturé à chaque fin d’enregistrement est un peu contraignant. On peut bien sûr l’annuler simplement en appuyant sur Échap, mais je préférerais que cela n’apparaisse pas du tout.
Si l’objectif est de pouvoir coller l’écran capturé pendant l’enregistrement, pourquoi ne pas compenser cela par une fonction permettant de retrouver ensuite l’écran capturé une fois l’enregistrement terminé ?

 
arsture 22 일 전

Pendant l’enregistrement, si vous maintenez longuement la touche Option de gauche, le contexte est bien transmis mais vous pouvez désactiver le collage !

Est-ce bien de cette fonctionnalité que vous parliez ??

 
grollcake 14 일 전

Non. J’utilise uniquement la fonction de transcription. En revanche, c’est gênant que la liste des captures d’écran s’affiche à chaque fin d’enregistrement, donc j’aimerais pouvoir la désactiver.
Si j’appuie sur la touche Option, elle ne s’affiche pas, mais dans mon usage cela reste peu pratique. Je pense que beaucoup de personnes ont une gêne similaire. Pourriez-vous l’ajouter aux options principales ?

 
arsture 14 일 전

Ah, avec cette option principale, elle est probablement désactivée par défaut, mais si vous utilisez une ancienne version, il est possible que cela n’ait pas encore été pris en compte !

Dans l’app whispree -> LLM -> Contexte de capture d’écran -> Transmettre à l’agent, vous pouvez la désactiver explicitement en mettant l’option sur Off !

Concernant les points gênants dans votre usage, je ne les ai pas compris très clairement, peut-être parce qu’on ne peut pas joindre d’images ici T_T
Si cela vous va, pourriez-vous ouvrir une issue sur GitHub ? Comme ça, j’essaierai de bien comprendre le contexte avant de voir comment l’intégrer au mieux !

 
grollcake 10 일 전

Merci. Comme ça n’apparaissait plus à partir d’aujourd’hui, je me demandais pourquoi, mais je vois que vous aviez mis la fonctionnalité à jour.
Merci pour ce retour rapide.

 
bskim 2026-04-04

J’avais quelques réserves en utilisant Handy, donc ça a l’air bien. Je vais le remplacer et l’essayer pendant un moment.

 
arsture 2026-04-04

Merci beaucoup ! Vos retours sont les bienvenus à tout moment !

 
vkehfdl1 2026-04-04

C’est bien :) Je vous soutiens

 
arsture 2026-04-04

Merci :)

 
zihado 2026-04-06

On dirait qu’il y a un bug dans la configuration du raccourci clavier.

 
arsture 2026-04-06

Oh, est-ce que je peux vous demander de quel bug il s'agit ?

 
zihado 2026-04-06

Il est impossible de configurer les raccourcis clavier, et si on réinitialise, les raccourcis disparaissent complètement.

 
arsture 2026-04-06

Avez-vous peut-être déjà accordé l’autorisation d’accessibilité ?
Si ce n’est pas le cas, ajoutez l’application Whispree dans les réglages d’accessibilité, puis essayez à nouveau de configurer le raccourci clavier et tenez-nous au courant, s’il vous plaît !

 
grollcake 2026-04-05

Je l’ai essayé une fois, et c’est excellent. Je vous soutiens.

 
arsture 2026-04-06

Merci !