1 Stru�n� popis p�evodu textu do zvukov� podoby ve Festivalu 2 ========================================================== 3 4 Cel� proces �e�ov� synt�zy Festivalu je velmi podrobn� pops�n v�dokumentu 5 Building Synthetic Voices, kter� je k�m�n� na www.festvox.org a lze jej 6 doporu�it ka�d�mu, kdo chce festivalov� mechanismy pochopit do dostate�n� 7 hloubky. Dal�� informace jsou pak k�dispozici v�manu�lu Festivalu, ty jsou 8 v�ak v�ur�it�ch sm�rech ne�pln� a bez v��e uveden�ho dokumentu se p�i 9 seri�zn�j�� pr�ci na nov�m festivalov�m jazyce a/nebo hlasu nelze obej�t. 10 11 Tento dokument je stru�n�m popisem synt�zy a dostupn�ch n�stroj� pro ty, kdo 12 pot�ebuj� z�skat z�kladn� orientaci v�procesu festivalov� synt�zy a p�itom 13 nemaj� �as anebo z�jem se v�novat zdlouhav�mu a podrobn�mu studiu v��e 14 uveden�ch dokument�. Nejedn� se o�*u�ivatelsk�* �vod do Festivalu, znalost 15 u�ivatelsk� pr�ce s�Festivalem je p�edpokl�d�na. 16 17 Konkr�tn� postupy pou�it� pro �e�tinu jsou pops�ny ve zdrojov�m k�du 18 festival-czech (technick� informace) a v�souboru README.Czech.cs (jazykov� 19 informace). 20 21 22 * Z�kladn� principy Festivalu 23 24 Festival je syst�m modul�rn� a cel� proces se skl�d� z�proveden� libovoln� 25 sekvence modul�. Ka�d� modul m� sv�j ��el a pro n�kter� ��sti zpracov�n� si 26 lze vybrat z�v�ce alternativn�ch modul�. Lze t� pou��t libovoln� moduly 27 vlastn�. 28 29 Moduly se obvykle p�ou ve schemov�m programovac�m jazyce Festivalu zvan�m 30 SIOD. Tento jazyk je pops�n v�manu�lu Festivalu. 31 32 33 * F�ze zpracov�n� 34 35 Zpracov�n� textu se standardn� skl�d� z�n�sleduj�c�ch f�z�, definovan�ch 36 v�synthesis.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 V�e se to�� okolo tzv. utterance, kter� p�edstavuje jakousi jednotku, v�ce �i 55 m�n� anotovanou, kterou lze postupn�m dopl�ov�n�m anotac� (*features*) dostat 56 a� do stavu, kdy je schopna odesl�n� na zvukov� v�stup. Ka�d� z�v��e uveden�ch 57 f�z� je vol�n� funkce 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 festivalov�m ��dkov�m rozhran� nelze zad�vat 69 8-bitov� znaky, v�p��pad� pot�eby je nutno synt�zu prov�st p�es soubor. 70 71 Utterance se skl�d� z�tzv. relac�, jejich� jm�na lze zjistit pomoc� 72 73 (utt.relationnames utterance) 74 75 Obsah (seznam polo�ek, items) ��dan� relace se vyt�hne pomoc� 76 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 vyps�n� relace je p�ehledn�j�� v�stup 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 vrac� kompletn�j�� informaci o�dan� relaci, obsahuje 106 cel� strom dat obsa�en�ch v�relaci, zat�mco utt.relation.print vypisuje pouze 107 prvky nejvy��� �rovn�. 108 109 Ob�as nar��me na pojem glob�ln�ho parametru. Hodnotu glob�ln�ho parametru lze 110 z�skat vol�n�m 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 naps�na v�C++, vyu��v� 124 v�ak prom�nn� `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 naps�na ve Scheme a nach�z� se v�synthesis.scm. 202 203 204 * Praktick� pozn�mky. 205 206 Docstringy um� vypsat funkce `doc'. 207 208 Readline um� dopl�ovat jm�na funkc�, co� je �asto u�ite�n�. 209 210 211 -- Milan Zamazal 212