Risposta diretta — Come si automatizza la trascrizione dei file su Mac? Esistono tre strade. Costruire uno script shell attorno a whisper.cpp e ffmpeg, racchiuderlo in una Shortcut e mantenerlo da soli. Inviare i file a un’API di trascrizione cloud e accettare che l’audio lasci il tuo Mac. Oppure richiamare un’API HTTP locale all’interno di un’app di trascrizione, che mantiene ogni file sulla macchina e non richiede alcuno scripting da mantenere.

Se vuoi automatizzare la trascrizione su Mac, la parte difficile raramente è il riconoscimento vocale — i modelli locali sono abbastanza buoni da anni. È la parte di collegamento: il trigger, la conversione del formato, la coda, l’esportazione e quella cosa che si rompe dopo un aggiornamento Homebrew.

Questa guida confronta le tre strade — script fai-da-te, Shortcuts di macOS e un’API di trascrizione locale alla tua macchina — con il codice che utilizzeresti davvero per ciascuna.

Cosa comporta davvero automatizzare la trascrizione su Mac?

Tre livelli, e solo uno di questi è riconoscimento vocale. Confonderli è il motivo per cui la maggior parte dei tentativi di automazione si arena a metà strada.

Un’API cloud riduce tutti e tre a un’unica chiamata HTTP, al costo di caricare l’audio. Uno script fai-da-te ti dà il controllo totale e tutti e tre i livelli da mantenere. Un’API locale mantiene motore e audio sul tuo Mac pur riducendo comunque la chiamata a una sola riga.

Le Shortcuts di macOS possono trascrivere i file da sole?

Non con un motore locale, no. Shortcuts è eccellente per trigger e collegamenti — Apple descrive una shortcut come «un modo rapido per portare a termine una o più attività con le tue app» — ma non include alcuna azione di trascrizione offline generica che tu possa puntare su un MP4 qualsiasi.

I progetti della community mostrano la soluzione alternativa. I repository condivisi di trascrizione audio con Shortcuts su Mac funzionano tutti allo stesso modo: la Shortcut fornisce il trigger e il percorso del file, poi un’azione Run Shell Script passa il lavoro a un motore esterno.

Uno racchiude uno script zsh attorno allo strumento da riga di comando di MacWhisper, con ripiego su whisper.cpp installato via Homebrew. Un altro importa uno .shortcut che richiama uno script shell che combina whisper.cpp con ffmpeg. Entrambi dimostrano lo stesso punto: Shortcuts è il trigger, mai il motore.

Cosa comporta la strada fai-da-te con whisper.cpp?

Configurazione e manutenzione continua. Il motore è gratuito ed eccellente; la manutenzione è il prezzo da pagare, e non è pari a zero.

Una configurazione minima di script di automazione della trascrizione su Mac si presenta così:

# 1. Installa il motore e il convertitore
brew install ffmpeg
brew install whisper-cpp

# 2. Scarica un file modello a mano (es. ggml-large-v3-turbo.bin)

# 3. Converti prima — la CLI di whisper.cpp legge solo WAV a 16 bit
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav

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

Il passaggio 3 non è opzionale. Il README ufficiale di whisper.cpp è esplicito: «l’esempio whisper-cli al momento funziona solo con file WAV a 16 bit, quindi assicurati di convertire il tuo input prima di eseguire lo strumento», e pubblica il comando ffmpeg riportato sopra.

È proprio questo vincolo il punto in cui la maggior parte delle catene di automazione whisper.cpp su Mac si rompono: ogni nuovo formato, intervista stereo e contenitore video deve essere convertito prima, e il fallimento è silenzioso finché non leggi una trascrizione vuota.

Aggiungi le altre parti mobili — file modello rinominati, un aggiornamento Homebrew, nessuna coda di lavoro, nessun avanzamento, nessuna cronologia — e lo script di un pomeriggio diventa un piccolo strumento interno che ora è tuo. La nostra guida all’installazione di whisper.cpp copre questo percorso in dettaglio.

