Special Lecture (406) Spoken Language Dialog Systems VoiceXML: Dialogs, Forms and Fields

Similar documents
Special Lecture (406) Spoken Language Dialog Systems Introduction to VoiceXML

VoiceXML Application Development Recommendations

Voice Foundation Classes

VClarity Voice Platform

VoiceXML Reference Version 1.6 June 2001

Voice Extensible Markup Language (VoiceXML)

INTRODUCTION TO VOICEXML FOR DISTRIBUTED WEB-BASED APPLICATIONS

BeVocal VoiceXML Tutorial

LABORATORY 117. Intorduction to VoiceXML (3)

Speech Applications. How do they work?

Speaker Verification in BeVocal VoiceXML

LABORATORY 117. Intorduction to VoiceXML

Dialogic PowerMedia IP Media Server Release 3.1.0

Menu Support for 2_Option_Menu Through 10_Option_Menu

An Approach to VoiceXML Application Modeling

Form. Settings, page 2 Element Data, page 7 Exit States, page 8 Audio Groups, page 9 Folder and Class Information, page 9 Events, page 10

Avaya Media Processing Server VXML Browser User Guide

PASS4TEST. IT Certification Guaranteed, The Easy Way! We offer free update service for one year

Voice Browser Working Group (VBWG) Input on application backplane topics. Scott McGlashan (HP) Rafah Hosn (IBM)

Appendix A. A Quick Reference to VoiceXML 1.0 Syntax

Back-end Avaya Aura Experience Portal and SIP-enabled Avaya Contact Center Select using a Play and Collect sample application

Authors Martin Eckert Ingmar Kliche Deutsche Telekom Laboratories.

EE Voice xml application developer exam.

Web Architectures. Goal of Architecture Design. Architecture Design. Single Server Configuration. All basic components installed on same machine

VoiceXML. Installation and Configuration Guide. Interactive Intelligence Customer Interaction Center (CIC) Version 2016 R4

Application Notes for InfoTalk-Vbrowser 3.0 with Avaya Aura Communication Manager and Avaya Aura Session Manager 6.3 Issue 1.0

Exam Express Exam EE0-411 voice xml application developer exam Version: 5.0 [ Total Questions: 118 ]

Record_With_Confirm. Settings

White Paper Subcategory. Overview of XML Communication Technologies

Position Statement for Multi-Modal Access

Cisco CVP VoiceXML 3.0. Element Specifications

PRACTICAL SPEECH USER INTERFACE DESIGN

A NOVEL MECHANISM FOR MEDIA RESOURCE CONTROL IN SIP MOBILE NETWORKS

Specifying and Realising Interactive Voice Services

Record. Settings. Settings, page 1 Element Data, page 5 Exit States, page 5 Audio Groups, page 6 Folder and Class Information, page 6 Events, page 6

Hosted Fax Mail. Blue Platform. User Guide

ETSI TS V1.1.1 ( ) Technical Specification

Back-end Avaya Aura Experience Portal and SIP-enabled Avaya Aura Contact Center using Context Creation

SR Telephony Applications. Designing Speech-Only User Interfaces

Technote on VVB 11.6 Messge Flow with Comprehensive Call flow

Niusha, the first Persian speech-enabled IVR platform

Element Specifications for Cisco Unified CVP VXML Server and Cisco Unified Call Studio Release 11.6(1)

Dialogic PowerMedia XMS VoiceXML

Network Working Group Request for Comments: 5552 Category: Standards Track Genesys May 2009

DIALOGUE MANAGEMENT & VOICEXML, PART I

Dialogic PowerMedia XMS VoiceXML

Avaya Dialog Designer Dialog Designer Developer s Guide

VoiceXML. Comparison between VoiceXML and XISL

DEFINITION AND DETECTION OF SEMANTIC WARNINGS FOR VOICEXML

barge In option 127 bigdecimal variables 16 biginteger variables 16 boolean variables 15 business hours step 100

For Delegates: Creating Your Shared Access Account, Viewing Student Information, and Making a Payment with Shared Access

A Technical Overview: Voiyager Dynamic Application Discovery

Script Step Reference Information

Application Notes for Deploying a VoiceXML Application Using Avaya Interactive Response and Audium Studio - Issue 1.0

Element Specifications for Cisco Unified CVP VXML Server and Cisco Unified Call Studio Release 9.0(1)

An overview of interactive voice response applications

Holly5 VoiceXML Developer Guide Holly Voice Platform 5.1. Document number: hvp-vxml-0009 Version: 1-0 Issue date: December

