1\input texinfo @c -*-texinfo-*- 2@c %**start of header 3@documentencoding ISO-8859-2 4@documentlanguage cs 5@setfilename speech-dispatcher-cs.info 6@settitle Speech Dispatcher 7@finalout 8@c @setchapternewpage odd 9@c %**end of header 10 11@syncodeindex pg cp 12@syncodeindex fn cp 13@syncodeindex vr cp 14 15@include version-2.texi 16 17@dircategory Sound 18@dircategory Development 19 20@direntry 21* Speech Dispatcher cs: (speechd-cs). Speech Dispatcher (in Czech). 22@end direntry 23 24@titlepage 25@title Speech Dispatcher 26@subtitle Zvl�dnut� Babylonu TTS' 27@subtitle pro Speech Dispatcher @value{VERSION} 28@author Tom@'a@v{s} Cerha <@email{cerha@@brailcom.org}> 29@author Hynek Hanke <@email{hanke@@volny.cz}> 30@author Milan Zamazal <@email{pdm@@brailcom.org}> 31 32@page 33@vskip 0pt plus 1filll 34 35Tento manu�l se vzathuje ke Speech Dispatcher, verze @value{VERSION}. Jedn� se 36v�ak pouze o u�ivatelskou ��st dokumentace a upozor�ujeme, �e tento p�eklad ji� 37nen� aktu�ln�! Poskytujeme jej s t�m, �e mo�n� bude u�ite�n� a to zejm�na v 38sekc�ch, kter� popisuj� obecn� koncepty a my�lenky projektu, a to t�m, kte�� si 39nemohou p�e��st anglickou dokumentaci. Nikdo by nicm�n� nem�l spol�hat na 40technick� detaily zde uveden�, proto�e mnoho v�c� je ji� dnes jinak. 41 42Copyright @copyright{} 2001, 2002, 2003, 2006 Brailcom, o.p.s. 43 44@quotation 45D�v�me povolen� kop�rovat, distribuovat a/nebo modifikovate tento dokument pod 46podm�nkami GNU Free Documentation License, Verze 1.2 nebo jak�koliv nov�j�� 47verze vydan� Free Software Foundation, bez jak�chkoliv Invariant Sections 48(nem�nn�ch sekc�), bez Front-Cover Texts (texty na p�edn� stran� ob�lky) a bez 49Back-Cover Texts (texty na zadn� stran� ob�lky). Kopie t�to licence je 50p�ilo�ena v sekci nazvan� ,,GNU Free Documentation License''. 51@end quotation 52 53@end titlepage 54 55@ifnottex 56@node Top, �vod, (dir), (dir) 57 58Tento manu�l se vzathuje ke Speech Dispatcher, verze @value{VERSION}. Jedn� se 59v�ak pouze o u�ivatelskou ��st dokumentace a upozor�ujeme, �e tento p�eklad ji� 60nen� aktu�ln�! Poskytujeme jej s t�m, �e mo�n� bude u�ite�n� a to zejm�na v 61sekc�ch, kter� popisuj� obecn� koncepty a my�lenky projektu, a to t�m, kte�� si 62nemohou p�e��st anglickou dokumentaci. Nikdo by nicm�n� nem�l spol�hat na 63technick� detaily zde uveden�, proto�e mnoho v�c� je ji� dnes jinak. 64 65Copyright @copyright{} 2001, 2002, 2003 Brailcom, o.p.s. 66 67@quotation 68D�v�me povolen� kop�rovat, distribuovat a/nebo modifikovate tento dokument pod 69podm�nkami GNU Free Documentation License, Verze 1.2 nebo jak�koliv nov�j�� 70verze vydan� Free Software Foundation; bez jak�chkoliv Invariant Sections 71(nem�nn�ch sekc�), bez Front-Cover Texts (texty na p�edn� stran� ob�lky) a bez 72Back-Cover Texts (texty na zadn� stran� ob�lky). Kopie t�to licence je 73p�ilo�ena v sekci nazvan� ,,GNU Free Documentation License''. 74@end quotation 75@end ifnottex 76 77@ifhtml 78@heading Menu 79@end ifhtml 80 81@menu 82* �vod:: Co to je Speech Dispatcher 83* U�ivatelsk� dokumentace:: Pou��v�n�, konfigurace 84 85* GNU General Public License:: Podm�nky kop�rov�n� Speech Dispatcher 86* GNU Free Documentation License:: Podm�nky kop�rov�n� tohoto manu�lu 87 88* Index of Concepts:: 89@end menu 90 91@node �vod, U�ivatelsk� dokumentace, Top, Top 92@chapter �vod 93 94@menu 95* Motivace:: Pro� Speech Dispatcher? 96* Z�kladn� design:: Jak to pracuje? 97* P�ehled z�kladn�ch rys�:: Co v�echno um�? 98* Sou�asn� stav:: Jak� je sou�asn� stav? 99@end menu 100 101@node Motivace, Z�kladn� design, �vod, �vod 102@section Motivace 103@cindex Hlavn� my�lenky, Motivace 104@cindex Filosofie 105 106Projekt Speech Dispatcher se sna�� poskytnout na za��zen� nez�vislou vrstvu pro 107�e�ovou synt�zu. M�l by poskytovat jednoduch� rozhran� pro klientsk� aplikace 108(aplikace, kter� cht�j� mluvit), stejn� jako pro ovlada�e konkr�tn�ch za��zen� 109(r�zn� �e�ov� syntetiz�ry). 110 111Vysoce kvalitn� �e�ov� synt�za je tu ji� dlouho a nyn� je pou�iteln� i pro 112b�n� u�ivatele na jejich dom�c�ch po��ta��ch. Ob�as to p�ich�z� jako nutnost, 113ob�as je to jen dobr� vlastnost, aby n�kter� programy poskytovaly �e�ov� 114v�stup. Pro synt�zu hlasu je tu �irok� pole vyu�it� od v�ukov�ho software a� 115po specializovan� syst�my, jako jsou nap��klad nemocnice �i laborato�e. Pro 116zrakov� posti�en� u�ivatele je to jedna ze dvou z�kladn�ch cest, jak z�skat 117v�stup z po��ta�e (tou druhou je Braillsk� ��dek). 118 119Existuj� r�zn� �e�ov� syntetiz�ry s r�zn�mi schopnostmi. N�kter� z nich jsou 120hardwarov�, n�kter� softwarov�. N�kter� jsou svobodn�m software a jsou voln� 121dostupn� na internetu. Program�to�i to maj� opravdu t�k�, kdy� cht�j� sv� 122programy rozmluvit, proto�e pot�ebuj� nejprve naj�t n�jak� vhodn� syntetiz�r 123(dlouh� hodiny experimentov�n� a tak d�le) a potom jej pot�ebuj� n�jak 124zprovoznit s jejich programem. �asto mus� ps�t pro tyto programy �i hardwarov� 125za��zen� vlastn� ovlada�e a d�laj� to znovu a znovu. Snadno si lze p�edstavit, 126�e se to cel� zhrout� kdy� nevinn� u�ivatel spust� dva programy najednou. Kdyby 127p�esto nastartovaly oba, budou k�i�et jeden p�es druh�ho. 128 129T�m je pro program�tory velmi obt�n� implementovat do sv�ch program� podporu 130�e�ov� synt�zy (pro nevidom� u�ivatele, nebo prost� pro lep�� u�ivatelsk� 131rozhran�) a je to jeden z d�vod�, pro� po��d je�t� pln� nevyu��v�me toho, co 132�e�ov� synt�za nab�z�. 133 134V ide�ln�m sv�t� by program�to�i mohli pro �e�ovou synt�zu pou��vat podobn� 135p��kazy, jako to d�laj� pro textov� v�stup na obrazovku (printf, puts, ...). V 136ide�ln�m sv�t� by existovalo n�jak� speech_printf(), kter� by se staralo o to, 137aby byla zpr�va p�emluvena ve spr�vn� �as bez p�eru�ov�n� ostatn�ch. 138Program�tor by se tak nemusel starat o to, jak je p�esn� komunikace s �e�ov�m 139syntetiz�rem implementov�na. V ide�ln�m sv�t� by byl v ka�d� GNU/Linuxov� 140distribuci n�jak� �e�ov� syntetiz�r a n�jak� rozhran� staraj�c� se o aplikace, 141kter� cht�j� mluvit, dovoluj�c� u�ivatel�m nastavit si parametry �e�i a 142poskytuj�c� n�jak� jednoduch� rozhran� (jako speech_printf()) pomoc� n�jak� 143sd�len� knihovny pro program�tory. Bude to j�t� dlouh� cesta ne� se n�m 144poda�� dos�hnout tohoto stavu v�c�, ale se Speech Dispatcherem d�l�me prvn� 145kr��ky... 146 147@node Z�kladn� design, P�ehled z�kladn�ch rys�, Motivace, �vod 148@section Z�kladn� design 149@cindex Design 150 151V komunikaci mezi v�emi r�zn�mi aplikacemi a syntetiz�ry je obrovsk� nepo��dek. 152Proto jsme cht�li, aby byl Speech Dispatcher vrstva odd�luj�c� aplikace a 153syntetiz�ry tak, aby se aplikace nemusely starat o syntetiz�ry a syntetiz�ry se 154nemusely starat o interakci s aplikacemi. 155 156Rozhodli jsme se implementovat Speech Dispatcher jako server, kter� p�ij�m� od 157aplikac� p��kazy p�es protokol nazvan� @code{SSIP}, zpracov�v� je a, pokud je 158to nutn�, zavol� p��slu�nou funkci dan�ho v�stupn�ho modulu, kter� pak 159komunikuje s n�kter�m z r�zn�ch syntetiz�tor�. 160 161Ka�d� klient (aplikace, kter� chce mluvit) otev�e socketov� spojen� na Speech 162Dispatcher a vol� funkce jako say(), stop(), pause() poskytovan� knihovnou 163implementuj�c� tento protokol. Tato sd�len� knihovna je st�le na stran� 164klienta a pos�l� Speech Dispatcheru SSIP p��kazy p�es otev�en� socket. Kdy� 165p��kazy doraz� do Dispatchera, ten je zpracuje, p�e�te text, kter� by m�l b�t 166p�e��k�n a vlo�� jej do fronty podle jeho priority. Potom se rozhodne kdy, s 167jak�mi parametry (nastavovan�mi klientsk�m programem i u�ivatelem) a na jak�m 168syntetiz�ru zpr�vu nech� p�emluvit. Tyto po�adavky na mluven� jsou pak 169zpracov�v�ny v�stupn�mi moduly (pluginy) pro r�zn� hardwarov� a softwarov� 170syntetiz�ry a p�e��k�ny nahlas. 171 172@image{figures/architecture,155mm,,Architektura Speech Dispatchera} 173 174Detailn� popis programov�n� klient� i serveru je k dispozici v anglick�m 175manu�lu. 176 177@node P�ehled z�kladn�ch rys�, Sou�asn� stav, Z�kladn� design, �vod 178@section P�ehled z�kladn�ch rys� 179 180Speech Dispatcher z pohledu u�ivatele: 181 182@itemize @bullet 183@item snadn� konfigurace r�zn�ch mluv�c�ch aplikac�, centr�ln� spr�va 184@item mo�nost voln� rozhodovat, jak� aplikace bude mluvit s jak�m syntetiz�rem 185@item m�n� �asu v�novan�ho konfiguraci a lad�n� r�zn�ch aplikac� vyu��vaj�c�ch synt�zu 186@item historie zpr�v pro zrakov� posti�en� u�ivatele 187@end itemize 188 189Speech Dispatcher z pohledu program�tora aplikace: 190 191@itemize @bullet 192@item snadn� cesta, jak aplikaci rozmluvit 193@item jednotn� rozhran� k r�zn�m syntetiz�r�m 194@item synchronizace zpr�v na vy��� �rovni (kategorizace pomoc� priorit) 195@item mo�nost nemuset se starat o konfiguraci parametr� hlasu 196@end itemize 197 198@node Sou�asn� stav, , P�ehled z�kladn�ch rys�, �vod 199@section Sou�asn� stav 200@cindex Syntetiz�ry 201@cindex Ostatn� programy 202 203TODO: 204 205@node U�ivatelsk� dokumentace, GNU General Public License, �vod, Top 206@chapter U�ivatelsk� dokumentace 207 208@menu 209* Z�kladn� funkce:: Detailn�j�� popis v�ech z�kladn�ch funkc� 210* Spou�t�n�:: Volby p��kazov� ��dky 211* Konfigurace:: Jak zkonfigurovat Speech Dispatcher 212@end menu 213 214@node Z�kladn� funkce, Spou�t�n�, U�ivatelsk� dokumentace, U�ivatelsk� dokumentace 215@section Z�kladn� funkce 216 217V t�to sekci je detailn�j�� popis z�kladn�ch funkc� Speech Dispatcheru. 218 219@menu 220* Model priorit zpr�v:: Zpracov�n� sou�asn� p��choz�ch zpr�v 221* Historie zpr�v:: Ukl�d�n� zpr�v pro pozd�j�� nahl�dnut� 222* V�ce v�stupn�ch modul�:: Interakce s r�zn�mi syntetiz�ry 223* Autentifikace u�ivatel�:: Autentifikace pro p��stup k historii 224@end menu 225 226@node Model priorit zpr�v, Historie zpr�v, Z�kladn� funkce, Z�kladn� funkce 227@subsection Model priorit zpr�v 228@cindex priority 229 230Speech Dispatcher nem��e syntetizovat v�echny zpr�vy, kter� do n�j p�ich�z� z 231prost�ho d�vodu, �e zpr�vy p�ich�zej� oby�ejn� rychleji, ne� je syntetick� hlas 232dok�e ��st. Na obrazovce monitoru je v porovn�n� s jednokan�lov�m �e�ov�m 233v�stupem relativn� hodn� m�sta. Z toho d�vodu pou��v�me syst�m n�kolika 234priorit zam��en�ch na r�zn� typy zpr�v. 235 236My�lenka je takov�, �e �lohou program�tora klientsk� aplikace bude pouze ur�it 237pro ka�dou zpr�vu ur�itou prioritu odpov�daj�c� typu dan� zpr�vy. Ve�ker� 238synchronizace a p�ep�n�n� mezi t�mito zpr�vami (kter� mohou poch�zet od r�zn�ch 239klient�) potom bude zaji�t�no aplikov�n�m ur�it�ch pravidel ve Speech 240Dispatcheru. 241 242@menu 243* Typy priorit:: 244* Diagram priorit:: 245* P��klady vyu�it� priorit:: 246@end menu 247 248@node Typy priorit, Diagram priorit, Model priorit zpr�v, Model priorit zpr�v 249@subsubsection Priority Categories 250 251Speech Dispatcher poskytuje syst�m p�ti priorit. Ka�d� zpr�va obsahuje bu� 252explicitn� informaci o priorit�, nebo j� je p�i�azena v�choz� priorita. 253 254Pros�m pod�vejte se tak� na p�ilo�en� diagram (dole). 255 256@subsubheading Priorita @code{important} 257@cindex Priorita important 258 259Tato zpr�va bude p�e��k�na okam�it�, jak doraz� do serveru. Nen� nikdy 260p�eru�ena. Kdy� server obdr�� sou�asn� n�kolik r�zn�ch zpr�v t�to priority, ty 261jsou ulo�eny a p�e��k�ny v po�ad�, ve kter�m p�i�ly. 262 263Kdy� p�ijde nov� zpr�va priority @code{important} a zrovna se ��k� n�jak� jin� 264zpr�va, tato jin� zpr�va je zahozena. Dal�� zpr�vy ni���ch priorit jsou bu� 265pozdr�eny (priorita @code{message} a @code{text}) ne� ji� ne�ekaj� na p�e��k�n� 266��dn� zpr�vy priority @code{important}, nebo jsou zahozeny (priority 267@code{notification} a @code{progress}). 268 269Tyto zpr�vy by m�ly b�t tak kr�tk�, jak je to jen mo�n�, a m�ly by b�t 270pou��v�ny pouze z��dka, proto�e blokuj� v�stup v�ech ostatn�ch zpr�v. 271 272@subsubheading Priorita @code{message} 273@cindex Priorita message 274 275Tato zpr�va bude p�e��k�na, pokud ji� ve front� ne�ek� ��dn� jin� zpr�va 276priority @code{important} nebo @code{message}. V opa�n�m p��pad� je tato 277zpr�va pozdr�ena dokud nebudou v�echny p�e��k�ny. To znamen�, �e priorita 278@code{message} nezastavuje sama sebe. Kdy� ve front� �ekaj� zpr�vy priorit 279@code{notification} nebo @code{progress} nebo @code{text} kdy� p�ijde zpr�va 280priority @code{message}, jsou zahozeny. 281 282@subsubheading Priorita @code{text} 283@cindex Priorita text 284 285Tato zpr�va bude p�e��k�na, kdy� ve front� ne�ek� ��dn� zpr�va priority 286@code{important} nebo @code{message}. Pokud �ek�, tato nov� zpr�va je 287pozdr�ena dokud nebudou p�edchoz� zpr�vy p�e��k�ny. 288 289Priorita text p�erqu�uje sama sebe. To znamen�, �e kdy� p�ijde n�kolik zpr�v 290priority text, ty nejsou p�e��k�ny v po�ad�, ve kter�m p�i�ly, ale bude vy��ena 291pouze posledn� z nich a ostatn� jsou p�eru�eny a zahozeny. 292 293Pokud jsou ve front� zpr�vy priorit @code{notification} nebo @code{progress} 294nebo se pr�v� p�e��k�vaj�, jsou zahozeny. 295 296@subsubheading Priorita @code{notification} 297@cindex Priorita notification 298 299Toto je zpr�va n�zk� priority. Pokud ve front� �ekaj� zpr�vy priorit 300@code{important}, @code{messages}, @code{text} nebo @code{progress} nebo jsou 301pr�v� p�e��k�v�ny, tato nov� zpr�va priority @code{notification} je zru�ena. 302 303Tato priorita p�eru�uje sama sebe, tak�e kdy� p�ijde najednou v�ce zpr�v s 304prioritou @code{notification}, p�e��k� se pouze posledn� z nich. 305 306@subsubheading Priority @code{progress} 307 308Toto je speci�ln� priorita pro zpr�vy, kter� p�ich�zej� kr�tce po sob� a nesou 309informaci o n�jak� prob�haj�c� �innosti (nap�.@ @code{Dokon�eno 45%}). 310 311Kdyby nov� zpr�vy p�eru�ovaly ostatn� (viz. priorita Notification), u�ivatel by 312nemusel sly�et ani jednu zpr�vu do konce. 313 314Tato priorita se chov� stejn� jako @code{notification} s v�jimkou dvou v�c�. 315 316@itemize 317@item 318Zpr�vy t�to priority nep�eru�uj� jedna druhou. M�sto toho, pokud je zrovna 319p�e��k�v�na jin� zpr�va t�to priority, nov� p��choz� zpr�va je zahozena. 320@item 321Speech Dispatcher se sna�� detekovat posledn� zpr�vu v s�rii p��choz�ch zpr�v a 322zaru�it jej� p�e��k�n� (pro u�ivatele je d�le�it� sly�et zpr�vu @code{Completed 323100%}, aby v�d�l, �e proces ji� skon�il). V�dy, kdy� ve front� ji� ne�ek� 324��dn� nov� zpr�va t�to priority a posledn� p��choz� zpr�va je�t� nebyla 325p�e��k�na, je jej� p�e��k�n� vynuceno s prioritou @code{message}. 326@end itemize 327 328@node Diagram priorit, P��klady vyu�it� priorit, Typy priorit, Model priorit zpr�v 329@subsubsection Diagram priorit 330 331@image{figures/priorities,,,Speech Dispatcher architecture} 332@c TODO: Generate a pdf version. (Why? -- Hynek Hanke) 333 334@node P��klady vyu�it� priorit, , Diagram priorit, Model priorit zpr�v 335@subsubsection P��klady vyu�it� priorit 336 337P��klady pou�it� priority @code{important} jsou: 338 339@itemize 340@item chybov� hl�ky 341@item velmi d�le�it� zpr�vy 342@item ... 343@end itemize 344 345P��klady pou�it� priority @code{message} jsou: 346 347@itemize 348@item b�n� zpr�vy programu 349@item varov�n� 350@item ... 351@end itemize 352 353P��klady pou�it� priority @code{text} jsou: 354 355@itemize 356@item text, na kter�m u�ivatel pracuje 357@item p�ed��tan� text 358@item polo�ky menu 359@item ... 360@end itemize 361 362P��klady pou�it� priority @code{notification} jsou: 363 364@itemize 365@item m�n� d�le�it� informace 366@item p�smenka p�i vkl�d�n� 367@item run-time n�pov�da 368@item ... 369@end itemize 370 371P��klady pou�it� priority @code{progress} jsou: 372 373@itemize 374@item ``dokon�eno 15%'', ``dokon�eno 16%'', ``dokon�eno 17%'' 375@item ``Na��t�m zvuky'', ``Na��t�m grafiku'', ``Na��t�m ai'', ... 376@end itemize 377 378@node Historie zpr�v, V�ce v�stupn�ch modul�, Model priorit zpr�v, Z�kladn� funkce 379@subsection Historie zpr�v 380@cindex history 381 382Pro nevidom� a zrakov� posti�en� je dobrou vlastnost�, pokud maj� mo�nost 383n�jak�m jednoduch�m klientem proch�zet historii vysloven�ch zpr�v. 384 385N�kter� m�n� d�le�it� zpr�vy jsou p�ijmuty Speech Dispatcherem bez toho, aby 386byly p�e��k�ny, proto�e jsou potla�eny d�le�it�j��mi informacemi. To je 387ned�liteln� vlastnost ka�d�ho �e�ov�ho rozhran�, proto�e nen� mo�n� podat v 388�e�ov�m v�stupu tolik informac�, kolik se jich vejde na obrazovku. To je jeden 389z hlavn�ch d�vod�, pro� je v�hodn� udr�ovat historii p�ijat�ch zpr�v, aby se 390mohl u�ivatel pod�vat, zda mu neu�lo n�co d�le�it�ho. 391 392@menu 393* P��stupov� pr�va:: P��stupov� pr�va k historii zpr�v 394@end menu 395 396@node P��stupov� pr�va, , Historie zpr�v, Historie zpr�v 397@subsubsection Access Rights 398@cindex access rights 399 400Aby bylo ochr�n�no soukrom� u�ivatel�, Speech Dispatcher omezuje p��stup k 401historii na ur�itou podmno�inu p�ijat�ch zpr�v. Plat� n�sleduj�c� pravidla: 402 403@itemize @bullet 404@item 405V�echny zpr�vy p�ijat� od ur�it�ho klientsk�ho spojen� jsou tomuto spojen� 406p��stupny i v historii. 407 408@item 409V�echny zpr�vy odeslan� ur�it�m u�ivatelem jsou tomuto u�ivateli p��stupny i v 410historii. 411 412@item 413@cindex @code{speechd} u�ivatel 414@cindex @code{speechd} skupina 415V�echny zpr�vy zaslan� u�ivatelem @code{speechd} jsou p��stupny v�em u�ivatel�m 416na dan�m syst�mu, pod kter�m b�� Speech Dispatcher ve skupin� @code{speechd}. 417 418@item 419��dn� dal�� zpr�vy nejsou p��stupn�. 420@end itemize 421 422Dv� zpr�vy jsou pova�ov�ny za identick� jestli�e jejich spojen� poch�zej� z 423toho sam�ho po��ta�e, u�ivatelsk� jm�na jsou stejn� a jejich identita m��e b�t 424ov��ena, jak je pops�no v @ref{Autentifikace u�ivatel�}. Pokud nem��e b�t 425u�ivatelova identita ov��ena, tento u�ivatel je pova�ov�n za jin�ho ne� v�ichni 426p�ipojen� nebo d��ve p�ipojen� u�ivatel�. 427 428@node V�ce v�stupn�ch modul�, Autentifikace u�ivatel�, Historie zpr�v, Z�kladn� funkce 429@subsection V�ce v�stupn�ch modul� 430@cindex v�stupn� modul 431@cindex syntetiz�tory 432 433Speech Dispatcher podporuje soub�n� pou��v�n� v�ce v�stupn�ch modul�. Pokud 434tyto moduly poskytuj� dobrou synchronizaci, lze je p�i �ten� zpr�v kombinovat. 435Pokud nap�. modul1 mluv� anglicky a �esky, zat�mco modul2 mluv� pouze n�mecky, 436tak pokud p�ijde n�jak� zpr�va v n�m�in�, pou�ije se modul2, zat�mco pro 437ostatn� jazyky se pou�ije modul1. Na druh� stran� jazyk nen� jedin�m krit�riem 438pro takov� rozhodnut�. P�esn� pravidla pro v�b�r v�stup�ho modulu mohou b�t 439ovlivn�na v konfigura�n�m souboru @file{speechd.conf}. 440 441@node Autentifikace u�ivatel�, , V�ce v�stupn�ch modul�, Z�kladn� funkce 442@subsection Autentifikace u�ivatel� 443@cindex Identification Protocol 444@cindex identd 445@cindex RFC 1413 446 447NOTE: Na implementaci t�to vlastnosti se pracuje, ale sou�asn� verze ji 448nepodporuje. 449 450Speech Dispatcher neposkytuje ��dn� explicitn� autentifika�n� mechanismus. K 451ov��en� identity u�ivatl� pou��v�me Identification Protocol definovan� v RFC 4521413. 453 454@cindex mapov�n� u�ivatl� 455V konfiguraci je mo�n� specifikovat mapov�n� u�ivatel�. To umo��uje jednat s 456ur�it�mi u�ivateli jako s jedn�m a p�id�lit jim stejn� pr�va (nap�. proch�zet 457jejich @ref{Historie zpr�v}). 458 459@node Spou�t�n�, Konfigurace, Z�kladn� funkce, U�ivatelsk� dokumentace 460@section Invoking 461 462@subsection Pot�ebn� privilegia 463 464Speech Dispatcher m��e b�t obecn� spou�t�n pod oby�ejn�m u�ivatelem. Sna�ili 465jsme se jej zabezpe�it, jak jen to bylo mo�n�, ale nejsme odborn�ky na 466po��ta�ovou bezpe�nost a k�d m��e obsahovat nebezpe�n� chyby. Nedoporu�ujeme 467jej spou�t�t jako root nebo pod jin�m vysoce privilegovan�m u�ivatelem. 468 469Jedin� omezen� jsou tyto: 470 471@itemize 472@item 473Speech Dispatcher vytv��� PID file standardn� ve 474@file{/var/run/speech-dispatcher.pid}, tak�e @file{/var/run/} mus� b�t dan�mu 475u�ivateli p��stupn� k z�pisu. To m��e b�t zm�n�no nastaven�m volby 476@code{pidpath} p�i vol�n� skriptu @code{./configure} p�i kompilaci. 477@item 478Kdy� je zapnuto logov�n�, v�choz� cesta, kam Speech Dispatcher zapisuje sv�j 479log, je @file{/var/log/speech-dispatcher.log}. To ale m��e b�t kdykoliv 480p�enastaveno v hlavn�m konfigura�n�m souboru. 481@end itemize 482 483@subsection Volby p��kazov� ��dky 484 485Speech Dispatcher m��e b�t spu�t�n s t�mito volbami: 486 487@code{speech-dispatcher [-@{d|s@}] [-l @{1|2|3|4|5@}] [-p=port] | [-v] | [-h]} 488 489@table @code 490@item -d or --run-daemon 491Spust� program jako d�mona (b�� v pozad�, odpoj� se od termin�lu, atd.) Toto 492je v�choz� chov�n�. 493 494@item -s or --run-single 495Spust� program jako b�nou aplikaci b��c� na pop�ed�. 496 497@item -l level or --log-level=level 498Vybere po�adovan� logovac� �rove�. Logovac� �rove� je ��slo mezi 0 a 5 (0 499znamen� neloguj nic, 5 znamen� zapisuj t�m�� v�e v�etn� zpracov�van�ho textu.) 500Standardn� je 3. @xref{�rovn� logov�n�}. 501 502Logovac� �rove� 5 by nem�la b�t pou��v�na k jin�m ��el�m, ne� pro hled�n� chyb 503a to pouze kr�tkodob�. Logy, kter� produkuje mohou nar�st do obrovsk� 504velikosti a obsahuj� text �ten� u�ivateli nez�visle na r�zn�ch p��stupov�ch 505pr�vech, jak plat� pro historii. Spou�t�t server s touto �rovn� logov�n� tedy 506m��e snadno v�st k naru�en� soukrom�. 507 508@item -p or --port 509Zad� port, na kter�m by m�l server �ekat na klienty. V�choz� je 6560. 510 511@item -v or --version 512Vyp�e informace o verzi Speech Dispatchera. Tak� ozn�m� z�kladn� informace o 513copyrightu. 514 515@item -h or --help 516Vyp�e n�pov�du o volb�ch p��kazov� ��dky, upozorn�n� o copyrightu 517a emailovou adresu pro zas�l�n� ozn�men� o chyb�ch. 518@end table 519 520 521@node Konfigurace, , Spou�t�n�, U�ivatelsk� dokumentace 522@section konfigurace 523@cindex konfigurace 524 525Speech Dispatcher m��e b�t konfigurov�n na n�kolika r�zn�ch �rovn�ch. Jedna z 526nich je nastavov�n� glob�ln�ch parametr� p�es serverov� konfigura�n� soubor. 527Je zde i podpora pro konfiguraci specifickou pro ur�it� klienty. 528 529N�kter� aplikace maj� vlastn� mechanismus nastavov�n� voleb souvisej�c�ch s 530�e�ovou synt�zou. Pro detaily o t�chto nastaven�ch se pros�m pod�vejte do 531dokumentace dan�ho programu. 532 533N�sleduj�c� kapitoly se zab�vaj� pouze konfigurac� na stran� serveru p�es 534konfigura�n� soubor. 535 536@menu 537* Syntaxe konfigura�n�ho souboru:: 538* Volby v konfiguraci:: 539* Nastaven� v�stupn�ch modul�:: 540* �rovn� logov�n�:: 541@end menu 542 543@node Syntaxe konfigura�n�ho souboru, Volby v konfiguraci, Konfigurace, Konfigurace 544@subsection Syntaxe konfigura�n�ho souboru 545 546Pro na��t�n� configurace zalo�en� na textov�ch souborech pou��v�me knihovnu 547DotConf, tak�e bude syntaxe nejsp� mnoha u�ivatel�m pov�dom�. 548 549Ka�d� z �et�zcov�ch konstant, pokud nen� uvedeno jinak, by m�la b�t zak�dov�na 550v UTF-8. Jm�na voleb nepou��vaj� jin� znaky ne� standardn� ASCII sadu omezenou 551na znaky (@code{a}, @code{b}, ...), poml�ky (@code{-}) a podtr��tka @code{_}. 552 553Koment��e a do�asn� neaktivn� volby za��naj� znakem @code{#}. Pokud chcete 554takovu volbu zapnout, sta�� smazat znak koment��e a nastavit volbu na 555po�adovanou hodnotu. 556@example 557# toto je komentar 558# InactiveOption "tato volba je zatim vypla komentarem" 559@end example 560 561�et�zce jsou uzav�eny v uvozovk�ch. 562@example 563LogFile "/var/log/speech-dispatcher.log" 564@end example 565 566��sla jsou zaps�na bez uvozovek. 567@example 568Port 6560 569@end example 570 571P�ep�na�e pou��vaj� On (zapnuto) a Off (vypnuto). 572@example 573Debug Off 574@end example 575 576@node Volby v konfiguraci, Nastaven� v�stupn�ch modul�, Syntaxe konfigura�n�ho souboru, Konfigurace 577@subsection Configuration options 578 579V�echny dostupn� volby jsou zdokumentov�ny p��mo v konfigura�n�m souboru a jsou 580k nim uvedeny i p��klady. V�t�ina voleb je nastavena na v�choz� hodnotu a 581zakomentov�na. Pokud je chcete zm�nit, posta�� modifikovat jejich hodnotu a 582smazat symbol koment��e @code{#}. 583 584@node Nastaven� v�stupn�ch modul�, �rovn� logov�n�, Volby v konfiguraci, Konfigurace 585@subsection Output Modules Configuration 586 587Ka�d� u�ivatel by si m�l zapnout ve sv� konfiguraci alespo� jeden v�stupn� 588modul, pokud chce, aby Speech Dispatcher produkoval n�jak� zvukov� v�stup. 589Kdy� nen� na�ten ��dn� v�stupn� modul, Speech Dispatcher sice nastartuje, bude 590komunikovat s klienty a logovat zpr�vy do historie, ale nebude produkovat ��dn� 591zvuk. 592 593Ka�d� v�stupn� modul je t�eba do Speech Dispatchera nat�hnout jednou ��dkou 594``AddModule'' v @file{etc/speechd.conf}. Nav�c, ka�d� v�stupn� modul m� 595p�i�azen vlastn� konfigura�n� soubor. 596 597@menu 598* Natahov�n� modul� ve speechd.conf:: 599* Konfigura�n� soubory v�stupn�ch modul�:: 600* Konfigurace generick�ho v�stupn�ho modulu:: 601@end menu 602 603@node Natahov�n� modul� ve speechd.conf, Konfigura�n� soubory v�stupn�ch modul�, Nastaven� v�stupn�ch modul�, Nastaven� v�stupn�ch modul� 604@subsubsection Natahov�n� modul� ve speechd.conf 605 606@anchor{AddModule} Ka�d� modul, kter� by se m�l spustit p�i startu Speech 607Dispatchera, mus� b�t nata�en p��kazem @code{AddModule} v konfiguraci. 608V�imn�te si, �e lze nat�hnout jeden bin�rn� modul v�cekr�t s r�zn�mi 609konfigura�n�mi soubory a pod jin�mi jm�ny. To je u�ite�n� hlavn� pro 610natahov�n� generick�ch v�stupn�ch modul�. @xref{Konfigurace generick�ho 611v�stupn�ho modulu}. 612 613@example 614AddModule "@var{module_name}" "@var{module_binary}" "@var{module_config}" 615@end example 616 617@var{module_name} je jm�no dan�ho v�stupn�ho modulu. 618 619@var{module_binary} je jm�no bin�rn�ho spustiteln�ho souboru tohoto v�stupn�ho 620modulu. To m��e b�t bu� cesta absolutn� nebo relativn� k 621@file{bin/speechd-modules/}. 622 623@var{module_config} je soubor s konfigurac� pro tento konkr�tn� v�stupn� modul. 624Cesta m��e b�t absolutn� i relativn� k @file{etc/speech-dispatcher/modules/}. 625Tento parametr je voliteln� (nen� t�eba jej uv�d�t). 626 627@node Konfigura�n� soubory v�stupn�ch modul�, Konfigurace generick�ho v�stupn�ho modulu, Natahov�n� modul� ve speechd.conf, Nastaven� v�stupn�ch modul� 628@subsubsection Konfigura�n� soubory v�stupn�ch modul� 629 630Ka�d� v�stupn� modul je odli�n� a proto m� odli�n� volby v konfiguraci. Pros�m 631prostudujte si koment��e v dan�m konfigura�n�m souboru. Zde je pops�no pouze 632n�kolik voleb, kter� jsou pro n�kter� v�stupn� moduly spole�n�. 633 634@table @code 635@item AddVoice "@var{language}" "@var{symbolicname}" "@var{name}" 636@anchor{AddVoice} 637 638Ka�d� v�stupn� modul poskytuje n�jak� hlasy a n�kdy dokonce podporuje r�zn� 639jazyky. Z toho d�vodu byl zaveden spole�n� mechanismus, kter�m m��ou b�t tyto 640hlasy definov�ny v konfiguraci. ��dn� modul ov�em nen� povinen tuto volbu 641pou��vat. N�kter� syntetiz�tory, nap�. Festival, podporuj� symbolick� jm�na 642SSIP p��mo, tak�e konfigurace konkr�tn�ch hlas� se prov�d� v syntetiz�toru 643samotn�m. 644 645Ka�d�mu definovan�mu hlasu odpov�d� p�esn� jedna ��dka @code{AddVoice}. 646 647@var{language} je ISO k�d jazyka tohoto hlasu (en, cs, de, en-US, ...) 648 649@var{symbolicname} je symbolick� jm�no, pod kter�m chcete, aby byl tento hlas 650dostupn�. @xref{Standardn� hlasy}, pro seznam symbolick�ch jmen, kter� m��ete 651pou��t. 652 653@var{name} je jm�no specifick� pro dan� v�stupn� modul. Pros�m pod�vejte se na 654koment��e v p��slu�n�m konfigura�n�m souboru v sekci AddModule pro detailn�j�� 655informace. 656 657Nap�. definice, kterou v sou�astnosti pou��v�me pro Epos (generic) vypad� 658takto: 659 660@example 661 AddVoice "cs" "male1" "kadlec" 662 AddVoice "sk" "male1" "bob" 663@end example 664 665@item ModuleDelimiters "@var{delimiters}", ModuleMaxChunkLength @var{length} 666 667�asto se v�stupn� modul nesna�� vysyntetizovat cel� p��choz� text najednou, ale 668m�sto toho jej nejprve roz�e�e na men�� kousky (v�ty, ��sti v�t) a ty potom 669postupn� odes�l� na synt�zu. Tento p��stup, vyu��van� n�kter�mi v�stupn�mi 670moduly, je mnohem rychlej��, ale na druh� stran� zase limituje schopnost 671syntetiz�ru poskytnout dobrou intonaci. 672 673Z toho d�vodu m�te oby�ejn� mo�nost zkonfigurovat si na jak�ch znac�ch 674(@var{delimiters}) by se m�l text rozd�lit na men�� ��sti (pokud jsou 675n�sledov�ny n�jak�m whitespace znakem). Druh� volba (@var{length}) ud�v�, po 676kolika znac�ch by se m�l text n�siln� rozd�lit, pokud nebyl nalezen ��dn� 677delimiter. 678 679Pokud tato dv� pravidla zp��sn�te, dostanete lep�� rychlost, ale vzd�te se 680ur�it� ��sti kvality intonace. Tak�e nap��klad pro pomalej�� po��ta�e 681doporu�ujeme do @var{delimiters} vlo�it i ��rku (,), aby byl text rozd�len i na 682��stech v�ty, zat�mco na rychlej��ch po��ta��ch je lep�� tam ��rku ned�vat, 683tak�e do syntetiz�ru v�dy doraz� cel� souv�t�. 684 685To sam� plat� o @code{MaxChunkLength}. Pro rychlej�� po��ta�e 686je lep�� nastavit v�t�� hodnotu. 687 688Nap��klad v�choz� hodnoty ve v�stupn�m modulu pro Festival jsou: 689 690@example 691 FestivalMaxChunkLength 300 692 FestivalDelimiters ".?!;,:" 693@end example 694 695V�stupn� modul se m��e tak� rozhodnout d�lit v�ty na delimiters pouze pokud ty 696jsou n�sledov�ny mezerou. Tak�e nap��klad ``file123.tmp'' by rozd�leno nebylo, 697ale v�ta ``The horse raced around the fence, that was lately painted green, 698fell.'' by rozd�lena byla (to je mimochodem velmi zaj�mav� v�ta). 699@end table 700 701@node Konfigurace generick�ho v�stupn�ho modulu, , Konfigura�n� soubory v�stupn�ch modul�, Nastaven� v�stupn�ch modul� 702@subsubsection Konfigurace generick�ho v�stupn�ho modulu 703 704Generick� v�stupn� modul u�ivatel�m dovoluje jednodu�e si napsat vlastn� 705jednoduch� v�stupn� modul pro syntetiz�ry, kter� maj� rozhran� ve form� 706jednoduch�ho ��dkov�ho klienta, pouze modifikac� konfigura�n�ho souboru. T�mto 707zp�sobem nemus� ps�t ��dn� specifick� k�d v C a u�ivatel� si mohou p�id�vat 708podporu pro v�stupn� za��zen� i kdy� neum� programovat. @xref{AddModule}. 709 710Kl��ov� ��st ka�d�ho generick�ho v�stupn�ho modulu je definice �et�zce, kter� 711se m� spou�t�t. 712 713@defvr {Konfigurace generick�ho modulu} GenericExecuteSynth "@var{execution_string}" 714 715@code{execution_string} je p��kaz, kter� by m�l b�t zavol�n v shellu, kdy� je 716pot�eba n�co ��ct. Ve skute�nosti to m��e b�t v�ce jak jeden p��kaz, dohromady 717z�et�zen� oper�torem @code{&&}. Kdy� bude v�stupn� modul cht�t p�e��k�v�n� 718zpr�vy zastavit, za�le t�mto proces�m sign�l KILL, tak�e je d�le�it�, aby 719pou�it� p��kazy po obdr�en� KILL okam�it� p�estaly mluvit. (Na v�t�in� 720GNU/Linuxov�ch syst�m� m� tuto vlastnost utilita @code{play}) 721 722V @code{execution_string} m��ete vyu��t t�chto prom�nn�ch, kter� budou 723nahrazeny po�adovan�mi hodnotami, ne� bude p��kaz vykon�n. 724 725@itemize 726@item @code{$DATA} 727Text, kter� by m�l b�t p�e��k�n. Znaky �et�zce, kter� by n�jak interferovali 728se zpracov�n�m v bashi budou automaticky nahrazeny odpov�daj�c�mi escape 729sekvencemi. Asi bude ale nutn� uv�st kolem t�to prom�nn� uvozovky 730(nap�. takto: @code{\"$DATA\"}). 731@item @code{$LANG} 732Identifika�n� �et�zec jazyka (ten je definov�n pomoc� GenericLanguage). 733@item @code{$VOICE} 734Identifika�n� �et�zec hlasu (ten je definov�n pomoc� AddVoice). 735@item @code{$PITCH} 736Po�adovan� v��ka hlasu (desetinn� ��slo definovan� v GenericPitchAdd a v 737GenericPitchMultiply) 738@item @code{$RATE} 739Po�adovan� rychlost hlasu (desetinn� ��slo definovan� v GenericRateAdd a v 740GenericRateMultiply) 741@end itemize 742 743Tady je p��klad z @file{etc/speech-dispatcher/modules/epos-generic.conf} 744@example 745GenericExecuteSynth \ 746"epos-say -o --language $LANG --voice $VOICE --init_f $PITCH --init_t $RATE \ 747\"$DATA\" | sed -e s+unknown.*$++ >/tmp/epos-said.wav && play /tmp/epos-said.wav >/dev/null" 748@end example 749@end defvr 750 751@defvr {Konfigurace generick�ho modulu} AddVoice "@var{language}" "@var{symbolicname}" "@var{name}" 752@xref{AddVoice}. 753@end defvr 754 755@defvr {Konfigurace generick�ho modulu} GenericLanguage "iso-code" "string-subst" 756 757Definuje, jak� �et�zec @code{string-subst} by m�l b�t nahrazen za @code{$LANG} 758pro dan� @code{iso-code} ISO k�d jazyka. 759 760Op�t p��klad z Epos generic: 761@example 762GenericLanguage "en-US" "english-US" 763GenericLanguage "cs" "czech" 764GenericLanguage "sk" "slovak" 765@end example 766@end defvr 767 768@defvr {Konfigurace generick�ho modulu} GenericRateAdd @var{num} 769@end defvr 770@defvr {Konfigurace generick�ho modulu} GenericRateMultiply @var{num} 771@end defvr 772@defvr {Konfigurace generick�ho modulu} GenericPitchAdd @var{num} 773@end defvr 774@defvr {Konfigurace generick�ho modulu} GenericPitchMultiply @var{num} 775Tyto parametry nastavuj� konverzi pro v�po�et rychlosti a v��ky. 776(@code{$RATE} a @code{$PITCH}). 777 778V�sledn� rychlost (nebo v��ka) je d�na n�sleduj�c�m vzorcem: 779@example 780 (speechd_rate * GenericRateMultiply) + GenericRateAdd 781@end example 782kde speechd_rate je hodnota mezi -100 (nejni���) a +100 (nejvy���). Je t�eba 783definovat n�jakou rozumnou konverzi pro dan� syntetiz�r. 784 785(Hodnoty v GenericN�coMultiply jsou vyn�sobeny stem, proto�e st�vaj�c� verze 786DotConfu nepodporuje desetinn� ��sla. M��ete tedy ps�t 0.85 jako 85 atd.) 787@end defvr 788 789@node �rovn� logov�n�, , Nastaven� v�stupn�ch modul�, Konfigurace 790@subsection �rovn� logov�n� 791 792Ve Speech Dispatcheru je 6 r�zn�ch �rovn� logov�n�. 0 znamen� ��dn� logov�n�, 793zat�mco 5 znamen� vypisovat t�m�� v�echny dostupn� informace. 794 795@itemize @bullet 796 797@item �rove� 0 798@itemize @bullet 799@item ��dn� informace 800@end itemize 801 802@item �rove� 1 803@itemize @bullet 804@item Informace o startu a vyp�n�n�. 805@end itemize 806 807@item �rove� 2 808@itemize @bullet 809@item Informace o chyb�ch, kter� nastaly. 810@item Alokace a uvol�ov�n� zdroj� p�i startu a p�i exitu. 811@end itemize 812 813@item �rove� 3 814@itemize @bullet 815@item Informace o p�ij�m�n�/odep�r�n�/zav�r�n� klientsk�ch spojen�. 816@item Informace o neplatn�ch SSIP p��kazech od klient�. 817@end itemize 818 819@item �rove� 4 820@itemize @bullet 821@item Je vypisov�n ka�d� p�ijat� p��kaz 822@item Informace o zpracov�v�n� vstupu 823@item Informace o ukl�d�n� zpr�v do front 824@item Informace o fungov�n� historie, zvukov�ch ikon, atd. 825facilities. 826@item Informace o pr�ci vl�kna speak() 827@end itemize 828 829@item �rove� 5 830(Ta slou�� pouze pro lad�c� ��ely a m��e vypisovat opravdu *mnoho* 831dat. Pou��vejte opatrn�.) 832@itemize @bullet 833@item V�echna obdr�en� data jsou vypisov�na (zpr�vy od klient�) 834@item Lad�c� informace. 835@end itemize 836@end itemize 837 838@appendix Standardn� hlasy 839@anchor{Standardn� hlasy} 840 841@table @code 842@item MALE1 843@item MALE2 844@item MALE3 845@item FEMALE1 846@item FEMALE2 847@item FEMALE3 848@item CHILD_MALE 849@item CHILD_FEMALE 850@end table 851 852Skute�n� dostupnost t�chto hlas� nen� zaru�ena, ale p��kaz @code{SET SELF 853VOICE} mus� akceptovat jak�koliv z nich. Pokud nen� dan� hlas dostupn�, je 854mapov�n na jin� hlas v�stupn�m modulem. 855 856@node GNU General Public License, GNU Free Documentation License, U�ivatelsk� dokumentace, Top 857@appendix GNU General Public License 858@center Version 2, June 1991 859@cindex GPL, GNU General Public License 860 861@include gpl.texi 862 863 864@node GNU Free Documentation License, Index of Concepts, GNU General Public License, Top 865@appendix GNU Free Documentation License 866@center Version 1.2, November 2002 867@cindex FDL, GNU Free Documentation License 868 869@include fdl.texi 870 871@node Index of Concepts, , GNU Free Documentation License, Top 872@unnumbered Index of Concepts 873 874@cindex tail recursion 875@printindex cp 876 877@bye 878 879@c LocalWords: texinfo setfilename speechd settitle finalout syncodeindex pg 880@c LocalWords: setchapternewpage cp fn vr texi dircategory direntry titlepage 881@c LocalWords: Cerha Hynek Hanke vskip pt filll insertcopying ifnottex dir fd 882@c LocalWords: API SSIP cindex printf ISA pindex Flite Odmluva FreeTTS TTS CR 883@c LocalWords: src struct gchar gint const OutputModule intl FDSetElement len 884@c LocalWords: fdset init flite deffn TFDSetElement var int enum EVoiceType 885@c LocalWords: sayf ifinfo verbatiminclude ref UTF ccc ddd pxref LF cs conf 886@c LocalWords: su AddModule DefaultModule xref identd printindex Dectalk GTK 887 888@c speechd.texi ends here 889@c LocalWords: emph soundcard precission archieved succes 890