martedì 23 febbraio 2016

Confronto di voci

Avendo parlato separatamente di Elsa e di Carla, provo adesso a confrontare direttamente le due voci.
 
Innanzitutto, parto da questo blocco di testo, che mi sembra rappresentativo di ciò che si può trovare in linea e viene da un sito dedicato alle interfacce vocali:
 
Le persone parlano in modo più veloce di quanto non siano capaci di scrivere al computer; la conversazione telefonica offre quindi una buona alternativa all’input attraverso la tastiera. Le applicazioni vocali, infatti, sono mezzi di comunicazione molto versatili; il telefono e l’utilizzo della voce sono strumenti familiari, richiedono uno sforzo fisico minimo e lasciano liberi occhi e mani.
 
Questa è la lettura che ne offre Elsa (Microsoft), su Windows 10, impostata a velocità media:
 
 
Questa è invece la lettura di Carla (Ivona):
 
 
Non mi sembra ci sia confronto: la voce di Carla è molto più naturale (anche se mi colpiscono l’innalzamento di tono e l’allungamento nella pronuncia della parola “offre”). Entrambe le voci, peraltro, riconoscono e pronunciano correttamente le parole straniere inserite nel testo italiano, computer e input.
 
Ecco la lettura di una frase che contiene anche nomi propri e parole straniere di uso meno comune, proveniente dal bollettino AIB:
 
Paul Needham, nel suo Venetian printers and publishers in the fifteenth century, procede a un'indagine serrata sugli stampatori veneziani del '400, tanto noti nel loro insieme alla storia del libro quanto poco indagati nel dettaglio.
 
Tutti e due le voci interpretano correttamente ’400 come Quattrocento. Tuttavia, mentre Elsa legge nomi e parole inglesi con pronuncia inglese, l’interfaccia online di Carla non fa differenza e le legge con pronuncia italiana.
 
Lettura di Elsa:
 
 
Lettura di Carla (Ivona):
 
 
Anche in questo caso, la pronuncia di Carla mostra dei tratti insoliti, per cui non riesco a individuare una ragione precisa: in particolare, mi sembrano molto lunghe le a accentate di serrata e di dettaglio, ma non quelle di stampatori e di indagati. Che siano variazioni inserite a caso per rendere la voce un po’ meno meccanica?
 

venerdì 12 febbraio 2016

Pieraccini, The Voice in the Machine

Roberto Pieraccini, The Voice in the Machine
La migliore sintesi divulgativa sulle interfacce vocali è in lingua inglese, ma è opera di un italiano. The Voice in the Machine (sottotitolo: Building Computers That Understand Speech), pubblicata nel 2012, è un raro caso di alta divulgazione scritta da un addetto ai lavori; e non guasta che all’interno ci siano anche riferimenti alla lingua italiana e a esperienze italiane, a cominciare da quelle dello CSELT. Sono stato quindi ben contento di inserire questo libro nel programma del mio corso di Linguistica italiana II, visto tra l’altro che, semplicemente, non ci sono altri testi che si avvicinino a questo taglio e a questa copertura.
 
Il lavoro ha un’impostazione storica, ma l’ordine cronologico conosce alcune eccezioni. Il primo capitolo, soprattutto, è dedicato a mostrare in forma sintetica ma rigorosa le caratteristiche del linguaggio parlato umano più pertinenti per la discussione successiva. Dalla semantica si passa fino alla fonetica e alle caratteristiche biologiche degli apparati fonatorio e uditivo. Le ultime pagine sono dedicate in buona parte a mostrare la complessità del linguaggio e i motivi per cui i sistemi informatici hanno molta difficoltà a gestirlo.
 
Per il resto il discorso procede in ordine cronologico. Dopo un’introduzione in cui ampio spazio viene dato all’idea tradizionale che produrre il parlato sia più difficile che comprenderlo, i capitoli sono:
 
1. Humanspeak (pp. 1-45)
2. The Speech Pioneers (pp. 47-81)
3. Artificial Intelligence versus Brute Force (pp. 83-107)
4. The Power of Statistics (pp. 109-133)
5. There Is No Data like More Data (pp. 135-166)
6. Lets Have a Dialog (pp. 167-190)
7. An Interlude at the Other End of the Chain (pp. 191-205)
8. Becoming Real (pp. 207-233)
9. The Business of Speech (pp. 235-261)
10. The Future Is Not What It Used to Be (pp. 263-283)
 
