Academia Română
Secţia Ştiinţa şi Tehnologia Informaţiei
Institutul de Cercetări pentru Inteligenţă Artificială
REFERAT III
APLICAŢII PENTRU
SINTEZA VORBIRII
Coordonator ştiinţific: Prof. Dr. Ioan Dan TUFIŞ
Membru Corespondent al Academiei Romane
Doctorand: Tiberiu BOROŞ
Aplicaţii pentru sinteza vorbirii
2
Cuprins
1. Introducere .................................................................................................................. 3
i. Prelucrarea limbajului natural ................................................................................. 4
ii. Prelucrarea semnalului vocal ................................................................................... 4
iii. Construirea unei baze de date pentru sinteza bazază pe metoda concatenativă... 5
2. Considerente asupra modului de producere și percepție a sunetelor .......................... 6
i. Producerea sunetelor ................................................................................................ 6
ii. Percepţia sunetelor ................................................................................................... 7
iii. O clasificare a sunetelor din punct de vedere articulatoriu .................................. 9
3. Algoritmi şi aplicaţii de sinteză a vorbirii ................................................................. 12
4. Segmentarea automată a vorbirii şi alinierea la text ................................................. 14
i. Alinierea bazată pe Dynamic Time Warping ........................................................ 21
5. Concluzii ................................................................................................................... 24
6. Referinţe bibliografice............................................................................................... 25
Aplicaţii pentru sinteza vorbirii
3
1. Introducere
Procesarea vorbirii este un domeniu care a evoluat mult în ultimii ani odată cu creșterea
perfomanțelor sistemelor de calcul. Există un număr mare de aplicații în special în cazul
serviciilor interactive și a sistemelor menite să ajute persoanele cu handicap (deficiențe de
auz, vedere sau vorbire).
Procesarea vorbirii cuprinde două mari direcții de dezvoltare:
1. Recunoașterea vorbirii reprezintă procesul de identificare a cuvintelor rostite de un
vorbitor, lucru realizat cu ajutorul unei componente software numită Speech
Recognition Engine (SRE).
2. Sinteza vorbirii este procesul invers recunoașterii vorbirii și constă în reconstruirea
vocii de către sistemul de calcul. Acest lucru este strâns legat de procesul de
conversie a unui text în limbaj vorbit și are loc printr-o analiză lingvistică a textului
pentru a ajunge în final la unități lexicale ce sunt transformate în vorbire continuă
(Todorean, 2008). Sistemele care realizează acest process se numesc sisteme text-to-
speech (TTS).
Un sistem TTS primește la intrare un text şi are ca ieşire pronunţarea acestuia prin voce.
Diferența esențială față de alte sisteme capabile să redea voce (de exemplu un casetofon sau
un player audio) este posibilitatea de a creea în mod automat noi cuvinte sau propoziții
(Dutoit, 1999). Există şi posibilitatea de a concatena cuvinte izolate pentru a obține propoziții
noi (fără o prelucrare intensă a acestora) atunci când se lucrează cu vocabulare reduse (de
exemplu vocea care însoțește orice sistem de navigație GPS la ora actuală).
Un sistem de sinteză a vorbirii este format din două componente importante:
1. Un modul de prelucrare a limbajului natural (NLP) folosit pentru a obţine o
transcriere fonetică şi a extrage elemente de prozodie.
2. Un modul de prelucrare digitală a semnalului care se ocupă de sinteza vorbirii.
Figura 1.1 reprezintă schema bloc a modulului NLP.
Modul NLP
Analiză text
PreprocesareAnalizor
morfologic
Analizor
contextual
Analizor
prozodic
Transcriere
fonetică
Generare de
elemente de
prosodie
Text DSP
Figura 1.1 Modul NLP (adaptată după A Short Introduction to Text-to-Speech Synthesis)
Aplicaţii pentru sinteza vorbirii
4
i. Prelucrarea limbajului natural
În general textul ce trebuie sintetizat este supus unei preprocesări, care elimină anumite
caractere, transformă numerele în secvenţe de text (de exemplu 1002 o mie doi), tratează
formulele matematice (în cazul în care acestea sunt prezente în text) etc. (Ordean, 2009;
Dutoit, 1999).
Pentru transcrierea fonetică a cuvintelor din text este necesară în prealabil o adnotare
morfologică a acestora, lucru realizat în mod automat cu ajutorul unui POS Tagger, format
dintr-un analizor morfologic și unul contextual. Rezultatul constă în atribuirea unui descriptor
morfo-sinctactic (MSD) fiecărui cuvânt din text. Acesta este un şir de caractere în care
fiecare poziţie corespunde unui atribut iar caracterul de pe poziţia respectivă indică valoarea
atributului:
1. Primul caracter indică partea de vorbire
2. Următoarele n caractere codează valoarea fiecărui atribut (persoană, număr, gen etc.)
3. Dacă un atribut nu se aplică în cazul respectiv, atunci se foloseşte caracterul ‘-‘.
Pentru codarea lexiconului românesc este necesar un număr de 614 etichete MSD (Tufiş
et al, 2007).
Perceperea sunetelor din punct de vedere fizic este influențată de trei factori importanți:
volumul care este o măsură a intensității sunetului, frecvența componentei fundamentale a
sunetului cunoscută sub numele de înălțime a vocii și timbrul care reprezintă conținutul
armonic al semnalului. Astfel, impunerea elementelor de prozodie se referă la modificarea
frecvenţei fundamentale, a energiei semnalului şi a duratei de pronunţie.
ii. Prelucrarea semnalului vocal
Trăsăturile care stabilesc performanţele unui sistem TTS (text to speech) sunt
inteligibilitatea şi naturaleţea vocii obținute. Aceste caracteristici sunt influenţate în primul
rând de tehnica folosită pentru procesul de sinteză a vorbirii.
1. În sinteza formantică nu se folosesc mostre de vorbire umană pentru sinteză ci
modelul acustic. Frecvenţa fundamentală şi zgomotul sunt variate în timp pentru a
crea forma de undă pentru vorbirea artificială. Nivelul de naturaleţe al vocii
sintentizate este redus, în schimb aplicaţiile care folosesc acestă metodă nu
necesită o bază de date de dimensiuni mari.
2. Sinteza articulatorie se referă la utilizarea modelului tractului uman pentru
generarea de sunet.
Aplicaţii pentru sinteza vorbirii
5
3. Metoda concatenativă se bazează pe concatenarea segmentelor extrase din
vorbirea naturală înregistrată. Rezultate obținute prin această metodă sunt bune în
ceea ce priveşte naturaleţea vocii, dar necesită un volum mare de înregistrări.
Producerea artificială a vorbirii prin metoda concatenativă implică metode de prelucrare
a semnalului vocal începând cu achiziția acestuia, filtrarea pentru eliminarea zgomotelor,
stocarea lui pe un suport magnetic sau optic, analiza lui în vederea extragerii anumitor
parametri, segmentarea manuală sau automată în foneme, difoneme etc. precum și algoritmi
de concatenare a unităților de sunet alese pentru sinteză.
iii. Construirea unei baze de date pentru sinteza bazată pe metoda
concatenativă
Sistemele de sinteză a vorbirii bazate pe această metodă funcţionează prin concatenarea
segmentelor acustice preînregistrate. Un sistem TTS trebuie sa fie capabil să transforme în
voce orice cuvânt din vocabularul limbii pentru care a fost creat. În majoritatea cazurilor se
folosesc baze de date ce conţin difoneme, trifoneme sau eventual silabe. Pentru a reduce din
problemele care apar ulterior la algoritmul de concatenare este necesar un inventar mare de
înregistrări pentru a putea selecta candidaţi potriviţi.
Astfel, după ce se obține un set de unități necesare pentru acoperirea totală (în cele mai
multe cazuri această listă este formată din difonemele specifice unei limbi), se trece la
generarea unei liste de cuvinte ce urmează a fi înregistrate având grijă ca fiecare segment să
apara cel puțin o dată, evitând silabe accentuate şi cuvinte prea lungi care sunt pronunțate în
general mai repede și mai puțin articulat (Burileanu, 1999).
Calitatea vocii obţinute dintr-un inventar mic de segmente preînregistrate este afectată de
prelucrările la care este supus semnalul. Acest lucru determină nevoia de a îmbogăţi
inventarul acustic cu trifoneme, silabe, cuvinte şi chiar grupuri de cuvinte.
Stabilirea manuală a graniţelor dintre sunete necesită timp şi efort care poate fi redus prin
folosirea unor metode de segmentare automată înainte de rafinarea manuală a rezultatelor.
Lucrarea de faţă introduce o metodă nouă de segmentare semiautomată şi aliniere a
semnalului vocal la text, bazată pe analiza caracteristicilor acustice şi a modului de articulare
a diferitelor tipuri de sunete din limba română ce va fi detaliată în capitolul 4.
Aplicaţii pentru sinteza vorbirii
6
2. Considerente asupra modului de producere și percepție a
sunetelor
i. Producerea sunetelor
Din punct de vedere fonetic, aparatul fonator uman este un tub acustic în care o parte a
aerului expirat din plămâni trece prin trahee, în laringe, unde sunt activate coardele vocale.
Procesul prin care aerul trece prin laringe (cutia vorbirii) unde este modulat de glotă (coardele
vocale) se numeşte fonaţie sau intonaţie şi este responsabil pentru generarea înălţimii
sunetului şi a tonului. În final, aerul modulat este filtrat de gură, nas şi gât – proces numit
articulare.
În majoritatea limbilor indoerupeene, sunetele articulate sunt produse în timpul expiraţiei
aerului, cele obţinute în timpul inspiraţiei fiind în număr redus. În timpul vorbirii inspiraţia
este mai adâncă iar expiraţia devine mai lentă, surplusul de aer fiind eliberat pe nas la sfârşit.
Laringele reprezintă partea superioară a traheei, formată din mai multe cartilaje, în
structura căreia intră şi coardele vocale. El este închis în partea de sus de epiglotă, care are ca
funcţie şi împiedicarea glotei în momentul înghiţirii. Există patru coarde vocale (două
superioare şi două inferioare), între care se află o deschizătură (glota interligamentoasă),
diferită ca dimensiuni pentru bărbaţi şi femei. Activitatea coardelor vocale este stimulată şi
dirijată de către sistemul nervos central. Faringele influenţează direcţia aerului spre cavitatea
bucală sau nazală sau eventual spre amândouă în acelaşi timp.
Cavitatea bucală se compune din palatul dur şi palatul moale (prelungit cu o uvulă
numită omuşor). În poziţie de repaus vălul palatului cade pe muşchiul lingual şi aerul iese pe
nas. Căile nazale sunt închise prin ridicarea vălului cu o mişcare de dare înapoi, în timp ce
pereţii faringelui se apropie de acesta. Bolta şi vălul palatului joacă un rol important în
articulaţia cuvintelor. Prima este împărţită în regiunea anterioara (dentală şi alveolară),
mediană (palatală) şi posterioară (velară) (Roseti şi Lazăroiu, 1982).
Aplicaţii pentru sinteza vorbirii
7
Cavitate nazală
Faringe
Palatul dur
Esofag
Epiglotă
Maxilar
inferior
Cavitate bucală
Corzile vocale
Laringe
Palatul moale
Trahee
Buze Dinţi
Limbă
Figura 1.2 - Anatomia şi fiziologia organelor vorbirii
La formarea sunetelor mai participă şi muşchiul lingual, maxilarul inferior (care se
aproprie şi se îndepărtează), bolta şi vălul (joacă un rol important în articulaţia unei categorii
de consoane) precum şi incisivii superiori şi inferiori. Fosele nazale sunt canale osoase,
acoperite cu o mucoasă care participă la formarea sunetelor numite nazale (Roseti şi
Lazăroiu, 1982).
Vibraţiile sonore emise prin articulare se propagă în aer, care este un mediu elastic,
ajungând în ureche. Fenomenul audiţiei presupune receptarea undei sonore sub forma
mesajului. În urechea interioară, aceste unde trec în codul sistemului nervos urmând
momentul identificării.
ii. Percepţia sunetelor
Urechea este organul cu ajutorul căruia oamenii detectează sunetele. Ea este împărţită în
trei componente principale numite urechea externă, medie şi internă. Urechea externă se
compune dintr-un ţesut cartilaginos, numit pavilion, şi din canalul auditiv extern, care uneşte
pavilionul cu timpanul. Timpanul este o membrană foarte subţire de 0,1 mm. Sunetele sunt
captate de pavilion şi sunt transmise prin canalul auditiv extern către membrana timpanică pe
care o antrenază în vibraţii. Conectate la timpan se găsesc cele mai mici oase din corpul
uman, numite ciocan, scăriţă şi nicovală şi care au rolul de a transmite informaţiile captate de
pe suprafaţa membranei către urechea internă. Acest lucru se realizează cu ajutorul cavităţii
Aplicaţii pentru sinteza vorbirii
8
numite cohlee (melcul) care conţine un lichid numit endolimfă şi care este prevăzută cu un
membrană acoperită de celule senzoriale (cili) care convertesc vibraţiile sonore în impulsuri
electromagnetice (impulsuri nervoase) şi transmit aceste informaţii creierului prin intermediul
canalului auditiv intern.
PavilionCiocan
Nicovală
Scăriţă
Trompa lui
Eustachio
Nerv
auditiv
Nerv
vestibular
Cohlee
Canal
semicircular
Canal
auditiv
exter
Fereastră
rotundă
Timpan
Figura 1.3–Canal auditiv (adaptată după Bornaz Sebastian)
Procesul de audiţie este unul atât fizic cât şi psihic. În general înţelegerea sunetelor este
redusă, 30% din foneme fiind percepute greşit. În plus s-a demonstrat că nervii nu pot trimite
impulsurile continue generate de vibaţia sonoră ci doar mostre din acestea. Procesul de
identificare prin aproximare a unui sunet receptat cu unul deja cunoscut se numeşte
vocalitate. Un alt fapt interesant este acela că perceperea consoanelor este dependentă de
modul în care se schimbă frecvenţele formanţilor în zona de tranziţie a acestora în timp ce
vocalele depind direct de frecvenţele formanţilor în zona stabilă(Roseti şi Lazăroiu, 1982).
Urechea umană percepe sunete ale căror frecvenţă variază între 16 Hz şi 20Khz.
Sistemul fonologic al limbii române este format din sistemul vocalic şi sistemul
consonantic:
- Vocalele sunt sunete propriu-zise. Unda sonoră are în cazul lor un caracter periodic.
La formarea vocalelor, curentul de aer fonator iese liber prin cavitatea bucală.
Datorită faptului că vibraţia aerului este determinată doar de coardele vocale, ele sunt
Aplicaţii pentru sinteza vorbirii
9
întotdeauna sonore(cu anumite excepţii cum ar fi vocalele nazalizate din limba
franceză) (Burileanu, 1999)
- Articularea consoanelor este însoţită de zgomote, datorate curentului de aer fonator
care întălneşte diferite obstacole în interiorul cavităţii bucale.
iii. O clasificare a sunetelor din punct de vedere articulatoriu
Informaţiile prezentate în continuare sunt preluate din Burileanu (1999).
1. Vocalele: se disting prin înălţime (dată de frecvenţa fundamentală) şi prin timbru
(reprezentat prin conţinutul de armonici care se alătură frecvenţei fundamentale).
a. În funcţie de unghiul de deschidere a maxilarelor (apertura):
i. Vocale deschise: a
ii. Vocale medii (semideschise): e, ă, o
iii. Vocale închise: i, î (â), u
b. În funcţie de localizarea lor, deci de locul de articulare (punctul din
cavitatea bucală în care se creează spaţiul optim de rezonanţă, realizat prin
diferitele poziţii pe care le ia muşchiul lingual):
i. Vocale anterioare: e, i
ii. Vocale centrale (neutre): a, ă, î (â)
iii. Vocale posterioare (postpalatale): o, u
c. După modul în care sunt însoţite sau nu de rotunjirea buzelor:
i. Vocale labializate (rotunjite): o, u
ii. Vocale nelabializate: a, e, i, ă, î (â)
Aplicaţii pentru sinteza vorbirii
10
Vocale
Deschidere
Închise
Cvasiînchise
Semiînchise
Mijlocii
Semideschise
Cvasideschise
Deschise
Anterioritate
Anterioare Semianterioare Centrale Semiposterioare Posterioare
i y ɨ ʉ ɯ u
ɤ o
ʌ ɔ
ɑ ɒ
äa ɶ
æ
ɛ œ
ɪ ʏ ʊ
ɘ ɵe ø
ə
ɜ ɞ
ɐ
Figura 1.4 - Clasificarea vocalelor după deschidere, loc de articulare şi rotunjire
2. Consoanele: La rândul lor, consoanele sunt împărţie în consoane sonante şi
nesonante.
a. Clasificarea consoanelor nesonante:
i. După modul de articulare:
1. Consoane oclusive (explozive, sau plozive): p, b, t, d, c, g, ch,
gh (produse prin închiderea completă a canalului fonator şi
apoi deschiderea sa bruscă)
2. Consoane fricative (constrictive): f, v, s, z, ş, j, h (sunt
consoane produse printr-o îngustare a canalului fonator)
3. Consoane semioclusive (africate): ţ, c(e/i), g(e/i) (sunt
consoane ce au un început oclusiv, dar un final fricativ).
ii. După locul de articulare (locul din cavitatea bucală unde se creează
obstacolul):
1. Consoane bilabiale: p, b
2. Consoane labio-dentale: f, v
3. Consoane dentale (alveorare): t, d, s, z, ţ
4. Consoane prepalatale (anteropalatale): ş, j, c(e/i), g(e/i)
5. Consoane palatale: ch, gh
Aplicaţii pentru sinteza vorbirii
11
6. Consoane velare (postpalatale): c, g
7. Consoane laringale (glotale): h
iii. După sonoritate (pronunţia unei consoane este însoţită sau nu de
vibraţia coardelor vocale):
1. Consoane sonore: b, d, g, gh, v, z, j, g(e/i)
2. Consoane nesonore (surde): p, t, c, ch, f, s, ş, h, c(e/i), ţ
b. Clasificarea consoanelor sonante:acestă clasă de consoane, reprezintă o
categorie distinctă care are caracteristici comune atât cu vocalele cât şi cu
consoanele. Astfel, la articularea lor predomină tonurile muzicale, iar
zgomotele specifice consoanelor este mai slab. Ca şi nesonantele, ele nu
primesc accent în silabă.
i. În funcţie de modul de articulare:
1. Sonante oclusive: m, n
2. Sonante lichide: l
3. Sonante vibrante: r
ii. În funcţie de locul de articulare
1. Sonante bilabiale: m
2. Sonante dentale: n, r
3. Sonante laterale: l
iii. În funcţie de timbru:
1. Sonante nazale: m, n
2. Sonante orale: l, r
Modul de
articulare Lo
cul
de
art
icu
lare
Bilabiale Labiodentale Dentale Prepalatale Palatale Velare Laringiale
Su
rde
So
no
re
Su
rde
So
no
re
Su
rde
So
no
re
Su
rde
So
no
re
Su
rde
So
no
re
Su
rde
So
no
re
Su
rde
So
no
re
Nes
on
an
te
Oclusive p b t d ch gh k g
Semioclusive ţ ce/ci ge/gi
Constrictive f v s z ş j h
Son
an
te Ocluzive nazale m n
Lichide Laterale l
Vibrante r Tabel 1.1 - Clasificarea consoanelor după locul şi modul de articulare
Aplicaţii pentru sinteza vorbirii
12
3. Algoritmi şi aplicaţii pentru sinteza a vorbirii
PSOLA (Pitch Synchornous Overlap Add) este un algoritm utilizat pentru
manipularea frecvenţei fundamentale a semnalului vocal. În cazul TD-PSOLA (time-domain
PSOLA), semnalul original se împarte în segmente având ca durata dublul perioadei
frecvenţei fundamentale şi se marchează centrul segmentelor. Pentru a modifica frecvenţa
fundamentală, semnalul este rearanjat pe axa timpului.
MBROLA (Multiband Resynthesis Overlap and Add), este un alt algoritm de sinteză
a vorbirii, care lucrează în domeniul timp şi care are avantajul de a netezi discontinuităţile
spectrale care apar în cazul TD-PSOLA. Există şi un proiect opensource bazat pe acest
algoritm, scopul său fiind de a creea o bază de date cât mai cuprinzătoare pentru majoritatea
limbilor vorbite. Mbrola nu este în sine o soluţie completă de TTS, fiind necesară prelucrarea
prealabilă a textului pentru a evidenţia informaţia fonemică şi prozodică. (The MBROLA
Project, http://tcts.fpms.ac.be/synthesis /mbrola.html, accesat la 18.09.2010)
Ivona este o aplicaţie dezvoltată de IVO Software ce oferă o sinteză de voce
performantă, comparabilă cu cea umană, ce permite integrarea în aplicaţii web şi sisteme
bazate pe agenţi voce (IVONA text-to-speech, http://www.ivona.com/awards.php, accesat la
data 18.09.2010). În cadrul competiţiei organizată de Blizzard în 2006, IVONA a fost
recunoscută ca fiind cea mai bună soluţie TTS din lume. În anul 2008, prima voce pentru
limba română a fost lansată în cadrul proiectului, lucru evitat de alte companii de vârf,
datorită complexităţii limbajului.
FreeTTS este un sistem de sinteză a vorbirii opensource, scris integral în JAVA, bazat
pe Flite.
PlainTalk este un nume dat pentru mai multe sisteme de sinteză şi recunoaştere folosite
de sistemele MAC, dezvoltate de Apple. Motorul iniţial de sinteză, MachinTalk, a fost
introdus de Apple în 1984.
eSpeak este un software open-source pentru sinteza vorbirii folosit pentru Linux,
Windows şi alte plaforme. eSpeak pune la dispoziţie două metode de sinteză, una fiind bazată
pe sintetizator Klatt.
Festival este un sistem de sinteză multingv dezvoltat de Alan W. Black la Centrul Pentru
Cercetarea Tehnologiei Vorbirii (CSTR) din cadrul universităţii din Edinburg (Black şi
Taylor, 1997). Este distribuit sub o licenţă gratuită similară cu BSD. Oferă un sistem complet
TTS, precum şi un sistem de dezvoltare integrat pentru cercetarea metodelor de sinteză.
Aplicaţii pentru sinteza vorbirii
13
Flite este un motor de sinteză a vorbirii creat în cadrul Universităţii Carnegie Mellon.
Este derivat din Festival şi din proiectul Festvox (CMU Speech Software,
http://www.speech.cs.cmu.edu/flite/, accesat la data 14.06.2011).
Praat (traducerea olandeză a verbului „a vorbi”) este o aplicaţie ce permite analiza şi
sinteza vocii.
Aplicaţii pentru sinteza vorbirii
14
4. Segmentarea automată a vorbirii şi alinierea la text
Segmentarea vorbirii este procesul de identificare a graniţelor dintre cuvinte, silabe,
foneme etc., fiind un proces important atât pentru recunoaşterea vorbirii cât şi pentru
strângerea unei baze de date pentru sinteza concatenativă.
Majoritatea metodelor de segmentare automată folosesc graniţele dintre foneme obţinute
de un sistem de recunoaştere a vorbirii (ASR) aplicând apoi metode de rafinare a rezultatelor
(Sethy şi Narayanan, 2002; Kim şi Conkie, 2002; Jarifi et al., 2008).
În absenţa unui ASR, o tehnică eficientă este blind speech segmentation (Sharma şi
Mammone, 1996; Aversano et al., 2001; Cherniz et al., 2007; Almpanidis şi Kotropoulos,
2008; Wang et al., 2003). În această metodă, segmentele iniţiale sunt obţinute prin aplicarea
unui algoritm de clustering bazat pe diferite trăsături ale semnalului acustic.
În cazul nostru am plecat de la un text rostit şi cunoaşterea apriori a acestuia ne-a permis
să venim cu o abordare proprie de blind speech segmentation, în care am folosit ca indicator
al numărului de clusteri ce trebuiau obţinuţi valoarea dată de numărul de silabe din text. În
final am aplicat un algoritm de tip DTW pentru a obţine o aliniere între clusteri şi unităţile de
text (silabe).
Impărţir a t xtului în unităţi
Filtrar a s mnalului şi
xtrag r a d trăsăturiClustering
DTWAlinierea între unităţil d
t xt şi cadr audi
Figura 4.1 - Schema bloc pentru procesul de aliniere
Procedura pe care am aplicat-o este ilustrată în figura 4.1 şi poate fi rezumată în felul
următor:
1. Împărţirea textului în unităţi folosite în aliniere;
2. Filtrarea semnalului;
3. Segmentarea semnalului;
4. Calculul unor parametri precum rata trecerilor prin zero, a energiei şi a variaţiei
spectrale;
Aplicaţii pentru sinteza vorbirii
15
5. Aplicarea unui algoritm de clustering pentru crearea unor clase de trasături şi
netezirea energiei şi a ratei trecerilor prin zero;
6. Alinierea clusterilor obţinuţi anterior la unităţile de text.
1. Împărţirea textului în unităţi ce vor fi utilizate la aliniere
O condiţie importantă pentru abordarea noastră este cunoaşterea apriori a textului cu care
urmează să se facă alinierea. Acest lucru determină numărul de clusteri dorit şi oferă
informaţii despre trasăturile care trebuie analizate de algoritmi (de exemplu pentru segmente
care conţin vocale se vor căuta clusteri cu energie mare şi rata mică de treceri prin zero).
Silaba este un segment fonetic, format din unul sau mai multe foneme, pronunţate printr-
un singur efort respirator. Din acest motiv am plecat de la un despărţitor în silabe, modificat
prin câteva reguli:
1. înlocuirea lui “x” cu “cs” – de exemplu în cazul cuvântului axă, alinierea se va
face la segmente de text “ac” şi “să”, lucru valabil şi pentru cazul în care “x” se
transformă în “gz” (examen);
2. înlocuirea secvenţelor “ch”, „gh”, „c”-i, „c”-e, „g”-i, „g”-e cu „~”, datorită
comportamentului pe care îl au aceste sunete în momentul articulării;
3. eliminarea cratimei şi evitarea despărţirii a două vocale alăturate, chiar dacă
regulile gramaticale implică acest lucru;
4. Pentru evitarea ambiguităţii, la finalul operaţiei, semnul “~” este înlocuit cu
secvenţa iniţială de litere de la care s-a plecat (exemplu “ci”, “che”).
Astfel pentru propoziţia “cine-a venit aseară”, secvenţa obţinută este: „ci”, „inea”, „ve”,
„nit”, „a”, „sea”, „ră”.
2. Filtrarea semnalului
Deoarece majoritatea energiei în timpul vorbirii se află în banda de 0-4Khz iar peste
10Khz nu există practic niciun fel de energie, în prima fază am aplicat un filtru trece jos cu
răspunsul în frecvenţă reprezentat în figura 4.2.
Aplicaţii pentru sinteza vorbirii
16
Figura 4.2 - Răspuns în frecvenţă
La calculul parametrilor pentru acest filtru, am folosit un generator Kaiser-Bessel, pus la
dipoziţie online de A.R.Collins (http://arc.id.au/FilterDesign.html).
Am ales rata de eşantionare corespunzătoare cu formatul înregistrărilor (44100Hz),
banda de trecere 0-8Khz (datorită considerentelor expuse mai devreme), atenuarea 98dB şi
ordinul filtrului 37 (valori implicite ale generatorului).
3. Segmentarea semnalului şi extragerea de parametri pe termen scurt
Datorită faptului că semnalul se află în regim cvasistaţionar pe intervale de 10-30 ms, am
ales dimensiunea segmentelor de 512 eşantioane, care au acoperit un interval de aproximativ
12ms.
De asemenea, pentru a diminua efectele de dispersie a componentelor spectrale în
benzile lor laterale, datorat trunchierii abrupte a semnalului la capete (Burileanu şi Dan,
2000), am folosit funcţia fereastră Hamming, care este una dintre cele mai utilizate în
literatura de specialitate (ecuaţia 4.1).
( ) { (
)
(4.1)
Pentru a evita pierderea unei cantităţi mari de informaţii datorate aplicării procedeului de
ferestruire, am ales o suprapunere de semnal de D/2 valori, la stânga şi la dreapta (D fiind
numărul de eşantioane ale segmentului de semnal analizat – 512).
Pentru procesul de clustering ce urmează a fi aplicat, am ales să folosim rata trecerilor
prin zero, energia şi un vector calculat pe baza spectrului. Aceşti parametri
reprezintăstatistici pe termen scurt ale semnalului vocal.
Aplicaţii pentru sinteza vorbirii
17
4. Calculul parametrilor
Calculul parametrilor pe termen scurt ale semnalului vocal este posibil datorită regimului
său cvasistaţionar în intervale de 10-30 ms.
În cazul semnalelor eşationate, o trecere prin zero face ca două eşantione consecutive să
aibă semn diferit. Rata trecerilor prin zero se calculează după ecuaţia 4.2.
∑ | { } { }| (4.2)
{ } {
Energia semnalului vocal ne dă informaţii importante legate de caracterul sonor sau
nesonor al semnalului vocal şi este utilă în detecţia pauzelor (liniştii) din vorbire. Pe termen
scurt, energia semnalului vocal se poate calcula folosind o funcţie fereastră aplicată asupra
unei secvenţe de eşantioane din semnal (ecuaţia 4.3).
∑ ( ( ) )
(4.3)
Spectrul semnalului se obţine prin aplicarea algoritmului Fast Fourier Transform (FFT)
pe fereastra de semnal analizat (1024 de eşantioane) şi prin calculul energiei pe baza formulei
√( ( )) ( ( )) , pentru fiecare element complex Ck din şirul
rezultat.
Aşa cum am precizat, pentru clustering am folosit valoarea distanţei euclidiene dintre doi
vectori, ce reprezintă distribuţia de energie a segementelor de sunet adicente. Pentru calculul
vectorilor, am împărţit intervalul 0-4Khz în opt segmente egale suprapuse la capete1. Peste
acestea am aplicat o secvenţă de ferestre Hamming şi am însumat valorile calculate (figura
4.4 şi ecuaţia 4.4)
∑ ( ) (4.4)
Figura 4.3 arată spectrograma sunetului pentru pronunţia propoziţiei “cine a făcut asta”
(partea de sus a imaginii) şi distribuţia de energie calculată mai devreme (partea de jos).
Fiecare fâşie verticală reprezintă rezultatul pentru o fereastră de semnal.
1S-au făcut teste cu 4, 8, 16 şi 32 de segmente.Rezultatele cele mai bune au fost obţinute
pentru valorile 4 şi 8. Valorile 16 şi 32 au avut un impact negativ asupra clusteringului.
Aplicaţii pentru sinteza vorbirii
18
Figure 4.3– Reprezentare spectrogramă şi vector de distributţie de energie, pentru propoziţia "cine-a făcut
asta"
Figura 4.4–Suprapunearea ferestrelor Hamming peste spectru
5. Clustering
Clusteringul este procesul de grupare a unor obiecte în grupuri numite clusteri în aşa fel
încât acestea să fie similare, găsind practic reprezentanţii unor grupuri omogene.
În cazul nostru am folosit clusteringul atât pentru netezirea statisticilor calculate la pasul
anterior cât şi pentru obţinerea unor candidaţi de segmentare a semnalului vocal. Astfel,
valorile utilizate în calcul distanţelor pentru metodele de aliniere sunt reprezentate de mediile
obţinute pentru rata trecerilor prin zero, a energiei şi a distribuţiei de energie pe fiecare
cluster în parte. Analizatorul de blocuri folosit în cea de-a doua metodă de aliniere înceacă să
depisteze graniţe între sunete doar în zona clusterilor adiacenţi, aceştia reprezentând pentru
alogoritm candidaţi de segmentare.
Există două tipuri principale de clustering care se pot aplica:
1. Agglomerative (bottom-up): Aceştia încep prin a trata fiecare element ca făcând
parte dintr-un cluster separat, care sunt uniţi pentru a forma clusteri mai mari (figura
4.5).
2. Divisive (top-down): Aceştia tratează tot setul ca un cluster mare şi la fiecare pas
divid clusterii existenţi în grupuri mai mici.
Aplicaţii pentru sinteza vorbirii
19
Orice metodă de clustering foloseşte o funcţiegrupare a candidaţilor care este bazată pe
similaritateadintre aceştia. În cazul nostru am ales să exprimăm similaritatea cu un criteriu de
grupare de tip distanţă.Câteva exemple tipice de funcţii distanţă sunt distanţa Euclidiană,
distanţa Manhattan, distanţa Hamming, etc.
A B C D E
AB DEC
AB CDE
AB
CD
E
ABCDE
Figura 4.5 - Agglomerative hierarchical clustering aplicat pe distanţa euclidiană dintre elemente
Algoritmul folosit pentru clustering (figura 4.6) a fost adaptat pentru a acţiona doar pe
segmente adiacente:
Pasul 1: Tuturor vectorilorle esteasignatpropriul lor cluster
Pasul 2: Se calculeazădistanţa între fiecare doi clusteri adiacenţi
Pasul 3: Se unesc clusterii cu distanţă minimă şi se calculează valorile medii pentru
aceştia
Pasul 4: Se verifică dacă s-a obţinut numărul dorit de clusteri şi în caz contrar se revine
la pasul 2.
Aplicaţii pentru sinteza vorbirii
20
Funcţia de distanţă a fost calculată ca sumă ponderată a distanţei euclidiene dintre
vectorii de distribuţie energetică, rata trecerilor prin zero, energia medie şi numărul de vârfuri
în spectrul de energie (aflate la o distanţă mai mare decât un prag dat). Ponderile au fost
stabilite empiric, pentru a maximiza rezultatele pe datele de antrenare. Valorile acestora sunt
de 0.0025 pentru distanţa euclidiană, 0.409 pentru rata trecerilor prin zero, 0.0025 pentru
energia medie şi 0.59 pentru numărul de vârfuri în spectru.
După determinarea clusterilor, îl identificăm pe cel cu energie maximă (Emax), urmând ca
acest parametru să fie utilizată în partea finală a procesului.
Cele două metode prezentate în continuare, urmează să aleagă modul în care se vor
folosii în aliniere clusterii obţinuţi.
Figura 4.6 - Pseudocod algoritm de clustering
Intrare: desired_clusters – numărul de segmente căutat
foreach vector in vectors do
.clusteri
.clusterLengh1
end
cluster_countcount(vectors)
while cluster_count>desired_clusters*3 do
d_mininfinity
pos_min-1
foreach , in vectors do
if .cluster<> .cluster then
ddistance( ) if d<d_min then
d_mind
pos_mini
end
end
end
cluster_countcluster_count-1
MergeClusters( ) end
Aplicaţii pentru sinteza vorbirii
21
i. Alinierea bazată pe Dynamic Time Warping
Dynamic Time Warping (DTW) este un algoritm folosit pentru găsirea unei
suprapuneri optime în timp dintre două secvenţe între elementele cărora se poate defini o
funcţie de similaritate.
DTW este unul dintre cei mai vechi algoritmi în recunoaşterea vorbirii, cea mai frecventă
utilizare a acestuia fiind pentru identificarea unui şablon cu care cuvântul rostit se potriveşte
(Giorginio, 2009). Monotonia în timp al rezultatelor alinierii secvenţelor determină DTW să
facă parte din clasa algoritmilor care aparţin programării dinamice.
Am ales utilizarea DTW în cazul de faţă pentru a găsi alinierea neliniară optimă în
timppentrusecvenţa de simboluri obţinute din procesarea textului şi secvenţa de segmentele
de voce înregistrate.
Principiul de funcţionare este simplu. Se creează o matrice având ca dimensiuni
lungimile celor două secvenţe care trebuiesc comparate. În fiecare celulă se pune o valoare
numerică dată de distanţa dintre elementele corespunzătoare ale celor două secvenţe. De
exemplu, dacă avem o secvenţă A de K elemente şi o secvenţă B de L elemente, dimensiunea
matricii M va fi de K linii şi L coloane, iar fiecare celulă Mij, cu şi are
valoarea d(Ai,Bj) şi reprezintă distanţa dintre cele două elemente. Alinierea optimă este dată
de găsirea drumului maxim sau, în cazul de faţă, a drumului minim în această matrice între
poziţiile (1,1) şi (K,L) cu condiţia ca fiecare pereche (iz,jz), (iz+1,jz+1) să respecte condiţia de
monotonie în timp: şi (figura 4.7).
Perechea (iz,jz) semnifică similaritatea dintre elementele şi
Figura 4.7 - Exemplu grid DTW
Aplicaţii pentru sinteza vorbirii
22
Pentru a putea descrie funcţia de distanţă textul a trebuit tranformat într-o secvenţă de
simboluri, grupând astfel plajele de valori pentru rata trecerilor prin zero şi energie:
Paşii urmaţi în procesarea textului sunt descrişi în continuare:
1. Fiecare pauză a fost marcată cu simbolul “~”;
2. La început şi la sfârşit au fost adăugate pauze;
3. Grupurile “ce”, “ci”, “ghe”, “ghi” “che”, “chi”, “ge”, “gi” au fost înlocuite cu
simbolul “D”;
4. Literele “a”, “e”, “i”, “o”, “u”, “ă”, “î”, “â” au fost înlocuite de simbolul “V”;
5. Literele “f”, “s”, “ş”, “j”, “h”, “ţ”, “r”,”v”,”z”, ”m”, ”n”,”l”,”r” au fost
înlocuite cu simbolul “F”;
6. Literele “p”, “b”, “t”, “d”, “c”, “g” au fost înlocuite cu simbolul “P”.
Funcţia de similaritate a fost aplicată între secvenţa de simboluri şi parametrii clusterilor
obţinuţi la pasul anterior de procesare. Aceasta a fost scrisă sub forma unei distanţe
Euclidiene (ecuaţia 4.5) între valorile aşteptate pentru parametri ZR (EZCRR ) şi ER (EER)
(tabelul 4.1) şi parametri clusterilor obţinuţi, unde ZR şi ER reprezintă valorile normalizate
pentru Z şi respectiv E.
√( ) ( ) (4.5)
Symbol ER ZCRR
D 0.464 0.652
V 0.466 0.112
F 0.118 0.660
~ 0.030 0.180
P 0.085 0.065
Tabel 4.1 - Calcul funcţie disntanţă
Alinirea obţinută prin DTW este apoi validata manual (figura 4.9) şi segmentele obţinute
sunt adăugate la inventarul de unităţi acustice.
Antrenarea pentru această metodă constă în recalcularea valorilor aşteptate pentru ZR şi
ER după validarea de mână a rezultatelor obţinute.
Aplicaţii pentru sinteza vorbirii
23
Figura 4.9 - Alinierea obţinută prin metoda DTW
În anumite situaţii, algoritmul de clustering poate să nu detecteze tranziţia între două
foneme sau costul minim de aliniere poate fi dat de alinierea unităţilor din text cu segmente
acustice de lungime 0. Aceste două situaţii pot fi rezolvate în anumite cazuri prin regruparea
unităţilor de text. Un exemplu este cazul „vine mama” (figura 4.10), în care uniăţile “vi” +
“ne” sunt regrupate pentru a forma cuvântul „vine” şi “ma” + ”ma” cuvântul “mama”.
Unităţile obţinute astfel, pot fi utilizate cu succes în strângerea bazei de date de segmente
acustice neuniforme.
Figura 4.10 – Alinierea pentru “vine mama”
Aplicaţii pentru sinteza vorbirii
24
5. Concluzii
Procesarea vorbirii depinde foarte mult de colectarea unui număr mare de unităţi
acustice. Acest lucru este un proces complicat în special atunci când este realizat de mână.
Studiile recente au arătat un interes crescut pentru metodele de segmentare automată a
vorbirii.
Lucrarea de faţă introduce o metodă nouă de blind speech segmentation, bazată pe
analiza caracteristicilor acustice şi a modului de articulare a diferitelor tipuri de sunete din
limba română.
Scopul principal al acestei metode este reducerea timpului şi a efortului necesar pentru
segmentarea manuală precum şi facilitarea obţinerii unor segmente acustice neuniforme
pentru realizarea unei baze de date folosită într-un motor sinteză a vorbirii bazat pe
concatenare.
Există o serie de limitări în sensul că sunt necesare înregistrări fără zgomot de fundal şi
cuvintele trebuie pronunţate cât mai clar, însă acest lucru este acoperit de faptul că aceste
unităţi vor fi utilizate pentru un sistem TTS, ceea ce impune o serie de standarde în ceea ce
priveşte calitatea lor.
Aplicaţii pentru sinteza vorbirii
25
6. Referinţe bibliografice
Almpanidis, G., & Kotropoulos, C. (2008). Phonemic segmentation using the generalized
Gamma distribution and small sample Bayesian information criterion. In: Speech
Communication, Vol. 50, pp. 38-55
Aversano, G., Esposito, A., Esposito, A., & Marinaro, M. (2001). A New Text-Independent
Method for Phoneme Segmentation. In: Proceedings of the IEEE international Workshop on
Circuits and Systems, Dayton, Ohio, USA, August, 2001
Black, A., şi Taylor, P. The Festival Speech Synthesis System: system documentation, raport
de activitate HCRC/TR-83, Human Communication Research Centre, University of
Edinburgh, Scotland, UK, 1997.
Burileanu, D., Dan, C., Principii şi tehnici de bază în prelucrarea digitală a semnalelor,
Editura Printech,2000, ISBN 973-652-127-3
Burileanu, D., Negrescu, C., Prosody Modeling for an Embedded TTS System
Implementation. In: Proceedings of the 14th
European Signal Processing Conference
EUSIPCO 2006, Florence, pp. 715–718, 2006
Burileanu, D., Contributions on Speech Synthesis from Text in Romanian Language, teză
doctorat, 1999
Cherniz, A.S., Torres, M.E., Rufiner, H.L., & Esposito A. (2007). Multiresolution Analysis
Applied to Text-Independent Phone Segmentation. In: Journal of Physics: Conference
Series, Vol. 90, pp. 1-7
Demuynck, K. and T. Laureys, A Comparison of Different Approaches to Automatic Speech
Segmentation. In: Proceedings of International Conference on Text, Speech and Dialogue,
2002, pp. 277-284.
Dong Wang, Lie Lu, Hong-Jiang Zhang, Speech Segmentation Without Speech Recognition,
2003
Dutoit,T., A Short Introduction to Text-to-Speech Synthesis, http://tcts.fpms.ac.be/synthesis/,
accesat la 12.07.2011
Fant, G., Acoustic Theory of Speech Production., Mouton De Gruyter, 1970, ISBN 90-279-
1600-4
Giorgino,T., Computing and Visualizing Dynamic Time Warping Alignments in R: The dtw
Package, 2009
Ionescu, E. (2001). Manual de lingvistică generală (Ediţia a III-a), Ed. Bic ALL, Bucureşti
Kim, Y.J., Conkie, A., Automatic segmentation combining an HMM-based approach and
spectral boundary correction. In: Proc. 7th Internat. Conf. on Spoken Language Processing
(ICSLP 2002); 2002. p. 145-148
Marcu, F., Marele dicționar de neologisme, Editura Saeculum, 2000
Aplicaţii pentru sinteza vorbirii
26
Ordean, M., Saupe, A., Ordean, M., Gorgan, D., Componentele unui sistem de sinteza text-
vorbire, publicat în A 6-a Conferinta Nationala de Interactiune Om-Calculator,
RoCHI2009, Cluj-Napoca, Romania, 2009
Roseti, Al., Lazăroiu, A., Introducere în fonetică, Editura Ştiinţifică şi Eciclopedică,
Bucureşti 1982
Safaa Jarifi, Dominique Pastor, Olivier Rosec, A fusion approach for automatic speech
segmentation of large, corpora with application to speech synthesis. In: Speech
Communication 2008; 50:67-80.
Sethy A, Narayanan S. Refined speech segmentation for concatenative speech synthesis, in
Proc. 7th International Conf. on Spoken Language Processing (ICSLP 2002); 2002. p. 149-
152
Sharma, M. and Mammone, R., ”Blind” speech segmentation: automatic segmentation of
speech without linguistic knowledge. In: Proc. ICSLP’96, vol. 2, pp. 1237-1240, 1996.
Teodorescu, H.N., Pistol, L., Feraru, M., Zbancioc, M., Trandabăţ, D., Sounds of the
Romanian Language Corpus, © 2010, http://www.etc.tuiasi.ro/sibm/romanian_spoken_
language/index.htm, accesat la 02.04.2011
Teodorescu, H.N., Pistol, L., Feraru, M., Zbancioc, M., Trandabăţ, D., Sounds of the
Romanian Language Corpus,© 2010, http://www.etc.tuiasi.ro/sibm/ romanian
_spoken_language/index.htm, accesed at 02.04.2011
Toderean, G., Buza,O., SISTEM INTERACTIV PE BAZA DE VOCE DESTINAT
PERSOANELOR NEVAZATOARE, Raport de Cercetare, Universitatea Tehnică din Cluj-
Napoca, 2008
Tufiş, D., Barbu, A.M., Pătraşcu, V., Rotariu, G., Popescu, C., Corpora and Corpus-Based
Morpho-Lexical Processing, Recent Advances in Romanian Language Technology, Editura
Academiei, 1997
Tufiş, D., Ion, R., Ceauşu, A., Ştefănescu, D., Servicii Web Lignvistice ale ICIA, Lucrările
atelierului Resurse lingvistice si instrumente pentru prelucrarea limbii române, Editura
Universităţii “Alexandru Ioan Cuza” Iaşi, 14-15 decembrie 2007
Wang, D., Lu, L., Zhang, H.J., Speech segmentation without speech recognition. In: Proc. of
IEEE International Conference on Acoustics, Speech and Signal Processing, 2003. p. 468–
471 Technical Report HCRC/TR-83, Human Communciation Research Centre, University
of Edinburgh, Scotland, UK, 1997
Walker, W., Lamere, P., Kwok, P., FreeTTS - A Performance Case Study, Sun Microsystems,
2002
Aplicaţii pentru sinteza vorbirii
27
Abrevieri
BSD = Berkeley Software Distribution
CSTR = Centrul Pentru Cercetarea Tehnologiei Vorbirii
DAVO = Dynamic Analog of the Vocal tract
DFT = Discrete Fourier Transform
DTW = Dynamic Time Warping
FFT = Fast Fourier Transform
HMM = Hidden Markov Model
IVR = Interractive Voice Response
LPC = Linear Predictive Coding
M.I.T. = Massachusetts Institute of Technology
NVDA = NonVisual Desktop Access
TTS = Text to Speech
Vocoderul = voice coder decoder
Voder = voice operating demonstrator
SRE = Speech Recognition engine
XML = eXtended Markup Language