Pourquoi mon transcripteur de réunions gratuit me coûte 75 $/mois, pas 1 365 $
L'arbitrage de coût local vs cloud vs hybride derrière un transcripteur de réunions gratuit et sans inscription, construit en une semaine, plus le mur du mobile que j'ai dû assumer.
Salut !
Je m’appelle Lambert, et je dirige le growth chez Kai.

J’ai donné un transcripteur de réunions gratuitement. Une alternative à Granola qui tourne entièrement dans ton navigateur : tu ouvres un onglet, tu appuies sur enregistrer, et quand tu arrêtes tu obtiens une transcription propre avec un résumé généré par IA et des actions à mener. Pas de connexion, pas de téléchargement, pas d’inscription.
Construit de la manière évidente, sur une API de transcription cloud, le faire tourner m’aurait coûté environ 1 365 $ par mois. La manière dont je l’ai vraiment construit coûte environ 75 $. Le même outil, à peu près 16 fois moins cher, et ton audio ne touche jamais un serveur.
Je l’ai construit en une semaine pendant un hackathon, et je ne suis pas ingénieur. Le plus surprenant, c’est que le code était la partie facile. La vraie semaine s’est jouée sur la décision de coût ci-dessus, et sur les petits détails UX qui rendent un outil gratuit digne d’être utilisé. Voici le décryptage complet, y compris ce qui a cassé.
Cette méthode est pour toi si :
- Tu veux lancer un produit IA mais tu n’écris pas de code pour gagner ta vie.
- Tu tiens au local-first et à la confidentialité, et tu veux le vrai chiffre de ce que ça coûte à faire tourner.
- Tu utilises les outils gratuits comme canal de growth et tu veux la version honnête, y compris ce qui a cassé.
C’est parti.
Partie 1 : La contrainte qui a tout façonné
La première chose que j’ai apprise, c’est ce qu’un navigateur ne peut physiquement pas faire. Sur un Mac, une page web peut enregistrer ton micro, mais elle ne peut pas capter l’audio qui sort d’une application native comme le client de bureau Zoom ou Teams. Le seul son qu’elle obtient de façon fiable, c’est ta propre voix via le micro. Mets un casque, et l’autre côté de l’appel disparaît.
Cette seule limite a façonné tout le produit. Au lieu de lutter contre, je l’ai assumé : ce serait une démo honnête de ce que fait notre application. Deux choses que je pouvais livrer correctement : un modèle qui transcrit ta voix en local, et un LLM qui écrit le même résumé et les mêmes actions à mener que Kai génère dans l’application, avec les mêmes prompts. J’ai donc décidé ce que l’outil ne pouvait pas faire, et je l’ai dit clairement dans le texte. C’est ce choix qui transforme « c’est cassé » en « c’est honnête ».
Partie 2 : Faire tourner Whisper en local, et cacher les 80 Mo
Pour transcrire en local, j’utilise Whisper, exécuté dans le navigateur via Transformers.js de Hugging Face (le modèle est Xenova/whisper-base, servi depuis le Hugging Face Hub). Ça fait environ 80 Mo au premier chargement.
Mon premier réflexe a été de faire tourner le modèle de résumé en local lui aussi, quelque chose comme Llama, pour que rien ne quitte jamais le navigateur. Mais le téléchargement était énorme et lent dans mes premiers tests, et un téléchargement long sur un outil anonyme, c’est une impasse pour la conversion.
Le boulot est donc devenu de le cacher. Et c’est le premier endroit où le travail était moins « écrire du code » que « piloter le modèle » : mes premières versions affichaient une barre brute « chargement 80 Mo », et j’ai redirigé Claude encore et encore jusqu’à ce que le chargement disparaisse derrière le bouton. Maintenant tu cliques sur enregistrer, un court écran s’affiche un instant pendant que le modèle se charge, et tu enregistres en environ une seconde. Tu le charges une seule fois. À moins d’effacer tes données, tu n’attends plus jamais.

