Review: IBM WebSphere Voice Toolkit
Reusable Dialog Components
A key highlight of VoiceXML is that it truly integrates the web application development world with the interactive speech-based telephony applications. However, speech application development isn't easy. It involves the creation of complex dialogs for all the possible voice interactions. For instance, for a simple dialog to get a valid US state as the input, you would need to create a grammar which enlists all the states, etc.
Reusable Dialog Components are an extensive set of reusable dialog components which are available from IBM. They can be used within VoiceXML applications as sub-dialogs or templates. Currently included in the 2.0 release are subdialogs (with their associated grammars and VoiceXML code) for recognizing alphanumeric characters, selecting elements from a list, confirmaiton; processing input for credit card numbers/expiration dates, currency, dates, directions, durations, email addresses, numbers, social security numbers, street types, telephone numbers, time, URL, major cities of US, US states and time zones.
Figure: Select a Reusable Dialog Component
Figure: Customize the parameters of the component
The following code snippets show the code that is generated by the wizard. The example below uses the US Postal Codes Dialog component to get a valid postal code as an input and pass it on to rest of the application.
By just making a few changes, the dialog can be completed into a complete application component. Once you start using the dialog components available, you can easily recognize the value gained by the usage of reusable dialog components and the time/effort that can be saved towards developing fully functional VoiceXML applications through an assembly of components and business logic.
Dynamic Application Development
Apart from the development of the static VoiceXML documents in the VoiceXML editor (which can also be used as templates for dynamic content), Voice Toolkit also provides dynamic VoiceXML application generation based on J2EE (Java 2 Enterprise Edition) based Web Application Development. The tool provides two basic wizards for JSP/Servlets based dynamic application generation - Database Web Page & Java Bean Web Page (shown below). Even though these wizards are quite basic, they provide a great deal of help in getting the basic application template ready.
For instance, the Java Bean Web Page wizard generates a starter VoiceXML-based application based on a Java Bean. Let's complete our example from the reusable dialog component section. We create an example/prototype bean called "Weather" (this bean always returns the same weather for all postal codes; an actual bean however would call a web service from weather.com or some such service and get the actual weather for the postal code).
Given the reference of the Weather bean to the "Java Bean Page Wizard," it generates the following JSP/Servlets based VoiceXML based Application:
Similarly, the Database Web Page Wizard generates the starter VoiceXML application using a SQL query. Voice Toolkit generates all applications based on Java Server Pages and Java Servlets specifications, and using the toolkit's support for either an embedded Apache Tomcat or IBM WebSphere Application Server, the application can be remotely or locally deployed and tested as well (using the Voice Application Debugger).
In summary, IBM WebSphere Voice Toolkit represents a comprehensive and integrated set of tools for VoiceXML application development. What sets it apart from the competition is the easy use of voice application debugging, dynamic application generation from Java Beans and relational databases and most importantly, the extensive set of reusable dialog components. What I would like to see in the coming versions is support for VoiceXML 2.0 standard (currently in draft stage) features and graphical grammar creation tools.
- WebSphere Voice Toolkit
- IBM Reusable Dialog Components
- Java 2 Enterprise Edition (J2EE)
- Apache Tomcat
- IBM WebSphere Application Server
- WebSphere Voice Server SDK
- Voice Application Debugger
- IBM Voice Toolkit News Group
About Hitesh Seth
Hitesh Seth is Chief Technology Evangelist for Silverline Technologies,
a global eBusiness and mobile solutions consulting and integration services
firm. He is a columnist on VoiceXML technology in XML Journal and regularly
writes for other technology publications including Java Developer’s Journal
and Web Services Journal on technology topics such as J2EE, Microsoft
.NET, XML, Wireless Computing, Speech Applications, Web Services &
Integration. Hitesh received his Bachelors Degree from the Indian Institute
of Technology Kanpur (IITK), India. Feel free to email any comments or
suggestions about the articles featured in this column at
Page 3 of 3