Andiamo con ordine. Il secondo capitolo è una rassegna storica che in sostanza parte dal primo tentativo moderno di sintesi vocale, e in particolare dal Voder prodotto dai Laboratori Bell nel 1939. Si passa poi al primo sistema di riconoscimento, AUDREY, prodotto sempre dai Laboratori Bell nel 1952 e capace di riconoscere il nome dei primi nove numeri interi.
 
AUDREY si basava sul semplice riconoscimento delle prime due formanti, cioè delle frequenze a massima energia sonora all’interno delle vocali. Sviluppi immediati furono però impediti da due difficoltà all’epoca insormontabili: distinguere le parole all’interno del parlato continuo e adattarsi alla diversità delle voci individuali. Seguirono tentativi di individuare i singoli elementi fonetici, o fonemi, all’interno della parola; ma questi tentativi (“phonetic segmentation approach”, p. 61) furono frustrati dal fatto che non ci sono transizioni nette tra un fonema e l’altro e i fonemi stessi sono piuttosto variabili.
 
Nel frattempo, tuttavia, si stavano affermando i sistemi per la conversione digitale dei suoni e divenne possibile il “template-matching approach” (p. 65). Le macchine poterono infatti confrontare spettrogrammi digitalizzati con spettrogrammi di riferimento. Per eseguire il confronto, un ostacolo importante era rappresentato dal fatto che la durata di una parola varia moltissimo, non solo da parlante a parlante ma da enunciazione a enunciazione. La gestione matematica di questa complicazione attraverso la tecnica del “dynamic time warping” (p. 71), basata sulla programmazione dinamica, risolse il problema.
 
Questa tecnica “is still the foundation of all modern speech recognizers” (p. 78), anche se di solito non viene più applicata al riconoscimento di singole parole. Soprattutto, però, va notato che questo fu il primo esempio di un approccio puramente matematico al problema, eseguito senza prendere in considerazione questioni linguistiche.
 
Il capitolo 3 è dedicato appunto allo scontro tra gli approcci di questo tipo e quelli basati sull’intelligenza artificiale. Non si rovina la suspense se si rivela subito che a vincere sono state le soluzioni puramente matematiche, basate sulla “forza bruta” e non sulla comprensione delle regole del linguaggio. Nel 1971, l’Information Processing Technology Office della DARPA, all’epoca diretto da Lawrence Roberts, lanciò il programma SUR per il riconoscimento del parlato basato sull’intelligenza artificiale (nel programma era coinvolta anche una figura centrale nello sviluppo dei moderni computer, J. C. R. Licklider). Il programma non riuscì a raggiungere gli obiettivi prefissati, ma permise di notare che sistemi basati sulla forza bruta, come Harpy della Carnegie Mellon, ottenevano risultati molto superiori a quelli dei sistemi basati su regole (p. 92). In particolare, soluzioni come le macchine a stati finiti permettono di trasformare il problema di segmentare il parlato nel problema di trovare (approssimativamente) il percorso migliore all’interno di una rete di intersezioni.
 
Il capitolo 4 descrive il trionfo dell’approccio a forza bruta, che, in particolare attraverso il lavoro di Fred Jelinek alla IBM, ha portato a rimpiazzare gli approcci linguistici con quelli statistici. Alla base di questo trionfo c’è l’uso delle catene di Markov, o meglio, dei modelli di Markov nascosti (HMM), che danno per scontato che gli eventi siano osservabili ma che non si sappia nulla sugli stati che determinano le probabilità degli eventi stessi. Si procede quindi alla cieca, ma con successo. L’uso di uno specifico algoritmo (l’algoritmo di Baum-Welch, p. 127) permette per esempio di trovare la segmentazione più probabile di un corpus mediante la semplice ripetizione di una procedura statistica. Va anche detto che qui la necessità di spiegare argomenti piuttosto tecnici viene soddisfatta solo in parte: le caratteristiche dei modelli di Markov, per esempio, restano poco chiare pur essendo spiegate in modo un po’ troppo denso per il non addetto ai lavori.
 
Nel capitolo 5 si arriva all’inizio degli anni Ottanta e ai primi seri tentativi di costruire macchine in grado di riconoscere davvero il parlato, con il coinvolgimento di aziende come la Texas Instruments, che nel 1978 aveva ottenuto un buon successo per un giocattolo educativo a sintesi vocale, lo “Speak & Spell”. Il corpus TI-DIGITS, creato appunto dalla Texas Instruments, fu uno dei punti di riferimento nel periodo iniziale, seguito dalle valutazioni della DARPA. Ne seguirono miglioramenti graduali dei sistemi, che portarono al progetto ATIS, sempre della DARPA (p. 148); questi miglioramenti resero anche necessario lo sviluppo di sistemi per la misurazione delle prestazioni.
 
