9. Conclusioni

Il principale compito di questa tesi è stato quello di affrontare il problema dell'adattamento di reti neurali al parlatore, cercando di ottenere buoni miglioramenti delle prestazioni con quantità diverse di frasi di adattamento.

Quando le frasi di addestramento appartenenti ad un singolo parlatore sono molte, la strategia ottima consiste nel riadattare tutta la rete con tutte le frasi del parlatore. Sebbene questo metodo sia banale, esso offre i risultati migliori, con una percentuale di riconoscimento, per il parlatore DM del database italiano DB-Micro, del 84.86%. Si è ottenuto un aumento del 13.26% rispetto al 71.60% offerto da una rete indipendente dal parlatore (SI). Per addestrare tutta la rete, servono però un gran numero di frasi provvenienti da un singolo parlatore. Il risultato migliore è stato infatti ottenuto con 1200 frasi, anche se l'andamento dei grafici fa presagire un possibile ulteriore aumento delle prestazioni, addestrando il modello con ulteriori frasi dello stesso parlatore.

Avendo a disposizione un modello perfettamente funzionante, se addestrato con molte frasi, i nostri studi si sono concentrati sull'adattamento veloce. Nella maggior parte delle applicazioni non è possibile avere un sufficiente numero di frasi di addestramento per ogni singolo utente dell'applicazione. Spesso, infatti, non è possibile fare una lunga sessione di addestramento del modello, prima di iniziare ad utilizzarlo. Altre volte l'applicazione viene utilizzata per poco tempo da utenti diversi. Nell'utilizzo pratico è meglio avere un sistema che risponda con poche frasi di adattamento in modo buono, anche se con risultati inferiori rispetto al massimo ottenibile.

I primi risultati si sono ottenuti con la strategia J-LIN (capitolo 5): mediante una modifica della tecnica LIN, nota da tempo in letteratura. Con questa tecnica dopo 7 frasi di adattamento del modello si ottiene un aumento del 3.42% rispetto alla rete SI. Nella realtà il modello inizia ad ottenere miglioramenti costanti, cioè senza oscillazione delle prestazioni, dopo le 30 frasi (+6.21%). Le prestazioni di questa tecnica continuano ad aumentare fino a 300 frasi (+8.43%), punto in cui ulteriore materiale non porterebbe ad un sostanziale aumento delle prestazioni e la tecnica di adattamento di tutta la rete supera la strategia J-LIN. Oltre all'aumento delle prestazioni la tecnica J-LIN offre, rispetto alla più nota LIN, una diminuzione dell'occupazione di spazio in memoria nel memorizzazione i modelli adattati al parlatore. J-LIN occupa uno spazio 7 volte inferiore rispetto a LIN e 98 volte rispetto a tutta la rete.

Nella nostra abbiamo esplorato metodi che permettono di ottenere dei miglioramenti buoni in quell'intervallo da 1 a 7 frasi di adattamento, in cui le altre tecniche hanno prestazioni oscillanti, arrivando anche al di sotto del valore fornito dalla rete SI.

La tecnica di interpolazione dei pesi, esposta nel capitolo (7), riuscendo a conglobare in un unica rete i benefici di un adattamento accurato all'ambiente e di uno rapido al parlatore, ha ottenuto ottimi risultati. Rispetto alla tecnica J-LIN, per funzionare, ha bisogno di un consistente numero di frasi di adattamento all'ambiente. Nella maggior parte delle applicazioni ciò è ragionevole. Infatti, basta registrare le frasi pronunciate dai vari parlatori durante il normale utilizzo del riconoscitore, per raccogliere il materiale necessario all'adattamento.

