Tout ce que fait Soufflé, et ce qu'il lui faut.

Ce que Soufflé fait, ce qu'il lui faut, et où il range les choses. Rien ici ne demande de compte, de clé d'API, ni de connexion réseau au-delà du premier téléchargement de modèle.

Installation

Avec Homebrew :

brew install --cask damione1/tap/souffle

Ou téléchargez le .dmg depuis la dernière version et glissez Soufflé dans Applications. Chaque build est signé et notarisé : l'app s'ouvre normalement, sans clic droit et sans avertissement Gatekeeper.

Au premier lancement, l'assistant télécharge un modèle de transcription, entre 670 Mo et 5,6 Go selon celui que vous choisissez. Ce téléchargement est le seul moment où Soufflé a besoin du réseau pour transcrire.

Prérequis

MacApple Silicon. Il n'existe pas de version Intel.
macOS 13+La dictée, et les réunions enregistrées depuis votre micro.
macOS 14.4+Les réunions qui captent aussi les autres participants. La capture de l'audio système passe par le process tap de Core Audio, qui n'existe pas avant 14.4. Sur macOS 13, une réunion s'enregistre quand même et la transcription est marquée Micro seul.
DisqueDe 670 Mo à 5,6 Go pour le modèle de transcription, téléchargé à la première utilisation.
RésumésApple Intelligence, qui demande macOS 26 ou plus récent, ou un Ollama local sur n'importe quelle version supportée. La transcription n'a besoin ni de l'un ni de l'autre.

Permissions

L'assistant de démarrage a une étape Permissions facultative ; passez-la et Soufflé demande chacune de ces permissions au moment où vous utilisez la fonction qui en a besoin. Les notifications font exception : elles sont demandées au lancement de l'app. Paramètres → Système → Permissions montre l'état de chacune et renvoie directement au bon panneau des Réglages système.

MicrophoneEnregistre votre voix pour la transcrire. Nécessaire à tout le reste.
Audio systèmeCapte ce que disent les autres participants, sans pilote audio virtuel. Réunions sur macOS 14.4+.
AccessibilitéInsère le texte dans l'app que vous utilisiez, relit vos corrections quand « apprendre de mes corrections » est actif, et installe le tap d'événements natif qui permet d'assigner un raccourci de dictée à une seule touche (un modificateur seul, ou F5–F12).
CalendrierLit les événements du jour pour les lister sur l'accueil et vous notifier quand l'un commence. Optionnel, et inactif tant que vous ne l'activez pas.
NotificationsRappels du calendrier, réunion sur le point de s'arrêter seule, collage qui a échoué. Demandée au lancement ; la refuser ne fait que taire ces alertes.

Refuser une permission ne désactive que la fonction concernée. Sans Audio système, une réunion enregistre quand même votre micro et la transcription est marquée Micro seul. Sans Accessibilité, le texte dicté est copié dans le presse-papiers au lieu d'être inséré à votre place et un raccourci à une seule touche ne peut pas installer son tap ; les raccourcis classiques avec modificateur fonctionnent encore.

Premier lancement

Un assistant couvre les permissions dont Soufflé a besoin, le micro à utiliser, le modèle de transcription à télécharger, et le raccourci de dictée. Le raccourci par défaut est ⌘⇧Espace.

L'étape du raccourci propose aussi le collage automatique, inactif tant que vous ne le cochez pas : une fois actif, quand vous arrêtez de dicter, le texte part directement dans l'app où vous étiez. Laissé inactif, le texte atterrit dans le presse-papiers. Une installation neuve termine avec Lancer à l'ouverture de session activé ; changez-le plus tard dans Paramètres → Système. Tout cela se change plus tard dans les Paramètres.

Dictée

Appuyez sur le raccourci n'importe où, parlez, appuyez à nouveau. Le texte est inséré dans l'app qui avait le focus, ou copié dans le presse-papiers tant que le collage automatique est inactif. Appuyez sur Échap pendant une dictée en bascule pour la jeter. Si un collage échoue, le texte attend sur l'accueil sous Dictée à récupérer jusqu'à ce que vous le copiiez ou le supprimiez.

Les apps qui refusent un collage synthétique (terminaux, champs sécurisés) peuvent recevoir des frappes simulées à la place. Paramètres → Interface propose trois méthodes de collage : le presse-papiers avec ⌘V, la frappe simulée, ou une écriture directe dans le champ focalisé via l'Accessibilité.

