SINTESI VOCALE

PANORAMICA La sintesi vocale () è la tecnica per la riproduzione artificiale della voce umana. Un sistema usato per questo scopo è detto sintetizzatore vocale e può essere realizzato tramite software o via hardware. Ci si può chiedere, indipendentemente dall’applicazione che si vuole creare, se sia realmente necessario che la qualità della riproduzione debba essere alta, se la voce debba suonare come quella di un essere umano oppure se una voce dal suono meccanico possa tranquillamente essere sufficiente [6]. L'esperienza ha indicato che le persone sono molto sensibili, non tanto alle parole che sono dette, ma al modo in cui esse sono state pronunciate. Quindi l’obiettivo dei sistemi di sintesi è quello di costruire un sistema informatico capace di emettere un “suono vocale” che si avvicini il più possibile a quello reale.Lo scopo del sistema è quello di riuscire a sintetizzare qualsiasi tipo di input scritto [5], ad esempio sviluppando un sistema a comunicazione vocale inglese, si deve essere capaci di leggere qualsiasi tipo di frase in lingua inglese. A tal fine, vale la pena di fare alcune distinzioni per quanto riguarda il concetto di riproduzione digitale. Continuamente sul nostro computer registriamo e riproduciamo discorsi, musica, messaggi e quant’altro, ma questo è proprio un semplice processo di riproduzione di un qualcosa che originalmente era stato registrato.L'idea che sta dietro alla sintesi vocale è appunto quella di riprodurre i messaggi che originalmente non sono stati registrati. Una prima tecnica è quella di impostare una serie di parole di uso comune e ricombinarle poi per creare un discorso completo; questa tecnica è utilizzata frequentemente nei servizi di segreteria telefonica. Le caratteristiche negative di tale tecnica sono prima di tutto la bassa scalabilità del sistema, poi chiaramente la creazione di un segnale creato molto artificioso in cui a volte il risultato è accettabile, a volte no.E’ per tali motivi che gli studi, attuali e passati, si sono soffermati maggiormente su un sistema che può permettere un tipo di comunicazione quasi globale. Da qui in poi ci soffermeremo infatti su una serie di tecniche avanzate di “speech synthesis”. In linea generale distinguiamo due tipi di sintesi vocale: SINTESI PER REGOLE : un tipo di sintesi articolatoria e per formanti. In questo caso la produzione del suono avviene grazie ad un insieme il più esaustivo possibile di regole dedotte dallo studio dell’apparato vocale umano o da analisi di fonetica sperimentale. Molto interessante notare, a questo proposito, che la voce ottenuta è del tutto nuova: non è prodotta a partire da registrazioni di voce umana, ma nasce dalle sole regole implementate nei programmi del calcolatore. SINTESI PER SEGMENTI : In questo caso lo studio preparatorio del sistema di sintesi verte sulla creazione di un corpus di brevi segnali vocali, denominati appunto segmenti. Tali segmenti coincidono di fatto con un dizionario fonetico, costituito da suoni vocali elementari. Ricombinando questi elementi base é possibile ricostruire una qualsiasi parola o frase della lingua; particolare attenzione va posta però sia nella fase di creazione del dizionario che nella successiva ricombinazione. In quest’ultima fase molto delicata risulta la giunzione tra i segmenti, affinché le caratteristiche spettrali e di intensità che vengono percepite dall’ascoltatore siano plausibili. MODELLI TEXT TO SPEECH Nel modello più comune di sintesi vocale (Fig. 1.1) ci sono essenzialmente due componenti; un sistema di analisi del testo che decodifica il segnale del testo e che ne definisce un modello e un sistema di sintesi della voce che codifica questa modello trasformandolo in discorso.

Fig. 1.1: Schema generale di un sistema di “Sintesi Vocale”

Ci sono diversi modelli nei sistemi TTS, esaminiamo brevemente le caratteristiche generali di ognuno. Questi modelli non sono mutuamente esclusivi e molti sistemi attualmente esistenti sono infatti la combinazione di uno o più modelli [13].

• Signal-to-signal model .

In questo modello, il processo è visto come quello di una conversione del segnale scritto in uno vocale direttamente. In tali modelli quello che si vuole fare non è cercare di comprendere il messaggio di input di testo per poi fare la sintesi, ma si vuole cercare di convertire direttamente il testo in discorso; in particolare il sistema non è diviso nelle due fasi di analisi e sintesi.

• Pipelined models.

Molto spesso il modello Signal-to-Signal è implementato come un modello pipeline il cui il processo è visto come quello di passare dalla rappresentazione di un modulo a quello successivo. Ciascun modulo esegue una specifica attività come il part-of-speech tagging (può essere un inserimento, mettere in pausa e così via). Nessuna distinzione viene fatta tra operazioni di analisi esplicita e sintesi. Questi sistemi sono spesso altamente modulari e spesso i moduli non sono esplicitamente collegati in modo che diverse tecniche possano coesistere nello stesso sistema complessivo.

• Text as language models.

In questo modello il processo prevede semplicemente la sintesi. Il testo stesso è preso come il messaggio linguistico e la sintesi viene fatta proprio su di esso. E’ difficile trovare un testo sufficientemente pulito quindi viene aggiunto di solito un processo di normalizzazione come una sorta di pre-processore per il processo di sintesi stessa. Lo scopo è quello di riordinare il testo prima di poterlo inviare come input al sintetizzatore.

• Grapheme and phoneme form models [14].

Questo approccio [14] per molti versi può essere considerato simile al modello più generale possibile di sintesi in cui però, all’interno del testo di input, viene cercato prima un grafema, che poi viene convertito in fonema per la sintesi. Le parole non sono al centro della rappresentazione, come nel caso del modello comune. Questo approccio è particolarmente interessante nelle lingue in cui la corrispondenza grafema-fonema è sufficientemente diretta, in queste lingue trovare i grafemi significa spesso i fonemi e quindi la pronuncia può essere trovata con precisione. Per le lingue, come l’inglese [2], questo è più difficile, e per le lingue come ad esempio il cinese questo approccio è probabilmente impossibile.

• Full linguistic analysis models.

Il modello comune si basa sull'idea che ciò che tutti andiamo a ricercare in un testo è il significato delle parole. Alcuni sistemi si portano molto avanti in termini di analisi linguistica e morfologica, part-of-speech tagging e analisi sintattica. Fino ad un certo punto questo approccio risulta funzionale per identificare le parole, la questione è in realtà se questo deve essere eseguito come processo indipendente o se si è in grado di trovare le parole con un unico integrato approccio. Oltre al rilevamento del significato della parola, le analisi di tipo linguistico sono spesso viste in maniera utile per la prosodia.

• Prosody from the text .

