Réponse directe — Comment automatiser la transcription de fichiers sur Mac ? Trois voies existent. Câbler un script shell autour de whisper.cpp et ffmpeg, l’envelopper dans un Shortcut, et le maintenir vous-même. Envoyer les fichiers à une API de transcription cloud et accepter que l’audio quitte votre Mac. Ou appeler une API HTTP locale à l’intérieur d’une application de transcription, qui garde chaque fichier sur la machine et ne demande aucun script à maintenir.

Si vous voulez automatiser la transcription sur Mac, la partie difficile est rarement la reconnaissance vocale — les modèles locaux sont suffisamment bons depuis des années. C’est la plomberie : le déclencheur, la conversion de format, la file d’attente, l’export, et ce qui casse après une mise à jour Homebrew.

Ce guide compare les trois voies — scripts maison, Shortcuts macOS, et une API de transcription locale à votre machine — avec le code que vous exécuteriez réellement pour chacune.

Qu’implique réellement l’automatisation de la transcription sur Mac ?

Trois couches, et une seule d’entre elles est la reconnaissance vocale. Les confondre est la raison pour laquelle la plupart des tentatives d’automatisation s’arrêtent à mi-chemin.

Une API cloud regroupe les trois en un seul appel HTTP, au prix de l’upload de l’audio. Un script maison vous donne le contrôle total et les trois couches à maintenir. Une API locale garde le moteur et l’audio sur votre Mac tout en regroupant l’appel en une seule ligne.

Les Shortcuts macOS peuvent-ils transcrire des fichiers seuls ?

Pas avec un moteur local, non. Shortcuts excelle pour les déclencheurs et la plomberie — Apple décrit un shortcut comme « un moyen rapide d’accomplir une ou plusieurs tâches avec vos applications » — mais il n’embarque aucune action de transcription hors ligne généraliste que vous pourriez pointer vers un MP4 quelconque.

Les projets communautaires montrent la solution de contournement. Les dépôts partagés de transcription audio via Shortcuts sur Mac fonctionnent tous de la même façon : le Shortcut fournit le déclencheur et le chemin du fichier, puis une action Run Shell Script confie le travail à un moteur externe.

L’un enveloppe un script zsh autour de l’outil en ligne de commande MacWhisper, avec repli sur whisper.cpp via Homebrew. L’autre importe un .shortcut qui appelle un script shell combinant whisper.cpp et ffmpeg. Les deux illustrent le même principe : Shortcuts est le déclencheur, jamais le moteur.

Qu’implique la voie whisper.cpp en solo ?

De la mise en place et de l’entretien. Le moteur est gratuit et excellent ; la maintenance est le prix à payer, et il n’est pas nul.

Une configuration minimale de script d’automatisation de la transcription sur Mac ressemble à ceci :

# 1. Install the engine and the converter
brew install ffmpeg
brew install whisper-cpp

# 2. Fetch a model file by hand (e.g. ggml-large-v3-turbo.bin)

# 3. Convert first — whisper.cpp's CLI reads 16-bit WAV only
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav

# 4. Then transcribe
whisper-cli -m ~/.cache/whisper.cpp/models/ggml-large-v3-turbo.bin -f output.wav

L’étape 3 n’est pas optionnelle. Le README officiel de whisper.cpp est explicite : « l’exemple whisper-cli ne fonctionne actuellement qu’avec des fichiers WAV 16 bits, veillez donc à convertir votre entrée avant d’exécuter l’outil », et il publie la commande ffmpeg ci-dessus.

Cette contrainte est l’endroit où la plupart des chaînes d’automatisation whisper.cpp sur Mac se cassent : chaque nouveau format, chaque interview stéréo et chaque conteneur vidéo doit d’abord être converti, et l’échec est silencieux jusqu’à ce que vous lisiez une transcription vide.

Ajoutez les autres pièces mobiles — fichiers de modèle renommés, mise à jour Homebrew, aucune file d’attente, aucune progression, aucun historique — et le script d’un après-midi devient un petit outil interne dont vous héritez désormais. Notre guide d’installation de whisper.cpp couvre cette voie en détail.

Qu’est-ce qu’une API de transcription locale, et pourquoi change-t-elle le workflow ?

Une API de transcription locale est un serveur HTTP qui tourne à l’intérieur d’une application de bureau sur votre propre machine, afin que d’autres programmes puissent lui envoyer un fichier et récupérer du texte sans qu’aucun audio ne quitte le Mac. Même forme de requête qu’une API cloud, sans l’upload.