Applicando l'interpolazione dei pesi, si ottengono, con una sola frase di adattamento al parlatore, risultati migliori anche rispetto alla rete adattata all'ambiente. Di questa tecnica sono state fatte due implementazioni, una funzionante per l'interpolazione di J-LIN e una per l'interpolazione di tutta la rete. Fino alle 10 frasi di adattamento le prestazioni delle due implementazioni sono paragonabili. Dopo una sola frase, l'interpolazione dell'intera rete offre un miglioramento del 3.02%, mentre J-LIN del 2.94%. Dopo 2 frasi J-LIN (+4.14%) supera l'interpolazione di tutta la rete (+3.65%), fino alle 600 frasi di adattamento, in cui l'interpolazione del livello J-LIN offre un aumento del 8.43% contro il 10.04% offerto dall'interpolazione di tutta la rete. È da notare che l'interpolazione, sia di J-LIN che di tutta la rete, offre sempre perstazioni migliori o paragonabili all'utilizzo non interpolato delle rispettive tecniche. Il punto in cui è più evidente la differenza di prestazioni tra l'interpolazione e le tecniche standard è proprio nelle prime frasi di addestramento.

Ultimato lo studio delle tecniche di trasformazione del modello, la nostra ricerca si è diretta verso un'altra classe di tecniche, quelle di categorizzazione del parlatore. Lo spirito di queste tecniche è, con poche frasi di un determinato parlatore, riuscire ad associargli un modello pre-addestrato che riesca a migliorarne le prestazioni in fase di riconoscimento. Molti studi sono stati fatti sul campo degli HMM, ottenendo ottimi risultati, poco è stato ancora proposto nel campo delle reti neurali. Nella tesi è stato sviluppata un'architettura, K-LIN, in grado di riconoscere con buona precisione l'identità di un parlatore: dato un modello vocale per ognuno dei $K$ parlatori, e delle frasi di uno dei $K$ parlatori, riconoscere a quale modello sono associate le frasi.

Negli esperimenti si sono utilizzati 4 parlatori. Con i modelli dei singoli parlatori addestrati in modo consistente, 285 frasi per ogni modello, dopo solo 3 frasi si è ottenuta una percentuale di riconoscimento del parlatore del 100% per ognuno dei quattro parlatori. Con 2 frasi la percentuale si attesta a valori ancora molto buoni: tutti i parlatori sono riconosciuti al 100%, tranne uno che è riconosciuto con una precisione del 98%.

Gli esperimenti facendo variare il numero di frasi di adattamento del modello, hanno messo in evidenza come la precisione dipenda direttamente dal numero di frasi con cui i modelli vengono addestrati. Solo con un numero sufficiente di frasi, i modelli riescono ad ottenere una precisa separazione tra le caratteristiche vocali dei parlatori. Per avere prestazioni accettabili, bisogna adattare i modelli con almeno 14 frasi, ottendo una prestazione media del 90% utilizzando 10 frasi per il riconoscimento. Per ottenere un riconoscimento del 100% per ogni parlatore occorrono almeno 100 frasi di addestramento. Al crescere del numero di parlatori, anche i modelli devono essere addestrati in modo migliore.

K-LIN, oltre ad essere utilizzata per l'identificazione del parlatore, ha anche un'ottima applicabilità per l'adattamento. Un nuovo utente che utilizza il riconoscitore per la prima volta, dovrà compiere una sessione di addestramento del modello, che verrà salvato dal riconoscitore. Tutte le volte che si troverà a riutilizzare il riconoscitore del parlatore, verrà fatto un riconoscimento, che permetterà di associare, in modo trasparente all'utente, il modello al parlatore. Questa tecnica è un'ottima base per la realizzazione del clustering, di cui parleremo in seguito.

Sebbene non serva direttamente all'adattamento del parlatore, è stata sviluppata la tecnica del learning-rate variabile. Essa può essere applicata su qualsiasi rete di tipo multi-layer perceptron, anche non prettamente sviluppata per il riconoscimento vocale. È semplicemente una tecnica per addestrare in modo migliore la rete. Utilizzando il database inglese siamo riusciti ad ottenere un aumento delle prestazioni del 5.20%.