Questi modelli si basano sul fatto che ogni singola parola necessita di una specifica e dettagliata intonazione, allora questa deve in qualche modo essere generata. Un presupposto comune è che il testo contenga informazioni sufficienti per determinare la prosodia, e così molti sistemi TTS dispongono di moduli, che cercano di prevedere le rappresentazioni prosodiche direttamente dal testo.

TECNICHE DI SINTESI VOCALE Si riporta una panoramica sulle principali tecniche di sintesi vocale partendo da quelle di prima generazione, ormai quasi non più utilizzate, fino ad arrivare alle tecniche dei giorni nostri.

TECNICHE DI PRIMA GENERAZIONE Vediamo le principali tre tecniche di “prima generazione” che hanno dominato nel campo della sintesi fino ai primi anni 80’. Formant Syntesis : è stata la prima tecnica di sintesi vera e propria ad essere sviluppata; è spesso chiamata la “sintesi by rule” (all'epoca il termine "sintesi" era usato più comunemente per il processo di ricostruzione di una forma d'onda che fosse stata precedentemente normalizzata per la codifica della voce). Viene adottato un sistema modulare come approccio acustico- fonetico al problema della sintesi. In Fig. 1.2 si vede come il suono viene generato da una sorgente periodica. Il segnale viene fatto passare nel modello del canale vocale, e si vede come il canale nasale e quello orale vengono trattati in maniera separata, come sistemi paralleli. Successivamente gli output dei due canali vengono combinati e dati in pasto ad un componente che si occupa della simulazione delle caratteristiche propagative delle labbra e del naso.

Fig. 1.2: Formant Syntesis

Classical Linear Prediction Syntesis: Una delle difficoltà principali nella costruzione di un modello più sofisticato è che non è sempre facile trovare i valori formanti direttamente dal discorso. Tali valori spesso possono essere determinati da uno spettrogramma a scansione visiva, questo può richiedere tempo ed è soggetto ad errori umani. L'uso di un tracker formante automatico può ignorare queste difficoltà pratiche, ma negli anni in cui la “Formant Synthesis” era nel pieno del suo sviluppo, trackers particolarmente precisi dovevano ancora essere sviluppati. Inoltre, entrambe le tecniche visive e automatiche soffrono di un problema comune e cioè che in alcuni casi le formanti stesse non sono facilmente distinguibili. La funzione di trasferimento del tratto vocale magari non è in una posizione dove essa genera chiari picchi di risonanza, ma piuttosto i poli sono ben all'interno della circonferenza unitaria, e quindi l'inviluppo spettrale non è particolarmente "peaky" [9]. E’ qui che prende piede questa nuova tecnica che utilizza i parametri della funzione di trasferimento del tratto vocale direttamente, quindi determina tutti i parametri automaticamente per mezzo di predizione lineare. : Forse il modo più ovvio per sintetizzare un discorso è quello di provare una simulazione diretta della produzione del linguaggio umano. Questo approccio è chiamato appunto “Articulatory Synthesis” ed è attualmente il più antico, nel senso che la famosa “macchina parlante” di von Kempelen può essere vista come un sintetizzatore articolatorio [16]. Questa macchina era un dispositivo meccanico con tubi e soffietti che con un po' di allenamento potrebbero essere utilizzati per la produzione di un discorso riconoscibile. Il dispositivo è fatto per imitare il tratto vocale utilizzando dei filtri ti tipo acustico.

TECNICHE DI SECONDA GENERAZIONE I metodi “vocal tract” riescono a generare dei discorsi comprensibili, sono però limitati in termini di generazione di parlato naturale. Nel caso di “Formant Synthesis” la limitazione principale non è tanto nel generare il discorso a partire dalla rappresentazione parametrica, ma piuttosto nel generare i parametri stessi a partire dalla descrizione di ciò che arriva in ingresso, quindi dal processo di analisi del testo. Fare una mappatura tra il testo e i parametri è una cosa assai complessa, e sembra al di là di ciò che possiamo esprimere in esplicite regole di derivazione umana, non importa quanto "esperto" sia il progettista delle “regole”. Una parziale soluzione alla complessità della ricerca dei parametri del sistema è data dalle predizioni lineari in cui viene bypassato il problema della generazione dei parametri dell'apparato vocale in modo esplicito, misurando questi ultimi direttamente dai dati. I parametri di sorgente tuttavia, vengono ancora generati da un modello esplicito, e questo è stato identificato come la fonte principale dell’innaturalezza.Le tecniche che tentano di aggirare queste limitazioni vengono dette tecniche di seconda generazione. In un certo senso possono essere viste come estensioni della tecnica classica LP in quanto utilizzano un approccio basato sui dati: l'incremento della qualità però in gran parte deriva dall'abbandono del modello della sorgente basata sull’impulso di ingresso e sul rumore. Il modo migliore per caratterizzare queste tecniche è certamente soffermarsi sul fatto che esse utilizzano direttamente i dati per determinare i parametri del componente verbale come le tecniche che utilizzano la classica predizione lineare. La differenza è che anche la forma d'onda sorgente è generata seguendo un approccio basato sui dati in cui l'ingresso alla sorgente è però ancora controllato da un modello esplicito. Time domain PSOLA . Forse le tecniche di signal processing più usate nella seconda generazione sono quelle che appartengono alla famiglia denominata PITCH SYNCHRONOUS OVERLAP AND ADD (PSOLA) [11] [15] [4]. Si utilizzano queste tecniche per modificare il tono e la sincronizzazione della voce, senza eseguire alcuna separazione esplicita sorgente/filtro. La base di tutte le tecniche PSOLA è isolare periodi individuali nel parlato originale, effettuare modifiche, e quindi “resynthesise” per creare la forma d'onda finale. TD- PSOLA è sicuramente la tecnica più popolare tra le PSOLA, presenta infatti importanti algoritmi riguardo la “pitch and timing adjustment”. La tecnica funziona a passo-sincrono, il che significa che c’è un frame di analisi per ogni periodo di tono. Un pre-requisito è quello di dover riuscire ad identificare i periodi del segnale vocale, e con PSOLA è fondamentale che questo venga fatto con una precisione molto elevata. In Fig. 1.3 è descritto in maniera schematica come viene creato un nuovo insieme di periodi di sintesi in cui vediamo che i singoli frames sono maggiormente distanziati rispetto all’insieme di analisi. Quando i frames saranno sovrapposti e sommati, il nuovo tono sarà più basso a causa della distanza inferiore.

Fig. 1.3: Manipolazione dei toni con TD-PSOLA