Weesper Transcribe en embarque une comme fonctionnalité Pro optionnelle. Elle se lie à l’adresse de loopback 127.0.0.1 — inaccessible depuis votre réseau — sur un port configurable (8765 par défaut), elle est désactivée par défaut, et chaque point d’entrée sauf le contrôle de disponibilité exige un jeton Authorization: Bearer affiché dans Réglages → Automatisation.

Deux détails de conception comptent pour l’automatisation :

Les points d’entrée

EndpointAuthCe qu’il fait
GET /v1/healthNonSonde de disponibilité — statut et version
GET /v1/modelsOuiListe les ID de modèles et lesquels sont installés
POST /v1/transcribeOuiEnvoie les octets audio, récupère le texte et les segments horodatés
GET /v1/jobs/<id>OuiStatut, progression, puis texte et chemin d’export

Les options passent en paramètres de requête, et tout ce que vous omettez retombe sur les réglages enregistrés de l’application : model, language, task (transcribe ou translate), format, name, export, async.

Un appel, de bout en bout

TOKEN=   # copied from Settings → Automation

# Synchronous: transcribe and write an SRT into the auto-export folder
curl -s -X POST "http://127.0.0.1:8765/v1/transcribe?format=srt&name=meeting" \
     -H "Authorization: Bearer $TOKEN" \
     --data-binary @meeting.m4a | jq .text

# Asynchronous: long file, poll for the result
JOB=$(curl -s -X POST "http://127.0.0.1:8765/v1/transcribe?async=true&name=lecture" \
      -H "Authorization: Bearer $TOKEN" --data-binary @lecture.mp4 | jq -r .job_id)
curl -s "http://127.0.0.1:8765/v1/jobs/$JOB" -H "Authorization: Bearer $TOKEN" | jq

Aucune étape de conversion, aucune gestion de modèle, aucune file d’attente à coder. La réponse transporte le texte et les segments horodatés, et l’application génère un fichier dans le format demandé — l’un des neuf disponibles, dont SRT et VTT lorsque les sous-titres sont le livrable.

Comment les trois voies se comparent-elles ?

Faites correspondre la voie à ce que vous optimisez : le contrôle, la confidentialité, ou le nombre de pièces mobiles à assumer.

CritèreScripts maison (whisper.cpp)API locale (Weesper Transcribe)API de transcription cloud
L’audio quitte votre Mac❌ Jamais❌ Jamais✅ Chaque fichier uploadé
Effort de mise en placeÉlevé — Homebrew, modèles, conversionFaible — activer, copier le jetonFaible — clé API
Conversion de formatManuelle (ffmpeg, WAV 16 bits)Gérée par l’applicationGérée par le service
File d’attente et progressionÀ construire soi-mêmeIntégrée, synchrone ou asynchroneIntégrée
Fonctionne hors ligne
Coût récurrentAucunMise à niveau Pro à paiement uniquePar minute ou par poste
Qui la maintientVousL’applicationL’éditeur
Historique et rechercheÀ construire soi-mêmeIntégré, par mot-clé et sémantiqueHébergé par l’éditeur

En résumé : le maison gagne sur le contrôle et ne coûte que votre temps, le cloud gagne sur l’échelle et perd sur la confidentialité, et une API locale est la voie médiane quand l’audio ne doit pas quitter la machine.

Trois recettes d’automatisation à s’approprier

Commencez par le déclencheur que vous utilisez déjà. L’étape de transcription tient en une ligne dans chaque cas.

  1. Quick Action du Finder — créez un Shortcut qui prend des fichiers en entrée, ajoutez une action Run Shell Script avec l’appel curl ci-dessus et --data-binary @"$1", puis faites un clic droit sur n’importe quel enregistrement pour le transcrire. Gardez le jeton dans le script ou dans un élément Keychain, jamais dans un paramètre d’URL.
  2. Dossier surveillé — pointez une Folder Action ou une petite boucle fswatch vers votre dossier d’enregistrements et déclenchez le même appel pour chaque nouveau fichier. Réglez export=true et la transcription atterrit dans votre dossier d’export.
  3. Étape d’orchestrateur — dans n8n, un nœud Execute Command appelle curl en shell. Sa documentation précise explicitement que le nœud exécute des commandes « sur la machine hôte qui fait tourner n8n », qu’il « n’est pas disponible sur n8n Cloud », et qu’il est désactivé par défaut depuis n8n 2.0. Une étape de transcription locale via n8n nécessite donc une instance auto-hébergée sur le même Mac — ce qui est tout l’intérêt d’une API de loopback.

