Dialogové systémy
Luděk Bártek
VoiceXML
Základní informace
Struktura aplikace
Zápis dialogů
pomocí
VoiceXML
Formulář
Vstupní pole
Řídící struktury
Dialogové systémy
Luděk Bártek
Laboratoř vyhledávání a dialogu, Fakulta Informatiky Masarykovy Univerzity,
Brno
jaro 2018
>0 0,0
VoiceXML
Základní informace
Dialogové systémy
Luděk Bártek
VoiceXML
Základní informace
Struktura aplikace
Zápis dialogů
pomocí
VoiceXML
Formulář
Vstupní pole
Řídící struktury
Jazyk pro popis dialogových strategií.
Součást standardů W3C Voice Browser Activity.
Cíl:
■ přinést výhody webového vývoje a doručování obsahu do interaktivních hlasových aplikací.
Historie:
■ 1995 - započat vývoj značkovacího jazyka AT&T Phone Markup Language.
■ 1998 - konference pořádaná W3C na téma hlasového procházení webu:
■ předvedeny jazyky PML, VoxML, SpeechML, TalkML, VoiceHTML, ...
VoiceXML
Základní informace
Dialogové systémy
Luděk Bártek
VoiceXML
Základní informace
Struktura aplikace
Zápis dialogů
pomocí
VoiceXML
Formulář
Vstupní pole
Řídící struktury
Historie (pokračování):
■ 1999 - založeno VoiceXML Fórum - cílem je spojení sil při vývoji jazyka pro značkování dialogů.
■ 2000:
■ vydána specifikace VoiceXML 1.0
■ specifikace VoiceXML 1.0 přijata jako standard W3C.
Aktuální stav:
■ doporučení - VoiceXML 2.1. (červen 2007)
■ draft - VoiceXML 3.0 (prosinec 2010)
VoiceXML
Model komunikace
Dialogové systémy
Luděk Bártek
VoiceXML
Základní informace
Struktura aplikace
Zápis dialogů
pomocí
VoiceXML
Formulář
Vstupní pole
Řídící struktury
Obrázek 1: Model architektury aplikací postavených na VoiceXML (viz specifikace VoiceXML 2.0)
Dokumentový server (WWW, ...)
J Požadavek Dokument
i
VoiceXML Interpreter
i Kontext interpretru
Implementační platforma
í
Uživatel
=
VoiceXML
Struktura aplikací
Dialogové systémy
Luděk Bártek ■ VoiceXML dokument(y):
VoiceXML Základní ■ Skládají se z formulářů.
informace Struktura ■ Uživatel se v daném okamžiku nachází v jednom
aplikace Zápis dialogů z konverzačních stavů.
pomocí VoiceXML Formulář Vstupní pole ■ Přechody mezi stavy definovány pomocí URI - odkazují další krok dialogu. na
Řídící struktury ■ Dialog končí, pokud tento přechod není definován. ■ VoiceXML definuje dva druhy dialogů:
■ Formuláře - definuje proces nutný pro získání hodnot sa dy
položek.
■ Menu - poskytuje uživateli sadu možností a odkazů na
pokračování dialogu.
>0 Q,o
VoiceXML
Struktura aplikací - pokračování
Dialogové
systémy ■ Subdialogy:
Luděk Bártek ■ Obdoba funkcí v procedurálním programu.
VoiceXML ■ Slouží k opětovnému provádění jisté části dialogu (např.
Základní informace zjištění e-mailové adresy, . ..).
Struktura aplikace ■ Realizovány jako formuláře, kterým mohou být předány
Zápis dialogů pomocí parametry, a které mohou vrace hodnotu (viz dále).
VoiceXML Formulář ■ Sezení:
Vstupní pole
Řídící struktury ■ Začíná v okamžiku zahájení komunikace s VoiceXML interpretrem. ■ Končí: ■ na přání uživatele (např. ukončení spojení, žádost o ukončení interpretace, .. .) ■ VoiceXML dokumentem - není definován další přechod, předání dat k dalšímu zpracování, . ..
■ Aplikace - sada dokumentů, které sdílejí kořenový dokument.
VoiceXML
Dialogové systémy Luděk Bártek ■ vxml - kořenový element každého dokument.
VoiceXML Základní ■ Musí obsahovat atributy:
■ version - použitá verze standardu VoiceXML
informace Struktura aplikace Zápis dialogů ■ aktuální 2.1 ■ hodnota závisí na použité platformě - OptimTalk 1.9 -
pomocí VoiceXML 2.1, JVoiceXML - zatím neúplná podpora verze 2.1,
Formulář Vstupní pole VoiceGlue - podpora 2.0 + některé možnosti z 2.1, .. .
Řídící struktury ■ xmlns- deklarace implicitního jmenného prostoru. Hodnota musí být http://www.w3.org/2001/vxml. ■ xmhlang- hodnotou je kód jazyka, pro který je dialogové rozhraní navrženo.
■ Element obsahuje: ■ jeden nebo více elementů form, ■ element menu, ■ . ..
Formulár
Dialogové systémy
Luděk Bártek ■ Jeden ze základních elementů VoiceXML dokumentů.
VoiceXML ■ Ohraničen značkami < form > a < /form >.
Základní informace Struktura aplikace Zápis dialogů pomocí VoiceXML Formulář Vstupní pole Řídící struktury ■ Obsahuje: ■ sadu vstupních polí ■ deklarace proměnných daného formuláře - element var ■ definice gramatik platných v daném formuláři ■ bloky výkonného kódu. ■
■ Atributy: ■ id - povinný atribut: ■ slouží jako identifikátor daného formuláře ■ jeho hodnota musí být unikátní v daném dokumentu ■ lze použít k předávání řízení do daného formuláře.
Formulár
Algoritmus interpretace formuláru
Dialogové systémy
Luděk Bártek
VoiceXML
Základní informace
Struktura aplikace
Zápis dialogů
pomocí
VoiceXML
Formulář
Vstupní pole
Řídící struktury
Formuláře jsou interpretovány implicitním algoritmem pro interpretaci formulářů (Form Interpretation Algorithn, FIA):
Přehraj všechny výzvy, které jsou potomky tohoto elementu form.
Dokud existuje vstupní pole formuláře s nedefinovanou hodnotou:
Vyber 1. vhodný nezadaný vstup. Přehraj všechny výzvy, které se váží k danému poli. Získej hodnotu vstupu daného vstupního pole nebo zpracuj vyvolanou událost (help, nomatch, . ..) Zpracuj část filled daného vstupního pole.
Formulár
FIA - pokračování
Dialogové systémy
Luděk Bártek
VoiceXML
Základní informace
Struktura aplikace
Zápis dialogů
pomocí
VoiceXML
Formulář
Vstupní pole
Řídící struktury
FIA může dále skončit pokud:
■ pokud se má provést přesměrování hovoru (např. element goto)
■ pokud má dojít k předání dat dokumentovému serveru (element submit)
■ pokud je explicitně požadováno ukončení (element exit).
Formulár
Ukázka
Dialogové systémy
Luděk Bártek
VoiceXML Základní informace Hello world! This is our first VoiceXML form.
1 -f) <\(y
Formulár
Možný obsah
Dialogové
systémy ■ Vstupní pole - odpovídají různým možnostem zadání
Luděk Bártek vstupních položek formuláře:
VoiceXML ■ field - vstup od uživatele, možnost zadání hlasem nebo
Základní informace pomocí DTMF.
Struktura aplikace ■ record - slouží k nahrání zprávy od uživatele.
Zápis dialogů pomocí ■ subdialog - slouží k vyvolání dialogu řešícího dílčí problém,
VoiceXML Formulář např. zadání adresy, .. .
Vstupní pole Řídící struktury ■ Řídící položky: ■ block - příkazový blok, lze využít např. k různým výstupům pro uživatele, vyhodnocování vstupních dat, .. . ■ initial - iniciální část formuláře. Využívá se hlavně v dialogových rozhraních se smíšenou strategií. ■ transfer - přesměrování uživatele na novou lokaci (aplikaci, telefonního operátora, . ..) ■ object - slouží ke zpřístupnění funkcionality, která může být závislá na platformě (dli, JSP+ serviet, ...)
Formulár
Vstupní pole a řídící struktury - ukázka užití
Dialogové systémy
Luděk Bártek
VoiceXML
Základní informace
Struktura aplikace
Zápis dialogů
pomocí
VoiceXML
Formulář
Vstupní pole
Řídící struktury
Element field
Dialogové systémy
Luděk Bártek
VoiceXML -7' \, 1 _ j ' ■ Představuje vstup od uživatele. Může být zadán buď
Základní informace Struktura aplikace Zápis dialogů VíCíVC\CíC\ hlasem nebo pomocí DTMF. ■ Atributy:
uvji 1 iuli VoiceXML Formulář ■ name - jméno pole. Používá se k přístupu k zadané
Vstupní pole Řídící struktury hodnotě (pomocí stínové proměnné se shodným jménem). ■ expr - výraz v jazyce ECMAScript, který slouží k inicializaci hodnoty vstupního pole. ■ cond - vstupní podmínka nutná pro zpracování vstupního pole. ■ Více viz specifikace.
Element field
Pokračování
Dialogové systémy
Luděk Bártek
VoiceXML
Základní informace
Struktura aplikace
Zápis dialogů
pomocí
VoiceXML
Formulář
Vstupní pole
Řídící struktury
Obsah elementu:
■ Výzva s popisem požadované hodnoty (element prompt).
■ Gramatika (element grammar) - gramatika s popisem akceptovaných vstupů.
■ Typ gramatiky závisí na použité platformě (zabudovaném rozpoznávací řeči, např. Voxeo Prophecy, OptimTalk -SRGS, JVoiceXML-JSGF,...).
■ Ošetření událostí:
■ noinput - nebyl zadán žádný vstup
■ nomatch - zadán neakceptovaný vstup (vstup neodpovídá gramatice)
■ filled - umožňuje zpracování vstupu po vyplnění vstupního pole
Element field
Ukázka užití
Dialogové systémy
Luděk Bártek
Základní informace
Struktura aplikace Zápis dialogů pomocí VoiceXML Zadejte Vaše jméno
Element record
Dialogové systémy
Luděk Bártek
VoiceXML
Základní informace
Struktura aplikace
Zápis dialogů
pomocí
VoiceXML
Formulář
Vstupní pole
Řídící struktury
Umožňuje systému nahrát zprávu od uživatele.
Lze využít např. pro tvorbu hlasového záznamníku. Atributy:
■ name - název vstupního pole
■ expr - viz field
■ cond - viz field
■ beep - má-li být začátek nahrávání být signalizován zvukovým signálem
■ maxtime - maximální délka nahrávky
■ type - mime-type výsledné nahrávky musí být podporována VoiceXML platformou
Element record
Dialogové systémy
Luděk Bártek
VoiceXML
Základní informace
Struktura aplikace
Zápis dialogů
pomocí
VoiceXML
Formulář
Vstupní pole
Řídící struktury
Obsah elementu:
■ Výzva/výzvy s popisem požadovaného požadovaného vstupu.
■ Ošetření událostí:
■ noinput - uživatel zprávu nezačal nahrávat.
■ connection.disconnect.hangup - uživatel zavěsil.
Element record
Ukázka užití
Dialogové systémy
Luděk Bártek
VoiceXML
Základní informace
Struktura aplikace
Zápis dialogů
pomocí
VoiceXML
Formulář
Vstupní pole
Řídící struktury
Element subdialog
Dialogové
systémy ■ Slouží k vyvolání dílčího dialogu (dialogu řešícího dílčí
Luděk Bártek problém).
VoiceXML Základní ■ Jeden a tentýž subdialog se dá volat opakovaně.
informace Struktura aplikace Zápis dialogů pomocí ■ Vyvolání subdialogu:
■ element subdialog - vlastní volání subdialogu.
VoiceXML Formulář ■ Obsahuje:
Vstupní pole Řídící struktury ■ parám - definice hodnoty parametru. ■ filled - kód, který se má provést po návratu z dílčího dialogu. ■ Atributy: ■ name - jméno volaného subdialogu. ■ src - URI formuláře s kódem subdialogu.
■ Kód subdialogu: ■ formulář ■ ukončený elementem return.
Element subdialog
Ukázka užití
Dialogové systémy
Luděk Bártek
VoiceXML
Základní informace
Struktura aplikace
Zápis dialogů
pomocí
VoiceXML
Formulář
Vstupní pole
Řídící struktury
□
Element block
Dialogové systémy
Luděk Bártek
VoiceXML
Základní informace
Struktura aplikace
Zápis dialogů
pomocí
VoiceXML
Formulář
Vstupní pole
Řídící struktury
Obsahuje proveditelný obsah.
■ atributy:
■ name - název bloku.
■ expr - iniciální hodnota proměnné formuláře.
■ cond - podmínka omezující provádění bloku.
■ struktura - shodná s obsahem elementu filled:
■ řídící struktury - elementy if, else, elseif
■ přiřazovací příkaz - element assign, clear, ..
■ příkazy skoku - element goto, exit, return, .