An Approach to VoiceXML Application Modeling

Similar documents
Voice Foundation Classes

VClarity Voice Platform

Speech Applications. How do they work?

Introduction. VoiceXML overview. Traditional IVR technologies limitations

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

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

Authors Martin Eckert Ingmar Kliche Deutsche Telekom Laboratories.

A Technical Overview: Voiyager Dynamic Application Discovery

Genesys App Automation Platform Deployment Guide. Hardware and Software Specifications

VoiceXML Application Development Recommendations

INTRODUCTION TO VOICEXML FOR DISTRIBUTED WEB-BASED APPLICATIONS

User Guide for Cisco Unified CVP VXML Server and Cisco Unified Call Studio Release 10.5(1)

VoiceXML Reference Version 1.6 June 2001

Delivering Superior Self Service with Open Standards

User Guide for Cisco Unified CVP VXML Server and Cisco Unified Call Studio Release 8.0(1) July 4, 2011

Menu Support for 2_Option_Menu Through 10_Option_Menu

LABORATORY 117. Intorduction to VoiceXML

Niusha, the first Persian speech-enabled IVR platform

Voice Extensible Markup Language (VoiceXML)

Using JBI for Service-Oriented Integration (SOI)

Cisco CVP VoiceXML 3.0. User Guide

Dialog Designer Call Flow Elements

Position Statement for Multi-Modal Access

Magnolia Community Edition vs. Enterprise Edition. Non-Functional Features. Magnolia EE. Magnolia CE. Topic. Good value for money.

Cisco CVP VoiceXML 3.0. Element Specifications

MythoLogic: problems and their solutions in the evolution of a project

Speaker Verification in BeVocal VoiceXML

Multi-modal Web IBM Position

LABORATORY 117. Intorduction to VoiceXML (3)

Interchange formats. Introduction Application areas Requirements Track and object model Real-time transfer Different interchange formats Comparison

Reflective Java and A Reflective Component-Based Transaction Architecture

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

White Paper: Delivering Enterprise Web Applications on the Curl Platform

Distributed Multitiered Application

BeVocal VoiceXML Tutorial

Implementation Architecture

Lesson 12: JavaScript and AJAX

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

White Paper Subcategory. Overview of XML Communication Technologies

An Overview of. Eric Bollens ebollens AT ucla.edu Mobile Web Framework Architect UCLA Office of Information Technology

Introduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University

Implementation Architecture

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

An UML-XML-RDB Model Mapping Solution for Facilitating Information Standardization and Sharing in Construction Industry

Introduction to XML 3/14/12. Introduction to XML

Component-based Architecture Buy, don t build Fred Broks

PRACTICAL SPEECH USER INTERFACE DESIGN

A Design of the Conceptual Architecture for a Multitenant SaaS Application Platform

Migration to Service Oriented Architecture Using Web Services Whitepaper

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

Unified IP IVR Architecture

In the most general sense, a server is a program that provides information

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group

Date: June 27, 2016 Name of Product: Cisco Unified Customer Voice Portal (CVP) v11.5 Contact for more information:

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

Applying Code Generation Approach in Fabrique Kirill Kalishev, JetBrains

Device Independent Principles for Adapted Content Delivery

Customizing ArcIMS Using the Java Connector and Python

User Guide for Cisco Unified Call Services, Universal Edition and Unified Call Studio

Chapter 2 FEATURES AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc.

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

Composer Help. Web Request Common Block

SurVo. Stepping Through the Basics. Version 2.0

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

JDBC Today C HAPTER 1 INTRODUCTION

The Analysis and Design of the Object-oriented System Li Xin 1, a

Salesforce Lightning Dialer

A B2B Search Engine. Abstract. Motivation. Challenges. Technical Report

WFSTDM Builder Network-based Spoken Dialogue System Builder for Easy Prototyping

A Top-Down Visual Approach to GUI development

DESIGN PATTERN - INTERVIEW QUESTIONS

Design concepts for data-intensive applications

By Chung Yeung Pang. The Cases to Tackle:

Available online at ScienceDirect. Procedia Computer Science 34 (2014 ) Generic Connector for Mobile Devices

TUTORIAL: WHITE PAPER. VERITAS Indepth for the J2EE Platform PERFORMANCE MANAGEMENT FOR J2EE APPLICATIONS

CHAPTER THREE INFORMATION RETRIEVAL SYSTEM

Software Design COSC 4353/6353 DR. RAJ SINGH

Computer Principles and Components 1

halef Documentation ETS

The Open Group SOA Ontology Technical Standard. Clive Hatton

