giovedì 25 Novembre 1999

UNA MACCHINA CHE PARLA
Roberto Saracco e Margherita Penza, Ricercatori CSELT Centro Studi e Laboratori Telecomunicazioni Torino

"Nell'ottica di rendere più semplice e facile lo scambio di informazioni tra l'uomo e le macchine, da tempo si sta studiando, in centri di ricerca di tutto il mondo, di estendere agli elaboratori elettronici una facoltà considerata specifica degli esseri umani, la possibilità di comunicare attraverso il linguaggio parlato".
Così Stefano Sandri, un ricercatore dello Cselt, apriva nel 1985 un articolo su Le Scienze per illustrare i progressi e le speranze nel settore della sintesi della voce da parte di un calcolatore elettronico.
A più di dieci anni di distanza, il colloquio vocale tra uomini e macchine è però ancora limitato a piccole nicchie ed i progressi sembrano siano stati molto limitati.

Un calcolatore con la bocca
Verso la fine degli anni '70 esistevano già numerosi esempi in varie lingue di calcolatori in grado di leggere un testo scritto. Il parlare ovviamente non è una semplice conversione in voce di un testo scritto, ma questo costituiva un meccanismo dimostrativo particolarmente convincente delle capacità realizzate. Alcuni calcolatori avevano anche imparato a cantare ed anzi erano migliori cantanti che parlatori.
Le strade per insegnare a parlare, adottate dai ricercatori, erano sostanzialmente due: una si basava sulla creazione di un modello del parlato umano (di come cioè le diverse attività cerebrali e muscolari portavano alla vocalizzazione), l'altra utilizzava frammenti molto piccoli di parlato umano che opportunamente combinati permettessero di esprimere qualunque concetto.
Questi due approcci sono ancora oggi utilizzati e, come si vedrà, non sono del tutto alternativi Anzi tendono a combinarsi in vario modo.

Imparare dall'uomo
Se si riuscisse a creare un modello del parlato umano tramite un insieme di regole sarebbe possibile esprimere qualunque frase. Quanto più il modello è rappresentativo di tutti gli aspetti del parlato tanto più si riuscirebbe a ricreare una parlata dal timbro naturale. Questa rappresentatività richiede il contributo di esperti di fonetica, linguistica, acustica, teoria dei segnali, elettronica e informatica.
La soluzione generale è ancora fuori dalla portata delle attuali conoscenze ed i ricercatori hanno scelto di concentrare i loro sforzi per realizzare modelli della cosiddetta sintesi articolatoria (sintassi, lessico, vocalizzazione); ovvero di quella parte di produzione della voce che riguarda i vari organi del canale vocale umano. In questo approccio si tralascia la costruzione del modello delle attività cerebrali che portano dal concetto alla costruzione della rappresentazione della frase (rappresentazione concettuale e semantica). In altri approcci invece si modella anche la struttura profonda della frase.

L'insieme di regole da costruire per la sintesi articolatoria è piuttosto complesso, ma un vantaggio importante sta nella poca memoria che risulta necessaria per far parlare il calcolatore. Questo è forse il motivo principale per cui all'inizio i ricercatori hanno insistito molto su questo approccio. La memoria era una risorsa scarsa. Peraltro l'esecuzione di queste modelli richiede una notevole capacità di elaborazione, il che limitava questo tipo di approccio al laboratorio.
Una variante alla sintesi articolatoria è la sintesi per formanti: in questo caso si fa riferimento alle caratteristiche acustiche del canale vocale in termini di risonanze e antirisonanze. Viene creata una serie di "generatori" di suono, simulando le caratteristiche spettrali dei diversi suoni tramite composizioni in serie e in parallelo di vari risuonatori, ciascuno accordato su frequenze specifiche dette "formanti". Le regole di sintesi descrivono le posizioni delle formanti nei diversi fonemi e regole apposite descrivono la variazione delle formanti nel passaggio da un fonema al successivo, ovvero il fatto che il suono che noi produciamo può essere funzione del suono che produrremo successivamente (co-articolazione).
L'aspetto più interessante di questi approcci è la continua interazione che viene attivata tra i diversi livelli e che consente di variare il parlato sulla base del contesto globale. Così il singolo fonema, che deve essere pronunciato, sarà variato sulla base del fonema precedente e di quello seguente, della parola complessiva e della sua posizione nella frase, del tipo di frase e del significato che questa assume nel contesto.

