Documentation

Tout pour installer, configurer et maîtriser Sonora — en quelques minutes.

Présentation

Sonora est une barre flottante de dictée vocale pour macOS, Windows et Linux. Vous appuyez sur un raccourci, vous parlez, et le texte transcrit est tapé directement à l'endroit de votre curseur (ou copié au presse-papier).

Sonora ne transcrit pas lui-même : il s'appuie sur le moteur de votre choix. Selon vos priorités (vitesse, qualité, confidentialité, coût), branchez Gemini, Mistral, OpenAI, Groq, n'importe quel service compatible OpenAI, ou un modèle Whisper 100 % local qui fonctionne sans connexion.

En bref : installez → choisissez un moteur + collez une clé → appuyez sur le raccourci et dictez.
La barre Sonora en thème clair pendant une dictée
Sonora s'adapte automatiquement au thème clair ou sombre du système.

Installation

Récupérez la dernière version sur la page GitHub Releases, puis suivez la procédure pour votre système.

🍎 macOS (Apple Silicon & Intel)

  1. Téléchargez le .dmg : …_aarch64.dmg (Apple Silicon) ou …_x64.dmg (Intel).
  2. Ouvrez le .dmg et glissez Sonora dans Applications.
  3. Au premier lancement, macOS peut afficher « développeur non identifié » (l'app n'est pas encore signée par Apple). Faites un clic droit → Ouvrir, puis confirmez.
  4. Autorisez l'accès au micro (et à l'Accessibilité pour le collage au curseur) quand macOS le demande.