“The most important lesson learned in the five years of the ATIS program was how different spontaneous speech is from read speech” (p. 161). In aggiunta, il programma dimostrò che era possibile ottenere risultati anche con il discorso spontaneo. Tuttavia, per l’interazione mancava una componente essenziale: i sistemi sviluppati non potevano fare domande agli interlocutori.
 
La questione del dialogo è quindi centrale per il capitolo 6, anche se la descrizione riguarda più che altro un vicolo cieco e una direzione di ricerca. Il vicolo cieco è il progetto Communicator, lanciato dalla DARPA nel 1997 e chiuso nel 2001. Il progetto era interessante anche per il requisito di supporto per una struttura informatica modulare (i sistemi che supportano il dialogo sono complessi ed è quindi una buona idea comporli di moduli diversi, che comunicano tra di loro attraverso frame). Tuttavia, come viene raccontato nei capitoli successivi, in un contesto in cui ormai le applicazioni commerciali stavano diventando concrete, i progetti di ricerca perdono importanza. La direzione di ricerca promettente, e ancora in sospeso, lanciata da Communicator era invece “the evolution of machine learning to automatically determine an optimal interaction strategy” (p. 181).
 
Per quanto riguarda i risultati, per la lingua inglese i tassi di errore valutati dal NIST per il parlato in lingua inglese raggiungono la stabilità a cavallo del millennio, anche se rimangono piuttosto alti. Le trascrizioni eseguite da esseri umani hanno infatti tassi d’errore collocati tra il 2 e il 4 %, mentre i sistemi automatici arrivano in questo periodo al 13-19 su corpora creati di conversazioni o trasmissioni radiofoniche (p. 188).
 
Il settimo capitolo interrompe l’ordine cronologico per parlare dei problemi di sintesi vocale, e ne parlerò in un prossimo post. L’ottavo capitolo è dedicato invece, appunto, all’evoluzione dei sistemi commerciali. La prima vera applicazione di questo tipo fu un sistema messo in linea nel 1992 dall’AT&T per riconoscere un comando tra cinque: “calling card”, “collect”, “third-party”, “person-to-person” e “operator” (p. 208). Questa semplice applicazione, secondo le stime (un po’ gelide, ammettiamolo) dell’AT&T avrebbe consentito di licenziare seimila operatori…
 
Questioni umane a parte, l’adozione pratica di sistemi simili richiedeva un lavoro enorme, anche quando le tecnologie erano già state sperimentate in laboratorio. La stessa applicazione AT&T richiese l’uso di algoritmi “barge-in” (p. 210) e “word-spotting” (p. 211) creati per l’occasione. Un esito più curioso del lavoro fu l’uso della sintesi vocale per parlare non a esseri umani ma ad altre macchine (p. 211).
 
A questo punto entra in scena il primo nome specializzato ancora oggi rilevante per il grande pubblico: Dragon. L’azienda originaria, Dragon Systems, era stata fondata già nel 1982 da Jim e Janet Baker, ma nel 1997 lanciò il suo prodotto più rivoluzionario: Dragon Naturally Speaking, un programma per personal computer in grado di riconoscere il parlato continuo (contrapposto alle parole isolate), seguito subito dopo da ViaVoice della IBM. Tuttavia:
 
The dream of typing documents, opening and closing files, and issuing commands on a personal computer through voice alone, a dream pursued by IBM, Dragon Systems, and later Apple and Microsoft, was never realized for a number of practical reasons. Chief among these was PC users’ clear preference to control their computers by touch rather than speech deep. Typing, clicking, and double clicking had become a second nature and nearly effortless for most computer users, whereas speaking required more effort and could be impractical in many situations, such as in a noisy room or when sharing an office with other people, where the added issue of privacy arose when working on personal or sensitive documents (p. 213).
 
Inoltre, le guerre dei prezzi e la disponibilità gratuita (per l’inglese) di sistemi di riconoscimento vocale attraverso Windows hanno reso il settore poco redditizio. In compenso, medici e avvocati, abituati a registrare il proprio parlato e a farlo trascrivere, hanno abbracciato prodotti specializzati, e gli smartphone sembrano un settore di sviluppo promettente.
 