RESIDUAL EXCITED LINEAR PREDICTION [8]: esegue l'analisi LP, ma utilizza il residuo in fase di “resynthesise” piuttosto che un impulso. Il residuo viene modificato in un modo molto simile a quella di PSOLA. SINUSOIDAL MODELS [12]: utilizza un modello armonico e decompone ogni fotogramma in una serie di armoniche di una frequenza fondamentale stimata. I parametri del modello sono le ampiezze e le fasi delle armoniche. Con questi, il valore della fondamentale può essere modificata pur mantenendo lo stesso inviluppo spettrale di base. HARMONIC NOISE MODELS [18]: sono simili ai modelli sinusoidali tranne nell’avere un componente di rumore addizionale che permette la modellazione accurata delle parti ad alta frequenza di un discorso. MBROLA : L'unico inconveniente reale di TD-PSOLA in termini di qualità è quello di essere molto sensibile agli errori di posizionamento dei periodi. Si può dire con certezza che se i periodi non sono contrassegnati con una precisione estremamente elevata, la qualità della conversazione nei sistemi TD-PSOLA può sembrare molto povera. L'effetto di periodi inesatti è quello di rendere il suono proveniente dalla sintesi vocale rauco, come se la voce avesse un'infezione o qualche altra malattia. Ciò non è sorprendente in quanto è noto che l'effetto raucedine nel linguaggio naturale sorge a causa della periodicità irregolare nella sorgente. Si è indagato [3] circa la questione della precisione dei periodi quindi sono stati sviluppati algoritmi di rilevazione dei periodi molto più accurati, ma ci sono casi (ad esempio con le registrazioni di qualità più povera) dove la perfetta rilevazione di periodi automatica non è possibile. La tecnica MBROLA è stata sviluppata in parte come una soluzione a questo problema. Il metodo MBROLA funzione anch’esso in maniera sincrona (pitch-sincrono) ma, a differenza di TD-PSOLA, la posizione esatta del periodo non deve essere coerente da un fotogramma all'altro. Durante l'analisi, i frames sono trovati come in TD-P[]SOLA, ma durante la “resynthesise”, le fasi sono regolate in modo che ogni frame nel database abbia una fase corrispondente. Questa fase, che è facile da eseguire con un modello sinusoidale, regola efficacemente tutti i tempi in modo da trovarsi nelle stesse posizioni relative all'interno delle finestre. MFCC SYNTHESIS (CEPSTRAL COEFFICIENTS) [10] è una tecnica che tenta di effettuare la sintetizzazione partendo da una rappresentazione che viene utilizzata per le sue proprietà di modellazione statistica. Una sintesi completamente accurata non è possibile, ma è possibile eseguire piuttosto una accurata ricostruzione del filtro del tratto vocale.

TECNICHE DI TERZA GENERAZIONE Sono possibili diversi approcci alla sintesi statistica, in particolare la maggior parte del lavoro si è concentrato sull'utilizzo di HIDDEN MARKOV MODELS (HMMs), che rappresenta le tecniche di terza generazione. Riportiamo le caratteristiche principali con le dovute osservazioni:

Nella sintesi di tipo “Markoviana” [1] [17] lo spettro di frequenze (tratto vocale), la frequenza fondamentale (sorgente vocale) e la durata (prosodia) della voce sono modellate simultaneamente tramite modelli nascosti di Markov. Gli stessi modelli nascosti di Markov generano le forme d'onda vocali basandosi su un criterio di massima verosimiglianza. • VANTAGGI della sintesi HMM:

V La sintesi HMM fornisce un mezzo per formare automaticamente il modulo “specification- to-parameter”, bypassando così i problemi associati alle regole del testo.

V I modelli finemente addestrati sono in grado di produrre sintesi di altissima qualità, e hanno il vantaggio di essere compatti, e suscettibili di modifiche (scalabili) per la trasformazione vocale e altri scopi.

• SVANTAGGI della sintesi HMM:

V La voce deve essere generata da un modello parametrico, quindi non importa quanto i modelli generino parametri in maniera naturale, la qualità finale dipende molto dalla tecnica “parameter- to-speech” utilizzata.

V Nonostante i vincoli dinamici, resta comunque molto difficile e poco sicuro riuscire a generare le caratteristiche più “fini” del discorso.

TECNICHE ATTUALI Ci soffermiamo infine sulla UNIT SELECTION SYNTHESIS, che è la tecnica di sintesi TEXT-TO-SPEECH dominante attualmente. Unit Selection è la naturale estensione dei sistemi concatenativi di seconda generazione, e tratta i problemi di come gestire un gran numero di unità, come estendere la prosodia oltre la semplice F0 e il controllo della sincronizzazione, e come per alleviare le distorsioni conseguenti alla trasformazione del segnale.

La premessa di base della “unit selection synthesis” è che permette di sintetizzare nuove espressioni scegliendo opportunamente delle “sub-word units” da un grande database di uno specifico linguaggio. Ci sono diverse condizioni che devono essere soddisfatte affinché un tale sistema possa funzionare. Riportiamo in maniere semplificata il “modus operandi” in cui viene introdotto il concetto di target cost, che rappresenta il valore di quanto la “unit selection” del database sia simile alla “unit” desiderata; in maniera più precisa si definisce il target cost come la somma pesata delle differenze delle caratteristiche più rilevanti:

Mentre invece si introduce il concetto di continuity cost come la somma pesata delle caratteristiche:

Queste due funzioni di costo devono essere poi ottimizzate per poter trovare quella stringa di units dal database che possa minimizzare la funzione COSTO TOTALE:

Dove “S” rappresenta le pause mentre:

le condizioni di inizio e di fine dell’espressione. [7]

RICONOSCIMENTO VOCALE

La voce è il più semplice, comune ed efficiente mezzo di comunicazione utilizzato dagli essere umani per interagire tra loro. Per questo motivo sarebbe confortevole e naturale poter interagire con i dispositivi attraverso il parlato, piuttosto che tramite le attuali periferiche di input (principalmente mouse e tastiera). Tale motivazione ha portato i ricercatori a concentrare gli sforzi sullo sviluppo di sistemi in grado di effettuare il riconoscimento automatico del parlato (ASR – Automatic ), così da permettere ai dispositivi di identificare parole a partire dai suoni e trasformarle in testo o in comandi. Sistemi di questo tipo trovano applicazione in molti ambiti, come dettatura, controllo, assistenza telefonica, traduzione automatica… Come sarà chiaro in seguito, la costruzione di un sistema di riconoscimento del parlato diventa sempre più complessa, a causa del sempre più avanzato grado di perfezione che si vuol raggiungere, che punta a coprire il più elevato numero di parlatori e il più vasto numero di applicazioni. Infatti, l’obiettivo è costruire un sistema ASR in grado di risultare indipendente dall’utente che lo utilizza, di possedere un vocabolario infinito e di funzionare indipendentemente dalle modalità di dettatura che l’utente utilizza. Così, dal riconoscimento di poche parole, piccole frasi, si è giunti alla possibilità di avere a che fare con sistemi ASR in grado di adattarsi al parlatore e riconoscere un elevato numero di parole, enunciati, testi, in varie lingue. La direzione futura dello sviluppo punta a ottenere un sistema real-time, con accuratezza del 100%, capace di riconoscere ogni parola intellegibile, pronunciata da chiunque, anche in presenza di rumore e in qualsiasi lingua e accento.

