Modello classico di sintesi digitale della voce intonata corretto

Transcript

Modello classico di sintesi digitale della voce intonata corretto
Breve illustrazione del modello
classico di sintesi digitale della
voce intonata
“Seminari di cultura del suono e della tecnica”
Conservatorio di Napoli S.Pietro a Majella
Stefano Silvestri
19/12/2008
Obiettivi principali
• Costruire un algoritmo di sintesi capace di simulare, attraverso una certa
approssimazione, le vocali scaturite dall’ emissione sonora della voce
umana.
• Il sistema dovrà dare possibilità di “intonare” le vocali prodotte a
frequenze differenti, dove per intonazione si intende: prendere in esame
una determinata vocale e mantenere la sua frequenza di “accordo”
costante in un tempo arbitrario.
LIMITI DELLA SIMULAZIONE VOCALE COSTITUITA:
• La simulazione vocale creata non è un modello di sintesi del parlato in
quanto i processi implementati non tengono conto (tra l’altro) della
complessa riproduzione delle consonanti.
• Essa non è un modello di simulazione del cantato infatti non si tiene
conto delle complesse leggi che regolamentano le transizioni
formantiche e delle tecniche di canto in generale. Ovviamente anche il
canto prevede l’uso di consonanti.
• Al contempo non è un modello di simulazione corale per motivazioni che
non differiscono dalle problematiche sopraesposte.
Obiettivi per l’algoritmo
1.
2.
3.
4.
5.
Simulare, con una certa astrazione, l’impulso glottico di
eccitazione relativo al movimento delle corde vocali per ricavare
un determinato spettro da “sagomare” con sistemi di filtri risonanti
in cascata.
Creare un sistema semplificato che approssimi uno spettro vocale
umano a partire dalla specifica tecnica di sintesi sottrattiva per
formanti, implementando i suddetti filtri.
Determinare, tramite tabelle di analisi vocale ed equazioni
specifiche, i parametri dei filtri per comporre lo spettro formantico
ideale di diverse vocali.
Definire, per il processo di sintesi, dei metodi arbitrari capaci di
conferire al risultato sonoro una “sensazione di voce naturale”.
Le variabili dell’algoritmo sono rese dinamiche tramite leggi di
dipendenza e funzioni di tipo deterministico e/o pseudo-random
emulando in modo non analitico gli stati transitori e di instabilità
probabili in un sistema fisico-vocale.
Produrre l’intonazione di voci sovrapposte a partire dalla semplice
esecuzione di voci singole compresenti.
1.1 Simulazione impulso glottico di
eccitazione
•
•
Il segnale da filtrare è un segnale che approssima il movimento fisico di
vibrazione delle corde vocali che in sostanza emettono impulsi di
pressione.
Johan Sundberg (‘80), nel suo studio sulla voce, simulò analiticamente il
modello di impulso glottico con il quale è possibile ricavare un treno di
impulsi (unitari) che ben approssima il comportamento fisico delle corde
vocali:
Modello di Sundberg informativo del comportamento vibratorio delle corde vocali
1.2 Simulazione impulso glottico di
eccitazione
• In tal sede si è ricostruito un Impulso glottico ideale a
partire da una funzione standardizzata “a dente di sega”
compresa tra ±1 con un definito numero di campioni n
che favorisce un ben preciso contenuto spettrale.
In questo caso il contenuto spettrale è costituito da tutte le
armoniche n(ƒ0) con legge di decadimento dell’ampiezza An=1/ƒn=ƒn^-1
1.3 Simulazione impulso glottico di
eccitazione
• Per ricavare un treno di impulsi a partire dal suddetto periodo
(T=n*Tc), assunto come modello ideale (più astratto) del
comportamento vibratorio delle corde vocali, si può sfruttare un
oscillatore a lettura di tabella fissa.
La tabella creata per l’impulso glottico di eccitazione è grande 4096 punti e
grazie alla sua lettura ciclica si potrà avere un treno di impulsi, che nel caso
della figura ha frequenza ƒ0 = 1/∆t = 227Hz
2.1 Algoritmo di sintesi sottrattiva
per formanti
• Il tipo di sintesi sottrattiva scelto permette di “modellare”,
a partire dallo spettro armonico ricavato, le formanti di
varie vocali riproducendo l’effetto del filtraggio apportato
dalle cavità risonanti del tratto vocale stesso.
• Almeno in questa tecnica esemplificativa, che non tiene
conto di alcune leggi complesse definibili in un modello
fisico dettagliato, le formanti dello spettro non variano al
variare della frequenza ƒ0 del treno di impulsi ossia, per
una stessa vocale, le frequenze di centro banda (Fc) dei
filtri mantengono sempre la stessa distanza al variare di
ƒ0 .
• Si è implementato un sistema di filtraggio formato da una
cascata di cinque passa-banda (>= II ordine) ossia un
sistema di decimo ordine (polinomio di decimo grado) per
la costruzione di spettri formantici.
2.2 Algoritmo di sintesi sottrattiva
per formanti
• L’algoritmo di sintesi può essere riassunto tramite il
seguente diagramma a blocchi riportante i moduli relativi
alle procedure principali:
Vocali di esempio:
“A“, “E”,”I”, “O”,”U”
Schema illustrativo dell’algoritmo di sintesi semplificato + esempio di formanti
sovrapposte in cui si evince la differenza che sussiste tra l’inviluppo spettrale di
diverse vocali.
2.3 Algoritmo di sintesi sottrattiva
per formanti
•
1.
2.
Tale algoritmo è stato scritto in c-Sound e le possibilità
“primitive” che restituisce sono:
Variabilità della frequenza fondamentale ƒ0 del treno di
impulsi (frequenza di lettura della tabella tempo-variabile)
in modo da ottenere differenti “intonazioni” della voce
cantata. L’intonazione potrà basarsi ad esempio sul
sistema temperato 2^1/12. A questa si aggiunge la
possibilità di incremento/decremento dell’ ampiezza del
treno mediante serie di funzioni di inviluppo selezionabili.
Possibilità di richiamare attraverso routine di selezione le
vocali da sintetizzare in modo da poter facilmente
“intonare la voce” con vocali differenti. A questo si
aggiunge la possibilità di simulare, l’asincronia di attacco
delle intonazioni simultanee e la possibilità di disporre voci
singole e sovrapposte nella stereofonia, per dare una
minima sensazione di differenza di locazione
dell’emissione sonora.
2.4 Algoritmo di sintesi sottrattiva
per formanti
• Tipologie di filtri implementati:
L’equazione alle differenze finite, relativa ad un
sistema IIR di II ordine passa-banda (2 poli)
ottenuto dalla cascata di due sistemi del primo
ordine aventi poli complessi coniugati
,è
così espressa:
y(n) = A x(n) – B1 y(n-1) – B2 y(n-2)
• Se il filtro non è riscalato, l’ampiezza del segnale
risultante dipenderà da Bw e Fc per cui si è
prevista una normalizzazione dell’ampiezza di
uscita. (comparazione del segnale di out con
uno di riferimento < del margine di saturazione).
Grazie al riscalamento si otterrà un valore di
ampiezza costante al variare delle vocali.
3.1 Parametri dei filtri per lo spettro
formantico
• Registri vocali differenti sono caratterizzati da formanti
differenti e man mano che la frequenza (ƒ0) del treno
cresce dagli 80Hz in su si avrà sensazione di voce
maschile femminile ed infantile rispettivamente.
• Considerando che l’emissione vocale maschile avviene
mediamente intorno ai 100Hz, con estensione massima
di ≈ 2 ottave, si è tentato di simulare l’intonazione di una
voce che ricorda il timbro di tenore.
• A titolo di esempio la “A” di una voce di tenore può avere
i seguenti parametri di base:
tenor “a”
f1
f2
f3
f4
f5
freq (Hz)
650
1080
2650
2900
3250
amp (dB)
0
-6
-7
-8
-22
bw (Hz)
80
90
120
130
140
“Table of vocal formants” prelevata dal c-sound help
3.2 Parametri dei filtri per lo spettro
formantico
• Per ottenere una sensazione coerente di voce maschile, che sia
tendente al “tenore”, sono stati raccolti più dati formantici assieme
prelevati da varie tabelle disponibili in letteratura e riportanti le
frequenze di centro banda tipiche della voce sia maschile che
femminile. Le costanti relative al Bw ed al guadagno (G) di ogni
risonanza non sono state ricopiate da tabelle ma sono state ricavate
implementando nell’algoritmo il loro calcolo.
• La tabella creata riporta le frequenze di accordo dei cinque filtri in
cascata ossia le formanti relative ad ogni differente vocale:
Tabella formantica ricavata deterministicamente da più fonti di analisi
3.3 Parametri dei filtri per lo spettro
formantico
•
1.
2.
3.
•
I primi fattori che contribuiscono alla distinzione delle
intonazioni vocali ed alla familiarità dello spettro
formantico, sono in gran parte:
Il tipo di contenuto spettrale del treno di impulsi glottici.
(che conferisce anche >,< brillantezza timbrica).
l’inviluppo spettrale di ogni vocale intonata, infatti esso
non è uguale da persona a persona.
La variabilità della distanza tra le formanti (Fc) al
variare delle vocali.
Tuttavia i fattori che permettono di riconoscere e distinguere uno
spettro vocale da un altro e di stabilire successivamente che
l’emissione vocale è un’ informazione linguistica, sono molteplici e
complessi specialmente da riprodurre con l’algoritmo costruito che
permette la modifica di un numero molto limitato di parametri,
come ad esempio quelli relativi al sistema di filtraggio.
3.4 Parametri dei filtri per lo spettro
formantico
• Implementazione dell’equazione esplicita di Dunn (‘60)
per il calcolo della larghezza di banda Bw di ogni filtro:
B = k(1+1/6(Fc/1000)^2)
Dove k è una costante arbitraria.
• Assumendo che K=50 ed f5 <= 5000Hz si ha:
Il Bw cresce più che linearmente in funzione della frequenza di ogni formante
della vocale. Il Q (Fc/Bw) delle risonanze è maggiore per le prime formanti.
4.1 Metodi usati per la simulazione
di una voce “naturale”
1. Per le ampiezze A(n) delle formanti (o risonanze) si è
stabilito, dopo vari test, una “maschera” costante di
valore:
A(1) = 1; A(2) = .5; A(3) = .75; A(4) = .5; A(5) = .2
• Si è determinata una legge direttamente proporzionale
che lega A(n) di ogni Fc al valore totale di ampiezza della
vocale (espresso in dB): A(Fc) = A(n) + Amp/100.
/100
2. Una quantità crescente di vibrato conferisce > credibilità
della voce e dell’intonazione vocale sintetica: l’ampiezza
del vibrato è in % e dipende dalla frequenza del treno ƒ0
selezionata in nota. A questa si aggiunge anche una
minima quantità pseudo-random che porta l’escursione
complessiva del vibrato ad essere compresa fra 3+0 e
3+.9; il vibrato differisce così per ogni voce sovrapposta.
• La frequenza di vibrato è pseudo-random con valori
massimi possibili compresi tra 5-.9Hz e 5+.9Hz.
4.2 Metodi usati per la simulazione
di una voce “naturale”
3. Per simulare un transiente di attacco dell’intonazione, ƒ0 è
posto su segmenti esponenziali. Si presuppone che un sistema
fisico vocale non possa intonare in un tempo nullo quindi la
frequenza parte sempre dal semitono inferiore di ƒ0, in una
frazione << del t(sec) complessivo della nota di voce, per poi
crescere al punto ƒ0 nel tempo rimanente >. Ai punti dei
segmenti, relativi alla frequenza di intonazione (ƒ0), si aggiunge
un seme pseudo-casuale compreso tra ±ƒ0/100.
4. Per poter “inizializzare”, ogni volta in modo differente, i
generatori random (in c-Sound) si è prevista una costante (K),
sempre aleatoria, da sommare a tutto il segmento di frequenza
ƒ0. Questo permette, per valori di escursione <<, di variare
nella simulazione tutte le “instabilità frequenziali” di voci
differenti e sovrapposte.
5. L’inviluppo spettrale di ogni vocale è complessivamente pilotato
dall’inviluppo generale uniforme su ogni valore A(n) di ogni Fc.
4.3 Metodi usati per la simulazione
di una voce “naturale”
6. Simulazione del jitter o micro-instabilità della frequenza
appartenente al sistema fisico-vibratorio vocale. Si
presuppone che si inneschino fenomeni di jitter all’atto
dell’emissione vocale (> per lunghe intonazioni) ossia vi
siano fluttuazioni dello spettro vocalico quasi impercettibili
ma che comunque contribuiscono alla fusione spettrale
dell’emissione di voce.
• Sapendo che le instabilità avvengono con valori non
discontinui allora si è scelto di implementare una Catena di
Markov, un generatore Random-Walk a barriere riflettenti
per la simulazione della detta fluttuazione spettrale.
• Esso in pratica rappresenta una “passeggiata casuale” in
cui ogni passo successivo dipende dal precedente con
valori di passo, negativi e positivi, unitari.
• Ma l’escursione della “passeggiata” è limitata da barriere
che fanno rimbalzare i passi + e - verso lo 0.
4.4 Metodi usati per la simulazione
di una voce “naturale”
• L’algoritmo principale di Random-Walk è descritto nel
seguente listato J-Basic:
Questo sistema è stato riscritto in c-Sound ed è utile, per valori contenuti di
escursione randomica (%), a diminuire la staticità e la “sinteticità” della
simulazione, favorendo all’ascolto, una buona sensazione di emissione vocale.
5.1 Simulazione di intonazioni
d’insieme
• Quando due o più voci, a parità di intonazione e di emissione vocale,
risultano compresenti si assiste alla fortificazione di un’unica voce
percepita come insieme.
• Per le simulazioni di intonazioni d’insieme, risulta utile distanziare
minimamente gli spettri formantici tramite una variabile aggiornabile
in score.
• Presupponendo che allora debbano esserci, per stesse vocali
intonate, spettri formantici leggermente differenti, l’algoritmo permette
di traslare in modo uniforme tutte le Fc che normalmente si sarebbero
“fuse” tra loro.
[Fc1 ;Fc2 ;Fc3 ;Fc4 ;Fc5]+Kt
dove Kt è uniforme a tutte le Fcn tale che S1(a1) ≠ S2(a2), dove le a
sono vocali sovrapposte ed S1,S2 sono gli inviluppi spettrali.
• Si è tentato di diminuire questo effetto di “fusione spettrale”
distanziando in modo opportuno gli spettri formantici compresenti
conservando le distanze tra ogni Fc.
• Si è sperimentato che la variabilità casuale dei parametri di ogni nota
di voce non è spesso sufficiente, nelle simulazioni di insiemi vocalici,
a favorire il riconoscimento di spettri simili sovrapposti.
Bibliografia utile:
• Johan Sundberg - “The Science of the Singing Voice”
• Charles Dodge, Thomas Jerse - “Computer music”
• John.Pierce - “La scienza del suono”
• Massimo Del Duca – “Musica digitale”
Dispense:
• Prof. Agostino Di Scipio - “elementi fondamentali dei filtri digitali
tempo discreti” – informatica musicale III
• Prof. Sergio Cavaliere - “Sistemi di secondo ordine: sintesi delle
vocali” – elaborazione dei segnali per la multimedialità
Sviluppi possibili del sistema di sintesi usato:
• Reimplementazione dell’algoritmo in Max/Msp per avere
in tempo reale la “transizione formantica”, il passaggio
graduale tra uno spettro di una vocale ad un altro.
• Sperimentare “sintesi incrociata” tramite l’inserimento di
spettri differenti (es. strumenti) nell’algoritmo di sintesi.