Dialogové systémy Luděk Bártek 1 Dialogové systémy 1 Ludek Bartek Laboratory of Searching and Dialogue, Faculty of Informatics, Masaryk University, Brno spring 2023 VoiceXML Basic Information ■ Language for dialogue strategies description. ■ Part of the W3C Voice Browser Activity standards. ■ Objective: ■ To bring advantages of web development and content delivery into the interactive voice applications. ■ History: ■ 1995 - started development of the AT&T Phone Mark-up Language. ■ 1998 - conference organized by W3C focused to the voice browsing the web: ■ presented languages PML, VoxML, SpeechML, TalkML, VoiceHTML, ... VoiceXML Basic Information Bärtek ■ History (cont): ■ 1999 - founded VoiceXML Forum - tries to merge effort to develop language for dialogues mark-up. ■ 2000: ■ released the VoiceXML 1.0 specification ■ the VoiceXML 1.0 specification accepted as the W3C Recommendation. ■ Present state: ■ Recommendation - VoiceXML 2.1. (June 2007) ■ Draft - VoiceXML 3.0 (December 2010) VoiceXML Model of communication Dialogové systémy Luděk Bártek Obräzek 1: Model of the Architecture of VoiceXML based applications (see VoiceXML 2.0 Recommendation) Dokumentový server (WWW, ...) Požadavek Dokument VoiceXML Interpreter Kontext interpretru Implementační platforma í Uživatel VoiceXML Applications Structure Dialogové systémy Luděk Bártek ■ VoiceXML document(s): ■ Consists of forms. ■ User is in one of the conversational states at a given time. ■ The states transitions are defined by URI - they references the next dialogue step. ■ The dialogue ends when the transition is not defined. ■ VoiceXML defines two types of dialogues: ■ Forms - defines process needed to obtain the values of a set of input fields. ■ Menu - offers a set of choices and references to next dialogue steps (forms). VoiceXML Applications structure - cont. Dialogové systémy ■ Subdialogues: Luděk Bártek ■ analogy to the procedural program functions. ■ Used to perform particular part of the dialogue repeatedly, the input of e-mail address for example. ■ The subdialogues are realized using forms, they can get parameters and can return some value (see later) ■ Session: ■ Starts when the user-VoiceXML interpret communication starts. ■ Finishes: ■ on user request (the connection termination request, the interpretation end request, .. .) ■ VoiceXML document - there is no defined transition to the next step, submitting data to the next processing, .. . ■ Application - set of documents sharing the root document. VoiceXML Dialogové systémy ■ vxml - document root element. ■ Must have following attributes: ■ version - used VoiceXML version ■ present version 2.1 ■ the version must be supported by implementation platform - OptimTalk 1.9 - 2.1, JVoiceXML - partial support of version 2.1, VoiceGlue - version 2.0 support + some 2.1 options, . .. ■ xmlns- implicit name space declaration. It must contain the URI http://www.w3.org/2001/vxml. ■ xmhlang- the code of the interface natural language. ■ The element contains: ■ One or more elements form, ■ element menu, ■ . .. Form Dialogové systémy ■ One of fundamental VoiceXML document elements. ■ Bounded by tags < form > a < / form >. ■ Contains: ■ Set of input fields ■ a form's variables declaration - element var ■ defines grammars valid in an entire form ■ blocks of ECMAScript code. ■ . .. ■ Attributes: ■ id - mandatory attribute: ■ used as the form identifier ■ its value must be unique in the document ■ it can be used to transfer the control into the form. Form Form Interpretation Algorithm Dialogové systémy Luděk Bártek ■ The Form Interpretation Algorithm (FIA) is the default algorithm used to interpret forms: O Play all prompts those are child elements of the form. Q Repeat it until there is input field with undefined value. Q Select 1st suitable undefined field. Q Play all field prompts. Q Either acquire the field value value or process generated event (help, nomatch, .. .) Q Process the filled child of the input field. Form FIA - cont Dialogové systémy Luděk Bártek ■ FIA may be terminated following ways: ■ The call should be transferred (using the element goto for example). ■ The data has to be send to the document server (the element submit). ■ The form should be explicitly terminated (the element exit). Form Example Ludek Bartek ^^^^^^^^^fl Hello world! This is our first VoiceXML form. Form Child Elements Dialogové systémy Luděk Bártek Input field - corresponds to different possibilities of how to enter form values: ■ field - user input, may be entered using a voice or dtmf. ■ record - used to record message from an user. ■ subdialogue - calls a dialogue processing some partial problem, entering address, date, .. .for example Control blocks: ■ block - a block of commands, can be used to output of data, input data processing, . .. ■ initial - the part of dialogue that is processed first. Used in mixed initiative dialogue strategy interfaces. ■ transfer - transfers user to a new location (application, human phone operator, ...) ■ object - used to access platform depended functionality (dll, JSP+, servlet, .. .) Form Input Fields and Control Blocks - example Dialogové systémy Welcome to the VoiceXML!. Hello. Tell mi something nice, like hello, hi, good day. □ e 1 O Q, O Form Input Fields and Control Structures - Examples - cont. Dialogové systémy Luděk Bártek I didn't understand you, but thanks anyway. When you don't want to speek to me good bye. you said Field Element Dialogové systémy Luděk Bártek ■ Represents a user input field. Either the voice or DTMF may be used to input data. ■ Attributes: ■ name - The field name. Used to access the field value (using shadow variable with the same name). ■ expr - ECMAScript expression used to initialize the input field value. ■ cond - the condition that must be met to process the input field. ■ For more see specification. Field Element Cont. Dialogové systémy ■ Content of the Element: ■ Prompt describing the value to enter (element prompt). ■ Grammar (element grammar) - a grammar describing the accepted answers. ■ Type of the grammar depends on used platform (on the used speech recognition module, for example Voxeo Prophecy, OptimTalk support SRGS, JVoiceXML supports JSGF,...). ■ Event handling: ■ noinput - no input from user detected ■ nomatch - the user input doesn't match the input field grammar ■ filled - allows to react on a correct input (on filling the input field) Field Element Usage Example Dialogové systémy Luděk Bártek Your first name Enter your first name please I;m sorry, but the value you enter does not match first names in a calendar. ■ Used to record a message from user. ■ It can be used to create voice recorder. ■ Attributes: ■ name - input field name ■ expr - see the element field ■ cond - see the element field ■ beep - should be the start of recording signalled using a sound signal (beep) ■ maxtime - the maximum recording length ■ type - the recording mi me-type, it must be supported by VoiceXML platform Element record Dialogové systémy Luděk Bártek ■ Element content: ■ Prompt(s) describing the requested input. ■ Possible event handling: ■ noinput - no user input detected. ■ connection.disconnect.hangup - user hang up prior the recording ended. Record Element Usage Example Dialogové systémy Luděk Bártek
I;m sorry but there is nobody you can talk to. You may left your message. I'm sorry but I don't hear anything.
Element subdialogue Dialogové systémy Luděk Bártek Is used to call a subdialogue (a dialogue solving some partial problem, e.g.. input date, grade, ...). The subdialogue can be called repeatingly with different parameters. Subdialogue calling: ■ element subdialogue - the subdialogue calling itself. ■ Contains: ■ param - parameter definition (its name and value). ■ filled - executable block handling what to do when the subdialogue ends. ■ Attributes: ■ name - subdialogue name. Is used as a shadow variable to access the returned value. ■ src - subdialogue form URI. Subdialogue code: ■ a form ■ terminated by element return. ■ the element return may contain parameter namelist containing the list of input field's of fhe subdialdgues^o fcSe^0, Element subdialog Example Dialogové systémy Luděk Bártek
Example of using subdialogue Element subdialog Example - cont. Dialogové systémy Luděk Bártek You said
You have not respond to the greating. Good bye. Element subdialog Example - cont. Dialogové systémy Luděk Bártek I;m sorry I didn't understand You, but I thank You anyway. Good bye.
Element block Dialogové systémy Luděk Bártek ■ Contains executable content. ■ attributes: ■ name - a block name. ■ expr - a shadow variable initial value. ■ cond - the condition it must be fulfilled to start the block execution. ■ structure - similar to the filled element: ■ control blocks - elements if, else, elseif ■ assignments - elements assign, clear, ... ■ jump statements - elements goto, exit, return, .. .