Real Singer
Aspetti tecnici
|
 |
Nota: Questa pagina
non è che una ristretta
panoramica sui metodi impiegati
da Real Singer per generare la
voce.
Per usare Real Singer non
è necessario
leggerla.
Questo capitolo è
destinato a rispondere alle
domande tecniche che alcuni
utenti potrebbero porsi per
quanto riguarda gli algoritmi
interni e non è dunque
necessario per usare il
prodotto. |
|
Introduzione
|
|
|
|
Per produrre una sintesi vocale cantata
realistica, la prima idea che viene in mente al
programmatore è quella di impiegare una
collezione di fonemi registrati allo scopo di
generare la voce.
Si manifestano rapidamente tre
problemi:
- L'algoritmo deve essere capace di
generare il fonema a qualsiasi frequenza.
Registrare tutti i fonemi possibili a tutte
le frequenze possibili non è
immaginabile perché un metodo di questo
genere porterebbe a un procedimento di
registrazione lungo e complesso e, allo
stesso tempo, alla formazione di documenti di
definizione della voce troppo
voluminosi.
- L'algoritmo deve poter prolungare il
fonema a piacere.
- L'algoritmo deve essere capace di
generare una transizione dolce tra un fonema
e l'altro al fine di simulare il fenomeno
della coarticolazione (il fonema seguente
incomincia ad essere sentito quando ancora il
precedente non è completamente
terminato).
Nella letteratura informatica è possibile
trovare la soluzione per ognuno di questi
problemi.
Per i problemi 1 e 2 sono già stati
sviluppati alcuni algoritmi efficaci. Essi
trattano direttamente il segnale digitale del
campione registrato e permettono di cambiare
sia la frequenza che la durata. Questi
algoritmi sono impiegati nella maggior parte
degli editori di suono per cambiare in modo
indipendente la frequenza o la durata di un
documento di suono. Essi sono parimenti
impiegati con successo nella sintesi vocale
parlata perché in questo caso le
variazioni di frequenza sono molto lievi.
Tuttavia nella voce cantata questi algoritmi
non possono essere utilizzati perché non
sono più efficaci nel caso di cambi di
frequenza molto importanti. Il risultato non
è "falso" in se stesso, ma la voce risulta
deformata esattamente come quando un nastro
magnetico scorre troppo velocemente (voce da
canarino).
Per il problema 3 una soluzione abituale
è quella di non registrare soltanto i
fonemi di una lingua, ma tutte le combinazioni
possibili di due o tre fonemi (difonemi,
trifonemi). Questo metodo immagazzina le
coarticolazioni e rende più realistica la
voce sintetizzata. Tuttavia anche in questo
caso il processo di registrazione è molto
lungo, complicato e necessita sovente di molte
ore di registrazione da parte del locutore
(cantore). Il documento di definizione della
voce è spesso imponente (molti Mb).
Real Singer usa algoritmi originali per
risolvere i tre problemi in una volta sola
manipolando gli spettri di
frequenza.
Alcuni sintetizzatori vocali hanno già
tentato di utilizzare gli spettri di frequenza
per generare la voce.
Tuttavia questo metodo si è dimostrato
difficile da mettere in opera perché
rigenerare un segnale partendo da uno spettro
ed impiegando la trasformata inversa rapida di
Fourier (IFFT) richiede di riaggiustare
correttamente i valori di "fase"; in caso
contrario i pezzi consecutivi del segnale non
si uniscono correttamente ed è percepibile
un rumore di fondo.
Spettro vocale
|
|
|
|
Quando si parla o si canta, la forma d'onda
della sorgente glottica (suono prodotto dalle
corde vocali quando sono eccitate dal flusso
d'aria proveniente dai polmoni) è una
combinazione di armonici (frequenze multiple di
quella della fondamentale (f0).
In un grafico potenza/frequenza, il segnale
prodotto dalla sorgente glottica somiglia ad un
pettine, ciascun dente del quale è posto
ad una distanza dall'origine, multipla di
quella della fondamentale f0:
Quando la frequenza della voce aumenta, f0
scivola a destra (alte frequenze) e la
differenza di frequenza fra due armonici
consecutivi aumenta nella stessa misura.
Nel percorso del condotto vocale, le risonanze
delle cavità esaltano certe frequenze e ne
deprimono altre. Il risultato è che certi
armonici risultano potenti mentre altri vengono
smorzati. Lo spettro di risposta del condotto
vocale dipende dal fonema pronunciato o cantato
e resta più o meno invariato quando la
frequenza aumenta o diminuisce.
La convoluzione di questi due spettri (sorgente
e condotto vocale) dà lo pettro
risultante, nel quale l'ascoltatore può
individuare a volta a volta il fonema (ciò
che è detto) e la frequenza (la nota
cantata).
Le basi di Real Singer
|
|
|
|
Il compito di Real Singer è quello di
applicare ad ogni fonema di una lingua data una
deconvoluzione del segnale registrato per
separare lo spettro della sorgente glottica da
quello del condotto vocale. Dopo di che viene
immagazzinato soltanto quello del condotto. In
seguito sarà applicata a questo spettro
una sorgente glottica artificiale per simulare
il fonema originale registrato, cantato ad una
frequenza qualsiasi.
Procedimento di registrazione
|
 |
- Si chiede all'utente di pronunciare una
parola per ognuno dei fonemi della lingua
scelta.
- Ogni parola è registrata in dati
sonori tradizionali.
- A questo punto il fonema viene isolato
nella parola, dopo di che si rifila il
segnale per conservarne soltanto questa
parte.
- Viene calcolato uno spettro medio del
suono.
- Lo spettro è deconvoluto per
eliminare l'influenza della sorgente glottica
e conservare soltanto la curva di frequenza
delle risonanze del condotto vocale.
- Questo pseudo spettro è
immagazzinato (meno di 100 valori per
fonema).
- Per i fonemi che variano nel tempo come
le plosive vengono immagazzinati più
pseudo-spettri al fine di conservare le
informazioni sui cambiamenti nello
spettro.
Questi algoritmi permettono di immagazzinare
soltanto un piccolo numero di dati per spettro,
il che consente di ottenire documenti di
definizione della voce molto corti (meno di 40
Kb per voce dopo la compressione).
Generazione della voce
|
 |
- È estratto lo pseudo-spettro di ogni
fonema da cantare. Nei punti di transizione
fra due fonemi i due pseudo-spettri sono
deformati e miscelati per simulare il
processo di coarticolazione.
- È generato un segnale sintetico di
sorgente glottica alla frequenza generata. Lo
spettro glottico della sorgente può
essere comodamente modificato per cambiare il
timbro globale della voce (per equalizzarla o
applicare effetti vari del tipo
vocoder).
- La sorgente è ri-convoluta con lo
pseudo-spettro del fonema.
- Lo spettro è allora trattato con una
trasformata inversa senza fase per generare
un blocco di dati sonori standard.
|