Sebbene le reti neurali siano più difficili da adattare rispetto agli HMM, si è visto come, con opportune tecniche, si riescano ad ottenere anche in questo campo buoni risultati. Queste esperinenze hanno prospettive per future evoluzioni.

Nella tecnica di interpolazione dei pesi è stato analizzato il comportamento del coefficiente di interpolazione. Esso varia notevolmente in funzione del numero di frasi di addestramento del modello adattato al parlatore. Si è ricavata una legge in grado di correlare le due grandezze. Dagli esperimente sul database inglese TIMIT si è potuto constatare come esso vari anche in funzione del parlatore. Sarebbe molto interessante trovare un metodo, anche approssimato, che permetta di trovare il coefficiente di interpolazione ottimale, cioè quello che fornisce i risultati migliori, per uno specifico parlatore. Sfortunatamente serve un database con molti parlatori e con un numero grande di frasi per parlatore, attualmente non in nostro possesso.

La tecnica K-LIN serve a riconoscere un parlatore. Utilizzata in un'applicazione di adattamento al parlatore, essa obbliga l'utente ad una lunga sessione di addestramento del modello. Con l'aumentare del numero di parlatori, la tecnica perde di precisione e lo spazio occupato in memoria per salvare i modelli di ogni singolo parlatore aumenta. Un'idea per risolvere questi problemi consiste nel raggruppare parlatori con caratteristiche vocali simili in clusters. Una volta trovato uno spazio metrico che rappresenti in modo veritiero una misura di distanza tra parlatori, ci sono diversi algoritmi noti in letterature per compiere il clustering. In questo modo si ottengono un numero ridotto di modelli rappresentanti, sebbene in modo approssimato, le caratteristiche vocali di buona parte dei parlatori esistenti. In fase di utilizzo del riconoscitore, all'arrivo di un nuovo utente, si può utilizzare la struttura K-LIN per riconoscere quale cluster deve essergli associato. Durante tutta la sessione di riconoscimento verrà utilizzato il modello vocale riferito al cluster. Il clustering permette, con l'utilizzo di poche frasi per la scelta del modello, di ottenere subito buone prestazioni per parlatori anche diversi da quelli utilizzati per il clustering.

Uno degli aspetti più difficili da affrontare è la scelta di un adeguato spazio metrico, capace di misurare le differenze vocali dei parlatori. Un modo può essere quello di utilizzare direttamente i coefficienti $\lambda $ della tecnica K-LIN. Un'altra soluzione consiste nel fare il riconoscimento utilizzando un modello di un parlatore, con le frasi di test di tutti i parlatori. Una volta ottenute le percentuali di riconosciemento utilizzando il modello di ogni parlatore, si possono conglobare quelle più vicine in un unico modello.

Un altro problema critico consiste su come trattare gli outliers. Gli outliers nel clustering sono, in ogni caso, quei parlatori con caratteristiche molto differenti dalla media. Essi non possono trovare collocamento in nessuno dei cluster. I parlatori outlier sono anche quelli che vengono riconosciuti in modo peggiore dalla rete SI. Una prima soluzione è quella di utilizzare un modello separato per gli outlier. Questo potrebbe portare ad un funzionamento non ottimo della tecnica K-LIN, se i modelli riferiti agli outliers non sono addestrati con un sufficiente numero di frasi. L'altra soluzione è di eliminare gli outlier dal cluster e, riuscendo ad ottenere una misura di confidence dalla tecnica K-LIN, quando questa è bassa utilizzare per quei determinati parlatori un'altra tecnica, quale l'interpolazione dei pesi.

In questo modo, per i parlatori categorizzati in modo preciso, si riescono ad ottenere ottimi risultati, per quelli con caratteristiche vocali particolari viene creato un modello ``su misura'', più lento nel dare risultati buoni, ma certamente migliore di uno generale.

Stefano Scanzio 2007-10-16