Nevidomí a počítače - problémy, ale i příležitosti

Když jsem si poprvé připravoval přednášku, na které jsem měl laické veřejnosti představit práci nevidomého s počítačem a konkrétně řešení, na jehož vývoji se podílím, zjistil jsem, že vlastně musím nejprve vysvětlit, kdo to ti nevidomí jsou a jak vypadá jejich svět. Stejně to zamýšlím udělat i nyní a tak jsem tento článek rozděli na dvě části: úvod do světa nevidomých a techničtější povídání o tom, jak to tedy na tom počítači v praxi funguje.
Kapitoly článku
  • Úvod
  • Co mají nevidomí k dispozici?

V minulé kapitole jsem trošku nastínil své chápání světa nevidomých a to, proč si myslím, že je pro ně počítač velmi důležitou pomůckou, ale nevysvětlil jsem, jakým způsobem by s ním mohl nevidomý pracovat. Zkusme se tedy podívat, jaké jsou možnosti pod operačním systémem GNU/Linux.

Co se týče vstupu do počítače, zde problém není. Nevidomí nemají žádnou speciální klávesnici, to není potřeba. Naučit se psát všemi deseti bez koukání na klávesnici je snadné. I já, přestože vidím, se při psaní tohoto článku na klávesnici nedívám.

Otázkou ale je, jak vyřešit výstup, když se nevidomý člověk nemůže dívat na monitor. Jak se takový člověk dozví, co opravdu napsal a jak na to počítač zareagoval? Jsou v zásadě dva hlavní přístupy: braillský řádek a řečová syntéza.

Braillský řádek je taková podlouhlá věc, co má vpředu jeden řádek brailských znaků, které se vytvářejí mechanicky pomocí vysouvání a zasouvání jednotlivých jehliček. Nevidomý potom přes tento řádek přejíždí prsty a čte. Po stranách jsou potom ještě navigační knoflíky, pomocí kterých lze určit, jaký řádek se má na brailském terminálu zobrazit (nahoru, dolů, doprava, doleva, ...), standardně je sledován kurzor.

Čtenář si jistě všimne, že toto má samozřejmě nejlepší využití v textových terminálech, kde se tímto způsobem dá prozkoumat celá obrazovka. I proto se myslím, že GNU/Linux je v tomto směru dobrým řešením, protože většinu věcí můžete dělat z textového terminálu, který je v GNU opravdu výborně propracován.

Druhou, a v současné době stále populárnější volbou, je řečová syntéza. Syntetizér skládá dohromady předem nahrané hlásky či dvojhlásky a následnou transformací vzorku dodává intonaci, aby tak ze vstupního textu vyprodukoval zvukový soubor, ve kterém syntetický hlas vstupní data čte nahlas. Se syntetizátorem pak komunikují jednotlivé specializované aplikace, které mu částečně na základě uživatelova přání a částečně automaticky posílají data, která je třeba přeříkat nahlas.

Takovým svobodným syntetizérem pro GNU/Linux je například Festival, podporující angličtinu, španělštinu a v současné době s využitím nesvobodné, ale zdarma stáhnutelné komponenty MBROLA i češtinu a němčinu, či o mnoho jednodušší Flite, mluvící zatím pouze anglicky.

Je ale nutno si uvědomit, že informační kanál výstupu z počítače je pro nevidomého daleko užší, než ten, kterým vnímáme informace my vidící. I když třeba nevidomý používá syntézu i braillský řádek zároveň, pořád to není srovnatelné s tím, když já vidím celou obrazovku najednou. Co se tedy týče softwarové syntézy, objevila se potřeba nějak příchozí zprávy třídit a snažit se přeříkávat jen ty nejdůležitější a ty opravdu podstatné.

Navíc byla i potřeba poskytnout GNU/Linuxovým aplikacím nějaké jednotné rozhraní k syntetizátorům, protože až doteď v tom byl velký guláš a každá aplikace si musela sama udržovat ovladače k několika různým zařízením. (Čtenáře možná překvapí, že kromě softwarové syntézy řeči existují i hardwarová zařízení, což jsou takové malé krabičky, které můžete připojit na sériový port a ony přeříkávají veškerý text, který se do nich pošle.)

Proto jsme v projektu Free(b)soft vytvořili Speech Dispatcher, což je jakýsi server, který se v GNU/Linuxu stará o komunikaci mezi aplikacemi a řečovými syntetizéry. Aplikace tedy po socketu pošle nějaký požadavek, např. ,,přemluv tuto zprávu`` nebo ,,ztichni``, Speech Dispatcher se pak na základě požadavků ostatních aplikací a priorit zpráv rozhodne, co má udělat, a případně nechá zprávu na daném zařízení přeříkat. Pro programátora to má obrovskou výhodu v tom, že používá pouze abstraktní příkazy v jasně definovaném protokolu a vůbec se nemusí starat o to, jaké zařízení je nakonec bude plnit, jaký je komunikační mechanismus toho či onoho syntetizéru a zda se náhodou nedostane do konfliktu s nějakou jinou aplikací. Takové přirovnání by mohlo být, že co je velmi high-level API pro grafiku, to je Speech Dispatcher pro syntézu řeči. Programátorovi stačí používat jednoduché funkce jako spd_say(fd, "Ahoj svete", SPD_MESSAGE), spd_stop(fd) nebo spd_set_rate(50), či jejich ekvivalenty v jiných programovacích jazycích.

