1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889
|
\input texinfo @c -*-texinfo-*-
@c %**start of header
@documentencoding ISO-8859-2
@documentlanguage cs
@setfilename speech-dispatcher-cs.info
@settitle Speech Dispatcher
@finalout
@c @setchapternewpage odd
@c %**end of header
@syncodeindex pg cp
@syncodeindex fn cp
@syncodeindex vr cp
@include version-2.texi
@dircategory Sound
@dircategory Development
@direntry
* Speech Dispatcher cs: (speechd-cs). Speech Dispatcher (in Czech).
@end direntry
@titlepage
@title Speech Dispatcher
@subtitle Zvldnut Babylonu TTS'
@subtitle pro Speech Dispatcher @value{VERSION}
@author Tom@'a@v{s} Cerha <@email{cerha@@brailcom.org}>
@author Hynek Hanke <@email{hanke@@volny.cz}>
@author Milan Zamazal <@email{pdm@@brailcom.org}>
@page
@vskip 0pt plus 1filll
Tento manul se vzathuje ke Speech Dispatcher, verze @value{VERSION}. Jedn se
vak pouze o uivatelskou st dokumentace a upozorujeme, e tento peklad ji
nen aktuln! Poskytujeme jej s tm, e mon bude uiten a to zejmna v
sekcch, kter popisuj obecn koncepty a mylenky projektu, a to tm, kte si
nemohou pest anglickou dokumentaci. Nikdo by nicmn neml spolhat na
technick detaily zde uveden, protoe mnoho vc je ji dnes jinak.
Copyright @copyright{} 2001, 2002, 2003, 2006 Brailcom, o.p.s.
@quotation
Dvme povolen koprovat, distribuovat a/nebo modifikovate tento dokument pod
podmnkami GNU Free Documentation License, Verze 1.2 nebo jakkoliv novj
verze vydan Free Software Foundation, bez jakchkoliv Invariant Sections
(nemnnch sekc), bez Front-Cover Texts (texty na pedn stran oblky) a bez
Back-Cover Texts (texty na zadn stran oblky). Kopie tto licence je
piloena v sekci nazvan ,,GNU Free Documentation License''.
@end quotation
@end titlepage
@ifnottex
@node Top, vod, (dir), (dir)
Tento manul se vzathuje ke Speech Dispatcher, verze @value{VERSION}. Jedn se
vak pouze o uivatelskou st dokumentace a upozorujeme, e tento peklad ji
nen aktuln! Poskytujeme jej s tm, e mon bude uiten a to zejmna v
sekcch, kter popisuj obecn koncepty a mylenky projektu, a to tm, kte si
nemohou pest anglickou dokumentaci. Nikdo by nicmn neml spolhat na
technick detaily zde uveden, protoe mnoho vc je ji dnes jinak.
Copyright @copyright{} 2001, 2002, 2003 Brailcom, o.p.s.
@quotation
Dvme povolen koprovat, distribuovat a/nebo modifikovate tento dokument pod
podmnkami GNU Free Documentation License, Verze 1.2 nebo jakkoliv novj
verze vydan Free Software Foundation; bez jakchkoliv Invariant Sections
(nemnnch sekc), bez Front-Cover Texts (texty na pedn stran oblky) a bez
Back-Cover Texts (texty na zadn stran oblky). Kopie tto licence je
piloena v sekci nazvan ,,GNU Free Documentation License''.
@end quotation
@end ifnottex
@ifhtml
@heading Menu
@end ifhtml
@menu
* vod:: Co to je Speech Dispatcher
* Uivatelsk dokumentace:: Pouvn, konfigurace
* GNU General Public License:: Podmnky koprovn Speech Dispatcher
* GNU Free Documentation License:: Podmnky koprovn tohoto manulu
* Index of Concepts::
@end menu
@node vod, Uivatelsk dokumentace, Top, Top
@chapter vod
@menu
* Motivace:: Pro Speech Dispatcher?
* Zkladn design:: Jak to pracuje?
* Pehled zkladnch rys:: Co vechno um?
* Souasn stav:: Jak je souasn stav?
@end menu
@node Motivace, Zkladn design, vod, vod
@section Motivace
@cindex Hlavn mylenky, Motivace
@cindex Filosofie
Projekt Speech Dispatcher se sna poskytnout na zazen nezvislou vrstvu pro
eovou syntzu. Ml by poskytovat jednoduch rozhran pro klientsk aplikace
(aplikace, kter chtj mluvit), stejn jako pro ovladae konkrtnch zazen
(rzn eov syntetizry).
Vysoce kvalitn eov syntza je tu ji dlouho a nyn je pouiteln i pro
bn uivatele na jejich domcch potach. Obas to pichz jako nutnost,
obas je to jen dobr vlastnost, aby nkter programy poskytovaly eov
vstup. Pro syntzu hlasu je tu irok pole vyuit od vukovho software a
po specializovan systmy, jako jsou napklad nemocnice i laboratoe. Pro
zrakov postien uivatele je to jedna ze dvou zkladnch cest, jak zskat
vstup z potae (tou druhou je Braillsk dek).
Existuj rzn eov syntetizry s rznmi schopnostmi. Nkter z nich jsou
hardwarov, nkter softwarov. Nkter jsou svobodnm software a jsou voln
dostupn na internetu. Programtoi to maj opravdu tk, kdy chtj sv
programy rozmluvit, protoe potebuj nejprve najt njak vhodn syntetizr
(dlouh hodiny experimentovn a tak dle) a potom jej potebuj njak
zprovoznit s jejich programem. asto mus pst pro tyto programy i hardwarov
zazen vlastn ovladae a dlaj to znovu a znovu. Snadno si lze pedstavit,
e se to cel zhrout kdy nevinn uivatel spust dva programy najednou. Kdyby
pesto nastartovaly oba, budou kiet jeden pes druhho.
Tm je pro programtory velmi obtn implementovat do svch program podporu
eov syntzy (pro nevidom uivatele, nebo prost pro lep uivatelsk
rozhran) a je to jeden z dvod, pro pod jet pln nevyuvme toho, co
eov syntza nabz.
V idelnm svt by programtoi mohli pro eovou syntzu pouvat podobn
pkazy, jako to dlaj pro textov vstup na obrazovku (printf, puts, ...). V
idelnm svt by existovalo njak speech_printf(), kter by se staralo o to,
aby byla zprva pemluvena ve sprvn as bez peruovn ostatnch.
Programtor by se tak nemusel starat o to, jak je pesn komunikace s eovm
syntetizrem implementovna. V idelnm svt by byl v kad GNU/Linuxov
distribuci njak eov syntetizr a njak rozhran starajc se o aplikace,
kter chtj mluvit, dovolujc uivatelm nastavit si parametry ei a
poskytujc njak jednoduch rozhran (jako speech_printf()) pomoc njak
sdlen knihovny pro programtory. Bude to jt dlouh cesta ne se nm
poda doshnout tohoto stavu vc, ale se Speech Dispatcherem dlme prvn
krky...
@node Zkladn design, Pehled zkladnch rys, Motivace, vod
@section Zkladn design
@cindex Design
V komunikaci mezi vemi rznmi aplikacemi a syntetizry je obrovsk nepodek.
Proto jsme chtli, aby byl Speech Dispatcher vrstva oddlujc aplikace a
syntetizry tak, aby se aplikace nemusely starat o syntetizry a syntetizry se
nemusely starat o interakci s aplikacemi.
Rozhodli jsme se implementovat Speech Dispatcher jako server, kter pijm od
aplikac pkazy pes protokol nazvan @code{SSIP}, zpracovv je a, pokud je
to nutn, zavol pslunou funkci danho vstupnho modulu, kter pak
komunikuje s nkterm z rznch syntetiztor.
Kad klient (aplikace, kter chce mluvit) oteve socketov spojen na Speech
Dispatcher a vol funkce jako say(), stop(), pause() poskytovan knihovnou
implementujc tento protokol. Tato sdlen knihovna je stle na stran
klienta a posl Speech Dispatcheru SSIP pkazy pes oteven socket. Kdy
pkazy doraz do Dispatchera, ten je zpracuje, pete text, kter by ml bt
pekn a vlo jej do fronty podle jeho priority. Potom se rozhodne kdy, s
jakmi parametry (nastavovanmi klientskm programem i uivatelem) a na jakm
syntetizru zprvu nech pemluvit. Tyto poadavky na mluven jsou pak
zpracovvny vstupnmi moduly (pluginy) pro rzn hardwarov a softwarov
syntetizry a pekny nahlas.
@image{figures/architecture,155mm,,Architektura Speech Dispatchera}
Detailn popis programovn klient i serveru je k dispozici v anglickm
manulu.
@node Pehled zkladnch rys, Souasn stav, Zkladn design, vod
@section Pehled zkladnch rys
Speech Dispatcher z pohledu uivatele:
@itemize @bullet
@item snadn konfigurace rznch mluvcch aplikac, centrln sprva
@item monost voln rozhodovat, jak aplikace bude mluvit s jakm syntetizrem
@item mn asu vnovanho konfiguraci a ladn rznch aplikac vyuvajcch syntzu
@item historie zprv pro zrakov postien uivatele
@end itemize
Speech Dispatcher z pohledu programtora aplikace:
@itemize @bullet
@item snadn cesta, jak aplikaci rozmluvit
@item jednotn rozhran k rznm syntetizrm
@item synchronizace zprv na vy rovni (kategorizace pomoc priorit)
@item monost nemuset se starat o konfiguraci parametr hlasu
@end itemize
@node Souasn stav, , Pehled zkladnch rys, vod
@section Souasn stav
@cindex Syntetizry
@cindex Ostatn programy
TODO:
@node Uivatelsk dokumentace, GNU General Public License, vod, Top
@chapter Uivatelsk dokumentace
@menu
* Zkladn funkce:: Detailnj popis vech zkladnch funkc
* Spoutn:: Volby pkazov dky
* Konfigurace:: Jak zkonfigurovat Speech Dispatcher
@end menu
@node Zkladn funkce, Spoutn, Uivatelsk dokumentace, Uivatelsk dokumentace
@section Zkladn funkce
V tto sekci je detailnj popis zkladnch funkc Speech Dispatcheru.
@menu
* Model priorit zprv:: Zpracovn souasn pchozch zprv
* Historie zprv:: Ukldn zprv pro pozdj nahldnut
* Vce vstupnch modul:: Interakce s rznmi syntetizry
* Autentifikace uivatel:: Autentifikace pro pstup k historii
@end menu
@node Model priorit zprv, Historie zprv, Zkladn funkce, Zkladn funkce
@subsection Model priorit zprv
@cindex priority
Speech Dispatcher neme syntetizovat vechny zprvy, kter do nj pichz z
prostho dvodu, e zprvy pichzej obyejn rychleji, ne je syntetick hlas
doke st. Na obrazovce monitoru je v porovnn s jednokanlovm eovm
vstupem relativn hodn msta. Z toho dvodu pouvme systm nkolika
priorit zamench na rzn typy zprv.
Mylenka je takov, e lohou programtora klientsk aplikace bude pouze urit
pro kadou zprvu uritou prioritu odpovdajc typu dan zprvy. Veker
synchronizace a pepnn mezi tmito zprvami (kter mohou pochzet od rznch
klient) potom bude zajitno aplikovnm uritch pravidel ve Speech
Dispatcheru.
@menu
* Typy priorit::
* Diagram priorit::
* Pklady vyuit priorit::
@end menu
@node Typy priorit, Diagram priorit, Model priorit zprv, Model priorit zprv
@subsubsection Priority Categories
Speech Dispatcher poskytuje systm pti priorit. Kad zprva obsahuje bu
explicitn informaci o priorit, nebo j je piazena vchoz priorita.
Prosm podvejte se tak na piloen diagram (dole).
@subsubheading Priorita @code{important}
@cindex Priorita important
Tato zprva bude pekna okamit, jak doraz do serveru. Nen nikdy
peruena. Kdy server obdr souasn nkolik rznch zprv tto priority, ty
jsou uloeny a pekny v poad, ve kterm pily.
Kdy pijde nov zprva priority @code{important} a zrovna se k njak jin
zprva, tato jin zprva je zahozena. Dal zprvy nich priorit jsou bu
pozdreny (priorita @code{message} a @code{text}) ne ji neekaj na pekn
dn zprvy priority @code{important}, nebo jsou zahozeny (priority
@code{notification} a @code{progress}).
Tyto zprvy by mly bt tak krtk, jak je to jen mon, a mly by bt
pouvny pouze zdka, protoe blokuj vstup vech ostatnch zprv.
@subsubheading Priorita @code{message}
@cindex Priorita message
Tato zprva bude pekna, pokud ji ve front neek dn jin zprva
priority @code{important} nebo @code{message}. V opanm ppad je tato
zprva pozdrena dokud nebudou vechny pekny. To znamen, e priorita
@code{message} nezastavuje sama sebe. Kdy ve front ekaj zprvy priorit
@code{notification} nebo @code{progress} nebo @code{text} kdy pijde zprva
priority @code{message}, jsou zahozeny.
@subsubheading Priorita @code{text}
@cindex Priorita text
Tato zprva bude pekna, kdy ve front neek dn zprva priority
@code{important} nebo @code{message}. Pokud ek, tato nov zprva je
pozdrena dokud nebudou pedchoz zprvy pekny.
Priorita text perquuje sama sebe. To znamen, e kdy pijde nkolik zprv
priority text, ty nejsou pekny v poad, ve kterm pily, ale bude vyena
pouze posledn z nich a ostatn jsou perueny a zahozeny.
Pokud jsou ve front zprvy priorit @code{notification} nebo @code{progress}
nebo se prv pekvaj, jsou zahozeny.
@subsubheading Priorita @code{notification}
@cindex Priorita notification
Toto je zprva nzk priority. Pokud ve front ekaj zprvy priorit
@code{important}, @code{messages}, @code{text} nebo @code{progress} nebo jsou
prv pekvny, tato nov zprva priority @code{notification} je zruena.
Tato priorita peruuje sama sebe, take kdy pijde najednou vce zprv s
prioritou @code{notification}, pek se pouze posledn z nich.
@subsubheading Priority @code{progress}
Toto je speciln priorita pro zprvy, kter pichzej krtce po sob a nesou
informaci o njak probhajc innosti (nap.@ @code{Dokoneno 45%}).
Kdyby nov zprvy peruovaly ostatn (viz. priorita Notification), uivatel by
nemusel slyet ani jednu zprvu do konce.
Tato priorita se chov stejn jako @code{notification} s vjimkou dvou vc.
@itemize
@item
Zprvy tto priority neperuuj jedna druhou. Msto toho, pokud je zrovna
pekvna jin zprva tto priority, nov pchoz zprva je zahozena.
@item
Speech Dispatcher se sna detekovat posledn zprvu v srii pchozch zprv a
zaruit jej pekn (pro uivatele je dleit slyet zprvu @code{Completed
100%}, aby vdl, e proces ji skonil). Vdy, kdy ve front ji neek
dn nov zprva tto priority a posledn pchoz zprva jet nebyla
pekna, je jej pekn vynuceno s prioritou @code{message}.
@end itemize
@node Diagram priorit, Pklady vyuit priorit, Typy priorit, Model priorit zprv
@subsubsection Diagram priorit
@image{figures/priorities,,,Speech Dispatcher architecture}
@c TODO: Generate a pdf version. (Why? -- Hynek Hanke)
@node Pklady vyuit priorit, , Diagram priorit, Model priorit zprv
@subsubsection Pklady vyuit priorit
Pklady pouit priority @code{important} jsou:
@itemize
@item chybov hlky
@item velmi dleit zprvy
@item ...
@end itemize
Pklady pouit priority @code{message} jsou:
@itemize
@item bn zprvy programu
@item varovn
@item ...
@end itemize
Pklady pouit priority @code{text} jsou:
@itemize
@item text, na kterm uivatel pracuje
@item pedtan text
@item poloky menu
@item ...
@end itemize
Pklady pouit priority @code{notification} jsou:
@itemize
@item mn dleit informace
@item psmenka pi vkldn
@item run-time npovda
@item ...
@end itemize
Pklady pouit priority @code{progress} jsou:
@itemize
@item ``dokoneno 15%'', ``dokoneno 16%'', ``dokoneno 17%''
@item ``Natm zvuky'', ``Natm grafiku'', ``Natm ai'', ...
@end itemize
@node Historie zprv, Vce vstupnch modul, Model priorit zprv, Zkladn funkce
@subsection Historie zprv
@cindex history
Pro nevidom a zrakov postien je dobrou vlastnost, pokud maj monost
njakm jednoduchm klientem prochzet historii vyslovench zprv.
Nkter mn dleit zprvy jsou pijmuty Speech Dispatcherem bez toho, aby
byly pekny, protoe jsou potlaeny dleitjmi informacemi. To je
nedliteln vlastnost kadho eovho rozhran, protoe nen mon podat v
eovm vstupu tolik informac, kolik se jich vejde na obrazovku. To je jeden
z hlavnch dvod, pro je vhodn udrovat historii pijatch zprv, aby se
mohl uivatel podvat, zda mu neulo nco dleitho.
@menu
* Pstupov prva:: Pstupov prva k historii zprv
@end menu
@node Pstupov prva, , Historie zprv, Historie zprv
@subsubsection Access Rights
@cindex access rights
Aby bylo ochrnno soukrom uivatel, Speech Dispatcher omezuje pstup k
historii na uritou podmnoinu pijatch zprv. Plat nsledujc pravidla:
@itemize @bullet
@item
Vechny zprvy pijat od uritho klientskho spojen jsou tomuto spojen
pstupny i v historii.
@item
Vechny zprvy odeslan uritm uivatelem jsou tomuto uivateli pstupny i v
historii.
@item
@cindex @code{speechd} uivatel
@cindex @code{speechd} skupina
Vechny zprvy zaslan uivatelem @code{speechd} jsou pstupny vem uivatelm
na danm systmu, pod kterm b Speech Dispatcher ve skupin @code{speechd}.
@item
dn dal zprvy nejsou pstupn.
@end itemize
Dv zprvy jsou povaovny za identick jestlie jejich spojen pochzej z
toho samho potae, uivatelsk jmna jsou stejn a jejich identita me bt
ovena, jak je popsno v @ref{Autentifikace uivatel}. Pokud neme bt
uivatelova identita ovena, tento uivatel je povaovn za jinho ne vichni
pipojen nebo dve pipojen uivatel.
@node Vce vstupnch modul, Autentifikace uivatel, Historie zprv, Zkladn funkce
@subsection Vce vstupnch modul
@cindex vstupn modul
@cindex syntetiztory
Speech Dispatcher podporuje soubn pouvn vce vstupnch modul. Pokud
tyto moduly poskytuj dobrou synchronizaci, lze je pi ten zprv kombinovat.
Pokud nap. modul1 mluv anglicky a esky, zatmco modul2 mluv pouze nmecky,
tak pokud pijde njak zprva v nmin, pouije se modul2, zatmco pro
ostatn jazyky se pouije modul1. Na druh stran jazyk nen jedinm kritriem
pro takov rozhodnut. Pesn pravidla pro vbr vstupho modulu mohou bt
ovlivnna v konfiguranm souboru @file{speechd.conf}.
@node Autentifikace uivatel, , Vce vstupnch modul, Zkladn funkce
@subsection Autentifikace uivatel
@cindex Identification Protocol
@cindex identd
@cindex RFC 1413
NOTE: Na implementaci tto vlastnosti se pracuje, ale souasn verze ji
nepodporuje.
Speech Dispatcher neposkytuje dn explicitn autentifikan mechanismus. K
oven identity uivatl pouvme Identification Protocol definovan v RFC
1413.
@cindex mapovn uivatl
V konfiguraci je mon specifikovat mapovn uivatel. To umouje jednat s
uritmi uivateli jako s jednm a pidlit jim stejn prva (nap. prochzet
jejich @ref{Historie zprv}).
@node Spoutn, Konfigurace, Zkladn funkce, Uivatelsk dokumentace
@section Invoking
@subsection Potebn privilegia
Speech Dispatcher me bt obecn spoutn pod obyejnm uivatelem. Snaili
jsme se jej zabezpeit, jak jen to bylo mon, ale nejsme odbornky na
potaovou bezpenost a kd me obsahovat nebezpen chyby. Nedoporuujeme
jej spoutt jako root nebo pod jinm vysoce privilegovanm uivatelem.
Jedin omezen jsou tyto:
@itemize
@item
Speech Dispatcher vytv PID file standardn ve
@file{/var/run/speech-dispatcher.pid}, take @file{/var/run/} mus bt danmu
uivateli pstupn k zpisu. To me bt zmnno nastavenm volby
@code{pidpath} pi voln skriptu @code{./configure} pi kompilaci.
@item
Kdy je zapnuto logovn, vchoz cesta, kam Speech Dispatcher zapisuje svj
log, je @file{/var/log/speech-dispatcher.log}. To ale me bt kdykoliv
penastaveno v hlavnm konfiguranm souboru.
@end itemize
@subsection Volby pkazov dky
Speech Dispatcher me bt sputn s tmito volbami:
@code{speech-dispatcher [-@{d|s@}] [-l @{1|2|3|4|5@}] [-p=port] | [-v] | [-h]}
@table @code
@item -d or --run-daemon
Spust program jako dmona (b v pozad, odpoj se od terminlu, atd.) Toto
je vchoz chovn.
@item -s or --run-single
Spust program jako bnou aplikaci bc na poped.
@item -l level or --log-level=level
Vybere poadovan logovac rove. Logovac rove je slo mezi 0 a 5 (0
znamen neloguj nic, 5 znamen zapisuj tm ve vetn zpracovvanho textu.)
Standardn je 3. @xref{rovn logovn}.
Logovac rove 5 by nemla bt pouvna k jinm elm, ne pro hledn chyb
a to pouze krtkodob. Logy, kter produkuje mohou narst do obrovsk
velikosti a obsahuj text ten uivateli nezvisle na rznch pstupovch
prvech, jak plat pro historii. Spoutt server s touto rovn logovn tedy
me snadno vst k naruen soukrom.
@item -p or --port
Zad port, na kterm by ml server ekat na klienty. Vchoz je 6560.
@item -v or --version
Vype informace o verzi Speech Dispatchera. Tak oznm zkladn informace o
copyrightu.
@item -h or --help
Vype npovdu o volbch pkazov dky, upozornn o copyrightu
a emailovou adresu pro zasln oznmen o chybch.
@end table
@node Konfigurace, , Spoutn, Uivatelsk dokumentace
@section konfigurace
@cindex konfigurace
Speech Dispatcher me bt konfigurovn na nkolika rznch rovnch. Jedna z
nich je nastavovn globlnch parametr pes serverov konfiguran soubor.
Je zde i podpora pro konfiguraci specifickou pro urit klienty.
Nkter aplikace maj vlastn mechanismus nastavovn voleb souvisejcch s
eovou syntzou. Pro detaily o tchto nastavench se prosm podvejte do
dokumentace danho programu.
Nsledujc kapitoly se zabvaj pouze konfigurac na stran serveru pes
konfiguran soubor.
@menu
* Syntaxe konfiguranho souboru::
* Volby v konfiguraci::
* Nastaven vstupnch modul::
* rovn logovn::
@end menu
@node Syntaxe konfiguranho souboru, Volby v konfiguraci, Konfigurace, Konfigurace
@subsection Syntaxe konfiguranho souboru
Pro natn configurace zaloen na textovch souborech pouvme knihovnu
DotConf, take bude syntaxe nejsp mnoha uivatelm povdom.
Kad z etzcovch konstant, pokud nen uvedeno jinak, by mla bt zakdovna
v UTF-8. Jmna voleb nepouvaj jin znaky ne standardn ASCII sadu omezenou
na znaky (@code{a}, @code{b}, ...), pomlky (@code{-}) a podtrtka @code{_}.
Komente a doasn neaktivn volby zanaj znakem @code{#}. Pokud chcete
takovu volbu zapnout, sta smazat znak komente a nastavit volbu na
poadovanou hodnotu.
@example
# toto je komentar
# InactiveOption "tato volba je zatim vypla komentarem"
@end example
etzce jsou uzaveny v uvozovkch.
@example
LogFile "/var/log/speech-dispatcher.log"
@end example
sla jsou zapsna bez uvozovek.
@example
Port 6560
@end example
Pepnae pouvaj On (zapnuto) a Off (vypnuto).
@example
Debug Off
@end example
@node Volby v konfiguraci, Nastaven vstupnch modul, Syntaxe konfiguranho souboru, Konfigurace
@subsection Configuration options
Vechny dostupn volby jsou zdokumentovny pmo v konfiguranm souboru a jsou
k nim uvedeny i pklady. Vtina voleb je nastavena na vchoz hodnotu a
zakomentovna. Pokud je chcete zmnit, posta modifikovat jejich hodnotu a
smazat symbol komente @code{#}.
@node Nastaven vstupnch modul, rovn logovn, Volby v konfiguraci, Konfigurace
@subsection Output Modules Configuration
Kad uivatel by si ml zapnout ve sv konfiguraci alespo jeden vstupn
modul, pokud chce, aby Speech Dispatcher produkoval njak zvukov vstup.
Kdy nen naten dn vstupn modul, Speech Dispatcher sice nastartuje, bude
komunikovat s klienty a logovat zprvy do historie, ale nebude produkovat dn
zvuk.
Kad vstupn modul je teba do Speech Dispatchera nathnout jednou dkou
``AddModule'' v @file{etc/speechd.conf}. Navc, kad vstupn modul m
piazen vlastn konfiguran soubor.
@menu
* Natahovn modul ve speechd.conf::
* Konfiguran soubory vstupnch modul::
* Konfigurace generickho vstupnho modulu::
@end menu
@node Natahovn modul ve speechd.conf, Konfiguran soubory vstupnch modul, Nastaven vstupnch modul, Nastaven vstupnch modul
@subsubsection Natahovn modul ve speechd.conf
@anchor{AddModule} Kad modul, kter by se ml spustit pi startu Speech
Dispatchera, mus bt nataen pkazem @code{AddModule} v konfiguraci.
Vimnte si, e lze nathnout jeden binrn modul vcekrt s rznmi
konfiguranmi soubory a pod jinmi jmny. To je uiten hlavn pro
natahovn generickch vstupnch modul. @xref{Konfigurace generickho
vstupnho modulu}.
@example
AddModule "@var{module_name}" "@var{module_binary}" "@var{module_config}"
@end example
@var{module_name} je jmno danho vstupnho modulu.
@var{module_binary} je jmno binrnho spustitelnho souboru tohoto vstupnho
modulu. To me bt bu cesta absolutn nebo relativn k
@file{bin/speechd-modules/}.
@var{module_config} je soubor s konfigurac pro tento konkrtn vstupn modul.
Cesta me bt absolutn i relativn k @file{etc/speech-dispatcher/modules/}.
Tento parametr je voliteln (nen teba jej uvdt).
@node Konfiguran soubory vstupnch modul, Konfigurace generickho vstupnho modulu, Natahovn modul ve speechd.conf, Nastaven vstupnch modul
@subsubsection Konfiguran soubory vstupnch modul
Kad vstupn modul je odlin a proto m odlin volby v konfiguraci. Prosm
prostudujte si komente v danm konfiguranm souboru. Zde je popsno pouze
nkolik voleb, kter jsou pro nkter vstupn moduly spolen.
@table @code
@item AddVoice "@var{language}" "@var{symbolicname}" "@var{name}"
@anchor{AddVoice}
Kad vstupn modul poskytuje njak hlasy a nkdy dokonce podporuje rzn
jazyky. Z toho dvodu byl zaveden spolen mechanismus, kterm mou bt tyto
hlasy definovny v konfiguraci. dn modul ovem nen povinen tuto volbu
pouvat. Nkter syntetiztory, nap. Festival, podporuj symbolick jmna
SSIP pmo, take konfigurace konkrtnch hlas se provd v syntetiztoru
samotnm.
Kadmu definovanmu hlasu odpovd pesn jedna dka @code{AddVoice}.
@var{language} je ISO kd jazyka tohoto hlasu (en, cs, de, ...)
@var{symbolicname} je symbolick jmno, pod kterm chcete, aby byl tento hlas
dostupn. @xref{Standardn hlasy}, pro seznam symbolickch jmen, kter mete
pout.
@var{name} je jmno specifick pro dan vstupn modul. Prosm podvejte se na
komente v pslunm konfiguranm souboru v sekci AddModule pro detailnj
informace.
Nap. definice, kterou v souastnosti pouvme pro Epos (generic) vypad
takto:
@example
AddVoice "cs" "male1" "kadlec"
AddVoice "sk" "male1" "bob"
@end example
@item ModuleDelimiters "@var{delimiters}", ModuleMaxChunkLength @var{length}
asto se vstupn modul nesna vysyntetizovat cel pchoz text najednou, ale
msto toho jej nejprve rozee na men kousky (vty, sti vt) a ty potom
postupn odesl na syntzu. Tento pstup, vyuvan nktermi vstupnmi
moduly, je mnohem rychlej, ale na druh stran zase limituje schopnost
syntetizru poskytnout dobrou intonaci.
Z toho dvodu mte obyejn monost zkonfigurovat si na jakch znacch
(@var{delimiters}) by se ml text rozdlit na men sti (pokud jsou
nsledovny njakm whitespace znakem). Druh volba (@var{length}) udv, po
kolika znacch by se ml text nsiln rozdlit, pokud nebyl nalezen dn
delimiter.
Pokud tato dv pravidla zpsnte, dostanete lep rychlost, ale vzdte se
urit sti kvality intonace. Take napklad pro pomalej potae
doporuujeme do @var{delimiters} vloit i rku (,), aby byl text rozdlen i na
stech vty, zatmco na rychlejch potach je lep tam rku nedvat,
take do syntetizru vdy doraz cel souvt.
To sam plat o @code{MaxChunkLength}. Pro rychlej potae
je lep nastavit vt hodnotu.
Napklad vchoz hodnoty ve vstupnm modulu pro Festival jsou:
@example
FestivalMaxChunkLength 300
FestivalDelimiters ".?!;,:"
@end example
Vstupn modul se me tak rozhodnout dlit vty na delimiters pouze pokud ty
jsou nsledovny mezerou. Take napklad ``file123.tmp'' by rozdleno nebylo,
ale vta ``The horse raced around the fence, that was lately painted green,
fell.'' by rozdlena byla (to je mimochodem velmi zajmav vta).
@end table
@node Konfigurace generickho vstupnho modulu, , Konfiguran soubory vstupnch modul, Nastaven vstupnch modul
@subsubsection Konfigurace generickho vstupnho modulu
Generick vstupn modul uivatelm dovoluje jednodue si napsat vlastn
jednoduch vstupn modul pro syntetizry, kter maj rozhran ve form
jednoduchho dkovho klienta, pouze modifikac konfiguranho souboru. Tmto
zpsobem nemus pst dn specifick kd v C a uivatel si mohou pidvat
podporu pro vstupn zazen i kdy neum programovat. @xref{AddModule}.
Klov st kadho generickho vstupnho modulu je definice etzce, kter
se m spoutt.
@defvr {Konfigurace generickho modulu} GenericExecuteSynth "@var{execution_string}"
@code{execution_string} je pkaz, kter by ml bt zavoln v shellu, kdy je
poteba nco ct. Ve skutenosti to me bt vce jak jeden pkaz, dohromady
zetzen opertorem @code{&&}. Kdy bude vstupn modul chtt pekvn
zprvy zastavit, zale tmto procesm signl KILL, take je dleit, aby
pouit pkazy po obdren KILL okamit pestaly mluvit. (Na vtin
GNU/Linuxovch systm m tuto vlastnost utilita @code{play})
V @code{execution_string} mete vyut tchto promnnch, kter budou
nahrazeny poadovanmi hodnotami, ne bude pkaz vykonn.
@itemize
@item @code{$DATA}
Text, kter by ml bt pekn. Znaky etzce, kter by njak interferovali
se zpracovnm v bashi budou automaticky nahrazeny odpovdajcmi escape
sekvencemi. Asi bude ale nutn uvst kolem tto promnn uvozovky
(nap. takto: @code{\"$DATA\"}).
@item @code{$LANG}
Identifikan etzec jazyka (ten je definovn pomoc GenericLanguage).
@item @code{$VOICE}
Identifikan etzec hlasu (ten je definovn pomoc AddVoice).
@item @code{$PITCH}
Poadovan vka hlasu (desetinn slo definovan v GenericPitchAdd a v
GenericPitchMultiply)
@item @code{$RATE}
Poadovan rychlost hlasu (desetinn slo definovan v GenericRateAdd a v
GenericRateMultiply)
@end itemize
Tady je pklad z @file{etc/speech-dispatcher/modules/epos-generic.conf}
@example
GenericExecuteSynth \
"epos-say -o --language $LANG --voice $VOICE --init_f $PITCH --init_t $RATE \
\"$DATA\" | sed -e s+unknown.*$++ >/tmp/epos-said.wav && play /tmp/epos-said.wav >/dev/null"
@end example
@end defvr
@defvr {Konfigurace generickho modulu} AddVoice "@var{language}" "@var{symbolicname}" "@var{name}"
@xref{AddVoice}.
@end defvr
@defvr {Konfigurace generickho modulu} GenericLanguage "iso-code" "string-subst"
Definuje, jak etzec @code{string-subst} by ml bt nahrazen za @code{$LANG}
pro dan @code{iso-code} ISO kd jazyka.
Opt pklad z Epos generic:
@example
GenericLanguage "en" "english"
GenericLanguage "cs" "czech"
GenericLanguage "sk" "slovak"
@end example
@end defvr
@defvr {Konfigurace generickho modulu} GenericRateAdd @var{num}
@end defvr
@defvr {Konfigurace generickho modulu} GenericRateMultiply @var{num}
@end defvr
@defvr {Konfigurace generickho modulu} GenericPitchAdd @var{num}
@end defvr
@defvr {Konfigurace generickho modulu} GenericPitchMultiply @var{num}
Tyto parametry nastavuj konverzi pro vpoet rychlosti a vky.
(@code{$RATE} a @code{$PITCH}).
Vsledn rychlost (nebo vka) je dna nsledujcm vzorcem:
@example
(speechd_rate * GenericRateMultiply) + GenericRateAdd
@end example
kde speechd_rate je hodnota mezi -100 (nejni) a +100 (nejvy). Je teba
definovat njakou rozumnou konverzi pro dan syntetizr.
(Hodnoty v GenericNcoMultiply jsou vynsobeny stem, protoe stvajc verze
DotConfu nepodporuje desetinn sla. Mete tedy pst 0.85 jako 85 atd.)
@end defvr
@node rovn logovn, , Nastaven vstupnch modul, Konfigurace
@subsection rovn logovn
Ve Speech Dispatcheru je 6 rznch rovn logovn. 0 znamen dn logovn,
zatmco 5 znamen vypisovat tm vechny dostupn informace.
@itemize @bullet
@item rove 0
@itemize @bullet
@item dn informace
@end itemize
@item rove 1
@itemize @bullet
@item Informace o startu a vypnn.
@end itemize
@item rove 2
@itemize @bullet
@item Informace o chybch, kter nastaly.
@item Alokace a uvolovn zdroj pi startu a pi exitu.
@end itemize
@item rove 3
@itemize @bullet
@item Informace o pijmn/odeprn/zavrn klientskch spojen.
@item Informace o neplatnch SSIP pkazech od klient.
@end itemize
@item rove 4
@itemize @bullet
@item Je vypisovn kad pijat pkaz
@item Informace o zpracovvn vstupu
@item Informace o ukldn zprv do front
@item Informace o fungovn historie, zvukovch ikon, atd.
facilities.
@item Informace o prci vlkna speak()
@end itemize
@item rove 5
(Ta slou pouze pro ladc ely a me vypisovat opravdu *mnoho*
dat. Pouvejte opatrn.)
@itemize @bullet
@item Vechna obdren data jsou vypisovna (zprvy od klient)
@item Ladc informace.
@end itemize
@end itemize
@appendix Standardn hlasy
@anchor{Standardn hlasy}
@table @code
@item MALE1
@item MALE2
@item MALE3
@item FEMALE1
@item FEMALE2
@item FEMALE3
@item CHILD_MALE
@item CHILD_FEMALE
@end table
Skuten dostupnost tchto hlas nen zaruena, ale pkaz @code{SET SELF
VOICE} mus akceptovat jakkoliv z nich. Pokud nen dan hlas dostupn, je
mapovn na jin hlas vstupnm modulem.
@node GNU General Public License, GNU Free Documentation License, Uivatelsk dokumentace, Top
@appendix GNU General Public License
@center Version 2, June 1991
@cindex GPL, GNU General Public License
@include gpl.texi
@node GNU Free Documentation License, Index of Concepts, GNU General Public License, Top
@appendix GNU Free Documentation License
@center Version 1.2, November 2002
@cindex FDL, GNU Free Documentation License
@include fdl.texi
@node Index of Concepts, , GNU Free Documentation License, Top
@unnumbered Index of Concepts
@cindex tail recursion
@printindex cp
@bye
@c LocalWords: texinfo setfilename speechd settitle finalout syncodeindex pg
@c LocalWords: setchapternewpage cp fn vr texi dircategory direntry titlepage
@c LocalWords: Cerha Hynek Hanke vskip pt filll insertcopying ifnottex dir fd
@c LocalWords: API SSIP cindex printf ISA pindex Flite Odmluva FreeTTS TTS CR
@c LocalWords: src struct gchar gint const OutputModule intl FDSetElement len
@c LocalWords: fdset init flite deffn TFDSetElement var int enum EVoiceType
@c LocalWords: sayf ifinfo verbatiminclude ref UTF ccc ddd pxref LF cs conf
@c LocalWords: su AddModule DefaultModule xref identd printindex Dectalk GTK
@c speechd.texi ends here
@c LocalWords: emph soundcard precission archieved succes
|