À retenir : Cache l’infrastructure à laquelle l’utilisateur n’a jamais demandé à penser. Un téléchargement de modèle, c’est de la tuyauterie, pas une étape qu’il devrait avoir à valider.
Partie 3 : Local vs cloud vs hybride, le vrai coût
Je voulais un outil entièrement local qui ne coûte rien. La réalité en a décidé autrement : pour garder une qualité de résumé élevée, il me fallait un modèle payant pour cette étape. J’ai donc modélisé chaque option et choisi avec de vrais chiffres, pas au feeling.
| Architecture | Transcription · Résumé | $/session | $/mois* | Audio sur l’appareil |
|---|---|---|---|---|
| Tout local | Whisper Base (local) · Llama 3.2 3B (local) | ~$0 | ~$0** | Oui |
| Hybride · le moins cher | Whisper Base (local) · Gemini 2.5 Flash Lite | $0.003 | ~$45 | Oui |
| Hybride · ce que j’ai mis en prod | Whisper Base (local) · Gemini 2.5 Flash | $0.005 | ~$75 | Oui |
| Hybride · premium | Whisper Base (local) · Claude Haiku 4.5 | $0.010 | ~$150 | Oui |
| Hybride · précision max | Whisper Turbo (local) · Claude Sonnet 4.6 | $0.044 | ~$660 | Oui |
| Tout cloud · AssemblyAI | AssemblyAI · Claude Haiku 4.5 | $0.083 | ~$1,245 | Non |
| Tout cloud · OpenAI STT | gpt-4o-mini-transcribe · Gemini 2.5 Flash Lite | $0.091 | ~$1,365 | Non |
* À 500 sessions/jour, session de 30 minutes en moyenne, environ 5-6k tokens en entrée et 1-1,5k en sortie par résumé. Prix en date de juin 2026. ** Le calcul en local est gratuit ; le seul vrai coût du tout local, c’est de livrer le bundle local de 1,78 Go (Whisper Base plus le modèle de résumé Llama), ce qui revient à ~$0 sur un CDN de modèles gratuit comme Hugging Face. Je l’ai écarté pour la taille du téléchargement, pas pour le coût.
La partie chère, c’est la transcription dans le cloud. Au moment où tu envoies de l’audio à une API speech-to-text payante, tu es à bien plus de mille dollars par mois. Fais tourner la transcription sur l’appareil avec Whisper et ce coût tombe à zéro. La logique de confidentialité et la logique de coût se sont révélées être exactement la même décision : garder l’audio sur l’appareil, garder la facture raisonnable.
Pour être précis sur la confidentialité : ton audio ne quitte jamais ton appareil, mais le texte de la transcription, lui, part chez Gemini pour le résumé. C’est le seul aller-retour vers le cloud. Le tout local garde même le texte sur l’appareil, et le tableau montre pourquoi je ne l’ai pas pris.
J’ai mis en prod l’hybride : Whisper en local pour la transcription, Gemini 2.5 Flash (le même modèle qu’utilise l’application Kai) pour le résumé. Environ un demi-centime par session, à peu près 75 $ par mois au volume de lancement, contre 16 fois ça pour du tout cloud.
Une sous-histoire honnête : un endpoint anonyme qui appelle un modèle payant, c’est quelque chose dont les gens vont abuser. Donc une vraie partie de la semaine a été ce travail de protection ingrat : la clé reste côté serveur, verrouillée sur un seul modèle, avec un plafond de dépense quotidien et une limite de débit par IP. Rien de tout ça n’apparaît dans l’interface. L’essentiel de « livrer un outil IA gratuit », c’est exactement ça.
À retenir : Le local-first est souvent l’option la moins chère et la plus respectueuse de la vie privée en même temps. Modélise les alternatives ennuyeuses avant de t’engager. Le gagnant est rarement le choix évident.
Partie 4 : Arrêter de verrouiller, commencer à faire la démo
Assez vite, la vraie question a surgi : comment faire pour que les gens s’y intéressent ? Mon premier plan, c’était le grand classique du growth : cacher la transcription et forcer une inscription ou un email pour la débloquer. Toujours un échange.
J’ai laissé tomber. L’outil est devenu une démo complète et gratuite que tu peux utiliser quand tu veux. Tu peux même t’envoyer les notes par email ou les transmettre à un collègue. On ne stocke rien. La valeur n’est pas dans le fait de garder la transcription en otage. Elle est dans tout ce qui vient après : peaufiner le résultat, transformer une réunion en tâche, construire de vrais documents à partir d’un appel, stocker chaque réunion, et discuter avec un assistant qui a accès à toutes. C’est là que Kai cesse d’être une démo et devient le produit que tu paies.

