modelování suprasegmentálních rysů mluvené češtiny

Transkript

modelování suprasegmentálních rysů mluvené češtiny
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ
FAKULTA ELEKTROTECHNICKÁ
MODELOVÁNÍ SUPRASEGMENTÁLNÍCH RYSŮ MLUVENÉ
ČEŠTINY POMOCÍ LINEÁRNÍ PREDIKCE
Dizertační práce
Vědní obor: Telekomunikační technika
Školitel:
Prof. Ing. Jan Uhlíř, CSc.
Vypracoval: Ing. Petr Horák
Praha, 2002
Rád bych na tomto místě poděkoval Ústavu radiotechniky a elektroniky AV ČR za to, že mi svým vstřícným
přístupem umožnil vytvořit tuto dizertační práci, a dále kolektivu oddělení Číslicového zpracování signálů
a kolektivu Fonetického ústavu FF UK, jmenovitě pak Ing. Robertu Víchovi, DrSc., Mgr. Betty SlavíkovéHesounové, Dr. Janě Mejvaldové, Dr. Tomáši Dubědovi a Mgr. Jiřímu Hanikovi za podporu při vzniku této
práce. Děkuji také své ženě Jitce a synům Kryštofovi a Prokopovi za to, že se na mne nezlobí, že se občas také
věnuji jiným koníčkům, než rodině.
2
Obsah
Obsah ...................................................................................................................................................................... 3
Seznam obrázků ...................................................................................................................................................... 5
Seznam tabulek ....................................................................................................................................................... 7
1 Úvod................................................................................................................................................................ 9
2 Shrnutí současného stavu problematiky ........................................................................................................ 13
2.1
Co je to řeč? .......................................................................................................................................... 14
2.1.1
Akustická rovina řeči .................................................................................................................... 14
2.1.2
Fonetická rovina řeči..................................................................................................................... 15
2.2
Syntéza řeči z psaného textu ................................................................................................................. 16
2.2.1
Fonetická transkripce .................................................................................................................... 17
2.2.2
Prozodie řeči.................................................................................................................................. 18
2.2.3
Modelování řečového signálu ....................................................................................................... 18
2.3
Způsoby realizace fonetické transkripce ............................................................................................... 19
2.4
Vlastnosti prozodie řeči......................................................................................................................... 19
2.4.1
Suprasegmentální vrstvy ............................................................................................................... 20
2.4.2
Suprasegmentální charakteristiky v časové oblasti ....................................................................... 21
2.4.3
Suprasegmentální charakteristiky v melodické oblasti.................................................................. 22
2.4.4
Suprasegmentální charakteristiky v intenzitní oblasti ................................................................... 24
2.4.5
Superpozice vlivů jednotlivých vrstev tvoření řeči ....................................................................... 24
2.5
Metody popisu řečových jednotek ........................................................................................................ 24
2.5.1
Popis řečových jednotek v časové oblasti ..................................................................................... 25
2.5.2
Popis řečových jednotek ve kmitočtové oblasti ............................................................................ 25
2.6
Metody popisu suprasegmentálních rysů řeči ....................................................................................... 25
2.6.1
Úrovně reprezentace prozodických jevů ....................................................................................... 25
2.6.2
Intonační modely........................................................................................................................... 26
2.6.3
Pierrehumbertové intonační model ............................................................................................... 26
2.6.4
Systém pro notaci prozodie ToBI.................................................................................................. 26
2.6.5
Intonační model INTSINT ............................................................................................................ 26
2.6.6
Intonační model IPO ..................................................................................................................... 27
2.6.7
Fujisakiho intonační model ........................................................................................................... 27
2.7
Parametrická analýza signálů ................................................................................................................ 29
2.7.1
Parametrické modely signálů ........................................................................................................ 30
2.7.2
Lineární predikce .......................................................................................................................... 30
2.7.3
Metody řešení normálních rovnic predikce................................................................................... 31
2.7.4
Modelování řečového signálu pomocí lineární predikce............................................................... 32
3 Cíle práce ...................................................................................................................................................... 33
4 Lineární predikce průběhu základního tónu řeči ........................................................................................... 37
4.1
Návrh LPC analyzátoru základního tónu řeči ....................................................................................... 37
4.2
Použité metody detekce průběhu základního tónu řeči ......................................................................... 41
4.2.1
Detekce základního tónu řeči autokorelační metodou................................................................... 41
4.2.2
Detekce pitchpulsů v řečovém signálu s označením znělosti ........................................................ 41
4.3
Návrh LPC syntezátoru základního tónu řeči........................................................................................ 42
4.4
Ověření funkčnosti LPC kodéru/dekodéru průběhu základního tónu ................................................... 43
5 Vlastnosti zbytkového signálu lineární predikce........................................................................................... 45
5.1
Aproximace zbytkového signálu lineární predikce ............................................................................... 45
5.1.1
Aproximace zbytkového signálu obdélníkovým signálem............................................................ 47
5.1.2
Aproximace zbytkového signálu impulsovým signálem............................................................... 53
5.1.3
Možnosti aproximace zbytkového signálu .................................................................................... 55
5.2
Závislost zbytkového signálu lineárního prediktoru na stavbě věty...................................................... 55
5.3
Využití zbytkového signálu lineární predikce pro tvorbu prozodických pravidel................................. 55
6 Experimentální část....................................................................................................................................... 59
6.1
Databáze řečového materiálu pro modelování prozodie ....................................................................... 59
6.2
Automatická segmentace řeči................................................................................................................ 59
6.2.1
Použitý syntezátor řeči .................................................................................................................. 59
6.2.2
Vlastní segmentace........................................................................................................................ 59
6.2.3
Testování automatické segmentace ............................................................................................... 63
6.3
Porovnání vlastností LPC intonačního modelu s Fujisakiho modelem ................................................. 67
3
Implementace LPC a Fujisakiho intonačního modelu do systému SpeechStudio................................. 68
6.4
6.5
Implementace rozšířeného klienta pro systém Epos.............................................................................. 70
6.6
Implementace ladícího modulu pro systém Epos.................................................................................. 71
6.7
Syntéza řeči s použitím generování základního tónu pomocí lineární predikce.................................... 73
6.7.1
Návrh pravidel pro buzení lineárně predikčního intonačního modelu........................................... 73
6.7.2
Realizace lineárně predikčního intonačního modelu v syntezátoru............................................... 74
7 Celkový přínos práce..................................................................................................................................... 77
8 Přílohy........................................................................................................................................................... 79
8.1
Seznam příloh ....................................................................................................................................... 79
8.2
Příloha A – Seznam namluvených vět .................................................................................................. 80
8.3
Příloha B – Tabulka fonetického přepisu češtiny.................................................................................. 83
8.4
Příloha C – Přehled transkripčních a prozodických pravidel systému Epos ......................................... 85
8.4.1
Pravidla využívající slovníky ........................................................................................................ 85
8.4.2
Obsahem řízená pravidla ............................................................................................................... 85
8.4.3
Strukturovaná pravidla .................................................................................................................. 86
8.4.4
Pravidla modelující prozodii ......................................................................................................... 86
8.4.5
Skládání pravidel........................................................................................................................... 86
8.4.6
Podmíněná pravidla....................................................................................................................... 87
8.4.7
Speciální pravidla.......................................................................................................................... 87
Příloha D – Přehled vytvořených programů, procedur a funkcí........................................................................ 88
8.5
Příloha E – Výpisy některých podprogramů a funkcí ........................................................................... 89
8.6
Příloha F – Výpis kódu TD-PSOLA syntezátoru s modelováním prozodie pomocí lineární predikce . 94
8.7
Příloha G – Fonetická transkripce češtiny pro systém Epos ................................................................. 97
8.8
Příloha H – Modelování prozodie češtiny pro systém Epos podle pravidel Prof. Palkové ................. 100
8.9
Příloha I – Modelování prozodie češtiny pro systém Epos pomocí lineárně predikčního modelu...... 105
8.10 Příloha J – Popis přiloženého disku CD-ROM.................................................................................... 110
9 Přehled literatury......................................................................................................................................... 111
10
Rejstřík.................................................................................................................................................... 115
4
Seznam obrázků
Kapitola 2. Shrnutí současného stavu problematiky
Obr. 2.1
Obr. 2.2
Obr. 2.3
Obr. 2.4
Obr. 2.5
Obr. 2.6
Obr. 2.7
Obr. 2.8
Obr. 2.9
Obr. 2.10
Obr. 2.11
Obr. 2.12
Obr. 2.13
Obr. 2.14
Schéma hlasového ústrojí.
Časový průběh a spektrogram řečového signálu (věta „Vědci pracují s virgulí“).
Blokové schéma TTS systému.
Lingvistická část syntezátoru řeči.
Lineární model produkce řeči.
Modelování prozodie podle pravidel.
Modelování základního tónu řeči neuronovou sítí.
Ukázka mikrointonace – spojení hlásek „éza“ ze slova „syntéza“.
Fujisakiho model produkce základního tónu řeči.
Impulsní odezva úsekového systému Fujisakiho prozodického modelu pro vstupní pulsy
-1
o velikosti Ap = 0.1, 0.25, 0.4, 0.6, 0.8 a 1.0 při α = 2 s .
Odezva přízvukového systému Fujisakiho prozodického modelu na vstupní jednotkové pulsy
-1
trvání T = 50, 100, 150, 200 a 250 ms při β = 20 s .
Odezva přízvukového systému Fujisakiho prozodického modelu na vstupní pulsy o délce 250
-1
ms a amplitudě Aa = 0.2, 0.4, 0.6, 0.8 a 1.0 při β = 20 s .
Inverzní (chybový) lineárně predikční filtr.
Filtr pro syntézu pomocí lineární predikce.
14
15
16
16
17
17
18
20
26
27
28
29
31
31
Kapitola 4. Lineární predikce průběhu základního tónu řeči
Obr. 4.1
Obr. 4.2
Obr. 4.3
Obr. 4.4
Obr. 4.5
Obr. 4.6
Obr. 4.7
Obr. 4.8
Obr. 4.9
Obr. 4.10
Obr. 4.11
Charakteristiky filtru pro decimaci průběhu základního tónu řeči.
Ukázka interpolace průběhu základního tónu řeči.
Ukázka filtrace interpolovaného průběhu základního tónu řeči.
a) Ukázka decimace průběhu základního tónu řeči,
b) Vypočtený zbytkový signál včetně vypočtených koeficientů filtru.
a) Blokové schéma LPC analyzátoru.
b) Blokové schéma vlastního bloku LPC analýzy z obr. 4.5a.
Blokové schéma inverzního filtru.
Struktura rekonstrukčního filtru syntezátoru základního tónu řeči.
Blokové schéma LPC syntezátoru základního tónu řeči.
a) Signál průběhu základního tónu řeči po LPC resyntéze a interpolaci,
b) Budící signál rekonstrukčního filtru včetně 4 LPC koeficientů.
Ukázka průběhu základního tónu řeči po resyntéze metodou lineární predikce.
Blokové schéma řečového LPC vokodéru s LPC analýzou / syntézou průběhu základního
tónu.
38
39
39
40
40
41
42
42
43
43
44
Kapitola 5. Vlastnosti zbytkového signálu lineární predikce
Obr. 5.1
Obr. 5.2
Obr. 5.3
Obr. 5.4
Obr. 5.5
Obr. 5.6
Obr. 5.7
Obr. 5.8
Obr. 5.9
Obr. 5.10
Obr. 5.11
Statistické vyhodnocení LP koeficientů 144 vět ze souboru „machač1“ a „machač2“.
Odezva rekonstrukčního filtru na jednotkový skok a jednotkový impuls (LP koeficienty ze
souboru vět „machač1“ a „machač2“).
Statistická analýza lineárně predikčních koeficientů pro jednotlivé mluvčí.
Aproximace zbytkového signálu lineárního prediktoru pro větu o1d3a, w = 1, 2, 3; ε = 4.
Aproximace zbytkového signálu lineárního prediktoru pro větu o1d3a, w = 4, 5, 6; ε = 4.
Aproximace zbytkového signálu lineárního prediktoru pro větu d3k3a, w = 1, 2, 3; ε = 4.
Aproximace zbytkového signálu lineárního prediktoru pro větu d3k3a, w = 4, 5, 6; ε = 4.
Aproximace zbytkového signálu lineárního prediktoru pro větu d3k3a, w = 2; ε = 1, 3, 5.
Aproximace zbytkového signálu lineárního prediktoru pro větu d3k3a, w = 2; ε = 2, 4, 8.
Histogramy středních kvadratických chyb pro jednotlivé soubory vět (w = 2; ε = 4).
Aproximace zbytkového signálu lineárního prediktoru pro větu o1d3a, ε = 2.
5
45
46
46
49
49
50
50
51
51
53
54
Kapitola 6. Experimentální část
Obr. 6.1
Obr. 6.2
Obr. 6.3
Obr. 6.4
Obr. 6.5
Obr. 6.6
Obr. 6.7
Obr. 6.8
Obr. 6.9
Obr. 6.10
Obr. 6.11
Obr. 6.12
Obr. 6.13
TTS systém upravený pro účely automatické segmentace.
Blokové schéma automatického segmentátoru řeči.
Váhovací koeficienty w pro symetrickou formu bortící funkce.
Ukázka DTW algoritmu na matici akumulovaných vzdáleností.
Průměrné délky hlásek v jednotlivých kategoriích pro mužský a ženský hlas při automatické
a manuální segmentaci (viz tab. 6.6).
Ukázka automatické segmentace. Nahoře je syntetická řeč s vyznačenými hranicemi hlásek,
dole pak přirozená promluva s automaticky vyznačenými hranicemi hlásek.
Blokové schéma nástroje na transplantaci průběhu základního tónu z jedné promluvy na
druhou.
Grafické uživatelské rozhraní systému SpeechStudio.
Implementace Fujisakiho intonačního modelu v systému SpeechStudio.
Implementace lineárně predikčního intonačního modelu v systému SpeechStudio.
Grafický klient TTS systému Epos.
Nástroj pro výpis a modifikaci vnitřní datové struktury systému Epos.
TTS systém s použitím generování základního tónu pomocí lineární predikce.
6
60
61
62
63
66
66
67
68
69
70
71
72
73
Seznam tabulek
Kapitola 2. Shrnutí současného stavu problematiky
Tab. 2.1 Závislost trvání pauz za větami na interpunkčních znacích dle [PTÁ93]
Kapitola 4. Lineární predikce průběhu základního tónu řeči
Tab 4.1 Výpočet decimačního filtru v prostředí Matlab
Kapitola 5. Vlastnosti zbytkového signálu lineární predikce
Tab. 5.1 Statistické vyhodnocení LP koeficientů 144 vět ze souboru „Machač1“ a „Machač2“
Tab. 5.2 Analýza střední kvadratické chyby pro věty o1d3a (a) a d3k3a (b) od mluvčího Machač
Tab. 5.3 Statistika středních kvadratických chyb pro 72 vět souboru Machač1
Tab. 5.4 Statistika středních kvadratických chyb pro 72 vět souboru Machač2
Tab. 5.5 Statistika středních kvadratických chyb pro 72 vět souboru Záruba
Tab. 5.6 Statistika středních kvadratických chyb pro 72 vět souboru Jana
Tab. 5.7 Statistika středních kvadratických chyb pro různé prahové úrovně aproximace
Tab. 5.8 Statistika středních kvadratických chyb pro slabiky a přízvukové takty
Kapitola 6. Experimentální část
Tab. 6.1 Rozdělení českých hlásek pro účely testování automatické segmentace
Tab. 6.2 Procentuální výskyt chyb segmentace začátků hlásek pro mužský hlas
Tab. 6.3 Procentuální výskyt chyb segmentace trvání hlásek pro mužský hlas
Tab. 6.4 Počet výskytů hlásek v jednotlivých kategoriích
Tab. 6.5 Procentuální výskyt chyb segmentace začátků hlásek pro ženský hlas
Tab. 6.6 Procentuální výskyt chyb segmentace trvání hlásek pro ženský hlas
Tab. 6.7 Průměrné délky hlásek v jednotlivých kategoriích pro mužský a ženský hlas při automatické a manuální
segmentaci
Tab. 6.8 Přednastavené druhy značek v systému SpeechStudio
Tab. 6.9 Uspořádání úrovní TSR pro češtinu
Tab. 6.10 Deklarace proměnných pro lineárně predikční intonačnmí model v souboru tdpsyn.cc
Kapitola 8. Přílohy
Tab. A.1 Kategorie vět prozodického korpusu
Tab. A.2 Věty prozodického korpusu
Tab. B.1 Fonetický přepis českých hlásek
7
Přehled použitých symbolů
Kapitola 2. Shrnutí současného stavu problematiky
B
T
t
F0(t)
Fb
Api
Aaj
Gp
Ga
T0i
T1j
T2j
α
β
γ
n
x(n)
x̃(n)
e(n)
am
M
N
. . . prodloužení hlásky [dC]
. . . doba trvání hlásky [ms]
. . . čas
. . . průběh základního tónu v závislosti na čase
. . . základní kmitočet Fujisakiho modelu
. . . amplituda i-tého úsekového impulsu Fujisakiho modelu
. . . amplituda j-tého přízvukového pulsu Fujisakiho modelu
. . . úseková složka Fujisakiho modelu
. . . přízvuková složka Fujisakiho modelu
. . . čas i-tého úsekového impulsu Fujisakiho modelu
. . . čas počátku j-tého přízvukového pulsu Fujisakiho modelu
. . . čas konce j-tého přízvukového pulsu Fujisakiho modelu
. . . koeficient časové konstanty úsekového systému Fujisakiho modelu
. . . koeficient časové konstanty přízvukového systému Fujisakiho modelu
. . . mezní hodnota přízvukového systému Fujisakiho modelu
. . . pořadové číslo vzorku signálu
. . . n-tý vzorek signálu
. . . predikce signálu x(n)
. . . zbytkový signál lineární predikce
. . . m-tý koeficient predikčního filtru
. . . řád parametrického modelu (řád lineární predikce)
. . . počet vzorků signálu
Kapitola 4. Lineární predikce průběhu základního tónu řeči
Wp
Ws
Rp
Rs
Fs
ri
rci
ai
. . . hraniční kmitočet propustného pásma filtru
. . . hraniční kmitočet nepropustného pásma filtru
. . . útlum filtru v propustném pásmu
. . . útlum filtru v nepropustném pásmu
. . . vzorkovací kmitočet
. . . i-tý autokorelační koeficient
. . . i-tý reflexní koeficient
. . . i-tý koeficient filtru
Kapitola 5. Vlastnosti zbytkového signálu lineární predikce
ej
yi
w
k
ε
F0i
F̃0i
n
V
MSE
. . . j-tá hodnota zbytkového signálu lineárního prediktoru
. . . i-tá hodnota aproximovaného zbytkového signálu lineárního prediktoru
. . . šířka aproximačního okna
. . . počáteční index aproximačního okna pro i-tou hodnotu zbytkového signálu
. . . prahová úroveň aproximace
. . . hodnota základního tónu i-tého rámce analyzované promluvy na výstupu pitchdetektoru
. . . hodnota základního tónu i-tého rámce po resyntéze pomocí lineární predikce
. . . počet hodnot průběhu základního tónu řeči (počet rámců promluvy)
. . . počet nenulových hodnot základního tónu řeči v promluvě (počet znělých rámců)
. . . střední kvadratická chyba průběhu základního tónu po resyntéze pomocí lineární predikce
Kapitola 6. Experimentální část
c0
cn
α
cj(i)
μ
w
f
D
. . . nultý kepstrální koeficient
. . . n-tý kepstrální koeficient
. . . koeficient zisku lineárního prediktoru
. . . j-tý kepstrální koeficient i-tého rámce
. . . koeficient překrytí rámců
. . . váhovací funkce
. . . obecná funkce
. . . distanční matice
8
1 Úvod
Lidská řeč je základním komunikačním prostředkem mezi lidmi a v dnešní době, kdy se mnoho věcí
nedávno ještě neskutečných stává realitou díky stále většímu výpočetnímu výkonu současných počítačů, se
syntetická řeč stává běžnou součástí každodenního života. Pokusy o umělou řeč jsou zaznamenány již ve druhé
polovině 18. století, kdy Kratzenstein reprodukoval zvuk samohlásek spojením jazýčkové píšťaly s trubicemi
rozmanitých tvarů a velikostí (1780) a von Kempelen sestavil mechanický syntezátor řeči (1791). První
elektronické syntezátory, které generují rovněž pouze samohlásky, se objevují až v první polovině dvacátého
století. Výraznější výsledky v této oblasti jsou datovány až v období po II. světové válce a zejména po r. 1960,
kdy byla uveřejněna Fantova práce o modelování hlasového traktu [FAN60]. Bouřlivý rozvoj v oblasti syntézy
řeči nastal však až s rozvojem osobních počítačů v 80. a zejména pak v 90. letech.
V současné době, kdy syntetickou řeč můžeme slyšet každý den v nejrůznějších telekomunikačních či
informačních systémech, se kladou stále větší požadavky na její kvalitu a přirozenost. Přestože se syntetická řeč
již prakticky používá, její kvalita stále není dokonalá. Jsme schopni produkovat syntetickou řeč s velmi dobrou
srozumitelností, ale s malou přirozeností. Rozdíl mezi syntetickou a přirozenou řečí je stále propastný, a to jak
z hlediska modelování vlastního řečového signálu, tak z hlediska modelování prozodie řeči.
Na mém pracovišti v Ústavu radiotechniky a elektroniky AV ČR se syntetickou řečí zabýváme od počátku
devadesátých let. První v praxi používaný řečový syntezátor, založený na principu lineárně prediktivního
kódování, pochází z roku 1992 [VÍC94a,b][VÍC95a,b][VÍC96a,b]. Syntezátory vyvinuté na našem pracovišti
používají modelování prozodických rysů podle pravidel definovaných ve Fonetickém ústavu Filozofické fakulty
Karlovy univerzity. V letech 1996 až 1998 probíhala spolupráce mezi naším pracovištěm a TU Drážďany na
společné česko-německé syntéze řeči [HEL96]. Hledáním lepšího způsobu modelování řečového signálu se na
našem pracovišti zabývá Dr. Přibil ve svých pracích o kepstrálním modelování řeči [PŘI95][PŘI97]. Od roku
1996 se provádí výzkum v oblasti modelování prozodie syntetické řeči pomocí umělých neuronových sítí (UNS),
který však zatím nepřinesl praktické výsledky [VÍC96c][TUČ96][TUČ97a,b,c,d,e][TUČ98][KRK98].
Prozodii řeči jsem se začal věnovat v r. 1995, kdy jsem vytvořil nástroj pro modelování prozodie ModProz,
který se používá převážně ve Fonetickém ústavu Filozofické fakulty pro tvorbu nových prozodických pravidel.
Tento nástroj byl založen na syntéze řeči z psaného textu s možností měnit prozodické parametry pro jednotlivé
hlásky nebo řečové jednotky (difony) [HOR96a,b,c,d]. Z hlediska přirozenosti řeči, zejména při poslechovém
testování nových prozodických pravidel, vyvstala potřeba modelování prozodie na přirozeném řečovém signálu.
Z tohoto důvodu jsem v r. 1996 začal pracovat na programovém systému SpeechStudio umožňujícím manuální
segmentaci a popisování úseků signálu a resyntézu řečového signálu s pozměněnými prozodickými hodnotami
[HOR97a,b,d]. Systém SpeechStudio byl využíván při experimentech popisovaných v této práci a byl pro její
potřeby průběžně zdokonalován a rozšiřován [HOR98b,c,e,f][HOR99a,b,c,f][HOR00c][HOR01c].
Při definování nových prozodických pravidel vznikla také potřeba jejich pružného testování. V dosavadních
syntezátorech bylo nutno prozodická pravidla psát přímo do zdrojového kódu syntezátoru, což byl v našem
případě assembler 8086. Z toho vyplývá, že prozodická pravidla mohl modifikovat v podstatě pouze autor
zdrojového kódu syntezátoru (doc. Ptáček). Na základě této situace byl v r. 1996 prof. Dohalskou motivován
vývoj otevřeného systému pro převod psaného textu na řeč, jehož jsem se ujal společně s mgr. Hanikou
z Karlovy univerzity. Ve spolupráci s mgr. Hanikou jsme vytvořili systém, ve kterém se jak transkripční, tak
prozodická pravidla mohou zapisovat pomocí speciálního makrojazyka do konfiguračních souborů bez nutnosti
znalosti zdrojového kódu a kompilace. Tento systém později dostal jméno Epos a byl rovněž rozšiřován pro
potřeby této práce, zejména pak o možnost automatické segmentace řečového signálu [HOR98d][HAN98a,b].
V této práci se zabývám vedle stručného úvodu do problematiky prozodie češtiny především možnostmi
parametrického popisu prozodie řeči, zejména pak průběhu základního tónu řeči, a jeho využitím pro
automatickou syntézu řeči z psaného textu. Cílem práce nebyla tvorba celého nového systému pro modelování
prozodie pomocí prozodických modelů, neboť tak rozsáhlý cíl je možné splnit pouze v rámci širšího kolektivu
spolupracovníků v časovém horizontu několika let. Tato práce by měla ukázat výhody prozodických modelů pro
modelování prozodie a možné směry dalšího výzkumu.
9
10
Část I
Teoretická část
11
12
2 Shrnutí současného stavu problematiky
První prakticky použitelný systém pro převod psaného textu na mluvenou řeč (Text-to-Speech – TTS
System), pocházející z našeho ústavu, byl vyvinut ve spolupráci s Fonetickým ústavem Filozofické fakulty
Karlovy univerzity (FF UK) v letech 1990 až 1993. Tento TTS systém byl založen na časovém spojování
modelů jednotek řeči popsaných pomocí lineárně prediktivního kódování (LPC – Linear Predictive Coding)
[ITA69][VÍC95a]. Inventář řečových jednotek se skládal celkem ze 441 difonu a těl samohlásek vyskytujících se
v češtině a ve slovenštině. Syntéza řeči pracovala se vzorkovacím kmitočtem 8 kHz při použitém osmém řádu
lineární predikce. Prozodie byla v tomto syntezátoru generována pomocí pravidel sestavených fonetiky z FF UK.
Tato pravidla byla zapsána přímo ve zdrojovém kódu TTS systému, a nebylo je tedy možné během používání
měnit. Tento původní TTS systém vycházel z předchozí dlouholeté práce doc. Ptáčka z FF UK v oboru syntézy
řeči a zkušeností kolektivu Dr. Vícha z ÚRE AV ČR s lineárně prediktivním kódováním řeči. Popisovaný TTS
systém se dodnes prakticky používá především jako pomůcka pro nevidomé a slabozraké, dále pak
v telekomunikačních a informačních systémech.
Vývoj našeho TTS systému probíhal od r. 1990 v několika směrech současně na pracovištích ÚRE AV ČR
a Fonetického ústavu FF UK. Ve Fonetickém ústavu se pracovalo především na návrhu nového inventáře
řečových prvků foneticky lépe popisujícího mluvenou češtinu a na návrhu lepších pravidel pro modelování
prozodie [HOR97c]. Odchodem doc. Ptáčka z Fonetického ústavu práce na nových inventářích ve Fonetickém
ústavu ustaly, přičemž žádný z do této doby vytvořených inventářů nebyl lepší, než původní, dosud používaný,
inventář, jehož autorkou je E. Víchová z ÚRE a jehož poslední verze je z r. 1993. Díky příchodu nové
pracovnice do ÚRE v r. 1999 pracujeme nyní na novém inventáři přímo v ÚRE. Tento nový inventář, založený
na použití trifonů, obsahuje 1856 řečových jednotek [HOR01b]. V současné době jsou před dokončením
trifonové inventáře pro mužský i ženský hlas. Od března 1999 je v činnosti plně automatizovaný informační
systém INFOCITY vyvinutý na TU v Liberci Prof. Nouzou, ve kterém je použita syntéza řeči vyvinutá v ÚRE
(možno vyzkoušet na telefonním čísle 048/5353100).
Vývoj v oblasti generování prozodie probíhal v letech 1993 až 1998 ve Fonetickém ústavu pod vedením doc.
Ptáčka. Prozodická pravidla, vycházející z předchozích výzkumů, definovaná v r. 1998 prof. Palkovou z FÚ,
byla zapracována také do systému Epos. Od r. 1996 do r. 2000 jsme se ve spolupráci s doc. Tučkovou z ČVUT
FEL snažili najít lepší způsob generování prozodie syntetické řeči s využitím umělých neuronových sítí (UNS)
[TUČ97a,b,c,d,e][TUČ98]. Tato spolupráce bohužel nepřinesla žádné prakticky použitelné výsledky. To však
neznamená, že by modelování prozodie pomocí UNS nebylo perspektivní, je však potřeba hledat nové přístupy
k řešené problematice.
V současné době pracuje na syntéze češtiny z psaného textu několik na sobě nezávislých pracovišť.
V akademické sféře je to především kolektiv z Fakulty informatiky z Masarykovy univerzity v Brně pod
vedením doc. Kopečka vyvíjející syntezátor Demosthenes založený na použití poloslabik a syntézy v časové
oblasti. Na Katedře kybernetiky Západočeské univerzity v Plzni pracuje kolektiv pod vedením prof. Psutky na
syntéze řeči založené na automatické segmentaci jednotek pomocí skrytých Markovových modelů (Hidden
Markov Models – HMM). Jako jednotka je použit foném závislý na svém pravém i levém okolí; složitostí se
tedy jedná v podstatě o trifonovou syntézu, kde počet řečových jednotek je cca 5000. Na Drážďanské univerzitě
je vyvíjena syntéza češtiny ve spolupráci s FÚ Filozofické fakulty. Z komerční sféry lze zmínit např. firmu
FROG Systems a její TTS systém CSVoice.
Jak již bylo v úvodu řečeno, byla v prvních TTS systémech pravidla pro fonetickou transkripci a pro
modelování prozodie zapsána přímo v programovém kódu TTS systému, a proto bylo obtížné tato pravidla
vyvíjet a měnit. Z tohoto důvodu se v roce 1996 započalo ve spolupráci s FÚ FF UK s vývojem nové koncepce
TTS systému, ve kterém by byla všechna transkripční i prozodická pravidla konfigurovatelná bez nutnosti
rekompilace kódu. Tento systém byl posléze nazván Epos a dnes je i prakticky používán a je možné jej bezplatně
získat na internetu na adrese http://epos.ure.cas.cz/ včetně zdrojových kódů [HOR98a,d][HAN01][EPOS]. Na
této internetové stránce je možné tímto systémem ozvučit libovolný text. Výhodou systému Epos je plná
kontrola uživatele nad procesem fonetické transkripce a modelování prozodie. Z tohoto důvodu se na Epos budu
odvolávat při popisu problematiky fonetické transkripce a modelování prozodie a také při vlastních
experimentech využívajících TTS systém Epos. Systém Epos používá architekturu klient/server s komunikací
prostřednictvím speciálního autory navrženého protokolu pracujícího na TCP vrstvě [HAN99]. Díky tomu je
Epos nezávislý na hardwarové platformě i na použitém operačním systému. Tím, že byly ze zdrojových kódů
všechny jazykové závislosti přesunuty do konfiguračních souborů, stal se systém Epos nezávislý na jazyku.
Přidání dalšího jazyka je pak v podstatě otázkou vytvoření konfiguračních souborů a hlasových inventářů pro
daný jazyk [HAN00].
13
2.1
Co je to řeč?
Jazyk nám umožňuje předávat myšlenky prostřednictvím souboru znaků ať už grafických (latinka, řecká
abeceda, azbuka, čínské ideogramy apod.), akustických (např. pomocí řeči), anebo jiných. Řeč je jedním
z nejstarších a nejpřirozenějších prostředků komunikace mezi lidmi a je také jako prostředek komunikace
nejčastěji užívána. Není divu, že se lidé snaží vytvářet zařízení umožňující automatické vytváření, příp.
i rozpoznávání řeči. Informaci, kterou lidská řeč přenáší, můžeme analyzovat mnoha způsoby. Vědci zabývající
se řečí obvykle rozlišují několik vzájemně překrývajících se úrovní popisu řeči, a to: akustická, fonetická,
morfologická, syntaktická, sémantická a pragmatická. Pro vlastní syntézu řeči jsou nejdůležitější úrovně
akustická a fonetická.
2.1.1
Akustická rovina řeči
Řečový akustický signál je speciálním případem akustického signálu nesoucím řečovou informaci. Podstatou
akustického signálu je vlnění elastického prostředí v oboru slyšitelných frekvencí vznikající kontrolovanými
pohyby struktur hlasového ústrojí patrných na obr. 2.1. Hlasové ústrojí lze z akustického hlediska považovat za
soustavu zvukových zdrojů a rozvětveného zvukovodu. Jedna z větví tohoto zvukovodu (větev nazální) má
prakticky stálý tvar (průřezovou funkci) a mění se pouze v oblasti svého vstupu (lze ji otevřít nebo uzavřít,
eventuálně nastavit mezi těmito dvěma stavy). Druhá větev (orální) může svůj tvar v určitých mezích měnit (má
časově proměnnou průřezovou funkci). Obě větve vyúsťují do vnějšího prostoru v těsné blízkosti a jejich
výstupní signály se skládají do signálu jediného. Původní spektra zvukových zdrojů se modifikují filtračními
účinky zvukovodů (vokálního traktu).
Obr. 2.1 Schéma hlasového ústrojí.
Akustická soustava vokálního traktu je buzena dvěma druhy akustického signálu. Jednak je to kvaziperiodický signál, vznikající přerušováním výdechového proudu vzduchu kmitajícími hlasivkami, jednak signál
šumový, vznikající turbulentním prouděním výdechového proudu vzduchu úžinami. Hlasivkový tón má bohaté
kmitočtové spektrum, které lze s určitou nepřesností považovat za čárové (ve skutečnosti je hlasivkový tón nutno
považovat za zvuk kvaziperiodický). Filtračním účinkem jedné nebo obou větví zvukovodu se určitá spektrální
pásma (formanty) zesilují, případně se mohou i zeslabovat (antiformanty při nazalizaci). Dalším zvukovým
zdrojem, budícím orální větev mluvidel, je zdroj šumový. Šum vzniká turbulentním prouděním vzduchu
úžinami, které mění svou polohu podle druhu artikulované hlásky. Nejblíže vstupu do orální větve (přímo
v hlasivkách) vzniká šum při artikulaci souhlásky „h“, nejdále od vstupu šum souhlásky „f“. Pokud je šumový
zdroj umístěn mimo začátek orální větve, je pro něj filtrační účinek zvukovodu (vlastně již jen jeho části směrem
14
k výstupu z úst) jiný, než pro hlasivkový tón, který prochází celým zvukovodem. Spektrum šumu je však
ovlivněno i prostorem, který šumovému zdroji předchází, a to obvykle tak, že jsou určitá kmitočtová pásma
šumu potlačena.
Spojitý artikulační pohyb mluvidel (koartikulace) při tvorbě souvislé řeči se projevuje modifikací
charakteristických zvuků jednotlivých hlásek zvuky hlásek sousedících. Tuto modifikaci pozorujeme nejen
v oblasti spektrálních tranzientů (přechodových oblastí mezi stacionárními úseky hlásek), ale někdy i ve
středních hláskových oblastech – záleží na typu hlásek, na tempu řeči a na artikulačních schopnostech mluvčího.
Obr. 2.2
2.1 Časový průběh a spektrogram řečového signálu (věta „Vědci pracují s virgulí“).
Akustická skladba jednotlivých hlásek souvislé řeči je dále modifikována v rámci delších časových úseků
(slova, taktu, větného úseku, věty) tzv. modulačními faktory, jimiž se vytvářejí prozodické rysy promluvy. Jde
o modifikace časové, intenzitní a melodické. Změny v těchto parametrech se přičítají ke změnám daným
vlastnostmi jednotlivých hlásek a koartikulací.
Ukázku řečového signálu vidíme na obr. 2.2. V horní části je časový průběh řečového signálu a pod ním
spektrogram tohoto průběhu. Spektrogram je zobrazení časových změn intenzit jednotlivých spektrálních složek
řečového signálu. V tomto zobrazení čas odpovídá vodorovné ose, kmitočet spektrálních složek svislé ose
a hladina zvuku (tj. logaritmická míra intenzity) stupni zčernání příslušné plochy.
2.1.2
Fonetická rovina řeči
Na spektrogramu na obr. 2.2 dole lze rozlišit spektrum periodického signálu od spektra signálu šumového.
U periodického signálu je většina energie rozložena v nižší části spektra a je zde patrné zřetelné vertikální
šrafování způsobené periodicitou hlasivkových pulsů. Spektrum šumového signálu toto šrafování nemá a většina
energie je u šumového signálu rozložena ve vyšší části spektra. Dobře odlišitelné jsou i oblasti bez signálu (např.
okluzní pauzy). Ve vodorovném směru se táhnou výrazné pruhy s vertikálně kolísajícími polohami. Jsou to
oblasti spektrálních maxim – formanty. Časové změny formantových poloh se nazývají formantovými
tranzienty.
15
Počet samohláskových formantů je závislý na tvaru vlny hlasivkového buzení (na způsobu kmitání
hlasivek). Hlasy, které mají velký počet formantů, znějí většinou plně a jasně, na rozdíl od hlasů s menším
počtem formantů, které znějí zastřeně a chudě. Kmitočty formantů se u jednotlivých samohlásek odlišují a jsou
pro ně charakteristické. Kromě formantů lze na spektrogramech ještě nalézt (obvykle slaběji vyjádřená)
spektrální maxima, která přispívají k individuální charakteristice mluvčího (k barvě hlasu).
V souvislé řeči se vlivem koartikulace polohy samohláskových formantů mohou odlišovat od poloh,
odpovídajících samostatně vyslovované samohlásce (od tzv. cílových hodnot). Při rychlé mluvě formanty
v samohláskových polohách ani nemusejí dosáhnout svých cílových hodnot, a přesto posluchač samohlásky
(v daném kontextu) považuje za správně vyslovené. Pokud se však pomocí počítače ozvučí odpovídající
samohláskové úseky bez kontextu, jsou vnímány jako chybně vyslovené.
2.2
Syntéza řeči z psaného textu
Pro syntézu řeči z psaného textu je třeba zvládnout fonetickou transkripci, tj. přepis psaného textu na
posloupnost hlásek (zvuků), a následné přiřazení zvolených jednotek řeči (difony, trifony apod.)
transkribovanému textu. První syntezátory z psaného textu nepracovaly s prozodií a produkovaly tedy
monotónní, poslechově nepříjemnou řeč. Pro přijatelnější kvalitu syntetické řeči bylo nezbytné přidat
modelování prozodie. Zpočátku se používalo pouze modelování průběhu základního tónu, které je
z prozodického hlediska nejdůležitější. Pro dosažení lepší přirozenosti řeči je však nezbytné pracovat také
s modelováním rychlosti (časového členění) a intenzity řeči. Řada dnešních syntezátorů však vůbec neprovádí
modelování intenzity řeči, nebo intenzitu modeluje značně zjednodušeně. I když výzkumy prokázaly význam
modelování intenzity pro přirozenost syntetické řeči, je tento význam menší v porovnání s modelováním průběhu
základního tónu a časového členění [WIT82][KEL94].
Obr. 2.3 Blokové schéma TTS systému.
Každý systém pro syntézu řeči z psaného textu se skládá z několika vzájemně více či méně provázaných
částí, které můžeme rozdělit do dvou skupin. První skupina, zabývající se zpracováním textu, provádí převod
psaného textu na vnitřní fonetickou reprezentaci syntezátoru spolu s generováním prozodických informací. Tato
část TTS systému sestává z analýzy textu, fonetické transkripce, modelování prozodie a příp. generování
posloupnosti řečových jednotek. Druhá část TTS systému pak převádí vnitřní fonetickou reprezentaci spolu
s prozodií na posloupnost řečových jednotek z řečové databáze, ze které se pak tvoří řečový signál modelováním
řeči v časové nebo kmitočtové oblasti, popř. modelováním hlasového traktu. Základní blokové schéma TTS
systému můžeme nalézt na obr. 2.3. Lingvistická část syntézy řeči z psaného textu je znázorněna na obr. 2.4,
Obr. 2.4 Lingvistická část syntezátoru řeči.
16
vlastní produkce řeči založená na principu modelování hlasového traktu v kmitočtové oblasti je znázorněna na
obr. 2.5.
Obr. 2.5 Lineární model produkce řeči.
2.2.1
Fonetická transkripce
Fonetická transkripce je určena ke schematickému zápisu hlásek mluvené řeči odpovídající dané konvenci.
K zápisu fonetické transkripce se užívá mezinárodní fonetická abeceda IPA [IPA96]. Pro počítačové zpracování
se používá SAMPA (Speech Assessment Methods Phonetic Alphabet) [WEL92][WEL00]. Pro počítačové
zpracování fonetického přepisu češtiny byl definován zápis Doc. Ptáčkem (viz Příloha B), později byl definován
zápis ve společné práci Prof. Nouzy, Prof. Uhlíře a Prof. Psutky [NOU97]. Pro fonetický přepis češtiny vznikly
v minulosti dva různé návrhy SAMPA notace pro češtinu. Jeden pochází z ČVUT a slouží pro potřeby
rozpoznávání, druhý pochází z Fakulty informatiky v Brně a slouží především pro potřeby syntézy řeči. Z těchto
návrhů vznikl později návrh kompromisní, který se zřejmě stane standardem SAMPA notace pro češtinu
[HNŽ01].
Je známo, že výslovnost slov se často liší od jejich pravopisu, i když v češtině není tento rozdíl tak velký
jako např. ve francouzštině nebo v angličtině. Fonetická transkripce češtiny se dá až na malé výjimky popsat
pomocí pravidel bez nutnosti použití rozsáhlých slovníků. Z tohoto důvodu používají všechny české TTS
systémy pouze pravidla, která mohou být doplněna slovníky výjimek.
Složitějším problémem pro fonetickou transkripci jsou číslovky, především pak řadové. V systému Epos je
čtení číslovek realizováno pomocí regulárních výrazů, které představují velmi výkonný nástroj pro práci
s textem.
Obr. 2.6 Modelování prozodie podle pravidel.
17
2.2.2
Prozodie řeči
Prozodie řeči nese informaci o melodii (průběhu základního tónu F0), intenzitě a časovém členění
jednotlivých řečových jednotek na suprasegmentální úrovni. Původní české řečové syntezátory nepracovaly
s prozodií, a proto byla jejich řeč nepříjemně monotónní. Současné řečové syntezátory pracují většinou pouze
s modelováním průběhu základního tónu, jenž je z prozodického hlediska nejdůležitější. Řečové syntezátory
vyvíjené v ÚRE pracují se všemi třemi základními prozodickými parametry.
V teoretické oblasti je stav prozodie češtiny poměrně neuspokojivý. Existují zde sice práce Romportla
a Daneše, ty se však zabývají popisem pravidel, které byly dále propracovány Palkovou. V současné době
neexistuje žádný moderní pohled na teorii prozodie češtiny.
V praktických aplikacích prozodie češtiny, tj. u syntézy české řeči, je stav obdobný jako u teorie – existuje
několik syntezátorů používajících modelování prozodie pomocí pravidel, která je pro běžného posluchače
většinou nepřijatelná. Bohužel lepší prozodické vlastnosti mají dnes spíše syntezátory pocházející z komerční
sféry.
Při modelování prozodie řeči pomocí pravidel se na základě analýzy textu přiřazuje jednotlivým řečovým
jednotkám pomocí pevně stanovených pravidel jejich základní tón, intenzita a trvání. Prozodická pravidla
doposud používaná ve Fonetickém ústavu a v ÚRE jsou výsledkem dlouholetého výzkumu ve Fonetickém
ústavu Univerzity Karlovy pod vedením doc. Ptáčka. Blokové schéma syntézy řeči s modelováním prozodie
pomocí pravidel je na obr. 2.6. Při použití neuronových sítí pro modelování prozodie je hodnota základního tónu
(popř. i intenzity a trvání) jednotlivých řečových jednotek získána pomocí umělé neuronové sítě, na jejíž vstupy
jsou přivedeny výsledky analýzy textu.
Modifikace TTS systému pro modelování průběhu základního tónu řeči pomocí neuronové sítě, vyvíjeného
ve spolupráci ÚRE a ČVUT FEL, je zobrazena na obr. 2.7.
Obr. 2.7 Modelování základního tónu řeči neuronovou sítí.
V tomto TTS systému je vstupní text analyzován a relevantní informace jsou předávány do umělé neuronové
sítě (UNS), která potom na jejich základě generuje prozodické hodnoty pro jednotlivé hlásky. Výsledky této
metody zatím nejsou uspokojivé nejspíše proto, že UNS je nucena generovat přímo absolutní hodnoty
základního tónu řeči, čímž je v podstatě zahlcena. Lepších výsledků by se jistě dosáhlo použitím nějakého
intonačního modelu či použitím více jednodušších neuronových sítí kombinovaných s prozodickými pravidly.
Zajímavou aplikací by také bylo použití neuronové sítě pro modelování prozodie pomocí lineární predikce, kdy
by UNS generovala průběh buzení syntetizujícího filtru namísto přímého generování průběhu základního tónu.
Průchodem generovaného budícího signálu syntetizujícím filtrem by se odstranila hlavní nevýhoda UNS –
nepřirozené chvění výstupního průběhu základního tónu.
2.2.3
Modelování řečového signálu
Z hlediska objemu inventáře řečových jednotek je čeština také poměrně jednoduchý jazyk, neboť obsahuje
jen 5 základních samohlásek. Poměrně dobrých výsledků lze pro češtinu dosáhnout s použitím inventáře
o rozsahu cca 300 řečových jednotek obsahujícího těla samohlásek, iniciální a finální části hlásek, difony
samohláska–souhláska (VC) a difony souhláska samohláska (CV). Ve Fonetickém ústavu FF UK byl
T. Dubědou definován difonový inventář o rozsahu cca 1300 jednotek obsahující navíc difony souhláskových
skupin. Na Fakultě informatiky Masarykovy univerzity v Brně používají inventář obsahující cca 3000
18
poloslabik. Na Katedře kybernetiky ZČÚ v Plzni vytvořili trifonový inventář (spíše než o trifonech by bylo
vhodnější mluvit o monofonech závislých na svém pravém a levém okolí) s využitím automatického definování
trifonové databáze a automatické segmentace na bázi skrytých Markovských řetězců (HMM – Hidden Markov
Models). Takto automaticky definovaný inventář obsahuje cca 5000 jednotek. Nejnovější inventář definovaný
v ÚRE je založen rovněž na použití trifonů a obsahuje cca 1850 řečových jednotek. Ve světě jsou stále více
populární TTS systémy pracující s rozsáhlými databázemi, kde mohou řečové jednotky tvořit celé slabiky
i slova, popř. slovní spojení. Pro syntézu tónových jazyků (např. japonština) se začínají používat inventáře
obsahující každou řečovou jednotku v několika intonačních variantách.
Nejstarší české TTS systémy používaly pro modelování řečového signálu formantovou syntézu (známý je
např. Ptáčkův dvouformantový syntezátor používající Baumwollspinerovu metodu). TTS systémy vyvinuté
v ÚRE používají modelování řečového signálu v kmitočtové oblasti buď pomocí lineární predikce, nebo pomocí
kepstrální syntézy. Největší předností modelování řečového signálu v kmitočtové oblasti je plynulá změna
prozodických parametrů ve velkém rozsahu. Většina konkurenčních produktů je dnes založena na modelování
řečového signálu v časové oblasti metodou PSOLA, popř. jejími modifikacemi, které mají oproti modelování
řeči v kmitočtové oblasti nevýhody v oblasti modelování prozodie a spektrální nevyváženosti na přechodech
jednotek, poskytují však řeč s vyšší přirozeností. Jako spojení výhod obou přístupů se dnes začíná prosazovat
syntéza řeči využívající harmonické modelování. Pro možnost porovnání kvality nových inventářů používajících
vzorkovací kmitočet 16 a 32 kHz byla v ÚRE rovněž implemetována metoda PSOLA v časové oblasti.
2.3
Způsoby realizace fonetické transkripce
Pro automatický převod psaného textu na posloupnost hlásek se používají buď metody založené na použití
slovníků, nebo metody založené na použití transkripčních pravidel. Zvláštní kapitolu pak tvoří fonetická
transkripce pomocí umělých neuronových sítí. Transkripční systémy používající pravidla se pak dělí na expertní
na pravidlech založené systémy a na učící se na pravidlech založené systémy. V prvním případě jsou fonetická
pravidla definovaná skupinou expertů z oblasti fonetiky nebo lingvistiky, v druhém případě bývají systémy,
založené většinou na použití skrytých Markovských řetězců, trénovány na příkladech. Není tudíž nutné
spolupracovat s vyškolenými fonetickými experty, kterých může být pro konkrétní jazyk nedostatek, což je
zvlášť důležité při vývoji multilingválních TTS systémů.
Čeština je z hlediska fonetické transkripce ve srovnání např. s angličtinou nebo francouzštinou výrazně
jednodušší jazyk. Zde by nasazení neuronových sítí nemělo takový smysl jako při fonetické transkripci již
zmiňované francouzštiny či angličtiny. Fonetická transkripce češtiny se dá uspokojivě vyřešit pomocí pravidel
doplněných o slovník výjimek.
Jak již bylo řečeno, používají řečové syntezátory vyvíjené v ÚRE pro přepis psaného textu na posloupnost
hlásek transkripční pravidla doplněná o slovníky výjimek.
2.4
Vlastnosti prozodie řeči
Termín prozodie postihuje jisté vlastnosti řečového signálu jako jsou slyšitelné změny základního tónu,
hlasitosti a časového členění. Jelikož se prozodické změny aplikují na jednotky vyšší, než jednotlivé segmenty
řeči (krátkodobé úseky řeči o délce řádově desítek ms), mluvíme o prozodii jako o suprasegmentálním jevu.
Prozodie tedy postihuje větší jednotky, jako jsou slabiky, přízvukové takty, a také celé věty nebo souvětí. Změny
v časové, intenzitní a melodické oblasti, ke kterým dochází na segmentální úrovni (např. ve spojení souhláska –
samohláska), nazýváme mikrointonací, změny ve stejných dimenzích, které jsou výsledkem suprasegmentálních
vlivů (např. přízvukového taktu, větného úseku, věty) nazýváme intonací [PTÁ93]. Ukázku mikrointonace
můžeme vidět na obr. 2.8. Jedná se o spojení hlásek „éza“ ze slova „syntéza“. Z obrázku je zřejmé, že u hlásky
„z“ dochází k lokálnímu poklesu základního tónu o cca 10 Hz.
Termín intonace používají někteří autoři jako synonymum pro prozodii, jiní jím označují pouze melodickou
stránku prozodie. V této práci budu intonací označovat melodický průběh řeči.
Rozdělení suprasegmentálních účinků do tří nezávislých popisů v časové, kmitočtové a intenzitní oblasti je
prakticky nemožné. Suprasegmentální rysy souvislé řeči se realizují ve všech třech oblastech současně, na sobě
závisle a s možností vzájemné zastupitelnosti jednotlivých složek. Např. časové členění řeči je výrazně
ovlivňováno melodií.
19
Obr. 2.8 Ukázka mikrointonace – spojení hlásek „éza“ ze slova „syntéza“.
2.4.1
Suprasegmentální vrstvy
Přízvukový takt je lineární jednotka, která váže jednu slabiku nesoucí slovní přízvuk a jistý počet slabik
nepřízvučných. V krajním případě tvoří přízvukový takt přízvučná slabika sama. Zvukovou charakteristiku taktu
určují především dvě složky: přízvukový vrchol a umístění mezitaktové hranice. V rámci hiearchické jazykové
stavby je přízvukový takt jednotkou na úrovni slova a je realizován buď jen jedním slovem, nebo primární
předložkou a slovem, nebo slovem a jemu následujícím jedním monosylabem či několika monosylaby, nebo
samostatnou skupinou monosylab, apod. Zde je třeba podotknout, že zacházení s monosylaby je většinou
záležitostí sémantickou nebo fakultativní. V systému Epos je pro přízvukový takt použito označení „word“ a pro
slabiku označení „syll“.
Slovní přízvuk je v češtině pevný a váže se na první slabiku slova. Z toho plyne, že není fonologicky účinný,
není možno ho využít pro rozlišení slovních významů. Je však považován za signál mezislovní hranice.
Výjímečně však může před slovem s přízvukem v rámci téhož přízvukového taktu předcházet jednoslabičné
slovo bez přízvuku nebo s přízvukem slabším. Pak mluvíme o předrážce (předtaktí) - např. „pan Novák“,
„A nestůjte“.
Akustickým základem slovního přízvuku je kontrast dané slabiky vzhledem k slabikám sousedním, ne však
nějaká absolutní hodnota zvukových kvalit. Množství variant, jimiž může být přízvuk realizován, se zatím
nepodařilo uspokojivě zobecnit. V češtině se při realizaci slovního přízvuku může uplatnit melodický průběh,
intenzitní proporce a trvání.
V kmitočtové oblasti vyvolává dojem přízvučnosti slabiky jak zvýšení, tak snížení tónu. Přijatelná či
optimální velikost výškových změn je závislá na kontextu a pohybuje se kolem 1 – 2 čtvrttónu [PTÁ93]. Větší
melodické změny jsou vnímány na úrovni větné melodie
V intenzitní oblasti odpovídá přízvučné slabice, dle [PTÁ93], zvýšení intenzity cca o 3 dB, což je na hranici
subjektivního vnímání. V přirozeném signálu však často nacházíme i přízvučné slabiky, intenzitně nevyjádřené,
nebo dokonce slabší, než jejich okolí. V komplexu zvukových kvalit zřejmě není intenzita přízvučné slabiky
kvalitou určující.
V časové oblasti není zřetelné prodloužení samohlásky jako signál přízvuku přijatelné, protože rozdíl trvání
dlouhých a krátkých samohlásek je fonologicky funkční. V malých mezích, cca 1 dC - decichron, pro který platí
definiční vztah:
B = 10 log T1/T2 = 1 dC,
(2.1)
kde T1 a T2 jsou srovnávané doby trvání [BOR67],
se však může i prodloužení nebo zkrácení samohlásky stát faktorem, podporujícím hodnocení přízvučnosti. Pro
názornost lze uvést, že změna trvání o velikosti 1 dC je právě percepčně postřehnutelná.
20
Promluvový (intonační) úsek je podle Palkové [PAL94] lineární jednotka souvislé řeči nadřazená taktu. Je to
jednotka v první řadě zvuková. O její existenci rozhoduje především intonační průběh řeči. Z hlediska jazykové
stavby je intonační úsek jednotkou fakultativní. Prosazuje se jak při produkci, tak i při percepci řeči. Z hlediska
posluchače si lze intonační úsek představit jako skupinu taktů, které jsou svým intonačním průběhem vázány do
určitého celku. Posluchač má dojem, že mluvčí vytvořil tento úsek řeči jakoby "jedním tahem". Předěl mezi
sousedními intonačními úseky může být tvořen pauzou, nebo jen intonační linií, nebo oběma těmito způsoby
najednou. Nadále budu o promluvovém úseku hovořit jako o úseku intonačním (v systému Epos „colon“).
Pauza je důležitým faktorem pro členění souvislé řeči na menší jednotky (frázování). Správné umístění
pauzy je mnohdy zásadně důležité pro správné pochopení promluvy. Předěl, který je vyznačován pauzou, však
obvykle nevyznačuje pauza sama, nýbrž společně s melodickým tvarem podle druhu úseku. Důležité je rovněž
správné rozložení přízvuků a důrazů. Velmi často vnímáme pauzu i tam, kde není řeč ve skutečnosti vůbec
přerušena, ale kde je zachován melodém, vyznačující předěl. K vytvoření předělu (u nedbalé mluvy) přispívá
i protažení koncové slabiky před pauzou (cca o 50 až 100%). Trvání pauzy je velmi proměnlivé a záleží na
mnoha faktorech (především na umístění pauzy v promluvě a na tempu).
Tempo mluvené řeči obvykle vyjadřujeme počtem slabik za vteřinu. Kromě počtu a délky slabik jsou však
pro celkové tempo projevu důležité pauzy, jejich distribuce a délka. Při větších změnách tempa (zvl. při jeho
zrychlování), se nemění délky všech hlásek stejně. Ke kvantitativnímu popisu tohoto jevu však doposud chybí
potřebné údaje.
Větný přízvuk je prozodický prostředek, jímž se zvýrazňuje určitá informace, obsažená v posledním
přízvukovém taktu. Větný přízvuk může nebo nemusí tvořit součást meziúsekové hranice. Pro počet větných
přízvuků v intonačním úseku neexistuje žádný apriorní předpoklad. V akustické oblasti se větný přízvuk
realizuje stejnými prostředky jako přízvuk slovní, ale většinou ve zvýšené míře (výjimku tvoří např. větný
přízvuk v posledním přízvukovém taktu posledního intonačního úseku před interpunkčním znakem, kde může
být realizován jako přízvuk slovní).
Věta v češtině představuje stabilní zvukovou jednotku. Rozhodujícím z tónového průběhu v české větě je
obvykle melodie závěrečné části většinou počínající přízvučnou slabikou jádra výpovědi, tedy nejčastěji
posledního slova (přízvukového taktu), popř., je-li tzv. větný přízvuk (resp. důraz) přenesen na jiné než poslední
slovo, celé části od přízvučné (důrazné) slabiky tohoto slova. Pro označení této části melodického průběhu, která
se pokládá za melodický jazykový prostředek, se užívá často označení kadence [DAN57]. Romportl zavedl ve
svých novějších pracích [ROM85] pro funkční melodické schéma termín melodém, aby se vyhnul víceznačnosti
termínu kadence [PAL94]. Namísto termínu kadence Romportl používá termín intoném. Palková užívá termínu
melodém pro základní typ melodického průběhu, určený na základě jeho gramatické funkce, tedy pro soubor
melodických schémat, která se v jazyce uplatňují ve stejném typu vět, a termín kadence ponechává pro tato
melodická schémata sama. V této práci budu rovněž používat pro vlastní melodická schémata termín kadence.
Pro větu je v systému Epos použito označení „sent“.
2.4.2
Suprasegmentální charakteristiky v časové oblasti
Popis vychází z předpokladu, že na realizaci promluvy se podílí několik hierarchicky rozlišitelných úrovní.
Oddělení vlivů těchto úrovní na výsledný signál je největším problémem popisu.
Vliv přízvukového taktu:
V rámci přízvukového taktu má počet hlásek v přízvukovém taktu vliv na průměrné trvání hlásky, a to
zvlášť pro izolovaná slova, pro finální přízvukové takty a pro přízvukové takty v ostatních pozicích věty (nebo
intonačního úseku). Pro izolovaná slova a finální (předpauzové) přízvukové takty věty (větného úseku) bylo
zjištěno, že hledanou závislost lze přibližně popsat vztahem:
T(m)/T(n) = (n/m)0,405
(2.2)
kde m, n znamenají počty hlásek ve dvou srovnávaných přízvukových taktech a T(m) a T(n) průměrná trvání
hlásek v odpovídajících přízvukových taktech [PTÁ95].
Pro ostatní (tj. nefinální) přízvukové takty nebyla nalezena žádná výrazná změna v průměrném trvání hlásek
v závislosti na počtu hlásek, což je v souladu se všeobecně uváděným izosylabickým mluvním rytmem češtiny
[PAL94].
Úroveň přízvukového taktu se v časovém členění řeči dále uplatňuje změnou délky hlásek přízvučné slabiky.
V přirozené řeči se hlásky prodlužují o 1 až 2 dC. Poslechové testy se syntetickým signálem však ukázaly, že
prodloužení samohlásky o více než 1 dC se již může vnímat jako dlouhá samohláska. Vjem přízvuku u tohoto
signálu lze však vyvolat i zmenšením trvání hlásek přízvučné slabiky asi o 1 dC.
21
Vliv intonačního úseku:
Úsek promluvy, zakončený pauzou, se může při nedbalé výslovnosti uplatit prodloužením finální hlásky
o cca 1,7 dC (50%) a předcházející hlásky finální slabiky o 0,4 až 1,1 dC (10 až 30%). Po meziúsekové pauze
obvykle dochází ke zkrácení některých iniciálních hlásek následujícího větného úseku. Kvantitativní údaje
k tomuto jevu lze nalézt v již zmíněné publikaci Borovičkové a Maláče [BOR67].
Trvání pauzy mezi intonačními úseky je v přirozené řeči velmi proměnné. U syntetického signálu
neutrálních výpovědí je percepčně tolerovatelná pauza o trvání asi 100 ms. Střídání různých délek pauz ve větě
může neutralitu výpovědi narušit.
Vliv úrovně věty:
Úroveň věty se projevuje prodloužením trvání hlásek slabiky s větným přízvukem na začátku tzv. jádra
výpovědi o cca 1,5 dC. V přirozené řeči toto jádro většinou leží v posledním taktu věty a větný přízvuk se pak
v časové oblasti nerealizuje.
Trvání pauzy mezi větami je v přirozené řeči značně proměnné. Podle poslechových testů se u syntetického
signálu osvědčilo trvání pauz za větami v závislosti na interpunkčních znacích podle tab. 2.1 [PTÁ95].
Tab. 2.1 Závislost trvání pauz za větami na interpunkčních znacích dle [PTÁ93]
2.4.3
Interpunkční znak za větou
(intonačním úsekem)
Percepčně přijatelné trvání pauzy
u syntetického signálu
.!?
420 ms
;:-
280 ms
,()
140 ms
Suprasegmentální charakteristiky v melodické oblasti
Hledání zákonitostí, jimiž se suprasegmentální rysy uplatňují v melodii řeči, je vzhledem ke vzájemným
souvislostem a komplexnosti problému velmi obtížné. Zvláště těžké je tyto zákonitosti popsat kvantitativně
v rovině akustické, neboť akustické realizace suprasegmentálních rysů mohou být velmi variabilní.
Vliv přízvukového taktu:
Slovní přízvuk v češtině je v melodické oblasti realizován zvýšením nebo snížením základního tónu
přízvučné slabiky (podle kadence, ve které je umístěna) asi o 1/4 tónu. Překročením hodnoty 1/2 tónu ztrácí
příslušná akustická realizace charakter přízvuku.
Vliv intonačního úseku:
Intonační úsek se skládá buď ze skupiny přízvukových taktů, nebo může být tvořen i taktem jediným.
Členění věty na úseky je v hlavní míře ovlivňováno délkou promluvy, syntaktickou stavbou promluvy,
sémantikou a kontextem. Předěl mezi jednotlivými úseky je (může být) tvořen pauzou, před níž předchází
kadence zvukově realizovaná tzv. větným přízvukem (obvykle na přízvučné slabice závěrečného taktu úseku,
jinak na tzv. jádru výpovědi) a příslušnou melodickou formou. Melodií intonačního úseku ve funkci sdělovací se
zabýval Daneš [DAN57]. Podle Daneše je pro tuto funkci relevantní směr pohybu melodie, rozložený po
slabikách (nebo v rámci slabiky); vytvářejí se tak jistá melodická schémata s vlastní fonologickou strukturou.
Daneš jimi nechce popsat melodii celé věty, ale snaží se postihnout průběh melodie posledního taktu věty, jehož
funkční důležitost zdůrazňuje. Z hlediska významové výstavby výpovědi Daneš rozlišuje východisko a jádro
výpovědi. Rozeznává ukončené a neukončené oddíly promluvy. Ukončené dělí na ukončené uspokojivě
a neuspokojivě. Intonační schémata oddílů uspokojivě ukončených nazývá kadencemi konkluzívními, schémata
oddílů neuspokojivě ukončených jako antikadence. Pro oddíly neukončené má termín polokadence.
Kadence konkluzívní je charakterizována klesavým pohybem melodie po přízvuku. Vyskytuje se ve dvou
variantách: příznakové a nepříznakové. Tyto varianty se liší polohou přízvučné slabiky, na níž je umístěno
intonační centrum.
Antikadence (tj. kadence v oddílech promluv ukončených neuspokojivě) má ve spisovné češtině dvě
podoby, tvarově samostatné:
Antikadence stoupavá - lze ji najít v taktech jednoslabičných i víceslabičných. Charakteristické pro ni je to,
že začíná na slabice přízvučné nízkým tónem a končí tónem vysokým. V podobě jednoslabičné se objevuje
setrvávání v nízké poloze, po něm následuje výrazné stoupnutí.
22
Antikadence stoupavě klesavá - s antikadencí stoupavou má společnou nízkou polohu přízvučné slabiky,
následující slabika prudce stoupne a poslední slabika mírně klesne. Slabika nebo slabiky uvnitř zůstávají na
stejné výši. Daneš se domnívá, že tato kadence se objevuje jen na taktech nejméně tříslabičných.
Polokadence (tj. oddíl promluvy neukončené) má také dvě základní podoby. První z nich, stoupavá, je
bezpříznaková, druhá, klesavá, je příznaková:
Bezpříznaková stoupavá polokadence má dvě varianty, jímž je společný vzestup tónu z nízké hlasové oblasti
do konce taktu (vrcholu je dosaženo v koncové slabice). Rozdíl mezi nimi je v tom, že v prvé variantě je slabika
přízvučná níže než slabika před přízvukem, u druhé varianty je přízvučná slabika výše (v linii stoupavé)
a slabika před přízvukem je nižší než přízvučná. Pro obě varianty však platí, že slabika před přízvukem poklesne.
Příznaková stoupavá polokadence má také dvě varianty, charakterizované poklesem slabiky před přízvukem:
první varianta má přízvučnou slabiku nejníže z celého taktu, následující prudce stoupne (dosáhne melodického
vrcholu), slabiky do konce taktu stoupají nevýrazně, nebo zůstávají na stejné výši; druhá varianta má melodický
vrchol už ve slabice přízvučné. V jednoslabičném taktu se při této variantě neobjeví zřetelné stoupání v průběhu
slabiky.
Příznaková polokadence klesavá má s předchozími společné klesnutí slabiky před přízvukem. Přízvučná
slabika prudce stoupá, slabika následující je v nejvyšší poloze, slabika poslední klesá. V taktu dvojslabičném
dosahuje melodického vrcholu už slabika přízvučná, v taktu jednoslabičném se projevuje klesání z vysoké do
nízké polohy.
Větná melodie podle Romportla [ROM85] je z hlediska funkčního systémem kadencí, který spolu se složkou
dynamickou slouží a) k odlišení věty ukončené od věty (úseku), která bude (po pauze, za předělem) dále
pokračovat; b) k odlišení různých druhů vět, především k odlišení otázky zjišťovací od ostatních druhů vět; c) k
odlišení vět neutrálních (bez citového zabarvení) od vět, které jsou citově zabarveny, a k odlišení druhu takového
zabarvení. Pro syntézu řeči je nezbytně nutné zvládnout první dvě funkce a z třetí je třeba alespoň umět zbavit
simulovanou řeč všech nechtěných citových prvků, které by mohly posunovat nebo měnit smysl věty.
Aby věta zůstala neutrální oznamovací větou, je podle Romportla rozhodující, aby byl zachován pozvolna
klesavý průběh melodie posledního taktu počínaje přízvučnou slabikou; platí to i o větě rozkazovací
a doplňovací tázací (začínající tázacím zájmenem). Melodie předcházející části věty je velmi variabilní a není
příznaková. Pokud je třeba jádro výpovědi zdůraznit, zvýší se obvykle výška tónu přízvučné slabiky a pokles
melodie je pak strmější. Jestliže je důraz na přízvučné slabice jiného než posledního taktu, rozprostře se klesavá
kadence od této důrazné slabiky až do konce věty.
Neutrální otázkové kadence vyjadřující otázku zjišťovací nebo otázku doplňovací se vyskytují ve dvou
podobách: stoupavé (otázka zjišťovací) a stoupavě-klesavé (otázka doplňovací). Obě se vyznačují hlubokým
tónem na přízvučné slabice a poslední slabika taktu se pohybuje zhruba ve střední poloze hlasu. V první podobě
je druhá slabika zhruba ve výši přízvučné slabiky (nebo jen mírně vyšší); v druhé podobě se slabika po přízvuku
výrazně zvýší (asi o sextu) a v následující slabice hlas opět mírně poklesne. Při důrazu se výrazně zvětší
intervaly (např. vzestup v druhé podobě kadence se může zvětšit o oktávu i více), zejména se však prohloubí
přízvučná slabika kadence. V případě, že jádrem výpovědi se stane jiný než poslední takt, se pak přesouvá
počátek kadence na přízvučnou slabiku jádra výpovědi a celá kadence se rozprostírá do konce věty.
Základním typem předpauzové kadence (věta neukončená) je tzv. typ stoupající. Přízvučná slabika kadence
je hluboká a následující slabiky stoupají. Obvykle bývá i slabika předcházející před přízvučnou hlubší než
slabika přízvučná a můžeme ji považovat za součást kadence. Z dalších možných kadencí je častá kadence
rovná, jíž obvykle předchází slabika s poněkud nižším tónem. Někdy se objeví i kadence klesavá, která má však
mírnější pokles než kadence věty oznamovací.
Melodie citově zabarvené řeči bývají většinou odvozovány od forem, užívaných ve větách citově neutrálních
tak, že jsou buď intervaly zvětšovány, někdy naopak zmenšovány (např. při lítosti, smutku, kdy navíc ještě
poklesá celková výška hlasu), jindy se kadence kromě zvětšení intervalů opakují i v předcházejících částech věty
(např. ve větách zvolacích, silně citově zabarvených otázkách, ve větách přacích nebo rozkazovacích). Ustálenou
formu mívá melodie varovací a tzv. melodické vytýkání [ROM85].
Oba systémy prozodických prostředků řeči, jak Danešův, tak i Romportlův, postrádají přesný popis intervalů
mezi jednotlivými tóny melodického průběhu, v některých příkladech ho však alespoň naznačují. Při
simulačních pokusech Borovičkové a Maláče [BOR67], které vycházely z naznačených hodnot, měly téměř
všechny syntetické věty větší nebo menší emociální zabarvení (interval v otázkové kadenci byl sexta). Při
simulaci kadencí s minimálními kroky (jeden až dva půltóny) bylo sice emociální zabarvení odstraněno, ale
posluchač neměl vždy jistotu, o kterou kadenci jde.
23
Základní tónový průběh v neutrální oznamovací větě lze charakterizovat jako mírně obloukovitě klesavý.
Tvar průběhu F0 v logaritmické stupnici připomíná značně plochou vzhůru vydutou parabolu s vrcholem na
druhé nebo třetí slabice od počátku věty (popř. i na další při výrazně delší větě). Tento průběh Romportl
matematicky aproximoval rovnicí paraboly.
Na základě vlastních pokusů Romportl sestavil matematickou aproximaci melodického průběhu I.
(stoupavé) otázkové formy. Dílčí analýzy a pokusy přitom ukázaly, že kmitočtové rozpětí v neutrálních větách je
obecně menší než ve větách s expresí. Individuálně i toto rozpětí kolísá u jednotlivých mluvčích. Pokud se např.
u jednoho mluvčího rozpětí v neutrální oznamovací větě s čtyřslabičným jádrem výpovědi realizovalo v rozmezí
zhruba 1 oktávy (cca 160 - 75 Hz), pak se u něho v základním melodému klesavém v jednoslabičném taktu
realizuje pokles asi mezi 120 až 75 Hz, v čtyřslabičném 140 - 75 Hz, v I. tázacím jednoslabičném vzestup mezi
110 - 150 Hz (někdy až 110 - 180 Hz), nikoli však více. Přesáhne-li vzestup asi sextu, přestává být např. tázací
věta neutrální a nabývá jistého emocionálního zabarvení, jehož druh je závislý na kontextu a situaci.
2.4.4
Suprasegmentální charakteristiky v intenzitní oblasti
Přízvuk se v intenzitní oblasti projevuje zvýšením intenzity přízvučné slabiky o 1 až 3 dB. U synteticky
vytvářeného signálu řeči umělého charakteru (např. LPC syntetizérem) se k zachování neutrálního charakteru
výpovědi osvědčují spíše menší hodnoty z výše uvedeného rozsahu. Je zajímavé, že při poslechových testech
syntetického signálu souvisle mluvené české řeči posluchači slovní přízvuk většinou registrovali i tam, kde nebyl
realizován ani intenzitně, ani jinými prostředky (melodicky, časově). Přitom nebyl nijak narušen ani vjem slovní
segmentace, který se o realizaci přízvuku zřejmě příliš neopírá [PTÁ93].
Větný přízvuk (logický přízvuk, důraz), jímž se obvykle označuje jádro výpovědi vně posledního taktu věty,
je realizován zvýšením intenzity přízvučné slabiky o cca 2 - 3 dB oproti ostatním přízvučným slabikám. Větší
úlohu v percepci jádra výpovědi hrají melodické změny.
Vedlejší přízvuk, vyskytující se někdy v delším taktu promluvy, je intenzitně prakticky neregistrovatelný.
O variabilitě umístění přízvuku ve spontánní promluvě podle extralingvistických faktorů verbální komunikace,
o zachovávání hiearchizace přízvuku ve vztahu k hiearchii sémantické, o neutralizaci přízvuku v místech, kde by
přízvuk být mohl a o neočekávaných prominencích přízvuku různé kvality a funkce mj. pojednává monografie
Dohalské [DOH91]. Kvantitativní údaje o intenzitní modulaci souvisle mluvené češtiny vlivem hiearchicky
vyšších suprasegmentálních složek však doposud chybí.
2.4.5
Superpozice vlivů jednotlivých vrstev tvoření řeči
V souvislé mluvené řeči je koartikulace hlásek ve slabikách první (nejnižší) vrstvou výsledného akustického
popisu. Další nejbližší vrstva je na úrovni slova (taktu), v němž se uplatňuje např. přízvuk. Následuje vrstva
intonačního úseku, kde se může uplatnit kontrast mezi různými slovy (takty), např. slovní důraz. Na úrovni věty
se pak uplatňují melodémy, rozlišující např. větu oznamovací od zjišťovací věty tázací. Vrstva na úrovni
promluvy obsahuje kontrasty různých stylů a emocionálních postojů [HÁL75]. To, co bylo řečeno o průběhu
melodie, platí samozřejmě o celém frekvenčním spektru a o jeho intenzitní a časové dimenzi. Mimořádně
důležitou veličinou je trvání jednotlivých segmentů; je to veličina, která podléhá mnoha změnám. Pokud jde o
první vrstvu, o hlásky a jejich spojení, je jejich trvání závislé na typu hlásky a na jejím kontextu. U spojení typu
CV se ukazuje tendence k zachování konstantní délky spojení, tzn. že za kratší souhláskou následuje delší
samohláska a naopak. Výrazné změny trvání (až 1:4) nastávají v souhláskových skupinách. Přízvukový takt
(druhá vrstva) ovlivňuje trvání hlásek podle počtu hlásek v taktu a podle přízvuku. Ve třetí vrstvě (větný úsek) se
ovlivňuje např. trvání slabiky se slovním důrazem nebo trvání koncové slabiky před pauzou, ve čtvrté vrstvě
(věta) se prodlužuje trvání slabiky s větným přízvukem apod.
2.5
Metody popisu řečových jednotek
Syntetickou řeč můžeme získat dvěmi základními způsoby:
●
explicitně, formou souboru pravidel popisujících chování hlásek a jejich přechodů (např. formantová syntéza
nebo modelování mechanických parametrů hlasového ústrojí);
●
implicitně, uschováním vzorků fonetických přechodů a koartikulací v databázi řečových jednotek a jejich
použitím jako základních akustických jednotek (místo hlásek). Tomuto způsobu syntézy se také říká
konkatenativní syntéza, neboť výsledný řečový signál vzniká zřetězením základních řečových jednotek.
Konkatenativní syntéza se dále dělí dle způsobu modelování řečového signálu na:
●
modelování řečových jednotek v časové oblasti (TD-PSOLA);
24
●
modelování řečových jednotek ve kmitočtové oblasti (LPC syntéza, formantová syntéza, kepstrální syntéza,
harmonické modelování)
●
hybridní systémy (LP-PSOLA, MBROLA)
V následujících odstavcích se zmíním o dvou hlavních způsobech konkatenativní syntézy řeči, a to o
modelování řečových jednotek v časové a ve kmitočtové oblasti.
2.5.1
Popis řečových jednotek v časové oblasti
Syntéza řeči v časové oblasti je založena na skládání navzorkovaných úseků řeči, přičemž jednotlivé
navzorkované úseky mohou mít proměnlivou délku. Dnes se pro syntézu řeči z psaného textu používá zejména
metoda TD-PSOLA1 (Time Domain Pitch Synchronous Overlap Add) vyvinutá v 80. letech ve Francii [CHA86]
pro svou jednoduchost, vysokou segmentální kvalitu a přirozenost syntetické řeči [MOU90]. Nevýhodou metody
TD-PSOLA je poněkud omezená možnost modelování prozodie z důvodu provádění prozodických změn přímo
na řečovém signálu (bez použití jakéhokoli parametrického modelu). Další nevýhodou této metody jsou
nespojitosti ve fázi, v hodnotě základního tónu a ve spektrální obálce vznikající při syntéze. Ve snaze eliminovat
tyto nevýhody vzniklo mnoho modifikovaných, popř. hybridních systémů (např. MBROLA) [DUT97].
2.5.2
Popis řečových jednotek ve kmitočtové oblasti
Nejdůležitější skupinou řečových syntezátorů pracujících ve kmitočtové oblasti jsou syntezátory založené na
principu lineární predikce, tzv. LPC syntezátory. Jejich teoretickým ekvivalentem jsou pak syntezátory založené
na modelování mechanických parametrů hlasového traktu, které je však numericky poměrně náročné
a výsledkem je nepříliš srozumitelná řeč s malou přirozeností. Modelování mechanických parametrů hlasového
ústrojí má význam především teoretický.
Další významnou skupinou řečových syntezátorů pracujících ve kmitočtové oblasti jsou kepstrální
syntezátory. Kepstrální model hlasového traktu na rozdíl od AR modelu zahrnuje jak nulové body, tak póly
přenosové funkce, a je tudíž obecnější. Výhodou této metody oproti LPC modelování je lepší segmentální
kvalita, nevýhodou je složitější realizace rekonstrukčního filtru.
Formantová syntéza (může být ve formě explicitní i implicitní) je založena na modelování
charakteristických (rezonančních) kmitočtů hlasového traktu pomocí banky filtrů. Formantová syntéza nevede
k příliš přirozené řeči a má spíše historický význam, na mnoha pracovištích se však dodnes používá, především
však k pedagogickým účelům.
Posledním významným zástupcem řečových syntezátorů pracujících ve kmitočtové oblasti jsou syntezátory
založené na harmonickém modelování řeči, které jsou hlavně v poslední době velmi populární. Harmonické
syntezátory pracují na podobném principu jako kepstrální, používají podobný postup analýzy, ale zcela odlišný
postup syntézy. U syntezátorů řeči používajících harmonického modelování se na základě kepstrálních
koeficienů vytváří syntetická řeč skládáním sinusovek, kdežto u kepstrální syntézy se syntetická řeč vytváří
přímo pomocí složité struktury filtrů.
2.6
Metody popisu suprasegmentálních rysů řeči
Absolutní vyjádření prozodických jevů nebývá, vzhledem k jejich povaze, vždy nejvýhodnější, a proto se
obvykle snažíme tyto jevy popsat pomocí nejrůznějších modelů. Nejlépe jsou tyto modely rozpracovány pro
účely modelování průběhu základního tónu řeči. Stejně jako ostatní vlastnosti řečového signálu mohou být
prozodické jevy studovány na různých úrovních.
2.6.1
Úrovně reprezentace prozodických jevů
Prozodické jevy můžeme zkoumat na třech základních úrovních:
●
první, akustická úroveň: akustické projevy prozodických jevů (základní tón řeči, intenzita a trvání) mohou
být přímo měřeny za pomoci speciálního vybavení či algoritmů (jako je např. algoritmus detekce základního
tónu řeči);
●
druhá, percepční úroveň reprezentuje prozodické jevy, jak by je slyšel (průměrný) posluchač. Percepční
reprezentace prozodie je přístupná jednotlivým posluchačům, může však jen těžko být měřena. Zjišťuje se,
s nevelkou přesností, na základě poslechových testů;
1
PSOLA/TD® je registrovaná ochranná známka společnosti France Telecom
25
●
třetí, lingvistická úroveň reprezentuje prozodii promluvy jako sekvenci abstraktních jednotek (znamének,
symbolů), z nichž některé plní sdělovací funkci, zatímco jiné naplňují syntaktické požadavky.
2.6.2
Intonační modely
Jak vyplývá z předchozí podkapitoly, je popis prozodických průběhů poměrně složitá úloha, jejíž
zjednodušení nám umožňují prozodické, především pak intonační, modely. Za poslední léta bylo ve světě
vyvinuto mnoho intonačních transkripčních formalismů a metod. Pro češtinu však nikdo žádný intonační model
ani nevyvinul, ani nepřevzal model cizí. Z nejznámějších cizojazyčných intonačních modelů, které se všeobecně
rozšířily i na jiné jazyky, než pro které byly původně vytvořeny, bych zmínil zejména:
●
Pierrehumbertová (1983)
●
ToBI (1992)
●
IPO (1990)
●
INTSINT (1991)
●
Fujisaki (1984)
Z hlediska úrovní popisu, uvedených v předchozím odstavci, můžeme intonační modely rozdělit na modely
akustické, percepční a lingvistické. Nejznámějším intonačním modelem, patřícím do první skupiny, je Fujisakiho
intonační model [FUJ92]. Do třetí skupiny pak patří model Pierrehumbertové a modely IPO a INTSINT a notace
ToBI [MATE], [MEN00].
2.6.3
Pierrehumbertové intonační model
Pierrehumbertová popisuje průběh základního tónu řeči jako sekvenci vysokých (H) a nízkých (L) tónů. Ty
jsou asociovány s přízvučnými slabikami a prozodickými hranicemi. Na základě prací Pierrehumbertové
a ostatních autorů vznikl v roce 1992 systém pro zápis intonačních průběhů ToBI [SIL92].
2.6.4
Systém pro notaci prozodie ToBI
ToBI je systém určený pro zápis intonace a prozodických struktur mluvených promluv. Systém ToBI byl
původně určený pouze pro angličtinu, dnes však existuje více variant notace ToBI pro různé jazyky (s výjimkou
češtiny) [TOBI]. ToBI systém používá tzv. intonační vrstvu (Tone Tier) pro zápis intonačních jevů jako jsou
tóny (tones) pokrývající okrajové hodnoty intonace a intonaci slovního a úsekového přízvuku podle definice
Pierrehumbertové (1980), dále cílové body (targets) a maximální hodnoty intonace (F0 range).
2.6.5
Intonační model INTSINT
INTSINT (INTernational Transcription System for INTonation) je systém pro kódování intonačních vzorů
mluvené řeči, který navrhl Daniel Hirst na Univerzitě v Aix-en-Provence [HIR00]. Systém je založen na
předpokladu, že intonační vzory promluvy na fonologické úrovni mohou být reprezentovány zřetězením tzv.
tónových úseků (tonal segments) dvou typů, a to globálních (absolutních) a lokálních (relativních). Globální
tónové úseky se dále dělí na vysoké (Top – T), střední (Mid – M) a nízké (Bottom – B). Lokální tónové úseky se
pak dělí na vyšší (Higher – H), nižší (Lower – L), shodné (Same – S), zvyšující se (Upstep – U) a snižující se
(Downstep – D).
Obr. 2.9 Fujisakiho model produkce základního tónu řeči.
26
2.6.6
Intonační model IPO
Metodika analýzy intonace IPO je založena na dvou hlavních předpokladech: a) co není posluchčem
vnímano je pro lingvistický popis intonace nedůležité, b) člověk více vnímá tónové změny (klesání, stoupání)
než tónové úrovně (nízká, vysoká). Z tohoto důvodu systém IPO používá ke kódování intonace inflexní body
a přechody z jednoho inflexního bodu do druhého.
Obr. 2.10 Impulsní odezva úsekového systému Fujisakiho prozodického modelu pro vstupní pulsy o velikosti
Ap = 0.1, 0.25, 0.4, 0.6, 0.8 a 1.0 při α = 2 s-1.
2.6.7
Fujisakiho intonační model
Blokové schéma Fujisakiho modelu je na obr 2.9. V tomto obrázku uvádím anglické termíny zavedené
Fujisakim. V textu budu používat jejich české ekvivalenty. Jelikož nikdo zatím tyto ekvivalenty nedefinoval,
budu používat následující termíny:
phrase command
accent command
phrase control mechanism
accent control mechanism
phrase component
accent component
- úsekový impuls
- přízvukový puls
- úsekový systém
- přízvukový systém
- úseková složka
- přízvuková složka
Fujisakiho kvantitativní intonační model vychází z dřívějších prací Öhmana [ÖHM67], ale byl Fujisakim a jeho
spolupracovníky podstatně rozšířen a propracován. Fujisaki sám se matematickým intonačním modelem zabývá
od šedesátých let. Fujisakiho model, který je definován vztahem
I
J
(
)
(
)
ln F0 ( t ) = ln Fb + ∑ Api G p ( t − T0i ) + ∑ Aa j ⎡Ga t − T1 j − Ga t − T2 j ⎤ ,
⎣
⎦
i =1
j =1
(2.3)
kde
2
⎪⎧α t exp ( −α t )
Gp ( t ) = ⎨
⎪⎩0
K pro t ≥ 0,
K pro t < 0,
(2.4)
27
⎧⎪min ⎡1 − (1 + β t ) exp ( − β t ) , γ ⎤
⎣
⎦
Ga ( t ) = ⎨
⎪⎩0
K pro t ≥ 0,
K pro t < 0.
(2.5)
modeluje průběh základního tónu v oblasti přirozeného logaritmu kmitočtu. Tento model byl původně navržen
pro japonštinu, ale v principu je použitelný i pro jiné jazyky. Fujisaki ověřil jeho funkčnost pro mnoho tónových
i netónových jazyků. Fujisakiho model generuje průběh základního tónu řeči v oblasti logaritmu kmitočtu
(log F). Průběh základního tónu řeči je zde získán jako lineární superpozice globální (úsekové) a lokální
(přízvukové) složky. Tyto složky tvoří výstupní signály dvou lineárních systémů druhého řádu, jejichž vstupy
tvoří dvě různé funkce: úsekové impulsy (phrase commands) a přízvukové pulsy (accent commands).
Matematicky je vztah těchto funkcí popsán rovnicí 2.3. O proměnných Ap, T0, α, Aa, T1, T2, β a Fb budu nadále
hovořit jako o Fujisakiho parametrech. Základní kmitočet Fb zde označuje asymptotickou, na mluvčím závislou,
hodnotu základního tónu F0, při absenci přízvukových pulsů. Úseková složka (phrase component) Gp(t) (viz
rovnice 2.4) označuje impulsní odezvu úsekového systému (phrase control mechanism). Vstupní signál tohoto
systému tvoří impulsy, které jsou definovány amplitudou Ap a časem T0 . Symbol α označuje koeficient časové
konstanty úsekového systému a během promluvy je konstantní. Charakteristika této složky je znázorněna na obr
2.10 pro hodnoty Ap rovnající se 0.1, 0.2, 0.3, 0.45 a 0.6 při konstantě α = 2.0 s-1. Z obrázku je patrné, že strmost
sestupné hrany úsekové složky, vytvářející úsekovou deklinaci základního tónu, se zvyšuje se zvyšující se
amplitudou úsekového impulsu Ap . Amplituda úsekového impulsu Ap také určuje počáteční hodnotu průběhu F0 ,
pokud není přítomen přízvukový puls.
Přízvuková složka (accent component) Ga(t) (viz rovnice 2.5) označuje odezvu přízvukového systému na
skok. Vstupním signálem tohoto systému jsou přízvukové pulsy definované jejich amplitudou Aa , počátkem T1
a koncem T2 . Koeficient β označuje časovou konstantu přízvukového systému a během promluvy se nemění
(podobně jako koeficient α). Na obrázku 2.11 můžeme pozorovat odezvu přízvukového systému na jednotkové
pulsy trvání T = 50, 100, 150, 200 a 250 ms při konstantě β = 20.0 s-1 . Můžeme vidět, že pro přízvukové pulsy
kratší než 150 ms nedosahuje přízvuková složka Fujisakiho prozodického modelu své plné velikosti (vzhledem
ke konečné velikosti konstanty β ). Z tohoto důvodu není v těchto případech ovlivnění základního tónu
amplitudou přízvukových pulsů Aa proporcionální.
Obr. 2.11 Odezva přízvukového systému Fujisakiho prozodického modelu na vstupní jednotkové pulsy trvání
-1
T = 50, 100, 150, 200 a 250 ms při β = 20 s .
28
Další obrázek (2.12) nám ukazuje odezvu přízvukového systému na přízvukové pulsy trvající 250 ms při
amplitudě Aa rovnající se 0.2, 0.4, 0.6, 0.8 a 1 ( β = 20.0 s-1 ). Mezní hodnota přízvukového systému γ (obvykle
nastavená na 0.9) zajišťuje, aby přízvuková složka dosáhla svého maxima v konečném čase. Protože sestupná
hrana přízvukové složky je modelována pomocí funkce inverzní k funkci modelující vzestupnou hranu, klesá
tato sestupná hrana strměji. To odpovídá pozorování, že klesající změny průběhu základního tónu jsou obvykle
rychlejší než stoupající (bez nutnosti měnit časovou konstantu systému).
Fujisaki popsal stanovení parametrů svého modelu metodou analýzy pomocí syntézy (v originále Analysis-
Obr. 2.12 Odezva přízvukového systému Fujisakiho prozodického modelu na vstupní pulsy o délce 250 ms
-1
a amplitudě Aa = 0.2, 0.4, 0.6, 0.8 a 1.0 při β = 20 s .
by-Synthesis). Základem této metody je měnit počet a parametry vstupních pulsů tak dlouho, až získáme co
možná nejpřesnější aproximaci průběhu základního tónu. Pro Fujisakiho prozodický model platí, že libovolným
počtem přízvukových pulsů a úsekových impulsů můžeme aproximovat jakýkoli průběh základního tónu
s libovolnou přesností. Z tohoto důvodu je nutné při této metodě zavést taková omezení, aby vypočtený model
byl z lingvistického hlediska co nejsmysluplnější. V novějších pracích (např. [MIX98][MIX00]) se objevují nové
přístupy umožňující automatické získávání parametrů Fujisakiho modelu z řečového signálu.
Použití intonačních modelů nám může zároveň podstatně zjednodušit proces generování průběhu základního
tónu syntetické řeči v řečovém syntezátoru, což je také jedním z cílů této práce. Např. při použití prozodických
pravidel není nutno generovat těmito pravidly přímo složitou konturu základního tónu řeči, ale postačí
generování výrazně jednoduššího buzení intonačního modelu pomocí jednoduššího systému pravidel.
2.7
Parametrická analýza signálů
Pro popis různých faktorů vyskytujících se v procesu tvorby či percepce řeči již bylo navrženo mnoho
různých modelů. S jistotou můžeme říci, že žádný navržený model není schopen popsat beze zbytku všechny
známé vlastnosti lidské řeči. Základní vlastností modelu je najít matematické vztahy použitelné pro popis
určitého fyzikálního stavu s maximální jednoduchostí a přesností. Mnoho základních modelů produkce řeči je
nepochybně založeno na principu zdroj signálu – filtr. Zdrojem signálu jsou zde buď hlasivky rozkmitané
proudem vzduchu (znělé buzení), nebo šum vznikající turbulencemi (neznělé buzení). Jeden z nejúspěšnějších
modelů v oblasti zpracování řeči je bezesporu Fantův model lineární produkce řeči publikovaný G. Fantem
29
v r. 1960 [FAN60], kde byla poprvé publikována parametrická metoda produkce řeči. Klíčovou publikací
shrnující dosavadní poznatky v oblasti lineární predikce signálů je [MAR76].
2.7.1
Parametrické modely signálů
Parametrické modely jsou založeny na myšlence nalezení vhodného modelu, který v určitém smyslu co
nejlépe aproximuje zvolenou charakteristiku signálu (např. spektrální hustotu). Pokud zúžíme problém
parametrických modelů tak, že hledání parametrického popisu signálu budeme považovat za úlohu nalezení
racionální lomené přenosové funkce číslicového filtru, pak úloha nalezení vhodného parametrického modelu
k signálu je ekvivalentní úloze aproximace naměřených dat racionální lomenou funkcí stupně M metodou
nejmenších čtverců. Ačkoli aproximaci metodou nejmenších čtverců použil Gauss již před více než dvěma sty
lety, zdá se, že první praktické použití této metody pro predikci signálů pochází od Wienera. První vědci, kteří
přímo aplikovali metodu lineární predikce pro analýzu a syntézu řeči, byli Saito a Itakura v r. 1966 [ITA69].
Předpokládejme, že signál vznikl průchodem budícího signálu, jehož spektrální hustota je konstantní (tj. bílý
šum nebo jednotkový impuls), přes lineární časově invariantní (LTI) filtr. Tento proces vzniku signálu budeme
označovat jako syntézu a příslušný filtr jako syntetizující filtr. Úkolem je určení koeficientů tohoto filtru ze
vzorků signálu. Koeficienty filtru parametrizují signál v tom smyslu, že kvadrát amplitudové frekvenční
charakteristiky filtru aproximuje skutečnou spektrální hustotu signálu. Parametrizací signálu dochází k redukci
počtu dat, neboť jednu konečnou realizaci signálu o N vzorcích nahradíme M parametry, přičemž musí být
splněna nerovnost 1 ≤ M ≤ N/2. Kritériem pro určení modelu je nejčastěji kvadratické kritérium [UHL95].
Chceme-li určit kmitočtovou charakteristiku syntetizujícího filtru, je nutné provést analýzu signálu.
Smyslem analýzy je provedení dekorelace signálu x(n) tak, aby informace o jeho korelační (spektrální) struktuře
zůstala uchycena v analyzujícím filtru. Kmitočtová charakteristika analyzujícího filtru je tedy inverzní ke
kmitočtové charakteristice syntetizujícího filtru, proto se analyzující filtr rovněž označuje jako inverzní filtr.
Jelikož provádí dekorelaci signálu (bělí jeho spektrální hustotu), nazývá se rovněž dekorelační (bělící) filtr
[UHL95].
Syntetizující filtr může mít tři typy přenosových funkcí H(z) (typy modelů). Jsou to ARMA model (polezero model), používající IIR filtr s póly i nulovými body, MA model (all-zero model), používající FIR filtr
obsahující nulové body a autoregresní (AR) model (all-pole model), používající IIR filtr s póly. Jedině
u autoregresního modelu je určení jeho parametrů lineární úloha, a proto je nejčastěji používaný, především
v analýze řeči i spektrální analýze. Všechny tři modely aproximují skutečné spektrum signálu pomocí kvadrátu
modulu frekvenční charakteristiky LTI filtru. Volbou řádu filtru (řádu modelu) volíme stupeň aproximace. Čím
nižší řád modelu, tím je kmitočtová charakteristika hladší a hůře modeluje skutečnou spektrální hustotu signálu.
Řád modelu souvisí i s počtem spektrálních špiček a údolí, které lze modelovat. Syntetizující filtr si lze
představit jako kaskádu rezonátorů, z nichž každý může modelovat jednu špičku. Proto modelem řádu M lze
modelovat nejvýše M/2 špiček (M/2 údolí). Důsledkem tohoto tvrzení je skutečnost, že AR model nemůže ve
spektrální hustotě zachytit periodicitu signálu.
2.7.2
Lineární predikce
Pro autoregresní modely lze úlohu identifikace parametrického modelu interpretovat jako úlohu aproximace
spektrální hustoty signálu metodou nejmenších čtverců polynomem stupně M. Tímto polynomem je určena
kmitočtová charakteristika inverzního filtru. Pomocí této interpretace lze rovněž vysvětlit, jak dochází k redukci
dat. Použijeme-li k výpočtu spektrální hustoty signálu DFT, získáme tolik čar, kolik je vzorků signálu (např. N)
[ČÍŽ81]. Po aproximaci snížíme počet parametrů na M < N. Např. pro analýzu řeči při vzorkování 8 kHz volíme
typicky N = 128 až 256 a M = 8 až 12.
M-tý řád lineární predikce vzorku x(n) vyžaduje lineární kombinaci M předchozích vzorků. Definujeme-li x̃
jako predikovaný (předpovídaný) vzorek, potom chyba predikce e(n) je určena rovnicí [MAR76]
e ( n ) = x ( n ) − x% ( n )
M
M
m =1
m=0
e(n) = x(n) + ∑ am x ( n − m ) = ∑ am x ( n − m ), a0 = 1, n = 0, 1, K , N + M − 1 ,
(3.1)
kde
M
(3.2)
x% ( n ) = −∑ am x ( n − m ) .
m =1
30
Výstupem inverzního filtru je chyba predikce e(n) určená rozdílem aktuální hodnoty vzorku x(n) a jeho
předpovědi x̃(n). Předpověď x̃(n) je dána lineární kombinací M minulých hodnot signálu x(n–m), m = 1, 2, …, M
(viz vztah 3.2). Inverzní (chybový) lineárně predikční filtr je znázorněn na obr. 2.13.
Obr. 2.13 Inverzní (chybový) lineárně predikční filtr.
Poznámka: Volba znaménka v rovnicích 3.1 a 3.2 ovlivňuje znaménka ve všech souvisejících vztazích, a proto je
nutné dávat pozor na formulaci rovnice, která definuje chybu predikce, a nelze mechanicky přebírat algoritmy
uváděné v literatuře. Chyba predikce bývá rovněž definována vztahem
M
e(n) = x (n) − x% ( n ) = x ( n ) − ∑ am x ( n − m ), n = 0, 1, K , N + M − 1.
(3.3)
m =1
Lineárně predikční filtr pro syntézu signálu pomocí AR modelu je zobrazen na obr. 2.14.
Obr. 2.14 Filtr pro syntézu pomocí lineární predikce.
2.7.3
Metody řešení normálních rovnic predikce
Autokorelační metoda se používá téměř výhradně při analýze řeči především díky přijatelné výpočetní
náročnosti a stabilitě. Tato metoda při výpočtu korelace používá všechna dostupná data. Proto jsou autokorelační
koeficienty pro větší zpoždění určovány z méně součinů. To způsobuje růst chyby odhadu a má závažné
důsledky pro spektrální vlastnosti autokorelační metody, které lze vysvětlit následujícím způsobem. Tvrzení, že
s rostoucím zpožděním klesá počet sčítaných součinů, je ekvivalentní tvrzení, že autokorelační metoda při
výpočtu korelačních koeficientů „naráží“ na okraje dostupných dat a nemůže sahat „vně“. To znamená, že
autokorelační metoda používá časové okno, kterým váhuje data. Tím je zároveň řečeno, že data vně intervalu
(x(0), …, x(N–1)) jsou nulová. Proto při aplikaci této metody pro spektrální analýzu musíme počítat s tím, že
výsledný odhad spektrální hustoty je dán konvolucí skutečné spektrální hustoty a kvadrátu modulu kmitočtového
okna. To má za následek ztrátu detailů (rozlišení) a vznik systematické chyby – „rozmazávání spektra“.
Typickým představitelem této metody je Lewinson-Durbinův algoritmus založený na Lewinsonově rekursi, která
váže koeficienty filtrů různých řádů.
Kovarianční metoda se používá pro spektrální analýzu, protože poskytuje větší frekvenční rozlišení. Pro
analýzu řeči se téměř nepoužívá, neboť pro větší počet vzorků signálu (N ≈ 100) poskytuje výsledky shodné
s autokorelační metodou, vyžaduje více výpočetních operací a pro řečové signály není tak stabilní jako
autokorelační metoda.
31
2.7.4
Modelování řečového signálu pomocí lineární predikce
Lineární model řeči se poprvé objevil ve Fantově práci [FAN60]. Z fonologického hlediska se řeč zkládá
z hlásek, které jsou obecně dvojího typu – znělé a neznělé. Znělé hlásky vznikají buzením lidského vokálního
traktu tlakovými impulsy vzduchu proudícího hlasivkami, zatímco neznělé hlásky jsou vytvářeny vzduchovými
turbulencemi uvnitř vokálního traktu, viz obr. 2.1. Lineární model řeči nahrazuje hlasivky zdrojem periodického
signálu pro znělé hlásky a zdrojem bílého šumu pro neznělé hlásky. Hlasový trakt je pak nahrazen časově
proměnným číslicovým filtrem. Lineární model tvorby řeči můžeme vidět na obr. 2.5.
32
3 Cíle práce
Vzhledem k výsledkům provedeného zhodnocení současného stavu problematiky v oblasti modelování
prozodie řečového signálu jsem si stanovil následující cíle práce:
●
realizovat LPC kodér a dekodér průběhu základního tónu řeči a ověřit jeho funkčnost,
●
zkoumat vliv aproximace zbytkového signálu lineární predikce na výslednou kvalitu řeči, optimalizovat
parametry LPC kodéru a dekodéru průběhu základního tónu řeči s ohledem na minimální složitost a
maximální kvalitu řeči,
●
zkoumat prozodicky relevantní závislosti zbytkového signálu lineární predikce průběhu základního tónu
řeči,
●
ověřit možnost využití LPC analýzy průběhu základního tónu řeči pro tvorbu nových prozodických pravidel,
●
ověřit možnost automatické generace zbytkového signálu lineární predikce z psaného textu za účelem
použití LPC modelování při automatické syntéze z psaného textu.
33
34
Část II
Praktická část
35
36
4 Lineární predikce průběhu základního tónu řeči
Pro analýzu prozodických průběhů pomocí lineární predikce je nutné, aby tyto průběhy byly spojité nebo
aby se s nimi jako se spojitými mohlo pracovat. Jak již bylo řečeno, skládá se prozodie řeči z melodie (průběhu
základního tónu), průběhu intenzity a časového členění. Z percepčního hlediska je nejdůležitějším prozodickým
parametrem melodie, která se rovněž nejsnáze modeluje. Absolutní hodnota základního tónu se dá přesně odečíst
z řečového signálu, a naopak při syntéze je řečový signál generován s patřičnou absolutní okamžitou hodnotou
základního tónu.
Okamžitá hodnota energie řeči (intenzity) je závislá na právě vyslovované hlásce a na pozici v rámci této
hlásky (např. exploze u eploziv se vyznačuje značným nárůstem energie). Prozodicky zajímavá je jen hodnota
intenzity řeči relativně vztažená k nějaké standardní hodnotě intenzity, udávající, o kolik procent či decibelů se
v daném úseku intenzita řeči liší od standardní hodnoty intenzity. Tyto relativní hodnoty intenzity řečového
signálu však nelze získat přímo z přirozeného signálu, je nutné je získat porovnáváním intenzity přirozeného
signálu s intenzitou jakéhosi standardního signálu nebo pomocí syntezátoru řeči, u kterého měníme prozodické
parametry tak dlouho, až je výsledný průběh syntetické řeči totožný s porovnávaným vzorkem (tzv. metoda
analýzy pomocí syntézy)
Stejný problém jako u intenzity se objevuje i časového členění s tím rozdílem, že informace o absolutní
délce jednotlivých suprasegmentálních úseků určená z přirozeného řečového signálu a vyjádřená v časových
jednotkách (obvykle v milisekundách) je prozodicky zajímavá, ale pro další zpracování nevhodná. Posloupnost
hodnot absolutního trvání řečových jednotek je jednak nespojitá a jednak neekvidistantní. K získání spojitého
průběhu nesoucího informaci o časovém členění je nutné ekvidistantně porovnávat přirozený signál s jakýmsi
řečovým signálem se standardním časovým členěním, anebo použít výše zmiňovanou metodu analýzy pomocí
syntézy.
Jelikož má význam určovat hodnotu základního tónu pouze u znělých úseků řeči, je průběh základního tónu
nespojitá veličina. Pro LPC analýzu tohoto průběhu je nutné stanovit hodnoty tohoto průběhu i v neznělých
částech signálu tak, aby průběh základního tónu řeči byl spojitý.
Na základě získaných poznatků o lineárně prediktivním kódování a o modelování prozodie řečového signálu
byl realizován LPC analyzátor průběhu základního tónu řečového signálu, jehož struktura a činnost bude
popsána v této kapitole.
4.1
Návrh LPC analyzátoru základního tónu řeči
Průběh základního tónu řeči získáme pomocí detektoru základního tónu (pitchdetektoru), na jehož vstup
přivedeme řečový signál. Pokud bude krok pitchdetekce 8 ms, vzorkovací kmitočet detektoru základního tónu
bude 125 Hz, a tudíž budou v tomto průběhu obsaženy změny základního tónu do kmitočtu cca 60 Hz.
Z percepčního hlediska je tato informace značně redundantní, neboť melodie, jako suprasegmentální jev, se
projevuje od úrovně slabik výše. Z toho vyplývá, že dostatečná šířka pásma pro průběh základního tónu je cca
5 Hz, což je přibližně jedna desetina oproti signálu na výstupu pitchdetektoru. Jak již bylo řečeno, je průběh
základního tónu řeči nespojitý signál. Pro získání spojitého průběhu základního tónu se šířkou pásma cca 5 Hz je
třeba nejprve aproximovat neznělé úseky signálu, poté omezit dolní propustí jeho spektrální složení potlačením
všech složek nad 5 Hz a nakonec provést decimaci signálu v poměru 1:10.
Pro filtraci aproximovaného průběhu základního tónu byl navržen pomocí nástroje „sptool“ v prostředí
MATLAB Čebyševův filtr 2. typu s propustným pásmem do 5 Hz, ve kterém je útlum maximálně 3 dB,
a s potlačeným pásmem nad 6 Hz s útlumem minimálně 35 dB. Kmitočtová charakteristika je na obr. 4.1a, její
detail je pak na obr. 4.1b. Impulsní charakteristiky jsou pak znázorněny na obr. 4.1c a 4.1d. Zpoždění filtru činí
13 vzorků. Filtr byl realizován nejprve v jazyce Matlab a následně implementován v jazyce C (viz program
filtc). Výpočet filtru v prostředí Matlab je uveden v tabulce 4.1.
Tab 4.1 Výpočet decimačního filtru v prostředí Matlab
Fs=125;
Wp=5;
Ws=6;
Rp=3;
Rs=35;
[n,wn]=cheb2ord(Wp*2/Fs,Ws*2/Fs,Rp,Rs)
[b,a]=cheby2(n,35,wn);
37
Obr. 4.1 Charakteristiky filtru pro decimaci průběhu základního tónu řeči.
38
Obr. 4.2 Ukázka interpolace průběhu základního tónu řeči.
Pro definování průběhu základního tónu v neznělých oblastech (tj. tam, kde je výstup z detektoru základního
tónu nulový) se používá lineární interpolace, což je vyhovující vzhledem k následné filtraci a decimaci.
V neznělé části na začátku signálu je jako F0 dosazena konstantně první nenulová hodnota z výstupu
pitchdetektoru a obdobně v neznělé části na konci signálu je dosazována konstantně poslední nenulová hodnota
z výstupu pitchdetektoru. V neznělých částech uprostřed signálu je hodnota F0 lineárně interpolována mezi
poslední nenulovou hodnotou z výstupu pitchdetektoru před začátkem neznělého úseku a první nenulovou
hodnotou po skončení neznělého úseku. Po interpolaci neznělých úseků jsou ještě odstraněny chyby
pitchdetektoru a signál je vyhlazen průměrujícím FIR filtrem o délce 5. Výpisy funkcí f0interp, f0remerr
a f0smooth provádějící lineární interpolaci, odstraňování chyb a vyhlazování průběhu základního tónu řeči jsou
uvedeny v příloze. Ukázka interpolace průběhu základního tónu včetně aplikace odstraňování chyb a vyhlazování je uvedena na obr. 4.2.
Obr. 4.3 Ukázka filtrace interpolovaného průběhu základního tónu řeči.
39
Obr. 4.4 a) Ukázka decimace průběhu základního tónu řeči,
b) Vypočtený zbytkový signál včetně vypočtených koeficientů filtru.
Před decimací signálu a vlastní lineárně predikční analýzou decimovaného signálu je nutné ještě ze signálu
odstranit nebo podstatně omezit stejnosměrnou složku. Z výpočetního hlediska je výhodné, odečteme-li od
průběhu základního tónu namísto stejnosměrné složky první nenulovou hodnotu z výstupu pitchdetektoru.
Ukázky filtrace interpolovaného průběhu základního tónu řeči a minimalizace stejnosměrné složky tohoto
průběhu jsou znázorněny na obr. 4.3.
Pro následný výpočet LPC koeficientů je použita autokorelační metoda. Vypočtené LPC koeficienty jsou
pak s pomocí inverzního filtru použity pro výpočet zbytkového signálu lineární predikce. Ukázku decimace
filtrovaného signálu bez stejnosměrné složky můžeme vidět na obr. 4.4a. zbytkový signál lineárního prediktoru
získaný analýzou průběhu z obr. 4.4a můžeme vidět na obr. 4.4b.
Obr. 4.5 a) Blokové schéma LPC analyzátoru.
b) Blokové schéma vlastního bloku LPC analýzy z obr. 4.5a.
40
Na obr. 4.5a vidíme celé funkční blokové schéma LPC analyzátoru řeči obsahující detektor základního tónu,
blok interpolace a odečtení stejnosměrné složky, decimační filtr, decimátor a nakonec vlastní blok LPC analýzy.
Vstupem popisovaného analyzátoru je řečový signál, výstupem pak zbytkový signál lineární predikce, lineárně
predikční koeficienty a stejnosměrná složka průběhu základního tónu. Podrobnou strukturu bloku LPC analýzy
vidíme na obr. 4.5b. Vstupem tohoto bloku je decimovaný spojitý průběh základního tónu, ze kterého jsou
pomocí autokorelace vypočteny autokorelační koeficienty r (program aukor je uveden v příloze). Z těchto
koeficientů jsou pomocí Leroux-Guegenova algoritmu, uvedeném v [LER77], vypočteny koeficienty odrazu rc ,
které jsou pomocí transformační funkce lpt42 (popsané v [MAR76] str. 229–233) převedeny na koeficienty
filtru a, tvořící zároveň výstup bloku LPC analýzy. Z těchto koeficientů a ze vstupního decimovaného průběhu
základního tónu je pomocí inverzní filtrace vypočten zbytkový signál lineární predikce tvořící druhý výstupní
signál bloku LPC analýzy. Schéma inverzního filtru pro výpočet zbytkového signálu lineární predikce je
uvedeno na obr. 4.6.
Obr. 4.6 Blokové schéma inverzního filtru.
Celý analyzátor byl pro účely ověření popisované metody naprogramován v jazyce Matlab a následně byl
realizován v jazyce C v prostředí Matlab i v systému SpeechStudio. Výpis kódu LPC analyzátoru zapsaný pro
prostředí Matlab jako funkce lpan1 je uveden v příloze. Jednou z nejdůležitějších součastí popisovaného LP
analyzátoru je detektor základního tónu řeči. Všechny chyby na jeho výstupu se významnou měrou podílejí na
zkreslení získaných výsledků. Popisem použité metody detekce základního tónu se podrobně zabývá následující
podkapitola.
4.2
Použité metody detekce průběhu základního tónu řeči
Jak již bylo řečeno, hraje detektor základního tónu klíčovou roli při LPC analýze průběhu základního tónu.
V literatuře bývají zmiňovány detektory základního tónu pracující přímo s řečovým signálem nebo používající
jeho spektrální obraz. Nejdůležitějším zástupcem první skupiny je autokorelační metoda, do druhé skupiny pak
patří detekce základního tónu využívající periodicitu zbytkového (chybového) signálu lineární predikce
[MAR76], využívající periodicitu kepstra [PRI97] nebo detekující harmonické kmitočty základního tónu
korelací spektra [SCH95].
Po dlouhodobých experimentech s různými detektory základního tónu jsem se rozhodl pro potřeby analýzy,
která neprobíhá v reálném čase, používat automatické označování pitchpulsů v řečovém signálu s možností
manuální korekce. Výsledný průběh základního tónu je pak přepočítán přímo z poloh jednotlivých pitchpulsů
a může být případně konfrontován s výstupem autokorelačního pitchdetektoru.
4.2.1
Detekce základního tónu řeči autokorelační metodou
Bezesporu nejčastěji užívanou metodou k detekování základního tónu je metoda autokorelace řečového
signálu, která existuje v nejrůznějších variantách, a to i jako součást hybridních systémů. Tato metoda je
založena na hledání korelačních maxim, z nichž jsou vybráni „kandidáti“ na možnou hodnotu základního tónu.
Z těchto kandidátů je následně za pomoci určitých podmínek vybrán „vítěz“, případně je daný úsek signálu
prohlášen za neznělý. Tato metoda je podrobně popsána v [RAB78] str. 141 až 158.
Pro účely detekce základního tónu byla tato metoda implementována v prostředí Matlab i v jazyce C
v programu pitchn, jenž je uveden v příloze.
4.2.2
Detekce pitchpulsů v řečovém signálu s označením znělosti
Máme-li namluvenou řečovou databázi, u které opakovaně vyvstává potřeba určení průběhu základního
tónu, je výhodné určovat základní tón řeči pomocí označených pitchpulsů a znělých úseků v této databázi.
41
K tomuto účelu je vhodný algoritmus automatického označování pitchpulsů a znělých úseků s možností ruční
korekce. Robustní algoritmus pro označování pitchpulsů je uveden např. v [GON98]. Pro účely této práce byl
navržen algoritmus automatického určování pitchpulsů využívající analýzu průběhů krátkodobé energie signálu
a počtu průchodů nulou. Této informace se využívá také k určení znělosti signálu. Algoritmus automatického
označování pitchpulsů byl následně doplněn o algoritmus umožňující lineárně interpolovat pitchpulsy
v neznělých oblastech signálu, což je důležité pro získání spojitého průběhu základního tónu (i když
z fonetického hlediska jsou pitchpulsy v neznělých oblastech nesmyslné). Popisovaný algoritmus automatického
označování pitchpulsů umožňuje zvolit zda chceme vkládat kladné či záporné pitchpulsy, neboť (v závislosti na
mluvčím a použité nahrávací aparatuře) mohou být v nahrávce pitchpulsy orientovány kladně i záporně. Tento
problém jde samozřejmě řešit i změnou polarity řečového signálu. Algoritmus pro označování pitchpulsů
a znělých úseků byl odladěn v prostředí Matlab (bez možnosti korekce určených pitchpulsů) a poté byl přenesen
do systému SpeechStudio umožňující manuální korekci pitchpulsů i znělých úseků včetně jejich exportu do
prostředí Matlab.
4.3
Návrh LPC syntezátoru základního tónu řeči
V podkapitole 4.1 byl popsán návrh lineárně prediktivního analyzátoru průběhu základního tónu řeči, jehož
výstupem byl parametrický popis tohoto signálu. Tento analyzátor tvoří první část komplexního systému a má
svůj logický protějšek v lineárně prediktivním syntezátoru průběhu základního tónu řeči. Vzájemným
propojením obou funkčních celků vznikne tzv. kodér/dekodér základního tónu řeči založený na metodě lineární
predikce, který umožňuje provést posouzení vhodnosti použití lineární predikce pro modelování základního tónu
řeči.
Průběh základního tónu řeči získáme použitím rekonstrukčního LPC filtru, který budíme zbytkovým
signálem lineární predikce získaným pomocí analýzy popsané v článku 4.1. Parametry filtru tvoří 4 LPC
koeficienty získané rovněž pomocí analýzy popsané v článku 4.1. Struktura rekonstrukčního filtru je znázorněna
na obr. 4.7.
Obr. 4.7 Struktura rekonstrukčního filtru syntezátoru základního tónu řeči.
Na výstupu rekonstrukčního filtru získáme spojitý signál základního tónu řeči o vzorkovacím kmitočtu
12,5 Hz. Pro resyntézu řeči potřebujeme mít opět průběh základního tónu řeči s původními parametry, tj. se
vzorkovacím kmitočtem 125 Hz včetně informace o znělosti (nulová hodnota základního tónu v neznělých
úsecích). Toho dosáhneme desetinásobným převzorkováním a následnou filtrací. Pro filtraci je použit stejný filtr
jako při analýze (viz článek 4.1). Následně je přičtena hodnota minimalizující stejnosměrnou složku (viz článek
4.1) a přidána informace o znělosti. Nulové hodnoty jsou vloženy tam, kde se nacházejí v původním signálu na
výstupu pitchdetektoru (tj. v neznělých oblastech signálu). Blokové schéma LPC syntezátoru základního tónu
řeči je uvedeno na následujícím obrázku. Signál základního tónu řeči po resyntéze a převzorkování a po následné
filtraci je vyobrazen na obr. 4.9. Ukázka průběhu základního tónu řeči na výstupu z LPC syntezátoru
v porovnání s původním průběhem je na obr. 4.10.
Obr. 4.8 Blokové schéma LPC syntezátoru základního tónu řeči.
Syntezátor byl rovněž pro účely ověření metody nejprve realizován v jazyce Matlab a následně
implementován v jazyce C. Výpis kódu LPC syntezátoru zapsaný pro prostředí Matlab jako funkce lpsyn1 je
uveden v příloze. Ve spojení s analyzátorem popsaným v předchozí kapitole tvoří kodér/dekodér průběhu
42
Obr. 4.9 a) Signál průběhu základního tónu řeči po LPC resyntéze a interpolaci,
b) Budící signál rekonstrukčního filtru včetně 4 LPC koeficientů.
základního tónu řeči. Tento kodér/dekodér byl začleněn do LPC vokodéru pro ověření funkčnosti kódování
průběhu základního tónu. Vypočtené výsledky i poslechové testy ukazují, že šířka kanálu pro přenos základního
tónu (4 LPC koeficienty a zbytkový signál lineární predikce) je dostatečná pro věrnou reprodukci prozodie.
V dalších podkapitolách se budu zabývat informačním obsahem zbytkového signálu lineární predikce
a možnostmi jeho aproximace.
4.4
Ověření funkčnosti LPC kodéru/dekodéru průběhu základního tónu
Pro praktické ověření je nutné propojit analyzátor a syntezátor průběhu základního tónu z předchozích
podkapitol a včlenit je do řečového vokodéru. Blokové schéma vzniklého systému pro LPC vokodér pracující se
vzorkovacím kmitočtem 8 kHz je uvedeno na obr. 4.11. Tento LPC vokodér s LPC kodérem-dekodérem
základního tónu byl realizován v prostředí Matlab jako program f0lpkodek a byl otestován na větách
z prozodického korpusu vytvořeného pro účely této práce (viz článek 6.1 a příloha A). Poslechově byla prozodie
Obr. 4.10 Ukázka průběhu základního tónu řeči po resyntéze metodou lineární predikce.
43
Obr. 4.11 Blokové schéma řečového LPC vokodéru s LPC analýzou / syntézou průběhu základního tónu.
u všech 288 vět z korpusu téměř nerozeznatelná od originální prozodie, což ukázalo, že použitá metoda je
k modelování prozodie vhodná. Další výzkum byl zaměřen na možnosti co největšího zjednodušení zbytkového
signálu lineární predikce při poslechově přijatelné prozodii na výstupu vokodéru.
44
5 Vlastnosti zbytkového signálu lineární predikce
5.1
Aproximace zbytkového signálu lineární predikce
Z prozodického hlediska je informační obsah zbytkového signálu lineární predikce stále značně redundantní,
a proto je vhodné jej dále co nejvíce zjednodušit při zachování prozodicky důležité informace. Jako
nejjednodušší se jeví možnost aproximace zbytkového signálu lineární predikce obdélníkovým signálem.
Zvláštním případem aproximace obdélníkovým signálem je pak aproximace jednotlivými impulsy.
Pro posouzení možnosti buzení rekonstrukčního filtru obdélníkovým či impulsovým signálem je dobré znát
odezvu rekonstrukčního filtru na jednotkový skok a na jednotkový impuls. Pro tyto účely byly ze souborů vět od
mluvčího „Machač“ (2x 72 vět – Machač1 a Machač2) vypočteny průměrné hodnoty lineárně predikčních
koeficientů. Statistické vyhodnocení vypočtených hodnot je uvedeno v tabulce 5.1 (řád lineární predikce je 4,
vzorkovací kmitočet průběhu základního tónu je 125 Hz a decimační poměr je 1:10). Na obrázku 5.1 je pak
statistické vyhodnocení vypočtených koeficientů znázorněno graficky.
Tab. 5.1 Statistické vyhodnocení LP koeficientů 144 vět ze souboru „Machač1“ a „Machač2“
koeficient
průměr
a1
a2
a3
a4
-1,23761
0,60009
-0,32046
0,10699
směrodatná
odchylka
0,15542
0,24162
0,18243
0,10326
střední
chyba
0,01295
0,02014
0,01520
0,00860
minimum
maximum
rozsah
-1,65578
0,20307
-0,78066
-0,11667
-0,86500
1,21729
0,19665
0,42493
0,79078
1,01422
0,97731
0,54160
Hodnoty vypočtených koeficientů byly následně použity jako parametry rekonstrukčního filtru z obr. 4.8,
který byl nejprve buzen jednotkovým skokem a následně jednotkovým impulsem. Výsledné průběhy vypočtené
v prostředí Matlab programem lpsyn1 můžeme vidět na obrázku 5.2.
Z průběhů na obrázku 5.2 je patrné, že vhodným obdélníkovým či impulsním buzením je teoreticky možné
modelovat poměrně přesně průběh základního tónu. Jako vhodná informace pro generování budících pulsů
z hlediska syntézy řeči se zdá být informace o hranicích suprasegmentálních celků (slabik, přízvukových taktů či
LP coefficients statistic - speaker Machac - 144 sentences
2
Coeff. value
1
0
-1
-2
a1
a2
a3
a4
LP coefficients
Obr. 5.1 Statistické vyhodnocení LP koeficientů 144 vět ze souboru „Machač1“ a „Machač2“.
intonačních úseků) spolu s informací o jejich délce a postavení ve větě. Z odezvy na jednotkový skok vyplývá,
že časová konstanta rekonstrukčního filtru se pohybuje v oblasti řádově stovek milisekund. Popisovaným
způsobem tedy můžeme velice dobře modelovat intonační konturu na úrovni slabik a přízvukových taktů,
úsekovou složku je pak nutno modelovat jiným způsobem. Jelikož úseková složka má většinou především
deklinační funkci, je možné řešit úsekovou složku samostatnými pravidly udávajícími sklon deklinační křivky.
45
LP Coefficient a1
0,4
0,2
0,0
-0,2
-0,4
-0,6
-0,8
-1,0
-1,2
-1,4
-1,6
-1,8
-2,0
Coefficient a2
Coefficient a1
Obr. 5.2 Odezva rekonstrukčního filtru na jednotkový skok a jednotkový impuls (LP koeficienty ze souboru
vět „machač1“ a „machač2“).
jana
machac1
machac2
2,0
1,8
1,6
1,4
1,2
1,0
0,8
0,6
0,4
0,2
0,0
-0,2
-0,4
zaruba
LP Coefficient a2
jana
LP Coefficient a3
1,4
1,2
1,0
0,8
0,6
0,4
0,2
0,0
-0,2
-0,4
-0,6
-0,8
-1,0
jana
machac1
machac2
machac1
machac2
zaruba
Speaker
Coefficient a4
Coefficient a3
Speaker
LP Coefficient a4
1,4
1,2
1,0
0,8
0,6
0,4
0,2
0,0
-0,2
-0,4
-0,6
-0,8
-1,0
zaruba
jana
Speaker
machac1
machac2
zaruba
Speaker
Obr. 5.3 Statistická analýza lineárně predikčních koeficientů pro jednotlivé mluvčí.
V první fázi zatím nebudu s hranicemi suprasegmentálií pracovat a omezím se na generování budících pulsů
přímo z průběhu zbytkového signálu.
46
5.1.1
Aproximace zbytkového signálu obdélníkovým signálem
Pro snížení informační redundance zbytkového kanálu lineárního prediktoru budeme zbytkový signál
aproximovat obdélníkovými pulsy o délce w se zvolenou prahovou hodnotou ε. Pro jednoduchost rozdělíme
zbytkový signál na úseky o délce w , ve kterých bude hodnota nastavena na průměrnou hodnotu zbytkového
signálu v daném úseku tehdy, bude-li tato průměrná hodnota větší než zvolená prahová úroveň ε. V opačném
případě bude hodnota nastavena na nulu. Potom tedy i-tou aproximovanou hodnotu yi j-tého vzorku zbytkového
signálu ej určíme pomocí následujícího vztahu:
k + w −1
⎧ k + w−1
ej
∑
⎪ ∑ ej
j =k
j =k
⎪
>ε
; pro
⎪ w
⎛i ⎞
w
yi = ⎨
k = w ⋅ floor ⎜ ⎟ ,
k + w −1
⎝ w⎠
⎪
ej
∑
⎪
j =k
≤ε
pro
⎪0;
w
⎩
kde ej . . . j-tá hodnota zbytkového signálu lineárního prediktoru,
yi . . . i-tá hodnota aproximovaného zbytkového signálu lineárního prediktoru,
w . . . šířka aproximačního okna ve vzorcích,
k . . . počáteční index aproximačního okna pro i-tou hodnotu zbytkového signálu,
ε . . . prahová úroveň aproximace,
a funkce y = floor(x) do proměnné y dosadí oříznutou celočíselnou část proměnné x.
(5.1)
Z hlediska hodnocení výsledného průběhu základního tónu je vhodné definovat chybu popisující rozdíl mezi
původním průběhem základního tónu analyzované promluvy a průběhem základního tónu získaného pomocí
lineárně predikční analýzy a syntézy. Tuto chybu má smysl počítat pouze ve znělých oblastech řečového signálu,
neboť v neznělých úsecích je hodnota základního tónu řeči rovna nule. Jako vhodná chybová veličina se pro
tento účel jeví střední kvadratická chyba, která je dána vztahem:
MSE =
1
V
n −1
∑ ( F%
i =0
0i
− F0i
)
2
,
(5.2)
kde F0i . . . hodnota základního tónu i-tého rámce analyzované promluvy na výstupu pitchdetektoru,
F̃0i . . . hodnota základního tónu i-tého rámce po resyntéze pomocí lineární predikce,
n . . . počet hodnot průběhu základního tónu řeči (počet rámců promluvy),
V . . . počet nenulových hodnot základního tónu řeči v promluvě (počet znělých rámců),
MSE . . . střední kvadratická chyba průběhu základního tónu po resyntéze pomocí lineární predikce.
Aproximaci zbytkového signálu lineárního prediktoru společně s odpovídajícím průběhem základního tónu
pro větu „o1d3a“ od mluvčího „Machač“ můžeme vidět na obr. 5.4 a 5.5. Na obr. 5.4 jsou zobrazeny
aproximované průběhy zbytkového signálu pro šířky aproximačního okna w = 1, 2, 3 při prahové úrovni aproximace ε = 4 a na obr. 5.5 jsou pak zobrazeny aproximované průběhy zbytkového signálu pro šířky aproximačního
okna w = 4, 5, 6 rovněž při prahové úrovni aproximace ε = 4. Ekvivalent obrázků 5.4 a 5.5, ale pro větu „d3k3a“
od mluvčího „Machač“, představují obrázky 5.6 a 5.7. Na obr. 5.8 jsou zobrazeny aproximované průběhy
zbytkového signálu věty „d3k3a“ od mluvčího „Machač“ pro prahové úrovně aproximace ε = 1, 2, 3 při šířce
aproximačního okna w = 2 a na obr. 5.9 jsou zobrazeny aproximované průběhy zbytkového signálu pro prahové
úrovně aproximace ε = 2, 4, 8 rovněž při šířce aproximačního okna w = 2. V pravém horním rohu každého
obrázku jsou uvedeny příslušné hodnoty střední kvadratické chyby pro jednotlivé intonační průběhy.
Z obrázků 5.4 až 5.7 vyplývá, že při šířce aproximačního okna větší než 3 vzorky nastává již velké zkreslení
výstupního průběhu základního tónu, což je dobře patrné rovněž na velikosti střední kvadratické chyby průběhu
základního tónu po resyntéze pomocí lineární predikce. Z obrázků 5.8 a 5.9 je zřejmé, že do hodnoty prahové
úrovně aproximace ε = 5 je střední kvadratická chyba v přijatelných mezích (menší než 150) a rovněž zkreslení
výstupního průběhu základního tónu je subjektivně přijatelné. Poslechovými experimenty, které se poměrně
dobře shodují s velikostí střední kvadratické chyby definované vztahem 5.2, byly pro popisovanou metodu
aproximace zbytkového signálu lineárního prediktoru stanoveny jako optimální hodnoty aproximačních
parametrů w = 2 a ε = 4. Pro hodnotu šířky aproximačního okna w = 1 jsou sice průměrné hodnoty střední
kvadratické chyby ještě lepší, ale úroveň snížení redundance zbytkového signálu je zde nízká, neboť
aproximovaný zbytkový signál v podstatě kopíruje původní zbytkový signál (viz obr. 5.4 a 5.6). Při šířce
aproximačního okna w = 1 se jedná o aproximaci zbytkového signálu impulsy a budu se jí zabývat v následujícím
odstavci. Analýza střední kvadratické pro dvě věty ze souboru „Machač1“ je uvedena ve dvou následujících
47
tabulkách (tabulka 5.2a pro větu „o1d3a“ a tabulka 5.2b pro větu „d3k3a“). Pro každou větu zde byla určena
střední kvadratická chyba průběhu základního tónu po resyntéze pomocí lineární predikce pro čtyři různé šířky
aproximačního okna w = 1, 2, 3, 4 při čtyřech různých hodnotách prahové úrovně aproximace ε = 2, 4, 6 a 8 (čili
pro každou větu šestnáct různých hodnot střední kvadratické chyby).
Tab. 5.2 Analýza střední kvadratické chyby pro věty o1d3a (a) a d3k3a (b) od mluvčího Machač
MSE
Machač
o1d3a
b)
šířka aproximačního okna w
1
2
3
4
2
84,9
112,6
178,5
155,5
4
84,8
122,2
165,9
173,8
6
92,5
146,5
216,5
154,7
8
103,6
165,3
263,6
207,1
MSE
Machač
d3k3a
prahová
úroveň
aproximace ε
prahová
úroveň
aproximace ε
a)
šířka aproximačního okna w
1
2
3
4
2
69,0
60,1
106,4
226
4
66,3
62,7
102,6
288
6
82,5
100,5
283,5
328,2
8
81,9
106,1
283,5
527,9
Aproximace zbytkového signálu obdélníkovým signálem byla otestována také statistickým vyhodnocením
hodnot střední kvadratické chyby pro všech 288 vět z prozodické databáze (viz příloha A). Výsledky této
statistické analýzy jsou uvedeny ve čtyřech tabulkách pro jednotlivé soubory 72 vět. Statistika střední
kvadratické chyby průběhu základního tónu po resyntéze pomocí lineární predikce pro soubor vět „Machač1“ je
uvedena v tabulce 5.3, pro soubor vět „Machač2“ v tabulce 5.4, pro soubor vět „Záruba“ v tabulce 5.5 a pro
soubor vět „Jana“ v tabulce 5.6. Pro každý soubor vět zde byl určen aritmetický průměr středních kvadratických
chyb průběhů základního tónu po resyntéze pomocí lineární predikce všech 72 vět pro čtyři různé šířky
aproximačního okna w = 1, 2, 3, 4 při čtyřech různých hodnotách prahové úrovně aproximace ε = 2, 4, 6 a 8. Dále
jsou zde uvedeny pro každý aritmetický průměr středních kvadratických chyb směrodatná odchylka, střední
chyba a minimální a maximální hodnota střední kvadratické chyby pro daný soubor vět a příslušné hodnoty
aproximačních parametrů.
Tab. 5.3 Statistika středních kvadratických chyb pro 72 vět souboru Machač1
šířka
aproximačního
okna w
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
prahová
úroveň
aproximace ε
2
2
2
2
4
4
4
4
6
6
6
6
8
8
8
8
aritmetický
průměr
směrodatná
odchylka
střední
chyba
minimum
maximum
93,2
105,6
147,1
196,9
98,4
128,8
182,0
259,4
107,6
176,4
248,7
331,1
124,2
209,6
312,8
453,6
29,0
29,1
45,3
89,2
30,3
35,6
61,4
122,4
29,4
64,6
91,4
189,2
31,1
66,5
145,7
288,7
3,4
3,4
5,3
10,5
3,6
4,2
7,2
14,4
3,5
7,6
10,8
22,3
3,7
7,8
17,2
34,0
40,3
51,3
73,5
87,3
45,3
58,0
88,1
99,0
61,0
77,6
111,9
142,8
61,6
97,2
111,9
163,6
183,5
182,6
253,4
623,5
177,4
234,2
373,7
749,5
219,0
452,3
637,7
1249,3
197,9
382,7
982,2
2209,9
48
Obr. 5.4 Aproximace zbytkového signálu lineárního prediktoru pro větu o1d3a, w = 1, 2, 3; ε = 4.
Obr. 5.5 Aproximace zbytkového signálu lineárního prediktoru pro větu o1d3a, w = 4, 5, 6; ε = 4.
49
Obr. 5.6 Aproximace zbytkového signálu lineárního prediktoru pro větu d3k3a, w = 1, 2, 3; ε = 4.
Obr. 5.7 Aproximace zbytkového signálu lineárního prediktoru pro větu d3k3a, w = 4, 5, 6; ε = 4.
50
Obr. 5.8 Aproximace zbytkového signálu lineárního prediktoru pro větu d3k3a, w = 2; ε = 1, 3, 5.
Obr. 5.9 Aproximace zbytkového signálu lineárního prediktoru pro větu d3k3a, w = 2; ε = 2, 4, 8.
51
Tab. 5.4 Statistika středních kvadratických chyb pro 72 vět souboru Machač2
šířka
aproximačního
okna w
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
prahová
úroveň
aproximace ε
2
2
2
2
4
4
4
4
6
6
6
6
8
8
8
8
aritmetický
průměr
směrodatná
odchylka
střední
chyba
minimum
maximum
103,5
124,7
180,0
217,7
107,1
143,5
229,9
265,8
118,8
184,4
293,7
396,5
135,8
246,6
384,0
526,7
33,2
40,1
73,7
68,9
32,6
39,7
91,3
92,3
33,1
60,8
119,0
274,1
35,6
74,3
173,8
348,3
3,9
4,7
8,7
8,1
3,8
4,7
10,8
10,9
3,9
7,2
14,0
32,3
4,2
8,8
20,5
41,0
49,2
55,1
59,7
81,9
53,6
74,0
85,4
111,0
62,1
80,1
91,5
150,3
76,1
93,3
106,8
150,3
216,1
246,3
475,9
392,9
216,1
265,1
506,5
500,7
216,1
371,6
830,5
2043,3
239,4
426,5
1173,0
2744,6
Tab. 5.5 Statistika středních kvadratických chyb pro 72 vět souboru Záruba
šířka
aproximačního
okna w
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
prahová
úroveň
aproximace ε
2
2
2
2
4
4
4
4
6
6
6
6
8
8
8
8
aritmetický
průměr
směrodatná
odchylka
střední
chyba
minimum
maximum
77,8
96,5
144,4
176,2
83,9
119,1
195,5
239,9
95,5
151,9
282,8
337,1
113,6
208,5
351,6
463,1
43,8
52,5
114,7
117,0
42,0
54,8
122,8
126,3
42,3
58,7
182,1
158,0
46,8
86,0
177,4
233,4
5,2
6,2
13,5
13,8
4,9
6,5
14,5
14,9
5,0
6,9
21,5
18,6
5,5
10,1
20,9
27,5
29,2
28,2
46,0
37,0
32,0
54,1
69,1
61,2
48,8
66,5
98,1
61,2
51,3
90,8
130,3
154,8
300,1
291,1
750,2
869,7
262,2
345,7
750,2
869,7
266,4
345,7
1137,5
905,7
292,9
563,3
995,6
1140,2
Tab. 5.6 Statistika středních kvadratických chyb pro 72 vět souboru Jana
šířka
aproximačního
okna w
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
prahová
úroveň
aproximace ε
2
2
2
2
4
4
4
4
6
6
6
6
8
8
8
8
aritmetický
průměr
směrodatná
odchylka
střední
chyba
minimum
maximum
258,3
299,7
435,5
599,4
263,2
317,6
467,1
660,1
268,5
357,6
524,7
734,8
280,9
405,9
639,8
822,3
115,4
131,7
201,4
349,3
117,3
136,7
210,9
380,6
121,1
166,2
231,8
489,2
114,4
187,1
270,9
517,4
13,6
15,5
23,7
41,2
13,8
16,1
24,9
44,9
14,3
19,6
27,3
57,6
13,5
22,0
31,9
61,0
101,6
74,2
120,9
181,7
101,6
95,1
120,9
174,1
113,3
120,5
120,9
281,4
123,4
141,7
120,9
281,4
684,4
829,3
1111,1
1972,7
700,8
819,7
1111,1
2369,3
774,4
1065,4
1656,2
3594,9
718,9
1327,8
1651,3
3594,9
52
16
Soubor vět Machač1
16
14
12
12
10
10
Četnost
Četnost
Soubor vět Machač2
14
8
6
8
6
4
4
2
2
0
50
100
150
200
0
250
50
100
Střední kvadratická chyba
16
150
200
250
Střední kvadratická chyba
9
Soubor vět Záruba
Soubor vět Jana
8
14
7
12
6
Četnost
Četnost
10
8
6
5
4
3
4
2
2
1
0
0
50
100
150
200
250
300
200
350
400
600
800
Střední kvadratická chyba
Střední kvadratická chyba
Obr. 5.10 Histogramy středních kvadratických chyb pro jednotlivé soubory vět (w = 2; ε = 4).
Z tabulek 5.3 až 5.6 je patrné, že pro tři soubory vět od mužských mluvčí se výsledky poměrně dobře
shodují na rozdíl od souboru vět „Jana“, u kterého jsou hodnoty střední kvadratické chyby podstatně větší. To
může být dáno vyšíí hodnotou základního tónu u mluvčí „Jana“ (250–450 Hz) a tím pádem nižší rozlišovací
schopností signálu přenášet základní periodu. Při použitém vzorkovacím kmitočtu 8 kHz a základní periodě
hlasivek T = 19,5 bude detekovaná hodnota základního tónu řeči buď F0 = 8000/19 421 Hz nebo
F0 = 8000/20 = 400 Hz. Z toho vyplývá, že rozdíl jednoho vzorku v délce periody nám zde způsobí skokovou
změnu detekovaného základního tónu o více jak 5%. Pro přesnější analýzu ženských hlasů je nutné použít vyšší
vzorkovací kmitočty – alespoň 16 kHz, lépe však 32 kHz.
Statistické vyhodnocení středních kvadratických chyb pro jednotlivé soubory vět při hodnotách
aproximačních parametrů w = 2 a ε = 4 můžeme vidět na obr. 5.10. Nejrovnoměrnější rozdělení chyb mají oba
soubory „Machač“, soubor vět „Záruba“ má však maximum níže, než oba soubory Machač, ale dvě věty zde
spadají do oblasti do 300 Hz a jedna věta dokonce do oblasti do 350 Hz. Z obrázku 5.10 je zřejmé, že hodnoty
středních kvadratických chyb u souboru vět „Jana“ jsou podstatně vyšší než u ostatních souborů vět.
Z výsledků experimentů s aproximací průběhu zbytkového signálu pulsním signálem vyplývá, že dobrých
výsledků by mohlo být dosaženo pouhým impulsním buzením při nalezení vhodnějšího aproximačního
algoritmu, než představuje vztah 5.1. Aproximaci průběhu zbytkového signálu lineárního prediktoru základního
tónu řeči jednotlivými impulsy se budu zabývat v následujícím odstavci.
5.1.2
Aproximace zbytkového signálu impulsovým signálem
Při aproximaci zbytkového signálu lineárního prediktoru jednotlivými impulsy musíme řešit problém
umístění a velikosti těchto impulsů. Pro tyto účely byl vytvořen program errimp provádějící aproximaci
zbytkového signálu impulsovým signálem. Aproximaci zbytkového signálu lineárního prediktoru pro větu
„o1d3a“ ze souboru „Machač1“ pro prahovou hodnotu aproximace ε = 2 můžeme vidět na obr. 5.11.
53
Obr. 5.11 Aproximace zbytkového signálu lineárního prediktoru pro větu o1d3a, ε = 2.
Pro všechny čtyři soubory vět byla následně provedena statistická analýza středních kvadratických chyb
srúznými prahovými hodnotu aproximace ε = 0, 2, 4, 6 a 8. Hodnota ε = 0 slouží především pro porovnání,
neboť se při této hodnotě aproximovaný zbytkový signál lineárního prediktoru shoduje s původním zbytkovým
signálem.
Tab. 5.7 Statistika středních kvadratických chyb pro různé prahové úrovně aproximace
soubor vět
Machač1
Machač2
Záruba
Jana
Machač1
Machač2
Záruba
Jana
Machač1
Machač2
Záruba
Jana
Machač1
Machač2
Záruba
Jana
Machač1
Machač2
Záruba
Jana
prahová
úroveň
aproximace ε
0
0
0
0
2
2
2
2
4
4
4
4
6
6
6
6
8
8
8
8
aritmetický
průměr
směrodatná
odchylka
střední
chyba
minimum
maximum
91,9
102,8
76,7
257,4
270,0
355,8
227,4
947,8
235,3
316,0
221,7
861,9
242,6
263,1
262,4
732,2
282,9
300,7
358,9
690,5
28,8
33,2
43,0
115,2
323,6
356,0
183,7
995,0
225,9
351,1
201,5
899,5
205,9
153,5
185,4
688,9
198,3
158,1
315,3
556,8
3,4
3,9
5,1
13,6
38,1
42,0
21,7
117,3
26,6
41,4
23,7
106,0
24,3
18,1
21,8
81,2
23,4
18,6
37,2
65,6
41,6
47,7
26,1
100,5
53,6
82,5
47,8
135,9
61,2
72,4
38,4
131,3
75,6
72,7
68,7
78,9
85,4
105,1
62,4
78,9
177,5
221,4
290,3
684,4
1971,6
1946,5
1339,5
6084,3
1691,6
2356,3
1202,9
5304,2
1376,6
843,9
1161,9
4492,2
1166,3
774,0
2003,3
3182,5
54
Z tabulky 5.7 je zřejmé, že použitý aproximační algoritmus pro aproximaci zbytkového signálu lineárního
prediktoru jednotlivými impulsy nepracuje tak dobře jako algoritmus aproximace zbytkového signálu
obdélníkovým signálem popsaný v odstavci 5.1.1.
5.1.3
Možnosti aproximace zbytkového signálu
V předchozích dvou odstavcích byly popsány jednoprůchodové algoritmy pro aproximaci zbytkového
signálu lineárního prediktoru. Z uvedených výsledků vyplývá, že menších hodnot střední kvadratické chyby
bylo dosaženo aproximací podle algoritmu popsaného v odstavci 5.1.1 vzorcem 5.1. Lepších výsledků by bylo
zřejmě dosaženo použitím víceprůchodových algoritmů založených na postupné minimalizaci hodnot střední
kvadratické chyby a to především u algoritmu popsaném v odstavci 5.1.2.
5.2
Závislost zbytkového signálu lineárního prediktoru na stavbě věty
Míra závislosti zbytkového signálu lineární predikce na stavbě věty byla určována pomocí aproximace
zbytkového signálu lineární predikce s využitím informace o hranicích suprasegmentálních celků. Polohy hranic
těchto celků byly do přirozeného signálu doplněny pomocí systému automatické segmentace řeči, popsané ve
článku 6.2, ve spojení se systémem Epos. Pro účely vlastní aproximace zbytkového signálu lineárního prediktoru
byl upraven algoritmus popsaný v odstavci 5.1.1. Jelikož funkce intonačních úseků je především deklinační, a je
nutno ji řešit doplněním lineárně predikčního intonačního modelu o funkci deklinace, zajímají nás ze
suprasegmentálií především slabiky a přízvukové takty. Analýzu středních kvadratických chyb pro všechny
soubory vět s použitím aproximace zbytkového signálu lineární predikce po slabikách i přízvukových taktech
vidíme v tabulce 5.8. Výpis použitého aproximačního algoritmu errinterp3 je uveden v příloze. Je zřejmé, že
jednoprůchodový aproximační algoritmus provádějící aproximaci zbytkového signálu lineární predikce na
úrovni suprasegmentálních celků není nejvodnější, jelikož výsledné hodnoty středních kvadratických chyb jsou
příliš vysoké. Pro použitelnou aproximaci zbytkového signálu lineární predikce na úrovni suprasegmentálních
celků je zřejmě nutné použít víceprůchodový optimalizační algoritmus minimalizující velikost střední
kvadratické chyby.
Tab. 5.8 Statistika středních kvadratických chyb pro slabiky a přízvukové takty
soubor vět
Machač1
Machač2
Záruba
Jana
Machač1
Machač2
Záruba
Jana
5.3
aproximační
jednotky
slabiky
slabiky
slabiky
slabiky
přízvukové takty
přízvukové takty
přízvukové takty
přízvukové takty
aritmetický
průměr
179,8
318,0
153,7
502,2
540,9
801,7
513,8
212,4
směrodatná
odchylka
122,7
235,6
152,0
580,6
340,6
431,7
439,5
178,0
střední
chyba
14,5
27,8
17,9
68,4
40,1
50,9
51,8
21,0
minimum
maximum
51,2
71,5
38,3
118,1
137,8
139,2
122,1
32,1
806,3
1068,1
906,5
3595
1873,7
1892
3404,2
1128,9
Využití zbytkového signálu lineární predikce pro tvorbu prozodických pravidel
Pro využití zbytkového signálu lineární predikce pro návrh prozodických pravidel je nutné buď
implementovat lexikální analýzu psaného textu, což je problém pro češtinu dosud nevyřešený, nebo využít
zbytkový signál lineární predikce pro natrénování umělé neuronové sítě. Na vstupy neuronové sítě by byly
přivedeny informace o haranicích suprasegmentálíí a jejich vzájemné četnosti a neuronová síť by byla trénována
na zbytkový signál lineárního prediktoru. Po skončení trénovací fáze by neuronová síť generovala přímo budící
signál lineárně predikčního syntetizujícího filtru, na jehož výstupu by se objevil průběh základního tónu
syntetické promluvy. Na modelování buzení lineárně predikčního intonačního modelu umělou neuronovou sítí se
v současné době pracuje, ale jeho podrobný popis přesahuje rámec této práce.
55
56
Část III
Experimentální část
57
58
6 Experimentální část
Obsahem této kapitoly je popis prováděných experimentů s cílem ověřit modelování průběhu základního
tónu v praxi.
6.1
Databáze řečového materiálu pro modelování prozodie
Pro ověřování navrhovaných algoritmů byla navržena a posléze namluvena řečová databáze o rozsahu cca
80 vět od několika mluvčích. Věty byly v rámci databáze rozděleny podle několika hledisek: podle typu věty na
větu oznamovací, rozkazovací a otázku zjišťovací a doplňovací. Podle stavby věty na větu jednoduchou, souvětí
skládající se ze dvou vět a na souvětí skládající se ze tří vět. Dále pak z hlediska délky na krátkou (stručnou)
a dlouhou (rozvitou) větu. Tím bylo definováno 12 základních kategorií vět, přičemž v každé kategorii byly
vybrány tři různé realizace, čímž jsme získali databázi 72 vět (souvětí), která byla ještě doplněna o krátký text
sestávající celkem z 10 vět (souvětí). Seznam vět obsažených v databázi včetně jejich znění je uveden v příloze.
Popisovaná databáze byla namluvena od jednoho profesionálního mluvčího pro mužský hlas (Robert Záruba
– ČT), od jednoho neprofesionálního mluvčího (Pavel Machač) a od jedné neprofesionální mluvčí pro ženský
hlas (Jana Mejvaldová). Celkem máme tedy 72 vět namluvených od dvou mluvčích pro mužský a od jedné
mluvčí pro ženský hlas, přičemž mluvčí Machač je pokaždé ve dvou realizacích. Prozodický korpus pro účely
této práce tedy obsahuje 288 vět. Všechny nahrávky byly pořízeny ve studiu ve Fonetickém ústavu FF UK na
digitální magnetofon DAT SONY PCM-R300 vzorkovacím kmitočtem 48kHz. Poté byly nahrávky převedeny do
počítače a převzorkovány na 8 kHz programem Sound Forge 4.5, který je k dispozici rovněž ve Fonetickém
ústavu FF UK.
6.2
Automatická segmentace řeči
Pro experimenty s modelováním prozodie bylo třeba namluvenou databázi opatřit informací o hranicích
suprasegmentálních jednotek (hlásky, slabiky, přízvukové takty a intonační úseky). Jelikož ruční označování
těchto jednotek je velice pracné, byla vyvinuta metoda automatické segmentace řeči založená na porovnávání
přirozeného řečového signálu, ve kterém chceme označit suprasegmentální úseky, s totožným syntetickým
signálem, ve kterém tyto hranice známe. K porovnání se používá algoritmus dynamického borcení časové osy
(DTW – Dynamic Time Warping), jehož vstup tvoří časové i kmitočtové analýzy obou porovnávaných signálů.
Myšlenka automatické segmentace s použitím syntézy řeči není nová. Automatická segmentace francouzštiny
s využitím TTS je velmi dobře popsána v [MAL97a] a v [MAL97b]. Na uvedené autory navazují práce [STR99]
a [TUČ99], ze kterých jsem při vývoji systému automatické segmentace řeči vycházel.
6.2.1
Použitý syntezátor řeči
Pro účely automatické segmentace přirozené promluvy musíme nejprve vytvořit pomocí TTS systému
totožnou syntetickou promluvu s vyznačenými suprasegmentálními hranicemi. Pro tyto účely byl upraven TTS
systém Epos využívající mimo jiné LPC syntezátor řeči vyvinutý v ÚRE [HAN98a,b], [HAN01]. Pro účely
automatické segmentace byl vybrán mužský hlas „Kubec“ používající 441 českých a slovenských segmentů řeči
(difony, iniciální a finální části hlásek a těla samohlásek) při vzorkovacím kmitočtu 8 kHz a osmém řádu lineární
predikce [PTÁ92], [VÍC95a]. Pro automatickou segmentaci vyšších než segmentálních celků bylo zapotřebí do
LPC inventáře doplnit informaci o hranicích hlásek v rámci segmentů. Upravený systém Epos včetně
modifikovaného LPC inventáře spolu s přidanou informací o hranicích hlásek umožňuje vytvářet syntetické
promluvy z psaného textu spolu s informací o poloze řečových segmentů, hlásek, slabik, přízvukových taktů
(celky na úrovni jednotlivých slov), intonačních úseků (celky na úrovni jednoduchých vět) a celých větných
celků v tomto syntetickém signálu [HOR99d,e]. Blokové schéma systému Epos, včetně přidaných částí pro účely
automatické segmentace, je znázorněno na obr. 6.1.
6.2.2
Vlastní segmentace
Jelikož vlastní segmentační algoritmus pracuje s jednotlivými větami (souvětími), musí být přirozená řeč,
kterou chceme automaticky segmentovat, nejprve rozdělena na jednotlivé věty, respektive v ní musí být
jednotlivé věty označeny. Vstupem do automatického segmentátoru jsou tedy jednotlivé přirozené věty spolu se
svým textovým zápisem. Z textového zápisu jsou pak pomocí syntezátoru řeči (Epos + LPC syntéza) generovány
ekvivalentní syntetické věty obsahující navíc informaci o hranicích řečových segmentů a vyšších suprasegmentálních celků.
59
Obr. 6.1 TTS systém upravený pro účely automatické segmentace (tučné bloky byly přidány).
První krok automatické segmentace spočívá v analýze přirozeného i referenčního syntetického řečového
signálu v časové i ve kmitočtové oblasti. Analýza se provádí v obou signálech po jednotlivých rámcích v každé
označené větě. V každém rámci je vypočteno šest základních skupin parametrů. První skupinu parametrů tvoří
kepstrální koeficienty ci získané přepočtem z LPC koeficientů dle vztahů 6.1 a 6.2, reprezentující okamžitou
obálku spektra [MAR76].
c0 = ln( α ) ,
(6.1)
n −1
1
∑ (n − k )c n − k ak for n > 0,
n k =1
kde α . . . koeficient zisku lineárního prediktoru,
a0 = 1 a ak = 0 pro k > M,
M . . . řád lineárně predikční analýzy.
cn = −an −
(6.2)
Delta kepstrální koeficienty Δci určené pomocí vztahů 6.3 a 6.4 tvoří druhou skupinu parametrů.
(6.3)
(6.4)
Δc0 (i ) = c0 (i ) ,
Δcn (i ) = cn (i ) − cn (i − 1) ,
kde cj(i) . . . j-tý kepstrální koeficient i-tého rámce.
Třetí a čtvrtou skupinu parametrů tvoří krátkodobá energie signálu v jednotlivých rámcích a její první diference
určené dle vztahů 6.5 a 6.6 [RAB78].
E (i ) =
∞
∑ ( x(m) w(i ⋅ N ⋅ (1 − μ ) − m) )
m
2
(6.5)
,
=−∞
(6.6)
ΔE (i ) = E (i ) − E (i − 1) ,
kde x
i
N
...
...
...
μ ...
M ...
řečový signál,
pořadí rámce,
délka rámce,
koeficient překrytí rámců,
řád lineárně predikční analýzy,
⎧1 : 0 ≤ a < N ,
w(a) = ⎨
⎩0 : jinde.
Konečně pátou a šestou skupinu parametrů tvoří počet průchodů nulou v jednotlivých rámcích spolu se svou
první diferencí dle vztahů 6.7 a 6.8 [OPP75].
60
Z (i ) =
∞
∑ f ( x(m) x(m − 1) )w ( i ⋅ N ⋅ (1 − μ ) − m ) ,
(6.7)
m =−∞
(6.8)
ΔZ (i) = Z (i ) − Z (i − 1) ,
kde x
i
N
μ
...
...
...
...
řečový signál,
pořadí rámce,
délka rámce,
koeficient překrytí rámců,
⎧1: 0 ≤ a < N ,
w(a) = ⎨
⎩0 : jinde ,
⎧1 : a < k z (k z < 0) ,
f (a) = ⎨
⎩0 : jinde.
Průběhy všech výše uvedených parametrů jsou před dalším zpracováním normalizovány do intervalu 0,1 .
Blokový diagram vlastního automatického segmentátoru je znázorněn na obr. 6.2.
Obr. 6.2 Blokové schéma automatického segmentátoru řeči.
Ve druhém kroku automatické segmmentace je prováděna vlastní segmentace pomocí klasického algoritmu
borcení časové osy (DTW) s použitím matice akumulovaných vzdáleností D (viz 6.9).
D(2, J )
D( I , J ) ⎞
L
⎛ D(1, J )
⎜
⎟
D( I , J − 1) ⎟
L
⎜ D(1, J − 1) D(2,1)
⎟
D= ⎜
D(i, j )
M
M
M
⎜
⎟
D(2, 2)
D( I , 2) ⎟
L
⎜ D(1, 2)
⎜ D(1,1)
D(2,1)
D( I ,1) ⎟⎠
L
⎝
kde I
J
(6.9)
. . . počet rámců signálu 1 (např. přirozený řečový signál),
. . . počet rámců signálu 2 (např. referenční syntetický řečový signál).
Tento DTW algoritmus používá váhovací koeficienty symetrické formu bortící funkce [SAK78]. Váhovací
koeficienty pro symetrickou formu bortící funkce jsou znázorněny na obr. 6.3.
61
Obr. 6.3 Váhovací koeficienty w pro symetrickou formu bortící funkce.
Na počátku DTW algoritmu jsou krajní prvky matice vzdáleností inicializovány dle vztahů 6.10 – 6.12.
Ostatní prvky matice vzdáleností jsou vypočítány dle vztahu 6.13 [SAK78].
D(1,1) = d ( x(1), y (1) )
(6.10)
D(i,1) = D(i − 1,1) + d ( x(i ), y (1) ) i = 1K I
(6.11)
D(1, j ) = D(1, j − 1) + d ( x(1), y ( j ) ) j = 1K J
(6.12)
⎛ D(i − 1, j ) + d ( x(i ), y ( j ) ) ⎞
⎜
⎟
(6.13)
D(i, j ) = MIN⎜ D(i − 1, j − 1) + d ( x(i ), y ( j ) ) ⎟
⎜⎜
⎟⎟
⎝ D(i, j − 1) + d ( x(i ), y ( j ) ) ⎠
i = 1K I ; j = 1K J
kde d(x(i),y(j)) . . . vzdálenost mezi i-tým rámcem prvního signálu a j-tým rámcem druhého signálu (viz
vztah 6.14)
MIN(*)
. . . funkce počítající minimální vzdálenost.
Výsledná vzdálenost d(x,y) je váhovaným součtem kepstrální vzdálenosti, energetické vzdálenosti a vzdálenosti
počtu průchodů nulou. Tato vzdálenost se používá k porovnání rámce přirozeného signálu x s rámcem
referenčního syntetického signálu y (vztah 6.14).
ncep
d ( x, y ) = α 0 ∑ ( ci ( x) − ci ( y ) ) +
2
i =0
ncep
+ β ∑ ( Δci ( x) − Δci ( y ) ) + γ ( E ( x) − E ( y ) ) +
2
2
(6.14)
i =0
+δ ( ΔE ( x) − ΔE ( y ) ) + ϕ ( Z ( x) − Z ( y ) ) +
2
+η ( ΔZ ( x) − ΔZ ( y ) )
2
2
Empiricky byly zjištěny nejlepší hodnoty váhovacích koeficientů pro 20 ms rámce s překryvem n = 0.7
(14 ms), vzorkovacím kmitočtem 8 kHz a řádu lineární predikce M = 8 takto:
α = 1.5;
β = 1.25;
γ = 1.5;
δ = 1;
ϕ = 1;
η = 1.5
prahová hodnota počtu průchodů nulou kz = -20000.
Příklad akumulované distanční matice je na obr. 6.4.
62
Obr. 6.4 Ukázka DTW algoritmu na matici akumulovaných vzdáleností.
6.2.3
Testování automatické segmentace
Automatický segmentátor, popsaný v předchozím odstavci, byl testován na větách z řečového korpusu (viz
článek 6.1 a příloha A). Byl použit jeden soubor vět mužského hlasu „Machač1“ a jeden soubor vět ženského
hlasu „Jana“. Každý mluvčí namluvil 72 vět obsahujících celkem 4066 hlásek. Výsledky automatické
segmentace byly potom porovnávány s ruční segmentací stejného materiálu. Chyby přesnosti segmentace byly
stanovovány pro začátek každé hlásky, které byly pro tyto účely rozděleny do deseti kategorií uvedených
v tabulce 6.1.
Tab. 6.1 Rozdělení českých hlásek pro účely testování automatické segmentace
označ.
vow
exv
exu
frv
fru
afv
afu
liq
app
nas
kategorie
krátké a dlouhé vokály [a,,,,,a:,e:,i:,o:,u:]
znělé explozívy [b,d,,]
neznělé explozívy [p,t,c,k]
znělé frikatívy [v,z,,,,r]
neznělé frikatívy [f,s,,x,r]
znělé afrikáty [dz,d]
neznělé afrikáty [ts,t]
likvidy [r,l]
aproximanta [j]
nazály [m,,n,,]
Chyby automatického určení začátku hlásek jako funkci jejich absolutní hodnoty v milisekundách můžeme
vidět v tabulce 6.2. Chyby automatického určení trvání hlásek jako funkci jejich absolutní hodnoty
v milisekundách vidíme v tabulce 6.3. Tabulka 6.4 nám pak ukazuje absolutní i procentuální zastoupení hlásek
v jednotlivých kategoriích. Chyby automatického určení začátku hlásek a automatického určení trvání hlásek pro
ženský hlas jsou uvedeny v tabulkách 6.5 a 6.6. Je zajímavé, že ve většině případů jsou výsledky automatické
segmentace ženského hlasu lepší než výsledky automatické segmentace hlasu mužského, a to i přesto, že pro
63
generování srovnávacích promluv byla použita syntéza mužského hlasu. V tabulce 6.7 jsou uvedeny průměrné
délky hlásek v jednotlivých kategoriích pro mužský a ženský hlas při automatické i manuální segmentaci, které
jsou rovněž vyobrazeny na obr. 6.5.
Tab. 6.2 Procentuální výskyt chyb segmentace začátků hlásek pro mužský hlas
t [ms]
<5
< 10
< 20
< 30
< 40
nall [%]
19.3
37.6
64.5
79.4
86.3
95.2
≥ 50
4.8
< 50
nvow [%]
19.1
35.5
61.2
76.0
83.0
95.0
5.0
nexv [%]
21.5
45.0
75.7
87.4
91.2
95.9
4.1
nexu [%]
21.2
42.2
73.5
86.7
93.1
97.9
2.1
nfrv [%]
20.9
41.4
68.9
83.6
91.4
95.9
4.1
nfru [%]
11.5
26.2
54.4
74.1
87.2
96.7
3.3
nafv [%]
0.0
10.0
40.0
70.0
70.0
100.0
0.0
nafu [%]
26.1
51.1
75.0
88.0
92.4
100.0
0.0
nliq [%]
18.5
37.6
66.5
85.3
91.2
98.1
1.9
napp [%]
13.5
27.0
52.7
76.4
83.8
92.6
7.4
nnas [%]
22.9
42.5
63.3
73.5
79.3
86.2
13.8
Tab. 6.3 Procentuální výskyt chyb segmentace trvání hlásek pro mužský hlas
t [ms]
<5
< 10
< 20
< 30
nall [%]
19.4
37.5
64.8
80.0
87.2
90.9
≥ 50
9.1
nvow [%]
19.1
35.7
61.5
76.4
83.7
87.6
12.4
nexv [%]
21.5
45.4
75.7
87.4
91.2
94.0
6.0
nexu [%]
21.2
42.2
73.5
86.9
93.2
95.9
4.1
< 40
< 50
nfrv [%]
21.3
41.8
69.3
84.0
91.8
94.7
5.3
nfru [%]
11.5
26.2
54.8
74.4
87.5
93.8
6.2
nafv [%]
0.0
10.0
40.0
70.0
70.0
80.0
20.0
nafu [%]
26.1
51.1
75.0
88.0
92.4
97.8
2.2
nliq [%]
18.5
37.6
66.8
85.9
92.8
95.0
5.0
napp [%]
14.2
27.7
53.4
77.7
85.8
89.2
10.8
nnas [%]
23.2
43.4
64.9
76.5
83.4
87.6
12.4
Tab. 6.4 Počet výskytů hlásek v jednotlivých kategoriích
kategorie hlásek
počet výskytů
poměrný výskyt [%]
celkem
4066
100.0
krátké a dlouhé vokály
1736
42.7
317
7.8
neznělé explozívy
533
13.1
znělé frikatívy
244
6.0
neznělé frikatívy
305
7.5
10
0.2
znělé explozívy
znělé afrikáty
neznělé afrikáty
92
2.3
likvidy
319
7.8
aproximanta
148
3.6
nazály
362
8.9
64
Tab. 6.5 Procentuální výskyt chyb segmentace začátků hlásek pro ženský hlas
t [ms]
<5
< 10
< 20
nall [%]
22.4
40.5
66.0
80.3
87.1
95.5
≥ 50
4.5
nvow [%]
20.9
38.6
63.2
77.4
84.1
94.6
5.4
nexv [%]
31.5
55.5
81.1
89.6
94.6
97.2
2.8
nexu [%]
24.0
42.2
70.4
85.4
91.4
97.9
2.1
nfrv [%]
29.9
53.7
75.8
86.9
93.0
97.1
2.9
nfru [%]
10.8
21.3
52.1
74.4
87.9
96.4
3.6
nafv [%]
20.0
50.0
80.0
100.0
100.0
100.0
0.0
nafu [%]
32.6
58.7
82.6
90.2
94.6
100.0
0.0
nliq [%]
26.3
48.6
75.2
90.3
95.3
98.7
1.3
napp [%]
23.6
37.8
58.1
76.4
82.4
93.2
6.8
nnas [%]
17.7
30.4
55.2
69.1
76.2
89.2
10.8
< 30
< 40
< 50
Tab. 6.6 Procentuální výskyt chyb segmentace trvání hlásek pro ženský hlas
t [ms]
<5
< 10
< 20
nall [%]
22.5
40.7
66.4
81.0
88.1
91.9
≥ 50
8.1
< 30
< 40
< 50
nvow [%]
21.0
38.9
63.6
77.9
85.0
89.5
10.5
nexv [%]
31.9
55.8
81.4
90.2
95.3
97.2
2.8
nexu [%]
24.0
42.2
70.4
85.7
92.1
95.5
4.5
nfrv [%]
29.9
53.7
75.8
87.3
93.4
95.9
4.1
nfru [%]
11.1
21.6
52.5
74.8
88.5
93.1
6.9
nafv [%]
20.0
50.0
80.0
100.0
100.0
100.0
0.0
nafu [%]
32.6
58.7
82.6
90.2
94.6
96.7
3.3
nliq [%]
26.3
48.9
75.5
90.6
96.2
97.8
2.2
napp [%]
23.6
38.5
59.5
79.1
85.1
89.9
10.1
nnas [%]
17.7
30.4
56.1
71.0
79.3
84.3
15.7
Tab. 6.7 Průměrné délky hlásek v jednotlivých kategoriích pro mužský a ženský hlas při automatické a manuální
segmentaci.
kategorie hlásek
mužský hlas
manu
auto
ženský hlas
manu
auto
celkem
84.7
88.0
77.0
79.2
krátké a dlouhé vokály
83.3
82.9
81.6
81.3
znělé explozívy
77.6
72.9
69.6
65.7
neznělé explozívy
88.4
87.5
78.4
76.9
znělé frikatívy
78.2
95.8
66.5
72.7
neznělé frikatívy
113.7
129.8
90.4
105.2
znělé afrikáty
120.0
141.7
99.9
108.9
neznělé afrikáty
126.0
127.3
113.5
115.1
likvidy
59.3
63.2
48.4
50.3
aproximanta
74.0
77.2
61.8
65.6
nazály
87.5
101.1
76.8
88.2
Jak je patrné z výše uvedených tabulek, jsou chyby segmentace z běžných skupin nejmenší pro krátké
a dlouhé samohlásky. Dobré výsledky mají také neznělé explozívy, pravděpodobně proto, že spektrální obraz
65
těchto hlásek je poměrně odlišný od ostatních hlásek, s jasným uzavřením na začátku a s explozí, jež je většinou
separována od následující hlásky. Chyby u frikatív jsou způsobeny nejspíše tím, že iniciální i finální části
frikatív přecházejí na rozdíl od explozív v sousední hlásku plynule a to zejména jedná-li se o samohlásku.
Výsledky znělých afrikát nemají z důvodu jejich malé četnosti velkou vypovídací hodnotu.
Obr. 6.5 Průměrné délky hlásek v jednotlivých kategoriích pro mužský a ženský hlas při automatické
a manuální segmentaci (viz tab. 6.6).
Algoritmus automatické segmentace se ukázal být velmi robustní na výskyt chyb ve fonetické transkripci.
V místech, kde se syntetická a přirozená promluva neshodují, algoritmus přeskočí nestejné partie a pokračuje
znovu od místa shody obou promluv. Využití vyvinuté automatické segmentace spočívá především ve vytváření
prozodicky označkovaných databází, které jsou potřeba pro další výzkum v oblasti modelování prozodie
[HOR01a]. Na obr. 6.6 je uveden příklad automatické segmentace řeči. V horní polovině obrázku je znázorněna
syntetická řeč s vyznačenými hranicemi hlásek (jedná se o větu „Výsledek nebude přesný, protože nemáme jiné
údaje“). V dolní polovině obrázku pak vidíme přirozenou promluvu, ve které byly vyznačeny hranice hlásek
pomocí algoritmu automatické segmentace.
Obr. 6.6 Ukázka automatické segmentace. Nahoře je syntetická řeč s vyznačenými hranicemi hlásek, dole pak
přirozená promluva s automaticky vyznačenými hranicemi hlásek.
Algoritmus automatické segmentace byl rovněž ověřen implementací systému umožňujícího transplantaci
průběhu základního tónu řeči z jedné promluvy na druhou (promluvy se liší pouze prozodicky), a to buď
z přirozené promluvy na syntetickou, anebo z jedné přirozené promluvy na druhou přirozenou promluvu
[HOR00a]. Bloková struktura tohoto systému je zobrazena na obr. 6.7.
66
Obr. 6.7 Blokové schéma nástroje na transplantaci průběhu základního tónu z jedné promluvy na druhou.
Výsledky testování algoritmu automatické segmentace ukazují, že jeho přesnost je dostatečná pro vytváření
prozodicky označkovaných databází a pro použití v systému umožňujícího transplantaci intonační kontury. Pro
automatické vytváření nových řečových inventářů pomocí popisovaného automatického segmentátoru je nutná
ještě manuální korekce automaticky provedené segmentace. Pro předzpracování korpusu určeného k vytváření
řečových inventářů je to však nástroj velmi užitečný [HOR00a,b].
Současné automatické segmentátory jsou většinou založeny na použití skrytých Markovských řetězců
(Hidden Markov Models – HMM), jejichž použití na automatickou segmentaci češtiny je popsáno např.
v [NOU00]. Při použití HMM pro automatickou segmentaci řeči je nutno nejprve systém „natrénovat“ na známá
data. V současnosti máme k dispozici referenční inventář (tj. inventář s informací o hranicích suprasegmentálních celků) pouze pro vzorkovací kmitočet 8 kHz. Mnohem širší využití automatického segmentátoru umožní
teprve přidání informace o hranicích suprasegmentálních celků do nových trifonových inventářů se vzorkovacím
kmitočtem 16 a 32 kHz.
6.3
Porovnání vlastností LPC intonačního modelu s Fujisakiho modelem
Jak bylo popsáno v odstavci 2.6.7, generuje Fujisakiho intonační model průběh základního tónu řeči
v oblasti logaritmu kmitočtu. Průběh základního tónu řeči je zde získán jako lineární superpozice globální
(úsekové) a lokální (přízvukové) složky. Tyto složky tvoří výstupní signály dvou lineárních systémů druhého
řádu, jejichž vstupy tvoří dvě různé funkce: úsekové impulsy (phrase commands) a přízvukové pulsy (accent
commands). LPC intonační model oproti tomu generuje přímo průběh základního tónu řeči na základě jediného
buzení.
Z toho vyplývá, že Fujisakiho intonační model může poměrně přesně popisovat intonaci větších větných
celků, neboť úseková deklinace je zde dobře ošetřena globální (úsekovou) složkou. Oproti tomu je LPC
intonační model spíše ekvivalentem lokální (přízvukové) složky Fujisakiho intonačního modelu. Pro použití LPC
intonačního modelu pro popis delších vět a souvětí by bylo vhodné doplnit LPC intonační model o složku
úsekové deklinace.
Z výpočetního hlediska je určení parametrů LPC intonačního modelu mnohem jednodušší než určení
parametrů Fujisakiho intonačního modelu, neboť intonační kontura na výstupu Fujisakiho intonačního modelu je
dána superpozicí dvou složek, které není jednoduché zpětně oddělit. V praxi se pro určování parametrů
Fujisakiho intonačního modelu používají nejčastěji několikaprůchodové optimalizační algoritmy založené na
minimalizaci střední kvadratické chyby. Jedna z těchto metod, vycházející z [MIX00], byla implementována
také do systému SpeechStudio. Určení parametrů lineárně predikčního intonačního modelu je oproti tomu
poměrně jednoduché, neboť není nutné od sebe oddělovat dvě složky. Toto bude platit i v případě rozšíření
lineárně predikčního intonačního modelu o jednoduše konstruovanou (nejlépe lineární) úsekovou složku.
Oba modely umožňují zjednodušit popis větné intonační kontury, výhoda lineárně predikčního modelu
spočívá v jednodušším určení parametrů modelu (analýze), nevýhodou lineárně predikčního modelu je naopak
absence popisu intonace větších celků (věty, souvětí).
67
6.4
Implementace LPC a Fujisakiho intonačního modelu do systému SpeechStudio
SpeechStudio je programový nástroj určený pro zpracování řečových signálů na počítači, který se postupně
vyvíjí od r. 1996. V současné době umožňuje náhled na řečový signál, umísťování a editaci značek, analýzu řeči
v časové i kmitočtové oblasti, změnu prozodie a v neposlední řadě také vytváření řečových databází pro účely
syntézy řeči. Základní grafické uživatelské rozhraní systému SpeechStudio můžeme vidět na obr. 6.8.
Obr. 6.8 Grafické uživatelské rozhraní systému SpeechStudio.
V rámci této práce byl systém SpeechStudio rozšířen o možnost pracovat s Fujisakiho intonačním modelem
včetně automatického určení parametrů Fujisakiho modelu pro danou promluvu a také o možnost analýzy a
syntézy průběhu základního tónu řeči pomocí lineární predikce včetně aproximace zbytkového signálu
intonačního lineárního prediktoru. Systém SpeechStudio je schopen provádět analýzu a následnou resyntézu
řečového signálu pomocí lineárně predikčního modelování řečového signálu, pomocí kepstrálního modelování
řečového signálu (syntéza řeči ve kmitočtové oblasti) nebo pomocí metody TD-PSOLA (syntéza řeči v časové
oblasti). Výsledné promluvy můžeme tedy ozvučovat pomocí tří různých způsobů řečové syntézy, z nichž
poslechově nejkvalitnější je v současné době metoda PSOLA [MOU00]. Pro resyntézu řečového signálu
metodou TD-PSOLA je však nejprve nutné označit v řečovém signálu hlasivkové pulsy pomocí algoritmu
popsaného v odstavci 4.2.2.
Systém SpeechStudio ukládá značky do standardního formátu RIFF s příponou „.wav“. Značky představují
buď vzorky signálu (markers) nebo oblasti signálu (regions). Každý záznam o značce obsahuje typ značky,
název značky, počáteční vzorek značky, délku značky a barvu značky. SpeechStudio v současné době rozlišuje
11 základních druhů standardních značek uspořádaných v tabulce 6.8. Do systému je však možné přidávat
libovolné nové druhy značek. Vlastní značky mohou být importovány i exportovány také v textovém tvaru za
účelem spolupráce s různými druhy software.
Pro účely buzení Fujisakiho modelu byl systém SpeechStudio rozšířen o typ značek „f_phrase“ pro úsekové
budící impulsy a „f_accent“ pro přízvukové budící pulsy. Pro účely buzení lineárně predikčního intonačního
modelu byl systém SpeechStudio rozšířen o typ značek „lp_exc“. Amplituda budících impulsů je vložena
v podobě řetězce do názvu značky. Aby se předešlo problémům s desetinnou čákou či tečkou, je hodnota uložená
v názvu značky vynásobena deseti. Grafické rozhraní systému SpeechStudio s implementovaným Fujisakiho
68
Obr. 6.9 Implementace Fujisakiho intonačního modelu v systému SpeechStudio.
intonačním modelem můžeme vidět na obr. 6.9. V horní části obrázku vidíme vlastní řečový signál spolu
s vloženými úsekovými budící impulsy (červěná barva) a přízvukovými budící pulsy (modrá barva). Textový
popis značek tvoří tisícinásobek hodnot amplitudy příslušných pulsů. Toto řešení bylo zvoleno z důvodu
nejednotnosti užívání desetinné tečky/čárky v použitém software. V dolní části obrázku vidíme průběh
základního tónu přirozené řeči a průběh základního tónu řeči na výstupu Fujisakiho modelu spolu se vstupními
parametry tohoto modelu. Průběh základního tónu řeči, určený pomocí poloh hlasivkových pulsů, je znázorněn
žlutou křivkou, která je ve znělých oblastech zvýrazněna černými křížky. V neznělých oblastech je hodnota
základního tónu získána pomocí lineární interpolace.
Tab. 6.8 Přednastavené druhy značek v systému SpeechStudio
název
druh
barva
účel značky
unit
sound
oblast
oblast
červená
zelená
řečové jednotky pro vytváření inventáře
hlásky
syll
oblast
světle modrá
slabiky
word
oblast
tmavě modrá
přízvukové takty
colon
oblast
růžová
intonační úseky
sent
oblast
světle zelená
věty a souvětí
ppuls
vzorek
žlutá
hlasivkové pulsy
voiced
oblast
černá
znělé oblasti
f_phrase
vzorek
světle červená
úsekové pulsy pro Fujisakiho intonační model
f_accent
oblast
modrá
přízvukové impulsy pro Fujisakiho intonační model
lp_exc
oblast
oranžová
budící pulsy pro lineárně predikční intonační model
Implementace lineárně predikčního intonačního modelu do systému SpeechStudio je znázorněna na obr.
6.10. V horní části opět vidíme vlastní řečový signál spolu s vloženými značkami budících pulsů lineárně
predikčního modelu (oranžová barva), jejichž textový popis tvoří desetinásobek hodnot amplitudy příslušných
69
Obr. 6.10 Implementace lineárně predikčního intonačního modelu v systému SpeechStudio.
pulsů. V dolní části vidíme průběh základního tónu přirozené řeči a průběh základního tónu řeči na výstupu
lineárně predikčního modelu spolu se vstupními parametry tohoto modelu. Modrou barvou je znázorněn
chybový signál lineární predikce, jemuž odpovídá průběh základního tónu znázorněný černou křivkou. Pro
případ buzení lineárně predikčního modelu jednotlivými pulsy je průběh intonační křivky na výstupu lineárně
predikčního modelu znázorněn oranžovou křivkou.
Systém SpeechStudio je dále možné využít k manuální změně jednotlivých prozodických parametrů
a především ke tvorbě nových řečových inventářů. V současné době je možné pomocí systému SpeechStudio
vytvářet hlasové inventáře pro syntezátory systému Epos pracující na principu lineární predikce, metody
TD-PSOLA a kepstrální syntézy. Ve fázi testování je rovněž vytváření hlasových inventářů na principu
harmonické syntézy.
Pro získání průběhu základního tónu je v systému SpeechStudio použit detektor základního tónu pracující na
principu polaritní autokorelace. Pro potřeby opakované detekce intonační křivky s co možná největší eliminací
chyb je systém SpeechStudio vybaven automatickým označováním hlasivkových pulsů s možností manuální
korekce. Označené hlasivkové pulsy je možné uložit v podobě značek spolu se signálem a opakovaně je využívat
pro určování průběhu základního tónu. Další oblastí, kde je zapotřebí označených hlasivkových pulsů, je
vytváření hlasových inventářů na základě pitch synchronního překrývání úseků signálu (metoda PSOLA).
Aktuální informace o systému SpeechStudio je možné najít na adrese http://sstudio.ure.cas.cz/, kde je možné
rovněž získat aktuální verzi v binární podobě pro platformu Win32. Programový systém SpeechStudio motivoval
vznik funkčně shodného otevřeného systému na platformě Linux/Gnome s názvem GTK WavEdit, který je
možné získat na adrese http://wavedit.ure.cas.cz/. V praxi byla rovněž ověřena možnost používání systému
SpeechStudio na Linuxové platformě pomocí projektu Wine.
6.5
Implementace rozšířeného klienta pro systém Epos
TTS systém Epos je založen na architektuře klient/server, jejíž jednotlivé komponenty spolu komunikují
pomocí původního protokolu TTSCP podrobně popsaného v [HAN99]. Ve standardní distribuci systému Epos je
obsažen klient pouze pro příkazovou řádku. Pro účely přehledné práce se systémem Epos byl implementován
grafický klient tohoto systému s názvem „WinSay“. Tento klient umožňuje mimo zápisu textu ještě kontrolu
fonetického přepisu včetně pomocných formátovacích znaků, výpis posloupnosti použitých řečových jednotek,
70
Obr. 6.11 Grafický klient TTS systému Epos.
volbu jazyka a příslušného hlasu, změnu prozodických hodnot a ovládání některých softwarových přepínačů
(soft options) systému Epos. Grafické uživatelské roznhraní klienta WinSay je vyobrazeno na obr. 6.11.
Klient WinSay je napsán v jazyce C++ pro operační systémy Win32 kompatibilní a je možné jej získat
v binární podobě přímo na domovské stránce projektu Epos.
6.6
Implementace ladícího modulu pro systém Epos
Při syntéze z psaného textu systémem Epos je nejprve textový zápis pomocí parseru převeden do tzv. vnitřní
datové reprezentace, která je vhodná pro aplikaci pravidel a nazývá se TSR (Text Structure Representation).
Každý fonetický útvar nebo jeho aproximace je zde reprezentován uzlem v této struktuře. Uzly jsou uspořádány
v jednotlivých vrstvách odpovídajících lingvistické úrovni, kterou odpovídající vrstva popisuje. Hierarchie
uspořádání jednotlivých vrstev je v systému Epos konfigurovatelná a pro češtinu je znázorněna v Tab. 6.9.
Tab. 6.9 Uspořádání úrovní TSR pro češtinu
význam psané formy
význam mluvené formy
text
sent
název
celý text
větná konstrukce
celý text
ukončená promluva
colon
věta
intonační úsek
slovo
přízvukový takt
část slova
slabika
word
syll
phone
segment
písmeno
hláska
–
řečová jednotka
Na vnitřní datovou reprezentaci jsou aplikována jednotlivá prozodická pravidla. Pravidla jsou v systému
Epos uložena v souboru s koncovkou .rul, přičemž každý jazyk má svůj soubor s pravidly, např. pro češtinu je
to obvykle soubor cfg/lng/czech/czech.rul. Do tohoto souboru mohou být vkládány jiné soubory
s pravidly a je tak možné vytvářet složitý a přitom přehledný systém pravidel. Základní přehled pravidel systému
Epos je uveden v příloze C, podrobný přehled pravidel je možné nalézt v [EPOS].
Při psaní a testování nových pravidel je vhodné mít přehled o stavu vnitřní datové struktury systému Epos
před a po vykonání určitého prozodického pravidla. Za tímto účelem byl navržen nástroj Epos TSR Tracking,
71
který využívá existující pravidlo DEBUG umožňující krokování jednotlivých pravidel. Syntaxe tohoto pravidla
byla rozšířena o parametr TSRTOOL umožňující grafické zobrazení vnitřní datové struktury systému Epos
s možností její editace. Grafický editační nástroj pro TSR strukturu se vyvolá zápisem „debug tsrtool“
v souboru s pravidly. Použijeme-li tento nástroj před a po zápisu určitého prozodického pravidla, můžeme
pozorovat vliv tohoto pravidla na vnitřní datovou strukturu a tím i jeho funkčnost.
Grafické prostředí popisovaného nástroje je vyobrazeno na obr. 6.12. V levé části vidíme výpis TSR
struktury systému Epos pro větu „Vlak dnes nejede.“, ve které jsou barevně odlišeny různé prozodické úrovně od
jednotlivých hlásek až po celý text. V pravé části je možné volit viditelnost jednotlivých prozodických vrstev
a je zde také statistika jejich četnosti.
Obr. 6.12 Nástroj pro výpis a modifikaci vnitřní datové struktury systému
Pro snadnou implementaci nástroje Epos TSR Tracking byl v souboru cfg/lng/czech/czech.ini
definován softwarový přepínač „tsr_tool(b)=false“, jehož ovládání bylo rovněž zabudováno do grafického
prostředí klienta WinSay, viz. obr. 6.11. Pro zobrazení struktury TSR je pak nutné pouze v souboru s pravidly
zapsat kód
if tsr_tool
{
debug tsrtool text
}
a u klienta WinSay aktivovat přepínač „TSR Tool“.
Nástroj Epos TSR Tracking je vytvořen jako DLL knihovna tsrtool.dll pro platformu Win32. Pokud při
zpracování pravidel narazí systém Epos na zápis „debug tsrtool“, předá ukazatel na datovou strukturu TSR
právě zpracovávaného textu DLL knihovně, která tuto strukturu zobrazí a umožní její editaci. Po skončení
editace knihovna předá řízení zpět systému Epos, který pokračuje v aplikaci pravidel na modifikovanou strukturu
TSR. Knihovnu tsrtool.dll, která je napsána v jazyce C++, je možné rovněž získat na stránkách projektu
Epos.
72
6.7
Syntéza řeči s použitím generování základního tónu pomocí lineární predikce
Pro implementaci lineárně predikčního intonačního modelu v TTS systému Epos musel být nejprve tento
systém modifikován a rozšířen na základě výsledků popsaných v kap. 4 a 5. Do řečového syntezátoru tdpsyn
byl implementován lineárně predikční intonační model a modelování základního tónu na základě analýzy textu
bylo nahrazeno modelováním buzení lineárně predikčního intonačního modelu. Blokové schéma upraveného
TTS systému Epos s použitím generování základního tónu pomocí lineární predikce je na obr. 6.13 (modře
označené bloky byly přidány). Z tohoto obrázku je patrné, že u jednotek ve vnítřní datové reprezentaci systému
Epos je parametr f využit pro přenos buzení lineárně predikčního intonačního modelu namísto hodnot
základního tónu. V části vlastní řečové syntézy je toto buzení nejprve vedeno do LPC syntezátoru, jehož výstup
je, po průchodu filtrem, použit k nastavení periody řečového syntezátoru. Výpis kódu upraveného řečového
syntezátoru tdpsyn pro systém Epos používající lineárně predikční intonační model je uveden v příloze F. Pro
ilustraci je uveden v příloze G výpis zjednodušených pravidel pro fonetický přepis češtiny (soubor trans.rul).
Výpis původních pravidel pro přímé modelování intonační kontury pomocí pravidel je uveden v příloze H
a výpis nových pravidel pro modelování buzení lineárně predikčního intonačního modelu je uveden v příloze I.
Obr. 6.13 TTS systém s použitím generování základního tónu pomocí lineární predikce.
6.7.1
Návrh pravidel pro buzení lineárně predikčního intonačního modelu
Pravidla pro generování buzení lineárně predikčního intonačního modelu pracují tak, že text je nejprve
rozdělen na intonační úseky, přičemž každý intonační úsek je zařazen do patřičné kategorie. Na základě
struktury tohoto intonačního úseku je následně vygenerován budící signál, který je odeslán do syntezátoru. Pro
vlastní vytváření buzení je využito pravidlo contour, které je použito i pro přímé modelování intonačních
kontur, viz. příloha H. Toto pravidlo nanáší na cílové jednotky uvnitř zasažené jednotky přímo definovanou
prozodickou konturu (viz. příloha C), ale nechová se aditivně, tj. naneseme-li na stejnou jednotku jinou
prozodickou konturu, tato nová kontura přepíše starou.
Pro potřeby modelování buzení lineárně predikčního intonačního modelu se ukázalo nezbytné modifikovat
systém Epos tak, aby umožňoval aditivní chování pravidla contour při zachování možnosti použít původní
chování pro jiné způsoby modelování prozodie. Jelikož vlastní realizace pravidla contour ve zdrojovém souboru
src/unit.cc již s možností aditivního chování počítá, bylo nutné zavést novou, hlasově závislou, logickou
proměnnou do souboru options.lst umožňující volbu chování pravidla contour pomocí zápisu:
VOICE_OPTION (additive_cont, additive_cont, "additive_cont", BOOL, false)
Tímto kódem jsme vlastně definovali na hlasu závislý přepínač additive_cont, který je standartně vypnutý
a před syntézou pomocí LP intonačního modelu je nutné jej aktivovat. Dále bylo nutné upravit volání pravidla
contour ve zdrojovém souboru src/rule.cc pomocí zápisu:
void r_contour::apply(unit *root)
{
root->contour(target, contour, l, padd_start, quantity, this_voice->additive_cont);
}
Podobný problém budeme řešit při volbě souboru s prozodickými pravidly. Z tohoto důvodu byla v souboru
options.lst definována ještě logická, hlasově závislá, proměnná lpcprosody pomocí zápisu:
VOICE_OPTION (lpcprosody, lpcprosody, "lpcprosody", BOOL, false)
73
V souboru s pravidly pro češtinu (czech.rul) je pak volba prozodie zapsána takto:
if use_prosody
{
if
lpcprosody
{
@include "lpcpros.rul"
}
if
!lpcprosody
{
if
naive_prosody
{
@include "naive.rul"
}
if
!naive_prosody
{
@include "prosody.rul"
}
}
}
Bude-li proměnná lpcprosody kladná použije se soubor s pravidly pro modelování buzení lineárně predikčního
modelu „lpcpros.rul“.
V souboru lpcpros.rul jsou intonační úseky rozděleny na různé typy podle různých hledisek. Podle
polohy se rozlišují úseky na iniciální, mediální, finální ukončené a finální neukončené, podle typu věty pak na
oznamovací, otázku zjišťovací a otázku doplňovací. Původní pravidla systému Epos pro češtinu nerozlišují mezi
větou oznamovací a otázkou doplňovací, používají jen dva typy vět. Otázka doplňovací byla zavedena pod
typem „D“ (ostatní typy byly převzaty z původních prozodických pravidel).
6.7.2
Realizace lineárně predikčního intonačního modelu v syntezátoru
V současné době poskytuje nejkvalitnější syntézu češtiny v systému Epos syntezátor v časové oblasti
tdpsyn. Z tohoto důvodu byl lineárně predikční intonační model nejprve realizován pro tento syntezátor, jehož
kód je uložen v souboru src/tdpsyn.h a src/tdpsyn.cc, jehož výpis je uveden v příloze F.
Pro rozlišení způsobu modelování prozodie se zde rovněž používá hlasově závislá proměnná lpcprosody,
např. kód pro inicializaci proměnných, lineárně predikčního syntetizujícího filtru a výstupního filtru vyhlazujícího intonační konturu bude v konstruktoru třídy tdpsyn vypadat takto:
if (v->lpcprosody) {
int i;
for (i = 0; i < LPC_PROS_ORDER; lpfilt[i++] = 0);
for (i = 0; i < MAX_OFILT_ORDER; ofilt[i++] = 0);
sigpos = 0;
lppstep = LP_F0_STEP * v->samp_rate / 1000;
lpestep = LP_DECIM * lppstep;
basef0 = v->init_f;
lppitch = v->samp_rate / basef0;;
}
Základním parametrem je proměnná lppstep udávající periodu výpočtu hodnoty základního tónu z výstupu
lineárně predikčního intonačního modelu ve vzorcích. Tato proměnná se vypočítá při inicializaci na základě
vzorkovacího kmitočtu použitého hlasového inventáře a deklarované proměnné LP_F0_STEP udávající periodu
výpočtu základního tónu v milisekundách. Obvyklá hodnota periody výpočtu hodnoty základního tónu je 8 ms.
Pro názornost jsou deklarované proměnné pro lineárně predikční model uvedeny v Tab. 6.10.
Tab. 6.10 Deklarace proměnných pro lineárně predikční intonačnmí model v souboru tdpsyn.cc
#define
#define
#define
#define
#define
LP_F0_STEP 8
LP_DECIM 10
LP_F0_ORD 4
F0_FILT_ORD 9
LP_EXC_MUL 1.0
/*
/*
/*
/*
/*
step of F0 analysis for linear prediction */
F0 analysis decimation coeff. for linear prediction */
order of F0 contour LP analysis */
F0 contour filter order */
LP excitation multipicator */
Proměnná lpestep udává periodu výpočtu hodnoty základního tónu pomocí lineárně predikčního
intonačního modelu a je učena při inicializaci pomocí proměnné lppstep a deklarované proměnné LP_DECIM
udavající decimační poměr lineárně predikčního intonačního modelu. Deklarovaná proměnná LP_F0_ORD udává
řád predikce lineárně predikčního intonačního modelu a nabývá obvykle hodnoty 4, proměnná F0_FILT_ORD
74
pak udává řád výstupního filtru vyhlazujícího intonační konturu. Pomocí proměnné LP_EXC_MUL můžeme
ovlivňovat dynamiku výstupní intonační kontury. Sandartně je tato multiplikativní konstanta rovna jedné.
75
76
7 Celkový přínos práce
Dříve, než přistoupím ke shrnutí výsledků této práce, bych chtěl zdůraznit, že jejím cílem nebylo úplné
vyřešení problematiky modelování prozodie řeči pomocí lineární predikce, ale ověření možnosti použití této
metody modelování intonace a naznačení směru dalšího rozvoje a praktického použití této metody.
Z tohoto pohledu se domnívám, že cíle práce byly splněny, a dosažené výsledky lze stručně popsat
v následujících bodech:
●
Byl realizován lineárně predikční kodér a dekodér průběhu základního tónu řeči a byla ověřena jeho
funkčnost v praxi implementací do řečových LPC a TD-PSOLA vokodérů. Tento LPC kodér/dekodér
průběhu základního tónu řeči byl nejprve, včetně řečových vokodérů, ověřen v prostředí Matlab a následně
implementován do systému SpeechStudio. LPC kodér/dekodér průběhu základního tónu řeči s oběma
řečovými vokodéry byl následně testován na všech větách z prozodické databáze. Rozdíl mezi přirozenou
konturou základního tónu a konturou resyntetizovanou pomocí lineárního prediktoru se ukázal u tohoto LPC
kodéru/dekodéru průběhu základního tónu řeči z percepčního hlediska zanedbatelný.
●
Byly ověřovány různé způsoby aproximace zbytkového signálu a jejich vliv na výsledné kvalitě řeči. Na
základě získaných výsledků byly optimalizovány parametry LPC kodéru a dekodéru průběhu základního
tónu řeči s ohledem na minimální složitost a maximální kvalitu řeči. Pro účely hodnocení použité
aproximace zbytkového signálu lineárního prediktoru byla použita střední kvadratická chyba průběhu
základního tónu po resyntéze pomocí lineární predikce.
●
Byly zkoumány prozodicky relevantní závislosti zbytkového signálu lineární predikce průběhu základního
tónu řeči pomocí řečové databáze s automaticky vloženými značkami hranic suprasegmentálních celků.
Z výsledků vyplývá, že buzení lineárně predikčního intonačního modelu je nutné provádět na úrovni
jednotlivých slabik. Výsledky ukazují, že v další práci je nutné se zaměřit na víceprůchodové optimalizační
algoritmy umožňující aproximaci zbytkového signálu lineární predikce s výslednou minimalizovanou střední
kvadratickou chybou resyntetizované intonační kontury.
●
Byla testována možnost využití LPC analýzy průběhu základního tónu řeči pro tvorbu nových prozodických
pravidel. Pro využití zbytkového signálu lineární predikce pro návrh prozodických pravidel je nutné buď
implementovat lexikální analýzu psaného textu, což je problém pro češtinu dosud nevyřešený, nebo využít
zbytkový signál lineární predikce pro natrénování umělé neuronové sítě. Na vstupy neuronové sítě by byly
přivedeny informace o hranicích suprasegmentálíí a jejich vzájemné četnosti a neuronová síť by byla
trénována na zbytkový signál lineárního prediktoru. Po skončení trénovací fáze by neuronová síť generovala
přímo budící signál lineárně predikčního syntetizujícího filtru, na jehož výstupu by se objevil průběh
základního tónu syntetické promluvy. Na modelování buzení lineárně predikčního intonačního modelu
umělou neuronovou sítí se v současné době pracuje, ale jeho podrobný popis přesahuje rámec této práce.
●
Byla ověřena možnost automatické generace zbytkového signálu lineární predikce z psaného textu za
účelem použití LPC modelování při automatické syntéze řeči z psaného textu. Lineárně predikční intonační
model, navržený v rámci této práce, byl implementován do syntezátoru řeči v časové oblasti TDPSYN
pracující na principu TD-PSOLA. Modul syntézy TDPSYN, který je součástí systému Epos, poskytuje, ve
spojení s trifonovými inventáři vytvořenými v ÚRE, v současné době nejkvalitnější syntézu češtiny.
TTS systém Epos byl v rámci této práce rozšířen o podporu LPC intonačního modelu na úrovni pravidel. Pro
účely přehledné práce se systémem Epos byl implementován grafický klient tohoto systému s názvem „WinSay“
umožňující mimo jiné přehlednou volbu jazyka, příslušného hlasu a změnu prozodických hodnot. Pro účely
ladění pravidel pro systém Epos byl v rámci této práce vytvořen softwarový nástroj „Epos TSR Tracking“
umožňující zobrazení a modifikaci vnitřní datové struktury systému Epos během provádění jednotlivých
pravidel, což se ukázalo nezbytné při vytváření pravidel budících lineárně predikční intonační model.
Pro modelování buzení lineárně predikčního intonačního modelu v systému Epos byla navržena první verze
pravidel. Tato pravidla pro buzení lineárně predikčního intonačního modelu byla dále odladěna pomocí testovací
prozodické databáze vytvořené v rámci této práce a na základě subjektivních poslechových testů je možné
prohlásit, že poskytují přirozenější prozodii než původní pravidla standartně obsažená v distribuci systému Epos
modelující přímo intonační konturu. Pravidla pro buzení lineárně predikčního intonačního modelu navíc řeší
intonaci otázek doplňovacích, kterou původní pravidla vůbec neřešila. TTS systém Epos s prozodií řízenou
pomocí lineárně predikčního intonačního modelu je v současné době testován renomovanou firmou pro praktické
komerční nasazení s kladným ohlasem na kvalitu modelování prozodie.
Využití LPC intonačního modelu do budoucna se zdá být perspektivní především ve spojení s umělými
neuronovými sítěmi, neboť budící signál pro syntetizující filtr lineárně predikčního intonačního modelu je
77
mnohem jednodušší než výsledný průběh základního tónu. Při použití více umělých neuronových sítí pro
jednotlivé typy intonačních úseků pro generování budícího signálu pro syntetizující filtr lineárně predikčního
intonačního modelu je úloha pro jednotlivé neuronové sítě mnohem jednodušší a jednoznačnější, než při použití
jediné složité neuronové sítě přímo pro generování průběhu základního tónu řeči. Použití neuronových sítí pro
buzení prozodických intonačních modelů je jednou z oblastí, které bych se chtěl ve své další práci intenzivně
věnovat.
Výzkum prozodických modelů, popsaný v této práci, má velký význam pro další vývoj v oblasti modelování
prozodie češtiny. Na tento výzkum přímo navazuje (a z jeho výsledků čerpá) grant „Hlasové technologie v podpoře informační společnosti“ Grantové agentury České republiky č. 102/02/0124 na léta 2002 až 2004.
Tato práce vznikla za finanční podpory Grantové agentury České republiky v rámci grantu č. 102/96/K087
„Teorie a aplikace hlasové komunikace v češtině“ a Ministerstva školství mládeže a tělovýchovy v rámci
projektu COST 258 „Přirozenost syntetické řeči“.
78
8 Přílohy
Zde jsou uvedeny přílohy, na které odkazuji v textu práce.
8.1
A
B
C
D
E
F
G
H
I
J
Seznam příloh
- Databáze namluvených vět
- Tabulka fonetického přepisu češtiny
- Přehled transkripčních a prozodických pravidel systému Epos
- Přehled vytvořených programů, podprogramů a funkcí
- Výpisy některých podprogramů a funkcí
- Výpis kódu TD-PSOLA syntezátoru s implementovaným modelováním prozodie pomocí lineární predikce
- Fonetická transkripce češtiny pro systém Epos
- Modelování prozodie češtiny pro systém Epos podle pravidel Prof. Palkové
- Modelování prozodie češtiny pro systém Epos pomocí lineárně predikčního modelu
- Popis přiloženého disku CD-ROM
79
8.2
Příloha A – Seznam namluvených vět
Tab. A.1 Kategorie vět použitého prozodického korpusu
věta
otázka
doplňovací
oznamovací
rozkazovací
otázka
zjišťovací
jednoduchá
souvětí dvou vět
souvětí tří vět
krátká
dlouhá
krátká
dlouhá
krátká
dlouhá
d1k1
d1d1
d2k1
d2d1
d3k1
d3d1
d1k2
d1d2
d2k2
d2d2
d3k2
d3d2
d1k3
d1d3
d2k3
d2d3
d3k3
d3d3
o1k1
o1d1
o2k1
o2d1
o3k1
o3d1
o1k2
o1d2
o2k2
o2d2
o3k2
o3d2
o1k3
o1d3
o2k3
o2d3
o3k3
o3d3
r1k1
r1d1
r2k1
r2d1
r3k1
r3d1
r1k2
r1d2
r2k2
r2d2
r3k2
r3d2
r1k3
r1d3
r2k3
r2d3
r3k3
r3d3
z1k1
z1d1
z2k1
z2d1
z3k1
z3d1
z1k2
z1d2
z2k2
z2d2
z3k2
z3d2
z1k3
z1d3
z2k3
z2d3
z3k3
z3d3
Tab. A.2 Věty prozodického korpusu
o1k1
o1k2
o1k3
o1d1
o1d2
o1d3
o2k1
o2k2
o2k3
o2d1
o2d2
o2d3
o3k1
o3k2
o3k3
o3d1
o3d2
o3d3
z1k1
z1k2
z1k3
z1d1
z1d2
z1d3
z2k1
z2k2
z2k3
z2d1
z2d2
z2d3
Vlak dnes nejede.
Jiné údaje nemáme.
Soubor je uložen.
Vlak z Pardubic do Plzně dnes odpoledne nejede.
Jiné podrobné údaje o kulturních akcích nemáme.
Soubor obsahující tabulky dat je uložen.
Trať se opravuje, a proto vlak dnes nejede.
Výsledek nebude přesný, protože nemáme jiné údaje.
Soubor je uložen a program bude ukončen.
Trať z Pardubic do Plzně se tento týden opravuje, a proto osobní vlak ve čtrnáct padesát nejede.
Výsledek našeho výpočtu nebude dost přesný, protože zatím nemáme k dispozici jiné přesné údaje.
Soubor obsahující tabulky dat je uložen a program bude po stisknutí klávesy Enter ukončen.
Trať se opravuje, a proto je provoz omezen a vlak dnes nejede.
Výsledek nebude tak přesný, jak jsme chtěli, protože nemáme jiné údaje.
Soubor je uložen, program bude ukončen a počítač se vypne.
Trať z Pardubic do Plzně se tento týden opravuje, a proto je dočasně omezen provoz mezi oběma městy,
dokud nebudou odstraněny následky prudkého deště.
Výsledek posledního výpočtu nebude tak přesný, jak jsme při zahajování výzkumného úkolu chtěli,
protože v současné době nemáme jiné přesné údaje.
Soubor obsahující úplné tabulky dat je uložen, program bude ukončen stiskem klávesy Enter a počítač se
po uložení ostatních programů vypne.
Vlak dnes nejede?
Jiné údaje nemáme?
Soubor je uložen?
Vlak z Pardubic do Plzně dnes odpoledne nejede?
Jiné podrobné údaje o kulturních akcích nemáme?
Soubor obsahující tabulky dat je uložen?
Vlak dnes nejede, protože se trať opravuje?
Výsledek není přesný, protože nemáme jiné údaje?
Bude program ukončen, když je soubor uložen?
Vlak z Pardubic do Plzně dnes nejede, protože se železniční trať opravuje po povodních u Berouna?
Výsledek našeho výpočtu není dost přesný, protože nemáme k dispozici jiné přesné údaje?
Bude program po stisknutí klávesy Enter ukončen, když je soubor obsahující tabulky dat uložen?
80
z3k1
z3k2
z3k3
z3d1
z3d2
z3d3
d1k1
d1k2
d1k3
d1d1
d1d2
d1d3
d2k1
d2k2
d2k3
d2d1
d2d2
d2d3
d3k1
d3k2
d3k3
d3d1
d3d2
d3d3
r1k1
r1k2
r1k3
r1d1
r1d2
r1d3
r2k1
r2k2
r2k3
r2d1
r2d2
r2d3
r3k1
r3k2
r3k3
r3d1
r3d2
r3d3
n1_1
n1_2
n1_3
n1_4
Vlak dnes nejede, protože se opravuje trať a pokládají koleje?
Výsledek není přesný, protože jiné údaje nemáme a výpočet byl přerušen?
Uloží se soubor, když je program ukončen a počítač se vypne?
Vlak z Pardubic do Plzně dnes odpoledne nejede, protože se opravuje trať po povodních u Berouna, o
kterých se mluvilo v ranním rozhlasovém vysílání?
Výsledek našeho výpočtu není dost přesný, protože nemáme k dispozici jiné přesné údaje?
Uloží se soubor obsahující tabulky dat, když je program na jejich zpracování ukončen a počítač se bez
uložení ostatních programů vypne?
Kudy jede vlak?
Jaké údaje máme?
Kam bude soubor uložen, ukončíte-li program?
Jak často jezdí osobní vlak z Pardubic do Plzně?
Jaké údaje o kulturních akcích v Praze máme?
Kam jste uložili soubor obsahující tabulky dat?
Kudy jede vlak, když se trať opravuje?
Jaké údaje použijete, aby byl výsledek přesný?
Kam bude soubor uložen, ukončíte-li program?
Kudy dnes jede vlak z Pardubic do Plzně, když se železniční trať opravuje po povodních u Berouna?
Jaké údaje o stavu zaměstnanců použijete, aby byl výsledek vašeho výpočtu dostatečně přesný?
Kam bude uložen soubor obsahující tabulky dat o zaměstnancích, ukončí-li se stiskem klávesy Enter
běžící program?
Kudy jede vlak, na který čekáme, když se opravuje trať?
Jaké údaje použijete, aby byl výsledek přesný a výpočet nebyl přerušen?
Kam bude soubor uložen, ukončíme-li program a vypneme počítač?
Kudy jede vlak převážející řezané dřevo, které bylo dočasně uskladněno v Loděnicích u Berouna, když se
trať po nedávných povodních opravuje?
Jaké údaje o stavu zaměstnanců použijete, aby byl výsledek vašeho výpočtu přesný a výpočet nebyl před
skončením poslední fáze přerušen?
Kam bude uložen soubor obsahující tabulky dat, ukončíme-li po stisku klávesy Enter program a vypneme
počítač bez uložení ostatních programů?
Vyhledejte spojení.
Zadejte své údaje nebo proveďte volbu.
Uložte tento soubor.
Vyhledejte spojení mezi Pardubicemi a Plzní dnes odpoledne.
Zadejte podrobné údaje o kulturních akcích v Praze.
Uložte urychleně soubor obsahující tabulky dat.
Vyhledejte spojení a vytiskněte je.
Zadejte své údaje nebo proveďte volbu.
Uložte tento soubor, dříve než ukončíte program.
Vyhledejte všechna dnešní spojení z Pardubic do Plzně a vytiskněte je v tabulce po potvrzení klávesou
Enter.
Zadejte pomocí klávesnice všechny své osobní údaje nebo proveďte myší volbu příslušné operace.
Uložte soubor obsahující úplné tabulky dat, dříve než ukončíte stiskem klávesy Enter běžící program.
Vyhledejte spojení, která nás zajímají, a vytiskněte je.
Zadejte své údaje nebo vyberte operaci, kterou si přejete provést.
Uložte tento soubor, dříve než ukončíte program, ve kterém jste pracovali.
Vyhledejte všechna dostupná vlaková spojení, která nás v dané situaci zajímají, a po stisku klávesy Enter
je vytiskněte.
Zadejte pomocí klávesnice své údaje nebo vyberte ze seznamu zobrazeného na obrazovce operaci, kterou
si přejete před ukončením programu provést.
Uložte soubor obsahující tabulky dat, dříve než stiskem klávesy Enter ukončíte program, ve kterém jste
po celou dobu výpočtu pracovali.
Univerzita Karlova patří bezesporu k nejstarším evropským univerzitám.
Významné postavení, které si vydobyla v kontextu evropských univerzit, však není neměnnou konstantou
a nelze je pojistit ani sebedokonalejším scénářem oslav šestistého padesátého výročí jejího založení.
Úroveň každé univerzity lze posuzovat z různých hledisek.
Jedním z nich zůstává úroveň absolventů, která je pochopitelně těsně svázána s úrovní učitelského sboru.
81
n1_5 To je důvod, proč univerzity věnují mimořádnou pozornost výběru svých učitelů, především docentů a
profesorů.
n1_6 Vedení naší univerzity se vyrovnalo s křivdami minulosti urychleným jmenováním nových docentů a
profesorů v rámci rehabilitačního řízení.
n1_7 Po skončení rehabilitací bylo nutné jasná pravidla habilitačních a jmenovacích řízení nově stanovit.
n1_8 Pokud pohlížíme na titul docenta a profesora jako na titul vědecko-pedagogický, je zřejmé, že uchazeč
musí naplňovat oba atributy.
n1_9 Posoudit kvalitu i kvantitu obou činností bývá ovšem mimořádně obtížné zejména proto, že
vysokoškolský zákon žádná detailní kritéria pro habilitační či jmenovací řízení nestanoví.
82
8.3
Příloha B – Tabulka fonetického přepisu češtiny
Tab. B.1 Fonetický přepis českých hlásek
Pořadí
Název hlásky
autorem
použitý zápis
(Epos)
zápis dle
doc. Ptáčka
[PTÁ92]
zápis dle
PAC
[NOU97]
IPA notace
Příklad
1
a „krátké á“
a
A
a
a
pas
2
á „dlouhé á“
á
A:
á
a:
táta
3
b „bé“
b
B
b
b
bota
4
c „cé“
c
C
c
ts
cíl
5
dz „dz“
Z
]
C
dz
leckdy
6
č „čé“
č
c
č
t
čas
7
dž „dž“
Ž
}
Č
d
džbán
8
d „dé“
d
D
d
d
dům
9
ď „dé s háčkem“
ď
d
ď

