Idzard Silvius (2002)
Een spraak-webbrowser in VoiceXML
Master's thesis, Rijksuniversiteit Groningen.
[ Paper (PDF, 1534 kb) ]

1 Inleiding

1.1 Een webbrowser met spraakinterface

Vanaf de introductie van de eerste grafische interface op het World Wide Web in 1994, de Mosaic webbrowser, veranderde het web snel van een verzameling tekstdocumenten naar een verzameling grafisch georiënteerde documenten. Mosaic was de eerste browser die naast opmaak mogelijkheden voor teksten de mogelijkheid om figuren weer te geven ondersteunde. Webdocumenten konden vanaf dat moment middels Mosaic ook met een grafische applicatie bekeken worden. Dankzij de verspreiding van grafische gebruikersinterfaces via de Macintosh en Windows besturingssystemen vonden nieuwe web gebruikers 'point and click' instructies een voor de hand liggende manier om met een computer om te gaan (Abbate, 1999, p.216).

Toen in de jaren daarna het internet explosief uitgroeide is het grafische element in webpagina's nog veel belangrijker geworden. In plaats van alleen voor tekstondersteuning werden afbeeldingen steeds vaker gebruikt om menu's en menu items te presenteren. Naast het aantal afbeeldingen is ook het aanbod van multimedia in de vorm van beeld- en geluidsfragmenten op het web enorm toegenomen, maar het bekijken en / of beluisteren hiervan gebeurt normaliter vanuit een grafische webpagina, via een grafische interface. Ook de browser is met de groei van het internet steeds een grafische applicatie gebleven. Daarmee is naast de inhoud van het web ook de interface erop voornamelijk steeds grafisch geweest.

Voor de meeste mensen voldoet het grafische karakter van zowel het web als de interfaces hierop in de meeste gevallen erg goed. Het web is in de eerste plaats ontstaan als een manier om elektronische teksten aan te bieden en te raadplegen, en de meest overzichtelijke manier om een tekst weer te geven is met grafische ondersteuning, omdat men dan in één oogopslag een overzicht heeft van een pagina, mits de tekst een goede opmaak en de pagina een goede layout heeft. Een grafische interface kan ook zeer ergonomisch zijn: vaak duiden verschillende pictogrammen op de belangrijkste functies, deze kunnen in één oogopslag gelokaliseerd worden.

Ondanks de populariteit van de traditionele grafische interface via een PC is er met de groei van het internetgebruik de behoefte ontstaan aan andere interfaces op het web. In situaties waarin men gebruik van internet wil maken, maar niet de beschikking over een PC heeft, voldoet de standaard interface niet. Van hieruit rees de vraag om de grafische interface op het web los van de computer te koppelen. Mobiele telefoons met WAP maken (een beperkt deel van) het web toegankelijk op iedere plaats waar men GSM bereik heeft. Set Top Boxes die het web via de televisie toegankelijk maken kunnen een betere interface vormen voor mensen die niet met een computer willen of kunnen omgaan. Deze beide alternatieve interfaces zijn echter nog steeds visueel georiënteerd.

In bepaalde gevallen kan juist het visuele karakter van het web een belemmering vormen bij het verkrijgen van informatie. Visueel gehandicapte mensen hebben namelijk weinig tot niets aan een grafische interface en aan grafische content. Om toegang te krijgen tot de informatie op het web hebben vooral volledig blinde mensen een braille of auditieve (spraak-) interface nodig, en content die daar geschikt voor is. Ook al is de gemeenschap van visueel gehandicapten misschien relatief klein van omvang, het belang dat minderheidsgroepen zoals deze toegang tot het internet krijgen wordt steeds groter naarmate de rol van het internet in de maatschappij groeit. "Mensen met een handicap willen meegaan in de ontwikkelingen van deze tijd. Goede toegang tot internet is daarom belangrijk." (Van Dijk, 2001). Nu overheden, bedrijven en organisaties het medium internet steeds meer in hun communicatie gebruiken groeit de vraag naar toegankelijkheid voor iedereen. Representatie van webpagina's in spraak kan de informatie op het web voor visueel gehandicapten toegankelijk maken.

