Il suono diventa numeri
Un microfono misura la pressione dell’aria, migliaia di volte al secondo, e scrive ogni misura come un numero. Una registrazione è tutta qui: un elenco lunghissimo di numeri che descrivono come si è mossa una membrana.
La prima cosa che fa qualsiasi sistema di riconoscimento è ridurre quell’elenco. L’audio grezzo contiene molti più dettagli di quanti al parlato ne servano, quindi il sistema lo taglia in fettine corte, in genere di qualche centesimo di secondo l’una, e descrive ogni fettina dicendo quali frequenze ci sono e quanto forti.
Il risultato è un riassunto compatto del suono nel tempo. Volume, altezza e forma del rumore, fettina per fettina. Che chi parla sembri stanco o che la stanza abbia un ronzio resta visibile lì dentro, e più avanti si scopre che la cosa conta.
Il modello cerca schemi che ha già visto
Il riassunto va poi al modello, che è la parte a cui la gente pensa quando dice riconoscimento vocale.
Un modello è un grosso file di numeri prodotto dall’addestramento: si mostrano a un sistema molte ore di parlato registrato accanto al testo corretto, e si aggiustano quei numeri finché non riesce a passare in modo affidabile dall’uno all’altro. Nessuno scrive regole del tipo «questa forma vuol dire una esse». Lo schema viene imparato dagli esempi.
Quello che produce non è certezza, è probabilità. Per ogni tratto di suono il modello ha un’opinione su quali suoni, e poi quali parole, siano stati detti con più probabilità.
Il contesto lavora più di quanto immagini
Il suono da solo non basta, perché moltissime parole si somigliano. «Hanno» e «anno». «A posto» e «apposto». «L’una» e «luna».
I sistemi di riconoscimento risolvono la cosa con il contesto: le parole già prodotte rendono certe parole successive molto più probabili di altre. In pratica il sistema risponde a due domande insieme, che suono era quello e cosa avrebbe senso qui, e le combina.
Questo spiega una frustrazione comune. Detti una frase intera e viene giusta. Detti una sola parola insolita e viene sbagliata. Senza contesto non c’era niente su cui appoggiarsi, quindi tutta la decisione è ricaduta sul suono.
Spiega anche perché i tuoi nomi e il tuo gergo sono difficili. Un modello addestrato sul parlato generale non ha mai incontrato il cognome di una tua collega né la sigla interna della tua azienda, quindi ci mette al posto qualcosa di ordinario che suona simile. È per questo che aggiungere parole a mano aiuta tantissimo: stai fornendo il contesto che mancava.
Perché accenti e rumore sono difficili
I due problemi vengono dallo stesso posto.
Un modello riconosce quello di cui ha sentito molto. Se un certo accento era rappresentato poco nel materiale di addestramento, il sistema ha meno esperienza a cui attingere e va peggio. Non è un giudizio sull’accento: è una conseguenza di quello che al modello è stato mostrato.
Il rumore di fondo è ancora più difficile, perché il microfono raccoglie la stanza insieme a te. Parlato e rumore arrivano mescolati dentro gli stessi numeri, e il modello deve capire quali pezzi fossero parole. Un bar, un’auto, una ventola, qualcun altro che parla: tutto si contende le stesse misure.
I modelli più grandi in genere reggono meglio tutti e due, perché hanno più capacità per rappresentare i casi insoliti. È la ragione pratica principale per cui la dimensione del modello conta.
Dove gira il modello, e perché cambia le cose
Qui la strada si biforca, ed è l’unica decisione che chi usa il prodotto sente davvero.
Il file del modello può vivere su un server. Il tuo apparecchio registra, carica, aspetta e riceve testo. I server hanno memoria, raffreddamento e hardware specializzato, quindi il modello può essere molto grande e molto capace, e può migliorare senza che tu muova un dito.
Oppure il file può vivere sul tuo apparecchio. Non si carica niente, non si aspetta niente, e il riconoscimento funziona che tu abbia segnale oppure no. Il limite è il tuo hardware: un telefono ha qualche gigabyte di memoria condiviso con tutto il resto, nessuna ventola e una batteria da riguardare, quindi il modello deve essere abbastanza piccolo da caricarsi in fretta e da finire prima che ti spazientisci.
Tutto quello che riguarda riservatezza, comportamento offline e velocità discende da quella singola scelta, e chi non la capisce sceglie alla cieca.
Da dove arriva la punteggiatura
Ormai quasi nessuno detta la punteggiatura, quindi il sistema deve inventarsela.
Lo fa attingendo alle stesse due fonti di tutto il resto: il suono, dove le pause e l’intonazione che scende suggeriscono un confine, e la lingua, dove la forma di una frase implica dove vada una virgola. Nessuna delle due è decisiva, ed è per questo che la punteggiatura è la parte che più spesso sembra un po’ storta anche quando ogni parola è corretta.
Spiega anche un’abitudine che conviene prendere. Parlare in frasi complete con pause naturali dà al sistema le prove acustiche di cui ha bisogno. Spegnersi a metà, ricominciare in mezzo a un pensiero o infilare cinque subordinate una dietro l’altra toglie proprio i segnali su cui contava, e la prima cosa a peggiorare è la punteggiatura.
Perché a volte la dettatura sembra lenta
Il riconoscimento, in genere, non può cominciare finché non c’è qualcosa da riconoscere. Molti sistemi aspettano una pausa naturale e poi elaborano quello che hanno appena sentito. Quindi una frase lunga produce una pausa alla fine, più o meno proporzionale a quanto hai parlato e a quanto è grande il modello.
Su un telefono la cosa si vede benissimo. Un modello più piccolo restituisce il testo prima e ogni tanto capisce male; uno più grande aspetta di più e azzecca di più. Non esiste nessuna configurazione che ti dia tutte e due le cose, ed è proprio per questo che certe app offrono una scelta fra le taglie.
Cosa vuol dire tutto questo al momento di scegliere
Le conclusioni pratiche che ne discendono non costano niente.
Parla in frasi complete invece che a parole isolate, perché il contesto lavora più del suono. Tieni il microfono ragionevolmente vicino e fuori dal vento, perché il rumore si mescola al segnale e dopo non si separa più. E aggiungi il tuo vocabolario se l’app te lo permette, perché è l’unico pezzo del problema che puoi sistemare in modo diretto.
Un’altra cosa su cui la gente inciampa
Il riconoscimento lavora su quello che è arrivato al microfono, non su quello che intendevi. Se mangi la fine di una parola, ricominci una frase a metà o lasci calare la voce mentre ti giri dall’altra parte, le prove per quei pezzi sono davvero più deboli e il risultato lo rispecchia.
Saperlo conta perché è l’unica variabile del tutto sotto il tuo controllo, e di solito fa più differenza che cambiare app.
Il modello gira sul telefono
LocalType fa girare il modello sul telefono. È tutta lì la decisione di progetto, e il resto del prodotto ne discende: una dettatura che funziona con la connessione spenta, audio che non viene mai trasmesso, e una scelta fra taglie di modello, così il compromesso fra velocità e precisione è tuo invece che nostro. Le taglie sono da 60, 190 e 539 MB; sul telefono di prova, dotato di 4 GB di memoria, quella di mezzo ha impiegato 4,1 secondi per scrivere 6,9 secondi di parlato.
Vuol dire anche che i limiti descritti qui sopra valgono per lui quanto per chiunque altro. Un telefono fa girare un modello più piccolo di quanto possa fare un server, la precisione non è identica su tutte le diciotto lingue che gestisce, e una stanza rumorosa resta una stanza rumorosa.