děd
10
e, ä „krátké é“
e
E
e

les
11
é, ö „dlouhé é“
é
E:
é
e:
lék
12
f „ef“
f
F
f
f
forma
13
g „gé“
g
G
g

kde
14
h „há“
h
H
h

had
15
ch „chá“
x
X
X
x
chata
16
ch „znělé ch“
X
není
není

abych byl
17
i, y „krátké í“
i
I
i

myš
18
í, ý, ü „dlouhé í“
í
I:
í
i:
pít
19
j „jé“
j
J
j
j
jas
20
k „ká“
k
K
k
k
krk
21
l „el“
l
L
l
l
led
22
m „em“
m
M
m
m
mák
23
m „retozubné em“
není
není
M

tramvaj
24
n „en“
n
N
n
n
noc
25
n „velární en“
N
není
N

banka
26
ň „eň“
ň
n
ň

nic
27
o „krátké ó“
o
O
o

rok
28
ó „dlouhé ó“
ó
O:
ó
o:
móda
29
p „pé“
p
P
p
p
pes
30
r „er“
r
R
r
r
ret
31
ř „znělé eř“
ř
r
ř
r
moře
32
ř „neznělé eř“
Ř
není
Ř
r
keř
33
s „es“
s
S
s
s
sen
34
š „eš“
š
s
š

