L’ANALISI
Granite Speech su WebGPU: dettatura locale nel browser
Analisi pratica della demo IBM Granite Speech su WebGPU: dettatura locale, requisiti, pesi ONNX, latenza dichiarata e limiti.

In breve: La demo mostra che un modello speech-to-text da 473 milioni di parametri può eseguire dettatura continua interamente nel browser desktop: microfono e audio non lasciano il dispositivo. Il compromesso è un download iniziale di circa 550 MB, dipendenza da WebGPU e prestazioni ancora da verificare su hardware diverso dal test IBM.
Che cosa è stato reso eseguibile
Lo Space statico usa Granite Speech 5.0 470M TurboCTC esportato in ONNX q4f16 e un secondo modello per punteggiatura e maiuscole. La pipeline cattura audio a 16 kHz, aggiorna parole provvisorie durante il parlato e conferma il segmento alla pausa.
Perché WebGPU cambia il confine dei dati
Inferenza, buffer audio e riconciliazione del testo avvengono nel browser. Secondo il progetto, l’audio non lascia il dispositivo: è un confine operativo diverso da una normale API cloud, anche se codice e pesi vengono inizialmente scaricati dalla rete.
Requisiti e ingombro reale
Servono Chrome o Edge desktop con WebGPU; il mobile non è supportato. Il primo accesso scarica circa 312 MB per il riconoscitore, 209 MB per la punteggiatura e 26 MB di runtime, poi gli asset vengono mantenuti nella cache del browser.
Come leggere prestazioni e accuratezza
Il README riporta circa 300 ms per finestra su M1 Max e testo provvisorio a 0,4-0,7 secondi dal parlato. Il WER in-browser dichiarato è 6,78% sul piccolo campione LibriSpeech usato dagli autori; hardware, accenti, rumore e linguaggio reale possono cambiare sensibilmente il risultato.
Condizioni e limitazioni
Le misure sono dichiarate nel README della demo su un M1 Max e su otto minuti di LibriSpeech dev-clean, non sono un test indipendente. Il supporto mobile è escluso e il fallback WASM indicato dal progetto non mantiene una latenza da dettatura live.
Checklist pratica
- Aprire la demo solo su un desktop con WebGPU attiva.
- Controllare il download iniziale e la persistenza degli asset nella cache.
- Provare microfono, rumore, accento e durata realmente previsti.
- Confrontare latenza WebGPU e fallback WASM sul dispositivo target.
- Verificare in DevTools che nessun audio venga inviato a endpoint remoti.