Er zijn verschillende manieren van aanpak om het grafische web in spraak beschikbaar te maken. In de eerste plaats zijn er de scherm-opleesprogramma's, 'screenreaders' genaamd. Dit zijn programma's die gemaakt zijn om computers in het algemeen toegankelijk te maken voor blinden. Ze werken meestal op het niveau van het besturingssysteem en lezen alles voor wat er op het scherm komt. De meest bekende zijn voor Windows Jaws en voor Linux Emacspeak van de bekende blinde toegankelijkheidspionier Raman [Zie http://emacspeak.sourceforge.net]. Deze programma's zijn niet speciaal gemaakt voor het representeren van webcontent maar hebben vaak wel speciale functionaliteit voor samenwerking met browsers. Gebruikersinvoer vindt plaats door middel van toetsenbord- en muiscommando's.

Naast screenreaders bestaan er ook speciale audio browsers voor blinden en slechtzienden, zoals Cast eReader [Zie http://www.cast.org/products/ereader/] en Sensus [Zie http://www.sensus.dk/]. Dit zijn browserapplicaties, net als Internet Explorer en Opera, maar dan met de extra functionaliteit dat de inhoud van webpagina's niet alleen grafisch, maar ook in spraak gerepresenteerd wordt. Soms zijn het zelfs audio uitbreidingen op bestaande browsers, zoals IBM's Home Page Reader dat een uitbreidingsmodule voor Internet Explorer is. Deze sprekende browsers zijn vaak meer geschikt om mee op het web te surfen dan algemene screenreaders, omdat er extra aandacht aan de omzetting van HTML-pagina's naar spraak besteed is.

Ook audio browsers zijn echter computerapplicaties die via toetsencombinaties worden aangestuurd. Hoewel de pagina's wel in spraak gepresenteerd worden kan de gebruiker het programma niet in spraak aansturen. Een webbrowser die niet alleen pagina's in spraak genereert, maar ook een volledige spraakinterface op alle functionaliteit heeft bestaat nog niet. Visueel gehandicapten zullen hier baat bij hebben omdat de interactie met de browser veel natuurlijker zal verlopen. Toetsencombinaties hoeven niet langer onthouden te worden en gebruikersinvoer hoeft niet meer getypt te worden. Middels een webbrowser met spraakinterface kan de gebruiker zonder gebruik te hoeven maken van ogen en handen, toch van het web gebruik maken.

1.2 VoiceXML

Voice eXtended Markup Language (VoiceXML) is een taal waarin spraakinterfaces gedefinieerd kunnen worden. Het is een eXtended Markup Language (XML) instantie en de taal werkt dus met tags, net als HyperText Markup Language (HTML), de taal waarin webpagina's gedefinieerd kunnen worden. De dialoogstructuur van een spraakapplicatie wordt opgebouwd uit VoiceXML elementen. Deze elementen bevatten bijvoorbeeld zinnen die tegen de gebruiker uitgesproken moeten worden (zoals menu opties), opdrachten die de gebruiker geven kan, grammatica's die gebruikt moeten worden bij het analyseren van gebruikersinput en locaties van bestanden met vooraf opgenomen audio fragmenten. Slechts de structuur van de dialoog hoeft in het VoiceXML-bestand te worden aangegeven, de omzetting hiervan naar spraak, en het omzetten van spraak input naar tekst gebeurt in aparte modules. Een VoiceXML-applicatie wordt opgeslagen als een "gewoon" tekstbestand. Met VoiceXML is het dus mogelijk om dialoog applicaties te ontwikkelen zonder aandacht te hoeven besteden aan spraakherkenning en -synthese.

Het volgende VoiceXML voorbeeld illustreert dat de VoiceXML-code die een spraakinterface implementeert heel eenvoudig kan blijven. Zonder de precieze betekenis van de code te kennen kan de globale betekenis van de applicatie al worden afgeleid. Het is bijvoorbeeld gemakkelijk te zien dat het programma begint met een welkomstwoord, gevolgd door een vraag. Er zijn daarna keuzemogelijkheden in de code te ontdekken en het antwoord van de gebruiker op de vraag wordt bevestigd. Ook is er een help gedeelte en een verwijzing naar een volgende pagina. De ontwikkelaar van deze applicatie heeft zich niet bezig hoeven houden met spraaksynthese of -herkenning maar slechts met de structuur en inhoud van de dialoog.

<?xml version="1.0"?>
<vxml application="whatdoyouwant.vxml" version="1.0">

<form id="welcome">
  <block>
    <prompt>
      welcome to the ham question.
      Say <emp>next</emp> at any time to skip to the next page.
    </prompt>
    <goto next="#hamquestion"/>
  </block>
</form>
      
<form id="hamquestion">

  <field name="what_user_wants">
    <prompt>
	 Which of the following do you want?
      Money, fame, both or neither?
    </prompt>

    <grammar>
        [money fame both neither]
    </grammar>

    <filled>
      <prompt>
        Okay, let's get you some 
	  <value expr="what_user_wants"/> now.
      </prompt>
    </filled>

    <help>
      Please say what you want to have:  
      Money, fame, both or neither.
    </help>
  </field>

</form>

<link target="nextpage.vxml">
    <grammar>next</grammar>
</link>

</vxml>

Een belangrijke eigenschap van VoiceXML is dat het zich richt op de telefoon als spraakinterface. Een VoiceXML interpreter wordt geactiveerd als een bepaald telefoonnummer gebeld wordt. De interpreter begint dan het tekstbestand met de dialoog uit te voeren. Hierbij activeert de interpreter spraaksynthese en -herkenning waar nodig, activeert hij grammatica's, speelt hij vooraf opgenomen boodschappen af en roept hij eventueel andere VoiceXML-documenten aan. Met dit systeem kan een spraakapplicatie ontwikkelaar zich beperken tot het ontwerpen van dialogen en menu's. De interpreter zorgt voor de omzetting van en naar spraak. VoiceXML interpreters, ook wel browsers genoemd, zijn voor ontwikkelaars gratis beschikbaar op het internet en voor commerciële doeleinden tegen betaling te gebruiken [Bijvoorbeeld Bevocal: http://bevocal.com/].

De voor software ontwikkelaars meest interessante eigenschap van VoiceXML is de mogelijkheid om een VoiceXML-document op een willekeurige webserver te hosten. Een VoiceXML interpreter kan een willekeurig webadres gegeven worden als locatie van een te parsen document. Ook vanuit een VoiceXML-document kan naar andere VoiceXML-documenten waar dan ook op het web verwezen worden. Het eerste voordeel hiervan is de mogelijkheid om gedistribueerde applicaties te maken, dat wil zeggen applicaties waarvan verschillende onderdelen zich op verschillende weblocaties bevinden. Maar het grootste voordeel is de mogelijkheid dynamische applicaties te maken. Een dynamische VoiceXML-applicatie is een VoiceXML-document dat automatisch gegenereerd wordt door een programma. Wanneer een dynamische VoiceXML-pagina wordt opgevraagd voert de webserver het achterliggende programma uit, en stuurt hij de VoiceXML uitvoer van dit programma terug als antwoord op het verzoek. Iedere scripttaal of Common Gateway Interface (CGI) taal die gebruikt wordt om dynamische HTML-pagina's te maken kan ook gebruikt worden om dynamische VoiceXML-applicaties te maken. Met VoiceXML kunnen dus spraakinterfaces op databases, automatische nieuwspagina's et cetera gemaakt worden.

VoiceXML is een nieuwe taal, ontwikkeld door het VoiceXML Forum [Zie http://www.voicexml.org]. Dit is een samenwerkingsverband tussen verschillende grote spelers op de internet- en telefoniemarkten (IBM, Motorola, Lucent en AT&T) die tot de stichting van dit Forum (en daarmee de creatie van een standaard) ieder aan eigen implementaties van soortgelijke talen werkten.

In maart 2000 is de definitie van VoiceXML versie 1.0 door het forum uitgebracht. In mei 2000 is deze specificatie ingediend bij het World Wide Web Consortium (W3C). Het W3C is het centrale orgaan voor het beheren en uitgeven van open webstandaarden [Zie http://www.w3.org]. In een 'Memorandum Of Understanding' (MOU) van september 2001 komen de beide partijen overeen dat het W3C zich bezig zal houden met de technische ontwikkeling van de VoiceXML standaard, en dat het VoiceXML Forum de promotie van het gebruik van VoiceXML technologie voor zijn rekening neemt [Zie http://www.w3.org/2001/10/MOU.txt]. Het W3C heeft in oktober 2001 een 'working draft' van VoiceXML versie 2.0 uitgegeven.

Pas sinds de zomer van 2001 zijn de eerste boeken over VoiceXML en applicatie ontwikkeling met VoiceXML verkrijgbaar. Het aantal bestaande VoiceXML-applicaties is nog niet erg groot en de volle potentie van de taal is wellicht nog niet in deze applicaties naar voren gekomen.

Typische VoiceXML-applicaties zijn telefoondiensten die geautomatiseerd zijn zoals informatienummers en bestellijnen voor bijvoorbeeld pizza's. Het domein van dit soort dialogen is vaak beperkt en de invoermogelijkheden van de eindgebruiker ook. Hierdoor is het relatief makkelijk om voor deze toepassingen een interface in VoiceXML te schrijven. Een andere invalshoek voor VoiceXML-applicaties is om in plaats van telefoondiensten te automatiseren, webdiensten via de telefoon (in spraak) toegankelijk te maken. Een VoiceXML-applicatie bestaat in dat geval uit een spraakinterface op een bepaalde web pagina of database.

Wat het gebruik van VoiceXML technologie in concrete "echte-wereld" applicaties betreft spelen de VoiceXML ontwikkelingsplatforms een grote rol. De bedrijven die deze platforms aanbieden voor ontwikkeling verkopen tevens commerciële applicaties op basis van VoiceXML technologie. Het Tellme platform levert bijvoorbeeld op kant en klare modules gebaseerde telefoon applicaties op maat voor veel bekende internationale bedrijven [Zie http://www.tellme.com/].

Met behulp van VoiceXML technieken kunnen spraakinterfaces in tekstbestanden gedefinieerd worden en voor de telefoon beschikbaar gemaakt worden zonder dat de ontwikkelaar verstand van spraaksynthese en -herkenning hoeft te hebben. De webserver omgeving voor VoiceXML-bestanden biedt vele mogelijkheden voor het maken van dynamische VoiceXML-pagina's. Samen met de "standaard" status van de taal maken deze eigenschappen VoiceXML een ideale taal voor het ontwikkelen en toepassen van spraak applicaties.

1.3 Vraagstelling: een spraak-webbrowser in VoiceXML

Het gemak waarmee spraakapplicaties in VoiceXML gemaakt kunnen worden zorgt voor enthousiasme over deze techniek en zijn toepassingsmogelijkheden. Een spraak-webbrowser, dat wil zeggen een webbrowser met een spraakinterface, die ook de inhoud van het web in spraak weergeeft, lijkt één van de meest voor de hand liggende VoiceXML-applicaties. Dit komt zowel door de nauwe relatie die VoiceXML met internet technologie heeft, als de mate waarin VoiceXML op HTML lijkt. De behoefte aan een webbrowser in spraak kan mogelijk met VoiceXML technieken bevredigd worden. Mijn vraagstelling luidt daarom:

Kan op basis van VoiceXML technologie een spraak-webbrowser ontwikkeld worden?

Naast het feit dat de behoefte aan een webbrowser in spraak bevredigd wordt zijn er meer redenen om een spraak-webbrowser in VoiceXML te maken. Een voordeel van het gebruik van VoiceXML is het relatieve gemak waarmee spraakapplicaties ontwikkeld kunnen worden. Van nog meer belang is het feit dat de noodzaak van het bezit van een computer om het web te raadplegen verdwijnt met de komst van een spraak-webbrowser waar gebruikers middels een gewone telefoon gebruik van kunnen maken. Hier onderscheidt een browser in VoiceXML zich het meest van andere web-naar-spraak oplossingen.

Om een volledig operationele en commercieel verkoopbare webbrowser te maken zijn (veel) meer manuren nodig dan redelijkerwijs voor een scriptieproject beschikbaar zijn. Ik wil me in deze scriptie dan ook beperken tot het onderzoeken van de mogelijkheid om met VoiceXML een webbrowser in spraak te maken. Verder wil ik benadrukken dat het in deze scriptie om een HTML browser gaat, die bestaande HTML-pagina's in spraak weergeeft en zo een extra interface op het bestaande web vormt. Het product van dit onderzoek zal dus geen browser zijn waarmee VoiceXML-documenten geraadpleegd kunnen worden.

1.4 Opzet van de scriptie

Om te kunnen beoordelen of de vraagstelling positief beantwoord kan worden, moeten er twee dingen onderzocht worden. In de eerste plaats is het nodig duidelijk te definiëren aan welke eisen een spraak-webbrowser moet voldoen. Dit onderzoek wordt in hoofdstuk twee beschreven. Vervolgens moet er worden onderzocht in hoeverre een spraak-webbrowser met behulp van VoiceXML te verwezenlijken is. In hoofdstuk drie wordt een poging om een spraak-webbrowser in VoiceXML te implementeren beschreven. In de conclusie wordt geëvalueerd in hoeverre de implementatie van een spraak-webbrowser in VoiceXML mogelijk is gebleken, oftewel in hoeverre de vraagstelling positief beantwoord kan worden. Tevens wordt daar een aanbeveling gedaan voor verder onderzoek.