přejít na obsah přejít na navigaci

Linux E X P R E S, Řečová syntéza v praxi aneb Rozmluvte svůj počítač

Řečová syntéza v praxi aneb Rozmluvte svůj počítač

Hned na úvod bych chtěl pozdravit především všechny ty z vás, kteří se prokousali vší tou (možná místy i nezáživnou) teorií a čtou tyto řádky. Jak jsem napsal v samotném závěru předcházejícího článku, dosti již bylo teorie, vrhněme se vstříc praxi - naučte mluvit i svůj počítač!


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.

Nahoru

Příspěvky

Řečová syntéza v praxi aneb Rozmluvte svůj počítač
likvid 2. 10. 2008, 10:24:08
Odpovědět  Odkaz 
zdravim,

perfektni Martine :o)
uz se tesim na dalsi dil....
Řečová syntéza v praxi aneb Rozmluvte svůj počítač
Petr Malý 4. 10. 2008, 03:51:08
Odpovědět  Odkaz 
Zdravím,

jede to i pod něčím jiným než pouze debianem a ubuntu? Používám opensuse. Podařilo se mi natáhnout vše až na festvox-czech. Nevíte někdo, jak na to?
Řečová syntéza v praxi aneb Rozmluvte svůj počítač
Martin Sukaný 4. 10. 2008, 15:17:25
Odpovědět  Odkaz 
Zdravím,

ano, ono to poběží de facto pod čímkoli ...
Festival-Czech naleznete na http://www.freebsoft.org/festival-czech - bude nutná kompilace, ale mám takový pocit, že u toho je docela dost přehledné HOWTO (INSTALL).
Řečová syntéza v praxi aneb Rozmluvte svůj počítač
Jiří Podvolecký 13. 12. 2009, 21:23:30
Odpovědět  Odkaz 
Dobrý den,

rád bych si vyzkoušel rozmluvit svůj počítač, narazil stem však na problém. Postupoval jsem podle návodu, ale nemohu najít soubor /etc/init.d/festival.

Děkuji za pomoc.

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz