| <!DOCTYPE html> |
| <html> |
| <!-- Created by GNU Texinfo 7.3, https://www.gnu.org/software/texinfo/ --> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
| <title>Speech Dispatcher</title> |
| |
| <meta name="description" content="Speech Dispatcher"> |
| <meta name="keywords" content="Speech Dispatcher"> |
| <meta name="resource-type" content="document"> |
| <meta name="distribution" content="global"> |
| <meta name="Generator" content="makeinfo"> |
| <meta name="viewport" content="width=device-width,initial-scale=1"> |
| |
| <link href="#Top" rel="start" title="Top"> |
| <link href="#Index-of-Concepts" rel="index" title="Index of Concepts"> |
| <link href="#SEC_Contents" rel="contents" title="Table of Contents"> |
| <link href="dir.html#Top" rel="up" title="(dir)"> |
| <link href="#g_t_00davod" rel="next" title="Úvod"> |
| <link href="dir.html#Top" rel="prev" title="(dir)"> |
| <style type="text/css"> |
| a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em} |
| a.summary-letter-printindex {text-decoration: none} |
| div.center {text-align:center} |
| div.display {margin-left: 3.2em} |
| div.example {margin-left: 3.2em} |
| dt.def-line {font-size: 1rem} |
| pre.display-preformatted {font-family: inherit} |
| span:hover a.copiable-link {visibility: visible} |
| strong.def-name {font-family: monospace; font-weight: bold} |
| td.printindex-index-entry {vertical-align: top; padding-left: 1.5em} |
| td.printindex-index-section {vertical-align: top; padding-left: 1em} |
| th.index-letter-header-printindex {text-align: left} |
| ul.mark-bullet {list-style-type: disc} |
| ul.toc-numbered-mark {list-style: none} |
| </style> |
| |
| |
| </head> |
| |
| <body> |
| |
| |
| |
| |
| |
| |
| |
| |
| <div class="top-level-extent" id="Top"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#g_t_00davod" rel="next">Úvod</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="dir.html#Top" rel="prev">(dir)</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="dir.html#Top" rel="up">(dir)</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h1 class="top" id="Speech-Dispatcher"><span>Speech Dispatcher<a class="copiable-link" href="#Speech-Dispatcher"> ¶</a></span></h1> |
| |
| <p>Tento manuál se vztahuje ke Speech Dispatcher, verze 0.12.0. Jedná se |
| však pouze o uživatelskou část dokumentace a upozorňujeme, že tento překlad již |
| není aktuální! Poskytujeme jej s tím, že možná bude užitečný a to zejména v |
| sekcích, které popisují obecné koncepty a myšlenky projektu, a to těm, kteří si |
| nemohou přečíst anglickou dokumentaci. Nikdo by nicméně neměl spoléhat na |
| technické detaily zde uvedené, protože mnoho věcí je již dnes jinak. |
| </p> |
| <p>Copyright © 2001, 2002, 2003 Brailcom, o.p.s. |
| </p> |
| <blockquote class="quotation"> |
| <p>Dáváme povolení kopírovat, distribuovat a/nebo modifikovat tento dokument pod |
| podmínkami GNU Free Documentation License, Verze 1.2 nebo jakékoliv novější |
| verze vydané Free Software Foundation; bez jakýchkoliv Invariant Sections |
| (neměnných sekcí), bez Front-Cover Texts (texty na přední straně obálky) a bez |
| Back-Cover Texts (texty na zadní straně obálky). Kopie této licence je |
| přiložena v sekci nazvané ,,GNU Free Documentation License”. |
| </p></blockquote> |
| |
| <h3 class="heading" id="Menu"><span>Menu<a class="copiable-link" href="#Menu"> ¶</a></span></h3> |
| |
| |
| <div class="region-shortcontents" id="SEC_Shortcontents"> |
| <h2 class="shortcontents-heading">Short Table of Contents</h2> |
| |
| <div class="shortcontents"> |
| <ul class="toc-numbered-mark"> |
| <li><a id="stoc-_00davod" href="#toc-_00davod">1 Úvod</a></li> |
| <li><a id="stoc-U_017eivatelsk_00e1-dokumentace" href="#toc-U_017eivatelsk_00e1-dokumentace">2 Uživatelská dokumentace</a></li> |
| <li><a id="stoc-Standardn_00ed-hlasy" href="#toc-Standardn_00ed-hlasy">Appendix A Standardní hlasy</a></li> |
| <li><a id="stoc-GNU-General-Public-License" href="#toc-GNU-General-Public-License">Appendix B GNU General Public License</a></li> |
| <li><a id="stoc-GNU-Free-Documentation-License" href="#toc-GNU-Free-Documentation-License">Appendix C GNU Free Documentation License</a></li> |
| <li><a id="stoc-Index-of-Concepts" href="#toc-Index-of-Concepts" rel="index">Index of Concepts</a></li> |
| </ul> |
| </div> |
| </div> |
| <div class="region-contents" id="SEC_Contents"> |
| <h2 class="contents-heading">Table of Contents</h2> |
| |
| <div class="contents"> |
| |
| <ul class="toc-numbered-mark"> |
| <li><a id="toc-_00davod" href="#g_t_00davod">1 Úvod</a> |
| <ul class="toc-numbered-mark"> |
| <li><a id="toc-Motivace" href="#Motivace">1.1 Motivace</a></li> |
| <li><a id="toc-Z_00e1kladn_00ed-design" href="#Z_00e1kladn_00ed-design">1.2 Základní design</a></li> |
| <li><a id="toc-P_0159ehled-z_00e1kladn_00edch-rys_016f" href="#P_0159ehled-z_00e1kladn_00edch-rys_016f">1.3 Přehled základních rysů</a></li> |
| <li><a id="toc-Sou_010dasn_00fd-stav" href="#Sou_010dasn_00fd-stav">1.4 Současný stav</a></li> |
| </ul></li> |
| <li><a id="toc-U_017eivatelsk_00e1-dokumentace" href="#U_017eivatelsk_00e1-dokumentace">2 Uživatelská dokumentace</a> |
| <ul class="toc-numbered-mark"> |
| <li><a id="toc-Z_00e1kladn_00ed-funkce" href="#Z_00e1kladn_00ed-funkce">2.1 Základní funkce</a> |
| <ul class="toc-numbered-mark"> |
| <li><a id="toc-Model-priorit-zpr_00e1v" href="#Model-priorit-zpr_00e1v">2.1.1 Model priorit zpráv</a> |
| <ul class="toc-numbered-mark"> |
| <li><a id="toc-Priority-Categories" href="#Typy-priorit">2.1.1.1 Priority Categories</a></li> |
| <li><a id="toc-Diagram-priorit" href="#Diagram-priorit">2.1.1.2 Diagram priorit</a></li> |
| <li><a id="toc-P_0159_00edklady-vyu_017eit_00ed-priorit" href="#P_0159_00edklady-vyu_017eit_00ed-priorit">2.1.1.3 Příklady využití priorit</a></li> |
| </ul></li> |
| <li><a id="toc-Historie-zpr_00e1v" href="#Historie-zpr_00e1v">2.1.2 Historie zpráv</a> |
| <ul class="toc-numbered-mark"> |
| <li><a id="toc-Access-Rights" href="#P_0159_00edstupov_00e1-pr_00e1va">2.1.2.1 Access Rights</a></li> |
| </ul></li> |
| <li><a id="toc-V_00edce-v_00fdstupn_00edch-modul_016f" href="#V_00edce-v_00fdstupn_00edch-modul_016f">2.1.3 Více výstupních modulů</a></li> |
| <li><a id="toc-Autentizace-u_017eivatel_016f" href="#Autentizace-u_017eivatel_016f">2.1.4 Autentizace uživatelů</a></li> |
| </ul></li> |
| <li><a id="toc-Invoking" href="#Spou_0161t_011bn_00ed">2.2 Invoking</a> |
| <ul class="toc-numbered-mark"> |
| <li><a id="toc-Pot_0159ebn_00e1-privilegia" href="#Pot_0159ebn_00e1-privilegia">2.2.1 Potřebná privilegia</a></li> |
| <li><a id="toc-Volby-p_0159_00edkazov_00e9-_0159_00e1dky" href="#Volby-p_0159_00edkazov_00e9-_0159_00e1dky">2.2.2 Volby příkazové řádky</a></li> |
| </ul></li> |
| <li><a id="toc-konfigurace" href="#Konfigurace">2.3 konfigurace</a> |
| <ul class="toc-numbered-mark"> |
| <li><a id="toc-Syntaxe-konfigura_010dn_00edho-souboru" href="#Syntaxe-konfigura_010dn_00edho-souboru">2.3.1 Syntaxe konfiguračního souboru</a></li> |
| <li><a id="toc-Configuration-options" href="#Volby-v-konfiguraci">2.3.2 Configuration options</a></li> |
| <li><a id="toc-Output-Modules-Configuration" href="#Nastaven_00ed-v_00fdstupn_00edch-modul_016f">2.3.3 Output Modules Configuration</a> |
| <ul class="toc-numbered-mark"> |
| <li><a id="toc-Natahov_00e1n_00ed-modul_016f-ve-speechd_002econf" href="#Natahov_00e1n_00ed-modul_016f-ve-speechd_002econf">2.3.3.1 Natahování modulů ve speechd.conf</a></li> |
| <li><a id="toc-Konfigura_010dn_00ed-soubory-v_00fdstupn_00edch-modul_016f" href="#Konfigura_010dn_00ed-soubory-v_00fdstupn_00edch-modul_016f">2.3.3.2 Konfigurační soubory výstupních modulů</a></li> |
| <li><a id="toc-Konfigurace-generick_00e9ho-v_00fdstupn_00edho-modulu" href="#Konfigurace-generick_00e9ho-v_00fdstupn_00edho-modulu">2.3.3.3 Konfigurace generického výstupního modulu</a></li> |
| </ul></li> |
| <li><a id="toc-_00darovn_011b-logov_00e1n_00ed" href="#g_t_00darovn_011b-logov_00e1n_00ed">2.3.4 Úrovně logování</a></li> |
| </ul></li> |
| </ul></li> |
| <li><a id="toc-Standardn_00ed-hlasy" href="#Standardn_00ed-hlasy">Appendix A Standardní hlasy</a></li> |
| <li><a id="toc-GNU-General-Public-License" href="#GNU-General-Public-License">Appendix B GNU General Public License</a></li> |
| <li><a id="toc-GNU-Free-Documentation-License" href="#GNU-Free-Documentation-License">Appendix C GNU Free Documentation License</a> |
| <ul class="toc-numbered-mark"> |
| <li><a id="toc-ADDENDUM_003a-How-to-use-this-License-for-your-documents" href="#ADDENDUM_003a-How-to-use-this-License-for-your-documents">C.1 ADDENDUM: How to use this License for your documents</a></li> |
| </ul></li> |
| <li><a id="toc-Index-of-Concepts" href="#Index-of-Concepts" rel="index">Index of Concepts</a></li> |
| </ul> |
| </div> |
| </div> |
| <hr> |
| <div class="chapter-level-extent" id="g_t_00davod"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#U_017eivatelsk_00e1-dokumentace" rel="next">Uživatelská dokumentace</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Top" rel="prev">Speech Dispatcher</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Top" rel="up">Speech Dispatcher</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h2 class="chapter" id="g_t_00davod-1"><span>1 Úvod<a class="copiable-link" href="#g_t_00davod-1"> ¶</a></span></h2> |
| |
| |
| <ul class="mini-toc"> |
| <li><a href="#Motivace">Motivace</a></li> |
| <li><a href="#Z_00e1kladn_00ed-design">Základní design</a></li> |
| <li><a href="#P_0159ehled-z_00e1kladn_00edch-rys_016f">Přehled základních rysů</a></li> |
| <li><a href="#Sou_010dasn_00fd-stav">Současný stav</a></li> |
| </ul> |
| <hr> |
| <div class="section-level-extent" id="Motivace"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#Z_00e1kladn_00ed-design" rel="next">Základní design</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#g_t_00davod" rel="prev">Úvod</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#g_t_00davod" rel="up">Úvod</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h3 class="section" id="Motivace-1"><span>1.1 Motivace<a class="copiable-link" href="#Motivace-1"> ¶</a></span></h3> |
| <a class="index-entry-id" id="index-Hlavni-myslenky_002c-Motivace"></a> |
| <a class="index-entry-id" id="index-Filosofie"></a> |
| |
| <p>Projekt Speech Dispatcher se snaží poskytnout na zařízení nezávislou vrstvu pro |
| řečovou syntézu. Měl by poskytovat jednoduché rozhraní pro klientské aplikace |
| (aplikace, které chtějí mluvit), stejně jako pro ovladače konkrétních zařízení |
| (různé řečové syntetizéry). |
| </p> |
| <p>Vysoce kvalitní řečová syntéza je tu již dlouho a nyní je použitelná i pro |
| běžné uživatele na jejich domácích počítačích. Občas to přichází jako nutnost, |
| občas je to jen dobrá vlastnost, aby některé programy poskytovaly řečový |
| výstup. Pro syntézu hlasu je tu široké pole využití od výukového software až |
| po specializované systémy, jako jsou například nemocnice či laboratoře. Pro |
| zrakově postižené uživatele je to jedna ze dvou základních cest, jak získat |
| výstup z počítače (tou druhou je Braillský řádek). |
| </p> |
| <p>Existují různé řečové syntetizéry s různými schopnostmi. Některé z nich jsou |
| hardwarové, některé softwarové. Některé jsou svobodným software a jsou volně |
| dostupné na internetu. Programátoři to mají opravdu těžké, když chtějí své |
| programy rozmluvit, protože potřebují nejprve najít nějaký vhodný syntetizér |
| (dlouhé hodiny experimentování a tak dále) a potom jej potřebují nějak |
| zprovoznit s jejich programem. Často musí psát pro tyto programy či hardwarová |
| zařízení vlastní ovladače a dělají to znovu a znovu. Snadno si lze představit, |
| že se to celé zhroutí když nevinný uživatel spustí dva programy najednou. Kdyby |
| přesto nastartovaly oba, budou křičet jeden přes druhého. |
| </p> |
| <p>Tím je pro programátory velmi obtížné implementovat do svých programů podporu |
| řečové syntézy (pro nevidomé uživatele, nebo prostě pro lepší uživatelské |
| rozhraní) a je to jeden z důvodů, proč pořád ještě plně nevyužíváme toho, co |
| řečová syntéza nabízí. |
| </p> |
| <p>V ideálním světě by programátoři mohli pro řečovou syntézu používat podobné |
| příkazy, jako to dělají pro textový výstup na obrazovku (printf, puts, ...). V |
| ideálním světě by existovalo nějaké speech_printf(), které by se staralo o to, |
| aby byla zpráva přemluvena ve správný čas bez přerušování ostatních. |
| Programátor by se tak nemusel starat o to, jak je přesně komunikace s řečovým |
| syntetizérem implementována. V ideálním světě by byl v každé GNU/Linuxové |
| distribuci nějaký řečový syntetizér a nějaké rozhraní starající se o aplikace, |
| které chtějí mluvit, dovolující uživatelům nastavit si parametry řeči a |
| poskytující nějaké jednoduché rozhraní (jako speech_printf()) pomocí nějaké |
| sdílené knihovny pro programátory. Bude to ještě dlouhá cesta než se nám |
| podaří dosáhnout tohoto stavu věcí, ale se Speech Dispatcherem děláme první |
| krůčky... |
| </p> |
| <hr> |
| </div> |
| <div class="section-level-extent" id="Z_00e1kladn_00ed-design"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#P_0159ehled-z_00e1kladn_00edch-rys_016f" rel="next">Přehled základních rysů</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Motivace" rel="prev">Motivace</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#g_t_00davod" rel="up">Úvod</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h3 class="section" id="Z_00e1kladn_00ed-design-1"><span>1.2 Základní design<a class="copiable-link" href="#Z_00e1kladn_00ed-design-1"> ¶</a></span></h3> |
| <a class="index-entry-id" id="index-Design"></a> |
| |
| <p>V komunikaci mezi všemi různými aplikacemi a syntetizéry je obrovský nepořádek. |
| Proto jsme chtěli, aby byl Speech Dispatcher vrstva oddělující aplikace a |
| syntetizéry tak, aby se aplikace nemusely starat o syntetizéry a syntetizéry se |
| nemusely starat o interakci s aplikacemi. |
| </p> |
| <p>Rozhodli jsme se implementovat Speech Dispatcher jako server, který přijímá od |
| aplikací příkazy přes protokol nazvaný <code class="code">SSIP</code>, zpracovává je a, pokud je |
| to nutné, zavolá příslušnou funkci daného výstupního modulu, který pak |
| komunikuje s některým z různých syntetizátorů. |
| </p> |
| <p>Každý klient (aplikace, která chce mluvit) otevře socketové spojení na Speech |
| Dispatcher a volá funkce jako say(), stop(), pause() poskytované knihovnou |
| implementující tento protokol. Tato sdílená knihovna je stále na straně |
| klienta a posílá Speech Dispatcheru SSIP příkazy přes otevřený socket. Když |
| příkazy dorazí do Dispatchera, ten je zpracuje, přečte text, který by měl být |
| přeříkán a vloží jej do fronty podle jeho priority. Potom se rozhodne kdy, s |
| jakými parametry (nastavovanými klientským programem i uživatelem) a na jakém |
| syntetizéru zprávu nechá přemluvit. Tyto požadavky na mluvení jsou pak |
| zpracovávány výstupními moduly (pluginy) pro různé hardwarové a softwarové |
| syntetizéry a přeříkány nahlas. |
| </p> |
| <img class="image" src="figures/architecture.png" alt="Architektura Speech Dispatchera"> |
| |
| <p>Detailní popis programování klientů i serveru je k dispozici v anglickém |
| manuálu. |
| </p> |
| <hr> |
| </div> |
| <div class="section-level-extent" id="P_0159ehled-z_00e1kladn_00edch-rys_016f"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#Sou_010dasn_00fd-stav" rel="next">Současný stav</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Z_00e1kladn_00ed-design" rel="prev">Základní design</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#g_t_00davod" rel="up">Úvod</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h3 class="section" id="P_0159ehled-z_00e1kladn_00edch-rys_016f-1"><span>1.3 Přehled základních rysů<a class="copiable-link" href="#P_0159ehled-z_00e1kladn_00edch-rys_016f-1"> ¶</a></span></h3> |
| |
| <p>Speech Dispatcher z pohledu uživatele: |
| </p> |
| <ul class="itemize mark-bullet"> |
| <li>snadná konfigurace různých mluvících aplikací, centrální správa |
| </li><li>možnost volně rozhodovat, jaká aplikace bude mluvit s jakým syntetizérem |
| </li><li>méně času věnovaného konfiguraci a ladění různých aplikací využívajících syntézu |
| </li><li>historie zpráv pro zrakově postižené uživatele |
| </li></ul> |
| |
| <p>Speech Dispatcher z pohledu programátora aplikace: |
| </p> |
| <ul class="itemize mark-bullet"> |
| <li>snadná cesta, jak aplikaci rozmluvit |
| </li><li>jednotné rozhraní k různým syntetizérům |
| </li><li>synchronizace zpráv na vyšší úrovni (kategorizace pomocí priorit) |
| </li><li>možnost nemuset se starat o konfiguraci parametrů hlasu |
| </li></ul> |
| |
| <hr> |
| </div> |
| <div class="section-level-extent" id="Sou_010dasn_00fd-stav"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#P_0159ehled-z_00e1kladn_00edch-rys_016f" rel="prev">Přehled základních rysů</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#g_t_00davod" rel="up">Úvod</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h3 class="section" id="Sou_010dasn_00fd-stav-1"><span>1.4 Současný stav<a class="copiable-link" href="#Sou_010dasn_00fd-stav-1"> ¶</a></span></h3> |
| <a class="index-entry-id" id="index-Syntetizery"></a> |
| <a class="index-entry-id" id="index-Ostatni-programy"></a> |
| |
| <p>TODO: |
| </p> |
| <hr> |
| </div> |
| </div> |
| <div class="chapter-level-extent" id="U_017eivatelsk_00e1-dokumentace"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#GNU-General-Public-License" rel="next">GNU General Public License</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#g_t_00davod" rel="prev">Úvod</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Top" rel="up">Speech Dispatcher</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h2 class="chapter" id="U_017eivatelsk_00e1-dokumentace-1"><span>2 Uživatelská dokumentace<a class="copiable-link" href="#U_017eivatelsk_00e1-dokumentace-1"> ¶</a></span></h2> |
| |
| |
| <ul class="mini-toc"> |
| <li><a href="#Z_00e1kladn_00ed-funkce">Základní funkce</a></li> |
| <li><a href="#Spou_0161t_011bn_00ed">Invoking</a></li> |
| <li><a href="#Konfigurace">konfigurace</a></li> |
| </ul> |
| <hr> |
| <div class="section-level-extent" id="Z_00e1kladn_00ed-funkce"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#Spou_0161t_011bn_00ed" rel="next">Invoking</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#U_017eivatelsk_00e1-dokumentace" rel="prev">Uživatelská dokumentace</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#U_017eivatelsk_00e1-dokumentace" rel="up">Uživatelská dokumentace</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h3 class="section" id="Z_00e1kladn_00ed-funkce-1"><span>2.1 Základní funkce<a class="copiable-link" href="#Z_00e1kladn_00ed-funkce-1"> ¶</a></span></h3> |
| |
| <p>V této sekci je detailnější popis základních funkcí Speech Dispatcheru. |
| </p> |
| |
| <ul class="mini-toc"> |
| <li><a href="#Model-priorit-zpr_00e1v">Model priorit zpráv</a></li> |
| <li><a href="#Historie-zpr_00e1v">Historie zpráv</a></li> |
| <li><a href="#V_00edce-v_00fdstupn_00edch-modul_016f">Více výstupních modulů</a></li> |
| <li><a href="#Autentizace-u_017eivatel_016f">Autentizace uživatelů</a></li> |
| </ul> |
| <hr> |
| <div class="subsection-level-extent" id="Model-priorit-zpr_00e1v"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#Historie-zpr_00e1v" rel="next">Historie zpráv</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Z_00e1kladn_00ed-funkce" rel="prev">Základní funkce</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Z_00e1kladn_00ed-funkce" rel="up">Základní funkce</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h4 class="subsection" id="Model-priorit-zpr_00e1v-1"><span>2.1.1 Model priorit zpráv<a class="copiable-link" href="#Model-priorit-zpr_00e1v-1"> ¶</a></span></h4> |
| <a class="index-entry-id" id="index-priority"></a> |
| |
| <p>Speech Dispatcher nemůže syntetizovat všechny zprávy, které do něj přichází z |
| prostého důvodu, že zprávy přicházejí obyčejně rychleji, než je syntetický hlas |
| dokáže číst. Na obrazovce monitoru je v porovnání s jednokanálovým řečovým |
| výstupem relativně hodně místa. Z toho důvodu používáme systém několika |
| priorit zaměřených na různé typy zpráv. |
| </p> |
| <p>Myšlenka je taková, že úlohou programátora klientské aplikace bude pouze určit |
| pro každou zprávu určitou prioritu odpovídající typu dané zprávy. Veškerá |
| synchronizace a přepínání mezi těmito zprávami (které mohou pocházet od různých |
| klientů) potom bude zajištěno aplikováním určitých pravidel ve Speech |
| Dispatcheru. |
| </p> |
| |
| <ul class="mini-toc"> |
| <li><a href="#Typy-priorit">Priority Categories</a></li> |
| <li><a href="#Diagram-priorit">Diagram priorit</a></li> |
| <li><a href="#P_0159_00edklady-vyu_017eit_00ed-priorit">Příklady využití priorit</a></li> |
| </ul> |
| <hr> |
| <div class="subsubsection-level-extent" id="Typy-priorit"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#Diagram-priorit" rel="next">Diagram priorit</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Model-priorit-zpr_00e1v" rel="prev">Model priorit zpráv</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Model-priorit-zpr_00e1v" rel="up">Model priorit zpráv</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h4 class="subsubsection" id="Priority-Categories"><span>2.1.1.1 Priority Categories<a class="copiable-link" href="#Priority-Categories"> ¶</a></span></h4> |
| |
| <p>Speech Dispatcher poskytuje systém pěti priorit. Každá zpráva obsahuje buď |
| explicitní informaci o prioritě, nebo jí je přiřazena výchozí priorita. |
| </p> |
| <p>Prosím podívejte se také na přiložený diagram (dole). |
| </p> |
| <h4 class="subsubheading" id="Priorita-important"><span>Priorita <code class="code">important</code><a class="copiable-link" href="#Priorita-important"> ¶</a></span></h4> |
| <a class="index-entry-id" id="index-Priorita-important"></a> |
| |
| <p>Tato zpráva bude přeříkána okamžitě, jak dorazí do serveru. Není nikdy |
| přerušena. Když server obdrží současně několik různých zpráv této priority, ty |
| jsou uloženy a přeříkány v pořadí, ve kterém přišly. |
| </p> |
| <p>Když přijde nová zpráva priority <code class="code">important</code> a zrovna se říká nějaká jiná |
| zpráva, tato jiná zpráva je zahozena. Další zprávy nižších priorit jsou buď |
| pozdrženy (priorita <code class="code">message</code> a <code class="code">text</code>) než již nečekají na přeříkání |
| žádné zprávy priority <code class="code">important</code>, nebo jsou zahozeny (priority |
| <code class="code">notification</code> a <code class="code">progress</code>). |
| </p> |
| <p>Tyto zprávy by měly být tak krátké, jak je to jen možné, a měly by být |
| používány pouze zřídka, protože blokují výstup všech ostatních zpráv. |
| </p> |
| <h4 class="subsubheading" id="Priorita-message"><span>Priorita <code class="code">message</code><a class="copiable-link" href="#Priorita-message"> ¶</a></span></h4> |
| <a class="index-entry-id" id="index-Priorita-message"></a> |
| |
| <p>Tato zpráva bude přeříkána, pokud již ve frontě nečeká žádná jiná zpráva |
| priority <code class="code">important</code> nebo <code class="code">message</code>. V opačném případě je tato |
| zpráva pozdržena dokud nebudou všechny přeříkány. To znamená, že priorita |
| <code class="code">message</code> nezastavuje sama sebe. Když ve frontě čekají zprávy priorit |
| <code class="code">notification</code> nebo <code class="code">progress</code> nebo <code class="code">text</code> když přijde zpráva |
| priority <code class="code">message</code>, jsou zahozeny. |
| </p> |
| <h4 class="subsubheading" id="Priorita-text"><span>Priorita <code class="code">text</code><a class="copiable-link" href="#Priorita-text"> ¶</a></span></h4> |
| <a class="index-entry-id" id="index-Priorita-text"></a> |
| |
| <p>Tato zpráva bude přeříkána, když ve frontě nečeká žádná zpráva priority |
| <code class="code">important</code> nebo <code class="code">message</code>. Pokud čeká, tato nová zpráva je |
| pozdržena dokud nebudou předchozí zprávy přeříkány. |
| </p> |
| <p>Priorita text přerušuje sama sebe. To znamená, že když přijde několik zpráv |
| priority text, ty nejsou přeříkány v pořadí, ve kterém přišly, ale bude vyřčena |
| pouze poslední z nich a ostatní jsou přerušeny a zahozeny. |
| </p> |
| <p>Pokud jsou ve frontě zprávy priorit <code class="code">notification</code> nebo <code class="code">progress</code> |
| nebo se právě přeříkávají, jsou zahozeny. |
| </p> |
| <h4 class="subsubheading" id="Priorita-notification"><span>Priorita <code class="code">notification</code><a class="copiable-link" href="#Priorita-notification"> ¶</a></span></h4> |
| <a class="index-entry-id" id="index-Priorita-notification"></a> |
| |
| <p>Toto je zpráva nízké priority. Pokud ve frontě čekají zprávy priorit |
| <code class="code">important</code>, <code class="code">messages</code>, <code class="code">text</code> nebo <code class="code">progress</code> nebo jsou |
| právě přeříkávány, tato nová zpráva priority <code class="code">notification</code> je zrušena. |
| </p> |
| <p>Tato priorita přerušuje sama sebe, takže když přijde najednou více zpráv s |
| prioritou <code class="code">notification</code>, přeříká se pouze poslední z nich. |
| </p> |
| <h4 class="subsubheading" id="Priority-progress"><span>Priority <code class="code">progress</code><a class="copiable-link" href="#Priority-progress"> ¶</a></span></h4> |
| |
| <p>Toto je speciální priorita pro zprávy, které přicházejí krátce po sobě a nesou |
| informaci o nějaké probíhající činnosti (např. <code class="code">Dokončeno 45%</code>). |
| </p> |
| <p>Kdyby nové zprávy přerušovaly ostatní (viz. priorita Notification), uživatel by |
| nemusel slyšet ani jednu zprávu do konce. |
| </p> |
| <p>Tato priorita se chová stejně jako <code class="code">notification</code> s výjimkou dvou věcí. |
| </p> |
| <ul class="itemize mark-bullet"> |
| <li>Zprávy této priority nepřerušují jedna druhou. Místo toho, pokud je zrovna |
| přeříkávána jiná zpráva této priority, nově příchozí zpráva je zahozena. |
| </li><li>Speech Dispatcher se snaží detekovat poslední zprávu v sérii příchozích zpráv a |
| zaručit její přeříkání (pro uživatele je důležité slyšet zprávu <code class="code">Completed |
| 100%</code>, aby věděl, že proces již skončil). Vždy, když ve frontě již nečeká |
| žádná nová zpráva této priority a poslední příchozí zpráva ještě nebyla |
| přeříkána, je její přeříkání vynuceno s prioritou <code class="code">message</code>. |
| </li></ul> |
| |
| <hr> |
| </div> |
| <div class="subsubsection-level-extent" id="Diagram-priorit"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#P_0159_00edklady-vyu_017eit_00ed-priorit" rel="next">Příklady využití priorit</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Typy-priorit" rel="prev">Priority Categories</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Model-priorit-zpr_00e1v" rel="up">Model priorit zpráv</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h4 class="subsubsection" id="Diagram-priorit-1"><span>2.1.1.2 Diagram priorit<a class="copiable-link" href="#Diagram-priorit-1"> ¶</a></span></h4> |
| |
| <img class="image" src="figures/priorities.png" alt="Speech Dispatcher architecture"> |
| |
| <hr> |
| </div> |
| <div class="subsubsection-level-extent" id="P_0159_00edklady-vyu_017eit_00ed-priorit"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Diagram-priorit" rel="prev">Diagram priorit</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Model-priorit-zpr_00e1v" rel="up">Model priorit zpráv</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h4 class="subsubsection" id="P_0159_00edklady-vyu_017eit_00ed-priorit-1"><span>2.1.1.3 Příklady využití priorit<a class="copiable-link" href="#P_0159_00edklady-vyu_017eit_00ed-priorit-1"> ¶</a></span></h4> |
| |
| <p>Příklady použití priority <code class="code">important</code> jsou: |
| </p> |
| <ul class="itemize mark-bullet"> |
| <li>chybové hlášky |
| </li><li>velmi důležité zprávy |
| </li><li>... |
| </li></ul> |
| |
| <p>Příklady použití priority <code class="code">message</code> jsou: |
| </p> |
| <ul class="itemize mark-bullet"> |
| <li>běžné zprávy programu |
| </li><li>varování |
| </li><li>... |
| </li></ul> |
| |
| <p>Příklady použití priority <code class="code">text</code> jsou: |
| </p> |
| <ul class="itemize mark-bullet"> |
| <li>text, na kterém uživatel pracuje |
| </li><li>předčítaný text |
| </li><li>položky menu |
| </li><li>... |
| </li></ul> |
| |
| <p>Příklady použití priority <code class="code">notification</code> jsou: |
| </p> |
| <ul class="itemize mark-bullet"> |
| <li>méně důležité informace |
| </li><li>písmenka při vkládání |
| </li><li>run-time nápověda |
| </li><li>... |
| </li></ul> |
| |
| <p>Příklady použití priority <code class="code">progress</code> jsou: |
| </p> |
| <ul class="itemize mark-bullet"> |
| <li>“dokončeno 15%”, “dokončeno 16%”, “dokončeno 17%” |
| </li><li>“Načítám zvuky”, “Načítám grafiku”, “Načítám ai”, ... |
| </li></ul> |
| |
| <hr> |
| </div> |
| </div> |
| <div class="subsection-level-extent" id="Historie-zpr_00e1v"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#V_00edce-v_00fdstupn_00edch-modul_016f" rel="next">Více výstupních modulů</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Model-priorit-zpr_00e1v" rel="prev">Model priorit zpráv</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Z_00e1kladn_00ed-funkce" rel="up">Základní funkce</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h4 class="subsection" id="Historie-zpr_00e1v-1"><span>2.1.2 Historie zpráv<a class="copiable-link" href="#Historie-zpr_00e1v-1"> ¶</a></span></h4> |
| <a class="index-entry-id" id="index-history"></a> |
| |
| <p>Pro nevidomé a zrakově postižené je dobrou vlastností, pokud mají možnost |
| nějakým jednoduchým klientem procházet historii vyslovených zpráv. |
| </p> |
| <p>Některé méně důležité zprávy jsou přijaty Speech Dispatcherem bez toho, aby |
| byly přeříkány, protože jsou potlačeny důležitějšími informacemi. To je |
| nedělitelná vlastnost každého řečového rozhraní, protože není možné podat v |
| řečovém výstupu tolik informací, kolik se jich vejde na obrazovku. To je jeden |
| z hlavních důvodů, proč je výhodné udržovat historii přijatých zpráv, aby se |
| mohl uživatel podívat, zda mu neušlo něco důležitého. |
| </p> |
| |
| <ul class="mini-toc"> |
| <li><a href="#P_0159_00edstupov_00e1-pr_00e1va">Access Rights</a></li> |
| </ul> |
| <hr> |
| <div class="subsubsection-level-extent" id="P_0159_00edstupov_00e1-pr_00e1va"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Historie-zpr_00e1v" rel="prev">Historie zpráv</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Historie-zpr_00e1v" rel="up">Historie zpráv</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h4 class="subsubsection" id="Access-Rights"><span>2.1.2.1 Access Rights<a class="copiable-link" href="#Access-Rights"> ¶</a></span></h4> |
| <a class="index-entry-id" id="index-access-rights"></a> |
| |
| <p>Aby bylo ochráněno soukromí uživatelů, Speech Dispatcher omezuje přístup k |
| historii na určitou podmnožinu přijatých zpráv. Platí následující pravidla: |
| </p> |
| <ul class="itemize mark-bullet"> |
| <li>Všechny zprávy přijaté od určitého klientského spojení jsou tomuto spojení |
| přístupny i v historii. |
| |
| </li><li>Všechny zprávy odeslané určitým uživatelem jsou tomuto uživateli přístupny i v |
| historii. |
| |
| </li><li><a class="index-entry-id" id="index-speechd-uzivatel"></a> |
| <a class="index-entry-id" id="index-speechd-skupina"></a> |
| Všechny zprávy zaslané uživatelem <code class="code">speechd</code> jsou přístupny všem uživatelům |
| na daném systému, pod kterým běží Speech Dispatcher ve skupině <code class="code">speechd</code>. |
| |
| </li><li>Žádné další zprávy nejsou přístupné. |
| </li></ul> |
| |
| <p>Dvě zprávy jsou považovány za identické jestliže jejich spojení pocházejí z |
| toho samého počítače, uživatelská jména jsou stejná a jejich identita může být |
| ověřena, jak je popsáno v <a class="ref" href="#Autentizace-u_017eivatel_016f">Autentizace uživatelů</a>. Pokud nemůže být |
| uživatelova identita ověřena, tento uživatel je považován za jiného než všichni |
| připojení nebo dříve připojení uživatelé. |
| </p> |
| <hr> |
| </div> |
| </div> |
| <div class="subsection-level-extent" id="V_00edce-v_00fdstupn_00edch-modul_016f"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#Autentizace-u_017eivatel_016f" rel="next">Autentizace uživatelů</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Historie-zpr_00e1v" rel="prev">Historie zpráv</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Z_00e1kladn_00ed-funkce" rel="up">Základní funkce</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h4 class="subsection" id="V_00edce-v_00fdstupn_00edch-modul_016f-1"><span>2.1.3 Více výstupních modulů<a class="copiable-link" href="#V_00edce-v_00fdstupn_00edch-modul_016f-1"> ¶</a></span></h4> |
| <a class="index-entry-id" id="index-vystupni-modul"></a> |
| <a class="index-entry-id" id="index-syntezatory"></a> |
| |
| <p>Speech Dispatcher podporuje souběžné používání více výstupních modulů. Pokud |
| tyto moduly poskytují dobrou synchronizaci, lze je při čtení zpráv kombinovat. |
| Pokud např. modul1 mluví anglicky a česky, zatímco modul2 mluví pouze německy, |
| tak pokud přijde nějaká zpráva v němčině, použije se modul2, zatímco pro |
| ostatní jazyky se použije modul1. Na druhé straně jazyk není jediným kritériem |
| pro takové rozhodnutí. Přesná pravidla pro výběr výstupního modulu mohou být |
| ovlivněna v konfiguračním souboru <samp class="file">speechd.conf</samp>. |
| </p> |
| <hr> |
| </div> |
| <div class="subsection-level-extent" id="Autentizace-u_017eivatel_016f"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#V_00edce-v_00fdstupn_00edch-modul_016f" rel="prev">Více výstupních modulů</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Z_00e1kladn_00ed-funkce" rel="up">Základní funkce</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h4 class="subsection" id="Autentizace-u_017eivatel_016f-1"><span>2.1.4 Autentizace uživatelů<a class="copiable-link" href="#Autentizace-u_017eivatel_016f-1"> ¶</a></span></h4> |
| <a class="index-entry-id" id="index-Identification-Protocol"></a> |
| <a class="index-entry-id" id="index-identd"></a> |
| <a class="index-entry-id" id="index-RFC-1413"></a> |
| |
| <p>NOTE: Na implementaci této vlastnosti se pracuje, ale současná verze ji |
| nepodporuje. |
| </p> |
| <p>Speech Dispatcher neposkytuje žádný explicitní autentizační mechanismus. K |
| ověření identity uživatelů používáme Identification Protocol definovaný v RFC |
| 1413. |
| </p> |
| <a class="index-entry-id" id="index-mapovani-uzivatelu"></a> |
| <p>V konfiguraci je možné specifikovat mapování uživatelů. To umožňuje jednat s |
| určitými uživateli jako s jedním a přidělit jim stejná práva (např. procházet |
| jejich <a class="ref" href="#Historie-zpr_00e1v">Historie zpráv</a>). |
| </p> |
| <hr> |
| </div> |
| </div> |
| <div class="section-level-extent" id="Spou_0161t_011bn_00ed"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#Konfigurace" rel="next">konfigurace</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Z_00e1kladn_00ed-funkce" rel="prev">Základní funkce</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#U_017eivatelsk_00e1-dokumentace" rel="up">Uživatelská dokumentace</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h3 class="section" id="Invoking"><span>2.2 Invoking<a class="copiable-link" href="#Invoking"> ¶</a></span></h3> |
| |
| <ul class="mini-toc"> |
| <li><a href="#Pot_0159ebn_00e1-privilegia">Potřebná privilegia</a></li> |
| <li><a href="#Volby-p_0159_00edkazov_00e9-_0159_00e1dky">Volby příkazové řádky</a></li> |
| </ul> |
| <div class="subsection-level-extent" id="Pot_0159ebn_00e1-privilegia"> |
| <h4 class="subsection"><span>2.2.1 Potřebná privilegia<a class="copiable-link" href="#Pot_0159ebn_00e1-privilegia"> ¶</a></span></h4> |
| |
| <p>Speech Dispatcher může být obecně spouštěn pod obyčejným uživatelem. Snažili |
| jsme se jej zabezpečit, jak jen to bylo možné, ale nejsme odborníky na |
| počítačovou bezpečnost a kód může obsahovat nebezpečné chyby. Nedoporučujeme |
| jej spouštět jako root nebo pod jiným vysoce privilegovaným uživatelem. |
| </p> |
| <p>Jediná omezení jsou tyto: |
| </p> |
| <ul class="itemize mark-bullet"> |
| <li>Speech Dispatcher vytváří PID file standardně ve |
| <samp class="file">/var/run/speech-dispatcher.pid</samp>, takže <samp class="file">/var/run/</samp> musí být danému |
| uživateli přístupné k zápisu. To může být změněno nastavením volby |
| <code class="code">pidpath</code> při volání skriptu <code class="code">./configure</code> při kompilaci. |
| </li><li>Když je zapnuto logování, výchozí cesta, kam Speech Dispatcher zapisuje svůj |
| log, je <samp class="file">/var/log/speech-dispatcher.log</samp>. To ale může být kdykoliv |
| přenastaveno v hlavním konfiguračním souboru. |
| </li></ul> |
| |
| </div> |
| <div class="subsection-level-extent" id="Volby-p_0159_00edkazov_00e9-_0159_00e1dky"> |
| <h4 class="subsection"><span>2.2.2 Volby příkazové řádky<a class="copiable-link" href="#Volby-p_0159_00edkazov_00e9-_0159_00e1dky"> ¶</a></span></h4> |
| |
| <p>Speech Dispatcher může být spuštěn s těmito volbami: |
| </p> |
| <p><code class="code">speech-dispatcher [-{d|s}] [-l {1|2|3|4|5}] [-p=port] | [-v] | [-h]</code> |
| </p> |
| <dl class="table"> |
| <dt><code class="code">-d or --run-daemon</code></dt> |
| <dd><p>Spustí program jako démona (běží v pozadí, odpojí se od terminálu, atd.) Toto |
| je výchozí chování. |
| </p> |
| </dd> |
| <dt><code class="code">-s or --run-single</code></dt> |
| <dd><p>Spustí program jako běžnou aplikaci běžící na popředí. |
| </p> |
| </dd> |
| <dt><code class="code">-l level or --log-level=level</code></dt> |
| <dd><p>Vybere požadovaný logovací úroveň. Logovací úroveň je číslo mezi 0 a 5 (0 |
| znamená neloguj nic, 5 znamená zapisuj téměř vše včetně zpracovávaného textu.) |
| Standardní je 3. See <a class="xref" href="#g_t_00darovn_011b-logov_00e1n_00ed">Úrovně logování</a>. |
| </p> |
| <p>Logovací úroveň 5 by neměla být používána k jiným účelům, než pro hledání chyb |
| a to pouze krátkodobě. Logy, které produkuje mohou narůst do obrovské |
| velikosti a obsahují text čtený uživateli nezávisle na různých přístupových |
| právech, jak platí pro historii. Spouštět server s touto úrovní logování tedy |
| může snadno vést k narušení soukromí. |
| </p> |
| </dd> |
| <dt><code class="code">-p or --port</code></dt> |
| <dd><p>Zadá port, na kterém by měl server čekat na klienty. Výchozí je 6560. |
| </p> |
| </dd> |
| <dt><code class="code">-v or --version</code></dt> |
| <dd><p>Vypíše informace o verzi Speech Dispatchera. Také oznámí základní informace o |
| copyrightu. |
| </p> |
| </dd> |
| <dt><code class="code">-h or --help</code></dt> |
| <dd><p>Vypíše nápovědu o volbách příkazové řádky, upozornění o copyrightu |
| a emailovou adresu pro zasílání oznámení o chybách. |
| </p></dd> |
| </dl> |
| |
| |
| <hr> |
| </div> |
| </div> |
| <div class="section-level-extent" id="Konfigurace"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Spou_0161t_011bn_00ed" rel="prev">Invoking</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#U_017eivatelsk_00e1-dokumentace" rel="up">Uživatelská dokumentace</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h3 class="section" id="konfigurace"><span>2.3 konfigurace<a class="copiable-link" href="#konfigurace"> ¶</a></span></h3> |
| <a class="index-entry-id" id="index-konfigurace"></a> |
| |
| <p>Speech Dispatcher může být konfigurován na několika různých úrovních. Jedna z |
| nich je nastavování globálních parametrů přes serverový konfigurační soubor. |
| Je zde i podpora pro konfiguraci specifickou pro určité klienty. |
| </p> |
| <p>Některé aplikace mají vlastní mechanismus nastavování voleb souvisejících s |
| řečovou syntézou. Pro detaily o těchto nastaveních se prosím podívejte do |
| dokumentace daného programu. |
| </p> |
| <p>Následující kapitoly se zabývají pouze konfigurací na straně serveru přes |
| konfigurační soubor. |
| </p> |
| |
| <ul class="mini-toc"> |
| <li><a href="#Syntaxe-konfigura_010dn_00edho-souboru">Syntaxe konfiguračního souboru</a></li> |
| <li><a href="#Volby-v-konfiguraci">Configuration options</a></li> |
| <li><a href="#Nastaven_00ed-v_00fdstupn_00edch-modul_016f">Output Modules Configuration</a></li> |
| <li><a href="#g_t_00darovn_011b-logov_00e1n_00ed">Úrovně logování</a></li> |
| </ul> |
| <hr> |
| <div class="subsection-level-extent" id="Syntaxe-konfigura_010dn_00edho-souboru"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#Volby-v-konfiguraci" rel="next">Configuration options</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Konfigurace" rel="prev">konfigurace</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Konfigurace" rel="up">konfigurace</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h4 class="subsection" id="Syntaxe-konfigura_010dn_00edho-souboru-1"><span>2.3.1 Syntaxe konfiguračního souboru<a class="copiable-link" href="#Syntaxe-konfigura_010dn_00edho-souboru-1"> ¶</a></span></h4> |
| |
| <p>Pro načítání konfigurace založené na textových souborech používáme knihovnu |
| DotConf, takže bude syntaxe nejspíš mnoha uživatelům povědomá. |
| </p> |
| <p>Každá z řetězcových konstant, pokud není uvedeno jinak, by měla být zakódována |
| v UTF-8. Jména voleb nepoužívají jiné znaky než standardní ASCII sadu omezenou |
| na znaky (<code class="code">a</code>, <code class="code">b</code>, ...), pomlčky (<code class="code">-</code>) a podtržítka <code class="code">_</code>. |
| </p> |
| <p>Komentáře a dočasně neaktivní volby začínají znakem <code class="code">#</code>. Pokud chcete |
| takovu volbu zapnout, stačí smazat znak komentáře a nastavit volbu na |
| požadovanou hodnotu. |
| </p><div class="example"> |
| <pre class="example-preformatted"># toto je komentar |
| # InactiveOption "tato volba je zatim vypnuta komentarem" |
| </pre></div> |
| |
| <p>Řetězce jsou uzavřeny v uvozovkách. |
| </p><div class="example"> |
| <pre class="example-preformatted">LogFile "/var/log/speech-dispatcher.log" |
| </pre></div> |
| |
| <p>Čísla jsou zapsána bez uvozovek. |
| </p><div class="example"> |
| <pre class="example-preformatted">Port 6560 |
| </pre></div> |
| |
| <p>Přepínače používají On (zapnuto) a Off (vypnuto). |
| </p><div class="example"> |
| <pre class="example-preformatted">Debug Off |
| </pre></div> |
| |
| <hr> |
| </div> |
| <div class="subsection-level-extent" id="Volby-v-konfiguraci"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#Nastaven_00ed-v_00fdstupn_00edch-modul_016f" rel="next">Output Modules Configuration</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Syntaxe-konfigura_010dn_00edho-souboru" rel="prev">Syntaxe konfiguračního souboru</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Konfigurace" rel="up">konfigurace</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h4 class="subsection" id="Configuration-options"><span>2.3.2 Configuration options<a class="copiable-link" href="#Configuration-options"> ¶</a></span></h4> |
| |
| <p>Všechny dostupné volby jsou zdokumentovány přímo v konfiguračním souboru a jsou |
| k nim uvedeny i příklady. Většina voleb je nastavena na výchozí hodnotu a |
| zakomentována. Pokud je chcete změnit, postačí modifikovat jejich hodnotu a |
| smazat symbol komentáře <code class="code">#</code>. |
| </p> |
| <hr> |
| </div> |
| <div class="subsection-level-extent" id="Nastaven_00ed-v_00fdstupn_00edch-modul_016f"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#g_t_00darovn_011b-logov_00e1n_00ed" rel="next">Úrovně logování</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Volby-v-konfiguraci" rel="prev">Configuration options</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Konfigurace" rel="up">konfigurace</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h4 class="subsection" id="Output-Modules-Configuration"><span>2.3.3 Output Modules Configuration<a class="copiable-link" href="#Output-Modules-Configuration"> ¶</a></span></h4> |
| |
| <p>Každý uživatel by si měl zapnout ve své konfiguraci alespoň jeden výstupní |
| modul, pokud chce, aby Speech Dispatcher produkoval nějaký zvukový výstup. |
| Když není načten žádný výstupní modul, Speech Dispatcher sice nastartuje, bude |
| komunikovat s klienty a logovat zprávy do historie, ale nebude produkovat žádný |
| zvuk. |
| </p> |
| <p>Každý výstupní modul je třeba do Speech Dispatchera natáhnout jednou řádkou |
| “AddModule” v <samp class="file">etc/speechd.conf</samp>. Navíc, každý výstupní modul má |
| přiřazen vlastní konfigurační soubor. |
| </p> |
| |
| <ul class="mini-toc"> |
| <li><a href="#Natahov_00e1n_00ed-modul_016f-ve-speechd_002econf">Natahování modulů ve speechd.conf</a></li> |
| <li><a href="#Konfigura_010dn_00ed-soubory-v_00fdstupn_00edch-modul_016f">Konfigurační soubory výstupních modulů</a></li> |
| <li><a href="#Konfigurace-generick_00e9ho-v_00fdstupn_00edho-modulu">Konfigurace generického výstupního modulu</a></li> |
| </ul> |
| <hr> |
| <div class="subsubsection-level-extent" id="Natahov_00e1n_00ed-modul_016f-ve-speechd_002econf"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#Konfigura_010dn_00ed-soubory-v_00fdstupn_00edch-modul_016f" rel="next">Konfigurační soubory výstupních modulů</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Nastaven_00ed-v_00fdstupn_00edch-modul_016f" rel="prev">Output Modules Configuration</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Nastaven_00ed-v_00fdstupn_00edch-modul_016f" rel="up">Output Modules Configuration</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h4 class="subsubsection" id="Natahov_00e1n_00ed-modul_016f-ve-speechd_002econf-1"><span>2.3.3.1 Natahování modulů ve speechd.conf<a class="copiable-link" href="#Natahov_00e1n_00ed-modul_016f-ve-speechd_002econf-1"> ¶</a></span></h4> |
| |
| <a class="anchor" id="AddModule"></a><p>Každý modul, který by se měl spustit při startu Speech |
| Dispatchera, musí být natažen příkazem <code class="code">AddModule</code> v konfiguraci. |
| Všimněte si, že lze natáhnout jeden binární modul vícekrát s různými |
| konfiguračními soubory a pod jinými jmény. To je užitečné hlavně pro |
| natahování generických výstupních modulů. See <a class="xref" href="#Konfigurace-generick_00e9ho-v_00fdstupn_00edho-modulu">Konfigurace generického výstupního modulu</a>. |
| </p> |
| <div class="example"> |
| <pre class="example-preformatted">AddModule "<var class="var">module_name</var>" "<var class="var">module_binary</var>" "<var class="var">module_config</var>" |
| </pre></div> |
| |
| <p><var class="var">module_name</var> je jméno daného výstupního modulu. |
| </p> |
| <p><var class="var">module_binary</var> je jméno binárního spustitelného souboru tohoto výstupního |
| modulu. To může být buď cesta absolutní nebo relativní k |
| <samp class="file">bin/speechd-modules/</samp>. |
| </p> |
| <p><var class="var">module_config</var> je soubor s konfigurací pro tento konkrétní výstupní modul. |
| Cesta může být absolutní i relativní k <samp class="file">etc/speech-dispatcher/modules/</samp>. |
| Tento parametr je volitelný (není třeba jej uvádět). |
| </p> |
| <hr> |
| </div> |
| <div class="subsubsection-level-extent" id="Konfigura_010dn_00ed-soubory-v_00fdstupn_00edch-modul_016f"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#Konfigurace-generick_00e9ho-v_00fdstupn_00edho-modulu" rel="next">Konfigurace generického výstupního modulu</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Natahov_00e1n_00ed-modul_016f-ve-speechd_002econf" rel="prev">Natahování modulů ve speechd.conf</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Nastaven_00ed-v_00fdstupn_00edch-modul_016f" rel="up">Output Modules Configuration</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h4 class="subsubsection" id="Konfigura_010dn_00ed-soubory-v_00fdstupn_00edch-modul_016f-1"><span>2.3.3.2 Konfigurační soubory výstupních modulů<a class="copiable-link" href="#Konfigura_010dn_00ed-soubory-v_00fdstupn_00edch-modul_016f-1"> ¶</a></span></h4> |
| |
| <p>Každý výstupní modul je odlišný a proto má odlišné volby v konfiguraci. Prosím |
| prostudujte si komentáře v daném konfiguračním souboru. Zde je popsáno pouze |
| několik voleb, které jsou pro některé výstupní moduly společné. |
| </p> |
| <dl class="table"> |
| <dt><code class="code">AddVoice "<var class="var">language</var>" "<var class="var">symbolicname</var>" "<var class="var">name</var>"</code></dt> |
| <dd><a class="anchor" id="AddVoice"></a> |
| <p>Každý výstupní modul poskytuje nějaké hlasy a někdy dokonce podporuje různé |
| jazyky. Z toho důvodu byl zaveden společný mechanismus, kterým můžou být tyto |
| hlasy definovány v konfiguraci. Žádný modul ovšem není povinen tuto volbu |
| používat. Některé syntezátory, např. Festival, podporují symbolická jména |
| SSIP přímo, takže konfigurace konkrétních hlasů se provádí v syntezátoru |
| samotném. |
| </p> |
| <p>Každému definovanému hlasu odpovídá přesně jedna řádka <code class="code">AddVoice</code>. |
| </p> |
| <p><var class="var">language</var> je ISO kód jazyka tohoto hlasu (en, cs, de, en-US, ...) |
| </p> |
| <p><var class="var">symbolicname</var> je symbolické jméno, pod kterým chcete, aby byl tento hlas |
| dostupný. See <a class="xref" href="#Standardn_00ed-hlasy">Standardní hlasy</a>, pro seznam symbolických jmen, která můžete |
| použít. |
| </p> |
| <p><var class="var">name</var> je jméno specifické pro daný výstupní modul. Prosím podívejte se na |
| komentáře v příslušném konfiguračním souboru v sekci AddModule pro detailnější |
| informace. |
| </p> |
| <p>Např. definice, kterou v současnosti používáme pro Epos (generic) vypadá |
| takto: |
| </p> |
| <div class="example"> |
| <pre class="example-preformatted"> AddVoice "cs" "male1" "kadlec" |
| AddVoice "sk" "male1" "bob" |
| </pre></div> |
| |
| </dd> |
| <dt><code class="code">GenericDelimiters "<var class="var">delimiters</var>", GenericMaxChunkLength <var class="var">length</var></code></dt> |
| <dd> |
| <p>Často se výstupní modul nesnaží vysyntetizovat celý příchozí text najednou, ale |
| místo toho jej nejprve rozřeže na menší kousky (věty, části vět) a ty potom |
| postupně odesílá na syntézu. Tento přístup, využívaný některými výstupními |
| moduly, je mnohem rychlejší, ale na druhé straně zase limituje schopnost |
| syntetizéru poskytnout dobrou intonaci. |
| </p> |
| <p>Z toho důvodu máte obyčejně možnost zkonfigurovat si na jakých znacích |
| (<var class="var">delimiters</var>) by se měl text rozdělit na menší části (pokud jsou |
| následovány nějakým whitespace znakem). Druhá volba (<var class="var">length</var>) udává, po |
| kolika znacích by se měl text násilně rozdělit, pokud nebyl nalezen žádný |
| delimiter. |
| </p> |
| <p>Pokud tato dvě pravidla zpřísníte, dostanete lepší rychlost, ale vzdáte se |
| určité části kvality intonace. Takže například pro pomalejší počítače |
| doporučujeme do <var class="var">delimiters</var> vložit i čárku (,), aby byl text rozdělen i na |
| částech věty, zatímco na rychlejších počítačích je lepší tam čárku nedávat, |
| takže do syntetizéru vždy dorazí celá souvětí. |
| </p> |
| <p>To samé platí o <code class="code">MaxChunkLength</code>. Pro rychlejší počítače |
| je lepší nastavit větší hodnotu. |
| </p> |
| <p>Například výchozí hodnoty ve výstupním modulu pro Festival jsou: |
| </p> |
| <div class="example"> |
| <pre class="example-preformatted"> FestivalMaxChunkLength 300 |
| FestivalDelimiters ".?!;,:" |
| </pre></div> |
| |
| <p>Výstupní modul se může také rozhodnout dělit věty na delimiters pouze pokud ty |
| jsou následovány mezerou. Takže například “file123.tmp” by rozděleno nebylo, |
| ale věta “The horse raced around the fence, that was lately painted green, |
| fell.” by rozdělena byla (to je mimochodem velmi zajímavá věta). |
| </p></dd> |
| </dl> |
| |
| <hr> |
| </div> |
| <div class="subsubsection-level-extent" id="Konfigurace-generick_00e9ho-v_00fdstupn_00edho-modulu"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Konfigura_010dn_00ed-soubory-v_00fdstupn_00edch-modul_016f" rel="prev">Konfigurační soubory výstupních modulů</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Nastaven_00ed-v_00fdstupn_00edch-modul_016f" rel="up">Output Modules Configuration</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h4 class="subsubsection" id="Konfigurace-generick_00e9ho-v_00fdstupn_00edho-modulu-1"><span>2.3.3.3 Konfigurace generického výstupního modulu<a class="copiable-link" href="#Konfigurace-generick_00e9ho-v_00fdstupn_00edho-modulu-1"> ¶</a></span></h4> |
| |
| <p>Generický výstupní modul uživatelům dovoluje jednoduše si napsat vlastní |
| jednoduchý výstupní modul pro syntetizéry, které mají rozhraní ve formě |
| jednoduchého řádkového klienta, pouze modifikací konfiguračního souboru. Tímto |
| způsobem nemusí psát žádný specifický kód v C a uživatelé si mohou přidávat |
| podporu pro výstupní zařízení i když neumí programovat. See <a class="xref" href="#AddModule">AddModule</a>. |
| </p> |
| <p>Klíčová část každého generického výstupního modulu je definice řetězce, který |
| se má spouštět. |
| </p> |
| <dl class="first-defvr def-block"> |
| <dt class="defvr def-line" id="index-GenericExecuteSynth"><span class="category-def">Konfigurace generického modulu: </span><span><strong class="def-name">GenericExecuteSynth</strong> <var class="def-var-arguments">"<var class="var">execution_string</var>"</var><a class="copiable-link" href="#index-GenericExecuteSynth"> ¶</a></span></dt> |
| <dd> |
| <p><code class="code">execution_string</code> je příkaz, který by měl být zavolán v shellu, když je |
| potřeba něco říct. Ve skutečnosti to může být více jak jeden příkaz, dohromady |
| zřetězené operátorem <code class="code">&&</code>. Když bude výstupní modul chtít přeříkávání |
| zprávy zastavit, zašle těmto procesům signál KILL, takže je důležité, aby |
| použité příkazy po obdržení KILL okamžitě přestaly mluvit. (Na většině |
| GNU/Linuxových systémů má tuto vlastnost utilita <code class="code">play</code>) |
| </p> |
| <p>V <code class="code">execution_string</code> můžete využít těchto proměnných, které budou |
| nahrazeny požadovanými hodnotami, než bude příkaz vykonán. |
| </p> |
| <ul class="itemize mark-bullet"> |
| <li><code class="code">$DATA</code> |
| Text, který by měl být přeříkán. Znaky řetězce, které by nějak interferovali |
| se zpracováním v bashi budou automaticky nahrazeny odpovídajícími escape |
| sekvencemi. Asi bude ale nutné uvést kolem této proměnné uvozovky |
| (např. takto: <code class="code">\"$DATA\"</code>). |
| </li><li><code class="code">$LANGUAGE</code> |
| Identifikační řetězec jazyka (ten je definován pomocí GenericLanguage). |
| </li><li><code class="code">$VOICE</code> |
| Identifikační řetězec hlasu (ten je definován pomocí AddVoice). |
| </li><li><code class="code">$PITCH</code> |
| Požadovaná výška hlasu (desetinné číslo definované v GenericPitchAdd a v |
| GenericPitchMultiply) |
| </li><li><code class="code">$RATE</code> |
| Požadovaná rychlost hlasu (desetinné číslo definované v GenericRateAdd a v |
| GenericRateMultiply) |
| </li></ul> |
| |
| <p>Tady je příklad z <samp class="file">etc/speech-dispatcher/modules/epos-generic.conf</samp> |
| </p><div class="example"> |
| <pre class="example-preformatted">GenericExecuteSynth \ |
| "epos-say -o --language $LANGUAGE --voice $VOICE --init_f $PITCH --init_t $RATE \ |
| \"$DATA\" | sed -e s+unknown.*$++ >/tmp/epos-said.wav && play /tmp/epos-said.wav >/dev/null" |
| </pre></div> |
| </dd></dl> |
| |
| <dl class="first-defvr def-block"> |
| <dt class="defvr def-line" id="index-AddVoice"><span class="category-def">Konfigurace generického modulu: </span><span><strong class="def-name">AddVoice</strong> <var class="def-var-arguments">"<var class="var">language</var>" "<var class="var">symbolicname</var>" "<var class="var">name</var>"</var><a class="copiable-link" href="#index-AddVoice"> ¶</a></span></dt> |
| <dd><p>See <a class="xref" href="#AddVoice">AddVoice</a>. |
| </p></dd></dl> |
| |
| <dl class="first-defvr def-block"> |
| <dt class="defvr def-line" id="index-GenericLanguage"><span class="category-def">Konfigurace generického modulu: </span><span><strong class="def-name">GenericLanguage</strong> <var class="def-var-arguments">"iso-code" "string-subst"</var><a class="copiable-link" href="#index-GenericLanguage"> ¶</a></span></dt> |
| <dd> |
| <p>Definuje, jaký řetězec <code class="code">string-subst</code> by měl být nahrazen za <code class="code">$LANGUAGE</code> |
| pro daný <code class="code">iso-code</code> ISO kód jazyka. |
| </p> |
| <p>Opět příklad z Epos generic: |
| </p><div class="example"> |
| <pre class="example-preformatted">GenericLanguage "en-US" "english-US" |
| GenericLanguage "cs" "czech" |
| GenericLanguage "sk" "slovak" |
| </pre></div> |
| </dd></dl> |
| |
| <dl class="first-defvr def-block"> |
| <dt class="defvr def-line" id="index-GenericRateAdd"><span class="category-def">Konfigurace generického modulu: </span><span><strong class="def-name">GenericRateAdd</strong> <var class="def-var-arguments"><var class="var">num</var></var><a class="copiable-link" href="#index-GenericRateAdd"> ¶</a></span></dt> |
| </dl> |
| <dl class="first-defvr def-block"> |
| <dt class="defvr def-line" id="index-GenericRateMultiply"><span class="category-def">Konfigurace generického modulu: </span><span><strong class="def-name">GenericRateMultiply</strong> <var class="def-var-arguments"><var class="var">num</var></var><a class="copiable-link" href="#index-GenericRateMultiply"> ¶</a></span></dt> |
| </dl> |
| <dl class="first-defvr def-block"> |
| <dt class="defvr def-line" id="index-GenericPitchAdd"><span class="category-def">Konfigurace generického modulu: </span><span><strong class="def-name">GenericPitchAdd</strong> <var class="def-var-arguments"><var class="var">num</var></var><a class="copiable-link" href="#index-GenericPitchAdd"> ¶</a></span></dt> |
| </dl> |
| <dl class="first-defvr def-block"> |
| <dt class="defvr def-line" id="index-GenericPitchMultiply"><span class="category-def">Konfigurace generického modulu: </span><span><strong class="def-name">GenericPitchMultiply</strong> <var class="def-var-arguments"><var class="var">num</var></var><a class="copiable-link" href="#index-GenericPitchMultiply"> ¶</a></span></dt> |
| <dd><p>Tyto parametry nastavují konverzi pro výpočet rychlosti a výšky. |
| (<code class="code">$RATE</code> a <code class="code">$PITCH</code>). |
| </p> |
| <p>Výsledná rychlost (nebo výška) je dána následujícím vzorcem: |
| </p><div class="example"> |
| <pre class="example-preformatted"> (speechd_rate * GenericRateMultiply) + GenericRateAdd |
| </pre></div> |
| <p>kde speechd_rate je hodnota mezi -100 (nejnižší) a +100 (nejvyšší). Je třeba |
| definovat nějakou rozumnou konverzi pro daný syntetizér. |
| </p> |
| <p>(Hodnoty v GenericNěcoMultiply jsou vynásobeny stem, protože stávající verze |
| DotConfu nepodporuje desetinná čísla. Můžete tedy psát 0.85 jako 85 atd.) |
| </p></dd></dl> |
| |
| <hr> |
| </div> |
| </div> |
| <div class="subsection-level-extent" id="g_t_00darovn_011b-logov_00e1n_00ed"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#Nastaven_00ed-v_00fdstupn_00edch-modul_016f" rel="prev">Output Modules Configuration</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Konfigurace" rel="up">konfigurace</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h4 class="subsection" id="g_t_00darovn_011b-logov_00e1n_00ed-1"><span>2.3.4 Úrovně logování<a class="copiable-link" href="#g_t_00darovn_011b-logov_00e1n_00ed-1"> ¶</a></span></h4> |
| |
| <p>Ve Speech Dispatcheru je 6 různých úrovní logování. 0 znamená žádné logování, |
| zatímco 5 znamená vypisovat téměř všechny dostupné informace. |
| </p> |
| <ul class="itemize mark-bullet"> |
| <li>Úroveň 0 |
| <ul class="itemize mark-bullet"> |
| <li>Žádné informace |
| </li></ul> |
| |
| </li><li>Úroveň 1 |
| <ul class="itemize mark-bullet"> |
| <li>Informace o startu a vypínání. |
| </li></ul> |
| |
| </li><li>Úroveň 2 |
| <ul class="itemize mark-bullet"> |
| <li>Informace o chybách, které nastaly. |
| </li><li>Alokace a uvolňování zdrojů při startu a při exitu. |
| </li></ul> |
| |
| </li><li>Úroveň 3 |
| <ul class="itemize mark-bullet"> |
| <li>Informace o přijímání/odepírání/zavírání klientských spojení. |
| </li><li>Informace o neplatných SSIP příkazech od klientů. |
| </li></ul> |
| |
| </li><li>Úroveň 4 |
| <ul class="itemize mark-bullet"> |
| <li>Je vypisován každý přijatý příkaz |
| </li><li>Informace o zpracovávání vstupu |
| </li><li>Informace o ukládání zpráv do front |
| </li><li>Informace o fungování historie, zvukových ikon, atd. |
| facilities. |
| </li><li>Informace o práci vlákna speak() |
| </li></ul> |
| |
| </li><li>Úroveň 5 |
| (Ta slouží pouze pro ladící účely a může vypisovat opravdu *mnoho* |
| dat. Používejte opatrně.) |
| <ul class="itemize mark-bullet"> |
| <li>Všechna obdržená data jsou vypisována (zprávy od klientů) |
| </li><li>Ladící informace. |
| </li></ul> |
| </li></ul> |
| |
| <hr> |
| </div> |
| </div> |
| </div> |
| <div class="appendix-level-extent" id="Standardn_00ed-hlasy"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#GNU-General-Public-License" rel="next">GNU General Public License</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#g_t_00darovn_011b-logov_00e1n_00ed" rel="prev">Úrovně logování</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Top" rel="up">Speech Dispatcher</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h2 class="appendix" id="Standardn_00ed-hlasy-1"><span>Appendix A Standardní hlasy<a class="copiable-link" href="#Standardn_00ed-hlasy-1"> ¶</a></span></h2> |
| |
| <dl class="table"> |
| <dt><code class="code">MALE1</code></dt> |
| <dt><code class="code">MALE2</code></dt> |
| <dt><code class="code">MALE3</code></dt> |
| <dt><code class="code">FEMALE1</code></dt> |
| <dt><code class="code">FEMALE2</code></dt> |
| <dt><code class="code">FEMALE3</code></dt> |
| <dt><code class="code">CHILD_MALE</code></dt> |
| <dt><code class="code">CHILD_FEMALE</code></dt> |
| </dl> |
| |
| <p>Skutečná dostupnost těchto hlasů není zaručena, ale příkaz <code class="code">SET SELF |
| VOICE</code> musí akceptovat jakýkoliv z nich. Pokud není daný hlas dostupný, je |
| mapován na jiný hlas výstupním modulem. |
| </p> |
| <hr> |
| </div> |
| <div class="appendix-level-extent" id="GNU-General-Public-License"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#GNU-Free-Documentation-License" rel="next">GNU Free Documentation License</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#U_017eivatelsk_00e1-dokumentace" rel="prev">Uživatelská dokumentace</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Top" rel="up">Speech Dispatcher</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h2 class="appendix" id="GNU-General-Public-License-1"><span>Appendix B GNU General Public License<a class="copiable-link" href="#GNU-General-Public-License-1"> ¶</a></span></h2> |
| <div class="center">Version 2, June 1991 |
| </div><a class="index-entry-id" id="index-GPL_002c-GNU-General-Public-License"></a> |
| |
| <div class="center">Version 2, June 1991 |
| </div> |
| |
| <div class="display"> |
| <pre class="display-preformatted">Copyright © 1989, 1991 Free Software Foundation, Inc. |
| 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA |
| |
| Everyone is permitted to copy and distribute verbatim copies |
| of this license document, but changing it is not allowed. |
| </pre></div> |
| |
| <h3 class="heading" id="Preamble"><span>Preamble<a class="copiable-link" href="#Preamble"> ¶</a></span></h3> |
| |
| <p>The licenses for most software are designed to take away your |
| freedom to share and change it. By contrast, the GNU General Public |
| License is intended to guarantee your freedom to share and change free |
| software—to make sure the software is free for all its users. This |
| General Public License applies to most of the Free Software |
| Foundation’s software and to any other program whose authors commit to |
| using it. (Some other Free Software Foundation software is covered by |
| the GNU Lesser General Public License instead.) You can apply it to |
| your programs, too. |
| </p> |
| <p>When we speak of free software, we are referring to freedom, not |
| price. Our General Public Licenses are designed to make sure that you |
| have the freedom to distribute copies of free software (and charge for |
| this service if you wish), that you receive source code or can get it |
| if you want it, that you can change the software or use pieces of it |
| in new free programs; and that you know you can do these things. |
| </p> |
| <p>To protect your rights, we need to make restrictions that forbid |
| anyone to deny you these rights or to ask you to surrender the rights. |
| These restrictions translate to certain responsibilities for you if you |
| distribute copies of the software, or if you modify it. |
| </p> |
| <p>For example, if you distribute copies of such a program, whether |
| gratis or for a fee, you must give the recipients all the rights that |
| you have. You must make sure that they, too, receive or can get the |
| source code. And you must show them these terms so they know their |
| rights. |
| </p> |
| <p>We protect your rights with two steps: (1) copyright the software, and |
| (2) offer you this license which gives you legal permission to copy, |
| distribute and/or modify the software. |
| </p> |
| <p>Also, for each author’s protection and ours, we want to make certain |
| that everyone understands that there is no warranty for this free |
| software. If the software is modified by someone else and passed on, we |
| want its recipients to know that what they have is not the original, so |
| that any problems introduced by others will not reflect on the original |
| authors’ reputations. |
| </p> |
| <p>Finally, any free program is threatened constantly by software |
| patents. We wish to avoid the danger that redistributors of a free |
| program will individually obtain patent licenses, in effect making the |
| program proprietary. To prevent this, we have made it clear that any |
| patent must be licensed for everyone’s free use or not licensed at all. |
| </p> |
| <p>The precise terms and conditions for copying, distribution and |
| modification follow. |
| </p> |
| <h3 class="heading" id="TERMS-AND-CONDITIONS-FOR-COPYING_002c-DISTRIBUTION-AND-MODIFICATION"><span>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION<a class="copiable-link" href="#TERMS-AND-CONDITIONS-FOR-COPYING_002c-DISTRIBUTION-AND-MODIFICATION"> ¶</a></span></h3> |
| |
| <ol class="enumerate" start="0"> |
| <li> This License applies to any program or other work which contains |
| a notice placed by the copyright holder saying it may be distributed |
| under the terms of this General Public License. The “Program”, below, |
| refers to any such program or work, and a “work based on the Program” |
| means either the Program or any derivative work under copyright law: |
| that is to say, a work containing the Program or a portion of it, |
| either verbatim or with modifications and/or translated into another |
| language. (Hereinafter, translation is included without limitation in |
| the term “modification”.) Each licensee is addressed as “you”. |
| |
| <p>Activities other than copying, distribution and modification are not |
| covered by this License; they are outside its scope. The act of |
| running the Program is not restricted, and the output from the Program |
| is covered only if its contents constitute a work based on the |
| Program (independent of having been made by running the Program). |
| Whether that is true depends on what the Program does. |
| </p> |
| </li><li> You may copy and distribute verbatim copies of the Program’s |
| source code as you receive it, in any medium, provided that you |
| conspicuously and appropriately publish on each copy an appropriate |
| copyright notice and disclaimer of warranty; keep intact all the |
| notices that refer to this License and to the absence of any warranty; |
| and give any other recipients of the Program a copy of this License |
| along with the Program. |
| |
| <p>You may charge a fee for the physical act of transferring a copy, and |
| you may at your option offer warranty protection in exchange for a fee. |
| </p> |
| </li><li> You may modify your copy or copies of the Program or any portion |
| of it, thus forming a work based on the Program, and copy and |
| distribute such modifications or work under the terms of Section 1 |
| above, provided that you also meet all of these conditions: |
| |
| <ol class="enumerate" type="a" start="1"> |
| <li> You must cause the modified files to carry prominent notices |
| stating that you changed the files and the date of any change. |
| |
| </li><li> You must cause any work that you distribute or publish, that in |
| whole or in part contains or is derived from the Program or any |
| part thereof, to be licensed as a whole at no charge to all third |
| parties under the terms of this License. |
| |
| </li><li> If the modified program normally reads commands interactively |
| when run, you must cause it, when started running for such |
| interactive use in the most ordinary way, to print or display an |
| announcement including an appropriate copyright notice and a |
| notice that there is no warranty (or else, saying that you provide |
| a warranty) and that users may redistribute the program under |
| these conditions, and telling the user how to view a copy of this |
| License. (Exception: if the Program itself is interactive but |
| does not normally print such an announcement, your work based on |
| the Program is not required to print an announcement.) |
| </li></ol> |
| |
| <p>These requirements apply to the modified work as a whole. If |
| identifiable sections of that work are not derived from the Program, |
| and can be reasonably considered independent and separate works in |
| themselves, then this License, and its terms, do not apply to those |
| sections when you distribute them as separate works. But when you |
| distribute the same sections as part of a whole which is a work based |
| on the Program, the distribution of the whole must be on the terms of |
| this License, whose permissions for other licensees extend to the |
| entire whole, and thus to each and every part regardless of who wrote it. |
| </p> |
| <p>Thus, it is not the intent of this section to claim rights or contest |
| your rights to work written entirely by you; rather, the intent is to |
| exercise the right to control the distribution of derivative or |
| collective works based on the Program. |
| </p> |
| <p>In addition, mere aggregation of another work not based on the Program |
| with the Program (or with a work based on the Program) on a volume of |
| a storage or distribution medium does not bring the other work under |
| the scope of this License. |
| </p> |
| </li><li> You may copy and distribute the Program (or a work based on it, |
| under Section 2) in object code or executable form under the terms of |
| Sections 1 and 2 above provided that you also do one of the following: |
| |
| <ol class="enumerate" type="a" start="1"> |
| <li> Accompany it with the complete corresponding machine-readable |
| source code, which must be distributed under the terms of Sections |
| 1 and 2 above on a medium customarily used for software interchange; or, |
| |
| </li><li> Accompany it with a written offer, valid for at least three |
| years, to give any third party, for a charge no more than your |
| cost of physically performing source distribution, a complete |
| machine-readable copy of the corresponding source code, to be |
| distributed under the terms of Sections 1 and 2 above on a medium |
| customarily used for software interchange; or, |
| |
| </li><li> Accompany it with the information you received as to the offer |
| to distribute corresponding source code. (This alternative is |
| allowed only for noncommercial distribution and only if you |
| received the program in object code or executable form with such |
| an offer, in accord with Subsection b above.) |
| </li></ol> |
| |
| <p>The source code for a work means the preferred form of the work for |
| making modifications to it. For an executable work, complete source |
| code means all the source code for all modules it contains, plus any |
| associated interface definition files, plus the scripts used to |
| control compilation and installation of the executable. However, as a |
| special exception, the source code distributed need not include |
| anything that is normally distributed (in either source or binary |
| form) with the major components (compiler, kernel, and so on) of the |
| operating system on which the executable runs, unless that component |
| itself accompanies the executable. |
| </p> |
| <p>If distribution of executable or object code is made by offering |
| access to copy from a designated place, then offering equivalent |
| access to copy the source code from the same place counts as |
| distribution of the source code, even though third parties are not |
| compelled to copy the source along with the object code. |
| </p> |
| </li><li> You may not copy, modify, sublicense, or distribute the Program |
| except as expressly provided under this License. Any attempt |
| otherwise to copy, modify, sublicense or distribute the Program is |
| void, and will automatically terminate your rights under this License. |
| However, parties who have received copies, or rights, from you under |
| this License will not have their licenses terminated so long as such |
| parties remain in full compliance. |
| |
| </li><li> You are not required to accept this License, since you have not |
| signed it. However, nothing else grants you permission to modify or |
| distribute the Program or its derivative works. These actions are |
| prohibited by law if you do not accept this License. Therefore, by |
| modifying or distributing the Program (or any work based on the |
| Program), you indicate your acceptance of this License to do so, and |
| all its terms and conditions for copying, distributing or modifying |
| the Program or works based on it. |
| |
| </li><li> Each time you redistribute the Program (or any work based on the |
| Program), the recipient automatically receives a license from the |
| original licensor to copy, distribute or modify the Program subject to |
| these terms and conditions. You may not impose any further |
| restrictions on the recipients’ exercise of the rights granted herein. |
| You are not responsible for enforcing compliance by third parties to |
| this License. |
| |
| </li><li> If, as a consequence of a court judgment or allegation of patent |
| infringement or for any other reason (not limited to patent issues), |
| conditions are imposed on you (whether by court order, agreement or |
| otherwise) that contradict the conditions of this License, they do not |
| excuse you from the conditions of this License. If you cannot |
| distribute so as to satisfy simultaneously your obligations under this |
| License and any other pertinent obligations, then as a consequence you |
| may not distribute the Program at all. For example, if a patent |
| license would not permit royalty-free redistribution of the Program by |
| all those who receive copies directly or indirectly through you, then |
| the only way you could satisfy both it and this License would be to |
| refrain entirely from distribution of the Program. |
| |
| <p>If any portion of this section is held invalid or unenforceable under |
| any particular circumstance, the balance of the section is intended to |
| apply and the section as a whole is intended to apply in other |
| circumstances. |
| </p> |
| <p>It is not the purpose of this section to induce you to infringe any |
| patents or other property right claims or to contest validity of any |
| such claims; this section has the sole purpose of protecting the |
| integrity of the free software distribution system, which is |
| implemented by public license practices. Many people have made |
| generous contributions to the wide range of software distributed |
| through that system in reliance on consistent application of that |
| system; it is up to the author/donor to decide if he or she is willing |
| to distribute software through any other system and a licensee cannot |
| impose that choice. |
| </p> |
| <p>This section is intended to make thoroughly clear what is believed to |
| be a consequence of the rest of this License. |
| </p> |
| </li><li> If the distribution and/or use of the Program is restricted in |
| certain countries either by patents or by copyrighted interfaces, the |
| original copyright holder who places the Program under this License |
| may add an explicit geographical distribution limitation excluding |
| those countries, so that distribution is permitted only in or among |
| countries not thus excluded. In such case, this License incorporates |
| the limitation as if written in the body of this License. |
| |
| </li><li> The Free Software Foundation may publish revised and/or new versions |
| of the General Public License from time to time. Such new versions will |
| be similar in spirit to the present version, but may differ in detail to |
| address new problems or concerns. |
| |
| <p>Each version is given a distinguishing version number. If the Program |
| specifies a version number of this License which applies to it and “any |
| later version”, you have the option of following the terms and conditions |
| either of that version or of any later version published by the Free |
| Software Foundation. If the Program does not specify a version number of |
| this License, you may choose any version ever published by the Free Software |
| Foundation. |
| </p> |
| </li><li> If you wish to incorporate parts of the Program into other free |
| programs whose distribution conditions are different, write to the author |
| to ask for permission. For software which is copyrighted by the Free |
| Software Foundation, write to the Free Software Foundation; we sometimes |
| make exceptions for this. Our decision will be guided by the two goals |
| of preserving the free status of all derivatives of our free software and |
| of promoting the sharing and reuse of software generally. |
| |
| |
| </li><li> BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
| FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
| OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
| PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
| OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
| TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
| PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
| REPAIR OR CORRECTION. |
| |
| </li><li> IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
| WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
| REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
| INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
| OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
| TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
| YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
| PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
| POSSIBILITY OF SUCH DAMAGES. |
| </li></ol> |
| |
| |
| <h3 class="heading" id="Appendix_003a-How-to-Apply-These-Terms-to-Your-New-Programs"><span>Appendix: How to Apply These Terms to Your New Programs<a class="copiable-link" href="#Appendix_003a-How-to-Apply-These-Terms-to-Your-New-Programs"> ¶</a></span></h3> |
| |
| <p>If you develop a new program, and you want it to be of the greatest |
| possible use to the public, the best way to achieve this is to make it |
| free software which everyone can redistribute and change under these terms. |
| </p> |
| <p>To do so, attach the following notices to the program. It is safest |
| to attach them to the start of each source file to most effectively |
| convey the exclusion of warranty; and each file should have at least |
| the “copyright” line and a pointer to where the full notice is found. |
| </p> |
| <div class="example smallexample"> |
| <pre class="example-preformatted"><var class="var">one line to give the program's name and a brief idea of what it does.</var> |
| Copyright (C) <var class="var">yyyy</var> <var class="var">name of author</var> |
| |
| This program is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 2 of the License, or |
| (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with this program. If not, see <https://www.gnu.org/licenses/>. |
| </pre></div> |
| |
| <p>Also add information on how to contact you by electronic and paper mail. |
| </p> |
| <p>If the program is interactive, make it output a short notice like this |
| when it starts in an interactive mode: |
| </p> |
| <div class="example smallexample"> |
| <pre class="example-preformatted">Gnomovision version 69, Copyright (C) <var class="var">year</var> <var class="var">name of author</var> |
| Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
| This is free software, and you are welcome to redistribute it |
| under certain conditions; type `show c' for details. |
| </pre></div> |
| |
| <p>The hypothetical commands ‘<samp class="samp">show w</samp>’ and ‘<samp class="samp">show c</samp>’ should show |
| the appropriate parts of the General Public License. Of course, the |
| commands you use may be called something other than ‘<samp class="samp">show w</samp>’ and |
| ‘<samp class="samp">show c</samp>’; they could even be mouse-clicks or menu items—whatever |
| suits your program. |
| </p> |
| <p>You should also get your employer (if you work as a programmer) or your |
| school, if any, to sign a “copyright disclaimer” for the program, if |
| necessary. Here is a sample; alter the names: |
| </p> |
| <div class="example"> |
| <pre class="example-preformatted">Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
| `Gnomovision' (which makes passes at compilers) written by James Hacker. |
| |
| <var class="var">signature of Ty Coon</var>, 1 April 1989 |
| Ty Coon, President of Vice |
| </pre></div> |
| |
| <p>This General Public License does not permit incorporating your program into |
| proprietary programs. If your program is a subroutine library, you may |
| consider it more useful to permit linking proprietary applications with the |
| library. If this is what you want to do, use the GNU Lesser General |
| Public License instead of this License. |
| </p> |
| |
| <hr> |
| </div> |
| <div class="appendix-level-extent" id="GNU-Free-Documentation-License"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Next: </span><span class="nav-link"><a href="#Index-of-Concepts" rel="next">Index of Concepts</a></span></span>, <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#GNU-General-Public-License" rel="prev">GNU General Public License</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Top" rel="up">Speech Dispatcher</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h2 class="appendix" id="GNU-Free-Documentation-License-1"><span>Appendix C GNU Free Documentation License<a class="copiable-link" href="#GNU-Free-Documentation-License-1"> ¶</a></span></h2> |
| <div class="center">Version 1.2, November 2002 |
| </div><a class="index-entry-id" id="index-FDL_002c-GNU-Free-Documentation-License"></a> |
| |
| <div class="display"> |
| <pre class="display-preformatted">Copyright © 2000,2001,2002 Free Software Foundation, Inc. |
| 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA |
| |
| Everyone is permitted to copy and distribute verbatim copies |
| of this license document, but changing it is not allowed. |
| </pre></div> |
| |
| <ol class="enumerate" start="0"> |
| <li> PREAMBLE |
| |
| <p>The purpose of this License is to make a manual, textbook, or other |
| functional and useful document <em class="dfn">free</em> in the sense of freedom: to |
| assure everyone the effective freedom to copy and redistribute it, |
| with or without modifying it, either commercially or noncommercially. |
| Secondarily, this License preserves for the author and publisher a way |
| to get credit for their work, while not being considered responsible |
| for modifications made by others. |
| </p> |
| <p>This License is a kind of “copyleft”, which means that derivative |
| works of the document must themselves be free in the same sense. It |
| complements the GNU General Public License, which is a copyleft |
| license designed for free software. |
| </p> |
| <p>We have designed this License in order to use it for manuals for free |
| software, because free software needs free documentation: a free |
| program should come with manuals providing the same freedoms that the |
| software does. But this License is not limited to software manuals; |
| it can be used for any textual work, regardless of subject matter or |
| whether it is published as a printed book. We recommend this License |
| principally for works whose purpose is instruction or reference. |
| </p> |
| </li><li> APPLICABILITY AND DEFINITIONS |
| |
| <p>This License applies to any manual or other work, in any medium, that |
| contains a notice placed by the copyright holder saying it can be |
| distributed under the terms of this License. Such a notice grants a |
| world-wide, royalty-free license, unlimited in duration, to use that |
| work under the conditions stated herein. The “Document”, below, |
| refers to any such manual or work. Any member of the public is a |
| licensee, and is addressed as “you”. You accept the license if you |
| copy, modify or distribute the work in a way requiring permission |
| under copyright law. |
| </p> |
| <p>A “Modified Version” of the Document means any work containing the |
| Document or a portion of it, either copied verbatim, or with |
| modifications and/or translated into another language. |
| </p> |
| <p>A “Secondary Section” is a named appendix or a front-matter section |
| of the Document that deals exclusively with the relationship of the |
| publishers or authors of the Document to the Document’s overall |
| subject (or to related matters) and contains nothing that could fall |
| directly within that overall subject. (Thus, if the Document is in |
| part a textbook of mathematics, a Secondary Section may not explain |
| any mathematics.) The relationship could be a matter of historical |
| connection with the subject or with related matters, or of legal, |
| commercial, philosophical, ethical or political position regarding |
| them. |
| </p> |
| <p>The “Invariant Sections” are certain Secondary Sections whose titles |
| are designated, as being those of Invariant Sections, in the notice |
| that says that the Document is released under this License. If a |
| section does not fit the above definition of Secondary then it is not |
| allowed to be designated as Invariant. The Document may contain zero |
| Invariant Sections. If the Document does not identify any Invariant |
| Sections then there are none. |
| </p> |
| <p>The “Cover Texts” are certain short passages of text that are listed, |
| as Front-Cover Texts or Back-Cover Texts, in the notice that says that |
| the Document is released under this License. A Front-Cover Text may |
| be at most 5 words, and a Back-Cover Text may be at most 25 words. |
| </p> |
| <p>A “Transparent” copy of the Document means a machine-readable copy, |
| represented in a format whose specification is available to the |
| general public, that is suitable for revising the document |
| straightforwardly with generic text editors or (for images composed of |
| pixels) generic paint programs or (for drawings) some widely available |
| drawing editor, and that is suitable for input to text formatters or |
| for automatic translation to a variety of formats suitable for input |
| to text formatters. A copy made in an otherwise Transparent file |
| format whose markup, or absence of markup, has been arranged to thwart |
| or discourage subsequent modification by readers is not Transparent. |
| An image format is not Transparent if used for any substantial amount |
| of text. A copy that is not “Transparent” is called “Opaque”. |
| </p> |
| <p>Examples of suitable formats for Transparent copies include plain |
| <small class="sc">ASCII</small> without markup, Texinfo input format, LaTeX input |
| format, <abbr class="acronym">SGML</abbr> or <abbr class="acronym">XML</abbr> using a publicly available |
| <abbr class="acronym">DTD</abbr>, and standard-conforming simple <abbr class="acronym">HTML</abbr>, |
| PostScript or <abbr class="acronym">PDF</abbr> designed for human modification. Examples |
| of transparent image formats include <abbr class="acronym">PNG</abbr>, <abbr class="acronym">XCF</abbr> and |
| <abbr class="acronym">JPG</abbr>. Opaque formats include proprietary formats that can be |
| read and edited only by proprietary word processors, <abbr class="acronym">SGML</abbr> or |
| <abbr class="acronym">XML</abbr> for which the <abbr class="acronym">DTD</abbr> and/or processing tools are |
| not generally available, and the machine-generated <abbr class="acronym">HTML</abbr>, |
| PostScript or <abbr class="acronym">PDF</abbr> produced by some word processors for |
| output purposes only. |
| </p> |
| <p>The “Title Page” means, for a printed book, the title page itself, |
| plus such following pages as are needed to hold, legibly, the material |
| this License requires to appear in the title page. For works in |
| formats which do not have any title page as such, “Title Page” means |
| the text near the most prominent appearance of the work’s title, |
| preceding the beginning of the body of the text. |
| </p> |
| <p>A section “Entitled XYZ” means a named subunit of the Document whose |
| title either is precisely XYZ or contains XYZ in parentheses following |
| text that translates XYZ in another language. (Here XYZ stands for a |
| specific section name mentioned below, such as “Acknowledgements”, |
| “Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” |
| of such a section when you modify the Document means that it remains a |
| section “Entitled XYZ” according to this definition. |
| </p> |
| <p>The Document may include Warranty Disclaimers next to the notice which |
| states that this License applies to the Document. These Warranty |
| Disclaimers are considered to be included by reference in this |
| License, but only as regards disclaiming warranties: any other |
| implication that these Warranty Disclaimers may have is void and has |
| no effect on the meaning of this License. |
| </p> |
| </li><li> VERBATIM COPYING |
| |
| <p>You may copy and distribute the Document in any medium, either |
| commercially or noncommercially, provided that this License, the |
| copyright notices, and the license notice saying this License applies |
| to the Document are reproduced in all copies, and that you add no other |
| conditions whatsoever to those of this License. You may not use |
| technical measures to obstruct or control the reading or further |
| copying of the copies you make or distribute. However, you may accept |
| compensation in exchange for copies. If you distribute a large enough |
| number of copies you must also follow the conditions in section 3. |
| </p> |
| <p>You may also lend copies, under the same conditions stated above, and |
| you may publicly display copies. |
| </p> |
| </li><li> COPYING IN QUANTITY |
| |
| <p>If you publish printed copies (or copies in media that commonly have |
| printed covers) of the Document, numbering more than 100, and the |
| Document’s license notice requires Cover Texts, you must enclose the |
| copies in covers that carry, clearly and legibly, all these Cover |
| Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on |
| the back cover. Both covers must also clearly and legibly identify |
| you as the publisher of these copies. The front cover must present |
| the full title with all words of the title equally prominent and |
| visible. You may add other material on the covers in addition. |
| Copying with changes limited to the covers, as long as they preserve |
| the title of the Document and satisfy these conditions, can be treated |
| as verbatim copying in other respects. |
| </p> |
| <p>If the required texts for either cover are too voluminous to fit |
| legibly, you should put the first ones listed (as many as fit |
| reasonably) on the actual cover, and continue the rest onto adjacent |
| pages. |
| </p> |
| <p>If you publish or distribute Opaque copies of the Document numbering |
| more than 100, you must either include a machine-readable Transparent |
| copy along with each Opaque copy, or state in or with each Opaque copy |
| a computer-network location from which the general network-using |
| public has access to download using public-standard network protocols |
| a complete Transparent copy of the Document, free of added material. |
| If you use the latter option, you must take reasonably prudent steps, |
| when you begin distribution of Opaque copies in quantity, to ensure |
| that this Transparent copy will remain thus accessible at the stated |
| location until at least one year after the last time you distribute an |
| Opaque copy (directly or through your agents or retailers) of that |
| edition to the public. |
| </p> |
| <p>It is requested, but not required, that you contact the authors of the |
| Document well before redistributing any large number of copies, to give |
| them a chance to provide you with an updated version of the Document. |
| </p> |
| </li><li> MODIFICATIONS |
| |
| <p>You may copy and distribute a Modified Version of the Document under |
| the conditions of sections 2 and 3 above, provided that you release |
| the Modified Version under precisely this License, with the Modified |
| Version filling the role of the Document, thus licensing distribution |
| and modification of the Modified Version to whoever possesses a copy |
| of it. In addition, you must do these things in the Modified Version: |
| </p> |
| <ol class="enumerate" type="A" start="1"> |
| <li> Use in the Title Page (and on the covers, if any) a title distinct |
| from that of the Document, and from those of previous versions |
| (which should, if there were any, be listed in the History section |
| of the Document). You may use the same title as a previous version |
| if the original publisher of that version gives permission. |
| |
| </li><li> List on the Title Page, as authors, one or more persons or entities |
| responsible for authorship of the modifications in the Modified |
| Version, together with at least five of the principal authors of the |
| Document (all of its principal authors, if it has fewer than five), |
| unless they release you from this requirement. |
| |
| </li><li> State on the Title page the name of the publisher of the |
| Modified Version, as the publisher. |
| |
| </li><li> Preserve all the copyright notices of the Document. |
| |
| </li><li> Add an appropriate copyright notice for your modifications |
| adjacent to the other copyright notices. |
| |
| </li><li> Include, immediately after the copyright notices, a license notice |
| giving the public permission to use the Modified Version under the |
| terms of this License, in the form shown in the Addendum below. |
| |
| </li><li> Preserve in that license notice the full lists of Invariant Sections |
| and required Cover Texts given in the Document’s license notice. |
| |
| </li><li> Include an unaltered copy of this License. |
| |
| </li><li> Preserve the section Entitled “History”, Preserve its Title, and add |
| to it an item stating at least the title, year, new authors, and |
| publisher of the Modified Version as given on the Title Page. If |
| there is no section Entitled “History” in the Document, create one |
| stating the title, year, authors, and publisher of the Document as |
| given on its Title Page, then add an item describing the Modified |
| Version as stated in the previous sentence. |
| |
| </li><li> Preserve the network location, if any, given in the Document for |
| public access to a Transparent copy of the Document, and likewise |
| the network locations given in the Document for previous versions |
| it was based on. These may be placed in the “History” section. |
| You may omit a network location for a work that was published at |
| least four years before the Document itself, or if the original |
| publisher of the version it refers to gives permission. |
| |
| </li><li> For any section Entitled “Acknowledgements” or “Dedications”, Preserve |
| the Title of the section, and preserve in the section all the |
| substance and tone of each of the contributor acknowledgements and/or |
| dedications given therein. |
| |
| </li><li> Preserve all the Invariant Sections of the Document, |
| unaltered in their text and in their titles. Section numbers |
| or the equivalent are not considered part of the section titles. |
| |
| </li><li> Delete any section Entitled “Endorsements”. Such a section |
| may not be included in the Modified Version. |
| |
| </li><li> Do not retitle any existing section to be Entitled “Endorsements” or |
| to conflict in title with any Invariant Section. |
| |
| </li><li> Preserve any Warranty Disclaimers. |
| </li></ol> |
| |
| <p>If the Modified Version includes new front-matter sections or |
| appendices that qualify as Secondary Sections and contain no material |
| copied from the Document, you may at your option designate some or all |
| of these sections as invariant. To do this, add their titles to the |
| list of Invariant Sections in the Modified Version’s license notice. |
| These titles must be distinct from any other section titles. |
| </p> |
| <p>You may add a section Entitled “Endorsements”, provided it contains |
| nothing but endorsements of your Modified Version by various |
| parties—for example, statements of peer review or that the text has |
| been approved by an organization as the authoritative definition of a |
| standard. |
| </p> |
| <p>You may add a passage of up to five words as a Front-Cover Text, and a |
| passage of up to 25 words as a Back-Cover Text, to the end of the list |
| of Cover Texts in the Modified Version. Only one passage of |
| Front-Cover Text and one of Back-Cover Text may be added by (or |
| through arrangements made by) any one entity. If the Document already |
| includes a cover text for the same cover, previously added by you or |
| by arrangement made by the same entity you are acting on behalf of, |
| you may not add another; but you may replace the old one, on explicit |
| permission from the previous publisher that added the old one. |
| </p> |
| <p>The author(s) and publisher(s) of the Document do not by this License |
| give permission to use their names for publicity for or to assert or |
| imply endorsement of any Modified Version. |
| </p> |
| </li><li> COMBINING DOCUMENTS |
| |
| <p>You may combine the Document with other documents released under this |
| License, under the terms defined in section 4 above for modified |
| versions, provided that you include in the combination all of the |
| Invariant Sections of all of the original documents, unmodified, and |
| list them all as Invariant Sections of your combined work in its |
| license notice, and that you preserve all their Warranty Disclaimers. |
| </p> |
| <p>The combined work need only contain one copy of this License, and |
| multiple identical Invariant Sections may be replaced with a single |
| copy. If there are multiple Invariant Sections with the same name but |
| different contents, make the title of each such section unique by |
| adding at the end of it, in parentheses, the name of the original |
| author or publisher of that section if known, or else a unique number. |
| Make the same adjustment to the section titles in the list of |
| Invariant Sections in the license notice of the combined work. |
| </p> |
| <p>In the combination, you must combine any sections Entitled “History” |
| in the various original documents, forming one section Entitled |
| “History”; likewise combine any sections Entitled “Acknowledgements”, |
| and any sections Entitled “Dedications”. You must delete all |
| sections Entitled “Endorsements.” |
| </p> |
| </li><li> COLLECTIONS OF DOCUMENTS |
| |
| <p>You may make a collection consisting of the Document and other documents |
| released under this License, and replace the individual copies of this |
| License in the various documents with a single copy that is included in |
| the collection, provided that you follow the rules of this License for |
| verbatim copying of each of the documents in all other respects. |
| </p> |
| <p>You may extract a single document from such a collection, and distribute |
| it individually under this License, provided you insert a copy of this |
| License into the extracted document, and follow this License in all |
| other respects regarding verbatim copying of that document. |
| </p> |
| </li><li> AGGREGATION WITH INDEPENDENT WORKS |
| |
| <p>A compilation of the Document or its derivatives with other separate |
| and independent documents or works, in or on a volume of a storage or |
| distribution medium, is called an “aggregate” if the copyright |
| resulting from the compilation is not used to limit the legal rights |
| of the compilation’s users beyond what the individual works permit. |
| When the Document is included in an aggregate, this License does not |
| apply to the other works in the aggregate which are not themselves |
| derivative works of the Document. |
| </p> |
| <p>If the Cover Text requirement of section 3 is applicable to these |
| copies of the Document, then if the Document is less than one half of |
| the entire aggregate, the Document’s Cover Texts may be placed on |
| covers that bracket the Document within the aggregate, or the |
| electronic equivalent of covers if the Document is in electronic form. |
| Otherwise they must appear on printed covers that bracket the whole |
| aggregate. |
| </p> |
| </li><li> TRANSLATION |
| |
| <p>Translation is considered a kind of modification, so you may |
| distribute translations of the Document under the terms of section 4. |
| Replacing Invariant Sections with translations requires special |
| permission from their copyright holders, but you may include |
| translations of some or all Invariant Sections in addition to the |
| original versions of these Invariant Sections. You may include a |
| translation of this License, and all the license notices in the |
| Document, and any Warranty Disclaimers, provided that you also include |
| the original English version of this License and the original versions |
| of those notices and disclaimers. In case of a disagreement between |
| the translation and the original version of this License or a notice |
| or disclaimer, the original version will prevail. |
| </p> |
| <p>If a section in the Document is Entitled “Acknowledgements”, |
| “Dedications”, or “History”, the requirement (section 4) to Preserve |
| its Title (section 1) will typically require changing the actual |
| title. |
| </p> |
| </li><li> TERMINATION |
| |
| <p>You may not copy, modify, sublicense, or distribute the Document except |
| as expressly provided for under this License. Any other attempt to |
| copy, modify, sublicense or distribute the Document is void, and will |
| automatically terminate your rights under this License. However, |
| parties who have received copies, or rights, from you under this |
| License will not have their licenses terminated so long as such |
| parties remain in full compliance. |
| </p> |
| </li><li> FUTURE REVISIONS OF THIS LICENSE |
| |
| <p>The Free Software Foundation may publish new, revised versions |
| of the GNU Free Documentation License from time to time. Such new |
| versions will be similar in spirit to the present version, but may |
| differ in detail to address new problems or concerns. See |
| <a class="uref" href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>. |
| </p> |
| <p>Each version of the License is given a distinguishing version number. |
| If the Document specifies that a particular numbered version of this |
| License “or any later version” applies to it, you have the option of |
| following the terms and conditions either of that specified version or |
| of any later version that has been published (not as a draft) by the |
| Free Software Foundation. If the Document does not specify a version |
| number of this License, you may choose any version ever published (not |
| as a draft) by the Free Software Foundation. |
| </p></li></ol> |
| |
| <ul class="mini-toc"> |
| <li><a href="#ADDENDUM_003a-How-to-use-this-License-for-your-documents">ADDENDUM: How to use this License for your documents</a></li> |
| </ul> |
| <div class="appendixsec-level-extent" id="ADDENDUM_003a-How-to-use-this-License-for-your-documents"> |
| <h3 class="appendixsec"><span>C.1 ADDENDUM: How to use this License for your documents<a class="copiable-link" href="#ADDENDUM_003a-How-to-use-this-License-for-your-documents"> ¶</a></span></h3> |
| |
| <p>To use this License in a document you have written, include a copy of |
| the License in the document and put the following copyright and |
| license notices just after the title page: |
| </p> |
| <div class="example smallexample"> |
| <div class="group"><pre class="example-preformatted"> Copyright (C) <var class="var">year</var> <var class="var">your name</var>. |
| Permission is granted to copy, distribute and/or modify this document |
| under the terms of the GNU Free Documentation License, Version 1.2 |
| or any later version published by the Free Software Foundation; |
| with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. |
| A copy of the license is included in the section entitled ``GNU |
| Free Documentation License''. |
| </pre></div></div> |
| |
| <p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, |
| replace the “with...Texts.” line with this: |
| </p> |
| <div class="example smallexample"> |
| <div class="group"><pre class="example-preformatted"> with the Invariant Sections being <var class="var">list their titles</var>, with |
| the Front-Cover Texts being <var class="var">list</var>, and with the Back-Cover Texts |
| being <var class="var">list</var>. |
| </pre></div></div> |
| |
| <p>If you have Invariant Sections without Cover Texts, or some other |
| combination of the three, merge those two alternatives to suit the |
| situation. |
| </p> |
| <p>If your document contains nontrivial examples of program code, we |
| recommend releasing these examples in parallel under your choice of |
| free software license, such as the GNU General Public License, |
| to permit their use in free software. |
| </p> |
| |
| |
| <hr> |
| </div> |
| </div> |
| <div class="unnumbered-level-extent" id="Index-of-Concepts"> |
| <p class="nav-panel"> |
| <span class="nav-button"><span class="nav-label">Previous: </span><span class="nav-link"><a href="#GNU-Free-Documentation-License" rel="prev">GNU Free Documentation License</a></span></span>, <span class="nav-button"><span class="nav-label">Up: </span><span class="nav-link"><a href="#Top" rel="up">Speech Dispatcher</a></span></span><span class="nav-button"> </span><span class="nav-button">[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</span><span class="nav-button">[<a href="#Index-of-Concepts" title="Index" rel="index">Index</a>]</span></p> |
| <h2 class="unnumbered" id="Index-of-Concepts-1"><span>Index of Concepts<a class="copiable-link" href="#Index-of-Concepts-1"> ¶</a></span></h2> |
| |
| <a class="index-entry-id" id="index-tail-recursion"></a> |
| <div class="printindex cp-printindex"> |
| <table class="index-letters-header-printindex cp-letters-header-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-A"><b>A</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-D"><b>D</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-F"><b>F</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-G"><b>G</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-H"><b>H</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-I"><b>I</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-K"><b>K</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-M"><b>M</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-O"><b>O</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-P"><b>P</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-R"><b>R</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-S"><b>S</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-T"><b>T</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-V"><b>V</b></a> |
| |
| </td></tr></table> |
| <table class="index-entries-printindex cp-entries-printindex"> |
| <tr><td colspan="2"><hr></td></tr> |
| <tr><th class="index-letter-header-printindex cp-letter-header-printindex" colspan="2" id="Index-of-Concepts_cp_letter-A">A</th></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-access-rights">access rights</a></td><td class="printindex-index-section"><a href="#P_0159_00edstupov_00e1-pr_00e1va">Přístupová práva</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-AddVoice"><code>AddVoice</code></a></td><td class="printindex-index-section"><a href="#Konfigurace-generick_00e9ho-v_00fdstupn_00edho-modulu">Konfigurace generického výstupního modulu</a></td></tr> |
| <tr><td colspan="2"><hr></td></tr> |
| <tr><th class="index-letter-header-printindex cp-letter-header-printindex" colspan="2" id="Index-of-Concepts_cp_letter-D">D</th></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-Design">Design</a></td><td class="printindex-index-section"><a href="#Z_00e1kladn_00ed-design">Základní design</a></td></tr> |
| <tr><td colspan="2"><hr></td></tr> |
| <tr><th class="index-letter-header-printindex cp-letter-header-printindex" colspan="2" id="Index-of-Concepts_cp_letter-F">F</th></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-FDL_002c-GNU-Free-Documentation-License">FDL, GNU Free Documentation License</a></td><td class="printindex-index-section"><a href="#GNU-Free-Documentation-License">GNU Free Documentation License</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-Filosofie">Filosofie</a></td><td class="printindex-index-section"><a href="#Motivace">Motivace</a></td></tr> |
| <tr><td colspan="2"><hr></td></tr> |
| <tr><th class="index-letter-header-printindex cp-letter-header-printindex" colspan="2" id="Index-of-Concepts_cp_letter-G">G</th></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-GenericExecuteSynth"><code>GenericExecuteSynth</code></a></td><td class="printindex-index-section"><a href="#Konfigurace-generick_00e9ho-v_00fdstupn_00edho-modulu">Konfigurace generického výstupního modulu</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-GenericLanguage"><code>GenericLanguage</code></a></td><td class="printindex-index-section"><a href="#Konfigurace-generick_00e9ho-v_00fdstupn_00edho-modulu">Konfigurace generického výstupního modulu</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-GenericPitchAdd"><code>GenericPitchAdd</code></a></td><td class="printindex-index-section"><a href="#Konfigurace-generick_00e9ho-v_00fdstupn_00edho-modulu">Konfigurace generického výstupního modulu</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-GenericPitchMultiply"><code>GenericPitchMultiply</code></a></td><td class="printindex-index-section"><a href="#Konfigurace-generick_00e9ho-v_00fdstupn_00edho-modulu">Konfigurace generického výstupního modulu</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-GenericRateAdd"><code>GenericRateAdd</code></a></td><td class="printindex-index-section"><a href="#Konfigurace-generick_00e9ho-v_00fdstupn_00edho-modulu">Konfigurace generického výstupního modulu</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-GenericRateMultiply"><code>GenericRateMultiply</code></a></td><td class="printindex-index-section"><a href="#Konfigurace-generick_00e9ho-v_00fdstupn_00edho-modulu">Konfigurace generického výstupního modulu</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-GPL_002c-GNU-General-Public-License">GPL, GNU General Public License</a></td><td class="printindex-index-section"><a href="#GNU-General-Public-License">GNU General Public License</a></td></tr> |
| <tr><td colspan="2"><hr></td></tr> |
| <tr><th class="index-letter-header-printindex cp-letter-header-printindex" colspan="2" id="Index-of-Concepts_cp_letter-H">H</th></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-history">history</a></td><td class="printindex-index-section"><a href="#Historie-zpr_00e1v">Historie zpráv</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-Hlavni-myslenky_002c-Motivace">Hlavní myšlenky, Motivace</a></td><td class="printindex-index-section"><a href="#Motivace">Motivace</a></td></tr> |
| <tr><td colspan="2"><hr></td></tr> |
| <tr><th class="index-letter-header-printindex cp-letter-header-printindex" colspan="2" id="Index-of-Concepts_cp_letter-I">I</th></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-identd">identd</a></td><td class="printindex-index-section"><a href="#Autentizace-u_017eivatel_016f">Autentizace uživatelů</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-Identification-Protocol">Identification Protocol</a></td><td class="printindex-index-section"><a href="#Autentizace-u_017eivatel_016f">Autentizace uživatelů</a></td></tr> |
| <tr><td colspan="2"><hr></td></tr> |
| <tr><th class="index-letter-header-printindex cp-letter-header-printindex" colspan="2" id="Index-of-Concepts_cp_letter-K">K</th></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-konfigurace">konfigurace</a></td><td class="printindex-index-section"><a href="#Konfigurace">Konfigurace</a></td></tr> |
| <tr><td colspan="2"><hr></td></tr> |
| <tr><th class="index-letter-header-printindex cp-letter-header-printindex" colspan="2" id="Index-of-Concepts_cp_letter-M">M</th></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-mapovani-uzivatelu">mapování uživatelů</a></td><td class="printindex-index-section"><a href="#Autentizace-u_017eivatel_016f">Autentizace uživatelů</a></td></tr> |
| <tr><td colspan="2"><hr></td></tr> |
| <tr><th class="index-letter-header-printindex cp-letter-header-printindex" colspan="2" id="Index-of-Concepts_cp_letter-O">O</th></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-Ostatni-programy">Ostatní programy</a></td><td class="printindex-index-section"><a href="#Sou_010dasn_00fd-stav">Současný stav</a></td></tr> |
| <tr><td colspan="2"><hr></td></tr> |
| <tr><th class="index-letter-header-printindex cp-letter-header-printindex" colspan="2" id="Index-of-Concepts_cp_letter-P">P</th></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-Priorita-important">Priorita important</a></td><td class="printindex-index-section"><a href="#Typy-priorit">Typy priorit</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-Priorita-message">Priorita message</a></td><td class="printindex-index-section"><a href="#Typy-priorit">Typy priorit</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-Priorita-notification">Priorita notification</a></td><td class="printindex-index-section"><a href="#Typy-priorit">Typy priorit</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-Priorita-text">Priorita text</a></td><td class="printindex-index-section"><a href="#Typy-priorit">Typy priorit</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-priority">priority</a></td><td class="printindex-index-section"><a href="#Model-priorit-zpr_00e1v">Model priorit zpráv</a></td></tr> |
| <tr><td colspan="2"><hr></td></tr> |
| <tr><th class="index-letter-header-printindex cp-letter-header-printindex" colspan="2" id="Index-of-Concepts_cp_letter-R">R</th></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-RFC-1413">RFC 1413</a></td><td class="printindex-index-section"><a href="#Autentizace-u_017eivatel_016f">Autentizace uživatelů</a></td></tr> |
| <tr><td colspan="2"><hr></td></tr> |
| <tr><th class="index-letter-header-printindex cp-letter-header-printindex" colspan="2" id="Index-of-Concepts_cp_letter-S">S</th></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-speechd-skupina"><code class="code">speechd</code> skupina</a></td><td class="printindex-index-section"><a href="#P_0159_00edstupov_00e1-pr_00e1va">Přístupová práva</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-speechd-uzivatel"><code class="code">speechd</code> uživatel</a></td><td class="printindex-index-section"><a href="#P_0159_00edstupov_00e1-pr_00e1va">Přístupová práva</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-Syntetizery">Syntetizéry</a></td><td class="printindex-index-section"><a href="#Sou_010dasn_00fd-stav">Současný stav</a></td></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-syntezatory">syntezátory</a></td><td class="printindex-index-section"><a href="#V_00edce-v_00fdstupn_00edch-modul_016f">Více výstupních modulů</a></td></tr> |
| <tr><td colspan="2"><hr></td></tr> |
| <tr><th class="index-letter-header-printindex cp-letter-header-printindex" colspan="2" id="Index-of-Concepts_cp_letter-T">T</th></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-tail-recursion">tail recursion</a></td><td class="printindex-index-section"><a href="#Index-of-Concepts">Index of Concepts</a></td></tr> |
| <tr><td colspan="2"><hr></td></tr> |
| <tr><th class="index-letter-header-printindex cp-letter-header-printindex" colspan="2" id="Index-of-Concepts_cp_letter-V">V</th></tr> |
| <tr><td class="printindex-index-entry"><a href="#index-vystupni-modul">výstupní modul</a></td><td class="printindex-index-section"><a href="#V_00edce-v_00fdstupn_00edch-modul_016f">Více výstupních modulů</a></td></tr> |
| <tr><td colspan="2"><hr></td></tr> |
| </table> |
| <table class="index-letters-footer-printindex cp-letters-footer-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-A"><b>A</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-D"><b>D</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-F"><b>F</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-G"><b>G</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-H"><b>H</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-I"><b>I</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-K"><b>K</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-M"><b>M</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-O"><b>O</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-P"><b>P</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-R"><b>R</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-S"><b>S</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-T"><b>T</b></a> |
| |
| <a class="summary-letter-printindex" href="#Index-of-Concepts_cp_letter-V"><b>V</b></a> |
| |
| </td></tr></table> |
| </div> |
| |
| </div> |
| </div> |
| |
| |
| |
| </body> |
| </html> |