Když už již tedy rozumíme tomu, jak může fungovat řečová syntéza, zbývá podívat se na konkrétní koncové aplikace pro nevidomého uživatele.

Samozřejmě je ozvučen GNU Emacs. Emacs totiž již zdaleka není jen textovým editorem, ale obsahuje také webový prohlížeč, poštovního klienta, rozhraní k bashi, kalendář a ještě spoustu dalších důležitých aplikací. Původním projektem pro ozvučení Emacsu byl Emacspeak, který je dnes ve světě široce používán. Nám ale připadalo, že Emacspeak má nějaké koncepční nedostatky a také nebylo vůbec jednoduché jej propojit se Speech Dispatcherem. Proto v rámci projektu Free(b)soft vznikl jiný přístup k ozvučení Emacsu: speechd-el. Speechd-el je určen hlavně pro ty uživatele, kteří chtějí využívat výhod Speech Dispatchera a preferují přístup, kdy je otázka uživatelsky specifického nastavení ponechána raději přímo na nich, než aby se program snažil sám být chytrý a přitom dělal věci, které možná uživatel ani vůbec nechce. Výhoda speechd-el je také v tom, že řeší věc na poněkud nižší úrovni a tak implicitně zpřístupňuje všechny aplikace, které v Emacsu fungují (www browser, poštovní klient) bez nutnosti mít pro ně specializovaný kód, jako je tomu u Emacspeaku.

Myšlenka je prostě, aby to při práci uživatele četlo text pod kurzorem, aby to mělo i příkazy pro čtení znaku, řádky, bufferu a aby to četlo také zprávy, které se objevují v minibufferu a v různých jiných částech obrazovky jako odpovědi na uživatelovy akce. Toto je samozřejmě velmi zjednodušené schéma, ve skutečnosti je těch možností více, ale pro základní porozumění to myslím stačí.

Všem, koho by zajímalo, jak tyto věci na GNU/Linuxu pracují, dopročuji je vyzkoušet. Nemusíte se při tom bát, že byste to nezvládli, protože všechny aplikace pro práci nevidomých mají samozřejmě i obyčejný vizuální výstup a to, že u toho ještě mluví, je jen jakýsi přídavek. Můžete se tím také podílet na testování a oznamovat vývojářům chyby, což je velice užitečné. Nakonec, řečová syntéza se dá využít pro mnoho zajímavých věcí i vidícím uživatelem. Pokud se nechcete trápit s instalcí, můžete vyzkoušet demonstrační bootovatelné Free(b)soft CDROM (nepotřebujete nic instalovat a nepotřebujete mít na disku ani systém GNU/Linux).

Jinou zajímavou aplikací je Speakup. Speakup je screen reader zabudovaný přímo do kernelu. Screen readery jsou programy, které odněkud vytahují obsah aktuální textové obrazovky a pomocí jakéhosi imaginárního kurzoru, kterým se po ní pohybujete, vám ji dovolují číst. Navíc umí pracovat i v módu, kdy přeříkává to, co se na obrazovce právě změnilo, což je užitečné např. v příkazové řádce, kdy to čte písmena, jak je postupně zapisujete, a po stisknutí enter vám vrátí odpověď systému. Screen readery jsou takové obecné řešení pro aplikace, u kterých není k dispozici nic lepšího. Jelikož ale pouze ,,hloupě`` čtou obrazovku a nijak nepracují s kontextem a významem informací na ní, jsou v mnoha příležitostech značně nemotorné. Přesto je to často jediná volba.

Na Speakupu je však zajímavé, že díky zabudování v kernelu může ve spolupráci s hardwarovými syntetizéry začít mluvit v už relativně ranné fázi bootování a nevidomý uživatel není úplně ztracen ani když se systém kvůli nějaké chybě nepodaří nastartovat do normálního režimu. Může situaci řešit sám, bez nějaké asistence, a to je výborné. Speakup už dokonce nyní může pomocí Speech Dispatchera pracovat i se softwarovou syntézou, jakou je např. Festival. K tomu ale navíc ještě potřebujete malého interface daemona Speechd-Up.

Projekt GNOME Accesibility pracuje dokonce i na ozvučení grafického desktopového prostředí GNOME, ale zatím je to stále v ranné fázi vývoje a zřejmě nepříliš použitelné. Proč je nutno podporovat řečový výstup i u grafických desktopů? Protože vidící uživatelé prostě stále více používají grafické rozhraní místo textového a tak některé kritické aplikace v textovém režimu neexistují: Mozilla se svou podporou javascriptu a dalších modernějších technologií, OpenOffice pro čtení dokumentů z MS Office. Z velké části ale i proto, že věřím, že nevidomí uživatelé by neměli být odstrkováni stranou a měli by mít přístup k aplikacím, které používají vidící. A naopak.

Snažil jsem se v tomto článku trošku vysvětlit, jak mohou nevidomí lidé pracovat s počítači a jaké k tomu mají pod GNU/Linuxem nástroje. Mějte však na paměti, že tento výčet je pouze velice povrchní a schematický. Některé věci jsem záměrně podstatně zjednodušil. Doufám však, že jsem poskytl alespoň všeobecný přehled a výchozí bod pro vaše samostatné bádání a zkoumání.

Autor Hynek Hanke spolupracuje na projektu Free(b)Soft

  • Úvod
  • Co mají nevidomí k dispozici?

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,