Whisper
Aggiornato il
Definizione
Whisper è una famiglia di modelli open source di riconoscimento vocale rilasciata da OpenAI nel 2022, addestrata su 680.000 ore di audio e con una copertura di circa 99 lingue. Dato che i pesi sono liberamente disponibili, Whisper è diventato il motore di molti strumenti locali di trascrizione e dettatura.
Whisper esiste in diverse dimensioni, da tiny a large; i modelli più grandi sono più precisi e più lenti. Trascrive in batch e non in streaming, quindi gli strumenti che mostrano le parole dal vivo di solito lo affiancano a un modello in streaming e usano Whisper per le lingue che il modello in streaming non copre.
Su Apple silicon, i runtime ottimizzati permettono anche ai modelli Whisper più grandi di girare senza fatica sul dispositivo, ed è questo che ha reso possibile l’attuale generazione di strumenti di dettatura privati e locali per Mac.
Le dimensioni, e quale ti serve
Tiny e base sono veloci e approssimativi, vanno bene per un memo vocale. Small è il minimo utilizzabile per la dettatura. Medium e large sono abbastanza precisi per il lavoro professionale e, su un Mac moderno, comunque veloci. Large-v3-turbo è oggi il punto di equilibrio: un modello large con un decoder alleggerito che mantiene quasi tutta la precisione a una velocità diverse volte superiore. La maggior parte degli strumenti per Mac che offrono una scelta propone questi, e per la dettatura la risposta giusta è il modello più grande che restituisce il testo prima che tu perda la pazienza.
Batch, non streaming
Whisper legge una finestra di audio e poi ne scrive la trascrizione. Questo lo rende preciso, perché vede l’intera frase prima di decidere, e lo rende batch: non appare nulla finché non ti fermi. Gli strumenti basati solo su Whisper danno l’impressione di una pausa dopo ogni frase. Gli strumenti che fanno streaming lo affiancano a un modello transducer per le parole dal vivo e tengono Whisper per le lingue che quel modello non gestisce.
Punti deboli noti
Whisper ha allucinazioni sul silenzio e sulle clip molto brevi, producendo frasi plausibili che nessuno ha detto, e può ripetersi sull’audio lungo. Sono problemi ben documentati e ben mitigati: taglia il silenzio prima che parta il modello, tieni i blocchi brevi e considera sospetto qualsiasi output su audio senza parlato. Numeri e nomi propri seguono lo schema solito dell’ASR: diventano le grafie più probabili, non le tue.
Come eseguire Whisper sul Mac dal Terminale
OpenAI pubblica Whisper come pacchetto Python con uno strumento a riga di comando. Il progetto dice che il codice dovrebbe funzionare con Python dalla 3.8 alla 3.11, e che serve lo strumento ffmpeg per leggere i file audio. Questi passaggi presuppongono che tu abbia già Python e Homebrew.
- Apri Terminale e installa ffmpeg con: brew install ffmpeg
- Installa Whisper con: pip install -U openai-whisper
- Trascrivi un file con: whisper audio.mp3 --model turbo
- Al primo avvio aspetta che il modello si scarichi. Viene salvato nella cartella .cache/whisper della tua cartella Inizio e riutilizzato da lì in poi.
- Trova la trascrizione nella cartella corrente. Di base Whisper scrive file txt, vtt, srt, tsv e json.
- Aggiungi --language seguito dal nome di una lingua, per esempio --language Japanese, se vuoi saltare il rilevamento automatico.
- Esegui whisper --help per vedere tutte le opzioni.
Whisper turbo e large: i dati pubblicati
La tabella di OpenAI indica per il modello large 1.550 milioni di parametri, circa 10 GB di memoria video e una velocità relativa di 1x. Il modello turbo ha 809 milioni di parametri, circa 6 GB e circa 8x. OpenAI descrive turbo come una versione ottimizzata di large-v3 con un calo minimo di precisione, ed è il modello predefinito nello strumento a riga di comando.
Questi dati hanno due avvertenze. Le velocità sono state misurate su una scheda grafica NVIDIA A100 trascrivendo l’inglese, e OpenAI dice che la velocità reale può variare molto a seconda della lingua, della velocità di parlato e dell’hardware. Inoltre turbo non è addestrato per la traduzione, quindi restituisce la lingua originale anche quando gli chiedi di tradurre.
- tiny: 39 milioni di parametri, circa 1 GB, circa 10x.
- base: 74 milioni di parametri, circa 1 GB, circa 7x.
- small: 244 milioni di parametri, circa 2 GB, circa 4x.
- medium: 769 milioni di parametri, circa 5 GB, circa 2x.
- large: 1.550 milioni di parametri, circa 10 GB, 1x.
- turbo: 809 milioni di parametri, circa 6 GB, circa 8x.
Whisper sa tradurre? Cosa fa con le altre lingue
Whisper è stato addestrato per due compiti: trascrivere il parlato nella sua lingua e tradurre in inglese il parlato in altre lingue. Delle sue 680.000 ore di addestramento, circa 438.000 sono audio in inglese con trascrizioni in inglese, circa 126.000 sono audio non in inglese con trascrizioni in inglese e circa 117.000 sono audio non in inglese con una trascrizione nella stessa lingua, in 98 lingue.
Ecco perché la traduzione va in una sola direzione. Aggiungi --task translate per ottenere testo in inglese da un parlato non inglese, e usa per questo il modello medium o large, come consiglia OpenAI. Whisper non traduce il parlato inglese in altre lingue.
Le dimensioni tiny, base, small e medium esistono anche in versioni solo inglese, con nomi che finiscono in .en. OpenAI dice che queste tendono a funzionare meglio per l’inglese, soprattutto tiny.en e base.en, e che la differenza diventa meno significativa per small.en e medium.en.
Le domande più frequenti.
Whisper è gratuito?
Sì. I modelli sono open source con licenza MIT e girano sul tuo hardware. Il lavoro sta nel costruirci intorno uno strumento di dettatura utilizzabile, ed è quello che fanno pagare la maggior parte delle app di dettatura locali per Mac.
Whisper può girare su un Mac senza il cloud?
Sì, e bene. I runtime ottimizzati per Apple silicon eseguono i modelli grandi in locale a velocità utilizzabili. Ogni strumento locale di dettatura e trascrizione per Mac sul mercato usa così Whisper o un modello simile.
Whisper mostra il testo in streaming mentre parlo?
Non nativamente. Trascrive un blocco dopo che il blocco è finito. Gli strumenti che mostrano le parole dal vivo usano un modello in streaming accanto a Whisper e lo riservano alle lingue che il modello in streaming non copre.
Quanta memoria serve a Whisper?
OpenAI indica circa 1 GB di memoria video per i modelli tiny e base, circa 2 GB per small, circa 5 GB per medium, circa 6 GB per turbo e circa 10 GB per large.
Che differenza c’è tra Whisper base e base.en?
base.en è addestrato solo per l’inglese, mentre base è multilingue. OpenAI dice che i modelli .en tendono a funzionare meglio per l’inglese, soprattutto nelle dimensioni tiny e base.
Whisper può tradurre dall’inglese in altre lingue?
No. Il compito translate di Whisper trasforma il parlato in altre lingue in testo inglese. Il modello turbo non è addestrato affatto per la traduzione, quindi per quel compito usa medium o large.