Deux passages tournent à la sortie, et chacun se désactive. Le polish de la dictée, actif par défaut quand un fournisseur est disponible, fait passer la transcription brute dans un LLM local, avec un modèle de prompt que vous pouvez modifier (nettoyage, courriel professionnel, liste à puces, retrait des hésitations) ; il demande Apple Intelligence ou Ollama. L'apprentissage des corrections, actif par défaut, surveille le champ juste après l'insertion : corrigez un nom mal entendu une fois à la main, et Soufflé garde cette orthographe pour la suite, dans le dictionnaire personnalisé sous Paramètres → Transcription.

Les extraits vocaux vivent sous Paramètres → Transcription : dites une phrase déclencheur en début de dictée et Soufflé colle l'expansion à la place, sans tenir compte de la casse ni des accents, et sans polish IA sur cette prise. Le menu de la barre des menus propose aussi Copier la dernière transcription quand vous en avez besoin, et Pause raccourci (1 h) quand la touche doit servir à autre chose.

Des sons de départ et d'arrêt, optionnels, confirment que le raccourci a été capté.

Raccourcis

Les deux raccourcis de dictée se règlent dans Paramètres → Interface. Chacun accepte une combinaison classique avec modificateur, ou une seule touche (un modificateur seul, gauche ou droit, ou F5–F12), qui demande la permission Accessibilité pour que le tap natif s'installe. Les deux ne peuvent pas partager la même combinaison.

Dictée (bascule)Un appui pour démarrer, un autre pour arrêter. ⌘⇧Espace par défaut.
Maintenir pour parlerMaintenir pour enregistrer, relâcher pour arrêter. Non assigné par défaut ; liez une combinaison classique ou une seule touche (modificateur seul, F5–F12) si vous préférez maintenir.
AnnulerÉchap jette une dictée en bascule en cours. La touche n'est captée que pendant une dictée.

La pastille

La dictée n'ouvre pas de fenêtre. Une petite pastille apparaît au-dessus de ce que vous êtes en train de faire : un point d'enregistrement, le libellé, une forme d'onde en direct et un bouton d'arrêt. Elle reste compacte tant qu'il n'y a rien à afficher, puis s'élargit et grandit ligne par ligne pendant que vous parlez.

À l'arrêt, la pastille passe en Reformulation… le temps du passage de polish local, puis disparaît au moment où le texte atterrit dans le champ que vous utilisiez déjà. Par défaut, sa fenêtre est exclue de la capture d'écran : elle n'apparaît pas dans la réunion où vous êtes ; Masquer l'overlay dans les captures d'écran, dans Paramètres → Interface, change ce comportement.

Vous pouvez masquer la pastille dans Paramètres → Interface ; faites-la glisser quand elle est visible pour la déplacer. La position est mémorisée d'un écran à l'autre.

Réunions

Une réunion enregistre votre micro et, sur macOS 14.4+, l'audio système : la transcription en direct sépare donc Moi de Eux au fil de l'eau. La séparation Moi/Eux demande un modèle Kyutai ; Whisper et Parakeet transcrivent la réunion en un seul flux.

Le cycle de vie est pensé pour ne rien demander : l'app vous notifie au début d'une réunion du calendrier, et les événements du jour ont un bouton Démarrer sur l'accueil. Elle détecte que la réunion semble terminée et s'arrête d'elle-même après vous avoir prévenu, et récupère ou sauve la session si le moteur cale ou si le micro disparaît. Quand le Mac se met en veille, l'enregistrement est fermé proprement, et Soufflé propose de le reprendre au réveil. Une réunion arrêtée peut aussi être reprise à la main avec Reprendre l'enregistrement, qui ajoute une session à la même réunion. Si un micro ne répond plus, un bandeau le signale et propose Redémarrer Soufflé.

Une réunion s'arrête seule après 10 minutes sans parole, avec un garde-fou à 4 heures derrière. Les deux se règlent dans Paramètres → Audio, avec le micro que Soufflé doit privilégier.

L'enregistrement audio est inactif par défaut. Activez-le dans Paramètres → Système → Données et le son de la réunion est conservé en fichiers Opus compacts, pendant 7 jours, 30 jours ou jusqu'à ce que vous les effaciez, rejouables en cliquant n'importe quelle ligne de la transcription. Avec l'audio système, le fichier est en stéréo, vous à gauche et les autres à droite, pour environ 1,5 fois le disque d'un fichier mono.

Depuis la page d'une réunion, vous pouvez copier le résumé ou la transcription, exporter la réunion, ou la supprimer. Les modèles de résumé se modifient dans Paramètres → IA.

Résumés