A Convedia White Paper. Controlling Media Servers with SIP

Multimodality with XHTML+Voice

API Extensions. JSP Suffix A PPENDIX A

HMS Developer Guide HVP Release 5.1. Document number: hvp-hms-0014 Version: 1-0 Issue date: 22 December 2009

UCCE Solution Service Creation

About Unified IP IVR. Product names. Summary description of Unified IP IVR. This chapter contains the following:

ECEN 468 Advanced Logic Design

Auto Attendant. Blue Platform. Administration. User Guide

Unified Customer Voice Portal Overview

Dialog Designer Call Flow Elements

ATTENDANT USER GUIDE

Cisco Unity Express Windows and Menus

MRCP. UniMRCP for Asterisk. Installation and Usage Guide. Revision: 47 Last Updated: July 9, 2015 Created by: Arsen Chaloyan

Unified CVP Architecture Overview

Introducing the VoiceXML Server

Application Notes for Beijing InfoQuick SinoVoice Speech Technology (SinoVoice) jtts with Avaya Interactive Response Issue 1.0

Category: Standards Track October 2009

Unified Customer Voice Portal Overview

Dynamic Aural Browsing of MathML Documents via VoiceXML

SCXML. Michael Bodell.

MRCP. Julius Plugin. Usage Guide. Powered by Universal Speech Solutions LLC

Web Service Elements. Element Specifications for Cisco Unified CVP VXML Server and Cisco Unified Call Studio Release 10.0(1) 1

MRCP for State Tables

Application Notes for InfoTalk-Recognizer 9.0 with Avaya Aura Experience Portal 6.0 and Avaya Aura Communication Manager 6.2 Issue 1.

Designing an Auto Attendant Script

Application Notes for LumenVox Speech Engine with Avaya Voice Portal Issue 1.0

Deliverable D ASFE-DL: Semantics, Syntaxes and Stylistics (R3)

COMPARATIVE ANALYSIS ON MARK-UP SERVICE CREATION LANGUAGES

Abstract. 1. Conformance. 2. Introduction. 3. Abstract User Interface

SurVo. Stepping Through the Basics. Version 2.0

Delivering Superior Self Service with Open Standards

Configure Nuance TTS and ASR for Cisco Unified Contact Center Enterprise (UCCE)

VOICEXML-APPLICATIONS FOR E-COMMERCE AND E-LEARNING

Tools and Toolkits for Voice and Animated Character based Interventions. Overview

MRCP. Google SR Plugin. Usage Guide. Powered by Universal Speech Solutions LLC

Unified CVP Migration

Application Notes for Beijing InfoQuick SinoVoice Speech Technology (SinoVoice) jtts with Avaya Voice Portal Issue 1.0

Implementation of ASR4CRM : An Automated Speech- Enabled Customer Care Service System

NEAXMail AD-64 VOICE/UNIFIED MESSAGING SYSTEM User Guide

MRCP. Kaldi SR Plugin. Usage Guide. Powered by Universal Speech Solutions LLC

Auto Attendant Script Example

Application Notes for Beijing InfoQuick SinoVoice Speech Technology jtts with Avaya Voice Portal 5.1 Issue 1.0

Telephony Integration

Transcription:

Special Lecture (406) Spoken Language Dialog Systems VoiceXML: Dialogs, Forms and Fields Rolf Schwitter schwitt@ics.mq.edu.au Macquarie University 2004 1

Recap: VoiceXML Architecture Phone PSTN Internet Gateway & Voice Server Internet HTTP/VoiceXML Web Server SIP regular phone wireless phone soft phone telephony interface voice browser automated speech recognition text-to to-speech synthesis touchtone audio play/record VoiceXML documents audio files service logic (CGI) transaction processing database interface Macquarie University 2004 2

Recap: VoiceXML <?xml version = "1.0"?> <vxml version = "2.0"> <form id = "start"> <field name = "answer" type = "boolean"> <prompt> Say yes or no </prompt> <catch event = "nomatch noinput"> <reprompt/> </catch> <filled> <submit next = "cgi-bin/script.py"/> </filled> </field> </form> </vxml> Macquarie University 2004 3

Dynamic Scripting (CGI: script.py) #!/usr/local/bin/python import cgi form = cgi.fieldstorage() print "Content-type: text/xml\n\n" if (form["answer"].value == 'true') : print "<vxml version=\"2.0\"><form> \ <block>you just said yes</block></form></vxml>" else: print "<vxml version=\"2.0\"><form> \ <block>you just said no</block></form></vxml> Macquarie University 2004 4