Si le clic droit ne suffit pas, vous pouvez lever la mise en quarantaine :
xattr -dr com.apple.quarantine /Applications/Sonora.app
Permissions macOS — la dictée demande l'accès au micro au premier enregistrement. Pour « Coller au curseur » (saisie automatique du texte), macOS exige en plus l'Accessibilité : Réglages Système → Confidentialité et sécurité → Accessibilité, puis activez Sonora (macOS ne le propose pas toujours automatiquement — ajoutez l'app manuellement si besoin).

🪟 Windows

  1. Téléchargez l'installeur Sonora_x.y.z_x64-setup.exe (ou le .msi).
  2. Lancez-le. SmartScreen peut prévenir d'un éditeur inconnu : Informations complémentaires → Exécuter quand même.
  3. Suivez l'assistant, puis lancez Sonora depuis le menu Démarrer.
Micro Windows — si la dictée ne capte rien, activez Paramètres → Confidentialité et sécurité → Microphone → « Autoriser les applications de bureau à accéder à votre micro ».

🐧 Linux

AppImage (universel) :

chmod +x Sonora_x.y.z_amd64.AppImage
./Sonora_x.y.z_amd64.AppImage

Debian / Ubuntu (.deb) :

sudo apt install ./Sonora_x.y.z_amd64.deb

NixOS — package natif via le flake (recommandé sur NixOS plutôt que l'AppImage) :

nix run github:Devitek/sonora      # lance directement
nix profile install github:Devitek/sonora   # installe (entrée de menu + icône)
Pour taper le texte au curseur sous Linux, Sonora utilise wtype (Wayland) ou xdotool (X11). Installez celui qui correspond à votre session :
# Wayland
sudo apt install wtype
# X11
sudo apt install xdotool
Sous Hyprland, voyez la section Linux & Hyprland.

Premier lancement

Au démarrage, Sonora affiche un court onboarding puis sa barre flottante. Une icône apparaît aussi dans la zone de notification (tray) pour afficher/masquer la barre et quitter l'application.

  1. Ouvrez les Réglages (icône ⚙ de la barre, ou l'onglet Réglages de la fenêtre).
  2. Choisissez un fournisseur de transcription.
  3. Collez la clé API correspondante (voir ci-dessous).
  4. Fermez les réglages, appuyez sur le bouton micro (ou le raccourci) et dictez une phrase.

Choisir un moteur

Chaque moteur a ses forces. Voici comment choisir :

  • Gemini Live — la seule option streaming : le texte s'écrit mot à mot pendant que vous parlez. Idéal pour la dictée longue et fluide.
  • Mistral (Voxtral) — transcription européenne de qualité, par segment.
  • OpenAI Whisper — la référence Whisper, par segment.
  • Groq Whisper — Whisper large-v3 hébergé sur Groq : très rapide.
  • OpenAI-compatible — pointez vers n'importe quel endpoint compatible (serveur local, autre fournisseur…) via une URL de base.
  • Whisper local — 100 % hors-ligne, aucune clé, aucune donnée n'est envoyée. Voir la section dédiée.
Vous pouvez utiliser un moteur pour la transcription et un autre pour la reformulation (nettoyage / prompts). Par exemple : Whisper local pour la voix, Gemini pour la mise en forme.

Obtenir une clé API

Créez une clé chez le fournisseur choisi, puis collez-la dans Réglages. Elle est stockée dans le trousseau de votre OS.

Gemini : utilisez une clé Google AI Studio (elle commence par AIza…). Une clé éphémère commençant par AQ. n'est pas une clé d'API valide pour Sonora — l'app vous avertira si vous en collez une.

Tous les réglages

Panneau Réglages de Sonora
L'onglet Réglages de la fenêtre : fournisseur, clé API, modèle, langue et options de nettoyage.

On y trouve :

  • Microphone — la source audio utilisée pour la dictée. « Système » suit le micro par défaut de l'OS ; sinon choisissez un périphérique précis. Le bouton ↻ rafraîchit la liste (utile après avoir branché un micro USB). Un périphérique débranché bascule automatiquement sur le micro par défaut.
  • Fournisseur — le moteur de transcription.
  • Clé API — stockée au trousseau (voir Confidentialité).
  • Modèle (optionnel) — pour surcharger le modèle par défaut.
  • Langue (optionnel) — un indice de langue (ex. fr) pour les moteurs Whisper.
  • URL de base (optionnel) — pour les endpoints OpenAI-compatible.
  • Chemin du modèle ggml — pour Whisper local.
  • Nettoyage automatique — active la passe de reformulation, avec son propre moteur, modèle et prompts.

Valeurs par défaut utiles (surchargées seulement si vous renseignez un champ) :

FournisseurModèle par défautURL de base
Gemini Livegemini-2.5-flash-native-audio-latest
Mistralvoxtral-mini-latesthttps://api.mistral.ai/v1
OpenAIWhisperhttps://api.openai.com/v1
Groqwhisper-large-v3https://api.groq.com/openai/v1
Nettoyage (Gemini)gemini-2.5-flash
Nettoyage (OpenAI)gpt-4o-minihttps://api.openai.com/v1

Whisper local (hors-ligne)

Le moteur Whisper local transcrit sur votre machine, sans aucune connexion ni clé. Il a besoin d'un fichier de modèle ggml.

  1. Téléchargez un modèle ggml depuis huggingface.co/ggerganov/whisper.cpp. Par exemple ggml-base.bin (léger) ou ggml-large-v3.bin (plus précis, plus lourd).
  2. Dans Réglages, choisissez Whisper local.
  3. Renseignez le chemin du modèle ggml vers le fichier téléchargé.
Astuce : un modèle plus grand améliore la qualité mais consomme plus de mémoire et de CPU. Commencez par base ou small, montez en gamme si besoin.

Dicter au quotidien

  1. Placez votre curseur là où le texte doit apparaître (éditeur, champ, chat…).
  2. Déclenchez la dictée : bouton micro de la barre, ou le raccourci global.
  3. Parlez. La waveform suit votre voix ; avec Gemini Live, le texte s'écrit en direct.
  4. Arrêtez : le texte est tapé au curseur ou copié au presse-papier.
Le raccourci global permet de démarrer/arrêter sans quitter votre application. Sous Linux, configurez-le via votre compositeur (voir Linux & Hyprland).

Nettoyage & reformulation

Activez le nettoyage automatique pour qu'un LLM retire les hésitations (« euh »), faux départs et répétitions après chaque dictée.

Allez plus loin avec des prompts de reformulation personnalisés : définissez vos propres transformations et appliquez-les à une dictée d'un clic. Quelques idées :

  • « Reformuler de manière formelle / professionnelle »
  • « Convertir en commande terminal »
  • « Corriger l'orthographe et la grammaire seulement »
  • « Résumer en une phrase »

Choisissez le moteur de reformulation (Gemini, Mistral, Groq, OpenAI ou OpenAI-compatible) indépendamment du moteur de transcription.

Historique

Sonora conserve vos dictées récentes. Ouvrez l'historique (icône horloge de la barre) pour relire une session passée et la recopier au presse-papier en un clic.

L'onglet Historique de Sonora avec des dictées récentes
L'onglet Historique : vos dictées récentes, copiables ou supprimables.

Linux & Hyprland

Sonora est une fenêtre transparente, sans décorations, sans focus. Sous un compositeur tuilant comme Hyprland, faites-la flotter et bindez le raccourci global. Syntaxe pour les versions récentes de Hyprland (sélecteur match:) :

windowrule = float on,            match:title ^(Sonora)$
windowrule = move (monitor_w/2)-240 40, match:title ^(Sonora)$
windowrule = border_size 0,       match:title ^(Sonora)$
windowrule = no_shadow on,        match:title ^(Sonora)$
windowrule = rounding 0,          match:title ^(Sonora)$
windowrule = no_blur on,          match:title ^(Sonora)$
windowrule = pin on,              match:title ^(Sonora)$
windowrule = no_initial_focus on, match:title ^(Sonora)$

# Push-to-talk : lance une 2ᵉ instance qui transmet l'action à celle en cours
bind = SUPER, V, exec, sonora toggle
Le raccourci lance une seconde instance de sonora qui transmet l'action (toggle, start, stop, show) à l'instance déjà ouverte (mécanisme « single-instance »).

Confidentialité & sécurité

  • Clés au trousseau — vos clés API sont stockées dans le keyring de l'OS (repli vers un fichier local en permissions 0600), jamais en clair côté interface.
  • Vous choisissez où vont vos données — avec un moteur cloud, l'audio est envoyé au fournisseur sélectionné. Avec Whisper local, rien ne quitte votre machine.
  • Open source — le code est public et auditable sous licence MIT.
Ce projet est intégralement construit avec une IA. C'est une démonstration assumée — relisez ce qui touche à la sécurité avant un usage sensible.

Dépannage

Le texte n'est pas tapé au curseur (Linux)

Installez wtype (Wayland) ou xdotool (X11). À défaut, Sonora bascule sur le presse-papier — collez avec Ctrl+V.

« Clé API invalide » ou aucune transcription

Vérifiez le fournisseur sélectionné et la clé associée. Pour Gemini, la clé doit commencer par AIza (et non AQ.). Vérifiez aussi votre quota chez le fournisseur.

Pas de son / la waveform ne bouge pas

Autorisez l'accès au micro : macOSRéglages Système → Confidentialité et sécurité → Microphone ; WindowsParamètres → Confidentialité et sécurité → Microphone → « Autoriser les applications de bureau… ». Vérifiez aussi le bon périphérique d'entrée au niveau de l'OS.

« Coller au curseur » ne tape rien sur macOS

La saisie automatique au curseur synthétise des frappes clavier, ce qui exige la permission Accessibilité : Réglages Système → Confidentialité et sécurité → Accessibilité, puis activez Sonora. macOS ne propose pas toujours la pop‑up — ajoutez l'app manuellement et relancez‑la.

macOS : « développeur non identifié »

Faites un clic droit → Ouvrir sur l'app, ou levez la quarantaine : xattr -dr com.apple.quarantine /Applications/Sonora.app.

L'interface paraît floue ou décalée (Wayland)

Sonora force XWayland pour contourner un bug de mise à l'échelle fractionnaire de WebKitGTK. Si l'affichage reste anormal sous un scale fractionnaire (ex. 1.33), essayez un scale entier sur l'écran concerné.

Plantage au lancement sous Linux : EGL_BAD_PARAMETER

Si l'app s'arrête aussitôt avec Could not create default EGL display: EGL_BAD_PARAMETER. Aborting… (fréquent en VM, sous NixOS, ou sur GPU Intel Arc/Xe récents), c'est le renderer DMABUF de WebKitGTK. Sonora le désactive automatiquement depuis la v0.2.4. Sur une version antérieure, lancez avec :

WEBKIT_DISABLE_DMABUF_RENDERER=1 ./Sonora_x.y.z_amd64.AppImage
NixOS : l'AppImage est délicate (système de fichiers non‑FHS, appimage-run via bubblewrap, pilotes Mesa dans /nix/store). Le plus simple et fiable est le package Nix natifnix run github:Devitek/sonora — qui utilise le WebKitGTK et les pilotes du système (voir aussi Compiler depuis les sources). Si tu tiens à l'AppImage, le combo complet (compositing GPU désactivé, sandbox WebKit désactivée) est :
nix-shell -p appimage-run --run \
  "WEBKIT_DISABLE_DMABUF_RENDERER=1 \
   WEBKIT_DISABLE_COMPOSITING_MODE=1 \
   WEBKIT_DISABLE_SANDBOX_THIS_IS_DANGEROUS=1 \
   appimage-run ./Sonora_x.y.z_amd64.AppImage"

Le clic droit / la clé est perdue après mise à jour

Les réglages sont liés à l'identifiant d'application. Après une mise à jour majeure changeant cet identifiant, ressaisissez votre clé une fois.

Compiler depuis les sources

Prérequis : Rust (stable), Bun, et les dépendances système Tauri (WebKitGTK, etc.).

git clone https://github.com/Devitek/sonora.git
cd sonora
bun install
bun run tauri dev      # développement
bun run tauri build    # build de production

NixOS / Nix — le flake expose un package natif, la façon recommandée sur NixOS (plutôt que l'AppImage, qui se heurte aux pilotes EGL/bubblewrap) :

nix run github:Devitek/sonora      # lance directement
nix build github:Devitek/sonora    # -> ./result/bin/sonora

Pour le développement, le flake fournit aussi un devshell complet :

nix develop
bun install
bun run tauri dev                    # ou: bun run tauri build

Une question, un bug, une idée ?

Ouvrez une issue ou explorez le code sur GitHub.