4 points par GN⁺ 24 일 전 | 1 commentaires | Partager sur WhatsApp
  • 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

    1. Télécharger GhostPepper.dmg
    2. Ouvrir le DMG puis faire glisser dans le dossier Applications
    3. Autoriser les permissions Microphone et Accessibilité
    4. Commencer à l’utiliser en maintenant la touche Control et en parlant
  • Compilation depuis les sources

    1. Cloner le dépôt
    2. Ouvrir GhostPepper.xcodeproj dans Xcode
    3. 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)

1 commentaires

 
GN⁺ 24 일 전
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

    • C’est le même modèle que celui utilisé par l’API Web Speech. Il fonctionne entièrement hors ligne
      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
    • Microsoft OneNote avait déjà une fonctionnalité similaire vers 2007.
      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
    • La précision est bien plus faible.
      Sur Android j’utilise Futo, et sur macOS MacWhisper. C’est largement meilleur que le modèle Apple par défaut
    • macOS et iOS savent déjà le faire avec la fonction de dictée intégrée. Sur Mac, c’est touche Globe + D
    • Mon Pixel 7, au contraire, a un taux de reconnaissance tellement faible que je ne l’utilise presque jamais.
      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’ai listé toutes les apps que j’ai créées ici.
      J’y ai ajouté Ghost Pepper récemment, et on peut aussi créer un skill.md avec les fonctions voulues pour construire sa propre app
    • Même sur le subreddit /r/macapps, il y a énormément d’apps de whisper dictation.
      Dans une catégorie saturée, il faut expliquer clairement ce qui différencie une app des autres
      Post lié
    • J’en ai aussi développé une moi-même, puis plus tard j’ai vu KeyVox et j’ai fini par discuter avec son créateur.
      KeyVox GitHub
    • Moi, je l’ai fait sur nixOS en ajoutant un indicateur à Noctalia.
      Les performances sont presque au niveau de Wispr Flow, et ça tourne entièrement en local
    • Dans le plus pur style Apple, j’imagine que ça finira en fonctionnalité native vers macOS 27 ou 28
  • 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

    • Je me demande comment ça se compare à Handy.
      J’aimerais aussi savoir pourquoi tu as préféré repartir de zéro plutôt que d’améliorer un projet existant
    • Moi, j’auto-héberge Whisper large-v3 sur un M2 Max.
      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
    • J’utilise Hyprwhspr tous les jours dans Omarchy. C’est vraiment excellent
    • J’étais justement en train de vouloir faire quelque chose de similaire, donc grâce à toi je n’ai plus besoin de le faire.
      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 suis curieux de savoir comment tu utilises la dictée pour le développement.
      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à ?

    • Il y a quand même quelques points faibles.
      1. Sur Linux, on peut facilement bricoler un système similaire avec un compte FTP, curlftpfs et SVN/CVS
      2. Ça ne remplace pas complètement une clé USB. Pour les présentations hors ligne, je continue à en transporter une
      3. Le modèle économique n’est pas clair. Je me demande si c’est viable de proposer ça gratuitement tout en monétisant
    • Handy est un outil vraiment bien conçu
    • Il peut très bien exister plusieurs solutions à un même problème
    • Oui, le speech-to-text existe déjà
    • Pour mon usage, c’est exactement ce qu’il me faut. Pas besoin de toucher à l’interface des autres apps
  • Merci 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

    • Oui, au final j’ai l’impression que tout va finir par ressembler à ClaudeVM
      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

    • Whisper reste un modèle stable et fiable.
      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
    • Moi aussi j’hésite à passer à Parakeet.
      Mais j’utilise beaucoup le polonais et du vocabulaire spécialisé, donc Whisper v3 me convient mieux
    • Whisper prend en charge de nombreuses langues, avec plusieurs versions allant de tiny à turbo.
      Son point fort, c’est donc de pouvoir être ajusté à l’environnement système
    • Moi aussi, sur macOS, j’utilise Parakeet avec Voice Ink, et à la maison je fais tourner Kokoro pour le voice-to-text.
      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é