Co bude obsahem dnešního dílu našeho seriálu o zpřístupnění počítačů slepým a těžce zrakově postiženým uživatelům? Jak již napovídá i samotný titulek tohoto článku, zkusíte si nainstalovat (a následně i nakonfigurovat) všechny ty "věcičky", které potřebuje zrakově handicapovaný člověk pro práci s počítačem.
Následující postup jsem vyzkoušel na Ubuntu 7.10/8.04 a Debianu (většinou se jednalo o softwarové balíčky ze sekcí unstable a testing).
Festival a česká difonová databáze
Prvním program, který budete muset do svého systému přidat, je správce řečových syntéz Festival, jeho podporu pro český jazyk a taktéž českou difonovou databázi. Docílíte toho následovně:
apt-get install festival festival-czech festival-freebsoft-utils festvox-czech-ph
Nyní máte nainstalovaný řečový server, nicméně nemáte nikde definováno, aby používal českou difonovou databázi, takže do souboru /etc/festival.scm přidejte následující řádky:
(require 'speech-dispatcher) (require 'czech) (require 'czech-unisyn) (require 'nopauses) (set! inhibit-initial-pauses t) (voice_czech_ph) (set! voice_default 'voice_czech_ph)
A zakončete restartem serveru:
/etc/init.d/festival restart
Espeak
Řečový syntetizér eSpeak není nutno instalovat, nicméně jedná se v současné době asi o nejrychlejší (co se týče odezvy) open-source syntezátor, takže jeho zavedení bych vřele doporučoval. Navíc apt-get install espeak
a těch pár kilobajtů člověka o moc nepřipraví.
SpeechDispatcher
Další věcí, kterou budete muset nainstalovat, je TextToSpeech server SpeechDispatcher, který bude zajišťovat komunikaci mezi odečítačem a syntezátorem. Toho docílíte zavedením stejnojmenného balíčku.
apt-get install speech-dispatcher speech-dispatcher-festival
Nyní se vytvoří adresář /etc/speech-dispatcher/, který bude obsahovat veškerou konfiguraci serveru. Mimo jiné taktéž obsahuje podadresář ./modules/, jehož výpisem lze snadno zjistit, které syntezátory konkrétní instalovaná verze podporuje. Nás však nebude zajímat toliko adresář ./modules/, jako spíš konfigurační soubor speech-dispatcher.conf. Možnosti konfigurace jsou vskutku závratné, zaměříme se na jenom malou hrstku z možných direktiv.
LogLevel 3 # U starších verzí SD se doporučuje jeho zvýšení (<0.6.6) DefaultRate 90 # Výchozí tempo řeči (udává se v procentech) DefaultVolume 100 # Implicitní hodnota hlasitosti (udává se v procentech) DefaultLanguage "cs" # Používaný jazyk (důležitá direktiva) DefaultModule festival # Řečový syntetizér, který se bude používat (namísto festival lze zadat např. espeak).
Nyní ještě navštivte adresář /etc/speech-dispatcher/modules/, kde zkontrolujte (u těch modulů, které hodláte používat), že jim příslušející soubory obsahují správně nastavenou následující direktivu:
FestivalAudioOutputMethod "alsa" nebo EspeakAudioOutputMethod "alsa"
Pro vysvětlení, některé distribuce (jako třeba Ubuntu) začaly využívat zvukový server PulseAudio, který je v mnoha ohledech lepší nežli ALSA nebo OSS, nicméně v současné době jsou v distribucích pro PulseAudio stále starší knihovny, se kterými si Dispatcher neporadí (to však není chyba SD, nýbrž příslušných knihoven).
Na tomto místě bych si dovolil ještě jednu poznámečku. Před nedávnou dobou vyšla nová verze SpeechDispatcheru (0.6.7), která obsahuje nastavení zvukového systému (*AudioOutputMethod) v těle speech-dispatcher.conf, ale hlavně nástroj spd-conf, což je intuitivní skript v Pythonu, který za vás konfigurační soubor sám vygeneruje (v novém Ubuntu 8.10 již samozřejmě bude a nejspíš bude možno použít i výchozí PulseAudio, takže nebude třeba měnit metodu na "ALSA").
U systémů, které používají jako výchozí zvukový server PulseAudio, je nutno změnit příslušná nastavení tak, aby používaly ALSA (u GNOME Systém-Volby-Zvuk) a taktéž se mi osvědčilo odstranit podporu pro PulseAudio.
apt-get remove gstreamer0.10-pulseaudio
Vše završíte restartem SpeechDispatcheru (/etc/init.d/speech-dispatcher restart) a testem, zda vše funguje.
spd-say "Toto je test"
Měli byste slyšet, jak na vás počítač poprvé promluví :-)
Ozvučení konzole - odečítač YASR
Máte již zavedeny syntezátory i démon, který se bude starat o zasílání zpráv těmto syntezátorům, nicméně nemáte žádný ScreenReader (odečítač obrazovky), který by jim tyto zprávy posílal. A zde nastupuje YASR. Dříve však, nežli jej budete instalovat, je třeba lehce překonfigurovat nastavení konzole.
apt-get install console-data console-setup setupcon dpkg-reconfigure console-data dpkg-reconfigure console-setup setupcon
Systém se vás dotáže na několik věcí. Asi nejpodstatnější bude volba kódování na UTF-8, nastavení české klávesnice, definice množiny použitých znaků na Latin2 - Střední Evropa a taktéž volba písma (fixed). Nebojte se, vším vás provede průvodce, který s vámi bude (aspoň v Ubuntu) komunikovat mateřským jazykem.
Máte-li tedy správně nakonfigurovanou konzoli, nainstalujte YASR (je nutno mít verzi 0.6.8 a vyšší): apt-get install yasr
. V souboru /etc/yasr/yasr.conf proveďte jeho konfiguraci, moje vypadá následovně.
Nyní bych ještě doporučoval přidat do /etc/profile následující segment kódu tak, aby se yasr spouštěl vždy po vstupu na konzoli a přihlášení (to se bohužel musí dít naslepo, ale vzhledem k tomu, že se jedná o zadání uživatelského jména, potvrzení, zadání hesla a opětovného potvrzení, není to žádný velký problém).
if [ "$TERM" == "linux" ] || [ "$TERM" == "screen" ]; then if [ "$(uname -r)" != "2.6.24" ]; then yasr fi if [ "$(uname -r)" == "2.6.24" ]; then export LANG="cs_CZ" export LANGUAGE="cs_CZ" export LC_ALL="cs_CZ" fi fi
Jen si musíte změnit verzi jader (hodnoty "2.6.24"), což je jádro opatchované SpeakUpem - jedná se o to, že je nutno ošetřit situaci, kdy by začal mluvit jak YASR tak SpeakUp a jediné, čeho by se dosáhlo, by bylo shození SpeechDispatcheru.
I Emacs by rád promluvil
K tomu, aby s námi komunikoval lidskou řečí taktéž (opět to slovo použiji) nadeditor Emacs, je třeba zavést lispovskou knihovnu speechd-el a upravit trošičku konfiguraci, nejedná se však o zásadní změny.
apt-get install emacs speechd-el sound-icons
A do ~/.emacs připište následující řádky:
speechd-speak) (speechd-set-language "cs") (speechd-set-output-module "festival")
Samozřejmě lze namísto festival nastavit output-module i jinak, nicméně Festival podporuje tzv. zvukové ikony (balíček sound-icons), které poskytují zvukové signály například při přechodu mezi řádky, postavení kurzoru na mezeru atp.
Spustíte-li v tomto okamžiku Emacs (příkaz emacs), měl by na vás již mluvit.
Domnívám se, že toho dneska bylo až až, takže bych navrhoval počkat do příštího týdne, kdy společně nainstalujeme odečítač obrazovky Orca (trochu nestandardním způsobem) a taktéž si ukážeme, jak zavést konzolový ScreenReader SpeakUp, což bude taktéž obnášet i překlad jádra.