VoiceXML Documents A VoiceXML document forms a conversational finite state machine. The caller is always in one conversational state, or dialog, at a time. Each dialog determines the next dialog to transition to. Transitions are specified using URIs, which define the next document and dialog to use. Execution is terminated when a dialog does not specify a successor, or if it has an element that explicitly exits the conversation. Macquarie University 2004 5

Dialogs Instructions are presented as a set of dialog elements. There are two kinds of dialog elements: forms menus. Macquarie University 2004 6

Forms Forms collect values for a set of field item variables. Grammars define the allowable inputs for fields. Platform throws events if the input is out-of of-grammar. Actions are performed when field items are filled. Macquarie University 2004 7

Example: Forms <form id = Identifier> <block> Message </block> <field name = VariableName> <prompt> Question </prompt> <grammar src = URI type = MediaType/> <catch event = EventType> HandlerMessage </catch> <filled> Actions </filled> </field> </form> Macquarie University 2004 8

Menus Menus present the caller with a set of options. Transitions to another dialog are based on a choice. The <menu> element is a shortcut for a form with only one field. It is a convenient way to ask the user to pick one option from a list. Macquarie University 2004 9

Example: Menus <menu id = Identifier> <prompt> Question <enumerate/> </prompt> <choice next = URI-1> Phrase-1 </choice> <choice next = URI-2> Phrase-2 </choice> <choice next = URI-3> Phrase-3 </choice> <noinput> Message <enumerate/> </noinput> </menu> Macquarie University 2004 10

Transitions Transitions are specified using URIs. URIs define the next document and dialog to use. If a URI does not refer to a document, the current document is assumed. If it does not refer to a dialog, the first dialog in the document is assumed. Transitions can be requested - for example - by: <choice next = URI> <goto next = URI> <link next = URI> Macquarie University 2004 11

A Dialog for Credit Card Information Computer: Computer: Caller: Computer: We now need your credit card type, number, and expiration date. What kind of credit card do you have? Discover I did not understand what you said. <a platform-specific default message> Macquarie University 2004 12

A Dialog for Credit Card Information Computer: Caller: Computer: Caller: Type of card? <the second prompt is used now> Shoot. <fortunately treated as "help" by this platform> Please say Visa, Master card, or American Express. Uh, Amex. <this platform ignores "uh"> Macquarie University 2004 13

A Dialog for Credit Card Information Computer: What is your card number? Caller: One two three four... wait... Computer: I did not understand what you said. Computer: Card number? Caller: <uses DTMF> 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 # Macquarie University 2004 14

A Dialog for Credit Card Information Computer: What is your card s expiration date? Caller: one two oh four Computer: I have Amex number 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 expiring on 1 2 0 4. Is this correct? Caller: Yes Macquarie University 2004 15

Dialog Flow <form id = "get_card_info"> <field name = "card_type"> </field> <field name = "card_num"> </field> <field name = "expiry_date"> </field> <field name = "confirm"> </field> </form> Macquarie University 2004 16

VoiceXML Code <?xml version = "1.0"?> <vxml version = "2.0"> <form id = "get_card_info"> <block> We now need your credit card type, number, and expiration date. </block> Macquarie University 2004 17

Field: card_type <field name = "card_type"> <prompt count = "1"> What kind of credit card do you have? </prompt> <prompt count = "2"> Type of card? </prompt> Macquarie University 2004 18

Field: card_type <grammar type = "application/srgs+xml" root = "r2" version = "1.0"> <rule id = "r2"> <one-of> <item> visa </item> <item> master <item repeat = "0-1"> card </item> </item> <item> amex </item> <item> american express </item> </one-of> </rule> </grammar> Macquarie University 2004 19

Field: card_type <help> Please say Visa, Mastercard, or American Express. </help> </field> Macquarie University 2004 20

Field: card_num <field name = "card_num"> <grammar type = "application/srgs+xml" src = "/grammars/digits.grxml"/> <prompt count = "1"> What is your card number? </prompt> <prompt count = "2"> Card number? </prompt> Macquarie University 2004 21

Field: card_num <catch event = "help"> <if cond = "card_type == 'amex' card_type == 'american express'"> Please say or key in your 15 digit card number. <else/> Please say or key in your 16 digit card number. </if> </catch> Macquarie University 2004 22

Field: card_num <filled> <if cond = "(card_type == 'amex' card_type == 'american express') && card_num.length!= 15"> American Express card numbers must have 15 digits. <clear namelist = "card_num"/> <throw event = "nomatch"/> Macquarie University 2004 23

