1 Strunpopis pevodu textu do zvukovpodoby ve Festivalu
2 ==========================================================
3 
4 Celproceseovsyntzy Festivalu je velmi podrobnpopsn vdokumentu
5 Building Synthetic Voices, kterje kmnna www.festvox.org a lze jej
6 doporuit kadmu, kdo chce festivalovmechanismy pochopit do dostaten7 hloubky.  Dal�� informace jsou pak kdispozici vmanulu Festivalu, ty jsou
8 vak vuritch smrech neplna bez v��e uvedenho dokumentu se pi
9 seriznj�� prci na novm festivalovm jazyce a/nebo hlasu nelze obejt.
10 
11 Tento dokument je strunm popisem syntzy a dostupnch nstrojpro ty, kdo
12 potebujzskat zkladnorientaci vprocesu festivalovsyntzy a pitom
13 nemaj� �as anebo zjem se vnovat zdlouhavmu a podrobnmu studiu v��e
14 uvedench dokument�.  Nejednse o�*uivatelsk�* �vod do Festivalu, znalost
15 uivatelskprce sFestivalem je pedpokldna.
16 
17 Konkrtnpostupy pouitproetinu jsou popsny ve zdrojovm kdu
18 festival-czech (technickinformace) a vsouboru README.Czech.cs (jazykov19 informace).
20 
21 
22 * Zkladnprincipy Festivalu
23 
24 Festival je systm modulrna celproces se skldzprovedenlibovoln25 sekvence modul�.  Kadmodul msvj ��el a pro nkter� ��sti zpracovnsi
26 lze vybrat zvce alternativnch modul�.  Lze tpou��t libovolnmoduly
27 vlastn�.
28 
29 Moduly se obvykle pou ve schemovm programovacm jazyce Festivalu zvanm
30 SIOD.  Tento jazyk je popsn vmanulu Festivalu.
31 
32 
33 * Fze zpracovn34 
35 Zpracovntextu se standardnskldznsledujcch fz�, definovanch
36 vsynthesis.scm:
37 
38 (defUttType Text
39   (Initialize utt)
40   (Text utt)
41   (Token_POS utt)
42   (Token utt)
43   (POS utt)
44   (Phrasify utt)
45   (Word utt)
46   (Pauses utt)
47   (Intonation utt)
48   (PostLex utt)
49   (Duration utt)
50   (Int_Targets utt)
51   (Wave_Synth utt)
52   )
53 
54 Ve se to�� okolo tzv. utterance, kterpedstavuje jakousi jednotku, vcei
55 mnanotovanou, kterou lze postupnm doplovnm anotac� (*features*) dostat
56 ado stavu, kdy je schopna odeslnna zvukovvstup.  Kadzv��e uvedench
57 fzje volnfunkce na utterance `utt'.
58 
59 
60 * Pr�ce s�utterance
61 
62 Pot�ebujete-li prov�st synt�zu ur�it�ho textu, vytvo��te si p��slu�n� utterance
63 nap��klad n�sleduj�c�m zp�sobem:
64 
65   (Utterance Text "n�jak� text")
66 
67 Funkce vr�t� nezpracovan� utterance, kter� lze nechat pln� zanalyzovat vol�n�m
68 funkce `utt.synth'.  Pozor, ve festivalovm ��dkovm rozhrannelze zadvat
69 8-bitovznaky, vp��padpoteby je nutno syntzu provst pes soubor.
70 
71 Utterance se skldztzv. relac�, jejichjmna lze zjistit pomoc72 
73   (utt.relationnames utterance)
74 
75 Obsah (seznam poloek, items) ��danrelace se vythne pomoc76 
77   (utt.relation.items utterance 'relation-name)
78 
79 Mnoh� polo�ky se vyskytuj� ve v�ce relac�ch.  Relace m� obecn� podobu stromu a
80 prost�ednictv�m polo�ek mohou b�t tyto stromy vz�jemn� prov�z�ny.  Relace
81 polo�ky lze zjistit pomoc�
82 
83   (item.relations item)
84 
85 Z�kladn�mi vlastnostmi polo�ky jsou jej� jm�no a rysy:
86 
87   (item.name item)
88 
89 Rysy polo�ky lze zjistit pomoc�
90 
91   (item.features item)
92 
93 Lze si vyzkou�et:
94 
95   (mapcar item.features (utt.relation.items utterance 'Word))
96 
97 Pro vypsnrelace je pehlednj�� vstup z
98 
99   (utt.relation.print utterance 'Word)
100 
101 Lze t� pou��t
102 
103   (utt.relation_tree utt 'SylStructure)
104 
105 Funkce utt.relation_tree vrackompletnj�� informaci odanrelaci, obsahuje
106 celstrom dat obsaench vrelaci, zatmco utt.relation.print vypisuje pouze
107 prvky nejvy��� �rovn�.
108 
109 Obas nar��me na pojem globlnho parametru.  Hodnotu globlnho parametru lze
110 zskat volnm
111 
112   (Param.get 'jm�no-parametru)
113 
114 
115 * Stru�n� popis f�z� zpracov�n�
116 
117 ** Initialize
118 
119 Jen vytvo�� pr�zdn� utterance.
120 
121 ** Text
122 
123 Provede rozd�len� textu na tokeny.  Funkce `Text' je napsna vC++, vyu��v124 vak promnn� `token.*' definovan� v�token.scm.
125 
126 Definovan� interpunk�n� znam�nka jsou odd�lena od v�sledn�ch token� a jsou
127 dostupn� jako jejich features.
128 
129 ** Token_POS
130 
131 Prov�d�, je-li t�eba, kontextov� ozna�kov�n� tokenu pro rozli�en� r�zn�ho
132 v�znamu shodn�ch token�.  Tato f�ze slou�� pro ur�en� spr�vn� v�slovnosti slov
133 ve f�zi bezprost�edn� n�sleduj�c�, pozd�j�� f�ze POS m� ��el jin�.
134 
135 ** Token
136 
137 P�ev�d� tokeny na slova.  P�evod lze prov�st definic� funkce token_to_words.
138 P�i konverzi tokenu je mo�no se pod�vat na okoln� tokeny (nebo l�pe vyu��vat
139 kontextov�ch informac� z�skan�ch ve f�zi Token_POS), tak�e je mo�no prov�d�t
140 i�sofistikovan�j�� operace ne� pouh� mapov�n� jedin�ho tokenu na jedno nebo
141 v�ce slov.
142 
143 ** POS (POS == Part of Speech)
144 
145 Prov�d� tagov�n� konkr�tn�ch slov dle jejich pozice v��e�i.  Nepovinn� ��st.
146 Parametrizovateln� pomoc� n�kolika prom�nn�ch.  Tato f�ze, na rozd�l od f�ze
147 Token_POS, ur�uje v�znam jednotliv�ch slov ji� nikoliv pro ur�en� v�slovnosti
148 slov, n�br� pro ur�en� jejich role ve vztahu k�n�sledn�mu ur�en� prozodie,
149 tj. pauz, d�lek, p��zvuku a intonace.
150 
151 ** Phrasify
152 
153 Identifikace pauz (��dn�, norm�ln�, dlouh�) mezi slovy.  Mezi v�t�inu slov se
154 nevkl�d� ��dn� pauza, vkl�d� se za interpunkci, n�kdy kr�tk� (po ��rce), n�kdy
155 dlouh� (konec v�ty).  Tato funkce sama o�sob� pauzy nevkl�d�, to se d�je a� na
156 z�klad� j� generovan�ch informac� v�Pauses.
157 
158 ** Word
159 
160 Prov�d� p�evod slov na fon�my a slabiky v�implicitn�m festivalov�m form�tu.
161 Definov�no v�lexicon.scm, nen�-li glob�ln�m parametrem Word_Method �e�eno
162 jinak, vol� se C++ funkce Classic_Word.
163 
164 Cel� process je pom�rn� podrobn� pops�n v�dokumentaci, sekce Lexicons.
165 
166 ** Pauses
167 
168 Vkl�d� pauzy.  Pro tuto akci se pou��v� funkce definovan� glob�ln�m parametrem
169 Pause_Method.  Implicitn� je funkce Classic_Pauses, definovan� v�pauses.scm.
170 Funkce d�l� v�z�sad� to, �e vlo�� po��te�n� pauzu a pak vlo�� pauzy dle
171 informac� vytvo�en�ch ve f�zi Phrasify.  Nav�c vy�ad� z�utterance slova
172 ozna�en� jako interpunkce.
173 
174 Vkl�d�n� �vodn� pauzy lze odru�it p�edefinov�n�m funkce insert_initial_space,
175 nem�lo by se to v�ak d�t v�jin�ch ne� od�vodn�n�ch p��padech, jinak t�m utrp�
176 v�sledn� kvalita synt�zy.
177 
178 ** Intonation
179 
180 Generuje akcenty pro intonaci (prvn� f�ze zpracov�n� intonace), ale nevytv���
181 je�t� intonaci samotnou (druh� f�ze zpracov�n� intonace), to d�l� a�
182 Int_Targets.  Pou��v� se funkce definovan� glob�ln�m parametrem Int_Method.
183 
184 ** PostLex
185 
186 V�t�to f�zi lze aplikovat jak�koliv dodate�n� transformace nad utterance,
187 za�azen� v�seznamu postlex_rules_hooks.
188 
189 ** Duration
190 
191 Ur�� d�lky trv�n� jednotliv�ch segment� (fon�m�) syntetizovan�ho textu.
192 
193 ** Int_Targets
194 
195 Ur�� parametry intona�n� k�ivky, obvykle po slabik�ch.
196 
197 ** Wave_Synth
198 
199 Samotn� sestaven� zvuku na z�klad� ji� v�ech dostupn�ch anotac�.  Funkce, kter�
200 se pro synt�zu zavol�, je definov�na glob�ln�m parametrem `Synth_Method'.
201 Kostra funkce Wave_Synth je napsna ve Scheme a nachzse vsynthesis.scm.
202 
203 
204 * Praktickpoznmky.
205 
206 Docstringy umvypsat funkce `doc'.
207 
208 Readline um� dopl�ovat jm�na funkc�, co� je �asto u�ite�n�.
209 
210 
211 -- Milan Zamazal
212