Classificazione dei sistemi di riconoscimento del parlato I sistemi di riconoscimento del parlato si possono suddividere in varie categorie, sulla base del tipo di pronuncia che sono in grado di riconoscere, del modello “aculinguistico” cui fanno riferimento, del vocabolario di termini che possono essere riconosciuti.

In base al tipo di pronuncia riconoscibile, è possibile classificare i sistemi ASR nelle seguenti categorie:

• Sistemi per parole isolate

I riconoscitori di parole isolate sono in grado di accettare in ingresso un suono continuo che presenti silenzio all’inizio e al termine della finestra di campionamento, ovvero dell’intervallo sul quale viene effettuata l’acquisizione audio. Tali sistemi trovano applicazione in tutti quei casi in cui all’utente è richiesto un comando o una risposta; l’implementazione di questi sistemi è evidentemente la più semplice, anche perché il comando dell’utente è appositamente pronunciato in maniera chiara e precisa (es. “Stampa” , “Esci”).

• Sistemi per parole connesse

I riconoscitori di parole connesse sono un’evoluzione dei sistemi per parole isolate, permettendo di riconoscere brevi enunciati connessi con una minima pausa. Questi sistemi sono utili per tutte quelle operazioni di comando/controllo che richiedono, ad esempio, di operare una certa azione su un determinato elemento (es. “Apri Calcolatrice” , “Riproduci Musica”).

• Sistemi per parlato continuo

I riconoscitori di parlato continuo permetto all’utente di parlare in modo quasi-naturale, mentre il dispositivo discrimina il contenuto del parlato. L’implementazione di questi sistemi è più complicata, in quanto il parlato viene emesso in modo sufficientemente complesso dal punto di vista dell’articolazione, della fusione delle parole, della pronuncia, della quantità di termini pronunciabili.

• Sistemi per parlato spontaneo I riconoscitori di parlato spontaneo permettono all’utente di parlare in modo naturale, essendo in grado di controllare e gestire tutta la varietà di caratteristiche del parlato umano, come errori di pronuncia, esitazioni, sovrapposizioni. L’implementazione di questi sistemi è notevolmente complicata in quanto richiedono potenze di elaborazione elevate e modelli di funzionamento di tipo articolato.

I sistemi ASR necessitano della creazione di un modello del parlato, dovuto al fatto che ogni parlatore è unico nel suo sistema vocale organico e nella sua personalità vocale. Infatti, per ogni parlatore, si deve considerare una serie di caratteristiche psico-fisiche che rendono il modello molto complesso (struttura fisica del cavo orale, velocità e stile del parlato, sesso, età, ambiente socioculturale…). Sulla base della tipologia di modello vocale utilizzato, i sistemi ASR si possono suddividere in:

• Sistemi dipendenti dal parlatore

I riconoscitori dipendenti sono implementati per uno specifico parlatore. Questi sono perciò molto accurati per quel parlatore e generalmente inefficienti per altri; sono solitamente poco elaborati dal punto di vista della complessità del modello, ma sono limitati dal punto di vista della flessibilità nell’utilizzo. Nei sistemi commerciali, in fase di installazione, il sistema chiede all’utente di leggere un testo noto con voce e velocità naturali. Il sistema si adatta così alle caratteristiche del parlatore, offrendogli risultati sempre migliori in termini di precisione.

• Sistemi indipendenti dal parlatore

I riconoscitori indipendenti sono sistemi progettati per una molteplicità di parlatori o, nel più delle volte, per essere completamente scorrelati dal parlatore. Per questo motivo sono in grado di riconoscere input provenienti da un vasto gruppo di persone; a questo scopo, l’accuratezza dei sistemi indipendenti è in parte limitata, a favore di un più flessibile campo di applicazione. La loro capacità di riconoscere più parlatori, però, ne aumenta la complessità dal punto di vista del modello elaborativo.

Infine, sulla base dell’entità del vocabolario di termini riconosciuti, i sistemi ASR si possono suddividere in: • Sistemi a vocabolario ridotto - decine di parole

• Sistemi a vocabolario medio - centinaia di parole

• Sistemi a vocabolario grande - migliaia di parole

• Sistemi a vocabolario molto grande - decine di migliaia di parole

• Sistemi fuori vocabolario - in grado di mappare parole sconosciute in parole del vocabolario

Principi generali di funzionamento Il compito principale di un sistema ASR è quello di acquisire una forma d’onda sonora come ingresso e produrre come output una stringa o un insieme di parole. Lo schema di principio di un sistema di riconoscimento del parlato si può presentare come segue.

Un generico sistema ASR si compone di tre fasi: nella fase di pre-elaborazione vengono estratte le caratteristiche relative alla traccia vocale acquisita, relativamente alla velocità, all’intonazione, alle pause (questa fase può anche attuarsi una sola volta, nel periodo di addestramento del sistema); nella successiva fase di decodifica vengono applicati i modelli acustici e linguistici che si hanno a disposizione, sulla base delle caratteristiche ottenute nella fase precedente, allo scopo di effettuare una ricerca all’interno del vocabolario in merito alle informazioni decodificate; infine, nella fase di post-elaborazione vengono identificati i migliori match tra input vocale e stringa testuale allo scopo di costruire l’output finale. È chiaro come tutte le fasi siano fondamentali per la qualità complessiva del sistema.

In ogni caso, il funzionamento di un generico sistema ASR si basa sulla comparazione dell’audio in ingresso, opportunamente elaborato, con un database pre-registrato (speaker independent) oppure creato in fase di addestramento del sistema (speaker dependent), allo scopo di ricercare la parola pronunciata dal parlatore all’interno del database stesso. Questa operazione può essere effettuata sulla parola intera o sui singoli fonemi. Alcune problematiche, però, rendono questo procedimento incredibilmente complesso: ogni volta che una persona pronuncia la stessa parola, lo fa in modo differente, non producendo mai lo stesso suono per uno stesso fonema; mentre l’orecchio umano è dotato del cosiddetto “ascolto intenzionale” che gli permette quasi di isolare il suono che si vuole ascoltare dal sottofondo, per i sistemi ASR ogni rumore di fondo è un elemento fortemente disturbante che inficia sul risultato del processo; il suono di ogni fonema, inoltre, cambia a seconda del fonema che lo precede e che lo segue [19, 20].

