Registrate un memo vocale di trenta secondi, lo date in pasto a un modello open source scaricato in dieci minuti, e ottenete una trascrizione con punteggiatura, maiuscole e persino i nomi propri scritti giusti. Fino a pochi anni fa questo risultato richiedeva software commerciali costosi, addestramento sulla singola voce e una buona dose di pazienza. Oggi lo fa Whisper, il modello di riconoscimento vocale rilasciato da OpenAI nel settembre 2022 con licenza open source, e lo fa in decine di lingue, italiano compreso.
Il problema dell’allineamento, CTC, la decodifica e i modelli con attenzione stanno nel libro.
Capire come funziona Whisper significa capire un’idea più generale: un modello di trascrizione moderno non «ascolta» nel senso in cui lo facciamo noi. Traduce un problema acustico in un problema linguistico, e poi lo risolve con lo stesso attrezzo che usano i modelli di linguaggio: un transformer che genera token, uno alla volta.
Il suono è un segnale, non una parola
Il punto di partenza è l’onda sonora: una sequenza di numeri che descrive come varia la pressione dell’aria nel tempo. Whisper lavora su audio campionato a 16.000 valori al secondo. Trenta secondi di parlato sono quindi quasi mezzo milione di numeri grezzi — e in quei numeri non c’è scritto da nessuna parte dove finisce una parola e ne comincia un’altra.
L’analogia utile è quella dello spartito. L’onda sonora è come la registrazione di un’orchestra: tutto mescolato insieme, in un unico flusso. Lo spartito, invece, separa le note per altezza e le dispone nel tempo. Il primo passo di Whisper fa esattamente questo: trasforma l’onda in uno spettrogramma, una specie di spartito del parlato.
Dallo spettrogramma alla «immagine» del parlato
Lo spettrogramma si ottiene tagliando l’audio in finestre brevissime e chiedendo, per ciascuna finestra, quanta energia c’è a ogni frequenza. Il risultato è una griglia: il tempo scorre in orizzontale, le frequenze salgono in verticale, e il colore di ogni cella dice quanto quella frequenza è presente in quell’istante.
Whisper usa una variante chiamata spettrogramma log-Mel: le frequenze sono raggruppate in bande spaziate secondo la scala Mel, che imita la sensibilità dell’orecchio umano (distinguiamo bene le frequenze basse, molto peggio quelle alte), e le intensità sono compresse con un logaritmo, di nuovo perché il nostro udito percepisce i volumi in modo logaritmico. È una scelta pragmatica: si butta via l’informazione a cui un ascoltatore umano non farebbe caso, e si tiene quella che serve a distinguere una «p» da una «b».
A questo punto il problema è cambiato natura. Non abbiamo più un segnale audio, ma qualcosa che assomiglia a un’immagine: una griglia di numeri con struttura locale. Ed è qui che entra in gioco il transformer.
La pipeline di Whisper: l’onda sonora diventa uno spettrogramma log-Mel, l’encoder lo trasforma in una rappresentazione acustica, il decoder genera i token di testo uno alla volta — compresi i token speciali come quello della lingua.
Encoder e decoder: chi ascolta e chi scrive
Whisper è un transformer encoder-decoder, la stessa architettura nata per la traduzione automatica. La divisione dei compiti è netta. L’encoder riceve lo spettrogramma — tagliato in blocchi da trenta secondi — e produce una rappresentazione interna: una sequenza di vettori che riassume «cosa si sente» in ogni porzione dell’audio. Il decoder fa il lavoro opposto: partendo da quella rappresentazione, genera il testo un token alla volta, come farebbe un modello di linguaggio, guardando sia i token già scritti sia la rappresentazione acustica prodotta dall’encoder.
Se vi serve un’immagine concreta: l’encoder è l’interprete in cabina che ascolta e prende appunti fitti, il decoder è il collega che legge quegli appunti e detta la frase finita. Nessuno dei due, da solo, saprebbe fare il lavoro completo.
La conseguenza è importante: la trascrizione è un atto di generazione, non di lettura. Il decoder sceglie ogni parola valutando insieme l’evidenza acustica e la plausibilità linguistica. È per questo che Whisper scrive «l’ho visto ieri» e non «lo visto ieri»: non perché senta l’apostrofo, ma perché il suo modello del linguaggio sa quale sequenza di token è più probabile. Ed è per lo stesso motivo che, quando l’audio è rumoroso o silenzioso, Whisper può «allucinare» frasi plausibili ma mai pronunciate — il rovescio della medaglia di ogni sistema generativo.
I token speciali: una sola rete, tanti mestieri
Un dettaglio elegante del design di Whisper è l’uso dei token speciali. Il decoder non parte mai da zero: la sequenza di output comincia con token di controllo che dichiarano la lingua rilevata (ad esempio <|it|>) e il compito richiesto — trascrivere nella lingua originale oppure tradurre in inglese. Anche i timestamp sono token: il modello può emettere marcatori temporali che dicono a quale secondo dell’audio corrisponde ogni frase.
In pratica, compiti che un tempo richiedevano sistemi separati — identificazione della lingua, trascrizione, traduzione, allineamento temporale, perfino il rilevamento del silenzio — diventano tutti lo stesso gesto: generare la sequenza di token giusta. È il formato dell’output a definire il compito, non l’architettura.
La trascrizione non è lettura, è generazione: ogni parola è una scommessa che pesa insieme quello che si sente e quello che ha senso scrivere.
Il vero ingrediente: 680.000 ore di audio imperfetto
L’architettura di Whisper, presa da sola, non era una novità nel 2022. La scelta decisiva fu un’altra: addestrare il modello su circa 680.000 ore di coppie audio-testo raccolte dal web, in decine di lingue, con un approccio che gli autori chiamano weakly supervised — supervisione debole. Invece di usare pochi dataset piccoli e trascritti alla perfezione da annotatori umani, OpenAI puntò su una quantità enorme di dati rumorosi: sottotitoli, trascrizioni approssimative, audio di qualità variabile, filtrati con euristiche per scartare il peggio.
La scommessa era che la varietà battesse la pulizia: un modello che ha sentito accenti, microfoni scadenti, musica di sottofondo e registrazioni telefoniche generalizza meglio di uno cresciuto in laboratorio, anche se ogni singolo esempio è meno accurato. I risultati diedero ragione a questa impostazione: Whisper si dimostrò robusto zero-shot, cioè su dati mai visti e senza adattamento, proprio dove i modelli precedenti — eccellenti sul loro benchmark di addestramento — crollavano.
C’è però un’asimmetria che riguarda direttamente chi lavora in italiano: la quantità di dati non è distribuita uniformemente tra le lingue. L’inglese domina il dataset, e le prestazioni nelle altre lingue seguono grosso modo la quantità di ore disponibili. L’italiano è tra le lingue ben servite, ma dialetti, terminologia tecnica e parlato sovrapposto restano terreni dove la qualità cala sensibilmente.
Perché vi riguarda
Whisper è rilasciato con licenza open source, esiste in più taglie (dalla versione tiny, che gira su un portatile, alle versioni large) e ha implementazioni ottimizzate come whisper.cpp e faster-whisper che lo rendono utilizzabile senza GPU dedicate e senza mandare l’audio a un servizio esterno — un dettaglio non da poco quando i file contengono riunioni aziendali o interviste.
Se producete contenuti, verbalizzate riunioni, sottotitolate video o costruite prodotti con input vocale, la trascrizione automatica di qualità è passata da servizio a pagamento a componente che si scarica e si integra in un pomeriggio. Ma vale la pena tenere a mente come funziona il meccanismo: un sistema che genera testo plausibile va sempre verificato quando la posta in gioco è alta — un verbale legale, una cartella clinica, una dichiarazione attribuita a qualcuno. Whisper sbaglia poco, e proprio per questo sbaglia in modo convincente. Sapere che sotto il cofano c’è uno spettrogramma trasformato in token, e non un orecchio, è la migliore difesa contro l’errore che non ti aspetti.

I commenti sono riservati agli iscritti.
Accedi per commentare