šaty
35
t „té“
t
T
t
t
tam
36
ť „ťé“
ť
t
ť
c
kotě
37
u „krátké ú“
u
U
u

kus
38
ú, ů „dlouhé ú“
ú
U:
ú
u:
půl
39
v „vé“
v
V
v
v
vlak
40
z „zet“
z
Z
z
z
zub
83
41
ž „žet“
ž
z
ž

žal
42
au
A
AU
au
au
auto
43
eu
E
EU
eu
eu
eunuch
44
ou
O
OU
ou
ou
mouka
45
hlasivkový ráz
'
'
!

ne’existuje
46
neutrální samohláska
@
@
není

B@
47
pauza
#
není
sp
, 
48
šev
|
|
_
.
84
na|uka
8.4
Příloha C – Přehled transkripčních a prozodických pravidel systému Epos
Transkripční pravidla jsou v systému Epos zapisována do souborů s koncovkou „.rul“ a jsou vykonávána
v pořadí, v jakém jsou v tomto souboru zapsána. Hlavní soubor s pravidly pro příslušný jazyk (pro češtinu např.
„czech.rul“) se nachází v adresáři příslušného jazyka (pro češtinu tedy „cfg/lng/czech/czech.rul“). Do
tohoto hlavního souboru s pravidly je možné dále načítat pomocí pravidla include jiné soubory s pravidly,
např. zápis „@include trans.rul“ vloží na dané místo transkripční pravidla uložená v souboru trans.rul.
Komentáře do souborů s pravidly je možné vkládat pomocí znaků „#“ a „;“.
V souborech s pravidly je rovněž možné používat proměnné (makra) pomocí zápisu identifikátor =
nahrazení, např. zápis „$vovel = aeiouy“ nám definuje proměnnou vovel obsahující krátké samohlásky.
Při zápisu pravidel je možné použít operátor except reprezentovaný znakem „!“ způsobující negaci. Hlavní
druhy transkripčních a prozodických pravidel systému Epos jsou uvedeny v následujících odstavcích. Podrobný
popis je možno najít v [EPOS].
8.4.1
Pravidla využívající slovníky
Pravidla tohoto typu pracují s výčtovými slovníky o velikosti pohybující se od několika položek až po
megabajtové, automaticky generované, seznamy. Každý řádek slovníku představuje jednu položku sestávající ze
dvou částí oddělených navzájem mezerou. Obvykle bývá část první nahrazena částí druhou. Parametrem
slovníkově orientovaných pravidel může být název souboru slovníku nebo přímo výčet jednotlivých položek
v uvozovkách oddělených vzájemně čárkou.
subst
záměna podřetězce. Parametrem je slovník, v němž se budou vyhledávat ekvivalenty. Zasažená
jednotka musí být hláska. Zkoušejí se všechny podřetězce (nejdelší napřed), dokud není ekvivalent
nalezen. Ten by měl nahradit příslušnou část slova. Pokud první část položky slovníku začíná
znakem „^“ nebo končí znakem „$“, hledají se poze podřetězce ležící na začátku nebo na konci
zasažené jednotky.
prep
totéž, jako subst, ale slovník musí obsahovat nikoli libovolný podřetězec, ale přímo hledanou
jednotku. Dojde-li k nalezení a případnému nahrazení danému hashovací tabulkou pojmenovanou
parametrem, připojí se obsah zasažené jednotky na začátek jejího pravého souseda a ona sama je
vyřazena. (Nemá-li souseda, nic se nestane.)
postp
analogický s prep, ale obsah zasažených jednotek se připojuje na konec souseda zleva. prep
a postp nejsou totéž, co předložky a nepřízvučné příklonky, ale je praktické si to myslet.
prosody přiřazení prozodických rysů jednotlivým uzlům TSR, v současné době je nahrazeno pohodlnějším
pravidlem contour. Parametrem pravidla prosody je jméno souboru formátovaného jako slovník,
každé prozodické nastavení pro jednu ze tří prozodických veličin (tvání t, intenzita i a základní tón
f) je na vlastním řádku. Struktura vlastního nastavení je velmi jednoduchá, např. i/3:4 -20. První
znak, udávající nastavovanou veličinu, musí být t, i nebo f. První číslo udává pozici uvnitř
jednotky jejíž délka je určena druhým číslem. Třetí číslo určuje změnu příslušné prozodické
veličiny. Pokud je zasaženou jednotkou slabika uvnitř přízvukových taktů, sníží nám zápis
v uvedeném příkladu intenzitu třetí slabiky u všech čtyřslabičných taktů o 20%.
segments vytvoření vrstvy obsahující řečové jednotky hlasového inventáře. První část slovníkové položky
obsahuje obvykle tříznakový řetězec obsahující zasaženou hlásku a její možné okolí. Pokud okolí
není definováno nahrazuje se znakem „?“. Druhá část položky obsahuje číslo jednotky v příslušném
hlasovém inventáři. V příštích verzích systému Epos bude převod fonémů na řečové jednotky řešen
na úrovni vlastních řečových syntezátoru a segmentální úroveň již nebude definována pomocí TSR.
with
8.4.2
toto pravildlo patří do skupiny podmíněných pravidel (viz. odst. 8.4.6), pracuje však se slovníkem
zasažených jednotek.
Obsahem řízená pravidla
regress změna hlásek či jiných jednotek podle jejich bezprostředního okolí. Parametr pravidel progress a
regress je tvaru co-se-mění>na-co(levé-okolí_pravé-okolí), např. zápis ve tvaru
"ptk>bdg(aeiou_aeiou)" oznělí uvedené intervokalické explozívy. Změna se vyhodnocuje
zprava doleva. Změní-li se jednotka na hodnotu delete_me (momentálně '0'), sama se ihned
zruší. Obsahuje-li rušená jednotka jiné jednotky, zaniknou rovněž. Seznam "na-co" může být
tvořen jediným znakem. V tom případě se předpokládá, že se v daném okolí mění všechny jednotky
"co-se-mění" na tento znak. Jinak musí být počet znaků na obou stranách '>' stejný a znaky se
85
mění na znaky s odpovídajícím pořadím v "na-co". Seznam "co-se-mění" může též obsahovat
znak juncture (nyní '0'). V takovém případě mezi jednotkami danými levým a pravým okolím
vznikne jedna nová jednotka s obsahem daným příslušnou položkou seznamu "na-co". Levé
i pravé okolí mohou též obsahovat symbol juncture pro označení předělu úrovně, jež tvoří rozsah
pravidla. V literatuře se k těmto účelům často používá symbol '#'. Těmito pravidly není možno
zpracovávat znak '0' jakožto znak vyskytující se v textu, neboť takový znak se nikdy nemění. K jeho
zpracování je nutno sáhnout po pravidlu např. typu subst nebo regex.
progress jako regress, ale změna se vyhodnocuje zleva. regress a progress nejsou totéž, co regresivní a
progresivní fonetická změna, ale je praktické si to myslet.
8.4.3
Strukturovaná pravidla
raise
přesun hlásky (resp. jejího symbolu) nebo jiné jednotky do vyšší úrovně. Užívá se zejména, pokud
segmentální jednotky přímo ovlivňují suprasegmentália, jako třeba rozdělení otázek na zjišťovací
a doplňovací. Parametr je tvaru co-cestuje:kdy-cestuje, např. "q:?!" znamená, že znak q
nahradí otazník nebo vykřičník ve všech otazníkových a vykřičníkových větách, které obsahují "q".
(Kopie "q" na hláskové rovině ale zůstává, je nutno dát pozor na rozsah pravidla). Parametry
co-cestuje i kdy-cestuje nemusí být jednotlivé znaky, mohou to být např. řetězce používající
operátor "vyjma" (viz níže). Rozsah pravidla je úroveň, kde může dojít ke změně, v uvedeném
případě věta, zasažená jednotka je úroveň, ze které mohou znaky vyjít, v uvedeném případě hláska.
syll
rozdělení přízvukových taktů na slabiky podle teorie znělosti.
8.4.4
Pravidla modelující prozodii
Větná prozodie je v systému Epos modelována pomocí přiřazování hodnot prozodických veličin jednotlivým
uzlům vniřní reprezentace TSR na jednolivých úrovních. Tyto změny se zadávají v procentech, přičemž 100% je
neutrální hodnota (použijí se prozodické hodnoty určené hlasovým inventářem). Prozodická nastavení na
různých úrovních se sčítájí a jsou přiřazovány na segmentální úrovni jednotlivým řečovým jednotkám. Např.
hláska s úrovní f=130 uvnitř slova s f=120 se vytvoří z řečové jednotky s f=150. Systém Epos umožňuje
rovněž multiplikativní skládání prozodických veličin jednotlivých úrovní.
contour toto pravidlo přiřadí prozodickou konturu jednotce v příslušné úrovni, např. nastaví přízvučné
slabiky uvnitř přízvukových taktů. Parametr tohoto pravidla přiřazuje jednoduchou prozodickou
word
syll“ přiřadí sestupnou intonační konturu
konturu, např. „contour f/+2:0:-2
tříslabičným taktům. První písmeno parametru opět určuje příslušnou prozodickou veličinu,
následují parametry kontury, zasaženou jednotku a cílovou (ovlivňovanou) jednotku. Uvnitř
paramerů kontury může být použit znak „*“ označující libovolné opakování takto označené
jednotky. Pravidlo contour bylo použito i pro vytváření budícího signálu pro lineárně predikční
intonační model, viz. příloha I.
prosody přiřazení prozodických rysů jednotlivým uzlům TSR, viz. odst. 8.4.1.
smooth
8.4.5
vyhlazování průběhu jedné ze tří prozodických veličin.
Skládání pravidel
Při skládání jednotlivých pravidel se v systému Epos užívá těchto celků:
•
blok pravidel
•
výběr z pravidel
•
délkově závislá volba pravidel
Blok pravidel je sekvence pravidel uzavřená ve složených závorkách („{“ a „}“) a s výjimkou možného
určení zasažené jednotky nemá blok žádné parametry. Pravidla se uvnitř bloku aplikují sekvenčně. S blokem se
zachází jako s jednoduchým pravidlem a je přínosný především v kombinaci s pomíněnými pravidly, např.
konstrukce
if
{
podmínka
pravidlo_1
pravidlo_2
}
86
je-li splněna podmínka provede nejdříve pravidlo_1 a pak pravidlo_2. Jakékoli makro definované uvnitř
bloku je platné jen v rámci tohoto bloku.
Výběr z pravidel je sekvence pravidel uzavřená ve hranatých závorkách („[“ a „]“), kde se opět, s výjimkou
možného určení zasažené jednotky, neuvádějí žádné parametry. Při výběru je vykonáno jen jedno náhodně
zvolené pravidlo, přičemž pravděpodobnost výběru je pro všechna pravidla uzavřená ve hranatých závorkách
stejná. Pokud chceme pravděpodobnost ovlivnit, musíme použít tzv. opakování pravidel, např. zápis
[
3x prosody
prosody
]
typical.dic
variant.dic
bude aplikovat prozodii s pravděpodobností 75% ze souboru typical.dic a s pravděpodobností 25% ze
souboru variant.dic.
Délkově závislá volba pravidel je sekvence pravidel uzavřená v lomených závorkách („<“ a „>“)
a s výjimkou možného určení zasažené jednotky nemá žádné parametry. Provedeno je jen pravidlo, jehož pořadí
v bloku odpovídá počtu cílových jednotek v zasažené jednotce. Je-li pravidel v bloku méně než je počet cílových
jednotek v zasažené jednotce, provede se poslední pravidlo v bloku. Tomuto se dá předejít, uvedeme-li na
poslední místo v bloku pravidlo nothing.
8.4.6
Podmíněná pravidla
Podmíněná pravidla umožňují vykonání určitých pravidel nebo bloků pravidel pouze při splnění předem
daných podmínek.
inside
aplikuje pravidlo nebo blok pravidel pouze uvnitř jednotek specifikovaných parametrem, který tvoří
seznam hodnot zasažené jednotky příslušné úrovně, na které má být pravidlo (blok pravidel)
aplikováno. Může zde být použit operátor except. Každá jednotka splňující danou podmínku
(např. věta) je zpracovávána odděleně.
near
aplikuje pravidlo nebo blok pravidel pouze uvnitř jednotek obsahujících alespoň jednu ze
specifikovaných jednotek. Parametrem je seznam jednotek cílové úrovně, může zde být použit
operátor except.
with
aplikuje pravidlo nebo blok pravidel na seznam jednotek. Parametrem je název souboru se
seznamem jednotek.
if
aplikuje pravidlo nebo blok pravidel při splnění podmínky dané parametrem. V současné době je
možné používat pouze logické hodnoty.
8.4.7
Speciální pravidla
regex
substituce za regulární výraz. Parametr má podobu /regular_expression/replacement/. Toto
pravidlo je podobné pravidlu subst pouze s jednou slovníkovou položkou, je ovšem mnohem
výkonnější.
debug
výpis ladících informací během aplikace pravidel. Parametr elem provede výpis aktuálního stavu
parsovaného textu, parametr pause čeká na stisk klávesy a parametr tsrtool provede zobrazení
vnitřní datové struktury, viz. článek 6.6.
87
Příloha D – Přehled vytvořených programů, procedur a funkcí
V následujících tabulkách uvádím seznam a stručný popis všech programů, procedur a funkcí, které vznikly
v průběhu práce a jejichž použití bylo prezentováno v předchozích kapitolách.
Tab. 8.1 Přehled vytvořených programů
Název
Typ OS
SpeechStudio
Win32, Wine
Epos
Unix, Linux,
QNX, Win32
Unix, Linux,
QNX, Win32
TDPSYN
GTK WavEdit
Linux, Unix
ModProz
EPOS TSR Tracking
WinSay
Win32
Win32
Win32
Stručný popis programu
program pro analýzu, popis a segmentaci řeči
http://sstudio.ure.cas.cz/
plně konfigurovatelný TTS systém (vznikl ve spolupráci s mgr. Hanikou
z MFF UK) http://epos.ure.cas.cz/
syntéza řeči v časové oblasti pro systém Epos
http://epos.ure.cas.cz/
program pro analýzu, popis a segmentaci řeči
http://wavedit.ure.cas.cz/
http://sourceforge.net/projects/gtkwavedit/
modelování prozodie pomocí řečového syntezátoru
výpis a modifikace vnitřní datové struktury systému Epos
grafický klient pro TTS systém Epos
http://epos.ure.cas.cz/
Tab. 8.2 Přehled vytvořených procedur a funkcí
Název
Typ
prostředí
pitchn
f0interp
f0remerr
f0smooth
lpan1
lpsyn1
lp98
errinterp2
errinterp3
Matlab
Matlab
Matlab
Matlab
Matlab
Matlab
Matlab
Matlab
Matlab
errimp
pitchnc
Matlab
C
Stručný popis
detektor základního tónu využívajíci polaritní autokorelaci
lineární interpolace průběhu základního tónu řeči
odstranění chyb pitchdetektoru
vyhlazování průběhu F0 průměrujícím filtrem délky 5
lineárně predikční analýza
lineárně predikční syntéza
obecný IIR filtr
pulsní aproximace zbytkového signálu lineárního prediktoru
pulsní aproximace zbytkového signálu lineárního prediktoru s využitím
hranic suprasegmentálních celků
impulsní aproximace zbytkového signálu lineárního prediktoru
detektor základního tónu využívajíci polaritní autokorelaci
88
8.5
Příloha E – Výpisy některých podprogramů a funkcí
Výpisy funkcí f0interp, f0remerr a f0smooth provádějící lineární interpolaci a vyhlazování průběhu
základního tónu řeči (prostředí Matlab):
function f0int=f0interp(f0con)
%function f0interp(f0con)
%iterpolation of f0 contour
l=length(f0con)
f0pom=f0con;
idx=1;
while idx<l
while f0con(idx)~=0 & idx<l,
idx=idx+1;
end
lind=idx;
% the last left nonzero value
while f0con(idx)==0 & idx<l,
idx=idx+1;
end
rind=idx;
% the first right nonzero value
n=rind-lind;
if rind==l
for j=lind:rind, f0pom(j)=f0con(lind-1); end
elseif lind>1
step=(f0con(rind)-f0con(lind-1))/n;
for j=lind:rind-1, f0pom(j)=f0con(lind-1)+(j-lind+1)*step; end
else
for j=lind:rind-1, f0pom(j)=f0con(rind); end
end
end
f0int=f0smooth(f0remerr(f0pom,5));
%----------------------------------------------------------------------function f0int=f0smooth(f0con)
%function f0interp1(f0con)
%smoothing F0 contour
l=length(f0con);
f0int=f0con;
for idx=3:l-2
f0int(idx)=mean(f0con(idx-2:idx+2));
end
%----------------------------------------------------------------------function f0int=f0remerr(f0con,eps)
%function f0interp2(f0con,eps)
%pitch detection errors removing (1/2 F0, 2 F0) with treshold eps
l=length(f0con);
f0int=f0con;
for idx=4:l
test=abs(mean(f0int(idx-3:idx-1))/2-f0con(idx));
if test<eps
f0int(idx)=2*f0con(idx);
end
end
89
Výpisy funkcí lpan1, lpsyn1 a filt98 provádějící lineárně predikční analýzu a syntézu a filtraci signálu
(prostředí Matlab):
function err=lpan1(sig,koef)
%function err=lpan1(sig,koef)
% koef ... a filter coeff.
% err ... prediction residual signal
% 1999 [email protected]
ord=length(koef);
err(1)=sig(1);
for j=2:length(sig)
err(j)=sig(j);
for k=1:min(j-1,ord)
err(j)=err(j)+sig(j-k)*koef(k);
end
end
function syn=lpsyn1(exc,n,koef)
%function syn=lpsyn1(excit,n,koef)
% synthesis from filter coefficients
% (C) Petr Horak 07.06.1998
% [email protected]
% exc ... excitation signal
% n
... length of the excitation signal
% koef ... lp filter coeff.
% syn ... synthetised signal
ord=length(koef);
le=length(exc);
if n>le
exc(le+1:n)=0;
end
for jj=1:ord
filt(jj)=0; % rck(jj)=koef(ord+1-jj);
end
%syn(1)=exc(1);
for j=1:max(le,n)
syn(j)=exc(j)-filt(1)*koef(1);
for k=ord:-1:2
syn(j)=syn(j)-filt(k)*koef(k);
filt(k)=filt(k-1);
end
filt(1)=syn(j);
%
[exc(j), filt]
end
function y=filt98(b,a,x)
%function y=filt98(b,a,x)
nb=length(b);
na=length(a);
nmax=max(na,nb);
%[nb,na,nmax]
for jdx=1:nmax
filt(jdx)=0;
end
n=length(x);
for idx=1:n
filt(1)=x(idx);
for jdx=2:na
filt(1)=filt(1)-a(jdx)*filt(jdx);
end
outp=0;
for jdx=1:nb
outp=outp+b(jdx)*filt(jdx);
end
y(idx)=outp;
for jdx=nmax:-1:2
filt(jdx)=filt(jdx-1);
end
%
[filt]
end
90
Výpisy funkcí errinterp2 a errimp provádějící pulsní interpolaci zbytkového signálu lineárního prediktoru
(prostředí Matlab):
function ei=errinterp2(err,w,eps)
% ei=errinterp2(err,w,eps) – pulse interpolation of residual signal
% err ... linear prediction error signal
% w
... length of window
% eps ... interpolation treshold
% (c) Petr Horak 17.06.1998
if w<1
fprintf('w must be >= 1 !')
break
end
n = length(err);
nw = floor(n/w);
nm = mod(n,w);
m = 0;
for idx=0:nw-1
m = mean(err(idx*w+1:idx*w+w)) + m;
if abs(m)>eps
ei(idx*w+1:idx*w+w)=m;
m = 0;
else
ei(idx*w+1:idx*w+w)=0;
end
end
if nm>0
m = mean(err(idx*w+w+1:n)) + m;
if abs(m)>eps
ei(idx*w+w+1:n)=m;
else
ei(idx*w+w+1:n)=0;
end
end
function ei=errinterp3(err,bgs,w)
% ei=errinterp3(err,bgs,w) – suprasegmental interpolation of residual signal
% err ... linear prediction error signal
% bgs ... array of begins of suprasegmental units
% w
... length of excitation impulse
% (c) Petr Horak 1998
if nargin < 3
w = 1;
end
if w < 1
fprintf('w must be >= 1 !')
break
end
n = length(err);
nsu = length(bgs)
%nw = floor(n/w);
%nm = mod(n,w);
m = 0;
if bgs(1) > 1; ei(1:bgs(1)-1) = 0; end
%err
%bgs
for idx=1:nsu-1
m = sum(err(bgs(idx):bgs(idx+1)-1))
es = min(bgs(idx)+w-1,bgs(idx+1)-1);
ei(bgs(idx):es) = m/(es - bgs(idx) + 1);
if bgs(idx+1) > es+1; ei(es+1:bgs(idx+1)-1) = 0; end
m = 0;
end
m = sum(err(bgs(nsu):n));
ei(bgs(nsu):bgs(nsu)+w-1) = m/w;
ei(bgs(nsu)+w:n) = 0;
91
Výpis funkce errimp provádějící impulsní interpolaci zbytkového signálu lineárního prediktoru (prostředí
Matlab):
function [ei,derr]=errimp(err,eps)
% [ei,derr] = errimp(err,eps) - impulse interpolation of residual signal
% err ... linear prediction error signal
% eps ... interpolation treshold
% ei ... interpolation of error signal
% derr .. first difference of error signal
% (c) Petr Horak 2001
if nargin < 2; eps = 4; end
n = length(err);
polar = 0; max = 0; mid = 0; suma = 0; len = 0;
derr(1) = 0;
for idx=1:n
ei(idx) = 0;
if idx > 1; derr(idx) = err(idx) - err(idx-1); end
if polar > 0 & sign(err(idx)) == polar
suma = suma + err(idx); len = len + 1;
if err(idx) > eps
if err(idx) > max; max = err(idx); mid = idx; end
else
if mid > 0; ei(mid-1) = suma; suma = 0; len = 0; end
max = 0; mid = 0;
end
elseif polar < 0 & sign(err(idx)) == polar
suma = suma + err(idx); len = len + 1;
if err(idx) < -eps
if err(idx) < max; max = err(idx); mid = idx; end
else
if mid > 0; ei(mid-1) = suma; suma = 0; len = 0; end
max = 0; mid = 0;
end
elseif polar ~= 0
if mid > 0
ei(mid-1) = suma;
suma = 0; len = 0;
end
if abs(err(idx)) > 0; suma = err(idx); len = 1; end
polar = sign(err(idx));
if abs(err(idx)) > eps; max = err(idx); mid = idx;
else max = 0; mid = 0; suma = 0;
end;
else
if (sign(err(idx))) ~= 0
polar = sign(err(idx));
if abs(err(idx)) > eps; max = err(idx); mid = idx;
else max = 0; mid = 0;
end;
end
end
end
if mid > 0
ei(mid-1) = suma;
suma = 0; len = 0;
end
92
Výpis funkce pitchn provádějící detekci základního tónu řeči pomocí polaritní autokorelace (prostředí Matlab):
function l=pitchn(n, ix, lvl, l1r2, lup, ldwn)
% pitchdetector based on polarity autocorrelation
% l=pitchn(n,ix,lvl,l1r2,lup,ldwn)
lvlmin=30; plvl=0.4;
n2=n/2;
l=0;
ix=ix*32768;
for i=1:n
if abs(ix(i))>lvl
isig(i)=sign(ix(i));
else
isig(i)=0;
end
end
%subplot(3,1,1); plot(ix(1:n)); subplot(3,1,2); plot(isig);
%pause; subplot(1,1,1)
if l1r2==1 id=1; iu=n2;
else id=n2+1; iu=n;
end
lvlpa=0;
for i=id:iu
if isig(i)~=0 lvlpa=lvlpa+1; end
end
if lvlpa<lvlmin return
end
lvlpa=plvl*lvlpa;
fn2=n2;
for ll=1:lup
if ll<=n2 jup=n2; c=1.0;
else jup=n-ll; c=fn2/jup;
end
jpa=0;
if l1r2==1
for j1=1:jup
if isig(j1)~=0
j2=j1+ll;
if isig(j2)~=0
if isig(j1)==isig(j2) jpa=jpa+1;
else jpa=jpa-1;
end
end
end
end
else
for j=1:jup
j1=n+1-j;
if isig(j1)~=0
j2=j1-ll;
if isig(j2)~=0
if isig(j1)==isig(j2) jpa=jpa+1;
else jpa=jpa-1;
end
end
end
end
end
ipa(ll)=c*jpa;
end
%subplot(2,1,1)
%plot(ipa)
% --- nalezeni 1. pruchodu IPA nulou
pomjmp=0;
for ll=1:lup
if ipa(ll)<0 pomjmp=1; break; end
end
if pomjmp~=1 return; end
kdwn=ll+1;
%kmax=k;
kmax=ll; kmax1=kmax; pk1=1;
for k=kdwn:lup
if (kmax1~=ll) & (ipa(kmax)>ipa(k)) pk1=0; end
if ipa(k)>ipa(kmax)
if pk1 kmax1=kmax; end
kmax = k;
end
end
if (abs(kmax/kmax1-2)<0.1) & (ipa(kmax)-ipa(kmax1)<10) kmax=kmax1; end
if (ipa(kmax)>=lvlpa) & (kmax>=ldwn) l=kmax; end
%subplot(3,1,3); plot(ipa);
%s=sprintf('lvlpa=%f',lvlpa);
%ylabel(s)
%s=sprintf('kmax=%d kmax1=%d ipa(kmax)=%d ipa(kmax1)=%d l=%d',kmax,kmax1,ipa(kmax), ipa(kmax1),l);
%xlabel(s)
%pause;
return
93
8.6
Příloha F – Výpis kódu TD-PSOLA syntezátoru s modelováním prozodie pomocí lineární predikce
Tučně vyznačené části kódu představují přidané modelování základního tónu pomocí lineární predikce. Tento
kód je standardní součastí distribuce systému Epos od verze 2.4.75 [EPOS].
/*
*
*
*
*
*
*
epos/src/tdpsyn.cc
(c) 2000-2002 Petr Horak, [email protected]
(c) 2001-2002 Jirka Hanika, [email protected]
tdpsyn version 2.4.1 (20.8.2002)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
*
*
*/
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License in doc/COPYING for more details.
#include "common.h"
#include "tdpsyn.h"
#include <math.h>
#define
#define
#define
#define
#define
#define
#define
#define
MAX_STRETCH
MAX_OLA_FRAME
HAMMING_PRECISION
LP_F0_STEP
LP_DECIM
LP_F0_ORD
F0_FILT_ORD
LP_EXC_MUL
30
4096
15
8
10
4
9
1.0
/*
/*
/*
/*
/*
/*
/*
sanity check only */
hamming coefficient precision in bits */
step of F0 analysis for linear prediction */
F0 analysis decimation coeff. for linear prediction */
order of F0 contour LP analysis */
F0 contour filter order */
LP excitation multipicator */
/* F0 contour 1:10 filter coefficients */
const double a[9] = {1, -6.46921563821389, 18.43727805607084, -30.21344177474595, 31.11962012720199,
-20.62061607537661, 8.58111044795433, -2.04983423923570, 0.21516477151414};
const double b[9] = {0.01477848982115, -0.08930749676388, 0.25181616063735, -0.43840842338467,
0.52230821454923, -0.43840842338467, 0.25181616063735, -0.08930749676388,
0.01477848982115};
/* lp f0 contour filter coefficients (speaker Machac) */
const double lp[LP_F0_ORD] = {-1.23761, 0.60009, -0.32046, 0.10699};
/* Hamming coefficients for TD-PSOLA algorithm */
int hamkoe(int winlen, unsigned short *data, int e, int e_base)
{
int i;
double fn;
fn = 2 * pii / (winlen - 1);
for (i=0; i < winlen; i++) {
data[i] = (unsigned short)((0.53999 - 0.46 * cos(fn * i)) * e / e_base * (1 << HAMMING_PRECISION));
}
return 0;
}
/* Inventory file header structure */
struct tdi_hdr
{
int magic;
int samp_rate;
int samp_size;
int bufpos;
int n_segs;
int diph_offs;
int diph_len;
int res1;
int res2;
int ppulses;
int res3;
int res4;
};
tdpsyn::tdpsyn(voice *v)
{
tdi_hdr *hdr;
difpos = 0;
tdi = claim(v->models, v->loc, cfg->inv_base_dir, "rb", "inventory", NULL);
hdr = (tdi_hdr *)tdi->data;
if (v->n_segs != hdr->n_segs) shriek(463, "inconsistent n_segs");
94
if (sizeof(t_samp) != hdr->samp_size) shriek(463, "inconsistent samp_size");
tdp_buff = (t_samp *)(hdr + 1);
diph_offs = (int *)((char *)tdp_buff + sizeof(t_samp) * hdr->bufpos);
diph_len = diph_offs + v->n_segs;
ppulses = diph_len + v->n_segs;
/* allocate the maximum necessary space for Hamming windows: */
max_frame = MAX_OLA_FRAME;
wwin = (unsigned short *)xmalloc(sizeof(unsigned short) * (max_frame * 2));
memset(wwin, 0, (max_frame * 2) * sizeof(*wwin));
out_buff = (t_samp *)xmalloc(sizeof(t_samp) * max_frame * 2);
memset(out_buff, 0, max_frame * 2 * sizeof(*out_buff));
/* initialisation of lp prosody engine */
if (v->lpcprosody) {
for (int i = 0; i < LPC_PROS_ORDER; lpfilt[i++] = 0);
for (i = 0; i < MAX_OFILT_ORDER; ofilt[i++] = 0);
sigpos = 0;
lppstep = LP_F0_STEP * v->samp_rate / 1000;
lpestep = LP_DECIM * lppstep;
basef0 = v->init_f;
lppitch = v->samp_rate / basef0;;
}
}
tdpsyn::~tdpsyn(void)
{
free(out_buff);
free(wwin);
unclaim(tdi);
}
inline int tdpsyn::average_pitch(int offs, int len)
{
const int npitch = 145;
int tmp;
}
int total = 0;
int i = 0;
for (int j = 0; j <= len + 1; j++) {
tmp = ppulses[offs + j] - ppulses[offs + j - 1];
if (tmp < 2 * npitch) {
total += tmp;
i++;
}
}
if (i <= 0) {
if (cfg->paranoid) shriek(463,"pitch marks not found");
return 160;
}
return total / i;
void tdpsyn::synseg(voice *v, segment d, wavefm *w)
{
int i, j, k, l, m, slen, nlen, pitch, avpitch, origlen, newlen, maxwin, skip, reply, diflen;
double outf0, synf0, exc;
t_samp poms;
const int max_frame = this->max_frame;
if (diph_len[d.code] == 0) {
DEBUG(2,9, fprintf(STDDBG, "Missing speech unit No: %d\n", d.code);)
if (!cfg->paranoid) return;
shriek(463, fmt("Missing speech unit No: %d\n",d.code));
}
/* lp prosody reconstruction filter excitation signal computing */
if (v->lpcprosody) {
// in d.f is excitation signal value
if (d.e >= v->init_i * 9) {
for (i = 0; i < LPC_PROS_ORDER; lpfilt[i++] = 0);
d.e = (d.e * 100 / v->init_i - 1000) * v->init_i / 100;
}
exc = LP_EXC_MUL * (d.f - v->init_f);
pitch = lppitch;
}
else
// in d.f is f0 contour value
pitch = v->samp_rate / d.f;
slen = diph_len[d.code];
avpitch = average_pitch(diph_offs[d.code], slen);
maxwin = avpitch + MAX_STRETCH;
maxwin = (pitch > maxwin) ? maxwin : pitch;
if (maxwin >= max_frame) shriek(461, "pitch too large");
origlen = avpitch * slen * d.t / 100;
newlen = pitch * slen;
95
hamkoe(2 * maxwin + 1, wwin, d.e, 100);
skip = 1; reply = 1;
if (newlen > origlen) skip = newlen / origlen;
if (origlen > newlen) reply = origlen / newlen;
nlen = slen - (skip - 1) * slen / skip + (reply - 1) * slen;
diflen = (newlen - origlen - (skip - 1) * slen * pitch / skip + (reply - 1) * slen * pitch) / nlen;
for (j = 1; j <= diph_len[d.code]; j += skip) for (k = 0; k < reply; k++) {
memcpy(out_buff + max_frame - pitch, out_buff + max_frame, pitch * sizeof(*out_buff));
memset(out_buff + max_frame, 0, max_frame * sizeof(*out_buff));
for (i = -maxwin;i <= maxwin; i++) {
poms = tdp_buff[i + ppulses[diph_offs[d.code] + j - 1]];
poms = (t_samp)(wwin[i + pitch] * poms >> HAMMING_PRECISION);
out_buff[max_frame + i] += poms;
}
/* lpc synthesis of F0 contour */
if (v->lpcprosody) {
synf0 = 0; outf0 = 0;
for (l = 0; l < 2 * pitch; l++) {
sigpos++;
if (!(sigpos % lppstep)) { // new pitch value into f0 output filter
synf0 = 0;
if (!(sigpos % lpestep)) { // new excitation value into recontruction filter
synf0 = exc - lpfilt[0]*lp[0];
exc = 0;
for (m = LP_F0_ORD - 1; m > 0; m--) {
synf0 -= lp[m] * lpfilt[m];
lpfilt[m] = lpfilt[m-1];
}
lpfilt[0] = synf0;
}
ofilt[0] = synf0;
synf0 = 0;
for (m = 1; m < F0_FILT_ORD; m++) ofilt[0] -= a[m] * ofilt[m];
outf0 = 0;
for (m = 0; m < F0_FILT_ORD; m++) outf0 += b[m] * ofilt[m];
lppitch = (int)(v->samp_rate / (basef0 + outf0));
outf0 = 0;
for (m = F0_FILT_ORD - 1; m > 0; m--) ofilt[m] = ofilt[m - 1];
}
}
}
}
}
w->sample((SAMPLE *)out_buff + max_frame - pitch, pitch);
difpos += diflen;
if (difpos < -pitch) {
if (reply == 1) j--; else k--;
difpos += pitch;
}
if (difpos > pitch) {
if (reply == 1) j++;
else if (k == reply - 1) { j++; k = 1; }
else k++;
difpos -= pitch;
}
96
8.7
Příloha G – Fonetická transkripce češtiny pro systém Epos
Zjednodušená pravidla fonetické transkripce pro systém Epos (kompletní je možné najít v distribuci Eposu).
#
#
#
(c) Jirka Hanika <[email protected]>
$voiced
=
$voiceless =
# $fric
# $afric
# $stop
$nasal
=
$NASAL
=
$sonant
=
$SONANT
=
$short
=
$long
=
$diphtong =
$vowel
=
$VOWEL
=
$consonant =
$everywhere=
$numbers
=
$sonority =
bdďgvzžZŽhř
ptťkfsšcčxŘ
= szšžfvhx
= cZčŽ
= ptťkbdďg
mnňN
MQŇW
jlr$nasal
JLR$NASAL
aeiouuyěä
áéíóúůýěöü
OAE
$short$long$diphtong
AEIOUUYÁÉÍÓÚŮÝĚ
$voiced$voiceless$sonant
!_!
1234567890
0'<$voiceless$voiced$SONANT<$nasal<l<rj<$vowel
$lower_case = aáäbcčdďeéěfghiíjklmnňoóöpqrřsštťuúůüvwxyýzž
$upper_case = AÁÄBCČDĎEÉĚFGHIÍJKLMNŇOÓÖPQRŘSŠTŤUÚŮÜVWXYÝZŽ
$letter = ${lower_case}${upper_case}
#
Ošetření německých přehlásek
ÄÖ>E(!_!)
Ü>Y(!_!)
progress
progress
#
#
#
#
\d už vydělil parser, provizorně jako znak slovní úrovně. Úseky mezi
výskyty tohoto znaku (např. tečka v URL) se hláskují, pokud neobsahují
samohlásku nebo slabikotvornou souhlásku. Tato pravidla se mohou chovat
nerozumně v kombinaci s velkými písmeny.
inside \d
{
regress 0>\d(!_0)
}
regress \d>\ (!_!)
if
{
word
word
word
roman
@include
"../slovak/roman.rul"
}
regex
/^([vVsSzZkK][~\ ]\{0,2\})\$/\W\1/
regress lr>\X\Y(0_!)
near *!\Wlr$vowel$VOWEL
word
phone
{
regress ${lower_case}\X\Y>${upper_case}LR(!_!)
subst abbrurl.dic
}
regress \W>0(!_!)
regress \X\Y>lr(0_!)
word
word
# Pravidla pro čtení zkratek apod.: velké písmeno na jiném,
#
než prvním místě ve slově indikuje zkratku a hláskuje se.
#
Stejně tak jednotlivé písmeno před nebo za cifrou nebo
#
speciálním znakem nebo hláskovanou částí slova.
regress ${upper_case}>${lower_case}(!letter_${lower_case})
regress ${upper_case}>${lower_case}(0_${lower_case})
regress ${lower_case}>${upper_case}(0_!${lower_case})
regress ${lower_case}>${upper_case}(!${lower_case}_!$letter)
if spellout
{
regex
/^([^\Y\ ~]*)(.\?)\$/\1\Y\1\2/
progress ${lower_case}>${upper_case}(\Y${upper_case}_!)
regex
/\Y/./
}
subst
abbrevs.dic
regress ${upper_case}>${lower_case}($everywhere)
@include "numerals.rul"
subst
main.dic
progress
progress
progress
; Různé výjimky
äö>e(!_!)
ü>y(!_!)
ů>ú($everywhere)
97
word
colon
colon
colon
word
text
colon
colon
0>s(x_!)
u0>0v(q_!)
xq>k($everywhere)
h>x(c_!)
zž>ZŽ(d_!)
cd>0(!_xZŽ)
h>x(s_!)
progress
progress
regress
regress
regress
progress
progress
; Rozložení x,q na ks, kv
; Spřežka ch > x
; Spřežky dz,dž > Z,Ž
; Pražské sh
# Následující pravidla jednak změní věty vydělené dvojtečkou
#
na věty vydělené tečkou (to je spíše špatně než dobře),
#
dále pak označí dvojtečkou (místo otazníku) ty věty, které
#
obsahovaly ve své první klausi některé ze slov uvedených
#
ve slovníku wh.dic, neměly tuto klausi zvlášť vydělenou
#
žádnou interpunkcí, a byly samy vyděleny otazníkem.
#
# Fonetik vidí, že jsem právě "definoval" doplňovací otázky.
progress
subst
raise
progress
raise
progress
progress
progress
:>.($everywhere)
wh.dic
Q:_
Q>_(!0_!)
Q:?
Q>0($everywhere)
Q>_($everywhere)
Q>:($everywhere)
if
{
colloquial
regress j>J(0_ds)
text
sent
; Doplňovací otázky
colon
phone
sent
colon
; jen v první klausi
sent
colon
; úklid všech úrovní
sent
colon
text
sent
; fixme: random environment
}
i>j($vowel_0)
syll.dic
0>'(0_$vowel)
regress
subst
regress
with
preps.dic
{
regress
_\ ~>P(!_!)
}
with
"se"
{
regress
_\ ~>P(!_!)
}
regress P>\ (!_P)
_\ ~>F(!_0)
regress
progress
progress
progress
inside P
{
prep
}
progress
0>S(!S_szšž)
S>0(!_!0)
0>S(0_s)
syll
; Rozsadit vokály
; Rázy
word
word
word
word
word
word
; "se" nesmí být v preps.dic
colon
word
; dvě předložky za sebou
colon
word
colon
word
colon
"Sse,se seS,se SseS,se"
; "se" jako předložka
S>0($everywhere)
inside P
{
prep
preps.dic
}
progress P>\ ($everywhere)
word
word
word
regress
regress
regress
regress
regress
b>0(!_b)
n>0(!_nň)
s>0(!_s)
t>0(!_t)
f>0(!_f)
syll
syll
syll
syll
syll
progress
ř>Ř($voiceless_!0)
syll
regress
syll
regress
$sonant>$SONANT(0_!)
$sonority syll
$SONANT>$sonant(!_!)
syll
nonsyl.dic
prep
#
postp
; "S" jen před hranicí slov, za níž je sykavka
; "S" před první hláskou v klausi
word
; pochybný heuristický odstaveček
; namířený proti geminátám
; je už zde kvůli "k řízení [gřízeňí]" "křeč [kŘeč]"
; Rozklad_na_slabiky
syll
postps.dic
; jednou by se mělo vrátit
regress
h>0(t_!)
; pathologie, plethora, thanatos. Pochybné.
regress
regress
$voiced>${voiceless}(!_$voiceless&0')
$voiceless>$voiced(!_$voiced!v)
colon
; Asimilace znělosti
if
{
colloquial
subst
casual.dic
98
regress J>0(!_!)
regress '>v(!_o) ; "okno" [vokno]
}
regress
regress
regress
regress
regress
0>n(m_ě)
dtn>ďťň(!_iíě)
ě>e(ďťň_!)
0>j(!_ě)
ě>e($everywhere)
progress
yý>ií($everywhere)
progress
progress
progress
tkfslmn>TKFSLMN(i_0)
i>j(oae_TKFSLMN)
TKFSLMN>tkfslmn(!_!)
progress
n>N(!_kg)
progress
progress
w>u($vowel_$consonant&0)
w>v($everywhere)
; většinou ale "w" odstraní výjimky, řekněme
; zde bývala eliminace geminát
; zde býval rozklad na slabiky
progress
regress
if
{
oae>OAE(!_u)
u>0(OAE_!)
syll
syll
; Dvojhlásky
!voiced_affrs
regress
regress
regress
; toto by mělo přijít do inventáře (traditnl.dph);
; rozkládá se zde dz, dž (representované Z,Ž)
; na d-z, d-ž, pokud následuje vokál.
ZŽ>DĎ(!_$vowel)
0>d(!_DĎ)
DĎ>zž(!_!)
}
# Následující odstavec má za cíl označit všechny otevřené slabiky tildou.
#
Ve zavřených slabikách se objeví příznak "C" (coda), ten se pak posune
#
do slabičné úrovně, tam se pak nezavřené slabiky prohlásí za otevřené
#
a pak už je možno C odstranit z hláskové i slabičné úrovně.
$syllabic = !0$vowel_!0$vowel
progress
progress
progress
progress
raise
progress
progress
progress
0>C($vowel_!0)
syll
$sonant>$SONANT($syllabic)
0>C($SONANT_!)
syll
$SONANT>$sonant($everywhere)
C:!
syll
_|>~($everywhere)
word
C>_($everywhere)
word
C>0($everywhere)
syll
; syllabic consonant (environment)
; C za nekoncovou samohlásku
syll
; C za slabikotvornou sonoru
syll
; posuň "C" do slabičné úrovně
syll
syll
phone
99
8.8
Příloha H – Modelování prozodie češtiny pro systém Epos podle pravidel Prof. Palkové
Pravidla modelování prozodie češtiny pro systém Epos zapsané J. Hanikou podle podkladů Prof. Palkové.
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
prosodická pravidla Fonetického ústavu FF UK pro češtinu, 1998
(c) 1998
(c) 1998
Tento soubor vznikl na základu výzkumu modelování prosodie češtiny
uskutečněného s přispěním grantu GAČR 405/96/0301.
(See doc/COPYING for information on copying and modifying this file.)
Následující odstavec pečuje o to, aby dříve označené
krátké tvary zájmenné byly zapojeny do řetězů monosylab
při pozdějším skládání taktů, ale jiná koncová
monosylaba nikoli. Děje se tak ještě před transkripcí
zejména proto, abychom poznali "mě" vs. "mně".
regress
~_\ >f(!_0) colon
inside !~
{
regress
}
regress
#
#
#
#
#
#
<
Zdena Palková
Jirka Hanika
f>\ (!_!)
~>\ (!_!)
word
word
colon
word
word
Nyní si označíme mono-, di-, tri-, tetra-, polysyllaba.
Děje se tak jen v taktech ukončených mezerou (ta je
zvýrazněna předcházejícím zvráceným lomítkem),
tedy nikoli v koncových taktech. Viz též minulý komentář.
word
syll
regress
\
regress
\
regress
\
regress
\
regress
\
>m(!_!)
>d(!_!)
>t(!_!)
>q(!_!)
>p(!_!)
word
word
word
word
word
word
word
word
word
word
>
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Monosylaba se v určitých pozicích označí jako přízvučná ("x")
a vzápětí jsou ve všech ostatních pozicích, kde zůstala označena
jako "m", přilepena ke svému levému sousedu. Počáteční stříška
znamená začátek úseku.
(V pravidlech 4.6 sub f nesouhlasí příklad s formulacemi pravidel.
Doporučuji zkontrolovat.)...
Je důležité, že u pravidel, která pracují se seznamem řetězců,
jako je například následující, nezáleží na pořadí položek v seznamu.
Jde-li o pravidlo substituční, provádějí se substituce (přednostně
v pravé části zpracovávaného textu a delší, je-li pochybnost)
opakovaně tak dlouho, dokud se text neustálí, nebo dokud program
neztratí trpělivost (s věčně zacykleným pravidlem).
Nakonec se zamete (všechny dočasné značky se smažou). Při téže
příležitosti zanikne značka \X, která případně blokovala zapojení
taktu do tohoto přilepování.
subst
"^mmmmm,mmmxm
subst
"pmm,pxm qmmm,qxmm pmmm,pxmm tmmmm,tmmxm qmmmm,qxmxm dmmmmm,dmmxmm tmmmmm,tmmxmm
qmmmmm,qxmxmm pmmmmm,pxmmxm dmmmmmm,dmmxmmm tmmmmmm,tmmxmmm qmmmmmm,qxmmxmm pmmmmmm,pxmmxmm
dmmmmmmm,dmmxmmxm tmmmmmmm,tmmxmmxm qmmmmmmm,qxmmmxmm pmmmmmmm,pxmmmxmm mmmmmmmm,mmmmxmmm"
colon word
postp
"m"
regress
word
^mmmmmm,mmmxmm
^mmmmmmm,mmmmxmm"
colon
word
word
mdtqpxf\X>\ (!_!)
word
word
#
# zkracování isolovaných a ostatních taktů podle počtu slabik - ipcz
#
regress
inside
{
_\ >I(0_0) sent
I
word ; isolated words
100
<
>
}
inside
{
<
>
}
regress
#
#
#
#
word
word
word
word
word
word
word
word
word
word
word
word
word
word
word
word
word
word
word
word
word
word
!I
word
syll
contour t/+8
contour t/+0
contour t/-5
contour t/-8
contour t/-10
I>_(!_!)
sent
word
Právě jsme přestali "I" používat k označení isolovaných
taktů a začneme ho používat k označení taktů iniciálních.
regress
regress
#
#
#
#
#
#
word
syll
contour t/+33
contour t/+0
contour t/-15
contour t/-25
contour t/-31
contour t/-33
_\ F>M(!_!)
M>I(0_!)
colon
colon
word
word
Rozdělíme M na A a B podle toho, zda budeme chtít
kadenci klesavou nebo stoupavou. Označování se děje
zleva: IMMMMMF -> IBMMMMF -> IBAMMMF -> IBACMMF ->
-> IBACBMF -> IBACBAF a pak dalšími pravidly -> IBABBBF
subst
"IM,IB BM,BA
regress C>B(!_!)
AM,AC CM,CB"
colon
word
regress IAB>F(!_0)
colon
regress A>B(!_F)
colon
# regress IAB>aab(!_ab) colon
regress F>T(!_0)
sent
word
word
word
word
colon
word
; a,b: F (kA, kB)
; O,P: F-1 (kA, kB) ; ??
# Toto pravidlo je nejspíš reliktem minulosti
#with
postp2.dic colon
word
#{
#
regress
FT>M(!_!) colon
word
#}
#
#
#
Nyní máme označeny takty I, M, P, F, T ( = FF) a přiřazeny kadence.
#
#
#
#
#
při přiřazování kadencí se hodnota přiřazená slabice
vztahuje na všechny její hlásky v použitém slabičném
členění
inside
{
<
IaA word
word
{
}
[
syll
; tzn. zařiď se dle počtu slabik v taktu
; monosylaba se rozdělují
;regress 0>a(a_!) syll
phone
;syll
a<'0$consonant syll
phone
;inside $vowel
phone
;
contour t/-50
phone
;[
;
contour f/+2:-3 word syll
;
contour f/+2:-2 word syll
;
contour f/+0:+0 word syll
;
contour f/-2:-2 word syll
;]
; disyllaba
word
syll
word
syll
word
syll
contour
contour
contour
f/+2:-3
f/+4:-4
f/-3:-3
contour
contour
contour
contour
contour
contour
contour
; trisyllaba
f/+2:+0:-4 word
syll
f/+2:-2:-4 word
syll
f/+4:+0:-4 word
syll
f/-2:-2:-6 word
syll
f/+0:-4:-4 word
syll
f/-4:+4:-6 word
syll
syll
f/-4:+0:-4 word
]
[
101
contour
f/-2:-3:-3 word
contour
contour
contour
contour
; tetrasyllaba
f/+0:+0:-2:-3 word
f/-2:-2:-5:-5 word
f/-3:+0:-2:-3 word
f/+0:+0:-1:-1 word
contour
contour
contour
; pentasyllaba
f/-2:+0:-2:-3:-3
word
f/-3:+0:+0:+0:-3
word
f/-2:+0:+0:+0:-2
word
contour
f/-2:+0:-1:-1*:-2:-3
]
[
]
[
]
[
syll
syll
syll
syll
syll
syll
syll
syll
word
syll
]
}
>
inside
{
<
Y
word
{
}
[
word
syll
; tzn. zařiď se dle počtu slabik v taktu
; monosylaba se ignorují
; disyllaba
word
syll
word
syll
contour
contour
f/+4:-4
f/-3:-3
contour
contour
contour
; trisyllaba
f/-4:+4:-6 word
syll
f/-4:+0:-4 word
syll
f/-2:-3:-3 word
syll
contour
contour
; tetrasyllaba
f/-3:+0:-2:-3 word
syll
f/+0:+0:-1:-1 word
syll
contour
; pentasyllaba
f/-2:+0:+0:+0:-2
word
]
[
]
[
]
[
]
nothing
}
; F A - never used
syll
; hexasyllaba a delší se neřeší
>
inside
{
<
bB
word
{
word
syll
;regress 0>a(a_!) syll
phone
;syll
a<'0$consonant syll
phone
;inside $vowel
phone
;
contour t/-50
phone
;[
;
contour f/-1:+1 word syll
;
contour f/-2:+2 word syll
;
contour f/-2:+3 word syll
;]
}
[
contour
contour
contour
; disyllaba
f/-4:+2
word
f/-5:-1
word
f/-3:+4
word
syll
syll
syll
contour
contour
contour
contour
contour
contour
contour
f/+0:-4:+0
f/+0:-6:-2
f/-6:-2:+0
f/-1:+3:+5
f/-6:-6:+0
f/-6:+4:+0
f/-4:+2:+4
syll
syll
syll
syll
syll
syll
syll
contour
contour
contour
f/+0:-3:-2:+0
f/-4:-4:-2:+2
f/+0:-3:+0:+2
contour
contour
contour
f/+0:-3:-2:+0:+1
f/+1:-1:-1:-1:+1
f/-2:-2:+0:+2:+2
contour
contour
f/+0:-1:-1:-2*:-1:+0
f/+0:-2:-1:+0*:+1:+2
]
[
]
[
]
[
]
[
word
word
word
word
word
word
word
word
word
word
syll
syll
syll
word
word
word
syll
syll
syll
word
word
syll
syll
102
}
>
]
inside F
word
{
contour
f/-2 word word
<
word syll
{
;regress 0>a(a_!) syll
phone
;syll
a<'0$consonant syll
phone
;inside $vowel
phone
;
contour t/-50
phone
;[
;
contour f/+2:-2 word syll
;
contour f/+0:+0 word syll
;
contour f/-2:-2 word syll
;
contour f/-2:+2 word syll
;
contour f/-2:+3 word syll
;]
}
[
; disyllaba
contour f/-5:-1
word
syll
contour f/-3:+4
word
syll
contour f/+4:-4
word
syll
contour f/-3:-3
word
syll
]
[
contour f/-6:-6:+0 word
syll
contour f/-6:+4:+0 word
syll
contour f/-4:+2:+4 word
syll
contour f/-4:+4:-6 word
syll
contour f/-4:+0:-4 word
syll
contour f/-2:-3:-3 word
syll
]
[
contour f/-4:-4:-2:+2 word
syll
contour f/+0:-3:+0:+2 word
syll
contour f/-3:+0:-2:-3 word
syll
contour f/+0:+0:-1:-1 word
syll
]
[
contour f/-2:-2:+0:+2:+2
word
syll
contour f/-2:+0:+0:+0:-2
word
syll
]
[
contour f/-2:+0:-1:-1*:-2:-3
word
syll
; pravidla zde mají prázdnou nabídku :-)
]
>
}
inside ?
sent
{
regress
T>Q(!_!)
}
word
word
inside T
word; soubor C
{
contour
f/+2 word word
<
word syll
{
;regress 0>a(a_!) syll
phone
;syll
a<'0$consonant syll
phone
;inside $vowel
phone
;
contour t/-50
phone
;[
;
contour f/-4:-14
word
syll
;
contour f/+2:-14
word
syll
;
contour f/-12:-14 word
syll
;
contour f/-2:-16
word
syll
;]
}
[
contour f/-6:-16
word
syll
contour f/-4:-14
word
syll
contour f/-2:-14
word
syll
contour f/+2:-14
word
syll
]
[
contour f/-4:-9:-14
word
syll
contour f/-4:-6:-14
word
syll
contour f/-6:-10:-14
word
syll
contour f/-6:-16:-18
word
syll
]
[
103
contour
contour
contour
f/-4:-10:-12:-14
f/-2:-4:-8:-14
f/-2:-10:-14:-16
contour
contour
contour
f/-2:-2:-4:-8:-14
f/-2:-10:-12:-14:-16
f/-2:-4:-12:-14:-16
contour
contour
contour
f/-2:-2:-4:-8:-14*
f/-2:-10:-12:-14:-16:-18*
f/-2:-4:-12:-14:-16:-18*
]
[
]
[
}
>
word
word
word
syll
syll
syll
word
word
word
syll
syll
syll
word
word
word
syll
syll
syll
]
inside Q
word
; soubor D
{
contour
f/-2 word word
<
word syll
{
;regress 0>a(a_!) syll
phone
;syll
a<'0$consonant syll
phone
;inside $vowel
phone
;
contour t/-50
phone
;[
;
contour f/-14:+2
word
syll
;
contour f/-14:+6
word
syll
;]
}
[
contour f/-6:+4
word
syll
contour f/-10:+14 word
syll
]
[
contour f/-8:-6:+4 word
syll
contour f/-8:+2:+1 word
syll
]
[
contour f/-6:-6:-7:+5 word
syll
contour f/-6:+6:+6:+3 word
syll
]
[
contour f/-6:-6:-7:-8:+5
word
syll
contour f/-8:+7:+7:+3:+1
word
syll
]
[
contour f/-6:-6:-7:-8*:+5
word
syll
contour f/-8:+7:+7:+5*:+3:+1
word
syll
]
>
}
#
#
#
<
úseková deklinace frekvence (zatím jen do 11 taktů v úseku)
colon word
3x nothing
contour
contour
contour
contour
contour
contour
contour
contour
contour
nothing
; tzn. zařiď se dle počtu taktů v promluvovém úseku
; jeden až tři takty se neupravují
f/0:-1:-2:-3
colon word
f/0:-1:-2:-3:-4
colon word
f/0:-1:-2:-3:-4:-5
colon word
f/0:-1:-2:-3:-4:-5:-6
colon word
f/0:-1:-2:-3:-4:-5:-6:-7
colon word
f/0:-1:-2:-3:-4:-5:-6:-7:-8
colon word
f/0:-1:-2:-3:-4:-5:-6:-7:-8:-9
colon word
f/0:-1:-2:-3:-4:-5:-6:-7:-8:-9:-10
colon word
f/0:-1:-2:-3:-4:-5:-6:-7:-8:-9:-10:-11 colon word
>
#
#
#
<
větná deklinace frekvence (zatím jen do 9 úseků ve větě)
sent colon
2x nothing
contour
contour
contour
contour
contour
contour
contour
nothing
; tzn. zařiď se dle počtu promluvových úseků ve větě
; jeden až dva takty se neupravují
f/0:-2:-4:
sent colon
f/0:-2:-4:-6
sent colon
f/0:-2:-4:-6:-8
sent colon
f/0:-2:-4:-6:-8:-10
sent colon
f/0:-2:-4:-6:-8:-10:-12
sent colon
f/0:-2:-4:-6:-8:-10:-12:-14
sent colon
f/0:-2:-4:-6:-8:-10:-12:-14:-16
sent colon
>
104
8.9
Příloha I – Modelování prozodie češtiny pro systém Epos pomocí lineárně predikčního modelu
Výpis pravidel pro buzení lineárně predikčního prozodického modelu pro modelování prozodie češtiny
v systému Epos.
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
prosodická pravidla pro modelování průběhu základního tónu
pomocí lineárně predikčního modelu
(trvání dle Fonetického ústavu FF UK pro češtinu, 1998)
(c) 1998-2002
(c) 1998-2002
(c) 1998
Následující odstavec pečuje o to, aby dříve označené
krátké tvary zájmenné byly zapojeny do řetězů monosylab
při pozdějším skládání taktů, ale jiná koncová
monosylaba nikoli. Děje se tak ještě před transkripcí
zejména proto, abychom poznali "mě" vs. "mně".
regress
~_\ >f(!_0)
inside !~
{
regress
}
regress
#
#
#
#
#
#
<
Petr Horák
Jirka Hanika
Fonetický ústav FF UK
f>\ (!_!)
~>\ (!_!)
colon
word
word
word
colon
word
Nyní si označíme mono-, di-, tri-, tetra-, polysyllaba.
Děje se tak jen v taktech ukončených mezerou (ta je
zvýrazněna předcházejícím zvráceným lomítkem),
tedy nikoli v koncových taktech. Viz též minulý komentář.
word
syll
regress
\
regress
\
regress
\
regress
\
regress
\
>m(!_!)
>d(!_!)
>t(!_!)
>q(!_!)
>p(!_!)
word
word
word
word
word
word
word
word
word
word
>
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Monosylaba se v určitých pozicích označí jako přízvučná ("x")
a vzápětí jsou ve všech ostatních pozicích, kde zůstala označena
jako "m", přilepena ke svému levému sousedu. Počáteční stříška
znamená začátek úseku.
Je důležité, že u pravidel, která pracují se seznamem řetězců,
jako je například následující, nezáleží na pořadí položek v seznamu.
Jde-li o pravidlo substituční, provádějí se substituce (přednostně
v pravé části zpracovávaného textu a delší, je-li pochybnost)
opakovaně tak dlouho, dokud se text neustálí, nebo dokud program
neztratí trpělivost (s věčně zacykleným pravidlem).
Nakonec se zamete (všechny dočasné značky se smažou). Při téže
příležitosti zanikne značka \X, která případně blokovala zapojení
taktu do tohoto přilepování.
subst
"^mmmmm,mmmxm
subst
"pmm,pxm qmmm,qxmm pmmm,pxmm tmmmm,tmmxm qmmmm,qxmxm dmmmmm,dmmxmm tmmmmm,tmmxmm
qmmmmm,qxmxmm pmmmmm,pxmmxm dmmmmmm,dmmxmmm tmmmmmm,tmmxmmm qmmmmmm,qxmmxmm pmmmmmm,pxmmxmm
dmmmmmmm,dmmxmmxm tmmmmmmm,tmmxmmxm qmmmmmmm,qxmmmxmm pmmmmmmm,pxmmmxmm mmmmmmmm,mmmmxmmm"
colon word
postp
"m"
regress
word
^mmmmmm,mmmxmm
^mmmmmmm,mmmmxmm" colon
word
word
mdtqpxf\X>\ (!_!)
word
word
#
# zkracování izolovaných a ostatních taktů podle počtu slabik dle FÚ FF UK
#
regress _\ >I(0_0)
inside
I
{
<
word
syll
contour t/+33
contour t/+0
sent word
; izolované takty
word word
word word
105
t/-15
t/-25
t/-31
t/-33
word
word
word
word
word
word
word
word
word
syll
contour t/+8
contour t/+0
contour t/-5
contour t/-8
contour t/-10
word
word
word
word
word
word
word
word
word
word
contour
contour
contour
contour
>
}
inside
{
<
>
}
regress
#
#
#
#
I>_(!_!)
sent
word
Právě jsme přestali "I" používat k označení isolovaných
taktů a začneme ho používat k označení taktů iniciálních.
regress
regress
#
#
#
#
#
#
!I
_\ F>M(!_!) colon
M>I(0_!)
colon
word
word
Rozdělíme M na A a B podle toho, zda budeme chtít
kadenci klesavou nebo stoupavou. Označování se děje
zleva: IMMMMMF -> IBMMMMF -> IBAMMMF -> IBACMMF ->
-> IBACBMF -> IBACBAF a pak dalšími pravidly -> IBABBBF
subst
"IM,IB BM,BA AM,AC CM,CB"
regress C>B(!_!)
colon
word
regress
regress
regress
IAB>F(!_0) colon
A>B(!_F)
colon
F>T(!_0)
sent
colon
word
word
word
word
; a,b: F (kA, kB)
#
# Označení konců otázek doplňovacích
#
inside :
sent
{
regress T>D(!_0) sent
}
word
#
#
#
Nyní máme označeny takty I, M, P, F, T a D a přiřazeny kadence.
#
#
#
#
#
při přiřazování kadencí se hodnota přiřazená slabice
vztahuje na všechny její hlásky v použitém slabičném
členění
#
# označení začátku věty pro syntezátor
#
inside
{
.:! sent
contour
i/1000:0*
sent
phone
}
#
# Slabičné buzení iniciálních a mediálních taktů
#
inside
{
<
IaA word
word
{
}
[
syll
;
contour
f/+5:0
; disyllaba
word
syll
contour
f/+8:0:0
; trisyllaba
word
syll
contour
f/+10:0:0:0
; tetrasyllaba
word
syll
]
[
]
[
]
[
; tzn. zařiď se dle počtu slabik v taktu
; monosylaba
; pentasyllaba
106
contour
f/10:0:0:0:0
word
syll
contour
f/10:0:0:0*:0:0
word
syll
]
[
]
}
>
#
# Slabičné buzení mediálních taktů
#
inside
{
<
bB
word
{
word
syll
;
}
[
f/30:0
f/15:0
f/-10:0
contour
contour
contour
f/+35:-5:+0
f/+17:-5:+0
f/-17:-5:+0
contour
contour
contour
f/+45:-5:0:+0
f/+20:-5:0:+0
f/-20:-5:0:+0
word
word
word
syll
syll
syll
contour
contour
contour
f/+45:-5:0:+0:+0
f/+20:-5:0:+0:+0
f/-20:-5:0:+0:+0
word
word
word
syll
syll
syll
contour
contour
contour
f/+45:-5:0:0*:0:+0
f/+20:-5:0:0*:0:+0
f/-20:-5:0:0*:0:+0
]
[
]
[
]
[
]
[
}
>
; disyllaba
word
syll
word
syll
word
syll
contour
contour
contour
word
word
word
syll
syll
syll
word
word
word
syll
syll
syll
]
#
# Slabičné buzení posledního taktu intonačního úseku
#
inside F
word
{
contour
f/-5 word word
<
word syll
{
;
}
[
; disyllaba
contour f/-10:0
word
syll
]
[
contour f/-12:-6:+0
word
syll
contour f/-20:-6:+0
word
syll
]
[
contour f/-15:-8:0:0
word
syll
contour f/-25:-8:0:0
word
syll
]
[
contour f/-16:-10:+0:+0:+0 word
syll
contour f/-30:-10:+0:+0:+0 word
syll
]
[
contour f/-20:+0:-0:-0*:-4:-0 word
syll
contour f/-30:+0:-0:-0*:-0:-0 word
syll
]
>
}
inside ?J sent
{
regress
T>Q(!_!)
}
word
word
#
# Slabičné buzení posledního taktu oznamovací věty
#
107
inside T
word
{
contour
f/+5 word word
<
word syll
{
;
}
[
contour f/-25:-50
word
syll
contour f/-50:-60
word
syll
]
[
contour f/-25:-20:-50
word
syll
contour f/-50:-30:-60
word
syll
]
[
contour f/-25:-15:-15:-50 word
syll
contour f/-50:-20:-20:-60 word
syll
]
[
contour f/-25:-12:-12:-17:-50 word
syll
contour f/-50:-17:-17:-25:-60 word
syll
]
[
contour f/-25:-10:-10:-10*:-15:-50 word
syll
contour f/-50:-15:-15:-15*:-20:-60 word
syll
]
>
}
#
# Slabičné buzení posledního taktu otázky doplňovací
#
inside D
word
{
contour
f/+5 word word
<
word syll
{
;
}
[
contour f/-15:0
word
syll
contour f/+15:0
word
syll
]
[
contour f/-15:0:0 word
syll
contour f/+15:0:0 word
syll
]
[
contour f/-15:0:0:0
word
syll
contour f/+15:0:0:0
word
syll
]
[
contour f/-15:0:0:0:0 word
syll
contour f/+15:0:0:0:0 word
syll
]
[
contour f/-25:0:0:0*:0:0
word
syll
contour f/+25:0:0:0*:0:0
word
syll
]
>
}
#
# Slabičné buzení posledního taktu otázky zjišťovací
#
inside Q
word
{
contour
f/-5 word word
<
word syll
{
;
}
[
contour f/50:0 word
syll
]
[
contour f/60:0:0
word
syll
contour f/30:30:0 word
syll
]
[
contour f/-10:60:0:0
word
syll
contour f/-10:30:30:0 word
syll
]
[
contour f/-10:0:60:0:0
word
syll
108
contour
f/-10:0:30:30:0
word
syll
contour
contour
f/-10:0*:60:0:0
f/-10:0*:30:30:0
word
word
syll
syll
]
[
}
>
]
#
# Slabičné buzení začátku otázky doplňovací
#
inside
{
<
:
[
sent
sent
syll
contour
f/50
contour
f/-30:70
contour
f/-30:70:-10
contour
f/-30:70:-10:0
sent
syll
contour
f/-30:70:0:-10:+5
sent
syll
contour
f/-30:70:0:-10:*:+5
]
[
]
[
]
[
]
[
]
[
}
#
#
#
<
>
sent
syll
sent
syll
sent
syll
sent
syll
]
Buzení úsekové deklinace frekvence (do 11 taktů v úseku)
colon word
3x nothing
contour
contour
contour
contour
contour
contour
contour
contour
contour
nothing
; tzn. zařiď se dle počtu taktů v promluvovém úseku
; jeden až tři takty se neupravují
f/0:-5:-5:-5
colon word
f/0:-5:-5:-5:-5
colon word
f/0:-5:-5:-5:-5:-5
colon word
f/0:-5:-5:-5:-5:-5:-5
colon word
f/0:-5:-5:-5:-5:-5:-5:-5
colon word
f/0:-5:-5:-5:-5:-5:-5:-5:-5
colon word
f/0:-5:-5:-5:-5:-5:-5:-5:-5:-5
colon word
f/0:-5:-5:-5:-5:-5:-5:-5:-5:-5:-5
colon word
f/0:-5:-5:-5:-5:-5:-5:-5:-5:-5:-5:-5
colon word
>
#
#
#
<
Buzení větné deklinace frekvence (do 9 úseků ve větě)
sent colon
2x nothing
contour
contour
contour
contour
contour
contour
contour
nothing
; tzn. zařiď se dle počtu promluvových úseků ve větě
; jeden až dva takty se neupravují
f/0:-10:-10:
sent colon
f/0:-10:-10:-10
sent colon
f/0:-10:-10:-10:-10
sent colon
f/0:-10:-10:-10:-10:-10
sent colon
f/0:-10:-10:-10:-10:-10:-10
sent colon
f/0:-10:-10:-10:-10:-10:-10:-10
sent colon
f/0:-10:-10:-10:-10:-10:-10:-10:-10
sent colon
>
109
8.10
Příloha J – Popis přiloženého disku CD-ROM
Pro spuštění přiloženého disku CD-ROM je nutné vložit jej do mechaniky a spustit soubor index.html. Na
disku CD-ROM se nacházejí tyto adresáře:
epos
matlab
poslech
sstudio
vetydis
wavedit
text
- TTS systém Epos verze 2.4.79 s implementovaným lineárně predikčním intonačním
modelem
- vytvořené procedury a funkce v prostředí Matlab
- zvukové soubory pro porovnání modelování prozodie
- programový systém SpeechStudio
- prozodická databáze (možno prohlížet pomocí SpeechStudia)
- Linuxový klon systému SpeechStudio
- text této práce
Všechny soubory na přiloženém disku CD-ROM jsou k dispozici rovněž na internetové adrese
http://epos.ure.cas.cz/dizertace.
110
9 Přehled literatury
[BOR67] Borovičková, B., Maláč, V.: The Spectral Analysis of Czech Sounds Combinations. Rozpravy ČSAV,
řada společenských věd, 77, č. 14. Academia, Praha 1967.
[ČÍŽ81] Čížek, V.: Diskrétní Fourierova transformace a její užití. SNTL, Praha 1981.
[DAN57] Daneš, F.: Intonace a věta ve spisovné češtině. Studie a práce lingvistické, č. 2, ČSAV, Praha 1957.
[DUT97] Dutoit, T.: An Introduction to Text-to-Speech Synthesis. Kluwer Academic Publishers, Dodrecht 1997.
[DOH91] Dohalská, M.: Dynamika verbální komunikace - mluvené slovo v teorii a praxi. AUC, Philologica,
monografia CXIV - 1991. UK, Praha 1991.
[EPOS] The Epos home page http://epos.ure.cas.cz/ or http://www.speech.cz/ .
[FAN60] Fant, G.: Acoustic Theory of Speech Production. Mouton, The Hague, 1960.
[GON98] Goncharoff, V., Gries, P.: An Algorithm for Accurately Marking Pitch Pulses in Speech Signals. In:
Proceedings 1998 IASTED International Conference on Signal and Image Processing, Las Vegas NV,
October 1998.
[HÁL75] Hála, B.: Fonetika v teorii a v praxi. SPN, Praha 1975.
[HAN98a] Hanika, J., Horák, P.: Implementation of Original Czech TTS System on the Epos Speech Synthesis
Platform. In: 8th Czech-German Workshop Speech Processing, September 14–16, 1998, Prague, pp. 45–46.
[HAN98b] Hanika, J., Horák, P: Epos – A New Approach to the Speech Synthesis. In: Proceedings of the First
Workshop on Text, Speech and Dialogue – TSD’98, Brno, Czech Republic, September 23–26, 1998, pp. 51–
54.
[HAN99] Hanika, J, Horák, P.: Text to Speech Control Protocol. In: Proc of the Int. Conf. Eurospeech’99,
Budapest, Hungary, September 5–9, 1999, Vol. 5, pp. 2143–2146.
[HAN00] Hanika, J., Horák, P.: Dependences a Independences of Text-to-Speech. In: Papers in Phonetics and
Speech Processing, Forum Phoneticum 70, Z. Palková, H.-W. Wodarz (eds.), Frankfurt am Main, 2000, pp.
27–39.
[HAN01] Hanika, J.: The Epos Speech System. User Documentation ver. 2.4. Available on the www page
http://epos.ure.cas.cz/epos.html.
[HEL96] Helbig, J., Horák, P.: Deutsch-Tschechische Sprachsynthese in einem Telefon-Auskunft-system. In:
D. Mehnert (ed): Studientexte zur Sprachkommunikation No. 13-Elektronische Sprachsignalverarbeitung,
Berlin, November 25–27, 1996, pp. 102–107.
[HIR00] Hirst, D.: INTSINT (INTernational Transcription System for INTonation) homepage
http://www.lpl.univ-aix.fr/~hirst/intsint.html .
[HNŽ01] Hanžl, V., Batůšek, R., Matoušek, J. & others: Final Czech SAMPA Proposal (v1). Available on the
www page http://noel.feld.cvut.cz/sampa/CZECH-SAMPA.html .
[HOR96a] Horák, P.: Programový systém pro modelování prozodie. 580. kolokvium teorie obvodů, systémů
a signálů, ÚRE AV ČR Praha, březen 1996.
[HOR96b] Horák, P.: Prosody modelling software system. In: Proc. 6th Nat. Scient. Conf. Radioelektronika 96,
Brno, April 23–24, 1996, pp. 317–319.
[HOR96c] Horák, P., Mejvaldová, J.: Design and Application of the New Prosody Modelling System for Czech.
In: 6th Czech-German Workshop Speech Processing, Prague, September 2–4, 1996, pp. 42–44.
[HOR96d] Horák, P., Tučková, J., Vích, R.: New Prosody Modelling System for Czech Text-to-Speech. In:
D. Mehnert (ed.) Studientexte zur Sprachkommunikation. No. 13. - Elektronische Sprachsignalverarbeitung,
Berlin, November 25–27, 1996, pp. 102–107.
[HOR97a] Horák, P.: Vyhlazování průběhu základního tónu řeči. 587. kolokvium teorie obvodů, systémů
a signálů, ÚRE AV ČR Praha, leden 1997.
[HOR97b] Horák, P.: Pitch frequency contour smoothing. In: Radioelektronika'97 Conference Proceedings,
Slovak University of Technology in Bratislava, April 23–24, 1997, pp. 176–179.
[HOR97c] Horák, P., Ptáček, M.: Czech Diphone Synthesis with the New Diphone Inventory. In: 7th CzechGerman Workshop Speech Processing, Prague, September 8–10, 1997, pp. 35–36.
[HOR97d] Horák, P.: L’état actuel de la synthèse tchèque à partir du texte écrit. In: Deuxièmes Journées Jeunes
Chercheurs en Parole, FLASH La Rochelle, November 14–15, 1997, pp. 27.
[HOR98a] Horák, P., Hanika, J.: User Configurable Text-to-Speech System. In: Proc.of the 8th Nat. Scientific
Conf. with Int. Participation Radioelektronika’98, Brno, Czech Republic, April 28–29, 1998, pp. 212–215.
111
[HOR98b] Horák, P.: Modelování prozodie řeči pomocí lineární predikce. 600. kolokvium teorie obvodů,
systémů a signálů, ÚRE AV ČR Praha, červen 1998.
[HOR98c] Horák, P.: New Approaches in Czech Prosody Modelling. In: Proc. of the 14th Biennial Internat.
Conf. Biosignal 98, Brno, June 23-25, 1998, pp. 203–205.
[HOR98d] Horák, P., Hanika, J.: Design of a Multilingual Speech Synthesis System. In: Sprach-kommunikation
No. 152 , 9. Konferenz “Elektronische Sprachsignalverarbeitung”, Dresden, 31.8–2.9. 1998, pp. 127–128.
[HOR98e] Horák, P., Vaškových, M.: New Czech Diphone Inventory Segmentation Software. In: 8th CzechGerman Workshop Speech Processing, Prague, September 14–16, 1998, pp. 50–52.
[HOR98f] Horák, P.: The LPC Analysis and Synthesis of F0 Contour. In: A Workshop on TEXT, SPEECH and
DIALOG TSD’98, Brno, Czech Republic, September 23–26, 1998, pp. 219–222.
[HOR99a] Považanec, D., Horák, P., Fuchs, P.: Speech Synthesiser. In: Proc. of the 9th Nat. Scientific Conf. with
Int. Participation Radioelektronika’99, Brno, Czech Republic, April 27–28, 1999, pp. 156–159.
[HOR99b] Horák, P.: SpeechStudio – Speech Analysis Software System. In: Proc. of the 9th Nat. Scientific Conf.
with Int. Participation Radioelektronika’99, Brno, Czech Republic, April 27–28, 1999, pp. 427–430.
[HOR99c] Horák, P.: Lineárně prediktivní kódování průběhu F0. 609. kolokvium teorie obvodů, systémů
a signálů, ÚRE AV ČR Praha, červen 1999.
[HOR99d] Horák, P.: Automatic segmentation based on DTW with the application of the Czech TTS system.
Lecture in: Management Committee of COST 258, Budapest, Hungary, September 10–11,1999.
[HOR99e] Horák, P.: Automatic Speech Segmentation Using Czech TTS. In: 9th Czech-German Workshop
Speech Processing, Prague, September 13–15, 1999, pp. 37–38.
[HOR99f] Horák, P.: Software Tools for Prosody Reseach. In: Troisièmes Rencontres Jeunes Chercheurs en
Parole RJC’99, Avignon, France, November 18–19, 1999.
[HOR00a] Horák, P., Hesounová, A.: Automatic Speech Segmentation with the Application of the Czech TTS
System. In: Proc. of the 3rd International Workshop Text, Speech and Dialogue – TSD 2000, Brno,
September 13–16, 2000, Czech Republic, pp. 201–206.
[HOR00b] Horák, P., Hesounová, A.: Měření trvání českých hlásek pomocí automatické segmentace řeči. 617.
kolokvium teorie obvodů, systémů a signálů, ÚRE AV ČR, Praha, 14. 6. 2000.
[HOR00c] Horák, P., Mejvaldová, J.: Software Tools in Czech Phonetic Research. In: Papers in Phonetics and
Speech Processing, Forum Phoneticum 70, Z. Palková, H.-W. Wodarz (eds.), Frankfurt am Main, 2000, pp.
41–50.
[HOR01a] Horák, P.: Automatic Speech Segmentation Based on DTW with the Application of the Czech TTS
System. In: Improvements in Speech Synthesis, Ed. by E. Keller, G. Bailly, A. Monaghan, J. Terken & M.
Huckwale, John Wiley & Sons, Ltd., 2001, pp. 328–338.
[HOR01b] Horák, P., Hesounová, A.: Czech Triphone Synthesis of Female Voice. In: 11th Czech-German
Workshop Speech Processing, (Ed.: Vích, R.), Prague, September 17–19, 2001, pp. 32–33.
[HOR01c] Horák, P.: Modelování prozodie češtiny pomocí Fujisakiho modelu. 628. kolokvium teorie obvodů,
systémů a signálů, ÚRE AV ČR, Praha, 24. 10. 2001.
[IPA96] The International Phonetic Association: Reproduction of The International Phonetic Alphabet (Revised
to 1993, Updated 1996) http://www2.arts.gla.ac.uk/IPA/ipachart.html .
[ITA69] Itakura, F., Saito, S.: Speech Analysis-Synthesis System based on the Partial Autocorrelation
Coefficients. In: Proc. of the Acoustical Society of Japan Meeting, 1969.
[KEL94] Keller, E. (ed.): Fundamentals of Speech Synthesis and Speech Recognition. John Wiley & Sons Ltd.,
England, 1994.
[KRK98] Krkoška, M., Tučková, J., Musil, V.: A Neural Net Architecture in Czech Text-to-Speech Synthesis.
Proc. of 5th Electronic Devices and Systems Conference EDS’98, Brno, June 1998 pp. 359-361.
[LER77] Leroux, J., Guegen, C.: A Fixed Point Computation of Partial Correlation Coefficients. In: IEEE
Transactions on ASSP, June 1977, pp. 257-259.
[MAL97a] Malfrère, F., Dutoit, T.: Speech Synthesis for Text-To-Speech Alignment and Prosodic Feature
Extraction. Proc. ISCAS 97, Hong-Kong, pp. 2637–2640.
[MAL97b] Malfrère, F., Dutoit, T.: High-Quality Speech Synthesis for Phonetic Speech Segmentation. In: Proc.
EuroSpeech’97, Rhodes, Greece, pp. 2631–2634.
[MAR76] Markel, J. D., Gray, A. H.: Linear Prediction of Speech. Springer, New York, 1976.
[MATE] MATE: A homepage of the MATE project (Multilevel Annotation, Tools Engineering; Telematics
Project LE4-8370) http://mate.nis.sdu.dk/ .
112
[MEN00] Mengel, A., Dybkjaer, L., Garrido, J. M., Heid, U., Klein, M., Pirrelli, V., Poesio, M., Quazza, S.,
Schiffrin, A., and Soria, C.: MATE Dialogue Annotation Guidelines. January 8, 2000, http://www.ims.unistuttgart.de/projekte/mate/mdag/ .
[MER97] Mersdorf, J., Rinscheid, A., Brüggen, M., Schmidt, K. U.: Kodierung von Intonationsverläufen Mittels
Linearer Prädiktion. In: Studientexte zur Sprachkommunikation, Achte Konferenz Elektronische
Sprachsignalverarbeitung, Cottbus, 25.-27. August 1997, Germany, pp. 169–176;
[MIX98] Mixdorff, H.:Intonation Patterns of German – Model-based Quantitative Analysis and Synthesis of F0
contours. PGS Thesis, Technische Universität Dresden, 1998.
[MIX00] Mixdorff, H.: A Novel Approach to the Fully Automatic Extraction of Fujisaki Model Parameters. In:
Proceedings of ICASSP 2000, Istanbul, Turkey, vol. 3, pp. 1281–1284.
[MOU90] Moulines, E., Charpentier, F.: Pitch Synchronous Waveform Processing Techniques for Text-toSpeech Synthesis Using Diphones. Speech Communication, 1990, 9(5/6), pp. 453–467.
[NOU97] Nouza, J., Psutka, J., Uhlíř, J.: Phonetic Alphabet for Speech Recognition of Czech. In:
Radioengineering, 1997, Vol. 6, No. 4, pp. 16–19. ISSN 1210-2512.
[NOU00] Nouza, J., Myslivec, M.: Methods and Application of Phonetic Label Alignment in Speech Processing
Tasks. In: Radioengineering, 2000, Vol. 9, No. 4, pp. 1–7.
[ÖHM67] Öhman, S.E.G.: Word and Sentence Intonation: A Quantitative Model. In: STL-QPSR 2-3, Royal
Institute of Technology, Stockholm 1967, pp. 20–54.
[OPP75] Oppenheim, A. V., Schaffer, R. W.: Digital Processing of Signals. Prentice Hall, New Jersey, 1975.
[PAL94] Palková, Z: Fonetika a fonologie češtiny. Univerzita Karlova, vydavatelství Karolinum, Praha 1994.
[PAL95] Palková, Z., Ptáček, M.: Prosodic Issues in Czech: An Application in TTS. In: Proceedings of the 13th
International Congress of Phonetic Sciences ICPhS 95., Stockholm, Vol. 4, pp. 380–383.
[PIE80] Pierrehumbert, J. B.: The Phonology and Phonetics of English Intonation. PhD thesis, MIT, 1980.
[PŘI95] Přibil, J.: Pitch-synchronní syntezátor řeči s kepstrálními koeficienty. 1. medzinárodná konferencia
o telekomunikačných technológiach Telekomunikácie 95. Sborník referátů II. díl – vědecká sekce,
Bratislava 31.5. – 1.6. 1995, str. 124–129.
[PŘI97] Přibil, J.: Použití kepstrálního modelu pro syntézu řeči. Dizertační práce ČVUT FEL, Praha 1997.
[PTÁ92] Ptáček, M., Vích, R., Víchová, E.: Czech Text-to-Speech Synthesis by Concatenation of Parametric
Units. In: Proc. URSI ISSSE'92, Paris, France, pp. 230–232.
[PTÁ93] Ptáček, M.: Vybrané statě z akustiky řeči. Skriptum Fonetického ústavu FF UK, Praha 1993.
[PTÁ95] Ptáček, M., Janota, P.: Speech sound quantity in isolated Czech words. In: Proc. of the 32nd Czech
Conference on Acoustics, Prague 1995, pp. 67–70.
[RAB78] Rabiner, L. R., Schaffer, R. W.: Digital Processing of Speech Signals, Prentice Hall, New Jersey 1978.
[ROM85] Romportl, M.: Základy fonetiky (VŠ skripta). SPN, Praha 1985.
[SAI92] Saito, S.: Speech Science and Technology. Ohmsha, Tokyo 1992.
[SAK78] Sakoe, H., Chiba, S.: Dynamic Programming Algorithm Optimization for Spoken Word Recognition.
In: IEEE Trans. on Acoustics, Speech and Signal Proc., Vol. ASSP-26, 1978, pp. 43–49.
[SCH97] Schwarzenberg, M., Vích, R.: Robuste Grundfrequenzbestimmung durch Korrelationsanalyse im
Frequenzbereich. In: Fortschritte der Akustik 21. Deutsche Jahrestagung für Akustik, DAGA 95,
Saarbrücken, 13.–17.3.1995, Vol.II, pp. 1019–1022.
[SIL92] Silverman, K., Beckman, M., Petrelli, J., Ostendorf, M., Wightman, C., Price, P., Pierrehumbert, J. and
Hirschberg, J.: ToBI: A Standard for Labelling English Prosody. In: Proc. Int. Conf. On Spoken Language
Processing ICSLP'92, Banff, Canada, 1992, pp. 867–870.
[SMÉ98] Smékal, Z., Vích, R.: Zpracování signálů pomocí signálových procesorů. RADIX spol. s r.o., Praha
1998.
[STR99] Strecha, G.: Automatic Segmentation of Speech Signal. Pre-diploma stay final report, IREE Academy
of Sciences, Czech Republic, 1999 (in German).
[ŠNO96] Šnorek, M., Jiřina, M.: Neuronové sítě a neuropočítače. Skriptum ČVUT, vydavatelství ČVUT, Praha
1996.
[TOBI] ToBI homepage http://ling.ohio-state.edu/~tobi/ .
[TUČ96] Tučková, J.: Comparison of Two Approaches in the Fundamental Frequency Control by Neural Nets.
6th Czech-German Workshop Speech Processing, September 2-4, 1996, Prague.
113
[TUČ97a] Tučková, J., Horák, P.: Fundamental Frequency Control in Czech Text-to-Speech Synthesis. Third
Workshop on Electronic Control and Measuring Systems, Université Paul Sabatier, Toulouse, France, June
1997, pp.80–84.
[TUČ97b] Tučková, J.: Influence of the Input Data on Neural Net F0 Training. 7th Czech-German Workshop
Speech Processing, Prague, September 1997, p. 31.
[TUČ97c] Tučková, J., Boreš, P.: The Neural Network Approach in Fundamental Frequency Control. Speech
Processing: Forum Phoneticum (Ed.: Wodarz, H.-W.), Frankfurt am Main, Hector Verlag, 1997, pp.143–
154.
[TUČ97d] Tučková, J.,Vích, R.: Fundamental Frequency Modelling by Neural Nets in Czech Text-to-Speech
Synthesis. Proc.of the IASTED Int. Conf. "Signal and Image Processing-SIP'97, New Orleans, Louisiana,
USA, December 1997, pp. 85–88.
[TUČ98] Tučková, J.: Fundamental Frequency Control in TTS System. Proc. of 8th Int. Czech-Slovak Scientific
Conf. Radioelektronika’98, Brno, April 1998.
[TUČ99] J. Tučková, G. Strecha, Automatic Labelling of Natural Speech by Comparison with Synthetic Speech.
In: Proc. of the 4th Int. Workshop on Electronics, Control, Measurement and Signals ECMS’99, Liberec,
Czech Republic, May 31 - June 1, 1999, pp. 156–159.
[UHL95] Uhlíř, J., Sovka, P.: Číslicové zpracování signálů. Vydavatelství ČVUT, Praha 1995.
[VÍC83] Vích, R.: Transformace Z a některá její použití. Matematický seminář SNTL č. 15, Praha 1983.
[VÍC94a] Vích, R., Horák, P., Víchová, E.: Experimente mit der Synthese der Frauenstimme. In: DAGA 94 20th Annual Conference on Acoustics, Dresden, March 14–17, 1994, Part C, pp. 1317–1320.
[VÍC94b] Vích, R., Horák, P.: Spectral Smoothing of Voiced Speech Signals by Hidden Homomorphic
Processing. In: 12th Internat. Conf. Biosignal’94, Brno, June 28–30, 1994, pp. 142–144.
[VÍC95a] Vích, R.: Pitch Synchronous Linear Predictive Czech and Slovak Text-to-Speech Synthesis. In: Proc.
of the 15th Internat. Congress on Acoustics, Trondheim, Norway, June 26–30, 1995, Vol. 3, pp. 181–184.
[VÍC95b] Vích., R., Horák, P., Schwarzenberg, M.: Korrelation von Sprachsignalen im Zeit und
Frequenzbereich. In: R. Hoffmann u. R. Ose (Hrsg): Sechste Konferenz Elektronische
Sprachsignalverarbeitung, Wolfenbüttel, September 4.–6., 1995, pp. 10–13.
[VÍC96a] Vích, R., Horák, P.: Text-to-Speech Conversion. History and Present State. In: Proc. 6th Nat. Scient.
Conf. Radioelektronika 96, Brno, April 23–24, 1996, pp. 1–7 (Invited paper).
[VÍC96b] Vích, R., Horák, P.: Text-to-Speech Conversion. History and Present State. In: Proc. of the 13th
Biennial Internat. Conf. Biosignal 96, Brno, June 25–27, 1996, pp. 323–328 (Invited paper).
[VÍC96c] Vích, R., Tučková, J.: Neural Network Application in Czech Text-to-Speech Synthesis. In: Proc. of the
IASTED Int. Conf. Signal and Image Processing and Applications-SIPA’96, Annecy-France, June 1996, pp.
242–244.
[WEL92] Wells, J.C., Barry, W., Grice, M., Fourcin, A., Gibbon, D.: Standard Computer-compatible
Transcription. Esprit project 2589 (SAM), Doc. no. SAM-UCL-037. London, Phonetics and Linguistics
Department, UCL, 1992.
[WEL00] Wells, J.C.: SAMPA – computer readable phonetic alphabet
http://www.phon.ucl.ac.uk/home/sampa/home.htm .
[WIT82] Witten, I. H.: Principles of Computer Speech. Academic Press, London 1982.
114
10 Rejstřík
K
kadence, 21
konkluzívní, 22
kategorie
hlásek, 63
vět, 80
koeficienty
kepstrální, 60
lineárně predikční, 60
váhovací, 61, 62
korpus. viz. databáze řečová
prozodický, 59, 80
A
algoritmus
DTW, 59, 61
Leroux-Guegenův, 41
Levinson-Durbinův, 31
označování pitchpulsů, 42
antikadence, 22
stoupavá, 22
stoupavě klesavá, 23
aproximace
zbytkového signálu, 53
D
databáze
řečová, 59, 110
decimace, 40
detektor
základního tónu, 41
L
lineární predikce, 8, 13, 18, 29, 30, 33, 37, 40, 41,
42, 43, 44, 55, 73, 77, 112
M
matice
distanční, 62
vzdáleností, 62
melodém, 21
melodie
větná, 20, 23
mikrointonace, 19
model
intonační Fujisakiho, 67
intonační LPC, 67
parametrický, 30
modelování prozodie, 100, 105
modely
intonační, 26
E
energie
signálu krátkodobá (STE), 60
Epos, 13, 55, 59, 88, 111
Epos TSR Tracking, 72
F
filtr
decimační, 37
dekorelační, 30
FIR, 39
rekonstrukční, 42
syntetizující, 30
filtru
analyzující, 30
fonetická transkripce, 17, 19
fonetický přepis, 83
formanty, 14
frázování, 21
P
pauza, 21
počet průchodů nulou, 60
polokadence, 23
bezpříznaková stoupavá, 23
příznaková klesavá, 23
příznaková stoupavá, 23
pravidla, 71, 85
podmíněná, 87
prozodická, 86
řízená obsahem, 85
strukturovaná, 86
využívající slovníky, 85
prozodie, 9, 13, 16, 18, 19, 25, 37, 43, 59, 77, 111,
112
předrážka, 20
předtaktí. viz předrážka
přízvuk, 24
slovní, 20
větný, 21, 22
přízvukový takt. viz takt přízvukový
PSOLA, 25, 68
G
GTK WavEdit, 70
H
hlasové ústrojí, 14
Ch
charakteristika
impulsní, 37
kmitočtová, 37
chyba
střední kvadratická, 47
I
interpolace
lineární, 39
intonace, 19
INTSINT, 26
115
R
redundance, 47
řeč, 14
tsrtool. viz. Epos TSR Tracking
TTS systém, 13, 16
umělé neuronové sítě (UNS), 18
S
SAMPA, 17
segmentace
automatická, 60
SpeechStudio, 68
spektrogram, 15
syntéza řeči
formantová, 19, 25
v časové oblasti, 25
U
úsek
intonační, 21
promluvový, 22, viz úsek intonační
V
věta, 21
neutrální oznamovací, 23
W
WinSay, 71
T
takt
přízvukový, 20, 21
tempo řeči, 21
ToBI, 26
transkripce
fonetická, 97
Z
značky, 68
zpracování textu, 16
116

Podobné dokumenty