Pour un workflow d’automatisation de transcription par lots, vous n’avez peut-être besoin d’aucun orchestrateur : mettez un dossier en file d’attente dans l’application, et n’utilisez l’API que pour ce que pilote votre propre outillage.

Quelle voie choisir ?

Choisissez selon la contrainte qui ne bougera pas.

Vous hésitez encore entre des applications plutôt qu’entre des voies ? Notre comparaison entre TranscribeNext et Weesper Transcribe couvre le volet capture de réunions de cette décision.

Questions fréquentes

Comment automatiser la transcription sur Mac sans écrire de scripts ?

Utilisez une application qui expose une API de transcription locale, puis appelez-la depuis ce qui fait déjà tourner votre travail : un Shortcut, une Folder Action, une tâche planifiée ou un workflow n8n. Weesper Transcribe embarque un serveur HTTP optionnel lié à 127.0.0.1 et protégé par un jeton bearer. Un seul appel curl envoie les octets audio et renvoie le texte, plus un fichier généré dans votre dossier d’export automatique.

Les Shortcuts macOS peuvent-ils transcrire un fichier audio seuls ?

Pas pour des fichiers quelconques avec un moteur local. Shortcuts excelle pour le déclencheur et la plomberie : une Quick Action dans le Finder, une Folder Action, une entrée dans le menu de partage. La transcription doit venir de quelque part, ce qui explique pourquoi les shortcuts communautaires sur GitHub enveloppent une action Run Shell Script autour de whisper.cpp ou d’un outil en ligne de commande tiers.

Que coûte vraiment la voie d’automatisation whisper.cpp en solo ?

De la mise en place et de la maintenance, plutôt que de l’argent. Les scripts communautaires publiés installent ffmpeg et whisper.cpp via Homebrew, téléchargent les fichiers de modèle à la main, et convertissent d’abord chaque entrée, car l’outil en ligne de commande whisper.cpp ne fonctionne qu’avec des fichiers WAV 16 bits. Une mise à jour Homebrew, un fichier de modèle renommé ou un format d’entrée non géré casseront la chaîne silencieusement.

Est-il sûr de laisser une API de transcription locale activée en permanence ?

Cela dépend de la façon dont elle est liée et authentifiée. L’API de Weesper Transcribe est désactivée par défaut, n’écoute que sur 127.0.0.1 — donc inaccessible depuis votre réseau — et exige un jeton bearer sur chaque point d’entrée sauf le contrôle de disponibilité. Les requêtes portant un en-tête Origin de navigateur sont rejetées, si bien qu’une page web ne peut pas l’appeler à votre insu.

Puis-je piloter une API de transcription locale depuis n8n ou un autre outil d’automatisation ?

Oui, quand l’outil tourne sur le même Mac. La documentation de n8n indique que son nœud Execute Command exécute des commandes shell sur la machine hôte qui fait tourner n8n et n’est pas disponible sur n8n Cloud — donc une instance auto-hébergée peut appeler curl en shell, tandis qu’une instance cloud ne peut pas atteindre 127.0.0.1 sur votre ordinateur portable.

Conclusion

Automatiser la transcription sur Mac est possible depuis des années, mais uniquement via des scripts qu’il fallait construire et maintenir en vie. Les projets communautaires prouvent la demande et révèlent le coût : dépendances Homebrew, fichiers de modèle manuels, une étape de conversion avant chaque fichier.

Une API de loopback déplace ce travail à l’intérieur de l’application — même appel en une ligne qu’un service cloud, même surface d’automatisation pour Shortcuts, les observateurs de dossiers et les orchestrateurs auto-hébergés, et l’audio ne quitte jamais la machine.

Prêt à faire de la transcription une étape de pipeline ? Découvrez comment Weesper Transcribe gère les lots, les exports et l’API d’automatisation locale, ou téléchargez-le sur le Mac App Store — gratuit au téléchargement, macOS 13 ou ultérieur, mise à niveau Pro à paiement unique, sans abonnement. Les questions d’installation trouvent réponse dans la documentation d’aide.