Tecniche di estrazione delle caratteristiche vocali L’estrazione delle caratteristiche vocali è una delle fasi più importanti del processo di riconoscimento del parlato, in quanto è essenziale per separare correttamente le parole e fornirle come input ai processi successivi. Ogni voce ha caratteristiche differenti e individuali che si rispecchiano nella pronuncia. Queste caratteristiche possono essere estratte attraverso varie tecniche, che comunque devono rispettare alcuni criteri; esse infatti, devono permettere di misurare facilmente le caratteristiche estratte, devono possedere caratteristiche stabili nel tempo (stesse tracce vocali devono presentare sempre stesse caratteristiche), devono essere il più possibile indipendenti dall’ambiente di acquisizione (mostrare solo piccole fluttuazioni tra un ambiente e l’altro per una stessa traccia).

Una delle più potenti tecniche di analisi è il metodo della codifica a predizione lineare (LPC – Linear Predictive Coding ), che è diventato uno dei metodi principali per la stima dei parametri di base della voce, in quanto fornisce anche un prototipo computazionale della voce di rilevante funzionalità. Per questo motivo, questa tecnica viene usata in genere in molte attività di elaborazione dei segnali audio e vocali, allo scopo di rappresentare l’inviluppo spettrale del segnale vocale. Il modello vocale su cui si basa la tecnica LPC strutturato in maniera tale da considerare la voce come un segnale potuto, caratterizzato da una precisa intensità e frequenza, sul quale vengono inseriti (a causa del movimento della bocca e della lingua) una serie di disturbi di tipo definito (sibili, pop). Un campione vocale, inoltre, si può sempre approssimare come una combinazione lineare di vecchi campioni. È così possibile determinare una serie di parametri e coefficienti caratteristici dell’apparato vocale e di alcuni campioni di riferimento, utili a determinare, o meglio prevedere, campioni futuri. Ovviamente, maggiore è il numero di campioni acquisiti, maggiore è l’accuratezza della previsione. I coefficienti così determinati vengono trasformati e normalizzati in un set più robusto di parametri che prendono il nome di coefficienti cepstrali . [21]

Un’altra tecnica ampiamente utilizzata è quella MFCC ( Mel Frequency Cepstral Coefficients ), che si basa su un modello di tipo logaritmico che, rispetto a quello lineare usato in altre tecniche di rappresentazione del segnale vocale, è capace di approssimare molto meglio il sistema vocale umano. Diversamente da quanto accade nella LPC, il segnale vocale, dopo essere stato catturato e finestrato, subisce una trasformazione di frequenza (in genere una DFT) e viene sottoposto a un banco di filtri triangolari equispaziati centrati su particolari frequenze ( mel frequency ). Le ampiezze dello spettro determinato vanno a costituire il vettore MFCC. Alcune varianti di questa tecnica prevedono modifiche delle spaziature delle frequenze, dell’ampiezza dei filtri e delle tecniche di trasformazione/antitrasformazione in frequenza (ad esempio coseno discreto). I valori MFCC non sono molto resistenti dal punto di vista del rumore; sono stati ideati, perciò, alcuni stratagemmi per ridurre l’influenza del rumore, come ad esempio la normalizzazione dei valori in potenza per eliminare i contributi a bassa energia (essenzialmente rumore) [22].

Approcci di riconoscimento del parlato Nel corso degli anni, vari sono stati gli approcci mediante i quali i ricercatori hanno affrontato il problema del riconoscimento vocale. In una prima fase, hanno avuto una forte influenza le tecniche di programmazione sviluppate per risolvere il problema del pattern-recognition . Infatti, dal punto di vista computazionale, il problema del riconoscimento vocale consiste nell’analizzare un frammento, riconoscerlo e classificarlo secondo categorie che rappresentino significati per gli esseri umani. Più precisamente, alla base di tutti gli approcci si trova l’idea che esistono finite e distinte unità fonetiche (fonemi) in qualsiasi linguaggio parlato e che queste sono caratterizzate da un set di proprietà acustiche misurabili. In realtà, queste proprietà sono fortemente variabili. Successivamente, con l’avvento dei sistemi basati su reti neurali artificiali, anche i sistemi di riconoscimento del parlato sono stati strutturati su questa modalità di elaborazione. In periodi più recenti, lo studio dei modelli di calcolo stocastico ha portato alla creazione di nuovi approcci. In ogni caso, la maggior parte delle applicazioni di tipo commerciale si basa ancora largamente su reti neurali, o su tecniche ibride.

Un primordiale metodo di costruzione di un sistema ASR è quello ad approccio basato su template . In questo tipo di tecniche si cerca una corrispondenza precisa tra una traccia vocale e un set di parole pre- registrate, al fine di trovare il miglior match. Seppure molto accurato, perché spesso dotato di ottimi modelli di riferimento per le parole, questo metodo è limitato dalla quantità di pre-registrazioni disponibili e dal fatto che le parole pronunciate in fase di ingresso non devono subire variazioni dal punto di vista dell’intonazione e della pronuncia. Infatti, la fase di preparazione dei campioni pre-registrati è dispendiosa e costruire un vocabolario grande è impraticabile (spesso ci si limita a centinaia di parole). Inoltre è fortemente dipendente dal parlatore e non permette il riconoscimento del parlato continuo. Per ottimizzare i modelli ad approccio basato su template, si sono messi a punto degli algoritmi di adattamento in grado di facilitare la misura di similarità tra tracce vocali. Questi algoritmi, noti come dynamic time warping permettono di modificare le tracce vocali in termini di velocità e tempo, anche in modi non lineari, per confrontare le une con le altre. In questo modo si cerca di trovare un allineamento tra le sequenze isolate, anche se in alcune evoluzioni di queste tecniche, gli algoritmi sono in grado di lavorare anche su piccoli enunciati [23].

Con l’avvento delle reti neurali si è divenuti in grado di risolvere problemi di riconoscimento del parlato più complessi. Attraverso questi approcci, i sistemi ASR sono diventati più indipendenti dal punto di vista del parlatore e più resistenti ai disturbi. Anche se esistono diverse metodologie che sfruttano le reti neurali, quella più utilizzata consiste nel riconoscimento dei fonemi. Contrariamente a quanto accade in altre tipologie di approcci, le reti neurali non si avvalgono di grosse assunzioni di tipo statistico riguardo le proprietà vocali, ma sfruttano modelli probabilistici per intraprendere decisioni riguardo l’assegnazione di determinati tratti vocali a specifiche parole sulla base delle informazioni iniziali fornite come training della rete. Infatti, dopo una fase di addestramento relativa a un discreto numero di possibili fonemi di ingresso, la rete neurale è pronta per discriminare i fonemi all’interno di tracce vocali di ingresso sufficientemente complesse [24, 25].

