Telefonos szolgáltatások VoiceXML alapon

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.

1. Bevezetés

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.

2. Hangböngészők


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.).

2.1 PublicVoiceXML

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.

3. “Hangos” alkalmazások

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.

3.1 Interjúk

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.

3.2 Ajándékok

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.

3.3 Fórum


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.

3.4 Fizetés

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.

4. Összefoglalás

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.

Köszönet

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.

Hivatkozások

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