Cos’è un’API di trascrizione locale, e perché cambia il flusso di lavoro?

Un’API di trascrizione locale è un server HTTP in esecuzione all’interno di un’app desktop sulla tua macchina, così altri programmi possono inviarle un file e ricevere il testo senza che nessun audio lasci il Mac. Stessa struttura di richiesta di un’API cloud, senza alcun caricamento.

Weesper Transcribe ne include una come funzione Pro opzionale. Si associa all’indirizzo di loopback 127.0.0.1 — irraggiungibile dalla tua rete — su una porta configurabile (8765 per impostazione predefinita), è disattivata per impostazione predefinita, e ogni endpoint tranne l’health check richiede un token Authorization: Bearer mostrato in Impostazioni → Automazione.

Due dettagli di design contano per l’automazione:

Gli endpoint

EndpointAuthCosa fa
GET /v1/healthNoProbe di liveness — stato e versione
GET /v1/modelsElenca gli id dei modelli e quali sono installati
POST /v1/transcribeInvia i byte audio, ricevi testo e segmenti con timestamp
GET /v1/jobs/<id>Stato, avanzamento, poi testo e percorso di esportazione

Le opzioni viaggiano come parametri di query e tutto ciò che ometti ricade sulle impostazioni salvate dell’app: model, language, task (transcribe o translate), format, name, export, async.

Una chiamata, dall’inizio alla fine

TOKEN=   # copiato da Impostazioni → Automazione

# Sincrono: trascrivi e scrivi un SRT nella cartella di esportazione automatica
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

# Asincrono: file lungo, polling per il risultato
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

Nessun passaggio di conversione, nessuna gestione dei modelli, nessuna coda da scrivere. La risposta porta testo e segmenti con timestamp, e l’app genera un file nel formato richiesto — uno tra nove, inclusi SRT e VTT quando i sottotitoli sono il risultato finale.

Come si confrontano le tre strade?

Fai corrispondere la strada a ciò che stai ottimizzando: controllo, privacy o parti mobili da gestire in proprio.

CriterioScript fai-da-te (whisper.cpp)API locale (Weesper Transcribe)API di trascrizione cloud
L’audio lascia il tuo Mac❌ Mai❌ Mai✅ Ogni file caricato
Sforzo di configurazioneAlto — Homebrew, modelli, conversioneBasso — attiva l’opzione, copia il tokenBasso — chiave API
Conversione formatoManuale (ffmpeg, WAV a 16 bit)Gestita dall’appGestita dal servizio
Coda dei job e avanzamentoLa costruisci tuIntegrata, sincrona o asincronaIntegrata
Funziona offline
Costo ricorrenteNessunoUpgrade Pro una tantumA minuto o a licenza
Chi la mantieneTuL’appIl fornitore
Cronologia e ricercaLa costruisci tuIntegrata, per parola chiave e semanticaOspitata dal fornitore

In sintesi: il fai-da-te vince sul controllo e costa solo il tuo tempo, il cloud vince sulla scala e perde sulla riservatezza, e un’API locale è la via di mezzo quando l’audio non deve lasciare la macchina.

Tre ricette di automazione che vale la pena copiare

Parti dal trigger che usi già. Il passaggio di trascrizione è una sola riga in ciascuna.

  1. Azione rapida del Finder — costruisci una Shortcut che accetta file come input, aggiungi un’azione Run Shell Script con la chiamata curl qui sopra e --data-binary @"$1", poi clicca con il tasto destro su qualsiasi registrazione per trascriverla. Tieni il token nello script o in una voce del Keychain, mai in un parametro URL.
  2. Cartella monitorata — punta un’Azione cartella o un piccolo ciclo fswatch sulla tua directory delle registrazioni e lancia la stessa chiamata per ogni nuovo file. Imposta export=true e la trascrizione atterra nella tua cartella di esportazione.
  3. Passaggio nell’orchestratore — in n8n, un nodo Execute Command richiama curl. La sua documentazione è esplicita nel dire che il nodo esegue comandi «sulla macchina host che fa girare n8n», «non è disponibile su n8n Cloud», ed è disattivato per impostazione predefinita a partire da n8n 2.0. Un passaggio di trascrizione locale con n8n richiede quindi un’istanza self-hosted sullo stesso Mac — che è proprio il senso di un’API di loopback.