Envie de voir ? Ouvre un onglet et parle pendant dix secondes : hirekai.ai/tools/meeting-transcription.
À retenir : Pour un outil de haut de funnel, donne la valeur. Convertis sur la profondeur, pas sur un verrou. C’est le même pari que j’ai fait avec mes outils SEO gratuits.
Partie 5 : Pourquoi ça ne marche pas sur mobile
Le mobile a été un vrai combat, et je l’ai perdu. J’ai passé une journée à faire des allers-retours avec Claude là-dessus : le modèle bloquait à 99 %, puis l’onglet mourait quelques secondes après le début de l’enregistrement. Mon premier réflexe a été d’accuser WebGPU, mais Safari sur iOS embarque désormais WebGPU, donc ce n’était pas ça. Le vrai mur, c’est la mémoire. Charger le modèle et faire tourner l’inférence dépasse ce qu’iOS accorde à un seul onglet de navigateur, et l’onglet se fait tuer. J’ai essayé un modèle de repli plus léger. Même mur.
Celui-là pique, parce que tout l’outil est conçu pour le SEO et que le trafic mobile compte ; une page qui ne marche pas sur mobile, c’est un signal d’alerte pour Google. Mais je ne peux pas tricher avec la physique. Sur mobile ça ne marche pas, et si tu le veux sur ton téléphone, tu utilises l’application. Tester sur un vrai appareil, pas sur le simulateur, c’est la seule raison pour laquelle je le sais. Et savoir ce qu’il ne faut pas livrer ici, prétendre « ça marche sur mobile » alors que ça plante, m’a fait économiser plus que ce que la limite honnête a coûté.
Partie 6 : Les petits détails qui font rester les gens
C’est la leçon que j’avais sous-estimée. Après beaucoup de retours, j’ai trouvé l’endroit où une bonne expérience vire à l’aigre sans bruit : tu rafraîchis la page et tu perds tout. J’ai donc ajouté un stockage local pour ta dernière réunion. Rafraîchis, perds la connexion, ou reviens trois jours plus tard, et c’est toujours là.
Il y a toute une série de petites attentions comme celle-là. Une animation de chargement pendant que le résumé s’écrit, pour que l’attente paraisse vivante. La petite bannière qui ramène ta dernière réunion. Aucune de ces choses n’est une fonctionnalité que tu mettrais sur une landing page. Mais c’est pour ça que les gens restent plus longtemps sur la page. Et pour quelqu’un du growth, ça compte doublement : le temps passé sur la page est un signal que Google récompense, et il indique à quiconque atterrit là que le vrai produit est construit avec soin. C’est le même instinct que derrière mon playbook de sites AI-native.

À retenir : Les détails UX ne sont pas du peaufinage qu’on fait plus tard. Pour un outil gratuit, ils sont la conversion.
Partie 7 : Ce que j’ai vraiment appris
Voici ce qui m’a surpris. Le MVP a été la partie peu chère. J’ai livré ça en une semaine sans être ingénieur, et la construction elle-même a rarement été le goulot d’étranglement.
Ce qui a mangé le temps, ce sont les deux choses que tu ne peux pas confier au modèle : bien le piloter quand il part de travers (le crash mobile plus haut m’a coûté une journée entière), et avoir le goût de savoir quels détails UX comptent vraiment. Il y a quelques années, l’artisanat, c’était construire le MVP. Aujourd’hui le MVP est presque gratuit, et l’artisanat s’est déplacé : vers le pilotage de l’IA, et vers l’expérience autour. C’est ça la vraie compétence maintenant, et ce n’est pas celle que je m’attendais à utiliser.

Le système
Si je distillais la semaine en étapes :
- Trouve la contrainte dure en premier, et conçois autour plutôt que de lutter contre
- Choisis le local-first quand tu le peux. C’est généralement le moins cher et le plus respectueux de la vie privée à la fois
- Cache l’infrastructure (téléchargements, chargements de modèles) que l’utilisateur n’a jamais demandée
- Pose un vrai plafond de dépense sur tout endpoint anonyme qui coûte de l’argent
- Donne la valeur gratuitement. Convertis sur la profondeur, pas sur un verrou
- Sois honnête sur ce qui ne marche pas. Ça coûte moins cher que de faire semblant
- Soigne les petits détails UX. Ils sont la conversion et le signal SEO
- Consacre ton vrai temps aux deux choses que le modèle ne peut pas faire à ta place : le piloter, et l’expérience
À propos de Kai
Kai est un assistant IA qui fait des choses pour les gens, construit par l’équipe derrière Morgen. Les outils gratuits comme celui-ci font partie de notre façon de penser le growth. L’extension Chrome qui l’accompagne, qui capture tout l’audio d’un onglet, est un projet à part.
Suis l’aventure :
Merci de ta lecture
Ce n’est pas de la théorie. C’est une semaine documentée à construire un vrai outil, y compris les parties qui ont cassé. Si ça t’a été utile, partage-le avec quelqu’un qui s’apprête à construire son premier outil IA, ou écris-moi sur LinkedIn.