Dialogové systémy Luděk Bártek Laboratoř vyhledávání a dialogu, Fakulta Informatiky Masarykovy Univerzity, Brno jaro 2016 >0 0,0 Zko uškové termíny Dialogové systémy Luděk Bártek Organizační poznámka VoiceXML ■ V ISu jsou vypsány zkouškové termíny: Základní informace ■ 16.5. 2016, 12:00 A220 - 12 studentů Struktura aplikace ■ 23.5. 2016, 10:00 A218 - 17 studentů Zápis dialogů pomocí VoiceXML Formulář ■ 30.5. 2016. 10:00 A218 - 17 studentů ■ 6.6. 2016, 10:00 A218 - 17 studentů Vstupní pole Řídící struktury ■ ■ 13.6. 2016, 10:00 A218 - 17 studentů Přihlašování od 2.5. od 17:00. 1 >o Q,o VoiceXML Základní informace Dialogové systémy Luděk Bártek Organizační poznámka 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 Organizační poznámka 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 Organizační poznámka 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 Organizační poznámka VoiceXML Základní informace Struktura aplikace Zápis dialogů pomocí VoiceXML Formulář Vstupní pole Řídící struktury VoiceXML dokument(y): ■ Skládají se z formulářů. ■ Uživatel se v daném okamžiku nachází v jednom z konverzačních stavů. ■ Přechody mezi stavy definovány pomocí URI - odkazují na 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. Organizační ■ Slouží k opětovnému provádění jisté části dialogu (např. poznámka zjištění e-mailové adresy, . ..). VoiceXML ~7 ' 1 1 -i ' ■ Realizovány jako formuláře, kterým mohou být předány Základní informace Q+ri i kti i rpt parametry, a které mohou vrace hodnotu (viz dále). ._' L1 UMUI a aplikace Zápis dialogů ■ Sezení: pomocí VoiceXML Crt/rn 111 *a r ■ Začíná v okamžiku zahájení komunikace s VoiceXML nor ni u id r Vstupní pole interpretrem. Řídící struktury ■ 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 Organizační poznámka VoiceXML Základní informace Struktura aplikace Zápis dialogů pomocí VoiceXML Formulář Vstupní pole Řídící struktury vxml - kořenový element každého dokument. Musí obsahovat atributy: ■ version - použitá verze standardu VoiceXML ■ aktuální 2.1 ■ hodnota závisí na použité platformě - OptimTalk 1.9 -2.1, JVoiceXML - zatím neúplná podpora verze 2.1, 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. ■ 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 Organizační poznámka VoiceXML Základní informace Struktura aplikace Zápis dialogů pomocí VoiceXML Formulář Vstupní pole Řídící struktury Jeden ze základních elementů VoiceXML dokumentů. Ohraničen značkami < form > a < /form >. 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ářů Dialogové systémy Luděk Bártek Organizační poznámka 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 Organizační poznámka 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 Organizační poznámka aplikace Zápis dialogů pomocí VoiceXML Formulář Vstupní pole Řídící struktury Hello world! This is our first VoiceXML form. 1 -f) <\(y Formulár Možný obsah Dialogové systémy Luděk Bártek Organizační poznámka VoiceXML Základní informace Struktura aplikace Zápis dialogů pomocí VoiceXML Formulář Vstupní pole Řídící struktury Vstupní pole - odpovídají různým možnostem zadání vstupních položek formuláře: ■ field - vstup od uživatele, možnost zadání hlasem nebo pomocí DTMF. ■ record - slouží k nahrání zprávy od uživatele. ■ subdialog - slouží k vyvolání dialogu řešícího dílčí problém, 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, ...) Formulár Vstupní pole a řídící struktury - ukázka užití Dialogové systémy Luděk Bártek Organizační poznámka VoiceXML Základní informace Struktura aplikace Zápis dialogů pomocí VoiceXML Formulář Vstupní pole Řídící struktury
Welcome to the VoiceXML!. Hello. Tell mi something nice, like hello, hi, good day. Formulár Vstupní pole a řídící struktury - ukázka užití - pokračování Dialogové systémy Luděk Bártek Organizační poznámka VoiceXML Základní informace Struktura aplikace Zápis dialogů pomocí VoiceXML Formulář Vstupní pole Řídící struktury I didn't understand you, but thanks anyway When you don't want to speek to me good bye. you said
Element field Dialogové systémy Luděk Bártek Organizační poznámka VoiceXML Základní informace Struktura aplikace Zápis dialogů pomocí VoiceXML Formulář Vstupní pole Řídící struktury Představuje vstup od uživatele. Může být zadán buď hlasem nebo pomocí DTMF. Atributy: ■ name - jméno pole. Používá se k přístupu k zadané 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 Organizační poznámka 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 poznámka VoiceXML Základní Zadejte Vaše jméno informace Struktura aplikace Zápis dialogů pomocí Element record Dialogové systémy Luděk Bártek Organizační poznámka 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 Organizační poznámka 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 poznámka
VoiceXML Základní Bohužel zde nikdo není. Po zaznění VoiceXML Formulář signálu můžete zanechat vzkaz. Vstupní pole Řídící struktury Bohužel nic neslyším. Zkuste to znovu.
Element subdialog Dialogové systémy Luděk Bártek Organizační poznámka VoiceXML Základní informace Struktura aplikace Zápis dialogů pomocí VoiceXML Formulář Vstupní pole Řídící struktury Slouží k vyvolání dílčího dialogu (dialogu řešícího dílčí problém). Jeden a tentýž subdialog se dá volat opakovaně. Vyvolání subdialogu: ■ element subdialog - vlastní volání subdialogu. ■ 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 Organizační poznámka VoiceXML Základní informace Struktura aplikace Zápis dialogů pomocí VoiceXML Formulář Vstupní pole Řídící struktury
Ukázka použití subdialogu ve VoiceXML Hodnota subdialogu je
Na pozdrav jste mi neodpověděl. Nashledanou. >0 0,0 Element subdialog Ukázka užití - dokončení Dialogové systémy Luděk Bártek Organizační poznámka VoiceXML Základní informace Struktura aplikace Zápis dialogů pomocí VoiceXML Formulář Vstupní pole Řídící struktury Bohužel jsem Vám nerozuměl, ale stejně dekuj i.Nashledanou.
□ 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, .