Principles of Computer Game Design and Implementation. Lecture 3

Developing Applications with Java EE 6 on WebLogic Server 12c

Open-source library and tools to support the OVF.

Building the Enterprise

The 60-Minute Guide to Development Tools for IBM Lotus Domino, IBM WebSphere Portal, and IBM Workplace Applications

For a detailed description of the parent features and benefits, please refer to the following URL:

SSC - Web development Model-View-Controller for Java Servlet

Etanova Enterprise Solutions

Capturing and Formalizing SAF Availability Management Framework Configuration Requirements

Cross-Browser Functional Testing Best Practices

X-S Framework Leveraging XML on Servlet Technology

Introducing the VoiceXML Server

Record_With_Confirm. Settings

Application Notes for Versay CUE Analytics with Avaya Aura Experience Portal Release Issue 1.0

A Guide to CMS Functions

DB2 Web Query (REST based) Application Extension. Usage Instructions

A Project of System Level Requirement Specification Test Cases Generation

HP Project and Portfolio Management Center

Appendix A - Glossary(of OO software term s)

Category: Standards Track October 2009

Transcription:

An Approach to Application Modeling Xin Ni 1 Meng Ye 2 Lianhong Cai 3 1,3 Tsinghua University, Beijing, China 2 IBM China Research Lab nx01@mails.tsinghua.edu.cn, yemeng@cn.ibm.com, clh-dcs@tsinghua.edu.cn Abstract In this paper an approach for web application modeling is presented with which a voice application can be modeled as a call flow diagram that can be further transferred to be deployable Java code by an automated code generator implemented in the same study. This paper focuses on the modeling work while the brief discussion on code generation is given as well. 1. Introduction Using speech technology to improve the communication efficiency and naturalness between human and machine is a well-accepted idea. However, until the occurrence of some industry standards such as [1] and SALT [5], the proprietary programming models and APIs from different speech technology vendors set a high bar in terms of skill and knowledge to the application developers. Furthermore, the developed applications lack portability among different speech platforms. With or SALT, voice web applications can be developed with script languages that are neutral to different speech technologies. A general architecture of applications in this manner is shown in Figure 1 in which the voice browser acts as a translator between web servers and telephone users. documents are fetched from the web server and interpreted by voice browser. Although this is an impressive progress, further simplifications are expected Can we have some sort of visual prototyping environments for this purpose resembling those ones in the market for web application developing? Our study is aimed at building a visual authoring tool, rendering the evolutionary prototyping approach in [2], for voice application developing. To accomplish the task, two problems should be addressed: 1) a set of visual descriptor for voice application modeling and the corresponding construction rules; 2) a mechanism for automatic code generation based on the visual model created. The first problem can be addressed by the modeling through which the visual descriptor set is derived from the tags of with semantic abstraction. The following criteria should be fulfilled for this: keeping the amount of the descriptors and the rules as small as possible meanwhile ensuring that most based applications could be described clearly enough. As for the second problem, code generation can be achieved by template-based techniques. With both of them the procedure of voice application developing can be broken into two steps: 1) Modeling the application with the visual descriptors and the construction rules; 2) Generating the deployable code automatically based on the callflow diagram, the result of the modeling step. Telephony Interface Interpreter ASR TTS Voice Browser VXML/ HTTP Documents Resource Management Web Server (Document Server) Telephone Figure 1. The Architecture of Application In the two sections following, both the modeling work and the visual descriptors represented in functional blocks are discussed in detail. Moreover, section 4 presents the test and practice on the given model with a brief discussion on the code generation. 337

