OpenAI Whisper: guida pratica alla trascrizione audio
OpenAI Whisper è uno dei sistemi di riconoscimento vocale automatico più potenti disponibili oggi, completamente open source e gratuito. Addestrato su oltre 680.000 ore di dati audio multilingue provenienti da tutto il web, Whisper è in grado di trascrivere parlato in oltre 50 lingue, aggiungere punteggiatura in modo automatico e persino tradurre il testo in inglese. In questa guida pratica vedremo come installarlo, configurarlo e usarlo al meglio, sia da riga di comando sia tramite Python, con attenzione particolare al supporto per l'italiano.
Che cos'è OpenAI Whisper e come funziona
Whisper è un modello di intelligenza artificiale di tipo transformer progettato per la trascrizione automatica del parlato (ASR, Automatic Speech Recognition). A differenza di molti concorrenti commerciali, è distribuito con licenza MIT, il che significa che chiunque può scaricarlo, modificarlo e usarlo senza costi di licenza.
Il funzionamento interno si basa su un'architettura encoder-decoder: l'audio viene prima convertito in uno spettrogramma di Mel, poi elaborato dall'encoder e infine decodificato in testo token per token. Questo approccio consente a Whisper di gestire bene gli accenti regionali, il rumore di fondo e il parlato sovrapposto, problemi che mettevano in crisi i sistemi più vecchi.
Caratteristiche principali
- Supporto per oltre 50 lingue, tra cui l'italiano, il francese, il tedesco e lo spagnolo
- Rilevamento automatico della lingua senza configurazione aggiuntiva
- Aggiunta automatica di punteggiatura e maiuscole
- Modalità di traduzione verso l'inglese integrata
- Output in molteplici formati: TXT, VTT, SRT, TSV e JSON
- Completamente gratuito e open source (licenza MIT)
I casi d'uso più comuni
- Trascrizione di interviste e podcast
- Sottotitolazione automatica di video
- Verbali di riunioni e conferenze
- Accessibilità per persone con difficoltà uditive
- Dettatura di testo in ambiente professionale
I modelli disponibili: quale scegliere
Whisper non è un modello unico, ma una famiglia di cinque varianti con dimensioni e requisiti hardware molto diversi tra loro. La scelta del modello giusto dipende dalle risorse disponibili e dal livello di accuratezza richiesto.
Tabella dei modelli Whisper
- Tiny: 39 milioni di parametri, circa 1 GB di VRAM, velocità ~32x rispetto al modello Large. Adatto a PC con poche risorse.
- Base: 74 milioni di parametri, circa 1 GB di VRAM, velocità ~16x. Buon compromesso per uso quotidiano su CPU.
- Small: 244 milioni di parametri, circa 2 GB di VRAM, velocità ~6x. Equilibrio ottimale tra velocità e precisione.
- Medium: 769 milioni di parametri, circa 5 GB di VRAM, velocità ~2x. Consigliato per trascrizioni professionali.
- Large: 1.550 milioni di parametri, circa 10 GB di VRAM, velocità 1x (riferimento). Massima accuratezza disponibile.
Per chi lavora solo con CPU, i modelli tiny e base sono quelli praticamente utilizzabili. Con una GPU consumer come una RTX 3060, si può usare comodamente il modello small o medium. Per l'italiano, il modello small offre già risultati eccellenti nella maggior parte dei casi.
Installazione di Whisper su Windows, Mac e Linux
Prima di installare Whisper è necessario avere Python 3.9 o successivo e FFmpeg installato sul sistema. FFmpeg è una libreria fondamentale per la gestione dei file audio e video.
Installazione di FFmpeg
- Windows: scarica FFmpeg dal sito ufficiale e aggiungi la cartella
binalla variabile d'ambiente PATH - Mac: usa Homebrew con il comando
brew install ffmpeg - Ubuntu/Debian: usa il gestore pacchetti con
sudo apt install ffmpeg
Installazione di Whisper tramite pip
Con Python e FFmpeg pronti, l'installazione di Whisper è semplice:
- Apri il terminale o il prompt dei comandi
- Esegui:
pip install -U openai-whisper - Per supporto GPU con CUDA:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 - Verifica l'installazione con:
whisper --help
Al primo utilizzo, Whisper scaricherà automaticamente i pesi del modello scelto. Il file viene salvato in una cartella locale e riutilizzato nelle sessioni successive senza bisogno di ri-scaricare.
Come usare Whisper da riga di comando
L'interfaccia a riga di comando di Whisper è immediata e consente di trascrivere un file audio con un solo comando. La sintassi di base è la seguente:
- Trascrizione semplice:
whisper audio.mp3 - Con specifica del modello:
whisper audio.mp3 --model medium - Con lingua forzata all'italiano:
whisper audio.mp3 --language Italian - Con output in formato SRT:
whisper audio.mp3 --output_format srt - Con traduzione in inglese:
whisper audio.mp3 --task translate
Opzioni avanzate da riga di comando
--device cudaper forzare l'uso della GPU--device cpuper forzare l'uso della CPU--output_dir /percorso/cartellaper specificare dove salvare i file--verbose Falseper ridurre l'output nel terminale
Specificare la lingua con --language Italian è consigliato quando si trascrive audio in italiano: evita il passaggio di rilevamento automatico e migliora la velocità complessiva del processo.
Integrazione di Whisper in Python
Per un controllo più fine, Whisper può essere importato direttamente in uno script Python. Questo è utile quando si vuole integrare la trascrizione in un'applicazione più ampia, processare file in batch o personalizzare il comportamento del modello.
Esempio base di utilizzo in Python
- Importa la libreria:
import whisper - Carica il modello:
model = whisper.load_model("small") - Trascrivi il file:
result = model.transcribe("audio.mp3", language="it") - Stampa il testo:
print(result["text"])
Trascrizione con segmentazione temporale
Il risultato restituito da model.transcribe() è un dizionario che contiene non solo il testo completo, ma anche una lista di segmenti con il timestamp di inizio e fine. Questo è molto utile per la generazione automatica di sottotitoli:
result["segments"]contiene una lista di dizionari- Ogni segmento ha i campi
start,endetext - Si possono filtrare, modificare e riformattare liberamente prima di esportare
Ottimizzazione della memoria in Python
- Usa
torch.float16per ridurre l'uso di VRAM del 50% con risultati quasi identici - Elabora file lunghi in blocchi usando la libreria
pydubper spezzare l'audio - Libera la memoria GPU dopo la trascrizione con
del modeletorch.cuda.empty_cache()
Whisper per la trascrizione di podcast e video in italiano
Uno degli impieghi più pratici di Whisper per gli utenti italiani è la trascrizione di contenuti audio e video. Con una qualità audio ragionevole, i modelli medium e large raggiungono un tasso di accuratezza molto elevato anche con parlato veloce, dialetti o terminologia tecnica.
Consigli per ottenere trascrizioni di qualità
- Usa file audio con campionamento a 16.000 Hz o superiore: è il formato preferito da Whisper
- Riduci il rumore di fondo in pre-processing con strumenti come Audacity o Adobe Audition
- Evita file compressi con bitrate molto basso (sotto i 64 kbps): la qualità della trascrizione ne risente
- Per audio stereo con più parlanti, considera strumenti di diarizzazione come pyannote.audio da usare in abbinamento a Whisper
- Verifica sempre il risultato su terminologia medica, legale o tecnica: anche il modello Large può commettere errori su nomi propri e sigle
Formati audio supportati
- MP3, MP4, M4A, WAV, FLAC, OGG, WebM e altri tramite FFmpeg
- È possibile trascrivere direttamente dal file video senza estrarre prima la traccia audio
- I file lunghi (oltre 30 minuti) vengono elaborati internamente in finestre da 30 secondi
Alternative e strumenti basati su Whisper
Oltre all'uso diretto, Whisper è diventato il motore di numerosi strumenti e interfacce grafiche che ne semplificano l'utilizzo anche per chi non ha esperienza con la riga di comando.
Interfacce grafiche e servizi cloud
- Faster-Whisper: implementazione ottimizzata con CTranslate2, fino a 4 volte più veloce con la stessa accuratezza
- Whisper.net: porta il modello nell'ecosistema .NET per sviluppatori C#
- Azure AI Speech: Microsoft offre Whisper come servizio gestito su Azure con SLA garantito
- Whisper API di OpenAI: versione cloud accessibile via REST API, senza bisogno di hardware locale
Per chi preferisce evitare l'installazione locale, l'API di OpenAI offre il modello Whisper a un costo molto contenuto per ora di audio trascritta, con la comodità di non dover gestire driver CUDA o dipendenze Python.
Whisper vs altre soluzioni di speech-to-text: confronto pratico
Whisper non è l'unica soluzione disponibile per la trascrizione automatica del parlato. Prima di sceglierlo, è utile confrontarlo con le alternative più diffuse sul mercato, sia gratuite sia a pagamento, per capire in quali scenari si distingue davvero e dove presenta invece dei limiti.
Whisper vs Google Speech-to-Text
- Google offre un servizio cloud con latenza bassa e ottima integrazione nell'ecosistema Google, ma ha un costo a consumo per grandi volumi
- Whisper, eseguito localmente, non invia audio a server esterni, garantendo maggiore privacy dei dati
- Google Speech-to-Text eccelle nella trascrizione in tempo reale (streaming), funzionalità che Whisper nella versione base non supporta nativamente
- Per trascrizioni offline e batch, Whisper è competitivo o superiore in termini di precisione, specialmente con lingue diverse dall'inglese
Whisper vs Azure Speech Service
- Microsoft offre Whisper come servizio gestito su Azure, con supporto enterprise, SLA e integrazioni con il proprio ecosistema cloud
- La versione Azure è adatta per aziende che necessitano di conformità normativa, scalabilità e supporto tecnico dedicato
- La versione open source locale è preferibile per progetti personali, accademici o startup con budget limitati
- I risultati in termini di qualità della trascrizione sono equivalenti, poiché il modello sottostante è lo stesso
Quando scegliere Whisper open source
- Quando la privacy dei dati è prioritaria e non si vuole inviare audio a servizi cloud di terze parti
- Quando si lavora offline o in ambienti con connettività limitata
- Quando si vogliono processare grandi volumi di audio senza costi variabili
- Quando si vuole integrare la trascrizione in una pipeline personalizzata con Python
- Per progetti di ricerca, sviluppo di applicazioni o automazione di workflow aziendali interni
Domande frequenti
Whisper funziona bene con l'italiano parlato velocemente?
Sì, specialmente con i modelli medium e large. Whisper è stato addestrato su audio in italiano di diversa provenienza, inclusi podcast, discorsi e interviste. Il parlato veloce riduce leggermente la precisione, ma i risultati sono comunque nettamente superiori a quelli dei sistemi tradizionali. Si consiglia di specificare --language Italian per evitare che il rilevamento automatico rallenti il processo.
È possibile usare Whisper senza GPU?
Sì, Whisper gira anche su CPU, ma con i modelli più grandi i tempi di elaborazione diventano molto lunghi. Per uso su CPU, i modelli tiny e base sono i più adatti: trascrivono un minuto di audio in pochi secondi anche su macchine modeste. Il modello medium su CPU può richiedere diversi minuti per ogni minuto di audio.
Whisper può trascrivere audio con più parlanti?
Whisper trascrive il testo ma non identifica i singoli parlanti (funzione nota come diarizzazione). Per ottenere anche questa informazione è necessario combinare Whisper con una libreria dedicata come pyannote.audio o Resemblyzer. Esistono pipeline open source già pronte che uniscono diarizzazione e trascrizione in un unico flusso di lavoro.
Quali formati di output produce Whisper?
Whisper produce file in cinque formati diversi: TXT (solo testo), VTT (sottotitoli per browser), SRT (sottotitoli per lettori video), TSV (tabella con timestamp) e JSON (dati strutturati con segmenti e metadati). È possibile generarli tutti contemporaneamente con l'opzione --output_format all.
Whisper è gratuito anche per uso commerciale?
Sì. Il modello open source di Whisper è distribuito con licenza MIT, che permette l'uso commerciale senza restrizioni. L'unico vincolo è mantenere la nota di copyright originale nel codice. L'API cloud di OpenAI basata su Whisper ha invece un costo a consumo, ma il modello locale rimane completamente libero.
Come si aggiorna Whisper all'ultima versione?
È sufficiente eseguire il comando pip install -U openai-whisper. Il flag -U (upgrade) aggiorna automaticamente il pacchetto all'ultima versione disponibile su PyPI. I pesi dei modelli scaricati in precedenza rimangono validi e non devono essere ri-scaricati a meno di aggiornamenti espliciti dei modelli stessi.