Per migliorare un sistema ASR si può adottare un approccio di tipo statistico , allo scopo di stimare modelli acustici e linguistici a priori, piuttosto che misurarli o determinarli in ingresso, incidendo così sulla velocità e sull’efficienza dell’intero sistema di riconoscimento del parlato. Ovviamente, molto dipende dalla bontà del modello probabilistico utilizzato per le assunzioni acustiche e linguistiche, che può essere affetto da non accuratezza, inficiando così su tutte le performance del sistema.

Uno dei modelli più popolari allo stato dell’arte è l’ Hidden Markov Model (HMM). La popolarità di questo approccio è dovuta alla sua capacità di addestramento automatico e alla sua flessibilità e semplicità computazionale. L’applicazione di questo modello è permessa dal fatto che la sequenza dei fonemi di un segnale vocale segue il principio di Markov, per cui la probabilità di un evento futuro è legata esclusivamente all’evento presente e non agli eventi passati; il segnale vocale, infatti, si può considerare come un processo stazionario a tratti o per brevi periodi. Il modello di Markov prevede la generazione di una sequenza vettoriale n-dimensionale di valori reali, con n molto piccolo (in genere 15-30) Questo prevede la generazione di una matrice di fonemi, correlati tra loro sulla base della probabilità che un fonema segua un altro. Questa matrice viene usata per l’addestramento della rete neurale che, una volta riconosciuto un fonema (o una parola), conosce quali fonemi (o parole) devono essere ricercate nell’analisi della successiva traccia. In questo modo si possono inoltre creare automaticamente modelli di parole o frasi sulla base dei modelli probabilistici associati ai fonemi [26].

Misurazione delle performance di un sistema ASR Le performance di un sistema di riconoscimento del parlato sono misurabili, soprattutto in termini di accuratezza e velocità. Dal punto di vista dell’accuratezza, la grandezza che si può prendere come riferimento è il Word Error Rate (WER), che si può determinare dall’equazione

in cui S è il numero di sostituzioni, D il numero di cancellazioni, I il numero di inserimenti che sono necessari per correggere il risultato del riconoscimento e N il numero di parole totali della stringa di input. L’accuratezza di un sistema di riconoscimento del parlato è una grandezza fortemente variabile ed è direttamente proporzionale all’entità del vocabolario di termini da riconoscere e alla complessità delle parole presenti in tale vocabolario. [27]

La velocità di un sistema di riconoscimento del parlato è generalmente misurata in termini di Real Time Factor (RTF), calcolabile con l’espressione

dove P il tempo necessario ad elaborare un input di durata I. Il parametro RTF viene utilizzato per classificare i sistemi ASR in base al tempo di elaborazione; se RTI ≤ 1 il sistema viene classificato come real-time , altrimenti come no real-time . Oltre a dipendere fortemente dal modello e dalla tecniche utilizzate per realizzare il sistema, il RTF è influenzato anche dalla potenza elaborativa dell’hardware su cui è installato il sistema.

SOLUZIONI E SOFTWARE VOCALI

SISTEMI ASR Di seguito una panoramica dei principali software di riconoscimento vocale presenti sul mercato. Saranno presi in considerazione sia software di tipo open-source/free, che software commerciali/a pagamento, per tutte le principali piattaforme operative, sia desktop che mobili.

Software open-source/free

CMU Sphinx CMU Sphinx è un software di riconoscimento vocale sviluppato alla Carnegie Mellon University di Pittsburgh, Pennsylvania, USA, rilasciato a partire dagli anni 90. Il progetto Sphinx include anche un modello acustico per l’addestramento di software di terze parti, denominato SphinxTrain. Sphinx è un software ASR in grado di riconoscere il parlato continuo in maniera indipendente dal parlatore e con un vocabolario di discreta entità. Si basa sul modello nascosto di Markov e utilizza un approccio di tipo statistico. Le versioni successive di Sphinx hanno puntato realizzare a un riconoscimento di tipo real-time, sfruttando caratteristiche avanzate come end-pointing , partial hypothesis generation , dynamic language model switching . Dalla versione 3 Sphinx ha adottato primariamente la tecnica HMM per giungere ad una accuratezza superiore e una modalità di riconoscimento quasi real-time. La versione 4 di Sphinx ha portato a una riscrittura completa del motore di riconoscimento vocale, progettato e sviluppato in Java, con il supporto di Sun Microsystems; questa ultima release cercherà di migliorare l’adattamento al parlatore, di creare una interfaccia grafica più funzionale e usabile e sviluppare un modello di training di tipo innovativo. Inoltre, gli sviluppatori hanno rilasciato anche una versione PocketSphinx che è integrabile in sistemi embedded.

SHoUT SHoUT è un toolkit di riconoscimento di parlato continuo a largo vocabolario sviluppato all’Università di Twente, Paesi Bassi. Il software è stato sviluppato da zero con l’obiettivo di costruire un sistema in grado di incorporare tutte le più innovative tecniche ASR. SHoUT è strutturato in tre sottosistemi: uno si occupa della segmentazione dei tratti vocali, allo scopo di identificare i frammenti sonori che contengono voce; il secondo si occupa di rendere possibile l’adattamento al parlatore in maniera snella e senza bisogno di addestramento spinto; il terzo blocco si occupa della decodifica del segnale vocale, costituendo il vero e proprio sistema ASR. Ciascuno di questi blocchi è stato progettato sulla base di un ristretto set di parametri modificabili, in maniera tale da migliorare il matching in fase di decodifica. La vera innovazione sta nel fatto che questi parametri vengono automaticamente regolati sulla base dell’audio stesso che viene decodificato, permettendo di elaborare anche segnali acquisiti in condizioni acustiche sconosciute.

RASR RWTH ASR (RASR) è un tool di riconoscimento del parlato di tipo open-source che include le tecnologie di riconoscimento vocale più recenti per lo sviluppo di sistemi automatici di riconoscimento vocale. Il software è sviluppato dal Human Language Technology and Pattern Recognition Group della RWTH dell’Università di Aachen, Germania. L’idea di base di questo strumento è quella di sviluppare un sistema ASR in grado di adattarsi al parlatore e al suo “stile” di allenamento; per questo, RWTH ASR è fortemente incentrato e dipendente dal parlatore. Per quanto riguarda gli algoritmi e le tecniche utilizzate da questo tool, si possono citare la MFCC per l’estrazione delle caratteristiche e l’HMM per la modellazione acustica.

Software commerciali

Dragon Dragon NaturallySpeaking è un software di riconoscimento vocale sviluppato e distribuito da Nuance Communications, per PC e (con il nome Dragon Dictate). Dragon è dedicato a tre attività principali: dettatura, comando vocale e automazione. L’utente può dettare un testo in modo da trascriverlo in formato digitale, può impartire al computer comandi vocali e associare nuovi comandi ad azioni automatizzate. Il motore di riconoscimento del parlato di cui fu dotato Dragon nei primi anni di sviluppo (anni ’80-’90) prevedeva un’analisi di tipo trigrammatica, ossia un’analisi di fonogrammi di tre lettere; sebbene questa modalità permetta un discreto riconoscimento della pronuncia, queste prime versioni di Dragon non erano in grado di discriminare parlato continuo. La prima versione a parlato continuo comparve 15 anni dopo, nel 1997, debuttando ufficialmente sul mercato.

