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/Linuxov140distribuci 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