Les résumés sont générés en local : par Apple Intelligence sur macOS 26 ou plus récent, sans rien à installer, et sinon par un Ollama local. À côté du résumé rédigé, Soufflé extrait les décisions, les tâches avec leur responsable, et les questions restées ouvertes.

Installer Ollama tient en deux commandes :

brew install ollama
ollama pull qwen2.5:7b

Ensuite, dans Paramètres → IA, laissez le serveur sur http://localhost:11434 et choisissez le modèle. N'importe quel modèle de conversation généraliste fait l'affaire ; qwen2.5:7b est celui que Soufflé recommande. C'est le même fournisseur qui sert au polish de la dictée.

Rien de ce qui touche à un résumé ne sort de la machine. Avec Ollama, la seule requête part vers votre propre instance.

Modèles de transcription

Tous les modèles tournent en local et sont téléchargés depuis HuggingFace à la première utilisation. Vous pouvez en changer à tout moment dans Paramètres → Transcription.

Kyutai STT 1BPar défaut. Français et anglais, ~2,4 Go, GPU Metal via Candle. Affiche le texte pendant que vous parlez.
Kyutai STT 2.6BAnglais seulement, meilleure qualité, ~5,6 Go. Affiche le texte pendant que vous parlez. Sans détecteur de pause, une longue prise de parole sans silence peut perdre environ 2,5 secondes toutes les 28 secondes.
Whisper Large V3 TurboMultilingue, ~1,6 Go, Metal via whisper.cpp. Transcrit une fois que vous avez fini.
Parakeet TDT 0.6B v325 langues avec ponctuation et majuscules, ~670 Mo en int8, inférence CPU rapide via ONNX Runtime. Transcrit une fois que vous avez fini.

Les deux Kyutai sont les modèles en flux continu : le texte apparaît pendant que vous parlez encore. Whisper et Parakeet transcrivent tout l'enregistrement une fois que vous avez arrêté, ce qui convient à une réunion qu'on lit après coup mais change la sensation en dictée.

Un modèle chargé est déchargé après une heure d'inactivité pour rendre la RAM, puis rechargé au prochain enregistrement. Ce délai se change, ou se désactive, dans Paramètres → Transcription.

Les paramètres

Six onglets. Les réglages qui méritent d'être connus :

Méthode de collage
Interface
Presse-papiers et ⌘V, frappe simulée, ou écriture directe via l'Accessibilité. À changer quand une app refuse le collage.
Collage automatique
Interface
Actif : le texte part dans l'app que vous utilisiez. Inactif, par défaut : il est copié dans le presse-papiers.
Délai de collage
Interface
Temps d'attente avant le collage. Augmentez-le si le texte arrive dans la mauvaise app.
Langue et thème
Interface
L'interface en français ou en anglais, et une apparence claire, sombre ou système.
Sons de dictée
Interface
Signaux sonores de départ et d'arrêt, avec un volume.
Masquer l'overlay d'enregistrement
Interface
Cache le HUD flottant pendant la dictée ou une réunion. Faites-le glisser quand il est visible pour le déplacer ; la position est mémorisée. Un second interrupteur, actif par défaut, l'exclut des captures d'écran.
Polish de la dictée
IA
Le passage LLM local et ses modèles de prompt, modifiables. Actif par défaut quand Apple Intelligence ou Ollama est disponible.
Dictionnaire personnalisé
Transcription
Noms propres et termes techniques à orthographier correctement, saisis à la main ou appris de vos corrections.
Extraits vocaux
Transcription
Phrases déclencheurs qui se développent en un bloc de texte préparé en début de dictée. Une correspondance saute le polish.
Priorité des micros
Audio
Une liste ordonnée d'entrées préférées, un choix distinct pour le mode écran rabattu, et une option qui écarte les casques Bluetooth du rôle de micro pour qu'ils restent en stéréo.
Arrêt automatique des réunions
Audio
Arrêt après 5, 10, 15 ou 30 minutes sans parole, avec un garde-fou de durée maximale derrière.
Langue de transcription (réunions)
Audio
Un indice pour la détection de langue en réunion, jamais imposé au moteur.
Déchargement du modèle
Transcription
Libère la RAM du modèle après 5, 15 ou 60 minutes d'inactivité, ou jamais.
Calendrier
Réunions
Inactif tant que vous ne l'activez pas. Liste les événements du jour des calendriers que vous gardez cochés, vous rappelle un événement quelques minutes avant (2 par défaut), et vous notifie quand l'un commence pendant qu'un appel utilise le micro.
Résumés
IA
Fournisseur, serveur et modèle Ollama, et les modèles de résumé.
Lancer à l'ouverture de session
Système
Ouvre Soufflé automatiquement au démarrage du Mac. Actif par défaut après l'assistant d'une installation neuve.
Audio des réunions
Système
Inactif, conservé 7 jours, 30 jours, ou jusqu'à suppression.
Stockage du modèle
Système
Supprime du disque le modèle de transcription sélectionné, une fois téléchargé et déchargé.
Vérification des mises à jour
Système
Demande une fois par jour à GitHub s'il existe une version plus récente. Se désactive dans À propos. Une mise à jour n'est téléchargée que si vous appuyez sur Télécharger la mise à jour, et s'installe avec Installer et redémarrer, qui vous demande d'abord d'arrêter une réunion en cours.