Windows Speech Recognition Windows Speech Recognition è un software di riconoscimento del parlato incluso nei sistemi Microsoft Windows a partire da Vista. Questo applicativo consente all’utente di controllare Windows attraverso comandi vocali; il sistema non supporta molte lingue, ma per quelle supportate offre un’accuratezza elevata. Windows Speech Recognition è basato sulle Speech Application Programming Interface di Microsoft, rilasciate a partire dal 1995 in forma per parlato non continuo. A partire dalla versione 5 del 2000, le SAPI supportano parlato continuo e comando vocale, utilizzando speciali modelli acustici che tengono conto anche della possibilità di parlatori bambini o parlatori telefonici (infatti permettono anche il controllo da remoto attraverso acquisizione telefonica).

PlainTalk PlainTalk è il nome di una pacchetto di software vocali sviluppato da Apple Inc. a partire dagli anni ’90. è la serie di programmi di PlainTalk che si occupa del riconoscimento vocale in Mac OS. Questi software permettono di controllare il proprio computer con linguaggio naturale, senza necessità di addestramento. Il sistema funziona con una serie di azioni automatizzate preconfigurate a cui si possono aggiungere infiniti script personalizzati, a ciascuno dei quali deve essere associato un comando. Il software non nasce per svolgere compiti di dettatura, ma esclusivamente per comandare vocalmente il sistema operativo; in questo senso, ogni applicazione Mac OS contiene una particolare libreria di vocaboli e comandi che si vanno ad aggiungere a quelli standard di PlainTalk, che permette quindi di estendere i comandi vocali che si possono impartire al computer.

ASR su sistemi mobili Sempre più spesso, su piattaforme mobili, vengono proposti software di riconoscimento vocale utili a comandare vocalmente il dispositivo. Tra questi è d’obbligo citare: Vlingo (Symbian, Android, iOS, BlackBerry), in grado di svolgere compiti come inviare sms, email, ricercare sul web, aprire applicazioni, tutto al solo comando vocale; Siri (iOS), che si propone come assistente personale in grado di rispondere a domande e dare suggerimenti; Google Voice Search (tutte le piattaforme in grado di accedere ad internet), la versione a comando vocale del noto motore di ricerca Google Search, e la serie di applicazioni mobili di Google (Maps, Gmail, Youtube, etc.), in grado di essere comandate vocalmente; S Voice (Android Samsung), l’assistente personale di Samsung nato come risposta a Siri di Apple.

SINTETIZZATORI VOCALI Di seguito una panoramica dei principali software di sintesi vocale presenti sul mercato. Saranno presi in considerazione sia software di tipo open-source/free, che software commerciali/a pagamento, per tutte le principali piattaforme operative, sia desktop che mobili.

Software open-source/free eSpeak eSpeak è un programma open source di sintesi vocale, che utilizza un motore di tipo Formant. Grazie a ciò, eSpeak è corredato da molte lingue, tra l’altro molto leggere in termini di occupazione di risorse fisiche. Questo sintetizzatore è utilizzato in molti altri progetti, tra i quali Ubuntu e Google Translate, ed è disponibile per Linux e Windows. Il fatto di essere basato su modello Formant gli permette di essere molto veloce nell’elaborazione, ma non altrettanto naturale o scorrevole come i sintetizzatori basati su voce umana. Il funzionamento di questo software può essere di due tipi: utilizzando il sintetizzatore originale di eSpeak, il suono viene prodotto unendo tramite un inviluppo sinusoidale le componenti sonore che costituiscono le consonanti; utilizzando il sintetizzatore Klatt, invece, il suono viene prodotto partendo da una forma d’onda ricca di contributi armonici che vengono poi filtrati per dare origine al suono finale.

Festival Speech Synthesis System Festival è un sistema di sintesi vocale multilingua sviluppato al Centro di Ricerca per la Tecnologia Vocale dell’Università di Edimburgo, Scozia. Festival è alla base di molti altri sintetizzatori, i quali si basano sulle sue API, scritte in C++, che permettono un’ampia customizzazione e estensione. In effetti, oltre che come un software di sintesi, Festival si presenta come un motore per la costruzione di altri software. Le API di Festival sono basate su tecniche HMM; per quanto riguarda i moduli linguistici, Festival è in grado di generare suoni a partire da lettere, grazie alla presenza di un generatore multi-sinusoidale, regolandone intonazione e durata.

Derivati di Festival Sulla base del motore di sintesi di Festival Speech Synthesis System sono stati derivati una serie di altre librerie per i vari linguaggi di programmazione, consentendo di scrivere i propri software TTS per desktop, per server remoti, per web application. Alcune delle più importanti sono: FreeTTS, per il linguaggio Java, FLite per i linguaggio C, CervaTTS per Python. Inoltre, sulla base del lavoro condotto per realizzare Festival, è partito Festvox, un progetto di sviluppo comunitario che punta a produrre un motore di sintesi vocale più sistemico, documentato in maniera migliore, e che permetta a ognuno di costruire la propria voce; oltre alla collaborazione di prestigiose università e enti di ricerca, Festvox vede la partecipazione anche di enti governativi di tipo scientifico e militare.

Praat Praat è un software freeware di stampo più scientifico che commerciale, utile per analizzare tratti vocali dal punto di vista fonetico. Il software permette di effettuare analisi spettrali (spettrogrammi), analisi di ampiezza, intensità, pitch, analisi temporali per studiare pause e interruzioni, analisi di segmentazione, indagini statistiche, filtraggi, etc.

Software commerciali

IVONA TTS IVONA TTS è un sintetizzatore vocale che sfrutta la tecnologia BrightVoice, che permette una particolare verosimiglianza ed espressività nelle voci sintetiche. Inoltre, grazie al sistema Rapid Voice Development, IVONA vanta una notevole velocità ed economicità elaborativa nella produzione di nuove voci e degli output vocali. Queste, e molte altre tecnologie proprietarie, fanno di IVONA uno dei più avanzati sistemi TTS in circolazione; uno studio del 2011 condotto da ASRNews.com ha stabilito che IVONA TTS raggiunge la più alta percentuale di pronunce corrette rispetto a 9 altri software di sintesi tra i più importanti.

