Talstyrning
Abstrakt Talstyrning är en teknik som gör det möjligt för oss människor att mer eller mindre verbalt kommunicera med en dator eller ett system. Det här är ett tillvägagångssätt inom AI och en form av kommunikation med AI vilken endast kräver naturligt språk som input. Det har gjorts en hel del framsteg under de senaste åren inom detta område och tekniken har blivit allt mer sofistikerad i samma takt som den blir mer avancerad. Tekniken har blivit allt mer populär och i samband med sin utveckling har talstyrning blivit tillgängligt för fler och fler. Användningsområdena ökar hela tiden och användarna lika så. Även användarvänligheten har ökat markant och tekniken har även börjat användas som hjälpmedel för personer med handikapp, eller i miljöer som kräver att uppmärksamheten riktas mot något annat, viktigare än kontroll av ett interface, vilket styrs med t.ex. knapptryckningar eller touch.
Innehållsförteckning Innehållsförteckning... 1 Ändamål... 2 Introduktion... 3 Användningsområden... 4 Ändligt tillståndsbaserat system... 5 Rambaserat system... 6 Agentbaserat system... 7 Diskussion... 9 Referenser... 10 1
Ändamål Syftet med denna rapport är att berika min egen och läsarens kunskap inom området talstyrning. Vikten i denna rapport kommer huvudsakligen ligga på tre olika avancerade typer av talstyrningssystem. Jag kommer börja med att beskriva hur det enklaste systemet fungerar och vad det kräver av sin användare. Jag kommer dessutom ge exempel på hur en kommunikation mellan användare och system skulle kunna se ut, för att sedan med samma struktur, fortsätta med de mer avancerade systemen och tillhörande exempel. 2
Introduktion När man pratar om talstyrning menar man med största sannolikhet ett system som klarar av att hantera talad dialog som instruktioner för en uppgift som skall utföras. Alltså ett system som kan hantera ett eller flera naturliga talspråk som input, sedan tolka det och exekvera någon form av respons, som till exempel ett svar, eller en utförd handlig. Ett system som klarar av att kommunicera med en användare genom talad dialog. Tanken är i stort sett att komma ifrån tangentbord och andra former av input där man använder ett interface med knappar eller liknande. Ett sådant system kan vara mycket användbart i situationer när man behöver använda båda händerna till något annat än att kontrollera ett interface genom t.ex. knapptryckningar. I grund och botten är syftet med talstyrning att skapa ett interface mellan användaren och ett datorsystem som till exempel en databas eller ett expertsystem. (McTear, 2002) Det finns många olika system som kan hantera talad dialog, vissa mer avancerade än andra. Trots detta har de ändå huvudsakligen tre gemensamma grundpelare eller grundprinciper att stå på. För det första måste en sådan här applikation kunna känna igen talat språk på ett eller annat sätt. Detta görs genom såkallad taligenkänning. Här omvandlas vanligt talat språk till en ljudsignal som sedan matchas mot någon form av lexikon eller vokabulär i systemet. Hela meningar matchas oftast inte, istället plockas vissa nyckelord ut. För att taligenkänningen ska fungera bra måste den tränas med många olika exempel på uttal för varje ord systemet ska kunna känna igen. På så sätt blir systemet mer tolerant för olika dialekter och uttal. Desto fler exempel på uttal systemet får lära sig, desto mer tolerant blir taligenkänningen och får lättare att matcha t.ex. ett slarvigt uttalat ord eller riktigt grov småländska. I nästa steg sker en tolkning; systemet matchar givetvis inte ordet rakt av utan försöker, beroende på kontext och vad systemet har för uppgift, hitta lämplig tolkning på given input. När systemet väl tagit beslut om agerande dvs. hur det ska hantera input, utförs lämplig handling; exekvering utförs. 3
Användningsområden Användningsområdena är många och komplexiteten i olika system sträcker sig från enkla talstyrningssystem som endast kan hantera Ja eller Nej som input, till mycket avancerade system för talstyrning som klarar av att kommunicera med användaren på ett helt annat plan och föra en dialog som vilken receptionist eller kundtjänst som helst. Telefonboken i din egen mobiltelefon är ett exempel på en applikation som skulle kunna dra stora fördelar av talstyrning. För att använda telefonboken och leta upp ett nummer till någon du behöver ringa så krävs uppmärksamhet från flera av dina sinnen. Du använder minst en hand för att navigera i menyerna och din syn för att se att du navigerar rätt och hittar rätt nummer. Ett mycket enkelt och smidigt tillvägagångssätt så länge ens uppmärksamhet inte krävs av något annat i vår tillvaro. Men vad händer vid bilkörning? Då kan navigering i mobilens telefonbok helt plötsligt vara direkt farlig för både dig och medtrafikanter. Om telefonboken i telefonen då även skulle ha ett läge för röststyrning skulle genast händer och syn frigöras till bilkörningens fördel. Detta är bara en av röststyrningens tillämpningar och fördelar. Man talar i huvudsak om tre olika typer av system för talad dialog. Dessa är ändligt tillståndsbaserat system, rambaserade system och agentbaserade system. 4
Ändligt tillståndsbaserat system Ett ändligt tillståndsbaseras system (finite state-based system) är ett av de enklare systemen inom talstyrning. Idén bygger på att det finns förbestämda steg eller tillstånd i kommunikationen med användaren som utförs ett efter ett i tur och ordning. Systemet har ofta en mindre vokabulär jämfört med andra system vilket medför att det endast är specifika ord för just den kontexten systemet behandlar som känns igen. Ett exempel skulle kunna vara en upplysningstjänst av någon form av tidtabell eller en biljettbokningstjänst. I ett sådant fall skulle systemet kunna fråga efter en plats för avresa, destination, vilken tid man är intresserad av att åka och eventuellt kunna hantera Ja och Nej svar från användaren. Ja och Nej kan vara nödvändigt för systemet att kunna hantera eftersom att det är bra om användaren kan bekräfta att uppgifterna systemet uppfattat i varje tillstånd är korrekta. Ett system av den här typen skulle alltså bara kunna ta platser som t.ex. Stadsdelar, busstationer eller städer som input i avrese- och destinationssteget (beroende på om det är stads- eller länstrafik), och sedan en tid i det tredje steget. Nedan följer ett exempel på hur en konversation med ett system av den här typen skulle kunna se ut. Systemet: Var vill du åka? o Användare: Linköping Systemet: Du vill resa till Linköping, är det korrekt? o Användare: Ja Systemet: Från var vill du åka? o Användare: Stockholm Systemet: avreseort Stockholm, är det korrekt? o Användare: Ja Systemet: Vilken dag vill du åka? o Användare: tisdag Systemet: Du vill åka torsdagen den 29:e september, är det korrekt? o Användare: Nej Systemet: Vilken dag vill du åka? o Användare: tisdag Systemet: Du vill åka tisdagen den 27:e september, är det korrekt? o Användare: Ja Exempel 1 5
Här kan vi tydligt se hur systemet styr användaren att använda en väldigt begränsad vokabulär. Systemet är designat så att användaren ska hindras från att exempelvis ställa motfrågor och ta konversationen till en mer avancerad nivå. Lägg även märke till hur det hela tiden ber användaren bekräfta av systemet uppfattade uppgifter. Längst ner i exemplet finner vi hur systemet missuppfattar en tid och sedan korrigerar det genom att ställa frågan igen efter att användaren dementerat tiden (torsdag) som systemet uppfattat. Rambaserat system Ett rambaserat system (frame-based system) är något mer avancerat än systemet ovan. Här tvingas inte användaren att på samma sätt hålla sig till enkla fraser eller ord som systemet förväntar sig i ett visst steg i konversationen. Det ändliga tillståndsbaserade systemet kunde bara hantera ett stycke information åt gången och bara just den informationen som den för tillfället förväntade sig; till exempel en plats när systemet frågade efter en destination eller en tid när systemet undrade när användaren ville åka. Detta betyder att systemet skulle missförstå användaren om denne angav en plats när systemet förväntar sig en tid. Ett sådant problem skulle inte uppstå på samma sätt i det rambaserade systemet. I det rambaserade systemet tillåts användaren vara mer fri i sin konversation med systemet. Här tvingas inte användaren att ta sig igenom hela konversationen steg för steg eftersom att systemet inte förväntar sig en viss typ av info vid ett visst steg i konversationen som tidigare. Flödesordningen på informationen är inte förutbestämd utan systemet tar endast hänsyn till vilken typ av information det behöver totalt sett för att kunna utföra den önskade uppgiften, istället för att inputen måste vara en plats när systemet frågar efter det osv. I den här typen av system är alltså inte flödet i dialogen förutbestämt utan är mer beroende av innehållet i användarens input och den information som systemet har som uppgift att ta fram. Det betyder alltså att systemet klarar av att hantera mer än ett stycke information åt gången (McTear, 2002) till skillnad från det ändliga tillståndsbaserade systemet. Man skulle kunna visualisera det som att systemet har en checklista med uppgifter om vilken information det behöver för att kunna utföra den önskade uppgiften. Sedan checkas punkt 6
efter punkt av vartefter informationen från användaren kommer in i systemet. Notera dock att systemet fortfarande kan funka precis som det ändliga tillståndsbaserade systemet som i exempel 1, om användaren väljer det tillvägagångssättet i sin kommunikation med systemet vill säga. Båda tillvägagångssätten illustreras nedan i exempel 2 och 3. Systemet: Var vill du åka? o Användaren: Från Stockholm till Örebro fredagen den 30:e september Systemet: Följande förbindelser finns mellan Stockholm och Örebro fredagen den 30:e september Exempel 2 Systemet: Var vill du åka? o Användaren: Örebro Systemet: Från var vill du åka? o Användaren: Stockholm Systemet: När vill du åka? o Exempel 3 Agentbaserat system I jämförelse med de två talstyrningssystemtyper jag tagit upp tidigare i denna rapport är det agentbaserade systemet (agent-based system) helt klart det mest avancerade. Generellt sett så ges användaren stor frihet i sin konversation med ett system av denna typ då det inte finns några fasta steg eller tillstånd i systemet som användaren måste ta sig igenom. De största skillnaderna mot de andra systemen är att systemet inte längre behöver lika mycket information om vad det ska förvänta sig för input från användaren. Detta tack vare en avsevärt större vokabulär med tusentals ord och fraser. 7
Systemet har även hela tiden en uppfattning om kontexten för dialogen och kan där med komma med relevanta svar för dialogen och uppgiften, som systemet i fråga har att lösa. Detta system möjliggör ett flyt i konversationen som gör att samtalet med systemet känns mycket mer naturligt än i de andra systemen. Ett agentbaserat system är alltså av en helt annan kaliber än tidigare beskrivna system. Det skulle till exempel kunna komma med relevanta förslag, frågor och synpunkter för den aktuella kontexten i dialogen. Exemplet nedan illustrerar hur en konversation med en biljettbokningstjänst som bygger på denna teknik skulle kunna se ut. Systemet: Var och när vill du åka? o Användaren: Till linköping vid 21-tiden på söndag Systemet: Tyvärr finns det inga avgångar så sent söndagen den 25:e september. Vill du bli upplyst om avgångar tidigare samma dygn eller för måndagen den 26:e september? o Användaren: Tidigare samma dygn tack Systemet: Följande avgångar finns för söndagen den 25:e september Exempel 4 Lägg märke till hur systemet frågar efter både destination och tid i första steget och hur användaren utan problem kan vara mycket fri i sitt språk. Konversationen känns på detta sätt mycket mer naturlig och avslappnad samtidigt som den är mycket smidigare och mer informativ för användaren. 8
Diskussion Detta fördjupningsarbete har gett mig ett annat perspektiv på talstyrning än vad jag hade innan. Tidigare har jag bara stött på tekniken ett fåtal tillfällen och där med inte funderat över den speciellt mycket. Jag kanske borde korrigera mitt påstående på första raden i diskussionen genom att säga att jag har gått ifrån att inte ha ett perspektiv på talstyrning, till att faktiskt ha ett perspektiv på talstyrning. Detta för att istället säga att jag förändrat mitt perspektiv, vilket i princip inte existerade innan. Givetvis var jag medveten om tekniken och att den fungerade mer eller mindre bra, men längre än så sträckte sig inte kunskapen. Den här rapporten har öppnat mina ögon för talstyrning även om jag känner att jag bara hunnit skrapa lite på ytan. Men det hindrar mig inte att dyka djupare vid något annat tillfälle, tvärt om. Talstyrning är ett mycket smidigt sätt att göra tjänster och applikationer användarvänliga och just därför tror jag att vi kommer att få se mer av det framöver. Tekniken utvecklas hela tiden och det lär inte dröja länge innan man som privatperson kommer stöta på den här typen av teknik oftare i sin vardag. Tänk till exempel vilka möjligheter detta innebär för folk med fysiska handikapp eller synproblem som i vanliga fall har svårt att använda sig av teknik som utnyttjar exempelvis tangentbord, touchdisplayer osv. som interface för input. I och med talstyrning så blir tekniken helt plötsligt tillgänglig även för dem. 9
Referenser Michael F. McTear, 2002, Spoken Dialogue Technology: Enabling the Conversational User Interface, ACM Computing Surveys Volume 34 Issue 1 10