La possibilità di comunicare a voce che ha finora distinto l’uomo dagli altri animali sarà presto condivisa con gli automi. Forse perché percepiamo la voce della mamma fin da dentro la sua pancia, oppure perché si impara prima a parlare che a scrivere, la voce occupa un ruolo speciale nelle nostre capacità espressive, al punto da affermare che l’interfaccia vocale sta diventando un requisito fondamentale per sviluppare una intelligenza artificiale propriamente detta!
I passi di un percorso
Da quando tra gli anni ’80 e ’90 mi sono occupato di tecnologie vocali sono stati fatti passi da gigante, al punto che attualmente parlare a telefoni, computer ed altri oggetti, e sentirsi rispondere a tono, è divenuta esperienza comune. In soli 50 anni la modalità di interazione uomo-macchina è passata da schede perforate e stampanti, ai video terminali con tastiera (’70), alle interfacce grafiche con mouse e finestre (’80), fino ai touchscreen di telefoni e tablet (’00). Ma solo da qualche anno l’aumento delle prestazioni dell’hardware da un lato, e l’accessibilità di ampie basi di dati da un altro, hanno permesso alle tecnologie genericamente note come Reti Neurali di conseguire eccezionali tassi di riconoscimento vocale accompagnati da una fantastica naturalezza delle voci artificiali. Al tempo stesso le Reti Neurali giocano ormai un ruolo fondamentale anche nell’aspetto più squisitamente linguistico o se vogliamo intellettivo, ossia la comprensione del linguaggio (scritto) naturale, permettendo di chiudere la catena
\mathtt{voce\rightarrow testo\rightarrow comprensione\rightarrow elaborazione\rightarrow testo\rightarrow voce}
L’approccio end-to-end
Ciò che da sempre ha caratterizzato le tecniche di riconoscimento e sintesi vocale è stata l’ingegnerizzazione delle conoscenze fino ad allora formalizzate da parte dei competenti del settore, ovvero linguisti e fonetisti. Concetti come fonemi, allofoni, formanti, intonazione, coarticolazione, prosodia, fonologia, varianti regionali ed inflessioni emotive sono stati mutuati dalle tecnologie vocali per produrre modelli algoritmici di percezione e produzione acustica alla base del funzionamento delle interfacce vocali. Ma lo sviluppo della ricerca secondo tale filosofia sembra essersi interrotta circa a metà degli anni ’10, quando i risultati offerti dall’approccio neurale si sono mostrati inconfutabilmente superiori a quelli fino ad allora possibili. E la cosa sorprendente è che tale miglioramento è avvenuto nella più completa ignoranza delle competenze linguistico-fonetiche a cui ci si era ispirati fin li!
Le reti neurali basano il loro funzionamento su una fase di apprendimento (supervisionato) in cui viene ripetutamente utilizzata l’uscita che si desidera ottenere in corrispondenza di ciascuno di una vasta serie di esempi (il dataset) di ingresso, in modo che durante tale fase la rete modifichi i propri parametri al fine di ridurre l’errore di volta in volta commesso tra l’uscita desiderata e quella calcolata dalla rete. L’approccio viene detto end-to-end quando, saltando le rappresentazioni intermedie di natura linguistico-fonetico, la rappresentazione di uscita di un riconoscitore è direttamente il testo ortografico (o nel caso di un sintetizzatore vocale, quella di ingresso). In pratica ciò significa delegare alla rete la scelta di costruire una sua rappresentazione intermedia, indipendente da quella definita dagli umani, che anche se basata su conoscenze reali e condivise, resta sempre una teoria della realtà tra le tante possibili, probabilmente non la migliore per lo specifico compito assolto da una interfaccia vocale.
Alla ricerca del significato
Un aspetto per il quale la rete neurale conferma invece la teoria linguistica è quello che definisce un testo e la sua pronuncia come due diversi significanti (nel piano dell’espressione) di uno stesso significato, o piano del contenuto. La conferma deriva dal fatto che l’architettura di rete neurale che meglio si presta alla soluzione del compito del riconoscimento o della sintesi vocale è quella mutuata dagli approcci alla traduzione automatica, il cui scopo è trovare una corrispondenza tra due sequenze ortografiche che veicolano lo stesso significato, ma in due diverse lingue. In tal senso una rete neurale bene allenata a svolgere il ruolo di interfaccia vocale deve prima astrarre dalla sequenza di ingresso (voce o testo) una rappresentazione concettuale, per poi esprimerla nuovamente nella rappresentazione di uscita (testo o voce).
Il caso Mycroft
Un ambito in cui le interfacce vocali trovano la massima espressione è quello degli assistenti vocali, ovvero quei dispositivi (e software associato) con cui interagiamo verbalmente, come per il caso degli smart speaker Alexa e Google Home, in cui è presente oltre alla funzione di riconoscimento e sintesi vocale, anche quella di comprensione. Il loro utilizzo spazia dalla scelta di brani musicali alla ricerca di ricette di cucina, al controllo di luci tapparelle e cancelli automatici, fino ad arrivare a discutere con l’Internet delle cose. Oltre ai prodotti più noti ed affermati, ne esiste uno in particolare completamente Open Source, Mycroft, che permette di approfondire le tecniche utilizzate, studiarle ed adattarle ai propri scopi, come ad esempio… alla propria lingua!
L’analisi storica
Un aspetto su cui Mycroft punta molto è la privacy degli utenti: perché permettere la presenza in casa propria di un microfono sempre acceso, a totale beneficio dei big data collezionati dai giganti del web? La cosa mi ha incuriosito ed affascinato, al punto che ho scritto una vera e propria presentazione in PDF in cui si analizzano punto per punto gli aspetti coinvolti, svolgendo una analisi storica dell’evoluzione delle tecnologie vocali: sul fronte del riconoscimento vocale si illustrano i collegamenti tra Dynamic Time Warping, Hidden Markov Models, algoritmo di Viterbi, HMM-DNN, Connectionist Temporal Classification ed RNN-Trasducer. Sul versante della sintesi vocale vengono esposte le basi degli approcci parametrico, concatenativo e statistico, per poi approfondire quello di Tacotron, dei vocoder neurali, e dell’attenzione. Sono infine presenti numerosi collegamenti agli articoli originali, alle fonti di approfondimento, ed al codice pubblicato.
Se interessa anche te, dagli uno sguardo, hai visto mai si potesse lavorare assieme su qualche aspetto per adattare Mycroft all’italiano? Si lo so, è necessario utilizzare Linux, io ne sono utente da più di venti anni, e vivo felice 🙂
Dona la tua voce
In particolare, sto seguendo una tesi di laurea in cui si vuole allenare la rete neurale di Mycroft preposta alla detezione di una parola di risveglio in italiano. La wakeword è quella che l’assistente vocale attende di sentire per attivarsi, ed iniziare ad ascoltare veramente ciò che abbiamo da dire. A questo scopo qui sul Blog è presente una pagina dove trovare l’interfaccia di registrazione che consente di partecipare alla raccolta delle voci necessarie all’allenamento. Hai l’occasione per partecipare anche tu alla raccolta di voci: sei dei nostri?
Immagine di Chesky_W