\chyph
\def\fontprefix{cs}
\input texinfo
@comment %**start of header
@setfilename speechd-el.cs.info
@documentlanguage cs
@documentencoding ISO-8859-2
@set VERSION 1.0
@settitle speechd-el @value{VERSION}
@syncodeindex fn cp
@syncodeindex ky cp
@syncodeindex vr cp
@comment %**end of header
@copying
Český překlad manuálu programu speechd-el, @value{VERSION}.

Copyright @copyright{} 2003, 2004 Brailcom, o.p.s.

@quotation
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, with no Front-Cover Texts and no Back-Cover Texts.
A copy of the license is included in the section entitled ``GNU Free
Documentation License.''
@end quotation

You can also (at your option) distribute this manual under the GNU
General Public License:

@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 3 of the License, or (at your
option) any later version.

A copy of the license is included in the section entitled ``GNU
General Public License''.
@end quotation
@end copying

@dircategory Sound
@dircategory Emacs
@direntry
* speechd-el cs: (speechd-el.cs).  Emacsové rozhraní ke Speech Dispatcher.
@end direntry

@titlepage
@title speechd-el
@subtitle pro verzi @value{VERSION}
@author Milan Zamazal
@author Brailcom, o.p.s.
@page
@vskip 0pt plus 1filll
@insertcopying
@end titlepage

@contents

@ifnottex
@node Top, Úvodem, (dir), (dir)
@top speechd-el

@insertcopying
@end ifnottex

@menu
* Úvodem::                      K@tie{}čemu je speechd-el a tento manuál?
* Uživatelská příručka::        Používání řečového výstupu Emacsu.
* Elispová knihovna::           Používání speechd-el v elispových programech.
* Kontaktní informace::         Oznamování chyb atd.

* Kopírování tohoto manuálu::   GNU Free Documentation License.
* Index::                       Všeobjímající index.
@end menu

@c ****************************************************************************

@node Úvodem, Uživatelská příručka, Top, Top
@chapter Úvodem
@cindex Speech Dispatcher

speechd-el je emacsový klient ke Speech Dispatcher.  Poskytuje
následující funkce:

@itemize @bullet
@item
@cindex SSIP
Elispovou knihovnu pro přístup ke Speech Dispatcher s@tie{}využitím
soketové komunikace založené na jeho komunikačním protokolu (SSIP).

@item
Podporu pro řečový výstup Emacsu, zaměřený zejména na prostředky
potřebné pro využívání Emacsu slepými a těžce zrakově postiženými
uživateli.
@end itemize

Klíčové rysy speechd-el jsou:
@cindex rysy

@itemize @bullet
@item
Podporu pro automatické mluvení, bez nutnosti úprav každé emacsové
funkce, kterou je potřeba rozmluvit.  Většina emacsových programů
z@tie{}distribuce Emacsu i@tie{}mimo ni získává řečový výstup okamžitě, bez
jakékoliv speciální podpory.

@item
Nejsou prováděny téměř žádné změny standardního chování Emacsu a
nedochází ke konfliktům s@tie{}uživatelskými nastaveními.

@item
Plná spolupráce se Speech Dispatcher.

@item
Malý rozsah kódu.
@end itemize

Manuál popisuje řečové uživatelské rozhraní, jak si toto rozhraní
přizpůsobit a rozšířit a elispovou knihovnu.  Doporučujeme, aby
uživatel byl částečně obeznámen se Speech Dispatcher na uživatelské
úrovni, ale není to nezbytné.

@c ****************************************************************************

@node Uživatelská příručka, Elispová knihovna, Úvodem, Top
@chapter Uživatelská příručka speechd-el

speechd-el umožňuje používat Emacs bez zobrazení na monitoru, pouze
jen s@tie{}řečovým výstupem.  Hlavní oblast využití je mezi slepci a
zrakově postiženými lidmi, nicméně řečový výstup může být užitečný
i@tie{}pro celou řadu dalších věcí, podle toho co kdo potřebuje.

