01Le Déclencheur : L'alternative à Super Whisper
L’idée est venue de la découverte d’une app de dictée vocale : Super Whisper, un outil de dictée vocale boosté à l'IA, mais uniquement disponible sur Mac (à l’époque). Étant sur Windows, et après avoir cherché sans succès une alternative équivalente, je me suis demandé si créer un logiciel qui écoute, transcrit la voix, et colle le texte où on le souhaite, était réellement si compliqué à faire.
02Phase 1 : De l'idée au Prototype Python
En lançant ce projet, j'avais deux craintes majeures : comment bien démarrer pour que l'IA ne fasse pas n'importe quoi, et comment elle allait gérer la mémoire du projet au fil des sessions de développement.
En tant qu'ancien chef de projets, j'ai commencé par rédiger un mini cahier des charges, cette fois assisté par l'IA elle-même. Nous avons itéré pour clarifier le périmètre et définir une stack cohérente, aboutissant à un premier POC (Proof of Concept) en Python. J'avais désormais une direction claire.
Pour gérer la fenêtre de contexte et la mémoire du projet, j'ai mis en place ma propre méthodologie, en travaillant dans Claude Desktop avec un projet dédié. J'avançais par itérations :
Une fois que tout était OK, je clôturais la session et lui demandais un résumé de ce qui avait été accompli, que je rajoutais au contexte du projet.
Cette méthode a permis au projet d'avancer de manière documentée. J'ai ensuite automatisé une partie du workflow en utilisant un MCP (Model Context Protocol) : Filesystem, pour que Claude puisse écrire directement dans les fichiers. Le résultat : moins de friction et plus de focus sur les décisions.
Au final, j'ai obtenu en un mois un premier POC Python fonctionnel qui écoutait, transcrivait et collait le texte. Mission accomplie !
Le problème de cette version était qu'elle mettait un temps fou à se lancer, elle était lourde à compiler, et son design était rudimentaire. J'ai réalisé que l'IA m'avait aidé à rendre quelque chose de fonctionnel, mais pour en faire une vraie application distribuable, il fallait revoir sérieusement la stack technique.
03Phase 2 : Migration vers Rust et l'enjeu des dépendances
Après quelques échanges avec mes LLM préférés, j'ai pris la décision de migrer vers Rust. Léger, performant et facilement distribuable, il semblait parfait sur le papier.
J'ai profité de ce changement pour migrer mon mode de travail vers VS Code avec Claude Code intégré et j'ai mis mon projet sur GitHub, comprenant rapidement que l'utilisation d'un système de versioning était indispensable.
Le démarrage a connu un faux pas. Nous avons commencé sur une vieille version de whisper.cpp beaucoup trop lente, et l’IA s'est mise à tourner en rond sur des optimisations inutiles. Visiblement un grand classique : l'IA adore partir sur des librairies obsolètes. La moralité est d'ailleurs simple : toujours vérifier les versions et les installer soi-même ou préciser celle que l'on veut noir sur blanc.
Malgré ce début difficile, la suite s'est bien passée. J'ai enchaîné les fonctionnalités et mis en place une UI bien plus propre et moderne que celle de l’application Python.
Une fois les fonctionnalités du POC en place, je me suis attaqué à une feature qui me semblait compliquée à mettre en œuvre : Les Modes.
Cette fonctionnalité permet de passer la transcription à un autre LLM. Ce 2e LLM a son propre prompt system, ce qui permet “d’agentiser” en quelque sorte sa transcription. Exemple : un mode "email pro", où tout ce que je dirais, serait filtré par le LLM et collé à la place de la transcription initiale.
Bon, je me faisais toute une montagne de cette fonctionnalité à mettre en place, mais en vrai, en quelques prompt dans VS Code, la feature était en place, avec la possibilité d’appeler les API de type OpenAI ou encore de rester en full local via LM Studio.
Sur mon PC personnel, équipé d'une petite carte Nvidia, les performances étaient excellentes, les transcriptions rapides et l'UX moderne. À ce moment, j'étais convaincu que c’était un projet que je pourrais partager…
04Phase 3 : Le Casse-tête de la Distribution
Il restait un tout petit détail : la distribution. Non pas le marketing ou la promotion, mais simplement le fait de faire tourner cette application sur un autre PC que le mien.
J'ai compilé l'application, l'ai installée sur un autre PC, et malgré un lancement réussi, la première transcription a provoqué un crash.
J'ai passé des soirées entières à débugger, recompilant l’application des dizaines de fois en jouant sur les paramètres qui influent sur les jeux d’instruction CPU et GPU. J'ai réalisé que mon problème n’était pas seulement logiciel, il touchait le hardware.
Sur Mac (depuis les M1), le hardware est relativement homogène (même techno, GPU intégré, mémoire unifiée). Sur PC, c’est l’inverse : Intel, AMD, architectures différentes, des GPU NVIDIA, AMD, Intel, ou pas de GPU du tout. Il est extrêmement difficile d'avoir un soft basé sur de l’IA qui fonctionne sur une grande partie des configurations. En tout cas, pour un simple vibe-codeur…
Sur ma machine, j’avais compilé l'application avec CUDA pour profiter de l’accélération matérielle NVIDIA, prévoyant un fallback CPU. Sur le papier, c’est propre. Dans la vraie vie, le résultat est : "chez certains ça tourne, chez d’autres ça rame, au pire ça plante". L'accélération matérielle a un impact énorme sur les performances.
Ce défi m'a mené à découvrir Handy, un autre soft open source de transcription recommandé dans un article de Korben, qui a choisi Vulkan au lieu de CUDA pour toucher plus de monde (compatible avec davantage de cartes graphiques). Malgré ses milliers d’étoiles sur GitHub, ce projet se bat encore avec des problèmes hardware utilisateurs. Sur ma machine, par exemple, leur modèle spécial CPU censé auto-détecter la langue produisait un mélange français/anglais dans mes transcriptions.
Ma conclusion fut simple : si je publiais mon logiciel "tel quel", je signais un CDI de support technique, passant mes soirées à débugger pour les utilisateurs.
05Le Vrai Gain : Au-delà de l'Application Fonctionnelle
À ce stade, on pourrait dire que j'ai perdu mon temps, d’autant plus que Super Whisper a fini par sortir une version pour PC entre-temps.
Mais la réalité est que j’ai gagné exactement ce que les vidéos "vibe coding" ne vendent pas : de la compréhension, de la méthode, et de nouvelles compétences. J'ai maintenant une application qui marche parfaitement sur ma configuration, avec les fonctionnalités dont j’ai besoin, et surtout, j’ai pris du plaisir à la faire.
J'ai retrouvé l'esprit des débuts de l'informatique, où j'adorais tâtonner, faire, défaire et avancer, comme quand je testais mes disquettes de boot pour gratter quelques ko de RAM. Avec l’IA, je retrouve cet esprit d'exploration et de nouvelles possibilités.