Java alapú hordozható kliens vakok számára hálózati ok elérésére * Dr. Juhász Zoltán 1, Dr. Arató András 2, Hevesi Vilmos 1, Pratser Frigyes 1 1 Veszprémi Egyetem, Információs Rendszerek Tanszék 8200 Veszprém, Egyetem u. 10. 2 KFKI-RMKI Beszéd- és Rehabilitácó-technológiai Osztály 1121 Budapest, Konkoly-Thege út 29-33. juhasz@irt.vein.hu, arato@sunserv.kfki.hu Kivonat Az informatikai ipar, lenyűgöző fejlődése ellenére, a mai napig nem képes általános, bárki által használható rendszereket készíteni. Ez különösen igaz a tömegtermelésre kifejlesztett személyi számítógépekre és programjaikra. A szabványos kezelőeszközök és felhasználói interfészek olyan metafórákat, mentális modelleket és fizikai kialakításokat használnak, melyek a felhasználók egészséges többségének képességeit veszik alapul. Különösen hátrányos helyzetbe kerültek mára a vakok és gyengénlátók, mivel a grafikus felületek egyeduralkodóvá válása miatt már a viszonylag egyszerű programokat is csak rendkívüli erőfeszítések árán tudják használni. Cikkünkben egy olyan alternatív kéziszámítógépre épülő megoldást ismertetünk, mely kimondottan a vakok igényeinek megfelelő kezelőfelülettel rendelkezik, kisméretű, olcsó és hordozható, ám mindezek ellenére lehetővé teszi a Braille gépelést és támogatja a tipikus számítástechnikai feladatok elvégzését (levélírás, olvasás, jegyzetelés, levelezés, számolás, internet elérés). A cikk részletesen tárgyalja a kifejlesztett rendszer architektúráját, a szoftver felépítését és működését, valamint a hálózati -elérés támogatására alkalmazott módszereket. 1. Bevezetés A vakok és gyengénlátók számára az információs társadalom tagjává válni alapvetően nem az Internet elérés, illetve a web-oldalak olvasásának nehézkessége, hanem a számítógép használata miatt nehéz. A látók számára kifejlesztett (bár számukra is gyakran nehézkes), vizuális kiválasztásra és rámutatásra épülő grafikus felületek nagymértékben megnehezítik, sok vak felhasználó számára lehetetlenné teszik a gép használatát. Erre a problémára próbálnak megoldást nyújtani a képernyőolvasó programok [1], melyek a program ablakokban megjelenő szöveget, illetve a grafikus elemeket (pl. lista, gomb, stb.) reprezentáló információt egy beszédszintetizátor segítségével (Text-to-Speech, TTS) hanggá alakítják. E módszernek azonban több hátránya is van: (i) bonyolultsága és a viszonylag kis piac miatt költséges megoldás, (ii) valójában csak olyan alkalmazások esetén működik jól, ahol szöveget kell hanggá alakítani, nincs vizuálisan kódolt információ (pl. táblázatok, képek, web oldalak beágyazott programrészekkel, stb.), amit értelemszerűen nehéz hanggá transzformálni, (iii) nem oldja meg az alapproblémát, nevezetesen a számítógép használatának egyszerűsítését. Ez utóbbi különösen fontos lenne idős kori látásromlásban, vakságban szenvedőknek, akik számítástechnikai ismerete nem teszi lehetővé a felolvasóprogramok használatát. Meggyőződésünk, hogy egy mai átlagos vak felhasználónak olyan eszközre van szüksége, mely lehetővé teszi, hogy napi feladatait (levélírás, olvasás, jegyzetelés, elektronikus levelezés, számolás, elektronikus könyv olvasás, valamint internet használat hírek, hivatalok, ok elérése és szórakozás céljából) úgy hajtsa végre, hogy nem is vesz tudomást a számítógépről, hasonlóan például az ugyancsak számítógépvezérelt digitális fényképezőgépek és DVD lejátszók kezeléséhez. Ebben a cikkben egy olyan eszköz prototípusát ismertetjük, mely nem gép-, hanem feladat- és felhasználói készségközpontú, és remélhetően hamarosan többezer hazai, a jövőben pedig többmillió külföldi vak és gyengénlátó életét könnyíti meg. A cikk 2. szakaszában ismertetjük a kifejlesztett mobil segítőtárs követelményeit, tervezési céljait, valamint a rendszer alapvető működését. A 3. szakaszban foglalkozunk a Java szoftver architektúra részletes felépítésével, legfontosabb tulajdonságaival. A 4. szakasz a mobil segítőtárs hálózati felhasználását tárgyalja, különös figyelmet szentelve a Java mobil kód és Jini technológia adta dinamikus IHM-ITEM projekt, nyílvántartási szám: 116
felfedezés és felhasználói interfész letöltés lehetőségének. A cikk végén összegezzük az eddigi eredményeket és kitérünk a különböző továbbfejlesztési és felhasználási lehetőségekre. 2. A mobil segítőtárs Az eszköz kifejlesztése során a két legfontosabb célkitűzés az volt, hogy minél olcsóbb és hordozható rendszer jöjjön létre, ami állandóan a vak felhasználónál lehet. Nem közismert tény, de a vak felhasználóknak átlagosan háromszor drágább a számítógép beszerzése, mint a látóknak, mivel egy képernyőolvasó program ára két közepes számítógépével egyezik meg. Ha valaki Braille billentyűzetet, esetleg Braille pontolvasót is szeretne használni, többmillió forintos kiadásra számíthat. A költség minimalizálása és a hordozhatóság csak tömegtermékkel érhető el. A jelenlegi hardver technológia mellett a kéziszámítógépek (PDA) felelnek meg ennek az igénynek. Egy tipikus kéziszámítógép teljesítménye összemérhető egy előző-generációs asztali számítógéppel (200-400 MHz CPU, 32-64 MByte RAM), rendelkezik hanglejátszási és -felvételi lehetőséggel, illetve számítógép hálózati kapcsolattal (Bluetooth, WLAN Ethernet)[2]. A készülékek érintőképernyővel is rendelkeznek, miáltal a programok közvetlenül a képernyőn látható interfészelemekre kattintással vezérelhetők; az áruk gyártótól és típustól függően 80-150 eft között változik. Valamennyi kéziszámítógép csak grafikus felületen keresztül működtethető, így módosítás nélkül vak felhasználók számára ezek is használhatatlanok. A mobil segítőtárs kifejlesztése során tehát meg kellett oldanunk a grafikus felület kiváltását, és azt a vak felhasználók igényeit kielégítőre kellett formálnunk. A megoldást egy egyedi szoftver keretrendszer kifejlesztése jelentette. A továbbiakban ennek a rendszernek a főbb jellemzőit ismertetjük. Adatbevitel A kéziszámítógépek kétféle módon juthatnak felhasználói adathoz: vagy az érintőképernyőre írással illetve egy virtuális billentyűzet gombjainak megnyomásával lehet gépelni, vagy a géphez kapcsolható külső billentyűzettel. Az érintőképernyőn keresztül csak látók tudnak gépelni, a külső billentyűzet pedig kezelési problémákhoz vezet. Mivel a vak felhasználók gyakran használnak Braille írógépet vagy Braille táblát (kis fém sablon, mely segítségével a megfelelő helyeken kilyukaszthatják a papírt amelyre írnak) természetesnek tűnt a Braille gépelés lehetőségének kialakítása. Az 1. ábrán látható a magyar ABC néhány betűjének 6-pontos Braille megfelelője. J K L Ly M N Ny Sz T Ty U Ú Ü Ű 1. ábra Néhány magyar karakter Braille megfelelője. A sötét pontok az aktív, papíron kidomborodó pontokat jelzik. A rendszer első megvalósítandó funkciója így egy virtuális Braille billentyűzet kialakítása volt. Erre a kéziszámítógép érintőképernyőjét használjuk fel, melyen kilenc érintési pontot hozunk létre. A 2.a ábrán látható hogy, az 1-6 gombok a Braille pontok megfelelői, míg a további három gomb a karakter elfogadó gomb (F), valamint a törlés () és szóköz ( _ ) gombok. A felhasználó az adott karaktert reprezentáló pontokat egymás után megnyomva, majd elfogadva (F) gépeli be a karaktert, ami a képernyő alján elhelyezkedő szöveg mezőben jelenik meg. Ez a gyengénlátókat, illetve a vak felhasználót segítő, vele együtt dolgozó látó felhasználókat segíti. Természetesen ezt az érintőképernyő rendszert sem tudnák a
vakok ebben a formában használni, hiszen nem tudnák hol helyezkednek el a pontok. Erre a megoldást egy egyszerű kiegészítő jelenti. A 2.b ábrán látható módon az érintőképernyő felett elhelyezünk egy műanyag lapot, mely a pontok felett lyukas. Ez a lap egyrészt az érintési pontok felé vezeti a felhasználó ujját, valamint meggátolja, hogy a képernyőt más ponton nyomják meg. Mivel a képernyőt csak adatbevitelre, és minden program esetén azonos módon, használjuk, a vezető sablon univerzális. A rendszer elméleti beviteli sebessége 300 leütés percenként, ez a magyar nyelv karakterfrekvenciájából adódó átlagos 2,8 Braille pont/karakter plusz egy elfogadó gomb lenyomást számolva kb. 80 karakter (10-12 szó) per perc. A valóságban azonban, különösen idősebb felhasználók esetén, a gépelési sebesség valószínűleg nem haladja meg a 60-100 leütést percenként, ami kb. 16-36 karaktert, illetve átlagosan 7 karakter per szóval számolva 2,3-5,2 szó per perc gépelési sebességet jelent. Az ujjak vezetésére szolgáló műanyag rács F 1 4 2 5 F 1 4 2 5 3 6 3 6 Begépelt szöveg Begépelt szöveg Navigáló gomb a) b) 2. ábra a) A virtuális Braille billentyűzet sematikus rajza. b) A billentyűzet és a vezető sablon használat közben Visszajelzés (output) A vakok számára nélkülözhetetlen hang visszajelzés több szinten valósul meg. A gombok megnyomását és törlését hangjelzés kíséri. Egy adott karakternek megfelelő lenyomott pontok elfogadása (F) után a rendszer kimondja a karaktert (vagy emberi felvett hang lejátszásával, vagy beszédszintetizátor / Text to Speech - TTS/ segítségével), egy határoló karakter (szóköz, vessző, pont) után pedig a TTS automatikusan felolvassa az utolsó begépelt szót. Mivel a rendszer támogatja a magyar Braille rövidírást is, ilyenkor egy szó rövidírás formájának begépelése (pl. ogb) után a rendszer automatikusan előállítja a teljes megfelelőt (országban) és a TTS ezt olvassa fel. A TTS a rendszer egyetlen komponense, mely C++ nyelven íródott. Programvezérlés A vakok számára a kényelmes gépelés, hang visszajelzés mellett a harmadik fontos kezelhetőségi kérdés a program vezérlése, használata. A rendszer egy univerzális navigációs menürendszert használ, amely lehetővé teszi minden program azonos kezelését. Ez a vezérlési elv a BraiLab PC során került kifejlesztésre [5]. A működés elve egyszerű, a programok egy hierarchikus menü struktúrába szerveződnek (3. ábra), melyen belül négy gomb segítségével lehet navigálni. Az egyes menüszintekről a jobb nyíl gomb (, lásd 2.b ábra navigáló gomb) megnyomásával lehet egy specifikus menübe lépni. A menü adott szintjén a le, fel ( ) gombok segítségével lehet a menü elemek között választani. A folyamatos jobbra haladással eljutunk a menü végén található funkció végrehajtásához. A menüszintekről magasabb szintre a bal nyíl gombbal () léphetünk vissza. Ez a programvezérlési, navigációs rendszer garantálja, hogy a felhasználó nem tévedhet el a rendszerben, hiszen bárhol is van a programban, a bal nyíl
gomb ismételt megnyomásával visszajut a főmenübe, illetve nem kell minden új program esetén új vezérlési struktúrát megtanulnia. A beviteli módszerhez hasonlóan, a vezérlési rendszer is univerzális. Természetesen a menü nem jelenik meg a képernyőn, csak a hang visszajelzés tudatja velünk hogy éppen melyik menüpontban járunk. A hang, a program fejlesztőitől függően, lehet szintetizált TTS vagy (előre felvett) emberi hang. Szövegszerkesztő Új dokumentum Megnyit Hangoskönyv Felolvas 1. fejezet 1.1. fejezet Számológép 3. ábra A rendszer navigációs rendszere. 3. A rendszer felépítése A mobil segítőtárs szoftver architektúrája alapvetően négy modulból áll. A Braille egység feladata az érintőképernyő eseményeinek feldolgozása és a gépelt karakterek előállítása. A modul egy speciális állapotgéppel kiegészített eseménykezelő [3], mely elvégzi a Braille kód konverziókat és a rövidírás feldolgozást. A feldolgozás eredményét jelentő karakterek vagy karakter sorozatok képezik a TTS bemenő adatait. A menü egység szintén egy eseménykezelő, mely a négy nyíl billentyű lenyomása alapján vezérli a menürendszeren belüli navigációt. Amennyiben az adott menüpontnak nincs felvett hanganyaga, a menü parancs neve képezi a TTS bemenetét. A negyedik modul az alkalmazás, mely természetesen több alkalmazás példányt reprezentál. Az alkalmazás kapcsolatban áll mindhárom rendszermodullal, hogy reagálni tudjon az alkalmazáson belül a Braille billentyűzet és a navigálási rendszer eseményeire, illetve hogy audió visszajelzést tudjon adni a TTS-en keresztül. Gombnyomás Braille egység TTS egység Menü egység Alkalmazás 4. ábra A rendszer egységei és azok kapcsolata. 4. Hálózati ok elérése
A rendszer nem lenne teljes, ha nem tenné lehetővé a helyi alkalmazói programok futtatása mellett az Internet elérését, illetve Internetes alkalmazások használatát. Hálózati kapcsolattal rendelkező PDA-k esetén a kifejlesztett keretrendszer lehetővé teszi elektronikus levelek küldését és letöltését, valamint web oldalak letöltését. Ez utóbbi funkció jelen pillanatban csak kimondottan vakok számára írt, normál HTML oldalak olvasására alkalmas. Habár a vak felhasználók által jelenleg leginkább igényelt hálózati funkció a Web oldalak olvasási lehetősége (melyre természetesen szükség van), ez véleményünk szerint hosszútávon nem jelent megoldást a vakok számára. A jelenlegi web technológia nem teszi lehetővé a keresett információhoz való egyszerű hozzáférést, illetve funkcionalitás megjelenítését; célja szerverekről történő fájl letöltés HTTP protokoll segítségével. Egyszerűbben fogalmazva, a vakok nem feltétlenül Web oldalakat szeretnének elérni, hanem hasznos információt és okat. Természetesen ismert web URL-ek, portál oldalak ismeretében a keresés pontossága javítható, azonban nem várható el a vak felhasználóktól, hogy URL címeket memorizáljanak. Egy alternatív megoldás Web szerverek és HTML oldalak helyett olyan célzott ok kifejlesztése, melyek speciális információt illetve funkciókat tesznek a felhasználók számára elérhetővé. Az elképzelést egy hangoskönyv könyvtár példáján keresztül ismertetjük: A vak felhasználó egy könyvtárban megtalálható könyvet szeretne elolvasni. A mobil segítőtárs automatikusan felfedezi az elérhető könyvtár okat (minden más, nem könyvtár, t figyelmen kívül hagyva), melyek aztán szintén automatikusan beépülnek a keretrendszer menürendszerébe. A felhasználó a könyvtár menü keresés almenüje segítségével megkeresi a kívánt könyvet, majd megkezdi az olvasást. Amennyiben a könyv rendelkezik emberi hang állománnyal, a azt RTP stream formájában küldi vissza a kliensnek. Ez kiküszöböli a memória, illetve hosszú letöltésből adódó problémákat. Ha a könyv nem rendelkezik hanganyaggal, a szöveg töltődik le, amit a keretrendszer szintetizátora olvas fel. Szolgáltatás felfedezés Könyvtár Proxy letöltés F 1 4 2 5 3 6 Begépelt szöveg Menü rendszer beszúr Menü Interfész példány Szöveg és/vagy audió stream Zene Adattároló Csoportmunka Hír Bank Oktatási Üzenet 5. ábra Távoli hálózati ok elérése a mobil segítőtárs segítségével. Látható, hogy nyíl gombok megnyomásával, illetve néhány szó begépelésével elérhetővé vált a könyv; nem volt szükség URL ismeretére, begépelésére, a web oldal böngészésére, stb. Az 5. ábra illusztrálja az említett elveket és működési módokat. A rendszerünk Jini [4] technológiát használ a ok megvalósítására, ami az automatikus felfedezés mellett lehetővé teszi azt, hogy egy hoz több alternatív felhasználói felületet rendeljünk, melyek közül a kliens választja ki a számára megfelelőt,
esetünkben a vakok számára kifejlesztett interfészt. Látó felhasználók választhatják a hagyományos grafikus változatot. Természetesen további ok is elképzelhetők. Ezzel a módszerrel egyszerűen elérhetővé válhatnak hír- és zeneok, bankok, felhasználói csoportokat támogató ok, stb. Az elv kiterjeszthető nem szokványos esetekre is, pl. egy pénzkiadó automata is tartalmazhat egy egyszerű t, mely lehetővé teszi, hogy a vak felhasználók pl. Bluetooth hálózati kapcsolaton keresztül automatikusan letöltsék az automata vak vezérlőprogramját a PDA-ra, majd azon keresztül vezéreljék pl. a pénzfelvételi folyamatot. Hasonlóan, a rendszer lehetővé tehetné otthoni berendezések, pl. fűtés termosztát, stb. egyszerű, és univerzális leolvasását és vezérlését. 5. Eredmények A rendszer prototípus változata elkészült, képe a 6. ábrán látható. Jelenlegi kiépítettségében tartalmaz egy szövegszerkesztőt, hangoskönyv olvasó programot, névjegyzéket, email klienst és egy minimál web böngészőt. A készülékkel sikeresen írtunk levelet, melyet aztán Bluetooth kapcsolaton át elektronikus levélben továbbítottunk egy megadott címre, majd azt sikeresen le is töltöttük és TTS segítségével elolvastunk. A Web böngésző segítségével letölthetők ASCII és HTML fájlok. 6. ábra A kifejlesztett prototípus rendszer működés közben. A PC-n futó változattal sikeresen teszteltük a rendszer azon képességét, hogy felfedez és automatikusan futási időben a menürendszerbe szúr be távoli okat, mely igazolta a ok ezen elérési módjának egyszerűségét. Folyamatban van egy számológép program kifejlesztése, a web böngésző továbbfejlesztése, valamint több távoli megvalósítása. 6. Összefoglalás Ebben a cikkben ismertettünk egy Java alapú, kéziszámítógépen futó mobil segítőtárs szoftver rendszert, mely egyszerűbbé teszi vak felhasználók rutin számítógépes feladatainak elvégzését. A rendszer tartalmazza a legfontosabb alkalmazásokat, melyek Braille írással és egy egyszerű menürendszerrel vezérelhetők. A szoftver moduláris felépítésű, lehetővé teszi tetszőleges modul implementációk alkalmazását. A rendszer szintén lehetővé teszi hálózati ok elérését, a hagyományos email, web eléréstől a célzottabb Jini okig. Ez utóbbiak lehetővé teszik az információ és kívánt funkció egyszerűbb és automatikus elérését. Bár az eddigi eredmények rendkívül biztatóak, a rendszerre további tesztelés és fejlesztés vár. A PDA verzió befejezése mellett szeretnénk egy személyi számítógépen futó, bővebb funkcionalitású változatot is kifejleszteni, valamint elkészíteni több távoli implementációt. A fejlesztés eredményét szabadon felhasználhatóvá tesszük vak felhasználók és fejlesztések számára, bízva abban, hogy ez a
rendszer valóban felhasználásra kerül és könnyít a vakok és gyengénlátók számítógép kezelési problémáin. Köszönetnyilvánítás A szerzők szeretnék kifejezni köszönetüket az Informatikai és Hírközlési, valamint Oktatási Minisztériumnak az ITEM program keretében a projekthez nyújtott támogatásukért, valamint Buday László, Vaspöri Teréz, Csizmazia Rafael (KFKI-RMKI) és Mógor Emil (Veszprémi Egyetem) közreműködő kollégáknak áldozatos munkájáért. Irodalom [1] JAWS képernyőolvasó program. http://www.freedomscientific.com/fs_products/software_jaws.asp [2] HP-Compaq ipaq sorozat. http://www.hp.hu/ipaq/ [3] Blenkhorn. P., "A System for Converting Braille into Print," IEEE Trans Rehab Eng, Vol. 3, No. 2, pp. 215-221, 1995. [4] Sun Microsystems, The Jini Specification, http://www.sun.com/jini [5] G. Kiss - A. Arató - J. Lukács - J Sulyán - T. Vaspöri: BraiLab, a Full Hungarian Text-to-speech Microcomputer for the Blind. Proc. World Conference on Phonetics 1987 aug 1-4.