Nella realtà, già a partire dalla fine degli anni Ottanta era stata dedicata una certa attenzione a un concetto rivoluzionario: le interfacce vocali (“voice user interface”, VUI; p. 215), come sviluppo anche di tecnologie del tutto prive di capacità di riconoscimento del parlato.
 
Aziende come SpeechWorks e Nuance hanno lavorato nel settore, che, come viene descritto più in dettaglio nel nono capitolo, può portare molti vantaggi immediati anche per le interfacce telefoniche, permettendo di uscire dai classici modelli ad albero (“call flow”). Gradualmente si sono affermati anche standard come Voice XML – mentre nel libro non viene fatta menzione, se ho ben visto, di standard alternativi come SAPI per le voci.
 
Il capitolo decimo conclude e lancia diversi spunti per gli sviluppi futuri, in particolare per quanto riguarda la ricerca vocale (una realtà già ben definita) e le interfacce multimodali. Anche l’epilogo si proietta verso il futuro, accennando a quello che ai tempi della pubblicazione del libro era il recente successo di Siri.
 
In prospettiva egoistica, queste ultime sezioni risultano un po’ troppo sintetiche: una carrellata sullo stato dell’arte sarebbe stata molto utile. Tuttavia ciò toglie poco al libro, che secondo me è un modello di successo anche per il taglio: la prospettiva storica è fondamentale per inquadrare e comprendere bene ciò che sta succedendo adesso. Consiglio quindi senza riserve la lettura del libro di Pieraccini a chiunque sia interessato a questo genere di argomenti… e spero anche che venga aggiornato presto con le ultime novità, e magari venga anche tradotto in italiano.
 
Roberto Pieraccini, The Voice in the Machine. Building Computers That Understand Speech, Cambridge MA, The MIT Press, 2012, pp. xxviii + 325, ISBN 978-0-262-01685-8 (€ 37,08 su Amazon.it). Nota: a p. 35 si cita il caso di Victor Zue, in grado di leggere gli spettrogrammi.
 

martedì 9 febbraio 2016

Le voci sintetiche: Carla di Ivona

Personificazione di Ivona: da Wikipedia in lingua inglese, pagina IVONA
Avendo parlato la settimana scorsa di Microsoft Elsa, vediamo adesso una delle migliori voci sintetiche alternative per l’italiano.
 
L’azienda polacca Ivona (o, più correttamente, IVONA Software) è stata di recente acquistata da Amazon. L’azienda si occupa soprattutto di inglese, ma alla base di tutto ha il sistema multilingue di sintesi vocale IVONA. Questo sistema, descritto in un articolo del 2007 di Michal Kaszczuk e Lukasz Osowski, usa un algoritmo di “Unit Selection with Limited Time-scale Modification” (USLTM), basato su spezzoni preregistrati di parlato che vengono selezionati, modificati e adattati dal punto di vista della tonalità e della durata. Il risultato, a mio giudizio, è di alto profilo.
 
Ivona dispone al momento di 51 voci che coprono 23 lingue: sono tutte lingue indoeuropee, con l’eccezione del turco, che ha peraltro una sola voce (femminile). Per l’italiano le voci disponibili sono due, Carla e Giorgio. Ovviamente si tratta di una voce maschile e di una femminile… Per le altre lingue, invece, si va dalle 17 diverse voci disponibili per l’inglese – regionalizzate con opzioni che vanno dal Galles all’India – alle voci singole create per rumeno, svedese e norvegese.
 
La cosa interessante è che le capacità delle voci possono essere verificate in linea sulla home dell’azienda. Una casella in evidenza permette infatti di scrivere o incollare testo fino a un massimo di 250 caratteri. Non è molto, ma dà un’idea. A me sembra che la voce di Carla sia molto più realistica di quella di Giorgio, ma ammetto di non aver ancora fatto verifiche sistematiche!
 
Detto questo… l’interesse per questo specifico prodotto è dato oggi dal suo rapporto con Amazon. Anche se mi sembra che ciò non sia dichiarato da nessuna parte in modo esplicito, il lavoro di Ivona è probabilmente alla base della voce inglese di Alexa, l’assistente digitale di Amazon. Poiché Alexa è uno dei prodotti più innovativi degli ultimi anni, nel settore delle interfacce vocali, ma è stato finora disponibile solo per l’inglese, vale la pena tenere d’occhio l’evoluzione di Ivona, e in particolare la voce di Carla.
 

