A Development Tool for VoiceXML-Based Interactive Voice Response Systems



Similar documents
VoiceXML Tutorial. Part 1: VoiceXML Basics and Simple Forms

An Introduction to VoiceXML

Open Source VoiceXML Interpreter over Asterisk for Use in IVR Applications

! <?xml version="1.0">! <vxml version="2.0">!! <form>!!! <block>!!! <prompt>hello World!</prompt>!!! </block>!! </form>! </vxml>

VoiceXML-Based Dialogue Systems

VXI* IVR / IVVR. VON.x 2008 OpenSER Summit. Ivan Sixto CEO / Business Dev. Manager. San Jose CA-US, March 17th, 2008

VoiceXML Discussion.

How To Use Voicexml On A Computer Or Phone (Windows)

BeVocal VoiceXML Tutorial

VoiceXML and VoIP. Architectural Elements of Next-Generation Telephone Services. RJ Auburn

How To Write A Powerpoint Powerpoint Gsl In A Html Document In A Wordpress (Html) Or A Microsoft Powerpoint (Html5) (Html3) (Powerpoint) (Web) (Www

Dialog planning in VoiceXML

Interfaces de voz avanzadas con VoiceXML

Version 2.6. Virtual Receptionist Stepping Through the Basics

Thin Client Development and Wireless Markup Languages cont. VoiceXML and Voice Portals

Speech Recognition of a Voice-Access Automotive Telematics. System using VoiceXML

VoiceXML Programmer s Guide

Deploying Cisco Unified Contact Center Express Volume 1

VoiceXML and Next-Generation Voice Services

Avaya Aura Orchestration Designer

Cisco IOS VoiceXML Browser

VoiceXML Overview. James A. Larson Intel Corporation (c) 2007 Larson Technical Services 1

How to Back Up and Restore an ACT! Database Answer ID 19211

Traitement de la Parole

Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 03 XML based Standards and Formats for Applications

1. Login to with your User ID and password. Select Virtual Receptionist from the Basic Services tab.

Signatures. Advanced User s Guide. Version 2.0

Support and Compatibility

VoiceXML. Erik Harborg SINTEF IKT. Presentasjon, 4. årskurs, NTNU, ICT

VOICEXML TUTORIAL AN INTRODUCTION TO VOICEXML

Configuring.NET based Applications in Internet Information Server to use Virtual Clocks from Time Machine

Using Dialogic Boards to Enhance Voice Mail/Messaging Applications. Application Note

2014 Direct Drive, Inc. All rights reserved.

Information. OpenScape Contact Center Voice Portal V7.0 R2 Enable Open Dialogue, Intuitive Interaction, and Seamless Handoff

Using Internet or Windows Explorer to Upload Your Site

Application Notes for Speech Technology Center Voice Navigator 8 with Avaya Aura Experience Portal Issue 1.0

Combining VoiceXML with CCXML

Voic . Advanced User s Guide. Version 2.0

XML based Interactive Voice Response System

AN EXTENSIBLE TRANSCODER FOR HTML TO VOICEXML CONVERSION

Web page creation using VoiceXML as Slot filling task. Ravi M H

Moving Enterprise Applications into VoiceXML. May 2002

Installing the BlackBerry Enterprise Server Management Software on an administrator or remote computer

Phone Routing Stepping Through the Basics

MIGRATING TO AVALANCHE 5.0 WITH MS SQL SERVER

VoiceXML versus SALT: selecting a voice

How To Develop A Voice Portal For A Business

Cloud Services ADM. Agent Deployment Guide

How To Create An Easybelle History Database On A Microsoft Powerbook (Windows)

A design of the transcoder to convert the VoiceXML documents into the XHTML+Voice documents

Speech Interface Implementation for XML Browser

Abstract. Avaya Solution & Interoperability Test Lab

Using VoiceXML, XHTML, and SCXML to Build Multimodal Applications. James A. Larson

Dialogos Voice Platform

Getting Started with Cisco Unified IP IVR, Release 8.5(1)

Oracle FLEXCUBE Universal Banking 12.0 RAD Notification Development. Release 1.0

Voice Processing Standards. Mukesh Sundaram Vice President, Engineering Genesys (an Alcatel company)

STATISTICA VERSION 10 STATISTICA ENTERPRISE SERVER INSTALLATION INSTRUCTIONS

Standard Languages for Developing Multimodal Applications

RAPID VOICEXML DEVELOPMENT USING IBM S GRAPHICAL CALL FLOW BUILDER

Using a Remote SQL Server Best Practices

VoiceXML Data Logging Overview

Using the DataDirect Connect for JDBC Drivers with the Sun Java System Application Server

Migrating Legacy IVR Applications to VoiceXML with Voxeo The advantages of a 100% VoiceXML compliant platform

FileMaker Server 9. Custom Web Publishing with PHP

Hermes.Net IVR Designer Page 2 36

EMC Documentum Repository Services for Microsoft SharePoint

UWSP UNIFIED MESSAGING VOIC TRAINING GUIDE

Active Directory Management. Agent Deployment Guide

Setting Up ALERE with Client/Server Data

STATE OF THE IVR: INDUSTRY EXPERTS WEIGH IN Insights and best practices for getting the most out of your IVR interactions.

MiVoice Integration for Salesforce

Jolly Server Getting Started Guide

Oracle IVR Integrator

SPEECH RECOGNITION APPLICATION USING VOICE XML

A This panel lists all the IVR queues you have built so far. This is where you start the creation of a IVR

MICROSTRATEGY 9.3 Supplement Files Setup Transaction Services for Dashboard and App Developers

About us. advanced crosschannel Software Solutions designed to provide. interaction with your. clients, improve. customer satisfaction.

Materials Software Systems Inc (MSSI). Enabling Speech on Touch Tone IVR White Paper

Crystal Reports Installation Guide

VoiceXML. For: Professor Gerald Q. Maguire Jr. By: Andreas Ångström, and Johan Sverin, Date:

October, Install/Uninstall Xerox Print Drivers & Apps Best Practices for Windows 8, 8.1, and 10 Customer Tip

CIMHT_006 How to Configure the Database Logger Proficy HMI/SCADA CIMPLICITY

Lotus Notes 6.x Client Installation Guide for Windows. Information Technology Services. CSULB

Installation Instruction STATISTICA Enterprise Small Business

WebSphere Voice Server for Multiplatforms. VoiceXML Programmer s Guide

SAML Security Option White Paper

Since we are starting small, we will partake in the time-honoured tradition of true 'Hello World' applications.

ERICSSON SOLIDUS ecare AGENT, MANAGEMENT AND SELF-SERVICE APPLICATIONS BUILT FOR BETTER BUSINESS

Design and Functional Specification

FrontRange Voice. Password Reset via Self-Service. Presented by: Mark Hodgen

STATISTICA VERSION 12 STATISTICA ENTERPRISE SMALL BUSINESS INSTALLATION INSTRUCTIONS

DiskPulse DISK CHANGE MONITOR

Developing Usable VoiceXML Applications

StruxureWare Power Monitoring 7.0.1

Following this Jumpstart on creating a SurVo IVR is an Addendum that explains some more specific details about the SurVo application.

Vocalité Version 2.4 Feature Overview

To install Multifront you need to have familiarity with Internet Information Services (IIS), Microsoft.NET Framework and SQL Server 2008.

Transcription:

A Development Tool for VoiceXML-Based Interactive Voice Response Systems Cheng-Hsiung Chen Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University Chiayi, Taiwan 621, R.O.C. {ccs88m,naiwei@cs.ccu.edu.tw Abstract This paper describes a development tool for VoiceXML-based interactive voice response systems. This tool provides a set of friendly graphical user interfaces to relieve users from writing code. This set of graphical user interfaces supports a set of commonly used dialog patterns to facilitate the design of the dialog structure of the system. This tool also provides a set of predefined asynchronous dialog transfer events to facilitate the transfer among dialogs. 1. Introduction An interactive voice response (IVP) system allows a server to interactively response to clients by voice via telephones. VoiceXML is a dialog markup language that is designed to facilitate the development of interactive voice response services using World Wide Web technology [4]. This paper describes a tool TIVR for developing VoiceXML-based interactive voice response systems. This tool provides a set of friendly graphical user interfaces to relieve users from writing code. This set of graphical user interfaces supports a set of commonly used dialog patterns to facilitate the design of the dialog structure of the system. This tool also provides a set of predefined asynchronous dialog transfer events to facilitate the transfer among dialogs. The remainder of this paper is organized as follows. Section 2 gives a brief introduction to VoiceXMLbased IVP systems. Section 3 provides an overview of the TIVR development tool. Section 4 describes the implementation of the dialog design patterns. Section 5 describes the implementation of the asynchronous dialog transfer events. Finally, conclusions are given in Section 6. 2. VoiceXML-based IVP systems The world wide web provides easy access for abundant visual information in the world. However, there are many more people who have access to telephones than people who have access to computers. Hence, it is also beneficial to provide easy access for abundant voice information in the world. In addition, for visually impaired people, it becomes very significant to provide easy access for abundant voice information in the world. The IVP systems have been used to provide easy access to abundant voice information. The user can use a telephone to call a number to interact with a server via voice. A well-designed IVP system can usually provide good quality information access services for users. Traditional IVP systems are implemented using general-purpose programming languages. This makes the development and maintenance of the IVP systems difficult. Recently, a domain-specific programming language VoiceXML has been proposed to facilitate the development and maintenance of IVP systems. A typical architecture for VoiceXML-based IVP systems is given in Figure 1. The voice gateway is used to handle the telephone calls from the users. After receiving a call, the voice gateway will request the application root VoiceXML document from the web server and invocate the VoiceXML interpreter to interpret this document. The VoiceXML interpreter may use the Text-to-Speech (TTS) component to translate a segment of text into speech and sent it to the caller. The VoiceXML interpreter may also use the Automatic-Speech-Recognition (ASR) component to recognize the speech from the caller, access the web server or database server according to the recognized request, and then respond the result using the TTS component.. 1

Figure 1. A typical architecture of IVP systems. An IVP application consists of a set of VoiceXML documents. Each VoiceXML document is a vxml element that contains one or more dialogs. A dialog may present the user with speech information or prompt the user to provide speech or touch-tone information. A dialog is a form element or a menu element. A form is a dialog for presenting information and collecting data. A menu is a dialog for choosing amongst alternative destinations. A dialog may direct the flow of control to another dialog in the same document, to a dialog in another document in the same application, or to a dialog in another application. A dialog may be structured as a sequence of subdialog to simplify the dialog and facilitate the reuse of subdialogs. The flow of transfer among dialogs and subdialogs is depicted in Figure 2. A dialog may transfer the flow of control to a subdialog using the subdialog element. After finishing its task, the subdialog may transfer the flow of control back the dialog using the return element. 3. An overview of TIVR The tool TIVR is designed to easy the development of IVR systems. It provides a set of friendly graphical user interfaces to specify the structure of dialogs in an IVR system. This allows the users to develop IVR systems without writing code. The graphical user interfaces can be divided into Figure 2. The flow of control among dialogs and subdialogs. 2

three categories of windows: database connection window, application initiation window, dialog design windows, and system simulation window. The database connection category is used to generate code to open and connect to a specific database. The tool uses the Microsoft universal data access standard Open database Connectivity (ODBC) to allow the generation of code independent of backend databases [1]. The application initiation category is used to initiate a specific application. All the VoiceXML documents within an application will be created and stored in the same directory of the file structure. A window is provided to allow the users to browse the file structure. The dialog design category is used to design the dialog structure of the system. It contains six dialog patterms: key_input, voice_input, search, verification, update, and menu. These dialog patterns can generate either static VoiceXML documents or php codes that dynamically generate VoiceXML documents [2]. The implementation of these dialog patterns will be described in detailed in the next section. The system simulation category is used to simulate the functionality of the developed IVP system using MyVoiceGenie [3]. 4. Dialog design patterns This section describes the implementation of the six dialog design patterns. The key_input dialog pattern uses the form element to input data from touch-tone keys. It first uses the property element to restrict the input only from touch-tone keys. It then uses the field element to collect a digit input. The interface allows the user to specify a voice prompt, the speech error message when no input occurs, the speech help message when the user throws a help event, and the destination of the next dialog when the input is correctly done. Multiple inputs can be specified in one dialog. For example, for a login input dialog that inputs both account number and password, a simplified version of the generated VoiceXML file would like <?xml version="1.0"?> <vxml version="2.0"> <property name="inputmodes" value="tts"/> <form id = "login.vxml"> <field name ="var1" type= "digits"> <prompt bargein = "true"> please input your account number </prompt> <field name ="var2" type= "digits"> <prompt bargein = "true"> please input your password </prompt> <filled> <submit next = "login.php" namelist = "var1 var2" /> </filled> </form> </vxml> The voice_input dialog pattern uses the form element to input data by voice. The interface allows the user to specify an SQL query to request the database for available prompts, the speech error message when no match occurs, the speech error message when no input occurs, the speech 3

help message when the user throws a help event, and the destination of the next dialog when the input is correctly done. Multiple inputs can be specified in one dialog. For example, a simplified version of the generated php file for a voice input would like $sql= "Search SQL"; $rs=@odbc_exec($conn,$sql); $recnum=odbc_num_rows($rs); if ( $recnum == 0 ) $vxml = $vxml. "<block>no data </block>\n"; else { $vxml = $vxml. "<field name =\"var1\">\n"; $vxml = $vxml. "<prompt bargein = \"true\">\n"; $vxml = $vxml. "[Prompt] \n"; $vxml = $vxml. "</prompt>\n"; while( odbc_fetch_row( $rs ) ) { $var=odbc_result( $rs, 1 ); $var = trim($var). " "; $myvar = $myvar. $var ; odbc_close($conn); $vxml = $vxml. "<grammar>\n"; $vxml = $vxml. "$myvar \n"; $vxml = $vxml. "</grammar>\n"; $vxml = $vxml. "<filled>\n"; $vxml = $vxml. "<submit next = \"next_file_adress\" namelist = \" var1\" $vxml = $vxml. "</filled>\n"; $vxml = $vxml. "</field>\n"; else { handling database connection failure The search dialog pattern uses the data input from the key_input dialog or voice_input dialog to search the database and return the result to the next dialog. The interface allows the user to specify the database and the data source to be queried, the SQL query, and the destinations of the next dialogs when the search succeeds or fails. For example, a simplified version of the generated php file for a database search would like $sql= "Search SQL"; $rs=@odbc_exec($conn,$sql); $recnum=odbc_num_rows($rs); if ( $recnum == 0 ) { $vxml = $vxml. " Sorry No Data \n"; if ( $recnum == 1 ){ $field1 = odbc_result( $rs, field1 ); $field2 = odbc_result( $rs, field2 ); $vxml = $vxml. " the field1 is. ". $field1. " the field2 is. ". $field2 "\n"; if ( $recnum > 1) { $vxml = $vxml. "you have total $recnum record \n"; $vxml = $vxml."</block>\n"; while( odbc_fetch_row($rs) ) { $field1 =odbc_result( $rs, field1 ); $field2 =odbc_result( $rs, field2 ); $vxml = $vxml. "record $i. ". " the field1 is. ". $field1. " the field2 is. ". $field2. "\n"; $vxml = $vxml."</block>\n"; odbc_close($conn); The verification dialog pattern uses the data input from the key_input dialog or voice_input dialog to verify the match with the information in the database. 4

The interface allows the user to specify the database and the data source to be verified, the SQL query, and the destinations of the next dialogs when the verification succeeds or fails. For example, for a login verification dialog that verifies both account number and password, a simplified version of the generated php file would like $sql= "Verify SQL"; $rs=@odbc_exec($conn,$sql); $recnum=odbc_num_rows($rs); $vxml = $vxml."<block>\n"; if ( $recnum == 0 ) { $vxml = $vxml. "[Failure_Msg]\n"; $vxml = $vxml. "<goto next=\"failure\" else { if ( session_flag = true ) { $account = odbc_fetch_row($rs,account); if (!session_is_registered("cust_acc")) { session_register("cust_acc"); $cust_acc=$account; $vxml = $vxml."</block>\n"; odbc_close($conn); else { handling database connection failure The interface allows the user to specify the database and the data source to be updated, the SQL query, and the destinations of the next dialogs when the update succeeds or fails. For example, a simplified version of the generated php file for a database update would like $sql= "[Update_SQL]"; $rs=@odbc_exec($sql); if (!rs ) $Err="Y"; odbc_close(); if ( Err == "Y" ) $vxml = $vxml. "[Success_Msg]"; else $vxml = $vxml. "[Failure_Msg]"; The menu dialog pattern uses the menu element to allow the user to choosing amongst alternative destinations. The update dialog pattern uses the data input from the key_input dialog or voice_input dialog to update information in the database. 5

The interface allows the user to specify alternative functionalities and the corresponding dialog destinations, and the speech help message when the user throws a help event. For example, a simplified version of the generated VoiceXML file for a menu that provides two functionalities func1 and func2 would like <menu id = "menuid" scope = "document"> <prompt bargein = "true"> please input func1 or func2 </prompt> <choice dtmf = "1" next ="[dialog1]"> func1 </choice> <choice dtmf = "2" next ="[dialog2]"> func2 </choice> </menu> where dialog1 and dialog2 are the corresponding destination of func1 and func2. 5. Asynchronous dialog transfer events The dialog design patterns are used to design dialogs and synchronous transfer among dialogs. This section describes the set of asynchronous transfer events among dialogs. The TIVR tool provides eight predefined asynchronous dialog transfer events: Stop: terminate the current dialog and go to the previous menu dialog. Return: terminate the current dialog and go to the previous dialog. Repeat: repeat the current dialog. Help: present the help message to the user. First: go to the first page of a multiple-page data listing. Last: go to the last page of a multiple-page data listing. Previous: go to the previous page of a multiplepage data listing. Next: go to the next page of a multiple-page data listing. These eight events are defined using the link element. For example, the repeat event is defined as follows: <link event = repeat > <grammar scope = document> backslash repeat </grammar> </link> Each event is scoped in the entire document. The voice used to throw an event is defined by the grammar element and is formed by prefixing the backslash to each event name to reduce the conflict with normal user input. The event handlers are implemented using the catch element. For example, the event handler of the repeat event is implemented as follows: <catch event = repeat > <reprompt /> </catch> These eight events provide a standard mechanism to asynchronously transfer among dialogs. 6. Conclusions This paper has described a development tool for VoiceXML-based interactive voice response systems. This tool provides a set of friendly graphical user interfaces to relieve users from writing code. This set of graphical user interfaces supports a set of commonly used dialog patterns to facilitate the design of the dialog structure of the system. This tool also provides a set of predefined asynchronous dialog transfer events to facilitate the transfer among dialogs. This tool has been used to design a small bookstore application that provides functionalities for book information querying and book ordering. One of the main drawbacks of this tool is that it lacks a window to illustrate the overall structure of dialogs. Our future work will provide such a window. The TIVR is entirely based on English voice browser. Our future work will also develop a Chinese voice browser to facilitate the design of Chinese VoiceXML-based IVR systems. References [1] Microsoft Corp, http://msdn.microsoft.com. [2] PHP Group, http://www.php.net. [3] Voivegenie Corp, http://developer.voicegenie.com. [4] VoiceXML Version 2.0, http://www.w3.org. 6