Nejnovější verzi speechd-el si můžete stáhnout na
@url{http://www.freebsoft.org/pub/projects/speechd-el/}.

speechd-el používá pro řečový výstup Speech Dispatcher, takže abyste
vůbec nějaký řečový výstup slyšeli, potřebujete mít funkční instalaci
Speech Dispatcher.  Všechny informace o@tie{}Speech Dispatcher naleznete na
@url{http://www.freebsoft.org/speechd}.

@menu
* Instalace::                   Jak speechd-el nainstalovat.
* Spuštění řečového výstupu::   Jak jej rozmluvit.
* Příkazy::                     Jak jej používat.
* Konfigurace::                 Základní konfigurace.
* Pokročilá konfigurace::       Psaní vlastních reakcí na příkazy.
* Potíže::                      Když se speechd-el chová podivně.
* Tipy::                        Užitečné emacsové tipy.
* Oznamování chyb::             Chyby speechd-el a Speech Dispatcher.
@end menu

@node Instalace, Spuštění řečového výstupu, Uživatelská příručka, Uživatelská příručka
@section Instalace

speechd-el se nainstaluje následujícími kroky:

@enumerate
@item
Zkopírujte všechny @file{*.el} soubory z@tie{}distribučního balíku někam do
emacsových adresářů obsažených v@tie{}cestě vašeho Emacsu.

@item
Chcete-li, můžete si @file{*.el} soubory zkompilovat.  To
doporučujeme, protože speechd-el běží se zkompilovanými soubory
podstatně rychleji.  Kompilaci můžete provést příkazem

@example
make compile
@end example

Poté přiinstalujte zkompilované soubory do emacsové cesty ke zdrojovým
souborům speechd-el.

@item
Nainstalujte soubor @file{speechd-log-extractor} do některé
z@tie{}cest obsažených v@tie{}shellové proměnné PATH, například
do adresáře @file{/usr/local/bin/}.

@item
Do svého @file{~/.emacs} si přidejte následující řádek:

@lisp
(autoload 'speechd-speak "speechd-speak" nil t)
@end lisp
@end enumerate

Pro úspěšný provoz speechd-el je nutno mít nainstalované a spuštěné
Speech Dispatcher.  Doporučená je verze@tie{}0.5 nebo vyšší.

@node Spuštění řečového výstupu, Příkazy, Instalace, Uživatelská příručka
@section Spuštění řečového výstupu

Po instalaci @file{*.el} souborů a restartu Emacsu můžete
inicializovat řečový výstup prostřednictvím příkazu @kbd{M-x
speechd-speak}.  Chcete-li, aby se tak dělo automaticky při každém
startu Emacsu, přidejte si do svého @file{~/.emacs} následující
řádek, za dříve vložený řádek s@tie{}@code{autoload}:

@lisp
(speechd-speak)
@end lisp

@table @kbd
@item M-x speechd-speak
@findex speechd-speak
@kindex C-e C-s
Inicializuj Emacs pro řečový výstup a začni mluvit.

Prosím nezapomeňte, že abyste něco slyšeli, musíte mít korektně
nainstalováno Speech Dispatcher!

Po počátečním nastavení může být tento příkaz použit znovu, v@tie{}případě
potřeby restartu řečové podpory.  Zejména jej musíte spustit pokaždé,
když je restartováno Speech Dispatcher.

Je-li příkaz zavolán s@tie{}prefixovým argumentem, jsou před jeho
provedením nejprve uzavřena všechna spojení na Speech Dispatcher.  To
je užitečné v@tie{}případě, kdy potřebujete zresetovat parametry všech
spojení, viz @ref{Hlasy spojení}.

Po svém prvním zavolání se příkaz stane dostupným pod klávesou
@kbd{C-e C-s}.
@end table

@cindex vedlejší módy
Poté, co jsou provedena úvodní nastavení, je zapínání a vypínání
řečového výstupu řízeno vedlejšími módy speechd-speak a
global-speechd-speak.  Příkazy pro přepínání módů obvykle nejsou
používány přímo, můžete místo nich používat příkaz
@code{speechd-speak-toggle-speaking} (@pxref{Řídící příkazy}), ale
pokud je potřebujete, jsou k@tie{}dispozici.

@table @kbd
@item M-x speechd-speak-mode
@findex speechd-speak-mode
Zapni nebo vypni mluvení v@tie{}aktuálním bufferu.  Je-li příkaz zavolán
bez prefixového argumentu, přepne mluvící mód.  Nenulový prefixový
argument zapne mluvení, nulový prefixový argument jej vypne.

@item M-x global-speechd-speak-mode
@findex global-speechd-speak-mode
Zapni nebo vypni mluvení globálně.  Je-li příkaz zavolán
bez prefixového argumentu, přepne mluvící mód.  S@tie{}prefixovým
argumentem zapne mluvení právě v@tie{}případě, kdy je tento argument kladný.
@end table

@node Příkazy, Konfigurace, Spuštění řečového výstupu, Uživatelská příručka
@section Příkazy

Všechny základní příkazy speechd-el jsou dostupné pod společnou
prefixovou klávesou, kterou je implicitně @kbd{C-e} (tuto prefixovou
klávesu lze změnit, @pxref{Konfigurace}).  Jestliže je prefixová
klávesa v@tie{}konfliktu s@tie{}některým globálním příkazem Emacsu, původní
příkaz je dostupný dvojím stiskem prefixové klávesy.  Například
v@tie{}případě implicitního prefixu lze příkaz @code{end-of-line}, normálně
dostupný pod klávesou @kbd{C-e}, vyvolat klávesovou kombinací @kbd{C-e
C-e}.

@menu
* Příkazy pro čtení::             Čtení částí textu.
* Informující příkazy::           Informace o bufferu, módech, apod.
* Řídící příkazy::                Přerušení, nastavení rychlosti, apod.
* Příkazy nastavující parametry:: Modifikace řečového výstupu.
* Hláskování::                    Jak hláskovat určitý text.
* Ostatní příkazy::               Pomocné příkazy.
@end menu

@node Příkazy pro čtení, Informující příkazy, Příkazy, Příkazy
@subsection Příkazy pro čtení

@table @kbd
@item C-e l
@kindex C-e l
@findex speechd-speak-read-line
Přečti aktuální řádek (@code{speechd-speak-read-line}).
S@tie{}prefixovým argumentem přečti řádek jen od aktuální pozice
kurzoru do konce řádku.

@item C-e b
@kindex C-e b
@findex speechd-speak-read-buffer
Přečti aktuální buffer (@code{speechd-speak-read-buffer}).

@item C-e >
@kindex C-e >
@findex speechd-speak-read-rest-of-buffer
Přečti aktuální buffer od pozice kurzoru do konce bufferu
(@code{speechd-speak-read-rest-of-buffer}).

@item C-e o
@kindex C-e o
@findex speechd-speak-read-other-window
Přečti buffer v@tie{}jiném okně, je-li nějaké jiné okno otevřené
(@code{speechd-speak-read-other-window}).

@item C-e r
@kindex C-e r
@findex speechd-speak-read-region
Přečti aktuální oblast (@code{speechd-speak-read-region}).

@item C-e C-r
@kindex C-e C-r
@findex speechd-speak-read-rectangle
Přečti text v@tie{}obdélníkové oblasti (@code{speechd-speak-read-rectangle}).

@item C-e w
@kindex C-e w
@findex speechd-speak-read-word
Přečti nejbližší slovo za kurzorem (@code{speechd-speak-read-word}).

@item C-e .
@kindex C-e .
@findex speechd-speak-read-sentence
Přečti aktuální větu (@code{speechd-speak-read-sentence}).

@item C-e @{
@kindex C-e @{
@findex speechd-speak-read-paragraph
Přečti nejbližší odstavec za kurzorem (@code{speechd-speak-read-paragraph}).

@item C-e [
@kindex C-e [
@findex speechd-speak-read-page
Přečti nejbližší stránku za kurzorem (@code{speechd-speak-read-page}).

@item C-e '
@kindex C-e '
@findex speechd-speak-read-sexp
Přečti nejbližší symbolický výraz za kurzorem
(@code{speechd-speak-read-sexp}).

@item C-e c
@kindex C-e c
@findex speechd-speak-read-char
Přečti znak na pozici kurzoru (@code{speechd-speak-read-char}).

@item C-e C-n
@kindex C-e C-n
@findex speechd-speak-read-next-line
Přečti následující řádek (@code{speechd-speak-read-next-line}).

@item C-e C-p
@kindex C-e C-p
@findex speechd-speak-read-previous-line
Přečti předchozí řádek (@code{speechd-speak-read-previous-line}).

@item C-e m
@kindex C-e m
@findex speechd-speak-last-message
Přečti poslední zobrazené hlášení Emacsu (@code{speechd-speak-last-message}).

@item C-e RET
@cindex mode line
@kindex C-e RET
@findex speechd-speak-read-mode-line
Přečti mode line (@code{speechd-speak-read-mode-line}).  Poznámka:
Tento příkaz funguje jen v@tie{}Emacsu verze 21.4 nebo vyšší.

@item C-e i
@kindex C-e i
@findex speechd-speak-last-insertions
Přečti poslední přečtený vložený text
(@code{speechd-speak-last-insertions}).  To znamená text přečtený
v@tie{}automaticky mluvících bufferech, viz @xref{Automatické mluvení
bufferů}.
@end table

@cindex prompty požadující znak
@cindex read-char
Některé příkazy Emacsu vypisují prompt, po kterém čekají na zadaný
znak.  Typickým příkladem je příkaz @code{ispell-word}.  Pokud
zmeškáte předtím přečtený text, můžete pro jeho zopakování použít ve
znakovém promptu následující klávesové příkazy:

@table @kbd
@item C-e
@findex speechd-speak-last-message
Ten samý příkaz jako @kbd{C-e m} výše
(@code{speechd-speak-last-message}).

@item C-a
@findex speechd-speak-last-insertions
Ten samý příkaz jako @kbd{C-e i} výše
(@code{speechd-speak-last-insertions}).
@end table

Pokud se vám takové chování znakového promptu nezamlouvá, můžete jej
deaktivovat pomocí následující proměnné:

@vtable @code
@item speechd-speak-allow-prompt-commands
Je-li hodnotou proměnné něco jiného než @code{nil}, povol ve znakových
promptech výše uvedené klávesové příkazy.
@end vtable

@node Informující příkazy, Řídící příkazy, Příkazy pro čtení, Příkazy
@subsection Informující příkazy

@table @kbd
@item C-e C-i b
@findex speechd-speak-buffer-info
@cindex buffer
Přečti informace o@tie{}aktuálním bufferu
(@code{speechd-speak-buffer-info}).

@item C-e C-i f
@findex speechd-speak-frame-info
@cindex frame
Přečti informace o@tie{}aktuálním frame
(@code{speechd-speak-frame-info}).

@item C-e C-i h
@findex speechd-speak-header-line-info
@cindex header line
Přečti obsah header line (@code{speechd-speak-header-line-info}).
Poznámka: Tento příkaz funguje jen v@tie{}Emacsu verze 21.4 nebo vyšší.

@item C-e C-i m
@findex speechd-speak-mode-info
@cindex módy
Přečti informace o@tie{}aktuálním hlavním a vedlejším módu
(@code{speechd-speak-mode-info}).

@item C-e C-i c
@findex speechd-speak-coding-info
@cindex systémy kódování
Přečti informaci o@tie{}aktuálním systému kódování
(@code{speechd-speak-coding-info}).

@item C-e C-i i
@findex speechd-speak-input-method-info
@cindex vstupní metoda
Přečti informaci o@tie{}aktuální vstupní metodě
(@code{speechd-speak-input-method-info}).

@item C-e C-i p
@findex speechd-speak-process-info
@cindex proces
Přečti stav procesu asociovaného s@tie{}aktuálním bufferem
(@code{speechd-speak-process-info}).
@end table

@node Řídící příkazy, Příkazy nastavující parametry, Informující příkazy, Příkazy
@subsection Řídící příkazy

@table @kbd
@item C-e q
@kindex C-e q
@findex speechd-speak-toggle-speaking
@cindex ztišení
Globálně přepni mluvení (@code{speechd-speak-toggle-speaking}).  Při
vyvolání s@tie{}prefixovým argumentem přepni mluvení pouze v@tie{}aktuálním
bufferu.

@item C-e s
@kindex C-e s
@findex speechd-stop
@cindex zastavení
Zastav mluvení aktuální zprávy (@code{speechd-stop}).  Ostatní zprávy
ve frontě Speech Dispatcher budou normálně přemluveny.  Je-li příkaz
vyvolán s@tie{}prefixovým argumentem, zastav mluvení aktuální zprávy
u@tie{}všech klientů, nejen aktuálního spojení.

@item C-e x
@kindex C-e x
@findex speechd-cancel
@cindex zastavení
Zastav mluvení všech zpráv ve frontě aktuálního spojení.  Je-li příkaz
vyvolán s@tie{}univerzálním prefixovým argumentem, zastav čtení všech
zpráv ve všech spojeních.  Je-li příkaz vyvolán s@tie{}číselným
prefixovým argumentem, zastav mluvení všech zpráv v@tie{}Emacsu, ve
kterém byl příkaz vyvolán.

@item C-e p
@kindex C-e p
@findex speechd-pause
@cindex přerušení
Přeruš mluvení --- prozatím ztichni a odlož mluvení aktuální zprávy až
do vyvolání příkazu pokračování v@tie{}mluvení
(@code{speechd-pause}).  Je-li příkaz vyvolán s@tie{}prefixovým
argumentem, přeruš mluvení u@tie{}všech klientů.

@item C-e SPC
@kindex C-e SPC
@findex speechd-resume
@cindex pokračování
Pokračuj v@tie{}pozastaveném mluvení (@code{speechd-resume}).  Je-li
příkaz vyvolán s@tie{}prefixovým argumentem, pokračuj v@tie{}mluvení
u@tie{}všech klientů.

@item C-e 1
@itemx C-e 2
@itemx C-e 3
@itemx C-e 4
@itemx C-e 5
@itemx C-e 6
@itemx C-e 7
@itemx C-e 8
@itemx C-e 9
@kindex C-e 1
@kindex C-e 2
@kindex C-e 3
@kindex C-e 4
@kindex C-e 5
@kindex C-e 6
@kindex C-e 7
@kindex C-e 8
@kindex C-e 9
@findex speechd-speak-key-set-predefined-rate
@cindex rychlost
Nastav jednu z@tie{}přednastavených rychlostí mluvení
(@code{speechd-speak-key-set-predefined-rate}).  @kbd{C-e 1} nastaví
nejnižší rychlost, @kbd{C-e 5} nastaví střední rychlost a @kbd{C-e 9}
nastaví nejvyšší rychlost.
@end table

@node Příkazy nastavující parametry, Hláskování, Řídící příkazy, Příkazy
@subsection Příkazy pro nastavení parametrů
@cindex parametry

Tyto příkazy nastavují různé vlastnosti řečového výstupu.  Všechny
jsou aplikovány pouze na aktuální spojení do Speech Dispatcher (více
informací o@tie{}spojeních do Speech Dispatcher naleznete
v@tie{}@pxref{Hlasy spojení}), pokud nejsou vyvolány
s@tie{}prefixovým argumentem.  Při vyvolání s@tie{}číselným prefixovým
argumentem jsou aplikovány na všechna spojení speechd-el, při vyvolání
s@tie{}univerzálním prefixovým argumentem jsou aplikována na všechna
spojení Speech Dispatcher.

Chcete-li si pro konkrétní buffer vytvořit zvláštní spojení, které má
své vlastní parametry, můžete tak učinit následujícím příkazem:

@table @kbd
@item C-e C-c
@kindex C-e C-c
@findex speechd-speak-new-connection
@cindex spojení
Nastav pro aktuální buffer dané spojení
(@code{speechd-speak-new-connection}).  Příkaz se zeptá na jméno
spojení, můžete zadat buď nové jméno, nebo jméno již existujícího
spojení.  Při obyčejném vyvolání příkazu je vám nabídnuto nově
vygenerované jméno spojení, zatímco při vyvolání příkazu s@tie{}prefixovým
argumentem si můžete vybrat z@tie{}nabídnutých jmen existujících spojení.
@end table

Příkazy ovlivňující základní parametry převodu textu na řeč:

@table @kbd
@item C-e d l
@kindex C-e d l
@findex speechd-set-language
@cindex jazyk
Nastav jazyk spojení.  Zadejte jej jako kód jazyka dle ISO 639.

@item C-e d .
@kindex C-e d .
@findex speechd-set-punctuation-mode
@cindex interpunkce
Urči, jak zpracovávat interpunkci, zda ji číst či ignorovat.
@code{all} znamená číst všechny interpunkční znaky, @code{none} je
všechny přeskakuje a @code{some} čte zadanou podmnožinu interpunkčních
znaků zadaných v@tie{}konfiguraci Speech Dispatcher.

@item C-e d c
@kindex C-e d c
@findex speechd-set-capital-character-mode
@cindex velká písmena
Nastav mód signalizace velkých písmen.  @code{icon} znamená
signalizaci zvukovou ikonou, @code{spell} znamená jejich hláskování
prostřednictvím speciální hláskovací tabulky a @code{none} znamená, že
velká písmena nejsou nijak zvlášť signalizována.
@end table

Příkazy ovlivňující vlastnosti řečového výstupu:

@table @kbd
@item C-e d v
@kindex C-e d v
@findex speechd-set-voice
@cindex hlas
Nastav implicitní hlas, který má syntetizér používat
(@code{speechd-set-voice}).  Můžete si vybrat některý z@tie{}množiny
hlasů nabízených ve vaší instalaci Speech Dispatcher.

@item C-e d r
@kindex C-e d r
@findex speechd-set-rate
@cindex rychlost
Nastav rychlost čtení, v@tie{}rozmezí od -100 (nejpomalejší) po 100
(nejrychlejší) (@code{speechd-set-rate}).  Často asi budete
raději používat příkaz @code{speechd-speak-key-set-predefined-rate},
dostupný na klávese @kbd{C-e @var{number}}, viz @ref{Řídící příkazy}.

@item C-e d p
@kindex C-e d p
@findex speechd-set-pitch
@cindex výška
Nastav výšku hlasu, v@tie{}rozmezí od -100 (nejnižší) po 100 (nejvyšší)
(@code{speechd-set-pitch}).

@item C-e d V
@kindex C-e d V
@findex speechd-set-volume
@cindex hlasitost
Nastav hlasitost hlasu, v@tie{}rozmezí od -100 (nejnižší) po 100
(nejvyšší) (@code{speechd-set-volume}).
@end table

Příkazy ovlivňující řečový syntetizér:

@table @kbd
@item C-e d o
@kindex C-e d o
@findex speechd-set-output-module
@cindex výstupní modul
Přepni Speech Dispatcher na zadaný výstupní modul
(@code{speechd-set-output-module}).  Příkaz se dotazuje na jméno
žádaného výstupního modulu.
@end table

@node Hláskování, Ostatní příkazy, Příkazy nastavující parametry, Příkazy
@subsection Hláskování
@cindex hláskování

@cindex speechd-speak-spell-mode
Hláskovat lze ve speechd-el dvěma způsoby.  Prvním je zapnout pro daný
buffer vedlejší mód @code{speechd-speak-spell-mode}.  Tento mód je
užitečný, pokud chcete hláskovat větší množství textu v@tie{}bufferu.

Druhým způsobem hláskování je využití následujícího příkazu:

@table @kbd
@item C-e C-l
@kindex C-e C-l
@findex speechd-speak-spell
Přinuť následující příkaz hláskovat jím čtený text
(@code{speechd-speak-spell}).  Například pokud chcete hláskovat slovo
za kurzorem, můžete použít klávesový příkaz @kbd{C-e C-l C-e w}.
@end table

@node Ostatní příkazy,  , Hláskování, Příkazy
@subsection Ostatní příkazy

@kindex C-x C-c
V@tie{}případě, že se Emacs úplně zblázní a odmítá kvůli chybě speechd-el
nebo uživatelské definici související s@tie{}řečovým výstupem provádět
jakékoliv příkazy včetně @kbd{C-x C-c}, můžete jako poslední pokus
o@tie{}pomoc vyzkoušet následující příkaz:

@table @kbd
@item C-e C-x
@kindex C-e C-x
@findex speechd-unspeak
@cindex vzpamatování se
Pokus se deaktivovat všechny módy, háčky a obálky instalované příkazem
@code{speechd-speak} (@code{speechd-unspeak}).
@end table

Následující příkazy jsou používány jen velmi zřídka, povětšinou pro
ladící účely:

@table @kbd
@item C-e z
@kindex C-e z
@findex speechd-repeat
Zopakuj poslední text odeslaný do Speech Dispatcher
(@code{speechd-repeat}).

@item M-x speechd-say-text
@findex speechd-say-text
Zeptej se na text a přemluv jej.
@end table

@node Konfigurace, Pokročilá konfigurace, Příkazy, Uživatelská příručka
@section Konfigurace

@menu
* Konfigurace serveru::         Kam se připojit.
* Implicitní priority::         Priority různých druhů zpráv.
* Základní mluvení::            Jednoduché volby.
* Automatické mluvení bufferů:: Jak některé buffery rozmluvit ihned.
* Oznamování stavu::            Přeříkávání změn stavu Emacsu.
* Signalizace::                 Signalizace prázdných zpráv, apod.
* Vlastnosti textu::            Podpora faces a zvláštních částí textu.
* Jazyky::                      Používání více jazyků.
* Hlasy::                       Definice různých hlasů.
* Hlasy spojení::               Nastavování parametrů spojení.
* Více spojení::                Odlišné parametry pro některé módy a buffery.
* Klávesy::                     Přizpůsobení příkazových kláves.
* Módy::                        Háčky vedlejších módů.
* Debugger::                    Potlačení mluvení v@tie{}debuggeru.
@end menu

@node Konfigurace serveru, Implicitní priority, Konfigurace, Konfigurace
@subsection Konfigurace spojení na Speech Dispatcher server

Nastavení těchto proměnných umožňuje se připojit na Speech Dispatcher
běžící na vzdáleném stroji nebo nestandardním portu.

@vtable @code
@item speechd-host
@cindex server
Jméno serveru, na kterém běží Speech Dispatcher, ke kterému se chcete
připojit, zadané jako řetězec.  Implicitní hodnotou je hodnota
shellové proměnné @code{SPEECHD_HOST}, pokud je nastavena, jinak
@code{"localhost"}.

@item speechd-port
@cindex port
Číslo portu, na který se chcete připojit.  Implicitní hodnotou je
hodnota shellové proměnné @code{SPEECHD_PORT}, pokud je nastavena,
jinak obvyklé číslo portu Speech Dispatcher.

@item speechd-timeout
@cindex timeout
Maximální počet sekund, po které se má čekat na odpověď od Speech
Dispatcher.  Je-li tento čas překročen, speechd-el uzavře příslušné
spojení.  Za normálních okolností by Speech Dispatcher mělo odpovídat
na příkazu protokolu okamžitě, avšak pokud se připojujete na Speech
Dispatcher nějakým zvláštním způsobem po pomalé síti, můžete
potřebovat tento limit zvýšit.

@item speechd-spdsend
@cindex spdsend
Je-li hodnotou proměnné něco jiného než @code{nil}, musí to být
řetězec určující jméno binárky @emph{spdsend} (obvykle
@code{"spdsend"}), která má být použita pro komunikaci se Speech
Dispatcher.  Je-li hodnotou proměnné @code{nil} nebo pokud je verze
Emacsu vyšší než 21.3, spdsend se nepoužívá.

O@tie{}hodnotu této proměnné se obvykle nemusíte starat.
@end vtable

@node Implicitní priority, Základní mluvení, Konfigurace serveru, Konfigurace
@subsection Implicitní priority
@cindex priority

Pošle-li nějaká funkce speechd-el na Speech Dispatcher zprávu bez
explicitně specifikované priority dané zprávy, přiřadí se zprávě
priorita dle obsahu níže uvedených proměnných.  Změnou jejich hodnot
můžete dosáhnout zajímavých efektů.  Například změnou hodnoty proměnné
@code{speechd-default-key-priority} z@tie{}@code{notification} na
@code{message} zařídíte, že všechny napsané znaky budou řečeny a budou
přerušovat obvyklé čtení textů.

Všechny tyto proměnné mohou nabývat některé z@tie{}následujících hodnot:
@code{important}, @code{message}, @code{text}, @code{notification},
@code{progress}.  Tyto hodnoty odpovídají prioritám Speech Dispatcher,
více podrobností naleznete v@tie{}manuálu Speech Dispatcher.

@vtable @code
@item speechd-default-text-priority
Implicitní priorita většiny textových zpráv.

@item speechd-default-sound-priority
Implicitní priorita zvukových ikon.

@item speechd-default-char-priority
Implicitní priorita hláskovaných znaků.

@item speechd-default-key-priority
Implicitní priorita znaků napsaných na klávesnici.
@end vtable

@node Základní mluvení, Automatické mluvení bufferů, Implicitní priority, Konfigurace
@subsection Základní konfigurace mluvení

@vtable @code
@item speechd-speak-deleted-char
@cindex mazání
Určuje, který znak má být přečten při mazání znaku.  Je-li hodnotou
něco jiného než @code{nil}, přečti smazaný znak, jinak přečti sousední
znak.

@item speechd-speak-buffer-name
@cindex buffery
Přepínáte-li se do jiného bufferu a hodnotou této proměnné je něco
jiného než @code{nil}, je přečteno jméno nového bufferu.  Je-li
hodnotou proměnné symbol @code{text}, čte se kromě jména bufferu ještě
text jeho řádku od pozice kurzoru do konce řádku.  Je-li hodnotou
proměnné @code{nil}, je přečten jen text, beze jména bufferu.

@item speechd-speak-whole-line
@cindex čtení řádků
Je-li hodnotou proměnné něco jiného než @code{nil}, čti při přesunu na
jinou pozici celý řádek.  Jinak čti řádek jen od pozice kurzoru do
konce řádku.

@item speechd-speak-on-minibuffer-exit
@cindex minibuffer
Je-li hodnotou proměnné něco jiného než @code{nil}, speechd-el čte
po návratu z@tie{}minibufferu nebo rekurzivní editační úrovně text
okolo kurzoru, není-li ke čtení nic lepšího.

@item speechd-speak-read-command-keys
@cindex příkazové klávesy
@cindex klávesy
Tato proměnná definuje, v@tie{}jakých situacích jsou čteny příkazové
klávesy aktuálního příkazu.  Je-li hodnotou proměnné @code{t},
příkazové klávesy jsou čteny vždy.  Je-li hodnotou proměnné
@code{nil}, nejsou čteny nikdy.  Je-li hodnotou proměnné seznam, může
obsahovat jeden nebo více z@tie{}následujících symbolů
identifikujících situace, za kterých mají být klávesy příkazu
přečteny:

@table @code
@item movement
Přečti příkazové klávesy, jestliže došlo k@tie{}přesunu kurzoru, ale
nebyl modifikován obsah bufferu.

@item modification
Byl modifikován obsah bufferu, nedošlo k@tie{}přesunu kurzoru.

@item movement-modification
Byl modifikován obsah bufferu a došlo k@tie{}přesunu kurzoru.
@end table

Je-li hodnotou proměnné @code{t}, příkazové klávesy jsou čteny před
provedením příkazu.  Jinak jsou přeříkány až po provedení příkazu,
protože je třeba nejprve zjistit, zda došlo k@tie{}modifikaci obsahu
bufferu a přesunu kurzoru.

@item speechd-speak-ignore-command-keys
@cindex příkazové klávesy
@cindex klávesy
Seznam příkazů, u@tie{}nichž nemají být příkazové klávesy nikdy čteny.

@item speechd-speak-read-command-name
@cindex jméno příkazu
Je-li hodnotou něco jiného než @code{nil}, čti v@tie{}situacích
definovaných proměnnou @code{speechd-speak-read-command-keys} místo
kláves příkazu jeho jméno.

@item speechd-speak-message-time-interval
@cindex hlášení
@cindex opakování
Minimální počet vteřin, po kterých smí být hlášení zopakováno.  Je-li
aktuální hlášení stejné jako hlášení předchozí, není přeříkáno, pokud
neuplynul aspoň zde definovaný čas od posledního přeříkaného hlášení.
@end vtable

@node Automatické mluvení bufferů, Oznamování stavu, Základní mluvení, Konfigurace
@subsection Automatické mluvení bufferů
@cindex buffery
@cindex vkládaný text

Někdy je užitečné začít přemlouvat obsah bufferu i@tie{}bez explicitního
požadavku uživatele.  Například je-li vyvolán příkaz nápovědy,
uživatel si obvykle chce ihned poté přečíst její text.  Následující
proměnné definují seznam jmen bufferů, které mají být automaticky
přemluveny, jestliže jsou viditelné v@tie{}některém z@tie{}oken aktuálního rámce
a jejich obsah byl během posledního uživatelského příkazu změněn.

@vtable @code
@item speechd-speak-auto-speak-buffers
Obsah těchto bufferů je přemluven za výše uvedených podmínek po
provedení příkazu, jestliže není k@tie{}přemluvení nic jiného (například
pod kurzorem při přesunu kurzoru na jinou pozici).

@item speechd-speak-force-auto-speak-buffers
Stejné jako @code{speechd-speak-auto-speak-buffers} až na to, že obsah
bufferu je přemluven vynuceně, i@tie{}když by mohlo být přemluveno něco
jiného.
@end vtable

Následující proměnné určují, jak nakládat s@tie{}texty vloženými během
provádění uživatelských příkazů.  Týkají se pouze nově vložených
textů, neovlivňují zpracování smazaných textů.  Navíc tyto volby
neovlivňují texty vložené během provádění příkazů, které speechd-el
anebo uživatelské definice zpracovávají speciálním způsobem, jako je
například případ příkazu @code{self-insert-command}.

@vtable @code
@item speechd-speak-buffer-insertions
Určuje, zda má být automaticky čten text vkládaný v@tie{}aktuálním bufferu.
Hodnotou proměnné může být některý z@tie{}následujících symbolů:

@table @code
@item nil
Nečti žádné vložené texty.

@item t
Čti všechny vložené texty.

@item one-line
Čti pouze první řádky vložených textů.

@item whole-buffer
Pokud byl buffer jakkoliv modifikován, přečti jej celý.
@end table

@item speechd-speak-insertions-in-buffers
Seznam jmen bufferů, ve kterých jsou vkládané texty čteny automaticky,
bez ohledu na to, zda jde o@tie{}aktuální buffer a bez ohledu na hodnotu
proměnné @code{speechd-speak-buffer-insertions}.

@item speechd-speak-priority-insertions-in-buffers
Seznam jmen bufferů, ve kterých jsou vkládané texty čteny automaticky
okamžitě po svém vložení, ne až po dokončení prováděného příkazu, jako
je tomu v@tie{}případě proměnné @code{speechd-speak-insertions-in-buffers}.
Tato vlastnost je typicky užitečná v@tie{}comint bufferech.

@item speechd-speak-align-buffer-insertions
Je-li hodnotou proměnné něco jiného než @code{nil}, je vkládaný text
před svým přečtením rozšířen k@tie{}začátku prvního slova, které je alespoň
zčásti obsaženo ve vloženém textu.  To je užitečné zejména v@tie{}případě
doplňovacích funkcí.
@end vtable

Jestliže příkaz modifikoval aktuální buffer a přesunul kurzor na úplně
jinou pozici, nová pozice kurzoru není v@tie{}řečovém výstupu
nijak vyznačena.  To lze změnit prostřednictvím následující proměnné:

@vtable @code
@item speechd-speak-movement-on-insertions
Je-li hodnotou proměnné @code{t}, přečti text okolo nové pozice
kurzoru, i@tie{}když byl aktuální buffer modifikován.  Je-li hodnotou
proměnné @code{read-only}, čti jej jen v@tie{}read-only bufferech.
Je-li hodnotou @code{nil}, nečti jej.
@end vtable

@node Oznamování stavu, Signalizace, Automatické mluvení bufferů, Konfigurace
@subsection Oznamování změn stavu

speechd-el může číst informaci o@tie{}aktuálním stavu Emacsu, jako
jméno aktuálního bufferu, hlavní a vedlejší módy nebo jiné atributy
bufferu, viz @xref{Informující příkazy}.  Změny stavu Emacsu mohou být
oznamovány automaticky, v@tie{}závislosti na uživatelské konfiguraci:

@vtable @code
@item speechd-speak-state-changes
Seznam identifikátorů změn stavu Emacsu, které mají být automaticky
oznamovány.  Jako identifikátory změny stavu lze použít následující
symboly:

@table @code
@item buffer-name
@item buffer-identification
(jen v@tie{}Emacsu 21.4 nebo vyšším)
@item buffer-modified
@item buffer-read-only
@item frame-name
@item frame-identification
(jen v@tie{}Emacsu 21.4 nebo vyšším)
@item header-line
(jen v@tie{}Emacsu 21.4 nebo vyšším)
@item major-mode
@item minor-modes
@item buffer-file-coding
@item terminal-coding
@item input-method
@item process
@end table

@item speechd-speak-display-modes
Seznam vedlejších módů, u@tie{}nichž je místo jejich jména přeříkáván
jejich zobrazený řetězec.  To může být užitečné v@tie{}případech, kdy
je zobrazený řetězec stručnější než jméno módu nebo když je zobrazený
řetězec změněn, aniž by byl změněn samotný mód.
@end vtable

@node Signalizace, Vlastnosti textu, Oznamování stavu, Konfigurace
@subsection Signalizace

Některé situace mohou být signalizovány zvukovými ikonami.
Následující proměnná zapíná nebo vypíná předdefinované signalizace.
O@tie{}tom, jak si definovat vlastní signalizace, se můžete dočíst
v@tie{}sekci @ref{Pokročilá konfigurace}.

@vtable @code
@item speechd-speak-signal-events
Seznam symbolů, obsahující jména událostí, které mají být
signalizovány zvukovou ikonou.  Podporována jsou následující jména
událostí:

@table @code
@item start
Start nebo restart speechd-el.

@item empty
@cindex prázdný text
Prázdný text v@tie{}různých situacích.

@item beginning-of-line
@cindex řádek
@cindex začátek řádku
Dosažení začátku řádku po příkazech @code{forward-char} a
@code{backward-char}.

@item end-of-line
@cindex konec řádku
Dosažení konce řádku po příkazech @code{forward-char} a
@code{backward-char}.

@item minibuffer
Vstup do minibufferu.

@item message
Následují hlášení v@tie{}echo area.
@end table
@end vtable

@node Vlastnosti textu, Jazyky, Signalizace, Konfigurace
@subsection Vlastnosti textu
@cindex vlastnosti textu
@cindex faces
@cindex kurzor
@cindex pohyb

Implicitní chování speechd-el je takové, že po příkazu, který způsobí
přesun kurzoru na jinou pozici, přečte aktuální řádek.  Pokud je však
pozice kurzoru obklopena textem, který má nějaké vlastnosti (text
properties), typicky face, ale může jít o@tie{}jakékoliv jiné vlastnosti,
speechd-el dovede přečíst pouze tu část textu pod kurzorem, která má
shodné vlastnosti.

Pokud je navíc zapnut font lock mód, faces mohou být mapovány na různé
hlasy.

@vtable @code
@item speechd-speak-by-properties-on-movement
Metoda výběru části textu, která má být přečtena po přesunu kurzoru.
Proměnná může nabývat některé z@tie{}následujících hodnot:

@table @asis
@item @code{nil}
Vlastnosti textu (text properties) nejsou nijak zohledňovány.

@item @code{t}
Jsou zohledňovány všechny vlastnosti textu.

@item seznam faces
Z@tie{}vlastností textu jsou zohledňována pouze daná faces.
@end table

@item speechd-speak-by-properties-always
Seznam příkazů, které vždy zohledňují vlastnosti textu, a@tie{}to
i@tie{}v@tie{}případě že hodnota proměnné
@code{speechd-speak-by-properties-on-movement} je @code{nil}.

@item speechd-speak-by-properties-never
Seznam příkazů, které nikdy nezohledňují vlastnosti textu, a@tie{}to ani
v@tie{}případě že hodnota proměnné
@code{speechd-speak-by-properties-on-movement} není @code{nil}.

@item speechd-speak-faces
Tato proměnná umožňuje zajistit vyvolání akcí v@tie{}případě, kdy kurzor po
provedení uživatelského příkazu skončí na určitém face.  Hodnotou
proměnné je asociativní seznam s@tie{}prvky tvaru @code{(@var{face}
. @var{akce})}.

Jestliže příkaz přesouvající kurzor zanechá kurzor na @var{face} a na
příkaz není explicitně navěšeno žádné mluvení, je vyvolána
@var{akce}.  Je-li @code{akce} řetězcem, je tento řetězec přemluven.
Je-li @code{akce} funkcí, je tato funkce zavolána, bez argumentů.

@item speechd-face-voices
Mapování faces na hlasy.  Hodnotou proměnné je asociativní seznam
s@tie{}prvky tvaru @code{(@var{face} . @var{hlas})}, kde @var{face} je face
a @var{hlas} je jméno hlasu definované v@tie{}proměnné
@code{speechd-voices}, viz @xref{Hlasy}.  Každé face je přemluveno
odpovídajícím hlasem.  Pokud pro nějaké face není hlas v@tie{}této proměnné
definovat, je toto face přemluveno aktuálním hlasem.

Pozor, toto mapování se uplatní jen tehdy, je-li zapnut font lock mód.
@end vtable

@node Jazyky, Hlasy, Vlastnosti textu, Konfigurace
@subsection Používání více jazyků
@cindex jazyky

speechd-el je možno používat s@tie{}vícero jazyky.  Nicméně proces
volby jazyka nemůže být snadno automatizováno, protože běžný text
neobsahuje žádnou informaci o@tie{}svém jazyce.  Takže pokud chcete
používat speechd-el s@tie{}výstupem ve více jazycích, musíte
speechd-el napovídat.

@vindex speechd-language
@cindex RFC 1766
Základním prostředkem pro sdělení informace o@tie{}aktuálním jazyku je
proměnná @code{speechd-language}.  Pokaždé, když chce speechd-el říct
nějaký text, podívá se na tuto proměnnou, zda neobsahuje kód jazyka.
Pokud její hodnota není @code{nil}, musí to být řetězec obsahující kód
jazyka dle RFC@tie{}1766 a speechd-el přečte text v@tie{}odpovídajícím
jazyce.

Většinou asi budete chtít nastavit tuto proměnnou v@tie{}konkrétním
souboru, viz @ref{File Variables,,,emacs,GNU Emacs Manual}, nebo jako
lokální proměnnou bufferu, viz @ref{Locals,,,emacs,GNU Emacs Manual},
v@tie{}různých mode hooks, see @ref{Hooks,,,emacs,GNU Emacs Manual}.

@findex speechd-language
@cindex text property @code{language}
Pokud má text vlastnost (property) @code{language} obsahující kód
jazyka dle RFC@tie{}1766, je přemluven v@tie{}odpovídajícím jazyce bez
ohledu na všechna ostatní nastavení.  K@tie{}dispozici je funkce
@code{speechd-language}, která v@tie{}elispových programech umístí
tuto textovou vlastnost na řetězec.

Jinou dobrou cestou, jak používat více jazyků, je používat více
spojení pro oddělení jazykově závislých bufferů nebo módů, viz
@ref{Více spojení}, a nastavit pro každé z@tie{}těchto spojení
parametr @code{language}, viz @ref{Hlasy spojení}.

Pokud už není možná žádná lepší cesta, je možné jazyky nastavovat
podle aktuální vstupní metody:

@vtable @code
@item speechd-speak-input-method-languages
Asociativní seznam mapující vstupní metody na jazyky.  Každý
z@tie{}prvků seznamu má podobu @code{(@var{input-method-name} .
@var{language})}, kde @var{input-method-name} je jméno metody jako
řetězec a @var{language} je ISO kód jazyka akceptovaný SSIP.  Jestliže
je aktuální vstupní metoda v@tie{}seznamu přítomna, je vybrán
odpovídající jazyk, není-li přebit jiným nastavením.
@end vtable

@node Hlasy, Hlasy spojení, Jazyky, Konfigurace
@subsection Definice hlasů
@cindex parametry

Ve speechd-el lze definovat speciální hlasy, které pak mohou být
využívány v@tie{}různých situacích, například pro přemlouvání různých
faces různými hlasy (@pxref{Vlastnosti textu}) nebo pro nastavení
různých režimů čtení interpunkce pro různé druhy bufferů (@pxref{Více
spojení}).  Hlasy ve speechd-el neurčují jen základní charakteristiku
hlasu, ale také vlastnosti řeči jako výšku či rychlost a zvláštní
vlastnosti jako režim čtení interpunkce nebo signalizaci velkých
písmen.

Definice hlasů je obsažena v@tie{}následující proměnné:

@vtable @code
@item speechd-voices
Asociativní seznam identifikátorů hlasů a jejich parametrů.

Každý prvek seznamu má podobu @code{(@var{voice-id} .
@var{parameters})}, kde @var{voice-id} je symbo, pod kterým bude hlas
dostupný a @var{parameters} je asociativní seznam identifikátorů
parametrů a jejich hodnot.  Přípustná jména parametrů jsou následující
symboly: @code{language}, @code{gender}, @code{age}, @code{style},
@code{name}, @code{rate}, @code{pitch}, @code{volume},
@code{punctuation-mode}, @code{capital-character-mode},
@code{message-priority}, @code{output-module}.

@code{name} je řetězec identifikující jméno hlasu Speech Dispatcher.
Není-li uveden, pak jsou pro volbu hlasu rozhodující parametry
@code{gender}, @code{age} a @code{style}.  @code{gender} může být
jeden ze symbolů @code{male}, @code{female}, @code{neutral}.
@code{age} může být jeden ze symbolů @code{middle-adult},
@code{child}. @code{neutral}.  @code{style} může být jedno
z@tie{}čísel @code{1}, @code{2}, @code{3} (hodnoty parametru
@code{style} se v@tie{}budoucnu pravděpodobně změní).

Parametr @code{message-priority} nastavuje prioritu všech zpráv
říkaných daných hlasem.  Jeho hodnotou může být kterýkoliv ze symbolů
identifikujících prioritu zprávy.

Pro povolené hodnoty ostatních parametrů viz odpovídající
@code{speechd-set-*} funkce.

Hlas pojmenovaný @code{nil} je zvláštní, definuje implicitní hlas.
Explicitní definice jeho parametrů je nepovinná.
@end vtable

@node Hlasy spojení, Více spojení, Hlasy, Konfigurace
@subsection Hlasy spojení
@cindex hlasy

S@tie{}pomocí následující proměnné si můžete nechat automaticky
nastavit různé parametry spojení, jako rychlost řeči, jazyk, atd.
speechd-el může mít na Speech Dispatcher otevřeno více spojení,
definovaných dle různých kritérií (@pxref{Více spojení}).  Různým
spojením pak můžete nastavit různé parametry, v@tie{}závislosti na
jménu spojení, a@tie{}můžete také nastavit implicitní parametry
společné pro všechna spojení.

@vtable @code
@item speechd-connection-parameters
Asociativní seznam jmen spojení a odpovídajících hlasů.  Každý prvek
seznam má podobu @code{(@var{connection-name} . @var{voice})}, kde
@var{connection-name} je jméno spojení ve formě řetězce a
@var{voice} je identifikátor hlasu definovaného v@tie{}proměnné
@code{speechd-voices}.

Pro spojení, která nejsou v@tie{}této proměnné definována se používá
implicitní hlas, jehož jméno je @code{nil}.
@end vtable

Aby se nastavení hodnoty této proměnné plně projevilo, musí být
otevřená spojení znovuotevřena.  Nepoužíváte-li konfigurační rozhraní
Emacsu (customize), musíte pro zajištění znovuotevření spojení zavolat
příkaz @kbd{C-u M-x speechd-speak}.

Jako malou pomůcku pro nastavení hlasu spojení a jeho parametrů je
možné použít tento příkaz:

@table @kbd
@item C-e C-a
@kindex C-e C-a
@findex speechd-add-connection-settings
Ulož aktuální parametry spojení do zadaného hlasu v@tie{}proměnné
@code{speechd-voices} s nastav tento hlas pro aktuální spojení
v@tie{}proměnné @code{speechd-connection-voices}.

Nezapomeňte, že pokud chcete zachovat nový obsah těchto proměnných,
musíte si je sami uložit, příkaz to nedělá.
@end table

@node Více spojení, Klávesy, Hlasy spojení, Konfigurace
@subsection Více spojení
@cindex spojení

speechd-el můžete říct, aby pro určité buffery nebo hlavní módy
používalo oddělená spojení na Speech Dispatcher.  To v@tie{}zásadě umožňuje
nezávislé nastavení různých parametrů řečového výstupu pro tyto
buffery a hlavní módy, jak ruční, tak prostřednictvím konfigurace
(@pxref{Hlasy spojení}).

Každé spojení na Speech Dispatcher má své vlastní jedinečné jméno.
speechd-el implicitně používá spojení nazvané @code{"default"}.  Pro
vytvoření odděleného spojení stačí pouze nechat v@tie{}určitých situacích
speechd-el vybrat jiné jméno spojení.  Způsob výběru spojení je
definován proměnnou @code{speechd-speak-connections}.

@vtable @code
@item speechd-speak-connections
Asociativní seznam mapující hlavní módy a buffery na spojení.  Každý
prvek seznamu je tvaru @code{(@var{mód-nebo-buffer}
. @var{jméno-spojení})}.

Když chce speechd-el poslat zprávu, porovnává momentální prostředí
s@tie{}@var{mód-nebo-buffer}.  @var{mód-nebo-buffer} smí být jedním
z@tie{}následujících objektů, od nejvyšší priority po nejnižší:

@itemize @bullet
@item
seznam, reprezentující volání funkce, která musí vrátit jinou hodnotu
než @code{nil}, právě když má být použit příslušný prvek asociativního
seznamu

@item
jméno bufferu

@item
symbol @code{:minibuffer}, reprezentující minibuffer

@item
symbol hlavního módu

@item
@code{nil}, reprezentující nebufferové objekty, např. echo area

@item
@code{t}, reprezentující implicitní hodnotu, když není aplikovatelný
žádný jiný prvek
@end itemize

Jestliže určité situaci odpovídá více prvků, je použit prvek
s@tie{}nejvyšší prioritou.

@var{jméno-spojení} je libovolný neprázdný řetězec určující jméno
požadovaného spojení.  Není-li otevřeno žádné spojení daného jména, je
automaticky vytvořeno v@tie{}okamžiku, kdy do něj má být něco zasláno.
@end vtable

@node Klávesy, Módy, Více spojení, Konfigurace
@subsection Klávesy
@cindex klávesy
@cindex prefixová klávesa
@cindex klávesová mapa

Příkazové klávesy speechd-el jsou definovány proměnnou
@code{speechd-speak-prefix} a klávesovou mapou
@code{speechd-speak-mode-map}.

@vtable @code
@item speechd-speak-prefix
Tato proměnná definuje prefixovou klávesu příkazů speechd-el, kterou
je implicitně @kbd{C-e}.  Jestliže tuto proměnnou změníte až po
nastartování mluvení prostřednictvím příkazu @code{speechd-speak} a
nenastavujete ji prostřednictvím konfiguračního rozhraní Emacsu
(customize), musíte, aby se změna projevila, příkaz
@code{speechd-speak} spustit znovu.

@item speechd-speak-mode-map
Tato klávesová mapa určuje mapování kláves speechd-el následujících za
prefixovou klávesou.  Můžete v@tie{}ní klávesy nastavovat obvyklým
způsobem, např.

@lisp
(define-key speechd-speak-mode-map "t" 'speechd-say-text)
@end lisp

přiřadí příkaz @code{'speechd-say-text} klávese @code{C-e t} (je-li
prefixovou klávesou @code{C-e}).
@end vtable

@node Módy, Debugger, Klávesy, Konfigurace
@subsection Háčky ve vedlejších módech
@cindex vedlejší módy
@cindex háčky

speechd-el poskytuje vedlejší mód, který zapíná a vypíná mluvení,
@xref{Spuštění řečového výstupu}.  Prostřednictvím následujícího háčku
si můžete nechat provést vlastní akce při vstupu do tohoto módu:

@vtable @code
@item speechd-speak-mode-hook
Háček spuštěný při zapnutí vedlejšího módu speechd-speak.
@end vtable

@node Debugger,  , Módy, Konfigurace
@subsection Ladění speechd-el
@cindex debugger
@cindex ladění

Pokud se pokoušíte řečový výstup ladit, můžete narazit na problém
rekurzivního vyvolávání laděných funkcí v@tie{}elispových debuggerech.
Tomu lze ve speechd-el zabránit zákazem mluvení v@tie{}debuggerech:

@vtable @code
@item speechd-speak-in-debugger
Je-li hodnotou proměnné něco jiného než @code{nil}, funkce
automatického řečového výstupu nemluví v@tie{}elispových debuggerech.
@end vtable

@node Pokročilá konfigurace, Potíže, Konfigurace, Uživatelská příručka
@section Definice vlastních reakcí na příkazy
@cindex rozšíření

Psaní vlastních reakcí na příkazy obecně vyžaduje znalost programování
v@tie{}Elispu.  Nemusíte se však děsit, základní věci si můžete nastavit
i@tie{}bez toho, stačí se řídit zde uvedenými instrukcemi.

speechd-el umožňuje říct text, přehrát zvukovou ikonu nebo zavolat
libovolný elispový výraz před nebo po provedení příkazu nebo funkce.
Pro tyto účely jsou k@tie{}dispozici dvě makra, která zajistí, že se kromě
vlastní akce provede vše, co je nutno:

@ftable @code
@item speechd-speak-command-feedback @var{příkaz} @var{pozice} @var{reakce}
Definuj reakci na @var{příkaz}.  @var{příkaz} je jméno interaktivní
funkce (použijte @kbd{C-h C-c} pro zjištění jména příkazu navázaného
na určitou klávesu).

@var{pozice} může být jeden ze symbolů @code{before} nebo @code{after}
pro vyvolání reakce před (@code{before}) nebo poté (@code{after}), co
je příkaz proveden.

@code{reakce} může být řetězec nebo jakýkoliv elispový výraz.
Jedná-li se o@tie{}řetězec (text uzavřený v@tie{}uvozovkách), definuje text
k@tie{}přeříkání nebo zvukovou ikonu k@tie{}přehrání.  Jestliže řetězec začíná
hvězdičkou (@code{*}), určuje jméno zvukové ikony (hvězdička není
součástí jména), jinak se jedná o@tie{}normální text.

Příklad:
@cindex @code{suspend-emacs}

@lisp
(speechd-speak-command-feedback suspend-emacs before "Suspenduji Emacs!")
@end lisp

Tento řádek elispového kódu můžete vložit do svého @file{~/.emacs},
čímž si zajistíte upozornění o@tie{}vyvolání příkazu @code{suspend-emacs}
(obvykle navázaného @kbd{C-z}).

@item speechd-speak-function-feedback @var{funkce} @var{pozice} @var{reakce}
Toto je stejné jako @code{speechd-speak-command-feedback} až na to, že
@var{reakce} je vyvolána kdykoliv je vyvolána @code{funkce}, ať už
interaktivně či nikoliv.  Navíc @code{funkce} může být jakákoliv
funkce, nejen interaktivní příkaz.
@end ftable

@emph{Prosím pozor:}

@itemize @bullet
@item
Kvůli určitému nedostatku Emacsu nemusí popsaný mechanismus reakcí
správně fungovat pro vestavěné funkce.

@item
Pokud si definujete vlastní reakce na funkce bez použití uvedených
maker, buďte opatrní.  Uvedená makra definují kód zajišťující, že se
nic neříká v@tie{}případě vypnutého @code{speechd-speak-mode}, a@tie{}podobná
opatření.  Pokud tato makra nepoužíváte, musíte si tato opatření
zajistit sami.
@end itemize

@node Potíže, Tipy, Pokročilá konfigurace, Uživatelská příručka
@section Potíže, se kterými se můžete setkat
@cindex potíže

@itemize @bullet
@cindex Info
@item
@emph{Proč se nepřeříkávají některé položky menu v@tie{}Info?}

Je to způsobeno tím, jakým způsobem Emacs umisťuje faces na položky
menu.  Problém lze obejít nastavením hodnoty proměnné
@code{Info-fontify-maximum-menu-size} na @code{0}.

@cindex upozornění na události
@cindex diář
@item
@emph{Jakým způsobem lze Emacs přimět k@tie{}přeříkávání upozornění na
události (appointments)?}

Nastavte proměnnou @code{appt-msg-window} na @code{nil}.  Taktéž může
být užitečné přidat do proměnné @code{speechd-speak-auto-speak-buffer}
řetězec @code{"diary"}.

@cindex w3m-el
@cindex URL
@item
@emph{Jak zabránit vypisování URL při pohybu po lincích ve w3m-el?}

Přidejte si do svého @file{~/.emacs} následující kód:

@lisp
(defadvice w3m-print-this-url (around my-w3m-print-this-url activate)
  (when (eq this-command 'w3m-print-this-url)
    ad-do-it))
@end lisp

@cindex opakované čtení
@item
@emph{V@tie{}některých situacích, kdy je po provedení příkazu čten
modifikovaný text, je tento text čten po kusech a některé
z@tie{}těchto kusů jsou opakovány.}

Obsah bufferu se v@tie{}elispových programech může měnit mnoha různými
způsoby.  speechd-el nemůže uspokojivě ošetřit všechny možné takové
postupy.  Pokud máte rozumný nápad, jak v@tie{}nějaké situaci vylepšit
čtení změn textu v@tie{}bufferu, řekněte nám o@tie{}tom.

Pokud na tento problém narazíte u@tie{}některého často prováděného
příkazu, můžete si pro tyto příkazy definovat svoji vlastní řečovou
odezvu.  Více informací o@tie{}možnostech definic vlastní řečové
odezvy naleznete v@tie{}sekci @ref{Pokročilá konfigurace}.

@item
@cindex prodlevy
@cindex garbage collection
@cindex @code{gc-cons-threshold}
@emph{Předtím, než se po příkazu něco řekne, se občas objevuje malá
prodleva (přibližně jednosekundová).}

Možná, že Emacs během prodlevy provádí garbage collection.  Zkuste
zvýšit hodnotu proměnné @code{gc-cons-threshold}, třeba na 4000000.
Může to celkový výkon zvýšit nebo snížit, v@tie{}závislosti na vašem
prostředí a konkrétních požadavcích.

Jste-li zkušeným elispovým hackerem a dokážete zjistit, proč
speechd-el produkuje významné množství dat způsobujících zvýšení
frekvence provádění garbage collection a jak něco v@tie{}tomto směru
vylepšit, vaše pomoc je vítána!

@item
@emph{Při přidržení klávesy @kbd{C-n} obrazovka na chvíli zamrzne a
kurzor se nepohybuje.}

Je-li Emacs zaměstnaný nějakou činností, není obecně prováděna
aktualizace obrazovku.  speechd-el je v@tie{}kombinaci s@tie{}vyšší rychlostí
automatického opakování kláves schopno dosáhnout takového stavu
poměrně snadno.  Představuje-li to pro vás skutečný problém, můžete si
snížit rychlost autorepeatu nebo pořídit rychlejší počítač.

Samozřejmě jsou vítány jakékoliv tipy, jak zvýšit rychlost speechd-el.
@end itemize

@node Tipy, Oznamování chyb, Potíže, Uživatelská příručka
@section Užitečné emacsové tipy

Nezapomeňte, že Elisp vám umožňuje definovat si spoustu užitečných
funkcí.  Typicky si můžete definovat příkazy oznamující nějaké
informace, které jsou snadno identifikovatelné na emacsové obrazovce,
ale které nejsou tak dobře rozpoznatelné v@tie{}řečovém výstupu.

Několik příkladů:

@itemize @bullet
@item
@emph{Oznamování aktuálního data v@tie{}kalendáři:}

@cindex den v@tie{}kalendáři
@lisp
(defun report-day ()
  (interactive)
  (message "%s" (calendar-date-string (calendar-cursor-to-date t))))
@end lisp

@item
@emph{Výpis aktuálních upozornění na události z@tie{}diáře:}

@cindex upozornění na události
@lisp
(defun report-current-appointments ()
  (interactive)
  (let ((appt-now-displayed nil))
    (appt-check)))
@end lisp
@end itemize

@node Oznamování chyb,  , Tipy, Uživatelská příručka
@section Jak oznamovat chyby speechd-el nebo Speech Dispatcher
@cindex chyby

Narazíte-li na chybu speechd-el, můžete pro její oznámení použít
následující příkaz.  Ale než tak učiníte, přečtěte si prosím celý text
této sekce, aby vámi oznámená chyba mohla být řešena co
nejefektivněji.

@ftable @kbd
@item M-x speechd-bug
@findex speechd-bug
Oznam chybu speechd-el nebo Speech Dispatcher.  Příkaz se zeptá na
určité informaci a pak se zeptá, zda chybu dokážete zreprodukovat.
Pokud dokážete, odpovězte @kbd{y} a začněte chybu reprodukovat.
Ihned, jakmile je chyba zreprodukována, stiskněte @kbd{C-e C-f}.
Potom můžete (a@tie{}měli byste) dále zeditovat vygenerovaný e-mail a
odeslat jej obvyklým způsobem.

@item M-x speechd-bug-reproduce
@findex speechd-bug-reproduce
@kindex C-e C-f
Zahaj reprodukci chyby speechd-el nebo Speech Dispatcher.  Od tohoto
okamžiku jsou sledovány všechny akce uživatele a Speech Dispatcher.

Reprodukce chyby se ukončí stiskem kláves @kbd{C-e C-f}.  Poté, co je
ukončena, jsou do bufferu, kde byl příkaz @code{speechd-bug-reproduce}
vyvolán, vloženy informace o@tie{}reprodukci chyby.

Tento příkaz je užitečný v@tie{}případě, kdy chcete poskytnout
informace o@tie{}chybě bez generování nového oznámení o@tie{}chybě.
@end ftable

Když oznamujete chyby, mějte prosím vždy na paměti následující pokyny:

@itemize @bullet
@item
Napište o@tie{}chybě co nejvíce informací.  Popište, co nefunguje,
jaké je vámi očekávané chování, jaké akce chybu vyvolaly, co je
zvláštního na vašem Emacsovém prostředí nebo konfiguraci Speech
Dispatcher, atd.  Nesnažte se příliš přemýšlet nad tím, která
informace je důležitá a která není --- pro vývojáře může být důležitá
každá informace, takže nezapomeňte uvést cokoli, co může být
potenciálně důležité.  Raději uvádějte informací více než méně.
Chybějící informace může znamenat, že vývojáři nebudou schopni
s@tie{}chybou nic udělat.

@item
Buďte co nejpřesnější.  Neočekávajte, že vývojáři znají kontext nebo
že ví, jakým způsobem Emacs a speechd-el používáte.  Používejte přesné
popisy --- místo pouhého ``když zavolám foo'' pište lépe ``když
stisknu klávesy `M-x foo RET', čímž se vyvolá příkaz `foo' ''.  Nebo
místo ``neříká, co by mělo'' pište ``říká `bla bla' místo očekávaného
`ble ble ble', přičemž `ble ble ble' je text celého čteného řádku''.

@item
Když reprodukujete chybu, snažte se mít zapnuto logování Speech
Dispatcher na co nejvyšší úroveň --- nastavte v@tie{}konfiguračním
souboru @file{speechd.conf} volbu @code{LogLevel} na hodnotu @code{5}.

@item
Když reprodukujete chybu, neprovádějte žádné nadbytečné akce a
proveďte @kbd{C-e C-f} hned jak je chyba zreprodukována.  Zabráníte
tak tomu, aby se podstatné informace získané z@tie{}logovacích souborů
utopily v@tie{}nadbytečném balastu.

@item
Můžete se také podívat na pokyny pro oznamování chyb Speech Dispatcher,
viz @ref{Reporting Bugs,,,speechd,Speech Dispatcher}.
@end itemize

@c ****************************************************************************

@node Elispová knihovna, Kontaktní informace, Uživatelská příručka, Top
@chapter Elispová knihovna speechd-el

Momentálně není ke knihovně k@tie{}dispozici žádný skutečný programátorský
manuál.  Podívejte se tedy prosím na dokumentační řetězce dostupných
proměnných, funkcí a maker.

Nicméně se můžete (a@tie{}měli byste) řídit následujícími radami:

@itemize @bullet
@item
Nepoužívejte žádné funkce, proměnné nebo jiné lispové objekty, jejichž
jména začínají prefixem @code{speechd--} nebo @code{speechd-speak--}.
Tyto objekty jsou považovány za privátní a mohou se kdykoliv bez
upozornění změnit nebo být zrušeny.

@item
@vindex speechd-client-name
Jestliže chcete vybrat nebo vytvořit konkrétní spojení, udělejte to
prostřednictvím nastavení hodnoty proměnné @code{speechd-client-name}:

@lisp
(let ((speechd-client-name "něco"))
  ... kód používající spojení "něco" ... )
@end lisp

Mějte prosím na paměti, že obvykle není dobrým nápadem otevřít
současně dvě spojení na Speech Dispatcher se shodným klientským
jménem.

@item
Jinak by na vás neměly číhat žádná zvláštní překvapení a jakýkoliv
rozumný kód by měl být bezproblémový.
@end itemize

Možná vás ještě může zajímat @ref{Pokročilá konfigurace}.

@c ****************************************************************************

@node Kontaktní informace, Kopírování tohoto manuálu, Elispová knihovna, Top
@chapter Kontaktní informace
@cindex autoři
@cindex chyby
@cindex kontakty

Pokud chcete oznámit chybu speechd-el, zašlete nám kompletní informaci
o@tie{}chybě na adresu @email{speechd-el@@bugs.freebsoft.org}.  Pokud
nám chcete poslat záplatu speechd-el, můžete použít tutéž adresu.

@emph{Prosíme}, před zasláním oznámení o@tie{}chybě si přečtěte pokyny
pro oznamování chyb, see @ref{Oznamování chyb}.  Budete-li se držet
uvedenými radami, umožníte nám zpracovat vaše oznámení o@tie{}chybě
efektivněji a tím pádem s@tie{}lepší a rychlejší odezvou.

Máte-li jakékoliv otázky, náměty nebo cokoliv dalšího, co nám chcete
sdělit, neváhejte se obrátit na adresu @email{speechd@@freebsoft.org}.

@c ****************************************************************************

@node Kopírování tohoto manuálu, Index, Kontaktní informace, Top
@appendix GNU Free Documentation License

@cindex FDL, GNU Free Documentation License
@center Version 1.2, November 2002

@include fdl.texi

@c ****************************************************************************

@node Index,  , Kopírování tohoto manuálu, Top
@unnumbered Index

@printindex cp

@bye

@c  LocalWords:  chyph def ntprefix cs input comment of header documentlanguage
@c  LocalWords:  documentencoding VERSION el value end copying quotation is and
@c  LocalWords:  Permission granted distribute or modify this document under gc
@c  LocalWords:  the terms Documentation License Version any later version with
@c  LocalWords:  published Foundation Sections Cover Texts Back license section
@c  LocalWords:  included entitled Sound Emacsové Dispatcher title subtitle tie
@c  LocalWords:  author page contents node Elispová elispových chapter emacsový
@c  LocalWords:  itemize bullet Elispovou emacsové emacsových elispovou file
@c  LocalWords:  enumerate example make compile lisp speak nil code table ref
@c  LocalWords:  global toggle speaking subsection read other window word char
@c  LocalWords:  paragraph next previous last message cancel resume key rate
@c  LocalWords:  predefined connection language punctuation all none some icon
@c  LocalWords:  capital character spell voice number pitch output spelling say
@c  LocalWords:  sound repeat faces localhost timeout default notification name
@c  LocalWords:  important progress deleted buffers force self insert command
@c  LocalWords:  insertions one comint align signal empty beginning backward
@c  LocalWords:  properties face lock movement always never voices parameters
@c  LocalWords:  property customize add connections minibuffer area define hook
@c  LocalWords:  elispový feedback before after suspend emacs function garbage
@c  LocalWords:  collection cons threshold elispovým autorepeatu client protect
@c  LocalWords:  appendix November include unnumbered bye
