Ghost Pepper – application locale de conversion voix-texte pour macOS
(github.com/matthartman)- Application de reconnaissance vocale locale sur macOS qui convertit automatiquement la parole en texte puis la colle quand on maintient la touche Control en parlant
- Toute la reconnaissance vocale et le nettoyage du texte sont effectués uniquement en local, garantissant la protection de la vie privée sans envoi vers le cloud
- Basée sur WhisperKit et LLM.swift, avec téléchargement automatique et mise en cache de modèles Hugging Face
- Une fonction de nettoyage intelligent supprime les hésitations inutiles et corrige les auto-corrections verbales, le tout dans une application de barre de menus fonctionnant en arrière-plan
- Disponible en open source sous licence MIT et compatible avec Apple Silicon sous macOS 14 ou plus
Présentation
- Ghost Pepper est une application de conversion voix-texte 100 % locale pour macOS, qui permet de maintenir la touche Control, parler, puis relâcher pour convertir automatiquement en texte et le coller
- Aucune API cloud n'est utilisée, et toutes les données ainsi que les modèles sont traités uniquement en local
- Fonctionne sur macOS 14.0 ou plus avec Apple Silicon (M1 ou plus récent)
- S’exécute sous la forme d’une application de barre de menus, avec lancement automatique possible à la connexion
- Projet open source publié sous licence MIT
Fonctionnalités principales
- Maintenir la touche Control et parler → en relâchant la touche, conversion en texte et collage automatiques
- Architecture d’exécution locale : la reconnaissance vocale et le modèle de post-traitement fonctionnent entièrement sur le Mac
- Fonction de nettoyage intelligent supprimant les hésitations inutiles (
uh,um, etc.) et corrigeant automatiquement les reformulations - Interface exclusivement en barre de menus, qui fonctionne en arrière-plan sans icône dans le Dock
- Prise en charge des réglages utilisateur : modification du prompt de nettoyage, sélection du micro, activation/désactivation des fonctions
Fonctionnement
- Tous les modèles sont basés sur de l’open source et sont automatiquement téléchargés au premier lancement, puis stockés dans le cache local
- La reconnaissance vocale est assurée par WhisperKit, le nettoyage du texte par LLM.swift
- Les fichiers de modèles sont fournis via Hugging Face
-
Modèles de reconnaissance vocale
- Whisper tiny.en (~75MB) : modèle anglais uniquement le plus rapide
- Whisper small.en (~466MB) : valeur par défaut, modèle anglais uniquement à haute précision
- Whisper small (multilingual) : prise en charge multilingue
- Parakeet v3 (~1.4GB) : prise en charge de 25 langues, basé sur FluidAudio
-
Modèles de nettoyage du texte
- Qwen 3.5 0.8B (~535MB) : valeur par défaut, traitement en environ 1 à 2 secondes
- Qwen 3.5 2B (~1.3GB) : vitesse de traitement rapide (environ 4 à 5 secondes)
- Qwen 3.5 4B (~2.8GB) : meilleure qualité (environ 5 à 7 secondes)
Installation et exécution
-
Installation de l’application
- Télécharger GhostPepper.dmg
- Ouvrir le DMG puis faire glisser dans le dossier Applications
- Autoriser les permissions Microphone et Accessibilité
- Commencer à l’utiliser en maintenant la touche Control et en parlant
-
Compilation depuis les sources
- Cloner le dépôt
- Ouvrir
GhostPepper.xcodeprojdans Xcode - Compiler et lancer avec Cmd+R
Permissions requises
| Permission | Objectif |
|---|---|
| Microphone | Enregistrement vocal |
| Accessibility | Raccourci global et collage automatique |
Informations supplémentaires
- Le lancement automatique à la connexion est activé par défaut et peut être désactivé dans les réglages
- Aucun log n’est enregistré sur le disque — le texte converti n’est pas écrit dans un fichier, et les logs de débogage sont conservés uniquement en mémoire puis supprimés à la fermeture de l’application
Stack technique et dépendances
- WhisperKit : moteur de reconnaissance vocale
- LLM.swift : LLM local pour le nettoyage du texte
- Hugging Face : hébergement des modèles
- Sparkle : gestion des mises à jour de l’application macOS
Signification du nom
- Tous les modèles s’exécutent uniquement en local, de sorte qu’aucune donnée personnelle n’est envoyée à l’extérieur
- Le nom Ghost Pepper (piment très fort) symbolise des fonctionnalités puissantes proposées gratuitement
Prise en charge des entreprises et des appareils gérés
- L’application nécessite la permission Accessibilité, ce qui demande généralement des droits administrateur
- Dans les environnements MDM (Jamf, Kandji, Mosaic, etc.), une pré-autorisation est possible via un profil PPPC (Privacy Preferences Policy Control)
- Bundle ID :
com.github.matthartman.ghostpepper - Team ID :
BBVMGXR9AY - Permission : Accessibility (
com.apple.security.accessibility)
- Bundle ID :
1 commentaires
Réactions sur Hacker News
Cette app est vraiment géniale. Mais à chaque fois que je la vois, je pense à mon Pixel 6
C’est un modèle de 2021, pourtant il convertit déjà la voix en texte hors ligne et corrige automatiquement selon le contexte. Il va même jusqu’à réviser le début de la phrase si je continue à parler.
C’est impressionnant que Google ait intégré ce genre de technologie avec 5 ans d’avance sur Whisper ou Qwen. Du coup je me demande pourquoi, aujourd’hui, il faut un modèle transformer de 1 Go sur des plateformes plus puissantes
Google a financé l’entraînement de ce modèle il y a environ 10 ans, et il reste très bon aujourd’hui.
Comme il est intégré aux navigateurs basés sur Webkit ou Blink, plusieurs sites web s’en servent comme simple frontend.
Mais le modèle lui-même reste un blob propriétaire, donc Firefox ne le prend pas en charge
Documentation MDN / Démo Chrome
J’étais dans l’équipe à l’époque, et comme il n’y avait personne pour assurer la maintenance, on a abandonné le modèle hors ligne pour passer à une solution 100 % en ligne.
Ce n’était pas pour une raison technique, mais simplement par manque de ressources de maintenance
Sur Android j’utilise Futo, et sur macOS MacWhisper. C’est largement meilleur que le modèle Apple par défaut
En revanche, des modèles STT locaux open source comme Whisper ou Parakeet sont bien plus puissants.
Ils tiennent mieux face au bruit de fond ou à une voix marmonnée.
Je travaille dans la Voice AI, donc j’utilise ce type de modèles tous les jours, et la différence est vraiment nette
L’app est vraiment bien faite. Si je peux donner un retour :
d’abord, il faut absolument une fonction pour coller automatiquement depuis le presse-papiers. Ce serait bien de ne pas avoir à appuyer sur un raccourci, ou au moins de pouvoir le configurer
ensuite, c’est un peu plus lent que d’autres solutions. Et ça, ça joue beaucoup sur l’expérience d’usage
enfin, ce serait bien d’avoir un contrôle sur le formatage. Par exemple, si on dit “new line”, ce serait bien que ce soit interprété comme un vrai saut de ligne
Ce fil ressemble à un groupe de soutien pour tous ceux qui ont créé leur app de voix→texte sur macOS
J’y ai ajouté Ghost Pepper récemment, et on peut aussi créer un
skill.mdavec les fonctions voulues pour construire sa propre appDans une catégorie saturée, il faut expliquer clairement ce qui différencie une app des autres
Post lié
KeyVox GitHub
Les performances sont presque au niveau de Wispr Flow, et ça tourne entièrement en local
En tant qu’utilisateur Linux, j’ai développé Hyprwhspr
Avec le dernier modèle Cohere Transcribe sur GPU, les performances sont excellentes.
Je me demande si quelqu’un a comparé WhisperKit à faster-whisper ou turbov3.
J’ai bon espoir qu’Apple sorte bientôt un STT natif
J’aimerais aussi savoir pourquoi tu as préféré repartir de zéro plutôt que d’améliorer un projet existant
La précision me suffit, donc je n’ai pas eu besoin de modèle de nettoyage.
En revanche, sur des audios longs de plus de 30 secondes, on sent de la latence. Je me demande comment WhisperKit gère les longs fichiers audio
Tu as déjà envisagé une fonction PTT au pied (Push-To-Talk) ?
Apple a déjà du STT, mais la qualité du modèle laisse encore à désirer
Le speech-to-text est au cœur de mon flux de développement.
C’est particulièrement utile pour dicter des prompts à des LLM ou à des agents de code.
J’ai répertorié les meilleurs outils open source de saisie vocale selon les plateformes dans ce dépôt GitHub
Je tape à 120 mots par minute, donc c’est beaucoup plus rapide que parler.
En dehors de l’accessibilité, je me demande sincèrement si c’est pour les personnes qui tapent lentement ou pour coder allongé sur le canapé
Est-ce qu’une app comme Handy n’existe pas déjà ?
curlftpfset SVN/CVSMerci du partage. J’aime bien l’accent mis sur la vitesse locale et la confidentialité
J’utilise Hex, qui vise un objectif similaire, et je serais curieux d’avoir ton avis sur les différences entre les deux apps
En ce moment, plus les LLM local-first rapetissent, plus j’ai l’impression qu’ils vont devenir une infrastructure clé du développement d’apps
Un peu comme Electron à l’époque a permis de créer facilement de belles apps, sauf qu’ici il suffit de sacrifier un peu de RAM
Billet lié
Il y a énormément de projets autour de Whisper, et je me demande s’il s’agit de l’ancien modèle d’OpenAI ou d’une version mise à jour
Moi, j’utilise Parakeet v3, qui est petit et excellent. Donc je me demande pourquoi Whisper reste encore aussi présent
Il hallucine moins que des modèles plus récents, et il tourne facilement sur des GPU AMD.
J’ai essayé de porter Parakeet moi-même, mais au final je suis revenu à Whisper
Mais j’utilise beaucoup le polonais et du vocabulaire spécialisé, donc Whisper v3 me convient mieux
Son point fort, c’est donc de pouvoir être ajusté à l’environnement système
J’ai aussi relié un serveur Parakeet à un téléphone GrapheneOS
Post lié
J’aime beaucoup le projet et j’aimerais l’intégrer à mon workflow.
En revanche, la formule “gratuit tout en se comparant à un grand labo IA financé à hauteur de 80 M$” me dérange un peu.
Ce n’est pas tant un geste rebelle qu’un travail qui s’inscrit déjà dans le prolongement de recherches existantes.
Le côté “spicy” me paraît un peu exagéré