Ce qui sort sur le réseau

L'argument de la confidentialité mérite d'être vérifié plutôt que cru : voici donc chaque connexion sortante que fait l'app.

huggingface.coTélécharge un modèle de transcription la première fois que vous le sélectionnez. Rien n'est envoyé, et une fois le modèle sur le disque, la transcription fonctionne hors ligne pour toujours.
api.github.comUne fois par jour, et chaque fois que vous appuyez sur Vérifier les mises à jour, demande s'il existe une version plus récente, et récupère les notes de version pour Nouveautés. N'envoie rien d'autre que la requête : aucun identifiant, aucun compte, aucune donnée d'usage. La vérification quotidienne se désactive dans Paramètres → Système → À propos.
github.comSeulement si vous appuyez sur Télécharger la mise à jour : récupère la mise à jour signée, vérifiée avant que Installer et redémarrer soit proposé.
localhost:11434Votre instance Ollama, uniquement si vous activez les résumés avec Ollama. C'est votre machine, sauf si vous la pointez ailleurs. Un modèle téléchargé depuis Paramètres → IA est récupéré par cette instance, pas par Soufflé.

Vos enregistrements, transcriptions, notes et résumés ne sont jamais envoyés nulle part. Ils vivent dans une base SQLite locale : Paramètres → Système → Données exporte l'ensemble, et supprimer le dossier de données l'efface.

Où vivent vos données

Tout tient dans un seul dossier, ~/Library/Application Support/com.souffle.desktop/. Paramètres → Système → Données propose un bouton qui l'ouvre dans le Finder.

souffle.dbSQLite : réunions, transcriptions, notes, résumés, historique de dictée, dictionnaire personnalisé et vos réglages.
models/Les modèles de transcription téléchargés, classés par moteur et par backend. En supprimer un libère le disque ; il sera retéléchargé si vous resélectionnez ce modèle.
recordings/L'audio des réunions en Ogg/Opus, un dossier par réunion. Vide tant que vous n'avez pas activé l'enregistrement.
logs/Les journaux de l'application, avec rotation. C'est ce qu'il faut joindre quand vous signalez un problème.

Sauvegarder ce dossier sauvegarde tout. Le supprimer ramène l'app à son premier lancement.

Export

Chaque réunion s'exporte en Markdown, en JSON, ou en sous-titres SRT/VTT, avec son audio enregistré à côté si vous en avez conservé. L'archive complète s'exporte en un dossier ordinaire de fichiers Markdown et JSON. Aucun conteneur propriétaire, rien dont il faudra migrer plus tard.

Serveur MCP

Le sidecar souffle-mcp, fourni avec l'app, permet à Claude Desktop, Claude Code ou n'importe quel client MCP de chercher et lire vos transcriptions. En lecture seule, entièrement local, et fonctionne même quand l'app est fermée.

Pour Claude Code :

claude mcp add souffle "/Applications/Soufflé.app/Contents/MacOS/souffle-mcp"

Pour Claude Desktop, dans claude_desktop_config.json :

{
  "mcpServers": {
    "souffle": {
      "command": "/Applications/Soufflé.app/Contents/MacOS/souffle-mcp"
    }
  }
}

Cinq outils sont exposés : list_meetings, get_meeting, search_meetings, get_latest_meeting et list_dictations. Paramètres → Système → Données reprend les mêmes extraits avec le chemin déjà rempli, et un bouton qui teste la connexion.

Ligne de commande

Le binaire souffle transcrit un fichier sans lancer l'app. Il est livré à l'intérieur du bundle et n'est pas ajouté à votre PATH : appelez-le par son chemin complet, ou faites-en un lien symbolique une bonne fois.

# Appel direct
"/Applications/Soufflé.app/Contents/MacOS/souffle" --list-engines