Un puzzle di suoni
Nella sintesi per frammenti la frase parlata viene costruita giustapponendo sequenze opportune di pezzetti di voce. Ciascun pezzetto di voce viene ricavato segmentando la voce di un parlatore umano e memorizzandole le parti. Quando serve viene prelevato ed inserito a formare la frase parlata.
È interessante capire il processo di frammentazione: se "vediamo" l'immagine di una parola in termini di onda sonora (spettrogramma) non osserviamo una netta separazione tra una "lettera" e la successiva. Dove andiamo allora a tagliare la voce per enucleare una vocale, una sillaba, una parola?
Negli spettrogrammi si nota che vi sono dei tratti di bassa energia sonora: se si agganciano due "pezzi" di voce in quei tratti il nostro orecchio non percepirà discontinuità e la voce sembrerà naturale. Lo stesso vale se la separazione, e la successiva ricomposizione, avviene in tratti ad energia costante quali si verificano a metà (circa) di una vocale.
Importante è anche la scelta della voce da frammentare. Per ottenere dei frammenti di tipo neutro e quindi adatti alla ricomposizione per la lettura di testi si utilizzavano dei parlatori a cui veniva chiesto di pronunciare frasi senza senso (e che come tali non inducevano il lettore a dare enfasi particolari). Un esempio: "devo dire papapa chiaramente". Questa frase era utile per isolare frammenti di "pa".
Una volta registrata la frase parlata, un operatore specializzato analizzava la forma d'onda corrispondente e decideva dove sezionare, memorizzando poi il frammento con la sua descrizione per il successivo utilizzo. Il processo era ovviamente lungo e complesso e costituiva di per sé un limite al numero di frammenti che si potevano identificare e memorizzare.
La conformazione del nostro apparato vocale dà origine a moltissimi suoni: gli studiosi si sono accordati per classificarli in un numero limitato di fonemi fondamentali che in modo più o meno buono li rappresenta tutti. Inoltre il suono emesso non è una sequenza di fonemi, ma un continuo di fonemi e transizioni da un fonema all'altro e questo è ciò che il nostro orecchio percepisce. Per cercare di catturare le transizioni da un fonema all'altro sono stati "inventati" i difoni, la concatenazione della seconda metà di un fonema con la prima metà del fonema successivo.
Sappiamo anche che il fenomeno della co-articolazione porta ad introdurre delle variazioni alla pronuncia e quindi diventa necessario intervenire sui difoni. Quanto e quando occorre intervenire?
E' abbastanza intuitivo che quanti più difoni abbiamo memorizzato e tanto più facile dovrebbe essere trovare un difono adatto (che cioè non necessita di variazioni), peraltro quanti più sono i difoni che memorizziamo tanto maggiore è lo spazio di memoria richiesto e la difficoltà di scelta.
Venti anni fa la sintesi per la lingua italiana realizzata da Cselt utilizzava 150 difoni con un'occupazione di memoria di 100.000 byte. Nella sintesi recentemente utilizzata in alcune applicazioni, quale quella per la lettura degli orari ferroviari attivata recentemente dalle Ferrovie dello Stato, e basata su di un sintetizzatore vocale realizzato nel 1992, si utilizzano 1200 difoni risultanti da una composizione di 45 fonemi base per la lingua italiana con un'occupazione di circa 4 milioni di byte.
La voce risultante ha una buona intelligibilità, ma mantiene una timbrica metallica che immediatamente viene percepita come "non umana". Come mai una voce ricostruita a partire da una voce umana diventa "non umana" solo per il fatto di averla frammentata e ricomposta?
Ciò che rende innaturale la frase vocalizzata è una non corretta distribuzione del tono, delle durate e delle intensità dei suoni e una impropria collocazione delle pause, quello che in termini tecnici si chiama prosodia: il modo cioè con cui la frase è pronunciata. A questo punto occorre intervenire con un insieme di regole che sulla base di quanto viene detto e del suo significato riescano a introdurre una pronuncia corretta.

