Abbiamo visto che un sistema del secondo ordine formato da una cascata di due sistemi del primo ordine con poli complessi coniugati ha una risposta in frequenza accordata sulla frequenza corrispondente all’angolo dei due poli complessi coniugati e
:
Questa risposta assume il massimo alla pulsazione ω0 ed ha larghezza di banda che vale approssimativamente: B=2(1-r). L’espressione analitica della risposta impulsiva è:
Si può allora utilizzare una cascata di sezioni del secondo ordine di questo tipo, per sagomare la risposta in frequenza di un sistema che emula il sistema di produzione delle vocali.
Il problema quindi è quello di creare un modello di questo sistema, approssimandolo con sezioni del secondo ordine.
In prima approssimazione l’apparato fonatorio è formato da una sequenza di cavità risonanti costituito dai vari tratti dell’apparato vocale esofago e bocca.
Queste cavità risonanti, sagomate in modi diversi, con diverse dimensioni, larghezza e lunghezza, durante l’emissione delle diverse vocali, filtrano in modi diversi un impulso glottico di eccitazione prodotto dalle corde vocali con l’emissione di impulsi di pressione; questi impulsi sono provocati dalla contrazione periodica del flusso di aria emesso dai polmoni. Sagomando dunque diversamente l’apparato vocale l’uomo produce le diverse vocali, caratterizzata quindi ognuna dalle risonanze alle frequenze opportune (formanti) e dalla larghezza di banda di queste.
La frequenza fondamentale di questo treno di impulsi glottici è legata poi al genere: la voce maschile ha una frequenza fondamentale (pitch) di 80 Hz circa, quella femminile più alta e quella di bambino ancora più alta (voce più acuta). La frequenza di questi impulsi di pitch è inoltre legata ad aspetti esprssivi come l’intonazione. Modello dell’emissione vocale: sagoma delle cavità vocali e corrispondenti risonanze.
La caratteristica del sistema di filtraggio per le varie vocali è del tipo illustrato in figura per la vocale a e, nella figura seguente, per tutte le 5 vocali. Si notano le prime cinque risonanze che caratterizzano l’emissione attraverso la frequenza di accordo e la larghezza di banda. Spettro della vocale a: sono evidenti le frequenze di risonanza dei tratti vocali.
La posizione dei poli per la vocale a è riportata nella figura 1; si possono apprezzare sia le diverse distanze dal cerchio unitario (poli vicini significa risonanze più forti) sia il fatto che tutti i poli, sono, ai fini della stabilità, interni al cerchio unitario. La risposta impulsiva della a presenta un andamento oscillatorio ed una rapida decadenza nel tempo. La posizione dei poli per le varie formanti è indicata nella figura 3.
E’ importante sottolineare che ai fini di una buona sintesi è rilevante lo spettro dell’impulso di eccitazione; questo in prima approssimazione si può simulare con un treno di impulsi unitari alla frequenza tipica dell’emissione vocale, intorno ai 100Hz; l’impulso unitario ha uno spettro piatto su tutta la banda, adatto ad essere poi sagomato dalle risonanze del filtro vocale Per ottenere però un segnale più naturale è necessario sagomare più accuratamente l’impulso glottico nel dominio del tempo o in quello della frequenza.
Nel dominio delle frequenze avremo i seguenti diagrammi per lo spettro della risposta al singolo impulso glottico e del segnale vocale risultante dall’eccitazione mediante un treno di impulsi.
Infine, modulando opportunamente la frequenza dell’impulso glottico si può sintetizzare una voce cantata su di una melodia preassegnata; occorre a tale scopo che i treni di impulsi siano modulati in frequenza nel tempo, seguendo quindi la linea melodica; inoltre è necessario utilizzare treni di impulsi glottici di buona qualità.
Nel caso di un impulso glottico sagomato opportunamente, con prestazioni migliori del semplice impulso unitario, avremo nel tempo e nella frequenza i diagrammi in figura. La sequenza di impulsi applicati alla rete per la sintesi è nella figura seguente: si osserva che le variazioni di ampiezza, opportunamente controllate sono funzionali alla qualità del risultato acustico finale. Occorre sottolineare che la teoria sviluppata si riferisce alla sintesi delle vocali; per la sintesi delle consonanti si usano tecniche diverse legate alle caratteristiche della consonante in esame e si fa spesso uso di rumore come eccitazione.Questa parte riguardante la sintesi delle consonanti viene qui tralasciata. Un secondo problema poi della sintesi è quello dell’articolazione del parlato, cioè connessione tra vocali e consonanti. Una tecnica che recentemente ha avuto buoni sviluppi consiste non nell’utilizzare un modello del parlato ma un vasto data base di suoni elementari digitalizzati: questi vengono scelti con criteri di ottimizzazione delle transizioni al fine di ottenere le parole richieste.
Sono proposti nella sezione materiale dei semplici programmi per sperimentare la sintesi vocale.
voice.m è una funzione che con il formato [y z p a b]=voice(vocale,fpitch,dur,SR) restituisce in funzione della vocale il segnale vocale relativo a vocale di altezza fpich e durata dur con frequenza di campionamento SR.
formant.m restituisce in funzione della vocale prescelta ‘aeiou’ le frequenze delle prime cinque formanti e la larghezza di banda in funzione della frequenza. I dati sono ricavati dalla letteratura del settore.
form_zp restituisce in funzione delle frequenze e delle larghezze di banda. ricavati da formant.m , i poli e gli zeri mentre i coefficienti del polinomio completo, prodotto dei cinque polinomi i secondo grado che come visto caratterizza il sistema oscillante del secondo ordine , sono ottenuti mediante la funzione poly di Matlab: a = poly(p); b = poly(z).
Nel semplice sistema proposto tuttavia ci sono soltanto poli; il sistema quindi è puramente ricorsivo.
Infine la sintesi è effettuata eccitando la cascata di filtri risonanti del secondo ordine con un semplice treno di impulsi unitari, treno che nel dominio delle frequenze, come già visto, è ancora un treno di impulsi. La simulazione della voce, (sintesi del segnale vocale), ottenuta eccitando il sistema costituita dalla cascata delle 5 risonanze per le diverse vocali, viene fatta con un treno di impulsi unitari alla frequenza di circa 80-100Hz, intorno alla quale si ha emissione vocale. Questa frequenza darà approssimativamente una sensazione di voce maschile, femminile o infantile man mano che cresce rispetto agli 80-100Hz. Questi dati, riportati in letteratura sono inglobati nelle routine Matlab riportate nella sezione materiale. Si può semplicemente sperimentare con le routine fornite o aggiungere variazioni del pitch nel tempo, per simulare una intonazione vocale oppure realizzare uno sweep di frequenza per simulare il canto, ovvero realizzare dei cori vocali, mettendo in parallelo più filtri di sintesi etc. I suoni proposti sono realizzati con questa semplice strategia accoppiata al gusto musicale di un allievo degli anni passati.
Nella nostra Università è attivo un gruppo di Natural Language Processing (NLP).
Il gruppo si è occupato tra l’altro di sintesi del parlato, modelli di prosodia ed intonazione, con la finalità di migliorare il parlato sintetico in generale e per applicazioni robotiche. Numerosissimi i gruppi che si occupano della sintesi del parlato dal punto di vista del DSP. Ad esempio l’AT&T ropone una demo di sintesi di voce parlata.
Un centro in qui vengono svolte ricerche sull’analisi e la sintesi della voce cantata è nel KTH Royal Institute of Technology di Stoccolma nel gruppo di Johan Sundberg, Dept. of Speech Communication. Per una illustrazione di questo tipo di ricerca si può importare il file.
I file necessari per la sintesi del segnale vocale sono:
1. Introduzione al corso. I segnali a tempo continuo ed a tempo di...
3. Sistemi: tipologie. Sistemi discreti e continui, lineari e non.
5. Equazioni alle differenze finite: sistemi del primo ordine
6. Sistemi del Secondo Ordine. Sistemi di ordine arbitrario
7. Sistemi del secondo ordine: sintesi vocale
8. Sistemi per l'elaborazione numerica dei segnali: implementazion...
9. Quantizzazione: precisione finita di parola
10. Segnali continui: Serie di Fourier e Trasformata di Fourier
11. Analisi di Fourier per sequenze periodiche: DFS
12. Serie Discrete di Fourier: esempi
13. Analisi di Fourier per sequenze finite: la DFT
14. Trasformata di Fourier a Tempo Discreto per segnali di durata a...
15. Trasformata di Fourier a Tempo Discreto: proprietà
16. Trasformata di Fourier a Tempo Breve (STFT short time fourier t...
17. La trasformata Z
18. Il teorema del campionamento: ricostruzione
19. Trasformate bidimensionali
AT&T Natural Voices® Text-to-Speech Demo
KTH Royal Institute of Technology
Natural Language Processing (NLP)