Loquendo Loquendo TTS è un sintetizzatore vocale molto diffuso grazie alla buona qualità delle voci fornite, alla flessibilità del loro utilizzo multipiattaforma e del costo relativamente contenuto delle soluzioni vocali offerte. Inizialmente di proprietà di Telecom Italia, Loquendo è stata recentemente acquisita da Nuance. Il sistema TTS di Loquendo ha mosso i suoi primi passi dall’idea di difoni (fonemi costituiti dall’unione di una consonante e una vocale), inaugurando questa modalità di approccio al problema della sintesi; l’evoluzione del sistema si concentrò quindi con l’espansione del numero di difoni gestiti, dal numero iniziale di 150 fino quasi a 1000, oltre che sulla qualità di tali unità fonetiche. Il vero passo avanti fu quello di scegliere l’abbandono di questo approccio verso uno più flessibile, costituito dal principio che le unità fonetiche cui si faceva riferimento dovevano essere di lunghezza variabile, richiedendo però una potenza di calcolo superiore e uno spazio fisico maggiore. Con l’avvento dei moderni dispositivi, sufficientemente potenti, Loquendo ha raggiunto un livello di naturalezza e qualità rilevanti, grazie alla possibilità per l’utente di avere voci espressive, verosimili, modificabili.

Acapela Acapela TTS è un software di sintesi vocale distribuito in molte versioni e in un discreto numero di lingue. Sono previste API per molti linguaggi di programmazione; la qualità delle voci è definita alta (HQ) dallo stesso produttore. È disponibile per server, pc, MAC, piattaforme mobili, web services e su un piattaforma hardware proprietaria. Questo dispositivo, definito SCADA, permettere di aggiungere funzionalità vocali ai sistemi di sorveglianza, allarme, acquisizione dati, assistenza telefonica.

VoiceText VoiceText è il sintetizzatore vocale dell’azienda Voice Ware, che produce tra l’altro anche sistemi ASR, sistemi di verifica vocale e alteratori vocali. Caratteristica di questo software è la discreta potenza del suo motore di analisi grammaticale, che gli permettere di trovare con notevole precisione l’intonazione corretta per ogni parola di input., dando peso anche a combinazioni numeriche, caratteri speciali, punteggiatura.

Riferimenti bibliografici 1. Acero, A. Formant analysis and synthesis using hidden markov models. In Proceedings of Eurospeech 1999 (1999).

2. Ainsworth, W. A system for converting english text into speech. IEEE Transactions on audio and electroacoustics 21 (1973).

3. Dutoit, T. An Introduction to Text to Speech Synthesis. Kluwer Academic Publishers, 1997.

4. Hamon, C., Moulines, E., AND Charpentier, F. A diphone synthesis system based on time-domain modifications of speech”. In Proceedings of the International Conference on Acoustics Speech and Signal Processing 1989 (1989).

5. Arris, R. Signs of Writing. Routledge, 1996.

6. Huckvale M. Speech synthesis, speech simulation and speech science. In Proceedings of the International Conference on Speech and Language Processing 2002 (2002), pp. 1261– 1264. 7. Hunt, A. J., and Black, A. W. Unit selection in a concatenative speech synthesis system using a large speech database. In Proceedings of the International Conference on Speech and Language Processing 1996 (1996), pp. 373–376.

8. Hunt, M., Zwierynski, D., and Carr, R. Issues in high quality lpc analysis and synthesis. In Proceedings of Eurospeech 1989 (1989), pp. 348–351.

9. Li, X., Malkin, J., and Bilmes, J. A graphical model approach to pitch tracking. In Proceedings of the International Conference on Spoken Language Processing 2004 (2004).

10. Milner, R.Bigraphsasamodelformobileinteraction.InProceedingsoftheInternational Conference on Graph Transformation 2002 (2002).

11. Moulines, E., and Verhelst, W. Time-domain and frequency-domain techniques for prosodic modification of speech. In Speech Coding and Synthesis, W. B. Kleijn and K. K. Paliwal, Eds. Elsevier Science B.V., Netherland, 1995, pp. 519–555.

12. Stylianou, Y., and Syrdal, A. K. Perceptual and objective detection of discontinu- ities in concatenative speech synthesis. In Proceedings of the International Conference on Acoustics Speech and Signal Processing 2001 (2001).

13. Taylor, P. A., Text-to-Speech Synthesis, 2007.

14. Taylor, P. A., and Black, A. W. Speech synthesis by phonological structure matching. In Proceedings of Eurospeech 1999 (1999), pp. 623–626.

15. Verhelst, W., Compernolle, D. V., and Wambacq, P. A unified view on syn- chronized overlap-add methods for prosodic modification of speech. In Proceedings of the International Conference on Spoken Language Processing 2000 (2000), vol. 2, pp. 63–66.

16. Von Kempelen, W. Mechanismus der menschlichen Sprache nebst Beschreibung einer sprechenden Maschine and Le Mchanisme de la parole, suivi de la description d’une ma- chine parlante. Vienna: J.V. Degen, 1791.

17. Web Site: http://hts.sp.nitech.ac.jp/

18. Wer, B. R., Leroux, A., Delbrouck, H. P., and Leclercs, J. A new parametric speech analysis and synthesis technique in the frequency domain. In Proceedings of Eurospeech 1995 (1995).

19. Douglas O’Shaughnessy, “Interacting With Computers by Voice: Automatic Speech Recognition and Synthesis”, Proceedings of the IEEE, 2003.

20. Santosh K.Gaikwad, Bharti W.Gawali, Pravin Yannawar, “A Review on Speech Recognition Technique”, International Journal of Computer Applications, 2010.

21. Deng Li, Douglas O'Shaughnessy, “Speech processing: a dynamic and optimization-oriented approach”, Marcel Dekker, 2003.

22. Sahidullah Md., Saha Goutam, "Design, analysis and experimental evaluation of block based transformation in MFCC computation for speaker recognition", Speech Communication, 2012.

23. Sakoe H., Chiba S., “Dynamic programming algorithm optimization for spoken word recognition”, IEEE Transactions on Acoustics, Speech and Signal Processing, 1978. 24. Raji Sukumar.A, Firoz Shah.A, Babu Anto.P, “Isolated question words recognition from speech queries by Using artificial neural networks”, Second International conference on Computing, Communication and Networking Technologies, 2010.

25. N.Uma Maheswari, A.P.Kabilan, R.Venkatesh, “A Hybrid model of Neural Network Approach for Speaker independent Word Recognition”, International Journal of Computer Theory and Engineering, 2010.

26. Zhao Lishuang , Han Zhiyan, “Speech Recognition System Based on Integrating feature and HMM”, International Conference on Measuring Technology and Mechatronics Automation, 2010.

27. Iain McCowan, Darren Moore, John Dines, Daniel Gatica-Perez, Mike Flynn, Pierre Wellner, Herve Bourlard, “On the Use of Information Retrieval Measures for Speech Recognition Evaluation”, IDIAP research report, 2005