Ciò può essere realizzato interagendo con i livelli più alti della catena che dal concetto porta alla vocalizzazione oppure (almeno in molti casi) facendo ricorso ad un maggior numero di difoni per scegliere quello più adatto "in termini di somiglianza".
Questo è l'approccio seguito dai ricercatori dello Cselt nella realizzazione di un nuovo sistema di sintesi che in effetti ha consentito di ottenere una voce quasi indistinguibile da una voce naturale.
Per la scelta dei fonemi e dei difoni si è partiti da circa 200.000 frasi che sono state analizzate in termini statistici e quindi ridotte ad un insieme di 1500 frasi, che sono rappresentative ed hanno una intrinseca facilità di pronuncia. Queste ultime sono state fatte leggere ad una persona e registrate da un calcolatore. Un programma sviluppato apposta ha analizzato in modo automatico le frasi registrate, isolando i fonemi, difoni e segmenti di parole, e quindi scegliendo quelli da memorizzare (vengono memorizzati sia fonemi distinti sia gli allofoni, quei fonemi che rappresentano lo stesso suono ma articolato in modo diverso, e i difoni o frammenti di parole più significativi in termini di ricorrenza). La banca vocale risultante occupa uno spazio di oltre 160 milioni di byte.
La ricostruzione viene effettuata andando a scegliere i frammenti (difoni o segmenti di parola) che meglio si adattano tra loro avendo le stesse caratteristiche acustiche (in genere si cerca di trovare il livello minimo di energia in quanto il nostro orecchio pone più attenzione al crescere dell'energia) ed allocando i vari frammenti in modo tale che la frase vocalizzata abbia un andamento naturale.
È possibile cambiare il timbro della voce per dare l'impressione di parlatori diversi? Il passaggio da un timbro maschile ad uno femminile non presenta eccessivi problemi. Con un programma ad hoc sarebbe possibile "spostare" in fase di vocalizzazione certi insiemi di frequenze caratterizzanti i diversi frammenti memorizzati per fare apparire come femminile quella che prima era una voce maschile.
Il sistema realizzato è molto soddisfacente in termini di comprensibilità di lettura di un testo scritto e in termini di prestazioni. Se attivato su un normale PC è in grado di gestire 50-60 canali in contemporanea, cioè di leggere testi diversi ad una sessantina di richiedenti.
Non è invece in grado di leggere interpretando il testo come farebbe un attore. Per arrivare a questo occorre interagire in modo molto stretto con i livelli di significato, cioè essere in grado di capire che cosa si sta leggendo, portandoci nel dominio della comprensione, essenziale per il riconoscimento vocale.

Un calcolatore con le orecchie
Secondo la tradizione il Buddha diceva che abbiamo due orecchie ma una sola bocca per parlare poco ed ascoltare molto. Oggi un calcolatore può ricevere suoni in modo codificato e disporre di programmi che identificano i fonemi. Si è visto che ad una parola potrebbero corrispondere milioni di vocalizzazioni e se questo pone problemi a livello di sintesi nell'identificazione di quale scegliere si può facilmente immaginare quali problemi ponga nel processo inverso, cioè risalire alla parola dai suoni percepiti.
Prendiamo per esempio la traduzione di una frase parlata in una frase scritta. In questa trasformazione perdiamo un'enorme quantità di informazioni (dal timbro del parlatore, all'enfasi posta su certi vocaboli, all'ammiccamento degli occhi che potrebbe ribaltare il significato della frase).
Lo stesso programma che analizza le parole parlate per identificare i frammenti da inserire nella banca dati vocale può costituire un primo tassello del processo di riconoscimento (solo uno in quanto quel programma conosce le frasi che vengono dette e va a cercare nei suoni la corrispondenza con i diversi segmenti di frase, mentre nel caso del riconoscimento in generale non si sa quale sia la frase che sarà pronunciata).
L'identificazione di un fonema (e quindi l'identificazione di una particolare lettera o sequenza di lettere) non è quasi mai un evento certo, ma piuttosto un evento più o meno probabile. Per aumentare la probabilità di identificazione occorre analizzare anche i fonemi precedenti e seguenti e verificare se l'insieme di identificazioni probabili è essa stessa probabile. In altre parole se riconosco con una certa probabilità la lettera "a" e questa si trova in una sequenza di identificazione che propone "c-a-n- e" dato che la parola "cane" esiste nel vocabolario la probabilità di riconoscimento corretto aumenta. Se nel contesto della frase la parola "cane" non ha senso ma lo avrebbe la parola "cene" allora è possibile che il riconoscimento corretto non sia "a" ma "e". Si noti che "a" potrebbe essere correttamente riconosciuta ma che sia non corretto il riconoscimento di "n" (ad esempio la parola è "cade").
Questo processo, a prima vista molto complicato, è abbastanza simile a quello adottato dal nostro cervello che tende a riconoscere le cose sentite in termini di probabilità. Questo avviene anche per altri tipi di riconoscimento: è tipico il non accorgersi di un errore di battitura leggendo un testo perché il nostro cervello se sa che in un certo punto deve esserci la lettera "a" trascura il fatto che ci sia invece scritta un'altra lettera.
Se si ha bisogno di un riconoscimento certo il sistema costruisce uno scenario di "riconoscimenti plausibili" e se questo ne comprende più di uno si attiva un'interazione con il parlatore per accertare la correttezza del più probabile. Ad esempio il sistema può richiedere: "desidera andare da Torino a Roma? Risponda sì o no." La differenza sonora tra un sì ed un no consente sempre di riconoscere la risposta e quindi di avere conferma del riconoscimento oppure di procedere con una nuova domanda per chiedere conferma dello scenario avente la seconda probabilità o per richiedere nuovamente le informazioni.
E' ovvio che quanto più limitato è l'insieme delle parole pronunciabili, tanto più affidabile è il processo di riconoscimento.
La strategia si basa proprio sulla constatazione che man mano che si riconosce qualcosa si escludono le alternative non coerenti cercando di mantenere il più limitato possibile l'insieme delle parole da riconoscere. Se il riconoscitore non è più in grado di riconoscere una parola nell'insieme di quelle che ritiene possibili, l'analisi riparte dall'inizio formulando nuove ipotesi. In alcuni casi il riconoscitore si arrende e pone al parlatore alcune domande che lo aiutano a ritrovare la bussola.
In alcuni casi interessa solo la comprensione di alcuni aspetti: ad esempio in quello di un'applicazione che debba fornire un orario ferroviario.
Nella frase "devo andare a Milano perché mia zia si è ammalata" quello che interessa riconoscere è che il richiedente vuole "andare a Milano" e quindi il riconoscitore può trascurare la seconda parte. Con un insieme di interazioni è possibile realizzare un dialogo che può apparire abbastanza naturale.
Un sistema che sfrutta tecnologie di riconoscimento probabilistico del contesto (riconoscitori fuzzy) è quello realizzato dalla Carnegie Mellon University: questo riconoscitore estrae da una frase, anche lunga e complessa, fatta da un intervistatore che si rivolge ad un personaggio famoso ricreato in modo virtuale una domanda a cui cerca di dare una risposta componendo frasi pronunciate da quel personaggio. Il sistema è molto convincente e l'intervistatore ha l'impressione che il personaggio famoso sia in ascolto e risponda a quanto gli è stato chiesto.
Uno degli aspetti che contribuiscono alla percezione di naturalezza del dialogo è la possibilità di parlare quando si vuole, anche interrompendo. Questo è un grosso problema per un riconoscitore, specie via telefono. Non a caso spesso si sente che il riconoscitore premette alla domanda una frase del tipo "risponda solo dopo il bip".
Nuovi sistemi di riconoscimento uniti a filtri particolari che distinguono la provenienza dei suoni rendono possibile questo tipo di dialogo.

Tuttavia, una cosa è dare una impressione di naturalezza ad un dialogo come se si fosse in presenza di un'altra persona in contesti limitati, un'altra è essere in grado di "reggere" una conversazione superando il test di Turing per quanto riguarda sintesi e riconoscimento.
Progressi ve ne saranno ancora nei livelli vocali del dialogo ma per un salto di qualità occorrerà che il calcolatore riesca a diventare quello che molti avevano pronosticato sarebbe diventato: un cervello elettronico.
La strada da percorrere non solo è lunga, ma sembra sempre più lunga man mano che maturiamo nuova comprensione di ciò che è necessario fare e che otteniamo nuovi risultati. Saremo i primi ad essere contenti se un articolo su Le Scienze tra dieci anni ci smentirà clamorosamente.

Roberto Saracco
Margherita Penza
Tratto da "Le Scienze" edizione italiana di "Scientific American" n. 375 - novembre 1999

Per informazioni: Extramuseum

[indietro]