Faster-Whisper: trascrivere velocemente, anche senza GPU
Faster-Whisper (SYSTRAN/faster-whisper, licenza MIT) è una reimplementazione di Whisper sul motore CTranslate2. Il progetto dichiara una velocità fino a 4 volte superiore a quella di openai/whisper, a parità di precisione e con un minore consumo di memoria. Nel proprio benchmark su CPU (Intel i7-12700K, modello small), trascrive 13 minuti di audio in 1 minuto e 42 secondi in int8 contro 6 minuti e 58 secondi per openai/whisper — quasi 4 volte più veloce su processore, senza scheda grafica.
Faster-Whisper è una reimplementazione di Whisper che trascrive nettamente più velocemente e consuma sensibilmente meno memoria, a parità di qualità del testo. Non è un nuovo modello: sono gli stessi pesi, eseguiti da CTranslate2, un motore di inferenza diverso pubblicato da SYSTRAN con licenza MIT. È l'implementazione da scegliere come opzione predefinita per trascrivere in locale, e il suo benchmark quantifica con precisione cosa significhi in pratica «rende finalmente ragionevole la trascrizione su processore».
#Cosa è e cosa non è
Whisper indica sia una famiglia di modelli sia l'implementazione di riferimento di OpenAI che li esegue. Faster-Whisper mantiene i modelli e sostituisce l'implementazione con CTranslate2, un motore di inferenza ottimizzato per i modelli di tipo transformer, sviluppato originariamente per la traduzione automatica presso OpenNMT. Il testo prodotto è lo stesso a parità di qualità; ciò che cambia sono il tempo e la memoria necessari per ottenerlo, non il contenuto del risultato finale.
Conseguenza pratica: tutto ciò che sai già sulla scelta delle dimensioni del modello Whisper rimane perfettamente valido, e la maggior parte degli strumenti di trascrizione locale che incontri ogni giorno lo utilizza già internamente, spesso senza necessariamente dichiararlo né documentarlo. Un altro dettaglio utile: a differenza di openai-whisper, FFmpeg non deve essere installato separatamente sul sistema: l'audio viene decodificato dalla libreria PyAV, che include le proprie librerie FFmpeg.
#Da dove viene il guadagno
Il tuo ChatGPT privato e gratuito sulla tua macchina in 1 ora — LM Studio, Ollama, Open WebUI, i tuoi documenti, senza cloud.
- Spazio online a vita
- PDF + file
- Aggiornamenti a vita
- Un motore di inferenza specializzato
- CTranslate2, progettato per eseguire i transformer in modo efficiente, anziché usare direttamente un framework generalista come PyTorch.
- La quantizzazione
- Eseguire il modello a 8 bit riduce l'occupazione di memoria e velocizza l'esecuzione, con una perdita di qualità della trascrizione generalmente impercettibile.
- Elaborazione in batch
- I file lunghi possono essere suddivisi ed elaborati in parallelo (batch_size) anziché rigorosamente uno dopo l'altro, al prezzo di un maggiore consumo di memoria.
- Rilevamento dell'attività vocale
- Saltare i silenzi evita di far lavorare il modello a vuoto — nelle registrazioni delle riunioni, non è affatto trascurabile.
#Il miglioramento, quantificato dallo sviluppatore
SYSTRAN pubblica il proprio banco di prova anziché lasciare che il lettore debba indovinare: la trascrizione di 13 minuti di audio viene confrontata tra diverse implementazioni sullo stesso hardware, riportando i tempi e la memoria utilizzata per ciascuna. Due serie di misurazioni sono particolarmente rilevanti per un utilizzo senza scheda grafica dedicata, che riguarda la maggior parte delle postazioni di lavoro in azienda.
| Implementazione | Precisione | Tempo | Memoria RAM |
|---|---|---|---|
| openai/whisper | fp32 | 6 min 58 s | 2 335 MB |
| faster-whisper | fp32 | 2 min 37 s | 2 257 MB |
| faster-whisper | int8 | 1 min 42 s | 1 477 MB |
| faster-whisper (batch di 8) | int8 | 51 s | 3 608 MB |
Su CPU, la versione int8 di Faster-Whisper trascrive quindi 4,1 volte più velocemente di openai/whisper, utilizzando meno memoria (1 477 MB contro 2 335 MB) — un risultato coerente con l'annuncio generale del progetto, «fino a 4 volte più veloce … utilizzando meno memoria». Su GPU, lo stesso benchmark con il modello large-v2 (RTX 3070 Ti) dà 1 minuto e 03 secondi in fp16 e 59 secondi in int8, contro 2 minuti e 23 secondi per openai/whisper — la quantizzazione offre qui un miglioramento più modesto rispetto alla CPU, ma la memoria video utilizzata scende da 4 708 MB a 2 926 MB.
Il repository pubblica anche un confronto con la variante distil-whisper-large-v3, un modello alleggerito tramite distillazione anziché quantizzazione. Su GPU, con la libreria transformers in fp16 e un'elaborazione in batch da 16, questo modello impiega 46 minuti e 12 secondi per trascrivere il corpus di test con un tasso di errore sulle parole di 14,801; la stessa configurazione con Faster-Whisper impiega 25 minuti e 50 secondi con un tasso di errore sulle parole di 13,527 — più veloce E più preciso in questo specifico test, il che mostra che il vantaggio di CTranslate2 non si limita alla quantizzazione: conta anche il motore di esecuzione, indipendentemente dal modello esatto che si esegue.
Il banco di prova confronta anche Faster-Whisper con whisper.cpp, un'altra reimplementazione molto utilizzata, in particolare su Mac e su hardware embedded. Con il modello large-v2 in fp16, whisper.cpp con Flash Attention impiega 1 minuto e 05 secondi utilizzando 4.127 MB di memoria video, quasi alla pari con Faster-Whisper (1 minuto e 03 secondi, 4.525 MB) — un utile promemoria del fatto che Faster-Whisper non è l'unica opzione veloce, ma semplicemente quella che questa guida documenta più in dettaglio, perché il suo ecosistema Python si integra più facilmente in una pipeline RAG o nella generazione automatizzata di un resoconto.
#Installarlo e trascrivere un primo file
Per l'installazione basta una riga, senza dipendenze di sistema da gestire per la decodifica audio grazie a PyAV, integrata direttamente nel pacchetto Python. Il codice minimo include tre parametri che fanno tutta la differenza rispetto a un uso ingenuo del modello: la scelta esplicita del device (cpu o cuda), il tipo di calcolo (compute_type, dove int8 è il punto di partenza ragionevole su CPU) e l'attivazione del filtro di rilevamento dell'attività vocale.
Tre righe di codice bastano per applicare le due impostazioni che spiegano la maggior parte della differenza misurata nel benchmark ufficiale: compute_type="int8" per la quantizzazione e vad_filter=True per il rilevamento dell'attività vocale. Il parametro language="fr" disattiva invece il rilevamento automatico della lingua, che commette errori più spesso nei primissimi secondi di una registrazione.
#Quale modello, quale precisione
| Dimensione | Memoria indicativa in 8 bit | Per cosa |
|---|---|---|
| Piccolo (small) | Circa 1,5 GB in int8 su CPU, misurato sul banco di prova ufficiale | Prendere appunti rapidamente, audio pulito, una sola lingua |
| Medio | Circa 1–2 GB | Il compromesso abituale per registrazioni lunghe |
| Grande (large-v2) | Circa 2,9 GB in int8 su GPU, misurato sul banco di prova ufficiale | Francese curato, lessico specializzato, audio difficile |
Per il francese, la differenza tra un modello intermedio e un grande modello si nota soprattutto sui nomi propri, sulle sigle e nei passaggi in cui più persone parlano contemporaneamente. Se la trascrizione viene poi fornita a un modello linguistico che redige un resoconto strutturato, un errore isolato su una parola rara conta meno di quanto si creda intuitivamente; se invece deve essere letta così com'è da una persona, l'uso del grande modello è giustificato, al costo del tempo e della memoria indicati sopra in questa guida.
#I parametri che contano davvero
- 01Forzare la linguaIl rilevamento automatico sbaglia nei primi secondi, soprattutto se la registrazione inizia con un silenzio o un breve saluto. Indicare la lingua elimina un'intera categoria di errori.
- 02Attivare la rilevazione dell'attività vocaleEvita di trascrivere i silenzi e riduce le allucinazioni a fine file, in cui il modello inventa testo in assenza di audio.
- 03Scegliere la quantizzazione int8È questo il parametro che spiega la maggior parte della differenza misurata sul banco di prova ufficiale: sulla CPU, riduce il tempo da 2 min 37 a 1 min 42 sul modello small, con meno memoria.
- 04Attivare l'elaborazione in batch se la memoria lo permettebatch_size=8 dimezza ulteriormente il tempo nel benchmark ufficiale, al prezzo di un maggiore consumo di memoria: da riservare alle macchine che hanno memoria disponibile a sufficienza.
#Tre utilizzi concreti su un computer comune
I risultati del benchmark ufficiale acquistano pieno significato se rapportati a casi reali, su una postazione di lavoro senza scheda grafica dedicata — la situazione più comune in azienda.
- Resoconto della riunione
- Trascrivere in int8 una riunione di un'ora su un processore desktop richiede, estrapolando i risultati misurati su 13 minuti, all'incirca sette-otto minuti: un tempo ampiamente compatibile con una trascrizione avviata durante la pausa caffè subito dopo la riunione.
- Archiviazione di podcast o webinar
- Un'elaborazione in batch avviata di notte su un insieme di file lunghi beneficia direttamente del guadagno misurato con batch_size=8, senza che sia necessario monitorare l'esecuzione fino al mattino.
- Sottotitolazione a posteriori di un video
- Faster-Whisper produce il testo grezzo del video; un allineamento parola per parola con WhisperX aggiunge poi i timestamp precisi necessari per un file di sottotitoli realmente utilizzabile nel montaggio.
In tutti e tre i casi, il punto comune è l'assenza di una scheda grafica nell'equazione: le misurazioni su CPU del benchmark ufficiale mostrano che un processore desktop recente è ampiamente sufficiente per un uso corrente, spostando così la vera questione sulla dimensione del modello e sulla quantizzazione, anziché sull'acquisto di hardware aggiuntivo per una semplice esigenza di trascrizione.
#Faster-Whisper o altro
| Esigenza | Scelta |
|---|---|
| Testo, velocemente, localmente, anche senza GPU | Faster-Whisper |
| Timestamp parola per parola per la sottotitolazione | Una pipeline con allineamento forzato (WhisperX) |
| Saper chi ha parlato | Una pipeline con separazione dei parlanti |
| Trascrizione in tempo reale, flusso continuo | Un motore orientato allo streaming, come Vosk |
| Una macchina molto poco potente, senza GPU | Faster-Whisper in int8, modello small o medium |
- WhisperX: timestamp parola per parola e parlanti
- Whisper in locale: le basi
- Dal file audio al resoconto
- Vosk: trascrivere in streaming anziché da file
- Fonte: repository ufficiale di Faster-Whisper e relativo benchmark
- Fonte: motore di inferenza CTranslate2
- Fonte: repository ufficiale openai/whisper (riferimento del confronto)
#FAQ
Faster-Whisper è meno preciso di Whisper?+
Serve una GPU?+
Perché il modello inventa frasi durante i silenzi?+
Quale dimensione del modello scegliere per il francese?+
Può funzionare in tempo reale?+
Qual è il vero vantaggio della quantizzazione int8?+
Faster-Whisper è sempre più veloce delle altre implementazioni?+
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.