Dialogové systémy Luděk Bártek Laboratoř vyhledávání a dialogu, Fakulta Informatiky Masarykovy Univerzity, Brno jaro 2014 VoiceXML Základní informace Dialogové systémy Luděk Bártek VoiceXML Základní ■ Jazyk pro popis dialogových strategií. ■ Součást standardů W3C Voice Browser Activity. informace Struktura ■ Cíl: Zápis dialogů pomocí ■ přinést výhody webového vývoje a doručování obsahu do VoiceXM L interaktivních hlasových aplikací. Řídící struktury ■ 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, ... a < /form >. Zá klad n i informace Struktura ■ Obsahuje: Zápis dialogů ■ sadu vstupních polí pomoci VoiceXML ■ deklarace proměnných daného formuláře - element var Vstupní pole ■ definice gramatik platných v daném formuláři Řídící struktury 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 ■ Formuláře jsou interpretovány implicitním algoritmem pro Základní interpretaci formulářů (Form Interpretation Algorithn, informace Struktura FIA): Zápis dialogů pomocí Q Přehraj všechny výzvy, které jsou potomky tohoto VoiceXML elementu form. Vstupní pole B Dokud existuje vstupní pole formuláře s nedefinovanou Ridici struktury hodnotou: D Vyber 1. vhodný nezadaný vstup. Q Přehraj všechny výzvy, které se váží k danému poli. Q Získej hodnotu vstupu daného vstupního pole nebo zpracuj vyvolanou událost (help, nomatch, . . .) Q 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 ■ FIA může dále skončit pokud: Zápis dialogů pomocí VoiceXM L ■ pokud se má provést přesměrování hovoru (např. element goto) Vstupní pole Řídící struktury ■ 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 VoiceXML Zápis dialogů pomocí
VoiceXML Vstupní pole Řídící struktury Hello world! This is our first VoiceXML form.
1 -00.0 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 ■ 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 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ář Vstupní pole a řídící struktury - ukázka užití Dialogové systémy Luděk Bártek Základní informace
Struktura Zápis dialogů pomocí VoiceXML Welcome to the VoiceXML!. Vstupní pole Řídící struktury Hello. Tell mi something nice, like hello, hi, good day. Formulář Vstupní pole a řídící struktury - ukázka užití - pokračování Dialogové systémy Luděk Bártek I didn't understand you, but thanks anyw VoiceXML Základní informace Struktura Zápis dialogů pomocí VoiceXML Vstupní pole When you don't want to speek to me good Řídící struktury bye. you said < s ► i -00.0 Element field Dialogové systémy Luděk Bártek VoiceXML ■ Představuje vstup od uživatele. Může být zadán bud' Základ ní informace Struktura hlasem nebo pomocí DTMF. Zápis dialogů ■ Atributy: VoiceXML ■ 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 ■ Obsah elementu: VoiceXML ■ Výzva s popisem požadované hodnoty (element prompt). Základní informace ■ Gramatika (element grammar) - gramatika s popisem Struktura akceptovaných vstupů. Zápis dialogů pomocí ■ Typ gramatiky závisí na použité platformě (zabudovaném VoiceXML rozpoznávací řeči, např. Voxeo Prophecy, OptimTalk - Vstupní pole Řídící struktury 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 VoiceXML Základní informace Struktura Zadejte Vaše jméno Zápis dialogů pomocí VoiceXML Vstupní pole Zadejte prosím Vaše křestní jméno Řídící struktury Je mi líto, ale zadané jméno není v kalendáři
< s ► i -00.0 Element record Dialogové systémy 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 VoiceXML Základní informace Struktura Zápis dialogů pomocí VoiceXML 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 Základní informace
Struktura Vstupní pole Bohužel zde nikdo není. Po zaznění Řídící struktury signálu můžete zanechat vzkaz. Bohužel nic neslyším. Zkuste to znovu.
< s ► i -00.0 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 ■ Vyvolání subdialogu: Zápis dialogů pomocí ■ element subdialog - vlastní volání subdialogu. VoiceXML ■ 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 Zápis dialogů Ukázka použití subdialogu ve VoiceXML pomocí VoiceXML Vstupní pole Řídící struktury Hodnota subdialogu je Element subdialog Ukázka užití - pokračování Dialogové systémy Luděk Bártek Řekl jste VoiceXML Základní informace Struktura
pomocí VoiceXML
Vstupní pole Řídící struktury Na pozdrav jste mi neodpověděl. Nashledanou. Element subdialog Ukázka užití - dokončení Dialogové systémy Luděk Bártek VoiceXML Základní Bohužel jsem Vám nerozuměl, ale stejně informace Struktura dekuj i.Nashledanou. Zápis dialogů pomoci VoiceXML Vstupní pole Řídící struktury
Element block Dialogové systémy Luděk Bártek VoiceXML Základní informace ■ Obsahuje proveditelný obsah. Struktura ■ atributy: Zápis dialogů pomocí ■ name - název bloku. VoiceXML ■ expr - iniciální hodnota proměnné formuláře. Vstupní pole Řídící struktury ■ 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, . . . 1 -00.0