Trascrivere un'ora di riunione, una lezione universitaria, un'intervista o un audio di WhatsApp lungo richiede pochi minuti, costa zero euro e gira sul tuo portatile. Il segreto si chiama Whisper, il modello di OpenAI rilasciato sotto licenza MIT, e in particolare la sua reimplementazione in C/C++ chiamata whisper.cpp: poche dipendenze, ottimizzata per CPU e GPU, perfetta anche per Mac con Apple Silicon e PC senza scheda video dedicata. In questa guida ti porto da zero alla prima trascrizione in italiano con timestamp, ai sottotitoli SRT pronti per Premiere o YouTube, e a un workflow batch per centinaia di file.
A chi serve e cosa otterrai
Questa guida e' pensata per chi vuole trascrivere audio mantenendo il file sul proprio computer, senza inviarlo ad alcun servizio cloud. Tipici casi d'uso: giornalisti che intervistano persone con dati sensibili, avvocati che lavorano su registrazioni di udienze, ricercatori, podcaster che vogliono velocizzare il workflow di editing, e chiunque abbia un mucchio di audio in italiano da trasformare in testo.
Al termine sarai in grado di: installare whisper.cpp su Mac, Windows o Linux; scaricare il modello multilingue piu' adatto al tuo hardware; trascrivere un audio MP3, M4A o WAV ottenendo testo, JSON e file SRT; lanciare batch su decine di file; e capire quando passare a faster-whisper in Python per pipeline piu' complesse.
Prerequisiti
- Mac con M1/M2/M3 (anche base), Windows 10/11 o una distro Linux moderna.
- Almeno 4 GB di RAM liberi per il modello "small", 10 GB per il "large-v3". GPU non e' obbligatoria, ma su Mac la Metal API e su Windows una scheda NVIDIA accelerano molto.
- Conoscenza minima del terminale (sapere aprirlo e dare un
cdbasta). - ffmpeg installato (su Mac via Homebrew, su Windows con i binari ufficiali). Serve per convertire qualsiasi formato audio in WAV a 16 kHz, l'input che Whisper richiede.
Quale strumento usare e perche'
Le opzioni reali per usare Whisper in locale nel 2026 sono tre:
- whisper.cpp (consigliata come prima scelta): C/C++, zero Python, modelli quantizzati che girano anche su portatili modesti, perfetta per la singola macchina. Funziona benissimo con l'italiano gia' dai modelli small.
- faster-whisper: porting in CTranslate2 con backend Python. E' la scelta giusta se vuoi integrare Whisper in un'app, in un agente o in una pipeline di automazione (per esempio dentro n8n o un server FastAPI). Velocissimo su GPU NVIDIA.
- WhisperX: aggiunge il word-level alignment e la diarization (chi parla quando). E' la scelta migliore quando devi distinguere piu' voci, per esempio in una tavola rotonda o in un'intervista a due. Pesante: richiede una GPU dedicata.
Per la guida useremo whisper.cpp. Costa zero, e' la base anche di molti tool commerciali (es. MacWhisper) e per l'italiano e' piu' che sufficiente con il modello large-v3 o medium.
Installazione passo passo
1. Mac (Apple Silicon o Intel)
- Apri Terminale. Installa Homebrew se non l'hai gia' fatto:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - Installa
git,cmakeeffmpeg:brew install git cmake ffmpeg - Clona il repository e compilalo. Su Apple Silicon attiviamo il backend Metal per usare la GPU integrata:
git clone https://github.com/ggml-org/whisper.cpp.git cd whisper.cpp cmake -B build -DGGML_METAL=ON cmake --build build --config Release
2. Windows
- Installa Git for Windows, CMake (con l'opzione "Add to PATH") e i Visual Studio Build Tools con il workload "Desktop development with C++". Installa ffmpeg dai binari di gyan.dev e aggiungilo al PATH.
- Apri PowerShell:
git clone https://github.com/ggml-org/whisper.cpp.git cd whisper.cpp cmake -B build cmake --build build --config Release - Se hai una GPU NVIDIA, sostituisci con
cmake -B build -DGGML_CUDA=ONdopo aver installato il CUDA Toolkit.
3. Linux (Ubuntu / Debian)
sudo apt update
sudo apt install -y build-essential cmake git ffmpeg
git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp
cmake -B build
cmake --build build --config ReleaseScegliere e scaricare il modello giusto
Whisper viene in piu' taglie. Per l'italiano vale questa regola pratica:
- tiny (75 MB): solo per test. Sbaglia molte parole anche in italiano standard.
- base (142 MB): accettabile per dettati semplici, ma scarso sui nomi propri.
- small (466 MB): buon compromesso per riunioni a basso rumore.
- medium (1.5 GB): scelta consigliata per la maggior parte delle trascrizioni, ottimo italiano.
- large-v3 (3.1 GB): qualita' massima, gestisce meglio audio rumorosi e parole tecniche.
Per scaricare il large-v3 (l'opzione che consiglio se hai almeno 16 GB di RAM):
bash ./models/download-ggml-model.sh large-v3Lo script scarica il modello in formato GGML (i pesi quantizzati che whisper.cpp puo' caricare direttamente) e lo mette dentro la cartella models/. Su disco occupa circa 3 GB.
Prima trascrizione in italiano
Whisper accetta in input WAV a 16 kHz mono. Per qualsiasi altro formato passa prima da ffmpeg:
ffmpeg -i intervista.m4a -ar 16000 -ac 1 -c:a pcm_s16le intervista.wavA questo punto lancia la trascrizione, specificando la lingua italiana con -l it:
./build/bin/whisper-cli -m models/ggml-large-v3.bin -l it -f intervista.wavIl binario stampa il testo a schermo mano a mano. Se vuoi salvare i risultati su file in piu' formati:
./build/bin/whisper-cli -m models/ggml-large-v3.bin -l it -f intervista.wav \
--output-txt --output-srt --output-jsonAl termine trovi intervista.wav.txt (testo puro), intervista.wav.srt (sottotitoli pronti per YouTube e Premiere) e intervista.wav.json (segmenti con timestamp).
Prompt che migliora il risultato
Whisper accetta un initial prompt che funziona come contesto. Inserire vocabolario specifico migliora moltissimo la qualita' sui nomi propri:
./build/bin/whisper-cli -m models/ggml-large-v3.bin -l it -f udienza.wav --prompt "Trascrizione di un'udienza presso il Tribunale di Bologna. Nomi: avvocato Bianchi, dottoressa Romano, imputato Caruso."
Il modello ricorda quei nomi durante la decodifica e li scrive correttamente quando li sente. E' un trucco sottovalutato: provalo sempre quando trascrivi audio con terminologia specialistica.
Batch su decine di file
Se hai una cartella piena di MP3 di lezioni universitarie, lo script seguente per Mac e Linux fa tutto in sequenza:
for f in *.mp3; do
ffmpeg -y -i "$f" -ar 16000 -ac 1 -c:a pcm_s16le "${f%.mp3}.wav"
./build/bin/whisper-cli -m models/ggml-large-v3.bin -l it -f "${f%.mp3}.wav" --output-srt --output-txt
doneSu Windows in PowerShell la sintassi diventa:
Get-ChildItem *.mp3 | ForEach-Object {
$wav = $_.BaseName + ".wav"
ffmpeg -y -i $_.FullName -ar 16000 -ac 1 -c:a pcm_s16le $wav
.\build\bin\whisper-cli.exe -m models\ggml-large-v3.bin -l it -f $wav --output-srt --output-txt
}Faster-whisper: integrazione in Python
Se devi integrare la trascrizione in un'app, considera faster-whisper: e' fino a 4 volte piu' veloce su GPU e ha la stessa qualita'. Installazione e uso:
pip install faster-whisper
from faster_whisper import WhisperModel
model = WhisperModel("large-v3", device="cuda", compute_type="float16")
segments, info = model.transcribe("intervista.wav", language="it", beam_size=5)
for s in segments:
print(f"[{s.start:.2f} -> {s.end:.2f}] {s.text}")Su CPU usa device="cpu" e compute_type="int8", che consuma meno RAM. Il modello viene scaricato automaticamente da Hugging Face.
Errori comuni
- "Could not find ggml-large-v3.bin": il modello non e' stato scaricato. Rilancia lo script
download-ggml-model.sh. - Trascrizione in inglese al posto dell'italiano: hai dimenticato
-l it. Whisper sceglie automaticamente la lingua se non specificata e talvolta inciampa su file con musica iniziale. - Audio "a metallo" o muto: ffmpeg non ha applicato il sample rate corretto. Forza
-ar 16000 -ac 1nei comandi. - Hallucinazioni di Whisper (testo inventato in silenzi lunghi): aggiungi
--vad-filter(in faster-whisper) o spezza l'audio in segmenti di 10-15 minuti. - Su Apple Silicon usa solo CPU: probabilmente hai compilato senza
-DGGML_METAL=ON. Cancella la cartellabuild/e ricompila.
Quando non usare whisper.cpp
Se devi distinguere chi parla, passa a WhisperX o ai servizi commerciali (AssemblyAI, Deepgram) che includono diarization out-of-the-box. Se l'audio e' sotto i 30 secondi e vuoi solo trascrivere voce-in-input in tempo reale, dai un'occhiata a NVIDIA Parakeet o ai modelli di Whisper Live. Se hai gigabyte di audio e vuoi spendere comunque pochi centesimi, OpenAI offre Whisper come API a 0,006 dollari al minuto: comodo, ma il tuo audio passa dai loro server.
Come continuare
Dopo aver preso confidenza, il passo successivo e' costruirsi una piccola interfaccia. Su Mac MacWhisper e' la scelta che molti giornalisti italiani fanno: 60 euro una tantum, basato su whisper.cpp, con drag and drop dei file. Su Linux e Windows lo script di batch e' sufficiente, ma puoi anche montare un mini server FastAPI con faster-whisper e chiamarlo da Obsidian, da n8n o dal tuo workflow editoriale.