# Ou en faire une commande `souffle`
ln -s "/Applications/Soufflé.app/Contents/MacOS/souffle" /usr/local/bin/souffle

# Transcrire un fichier, JSON sur stdout
souffle --transcribe-file audio.wav --json
--transcribe-file <WAV>Transcrit un fichier WAV puis quitte.
--jsonSort un seul objet JSON exploitable par une machine, au lieu du texte.
--repeat NRejoue le même fichier N fois. Le modèle n'est chargé qu'une fois : ça sert donc aussi de banc d'essai pour comparer les modèles sur votre machine.
--list-enginesListe les moteurs disponibles.
--list-modelsListe chaque combinaison moteur / modèle / backend et son état d'installation.
--engine, --model, --backendRemplacent, le temps de l'appel, ce qui est enregistré dans les Paramètres.

La commande lit la même base et les mêmes modèles téléchargés que l'app : ce qui est déjà installé est réutilisé.

Dépannage

Le symptôme d'abord, la cause habituelle ensuite.

Les autres participants n'apparaissent pas dans la transcriptionLa capture de l'audio système demande macOS 14.4 ou plus récent et la permission Audio système. Quand elle n'est pas disponible, la transcription est marquée Micro seul et n'enregistre que votre micro.
Un raccourci push-to-talk à une touche ne fait rienLes modificateurs seuls et F5–F12 demandent la permission Accessibilité pour le tap natif. Paramètres → Système → Permissions y renvoie.
Le texte dicté n'est pas inséréLe collage automatique est peut-être désactivé : dans ce cas le texte attend dans le presse-papiers. Sinon, c'est la permission Accessibilité. Si Soufflé y figure déjà et est bien coché, l'entrée peut être une trace périmée laissée par une mise à jour : retirez-la avec le bouton moins et rajoutez-la, ou utilisez Réparer dans Paramètres → Système → Permissions.
Une app refuse le collageLes terminaux et les champs sécurisés rejettent souvent un ⌘V synthétique. Passez la méthode de collage en frappe simulée dans Paramètres → Interface.
Ce n'est pas le bon micro qui est prisFixez une entrée, et une autre pour le mode écran rabattu, dans Paramètres → Audio. Les casques Bluetooth sont écartés de la sélection automatique par défaut : les utiliser comme micro les fait basculer en HFP et vous coûte le son stéréo.
Le polish ou les résumés ne font rienLes deux ont besoin d'un fournisseur. Sans Apple Intelligence (macOS 26+), installez Ollama et choisissez un modèle dans Paramètres → IA. La raison pour laquelle un passage a été sauté est affichée dans le message d'état et écrite dans le journal.
Le téléchargement d'un modèle s'est arrêté en routeResélectionnez le modèle pour relancer le téléchargement. Supprimer son dossier sous models/ force un téléchargement propre.
Autre choseParamètres → Système → Données ouvre le dossier de données. logs/ contient les journaux récents, qui sont ce dont un ticket a besoin.

Désinstallation

Installé avec Homebrew :

brew uninstall --cask souffle

Sinon, sortez Soufflé du dossier Applications.

Dans les deux cas vos données restent. Pour les retirer aussi, quittez Soufflé et supprimez ~/Library/Application Support/com.souffle.desktop/ : réunions, dictées, audio enregistré et modèles y sont tous.

Pour récupérer du disque sans désinstaller, sélectionnez un modèle dont vous ne vous servez plus et supprimez-le sous Paramètres → Système → Stockage du modèle. Il doit être téléchargé et déchargé.

Compiler depuis les sources

L'app est écrite en Rust avec une interface native Slint, et un peu de Swift pour la pastille. La compiler demande un Mac Apple Silicon, Rust, les outils en ligne de commande Xcode et cmake (brew install cmake).

git clone https://github.com/damione1/souffle.git
cd souffle
make nightly

make nightly compile et ouvre Soufflé Nightly, une build de débogage avec sa propre identité, qui cohabite avec un Soufflé installé. ./scripts/bundle-macos.sh produit un bundle de version signé.

Signaler un problème

Si quelque chose ne fonctionne pas comme cette documentation le décrit, ouvrez un ticket. Indiquez votre version de macOS, votre modèle de Mac, les périphériques audio impliqués, et joignez un journal du dossier logs/.

Licence

Copyright © 2026 Damien Goehrig. Publié sous licence GNU General Public License v3.0 ou ultérieure. Vous êtes libre de l'utiliser, de l'étudier, de le modifier et de le redistribuer, à condition que les travaux dérivés soient publiés sous la même licence.