2. Modeling The main task of modeling is to extract a set of functional units and their semantic rules from the language specification, which are both supposed to be represented in visual descriptors. In our work, the modeling requirements are limited to the management of dialogs and their resources. However the programming interfaces for other requirements (such as. specific variable manipulation and some scripting) are considered as well. Some underlying modeling criteria are as following: 1) On the functional (semantic) level, the model should comply with the specification. 2) The functional units should be concise individually and small in total amount. 3) The construction semantic rules should be simple and clear. Among them, the first one is dominant. For if there are certain voice applications were not be prototyped in our framework, our study would be limited in its utility. The methods we adopted to achieve the criteria above are to be discussed in the following subsections. 2.1. Function Collection and Refinement A straightforward way to ensure the functional integrity is to collect functions for each tag from the language specification, i.e. collecting each tag s grammar phenomena and extracting the corresponding semantics. For example, for the <prompt> tag, all its functionality components such as text content, audio URI, variable reference, TTS markup and other properties (e.g. bargein, count, and etc) will be collected. However, this method will only derive out another description of without any simplification. To address this issue, two kinds of refinement work are conducted in our study. Firstly, the simple refinement is used to move some common properties existing in many tags to the <property> tag to reduce the functionality overlap among the original tags. For example, the bargin and timeout properties of the <prompt> tag can be specified and fulfilled by the <property> tag. Secondly, for those functions that may be fulfilled in different ways according to the specification, the complex refinement is conducted to fix the way they are implemented to facilitate the automatic code generation, through functional combination and replacement. For example, instead of achieving the conditional selection of prompts by using the count and cond properties in the <prompt> tag, we can achieve the same by the combining of a case unit (see 3.7) and a basic prompt element (see 3.2). The main goal of these refinement works is to achieve simple and pure functional elements that meet the criterion 1. The first criterion is met because we only select a complete subset, in terms of the coverage on all functionalities, from all the possibilities supported by the language specification. 2.2. Function Agglomeration Because the functional elements generated with above methods are often functional fragments that cannot function independently, agglomeration on their functionality should be conducted to generate further abstracted function modules to simplify the visual modeling of voice applications in terms of reducing the amount of the visual descriptors and the complexity of the construction rules. For example, properties, grammars, prompts and events can be combined into one input block (see section 3 for detail). The agglomeration work is carried out with careful study on typical applications. For example, it is popular in practice to utilize the event handling mechanism of applications to deal with user s commands in different scopes. A simple usage is to specify introductions for the global help event in outline while specifying detail help messages for the local inputs. Following this way, the event throwers and event catchers must deal with different scopes. Another principle is that the functional granularity of each unit is determined by balancing the usability and the flexibility. For example, in the previous refinement works, the function of the <menu> tag is replaced by the combination of a prompt and a case unit. However, the menu selection is a rather commonly used unit that would cause much inconvenience if absent. So the menu unit in our solution yields much more high-level convenience than the prompt-plus-case approach does. Through agglomeration work, functional units are linked only by means of next jump or event handling, and their reference correlation is restricted to variable reference. Consequently the functional units are high-level, in small amount and loosely coupled. Thus criteria 2 and 3 could be both met in this extent. 2.3. Assembling Test 338

The performance of the modeling in our study is tested by using the generated functional units to a variety of typical voice applications such as voice portal, email access and directory dialer. If there is anything cannot be described clearly in the test, those procedures mentioned in section 2.1 and 2.2 will be conducted again for a better result. Section 4 gives an overview on test and practice on the model. 3. Block Description Through the modeling ten fundamental blocks are constructed and are to be discussed in this section. Each block has its functions for dialog management. Carrying out basic tasks, they could be further combined as composite blocks for more complicated tasks. 3.1. Start and Exit In our framework, an application is restricted to be a composition of various functional modules with a single entry point and a single exit point. In the exit block, an exit message can be specified and will be played when application exits. In the start block, several meta settings can be defined like the application general settings (e.g. application name, resource path of audio and subdialog), the global properties and events, the resource identifiers, and possible embedded code for initialization. The paths of audio and subdialog tell the program where to find the corresponding resources on the web server. And the global properties and events are active throughout the runtime execution of the application unless overridden by local ones (defined in a non-start block). Denoted by arrowhead lines in diagram, the events are classified into two types: system and custom. Two system events, i.e. "help" and "error", can be specified in the start block. A custom event acts as the <link> tag in, which triggers a flow jump if the user's voice input matches its grammar. Resource identifiers are actually Java beans containing external resources that can be converted to text content. In order to make the framework more extensible, programming interfaces are defined and ready for developer to embed extra Java code to fulfill further tasks such as the manipulation on backend database. And in the start block, some initializing tasks such as connecting to third-party application servers may be required and implemented by developers. 3.2. Prompt The prompt block handles the output of synthesized speech or prerecorded audio. In this block, the prompt contents are composed of many segments that will be played in order. Prompt segments can be of 4 types: text, audio, block and resource. The text content, the audio URI, the block label and the resource identifier are required respectively for these 4 types. The block type is designed for the variable references of form items (e.g. input and record reference). The external resource (e.g. records in database) is accessed through the resource identifiers and will be transformed to pure text content when needed at runtime. 3.3. Input This block catches user s voice input according to its grammars. It includes prompt messages, grammars, local properties and local events. The grammars can be any one of the following 4 types or their combination: builtin, external, inline and resource. All builtin grammars defined in specification are supported. The external grammar can be fetched through a specified URI. With the inline type, the grammar can be defined at the design time while with the resource type it can be obtained from external resources at runtime. Three system events can be defined locally in this block: "help", "noinput" and "nomatch". Local custom events are also supported. 3.4. Record This block is for collection of user utterances. It consists of prompt messages, recording properties (e.g. beep prompt, maximum time for recording and DTMF termination) and a handler for the "noinput" system event. Other events are not included due to the runtime characteristic of recording. The collected utterance will finally be submitted to the remote web server for further manipulation. 3.5. Subdialog The subdialog is the way defined in specification for both leveraging the reusable dialog components [4] from the 3 rd parties such as the IBM's reusable components [3] to achieve software reusability, and increasing the modularity of applications. It is kept exactly in our framework for same purposes. 339

