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 2022
VoiceXML Základní informace
Dialogové
systémy
Luděk Bártek
■ Jazyk pro popis dialogových strategií.
VoiceXML Základní informace ■ Součást standardů W3C Voice Browser Activity.
Struktura aplikace Zápis dialogů pomocí ■ Cíl:
voiceAivi l Formulář ■ přinést výhody webového vývoje a doručování obsahu do
Vstupní pole (Řídící struktury 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 ■ Historie (pokračování):
Struktura aplikace Zápis dialogů pomocí ■ 1999 - založeno VoiceXML Fórum - cílem je spojení sil při
VoiceXML Formulář vývoji jazyka pro značkování dialogů.
Vstupní pole ■ 2000:
(Řídící struktury ■ 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, ...)
Požadavek
Dokument
VoiceXML Interpreter
Kontext interpretru
Implementační platforma
Uživatel
VoiceXML Struktura aplikací
Dialogové
systémy
Luděk Bártek ■ VoiceXML dokument(y):
VoiceXML Základní informace ■ Skládají se z formulářů.
Struktura aplikace ■ Uživatel se v daném okamžiku nachází v jednom
Zápis dialogů pomocí VoiceXML z konverzačních stavů.
Formulář Vstupní pole ■ Přechody mezi stavy definovány pomocí URI - odkazují na
(Řídící struktury další krok dialogu.
■ Dialog končí, pokud tento přechod není definován.
■ VoiceXML definuje dva druhy dialogů:
■ Formuláře - definuje proces nutný pro získání hodnot sady
položek.
■ Menu - poskytuje uživateli sadu možností a odkazů na
pokračování dialogu.
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 Zápis dialogů pomocí ■ Realizovány jako formuláře, kterým mohou být předány
VoiceXML Formulář parametry, a které mohou vrace hodnotu (viz dále).
Vstupní pole (Řídící struktury ■ Sezení:
■ 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 vxml - kořenový element každého dokument.
Luděk Bártek ■
■ Musí obsahovat atributy:
VoiceXML Základní informace ■ version - použitá verze standardu VoiceXML
Struktura aplikace ■ aktuální 2.1
Zápis dialogů pomocí VoiceXML ■ hodnota závisí na použité platformě - OptimTalk 1.9 -
Formulář Vstupní pole 2.1, JVoiceXML - zatím neúplná podpora verze 2.1,
(Řídící struktury VoiceGlue - podpora 2.0 + některé možnosti z 2.1, .. .
■ xmlns- deklarace implicitního jmenného prostoru.
Hodnota musí být http://www.w3.org/2001/vxml.
■ xml:lang- hodnotou je kód jazyka, pro který je dialogové
rozhraní navrženo.
■ Element obsahuje:
■ jeden nebo více elementů form,
■ element menu, ■ . ..
Formulář
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 ■ Obsahuje:
Zápis dialogů pomocí VoiceXML Form u la r ■ sadu vstupních polí
Vstupní pole ■ deklarace proměnných daného formuláře - element var
Řídící struktury ■ 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ář
Algoritmus interpretace formulářů
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ář
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ář Ukázka
Dialogové
systémy
Luděk Bártek
Vstupní pole
(Řídící struktury
Hello world!
This is our first VoiceXML form.
1 -f) <\(y
Formulář
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 Zápis dialogů pomocí ■ record - slouží k nahrání zprávy od uživatele.
VoiceXML Formulář ■ subdialog - slouží k vyvolání dialogu řešícího dílčí problém,
Vstupní pole (Řídící struktury např. zadání adresy, .. .
■ Ří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, ...)
Element record
Dialogové
systémy
Luděk Bártek
■ Umožňuje systému nahrát zprávu od uživatele.
VoiceXML
Základní informace ■ Lze využít např. pro tvorbu hlasového záznamníku.
Struktura aplikace Zápis dialogů pomocí VoiceXML ■ Atributy:
Formulář ■ name - název vstupního pole
Vstupní pole (Řídící struktury ■ 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.
<□► < rnP ► < -E ► < -E ► E O °n O
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í informace ■ Jeden a tentýž subdialog se dá volat opakovaně.
Struktura aplikace Zápis dialogů pomocí ■ Vyvolání subdialogu:
VoiceXML Formulář ■ element subdialog - vlastní volání subdialogu.
Vstupní pole Řídící struktury ■ Obsahuje:
■ 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
Formulář Vstupní pole
S1
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
■ prirazovaci příkaz - element assign, clear, ..
■ příkazy skoku - element goto, exit, return, .