giovedì 4 febbraio 2016

Le voci sintetiche: Windows 10 e Microsoft Elsa

La finestra di dialogo Proprietà riconoscimento vocale in Windows 10
Nel mondo delle interfacce vocali, la sintesi è la parte che dona una voce al dispositivo e gli permette di parlare (capacità nota anche come TTS, “Text-to-Speech”). Nell’interazione, è la parte semplice: far “capire” al computer che cosa sta dicendo un essere umano è molto più difficile. Però si tratta comunque di una semplicità relativa. E, soprattutto: senza questa componente è impossibile che l’utente riceva risposte a voce.
 
In generale, oggi la sintesi vocale è compiuta da una voce sintetica con caratteristiche precise, tali da renderla identificabile. Nella maggior parte dei casi le voci sono femminili, ma quelle maschili sono comunque piuttosto numerose.
 
Nella mia esperienza, i sistemi che devono produrre un tipo preciso di enunciati hanno voci di alta qualità, a volte indistinguibili da una registrazione. I sistemi che invece devono produrre potenzialmente qualunque genere di enunciato sono più limitati.
 
Il più diffuso sistema “generalista” è probabilmente quello inserito di default all’interno dei sistemi operativi Windows di Microsoft. Nella versione più recente di Windows, la 10, l’interfaccia in lingua italiana contiene alcune voci che possono essere attivate attraverso un percorso non intuitivo: occorre aprire il pannello di controllo, cliccare su “Accessibilità”, cliccare su “Centro accessibilità” e lì, finalmente, cliccare su “Avvia assistente vocale”.
 
La posizione chiarisce il ruolo assegnato da Microsoft a queste voci: sono solo uno dei componenti di un “Assistente vocale” rivolto a migliorare l’interazione con il computer da parte di utenti con problemi di accessibilità. Non sono quindi viste come parte di un sistema di produttività per la casa o l’ufficio, ma come un sostegno per utenti specifici.
 
Questa idea di base risalta in modo ancora più chiaro dal percorso per modificare le impostazioni delle voci all’interno del “Centro accessibilità”: è possibile cliccare su “Utilizza il computer senza schermo”, link sottotitolato “Per ottimizzare il computer in caso di cecità”. All’interno della finestra “Utilizza il computer senza schermo è quindi possibile non solo attivare l’assistente vocale ma anche cliccare su “Impostazione Sintesi vocale”. Scegliendo questa opzione compare una finestra di dialogo che permette di scegliere la voce; l’unica opzione italiana è però la voce femminile Elsa, mentre in inglese sono disponibili le voci David (maschile) e Zira (femminile). Una barra che permette di regolare la velocità della voce è l’unico altro comando dedicato.
 
Tuttavia, questo non è il percorso principale di modifica. La finestra “Impostazione Sintesi vocale” è un duplicato parziale di quella che immagino sia la finestra principale di gestione delle opzioni. Azionando l’Assistente vocale viene infatti generata una finestra “Impostazioni assistente vocale”. Non è immediato trovare questa finestra, perché compare ridotta a icona e va cercata sulla barra delle applicazioni; peraltro, chiudere questa finestra mi sembra l’unico modo per disattivare l’Assistente vocale. Comunque, dentro la finestra è possibile selezionare non solo la voce e la sua velocità, ma anche la sua tonalità – e noto che la voce di Elsa diventa decisamente ansiosa quando si posiziona il cursore completamente su “alto”!

La finestra Impostazioni assistente vocale in Windows 10
 
Per quanto riguarda l’uso, l’Assistente vocale fa leggere alle voci indicazioni su ciò che si trova in quel momento sullo schermo (menu, titoli delle finestre, eccetera). Permette inoltre di selezionare per esempio una sezione di testo all’interno di un qualunque programma e di farla leggere a voce alta. Una lunga lista di comandi è disponibile premendo contemporaneamente i tasti Blocca maiuscole + F1… se la tastiera permette di farlo, ovviamente.
 
La lettura è un po’ meccanica ma perfettamente comprensibile:
 
 
Per il resto, la lettura non è  integrata in nessun modo con altri programmi, e nemmeno, a quel che vedo, con Office. Non esistono quindi funzioni che permettano facilmente di registrare la voce di Elsa per produrre, per esempio, audiolibri o podcast. Tocca al singolo utente risolvere il problema, configurando il sistema audio del computer e mettendo in campo almeno un programma di registrazione.