Déri András, Fülöp Csaba, Micsik András
MTA SZTAKI Elosztott Rendszerek Osztály (DSD)
1111 Budapest, XI. Lágymányosi u. 11.
{deri, csabi, micsik}@dsd.sztaki.hu
http://dsd.sztaki.hu/
Kivonat: A VoiceXML a W3C egyik
legfrissebb ajánlása, amely a hanggal vezérelt párbeszédek leírására szolgál,
és ezáltal a WWW nyújtotta előnyöket próbálja a telefónia világában is
bevezetni. Ennek az ajánlásnak egyik 'mellékhatása' lehet a webes és telefonos
világ összekapcsolódása. A bármilyen telefonkészüléken keresztül használható
ún. hangböngészőkön keresztül újszerű hang-alkalmazások válnak egyszerűen
és szabványos módon megvalósíthatóvá. Az EU által támogatott PublicVoiceXML
projekt keretében elkészült az egyik első ingyenes és nyílt forráskódú
megvalósítása a hangböngészőnek. Az MTA SZTAKI Elosztott Rendszerek
Osztálya e projekt keretében több www-hang vegyes alapú példa alkalmazást
készített el, valamint összehangolja a PublicVoiceXML szabad szoftver
nemzetközi fejlesztését.
A VoiceXML egy XML alapú nyelv, amely ember-gép párbeszédek leírására szolgál telefonos illetve hangvezérelt környezetben. A VoiceXML a W3C ajánlása, és leginkább a telefonos szolgáltatások terén számíthat széleskörű alkalmazásra. A nyelv főbb elemei: híváskezelés, beszédszintézis, beszédfelismerés, hangrögzítés és hanglejátszás, DTMF (tone) billentyűk lenyomásának felismerése.
A VoiceXML alapjaiban hasonlít a HTML nyelvre, azonban a hang egy "soros" média, ezért a VoiceXML további nyelvi eszközöket ad a különféle hangos párbeszédelemek sorrendjének vezérlésére. VoiceXML-ben is léteznek menük, ahol hangbemondás vagy billentyűzés alapján választhatunk, valamint kérdőívek, amelynek mezőit hanggal vagy billentyűzéssel kitölthetjük. Az ECMAscript a VoiceXML integráns része, melyet sok helyen használhatunk, például változók, hivatkozások értékeinek kiszámításánál. A felhasználótól kapott input alapján másik VoiceXML oldalra ugrást generálhat a nyelv, vagy a CGI szabályai szerint továbbíthatja az adatokat egy szkriptnek vagy alkalmazásnak.
A VoiceXML 2003. február 20-án lépett a Candidate Recommendation fázisba, azaz a W3C megvalósításokat és visszajelzéseket vár az ipartól, és ezektől függően várhatóan még ez év első félévében dönt arról, hogy a VoiceXML teljes jogú ajánlás lesz-e.
Az MTA SZTAKI Elosztott Rendszerek Osztálya részt vesz a PublicVoiceXML európai projektben, amelynek eredményeiről számolunk be itt. A PublicVoiceXML projekt célkitűzése, hogy megvalósítson egy hangböngészőt, valamint, hogy kifejlesszen és kipróbáljon hang-alapú szolgáltatásokat. Elsőként a projekt keretén belül kifejlesztett hangböngészőt ismertetjük, majd az ehhez készített példa alkalmazásokat.
Hangböngészőnek (voice browser) nevezik azt a szoftvert,
amely a VoiceXML nyelven definiált dialógusokat végrehajtja, és hanggal
kommunikál a telefonon vagy más "hangos" módon kapcsolódott felhasználóval.
Telefonos felhasználás esetén tehát a hangböngésző fogadja a
telefonvonalon érkező hívásokat és végrehajtja a beállított induló
VoiceXML oldalt. Ezután folyamatosan értelmezi és végrehajtja az aktuális
VoiceXML oldalakat, érzékeli a felhasználó által mondott szöveget vagy leütött
billentyűket, ezekre hanglejátszással vagy beszédszintetizálással
válaszol, illetve bizonyos esetekben a reakció lehet a hívás más telefonra történő
átadása vagy a hívás befejezése. Az alkalmazás lényegét, belső logikáját
megvalósító szoftverkomponenssel a hangböngésző tipikus esetben HTTP
protokoll segítségével kommunikál, és a CGI szerint küldött paraméterekre egy
új VoiceXML oldalt kap válaszul. Látható, hogy az ilyen "hangos" alkalmazások
felépítése nem sokban különbözik a webes alkalmazásoktól. Az alkalmazás
belső logikáját és a VoiceXML oldalak generálását bármely CGI vagy servlet
környezettel meg lehet oldani (Tomcat+JSP, Apache+PHP stb.).
A PublicVoiceXML projekt hangböngészője is a projekt nevét viseli. Ez a kis- és középvállalkozásoknak szánt ingyenes szoftver az alacsony árfekvésű hardverekkel való együttműködésre készült. Használatához ISDN vonalra van szükség, analóg telefonvonalakat pillanatnyilag nem támogat a szoftver. A böngésző C++-ban íródott, és felhasználja az OpenVXI VoiceXML értelmezőt, amely szintén szabad szoftver. A szoftver első verziója Windows-ra készült el, és 2002 decemberétől letölthető a SourceForge-ról. A Linux verzió várhatóan 2003 áprilisától lesz elérhető a SourceForge-on. A Linux változat CAPI meghajtón keresztül csatlakozik a telefonvonalhoz. A szoftver a beszédfelismerést kivéve a VoiceXML összes "kötelező" részét támogatni kívánja. A beszédszintézis és a beszédfelismerés erősen nyelv-függővé teszi a hang-böngészőket. Míg beszéd-generátorból elég jó a választék a legtöbb nyelv esetében, jó minőségű beszédfelismerő szoftverből kevés van, és ingyenes megoldás még kevesebb. A SZTAKI igyekezni fog a PublicVoiceXML szoftverhez magyar beszédszintetizáló megoldást illeszteni, hogy a magyar közönség számára is elérhetővé váljon nyílt és szabad VoiceXML platform.
A hangböngészők hangfelismerés nélkül, azaz DTMF (billentyű lenyomás "tone" üzemmódban) inputra korlátozva is sokféle új alkalmazást nyerhetnek a közeljövőben. Szemléltetésül néhány ilyen alkalmazást mutatunk be a következőkben.
Az itt bemutatandó VoiceXML példa alkalmazások nagy része a rádiózás területéről való, mivel a PublicVoiceXML projekt ilyen felhasználói kapcsolatokkal bír. Az alkalmazások ötletei és a működés módja is néhány kisebb, úgynevezett közösségi rádiótól származik, ahol ki fogják próbálni vagy ki is próbálták már ezeket az alkalmazásokat.
Az alkalmazások többsége PHP-ben íródott, az adatbázis kapcsolatot PEAR absztrakciós rétegen keresztül valósítva meg. A HTML és VoiceXML oldalak generálását Smarty template kezelővel végezzük. Így minden fejlesztőnek csak az általa ismert nyelvekkel és fájlokkal kell foglalkoznia: a web-grafikusoknak a HTML template-ekkel, a hangos felület tervezőinek a VoiceXML template-ekkel, a rendszerprogramozóknak pedig a PHP kóddal.
Az InterviewBox nevű alkalmazással interjúkat lehet készíteni telefonon keresztül. Amikor a riporter tárcsázza a megfelelő számot, elindul a felvétel. A telefon saját mikrofonja vagy külső mikrofon használható a kérdések és válaszok rögzítésére. A vonal bontása után a hangot tartalmazó fájl a szerverre kerül, és onnan a megfelelő jogosultsággal rendelkező munkatársak azonnal letölthetik, szerkeszthetik és leadhatják. A riporter azonosítása a hívószám vagy egy 4-jegyű kód alapján történhet. Egy mobiltelefon segítségével bárki bárhol készíthet így interjút, mindenféle előkészület nélkül.
Ezt az alkalmazást az ausztriai választások napján, 2002 november 24-én, nagy sikerrel alkalmazták ausztriai közösségi rádiók. Az előző években mindig nagy nehézséget okozott a telefon-interjúk időzítése, a telefonvonalak előkészítése. 2002-ben a fenti alkalmazás segítségével a riporterek szabadon, különösebb koordinációs kényszer nélkül készíthették az interjúkat, melyeknek hangminősége is meglepően jó volt. A szerveren összegyűlt interjúk lehetőséget teremtettek arra is, hogy a rádiók egymással szövetkezve, egymás műsorait felhasználva teljesebb képet adhassanak a választások éjszakájáról.
A PresentBox nevű alkalmazás felajánlott ajándékok szétosztását segíti. Gyakori, hogy rádióknál felajánlanak színház-, mozi- vagy koncertjegyeket, könyveket adott darabszámban. A hallgatók felhívhatnak egy telefonszámot, ahol meghallgathatják az ajándékok ismertetését, és jelentkezhetnek az őket érdeklő ajándékokra. A jelentkezési sorrend alapján a studióban elosztják az ajándékokat, amíg el nem fogynak. Ezt a folyamatot segíti a PresentBox szoftver. Az operátor hangos és szöveges ajándékleírásokat illeszt be a sorba, majd ezeket mind weben, mind telefonon keresztül végig lehet böngészni, és jelentkezni rájuk. Az operátornál egy helyen jelenik meg az összes webes és telefonos jelentkező. Az alkalmazás automatikusan kiveszi a sorból azokat az ajándékokat, amelyeknél már az összes példányra jelentkeztek. Ez az alkalmazás az első példánk arra, hogy hasonló funkcionalitás párhuzamosan érhető el webes felületen és telefonon keresztül.
A már megszokott webes vitafórumokat, faliújságokat,
törzsasztalokat is ki lehet egészíteni hangos eléréssel. Ekkor a webes
felhasználók a telefonos felhasználók üzeneteit hangfájlként meg tudják
hallgatni (a beszédfelismerés javulásával pedig akár szöveggé konvertálva
elolvashatják). A telefonos felhasználóknak a webről érkezett üzeneteket a
hang-böngésző felolvassa, a telefonról érkezett üzeneteket pedig
lejátssza. A telefonon keresztül a billentyűk lenyomásával lehet a
fórumban mozogni, illetve új hozzászólás felvételét elindítani és befejezni. A
navigáció telefongombokkal nem olyan kényelmes mint a web böngészőben,
ezért viszont kárpótolhat a kötetlenebb hozzáférés. A PublicVoiceXML projekt
keretén belül a net.board nevű fórumszoftvert egészítettük ki hangos
felülettel.
A hálózaton gyakran van szükség kisebb összegek kifizetésére (ún. micropayment). Ilyen esetekben egy emeltdíjas telefonvonal felhívásával is fizethetünk. Ha például szeretnénk a kiválasztott dokumentumot, képet, zenét letölteni, fel kell hívnunk egy telefonszámot. A telefonhívással kifizettük a kért összeget, és a telefonban hallható kóddal el tudjuk indítani a kívánt fájl letöltését. Egy ilyen fizess-vonal példa implementációját Java-JSP technológiával készítette el a projekt.
A W3C Voice Working
Group számos ajánlást készít elő a telefon és beszéd használatára
felhasználói felületeken. Ezek közül a legfontosabb a VoiceXML, amely új
lendületet adhat a telefon és a hangvezérlés alkalmazásának a jelenleginél
szélesebb körben. A VoiceXML egyik hatása lehet a ma még igen drága és egyedi
hardverhez kötött call center megoldások olcsóbbá válása. A web és a hang
együttes vagy párhuzamos használata új felhasználói felületek és új telefonos
szolgáltatásfajták megjelenését segítheti elő. Ezt támasztják alá az itt
bemutatott példa alkalmazások is, melyeket a közösségi rádiók igényei alapján
valósítottunk meg. Reméljük, hogy az ingyenes és nyílt forráskódú
PublicVoiceXML hangböngésző is hozzájárul ehhez a fejlődéshez.
A szerzők ezúton
köszönik a PublicVoiceXML projekt tagjainak segítségét (Public Voice Lab
Ausztria, Team Teichenberg Ausztria, MTA SZTAKI Elosztott Rendszerek Osztály).
Az IST-2001-34546 számú PublicVoiceXML projektet az EU támogatja.
http://www.w3.org/TR/voicexml20/
Voice Extensible Markup Language (VoiceXML) Version 2.0
http://www.w3.org/Voice W3C Voice Browser Working Group
http://www.publicvoicexml.org/ PublicVoiceXML projekt honlapja
http://dsd.sztaki.hu/
MTA SZTAKI Elosztott Rendszerek Osztály honlapja