Per un workflow di automazione della trascrizione in batch, potresti non aver bisogno di alcun orchestratore: metti in coda una cartella dentro l’app e usa l’API solo per ciò che è pilotato dai tuoi strumenti.

Quale strada dovresti scegliere?

Scegli in base al vincolo che non cambierà.

Stai ancora valutando le app piuttosto che le strade? Il nostro confronto tra TranscribeNext e Weesper Transcribe copre il lato della cattura riunioni di questa decisione.

Domande frequenti

Come posso automatizzare la trascrizione su Mac senza scrivere script?

Usa un’app che espone un’API di trascrizione locale, poi richiamala da qualsiasi cosa già gestisca il tuo lavoro: una Shortcut, un’Azione cartella, un job pianificato o un workflow n8n. Weesper Transcribe include un server HTTP opzionale associato a 127.0.0.1 e protetto da un bearer token. Una sola chiamata curl invia i byte audio e restituisce il testo, oltre a un file generato nella tua cartella di esportazione automatica.

Le Shortcuts di macOS possono trascrivere un file audio da sole?

Non per file arbitrari con un motore locale. Shortcuts è ottima per il trigger e la parte di collegamento: un’Azione rapida nel Finder, un’Azione cartella, una voce nel pannello di condivisione. La trascrizione deve arrivare da qualche parte, ed è per questo che le shortcut della community su GitHub racchiudono un’azione Run Shell Script attorno a whisper.cpp o a uno strumento da riga di comando di terze parti.

Quanto costa davvero la strada fai-da-te dell’automazione con whisper.cpp?

Configurazione e manutenzione, più che denaro. Gli script della community pubblicati installano ffmpeg e whisper.cpp tramite Homebrew, scaricano i file modello a mano e convertono ogni input prima di procedere, perché lo strumento da riga di comando di whisper.cpp funziona solo con file WAV a 16 bit. Un aggiornamento Homebrew, un file modello rinominato o un formato di input non gestito romperanno la catena silenziosamente.

È sicuro lasciare accesa un’API di trascrizione locale?

Dipende da come è associata e autenticata. L’API di Weesper Transcribe è disattivata per impostazione predefinita, ascolta solo su 127.0.0.1 quindi è irraggiungibile dalla tua rete, e richiede un bearer token su ogni endpoint tranne l’health check. Le richieste che portano un header Origin da browser vengono rifiutate, così una pagina web non può chiamarla a tua insaputa.

Posso usare un’API di trascrizione locale da n8n o un altro strumento di automazione?

Sì, quando lo strumento gira sullo stesso Mac. La documentazione di n8n afferma che il suo nodo Execute Command esegue comandi shell sulla macchina host che fa girare n8n e non è disponibile su n8n Cloud — quindi un’istanza self-hosted può richiamare curl, mentre un’istanza cloud non può raggiungere 127.0.0.1 sul tuo portatile.

Conclusione

Automatizzare la trascrizione su Mac è possibile da anni, ma finora solo tramite script che dovevi costruire e mantenere in vita. I progetti della community dimostrano la domanda ed espongono il costo: dipendenze Homebrew, file modello manuali, un passaggio di conversione prima di ogni file.

Un’API di loopback sposta quel lavoro dentro l’app — stessa chiamata a una riga di un servizio cloud, stessa superficie di automazione per Shortcuts, watcher di cartelle e orchestratori self-hosted, e l’audio non lascia mai la macchina.

Pronto a rendere la trascrizione un passaggio della pipeline? Scopri come Weesper Transcribe gestisce batch, esportazioni e l’API di automazione locale, oppure scaricalo dal Mac App Store — gratuito da scaricare, macOS 13 o successivo, upgrade Pro una tantum, nessun abbonamento. Le domande sulla configurazione trovano risposta nella documentazione di supporto.