3.6. Menu The menu block in our framework has the same functionality as the <menu> tag of. However it is implemented by combining the <field> tag and the <option> tag. This makes the user's voice input available for further reference by other blocks. 3.7. Action, Case and Loop These 3 blocks have no direct relationship with any tag. They are introduced into the prototyping framework with the consideration of flow control, flexibility and extensibility. Loop construction and selection construction are commonly adopted in all modern programming languages for flow control. In specification, these two kinds of construction are weakly supported given the fact that the web-programming model is indeed an MVC model. In the application case, the code of most voice applications, with the exception of the very simple ones containing only static pages, falls in the View part of the MVC model, which runs on the client side (the Voice Browser in Figure 1), and the logic of the Controller part runs on the server side. Hence only weak support on flow control is needed from the perspective in a static MVC model. However, in practice, the code of most applications is generated dynamically at runtime by the code of the Controller part. In other words, if we view a complete voice application as a web application and code is the result of the logic of the Controller part, full support on flow control becomes a necessary. On the other hand, the Action block is designed to provide a hook for embedding extra code. 4. Practice In order to facilitate the code generation stage, the application specification, which is an XML description of the callflow diagram, is adopted to keep the results of the application-modeling task. The application specification could be automatically generated according to the visual diagram by fetching the properties of each visual descriptor in the diagram with a well defined DTD. In the scenario practice shown in figure 2, a sample of such specification is given and the corresponding Java servlet code is generated by parsing it. As shown in the example, each descriptor is described in a separate tag element. The template-based code generation is leveraged in our study. There will be one or more templates for each descriptor depending on the complexity of its functionality. Two stages are involved, as shown in figure 3. In stage 1, code templates are created according to the specifications of the functional units, while in stage 2, the result templates are tested through assembling. In real code generation, in addition to generating individual pages for each block, the code generator should accumulate as many blocks as possible in a single page to improve the communication efficiency of the voice browser and the web browser and thus reduce the load of the server side. From the example fragment we can find that the resource identifiers yield many dynamic characteristics to the target application. For example, in the "Service" menu, the content of the identifier "other" will not be determined until at runtime (may be "traffic" or something else). applications templating code templates stage 1 functional units code templates assembling target applications Figure 3. Code Templating stage 2 5. Conclusions and Future Work application requirements template evaluating In this paper an approach for application modeling is presented. Future work includes a full-featured GUI environment for diagram design and the construction of the composite functional block to simplify modeling work of complex applications. 6. References [1] Specification http://www.voicexml.org http://www.w3.org/tr/voicexml20 [2] Fabrice Kordon and Luqi, "An Introduction to Rapid System Prototyping" IEEE Transactions on Software Engineering, vol. 28, no. 9, Sep. 2002 [3] Stephane H. Maes, "A Framework for Reusable Dialog Components" Symposium on Applications and the Internet (SAINT) 2002. [4] Reusable Dialog Requirements for Voice Markup Language, http://www.w3.org/tr/reusable-dialog-reqs 340

[5] Speech Application Language Tags (SALT) Specification http://www.saltforum.org <input name="yourname"> <segment type="text">what's your name?</segment> <grammars> <grammar sort="grammar" type="external"> gram/names.gram </grammar> </grammars> <jump target="welcome"/> </input> <prompt name="welcome"> <segment type="text">hi</segment> <segment type="block">yourname</segment> <segment type="text">welcome to</segment> <segment type="resource">placename</segment> <segment type="audio"> <src>audio/introduction</src> <instead>this is a nice place.</instead> </segment> <jump target="service"/> </prompt> <menu name="service"> <segment type="text"> what can I help you, hotel or </segment> <segment type="resource">other</segment> <options> <option dtmf="1"> <fixedgrammar type="inline"> hotel </fixedgrammar> <jump target="hotel"/> </option> <option dtmf="2"> <fixedgrammar type="resource"> other </fixedgrammar> <jump target="other"/> </option> </options> </menu> Figure 2. Fragment of Application Specification Example 341