Dossier
SMF·WISPR-FLOW
Reçu le
17.08.2026
Instruit le
28.09.2026
Pièces annexées
3
Questions
4

SMF·WISPR-FLOW

Un prompt peut-il remplacer Wispr Flow ?

Dictée vocale — cross-platform dictation and meeting notes

Presque Verdict enregistré le 28.09.2026 · Vérifié le 17.08.2026
Prix
15 $US/moisSource: wisprflow.ai · Vérifié le 17 août 2026
Par an
180 $US
Temps de fabrication
Un week-end
Catégorie
Dictée vocale
Votes
0 vote
OuiPresque (coché)Pas encore

Bordereau de suivi des pièces

Pièce A Le prompt
Pièce B Ce que tu perds
Pièce C Pourquoi certains continuent de payer : cross-platform reach
Pièce Q Questions

Verdict

Coupez le produit en deux et le verdict s'écrit tout seul. La boucle de dictée sur ordinateur — maintenir une touche, transcrire en local, coller dans l'app active — est un chantier propre et bien délimité, et le modèle local n'est pas le goulot : sur Apple Silicon, `large-v3-turbo` transcrit 7,25 secondes de parole en 0,13 seconde, soit environ 55 fois le temps réel. Ce qu'on ne reconstruit pas en un week-end, c'est l'autre moitié de ce qu'on paie : la dictée sur iPhone et Android, le support Windows, et les notes de réunion avec identification des locuteurs. D'où le kinda, là où Superwhisper, limité à l'ordinateur, est un yes.

Pièce B — Ce que tu perds

Pièce A — Le prompt

Reçu le17.08.2026
Construis une app de dictée push-to-talk pour macOS sur Apple Silicon. Maintenir la touche Commande droite enregistre le micro ; la relâcher transcrit en local et colle le texte dans le champ qui a le focus. Livre-la en app agent (LSUIElement) lancée par un LaunchAgent, avec un petit indicateur collé au bord droit de l'écran montrant repos / écoute / transcription / erreur.

Fais tourner la transcription avec mlx-whisper (large-v3-turbo) dans un process Python enfant qui garde le modèle en mémoire et parle un protocole ligne sur stdin/stdout : un chemin WAV en entrée, une ligne JSON en sortie. Ne recharge pas le modèle à chaque dictée.

Six choses casseront si tu ne les traites pas explicitement :

1. Crée le CGEventTap en `.listenOnly`. Tout autre mode consomme les événements, et Commande droite + C ne copie plus rien. Détecte la Commande droite par le bit 0x10 dépendant du périphérique, pas par le keyCode, et réarme le tap sur `tapDisabledByTimeout`, sinon macOS le tuera silencieusement au bout de quelques jours.

2. Démarre l'enregistrement à l'appui, avant la garde de ~250 ms qui filtre les appuis accidentels, sinon le premier mot de chaque phrase est perdu. N'ouvre l'indicateur visuel qu'après la garde, pour qu'un raccourci Commande droite normal ne le fasse pas clignoter.

3. `AVAudioEngine.prepare()` sur un moteur dont aucun nœud n'a été touché lève une exception Objective-C que Swift ne peut pas rattraper avec `try` : le process meurt. Accède d'abord à `inputNode` pour l'attacher au graphe.

4. mlx-whisper décode les fichiers en appelant ffmpeg en sous-process, absent du PATH minimal d'un LaunchAgent. Lis le WAV toi-même en Python et passe un tableau numpy float32 à `transcribe()`.

5. macOS lie les autorisations TCC à `identifier + certificat`, jamais au hash du binaire. Signe avec un certificat de signature de code auto-signé, sinon micro, accessibilité et surveillance des entrées se réinitialisent à chaque recompilation. Note que `security find-identity -v` masque les certificats auto-signés comme non approuvés : c'est normal, et codesign les accepte.

6. Whisper hallucine des formules de fin de vidéo sur le silence. La seule parade fiable est de ne pas l'appeler : mesure le signal au-dessus de -45 dBFS par fenêtres de 20 ms et annule la dictée sous 400 ms de parole. Ajoute une liste noire normalisée pour ce qui passe quand même.

Si tu rends l'indicateur cliquable, il doit être un NSPanel non activant dimensionné à sa propre forme, sinon il vole le focus et le collage synthétique n'a plus de destination.

Demande micro, accessibilité et surveillance des entrées au démarrage, jamais en pleine dictée, et garde l'app en vie pendant l'attente au lieu de sortir : sinon un LaunchAgent la relancera en boucle. Stocke les transcriptions en JSON Lines ; ne stocke jamais l'audio.

L’ouverture pré-remplit le prompt — il ne reste qu’à appuyer sur entrée.

Pièce B — Ce que tu perds

  • B.1 la dictée sur iPhone et Android
  • B.2 le support Windows (une version locale vise un seul OS à la fois)
  • B.3 les notes de réunion avec identification des locuteurs
  • B.4 l'adaptation du ton selon l'application
  • B.5 le support quand une mise à jour de macOS casse le tap clavier

Alternatives existantes

Pièce C — Pourquoi certains continuent de payer : cross-platform reach

Parce que ça les suit sur tous leurs appareils, et parce que le palier gratuit couvre déjà 2 000 dictées par semaine sur ordinateur — assez pour que la plupart ne touchent jamais le mur payant. L'abonnement achète le mobile et les réunions, pas la transcription.

Questions

Je pourrai continuer à dicter sur mon téléphone ?

Non, et c'est la vraie raison pour laquelle ce n'est pas un yes. Les apps iPhone et Android de Wispr Flow sont la moitié de ce que l'abonnement achète. Une version locale est un utilitaire de bureau, lié à des raccourcis système et au presse-papier, deux notions qui n'existent pas sur mobile. Si vous dictez en déplacement, continuez à payer.

Le palier gratuit me donne 2 000 dictées par semaine. Pourquoi construire quoi que ce soit ?

Pour la plupart des gens, ne construisez rien : le palier gratuit couvre vraiment un usage normal. Construisez si votre audio ne doit pas quitter la machine (appels clients, notes médicales ou juridiques, tout ce qui est sous NDA), ou si vous voulez un vocabulaire réglé sur votre jargon plutôt qu'un modèle généraliste.

Wispr Flow paraît instantané. Un modèle local le sera ?

Oui, et c'est mesurable. Sur un M5 Max avec le modèle résident en RAM, mlx-whisper large-v3-turbo rend 7,25 secondes de parole en 0,13 seconde, soit environ 55 fois le temps réel, pour à peu près 250 Mo de RAM. Vous attendez votre propre phrase, pas la transcription.

Qu'est-ce qui coûte réellement du temps dans ce chantier ?

Pas l'IA. Sur un build mené de bout en bout, zéro bug venait du modèle et tous venaient de macOS : un tap clavier qui avale les raccourcis, une API audio qui lève une exception non rattrapable, ffmpeg absent du PATH d'un LaunchAgent, et des autorisations qui se réinitialisent à chaque recompilation faute d'un certificat stable. Le prompt ci-dessus les encode toutes.

Récépissé

Tu l’as déjà reconstruit toi-même ?