Field: card_num <elseif cond = "card_type!= 'amex' && card_type!= 'american express' && card_num.length!= 16"/> Mastercard and Visa card numbers have 16 digits. <clear namelist = "card_num"/> <throw event = "nomatch"/> </if> </filled> </field> Macquarie University 2004 24

Field: expiry_date <field name = "expiry_date"> <grammar type = "application/srgs+xml" src = "/grammars/digits.grxml"/> <prompt count = "1"> What is your card's expiration date? </prompt> <prompt count = "2"> Expiration date? </prompt> <help> Say or key in the expiration date, for example one two oh one. </help> Macquarie University 2004 25

Field: expiry_date <filled> <var name = "mm"/> <var name = "i" expr = "expiry_date.length"/> <if cond = "i == 3"> <assign name = "mm" expr = "expiry_date.substring(0,1)"/> <elseif cond = "i == 4"/> <assign name = "mm" expr = "expiry_date.substring(0,2)"/> </if> Macquarie University 2004 26

Field: expiry_date <if cond = "mm == '' mm < 1 mm > 12"> <clear namelist = "expiry_date"/> <throw event = "nomatch"/> </if> </filled> </field> Macquarie University 2004 27

Field: confirm <field name = "confirm"> <grammar type = "application/srgs+xml" src = "/grammars/boolean.grxml"/> <prompt> I have <value expr = "card_type"/> number <value expr = "card_num"/>, expiring on <value expr = "expiry_date"/> Is this correct? </prompt> Macquarie University 2004 28

Field: confirm <filled> <if cond = "confirm"> <submit next = "place_order.asp" namelist = "card_type card_num expiry_date"/> </if> <clear namelist = "card_type card_num expiry_date confirm"/> </filled> </field> </form> </vxml> Macquarie University 2004 29

Prompt Element The <prompt> element controls the output of synthesized speech and prerecorded audio. Important attributes are: bargein controls whether the caller can interrupt a prompt cond an expression telling if the prompt should be spoken count a number that allows to emit different prompts timeout for the following caller input Macquarie University 2004 30

Tapered Prompts Prompts can be used to vary a message given to the human. <field name = "card_type"> <prompt count = "1"> What kind of credit card do you have? </prompt> <prompt count = "2"> Type of card? </prompt> Prompts may be tapered to be: more terse with use (field prompting) more explicit (help prompts). Macquarie University 2004 31

Catch and Help Element The <help> element is an abbreviation for <catch event = "help"> </catch> For example <help> Please say Visa, Mastercard, or American Express. </help> Additional attributes are: "count" and "cond cond". Macquarie University 2004 32

Conditions The <if> element is used for conditional logic. It has optional <else> and <elseif elseif> elements. The expression language used is ECMAScript. <if cond = "(card_type == 'amex' card_type == 'american express') && card_num.length!= 15"> <elseif /> </if> The "cond cond" operator "&&" needs to be escaped "& &". Macquarie University 2004 33

Variables Variables are declared by <var var> elements: <var name = "mm"/> <var name = "i" expr = "expiry_date.length"/> Variables are also declared by form items: <field name = "card_type"> </field> Attributes are: name the name of the variable that will hold the result expr initial value is optional Macquarie University 2004 34

Assign Element The <assign> element assigns a value to a variable: <assign name = "mm" expr = "expiry_date.substring(0,1)"/> Variables need to be declared before making an assignment. Attributes are: name the name of the variable being assigned to expr the new value of the variable Macquarie University 2004 35

Clear Element The <clear> element resets one or more variables. For example: <clear namelist = "card_num"/> The attribute "namelist namelist" contains the variables to be reset. Macquarie University 2004 36

Throw Element The <throw> element throws an event. This can be a pre-defined one: <throw event = "nomatch"/> or an application-defined one: <throw event = "com.att.portal.machine"/> Macquarie University 2004 37

Submit Element The <submit> element is used to submit information to a server: <submit next = "place_order.asp" namelist = "card_type card_num expiry_date"/> It lets you submit a list of variables to the document server via an HTTP GET or POST request: <submit next = "place_order.asp" method = "post" namelist = "card_type card_num expiry_date"/> Macquarie University 2004 38

Take-Home Message A VoiceXML document forms a finite state machine. Each dialog determines the next dialog to transition to. There are two kinds of dialogs: forms and menus. The expression language used in "cond cond" and "expr expr" is ECMAScript. Operators "<", "<=", and "&&" must be escaped in XML. Macquarie University 2004 39