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.