Transact Business over the Wireless Internet with Interactive Voice Recognition
Transact Business over the Wireless Internet with Interactive Voice Recognition
By: Jim Milbery
Jun. 7, 2001 04:16 PM
One of the most critical initiatives that faces modern business executives is the need to improve efficiency. Savvy companies continue to drive costs out of their business model in order to improve the bottom line. Is this a sound business practice? Absolutely. The trick is to maintain product quality and customer satisfaction while striving for increased efficiencies. Unfortunately, customer service is often one of the things that's sacrificed in the race for profitability. The Internet has proven to be an effective ally in the race for cost reduction while maintaining customer service. Customers are very willing to leverage browser-based applications for transacting business and accessing customer service. The question that remains is how to service these same customers from a wireless perspective. The first solution that might come to mind is a WML-based application on a WAP-enabled device, but this is not the only alternative. Interactive Voice Recognition (IVR) is a viable solution for fast and effective wireless computing.
Stand-up comedians and industry pundits have long used telephone-based applications as the industry's whipping boy. We've all heard the same stories about endless loops through customer service featuring wave upon wave of "Press 1 now" messages. Sure, there's a kernel of truth in these urban legends, but the problem has typically been the implementation of the technology - and not the technology itself.
When used properly, IVR can be an incredibly effective tool for engaging your customers in a fast and efficient e-business dialogue. The team at BeVocal has taken IVR technology and made it available directly to developers via a Web-based development and deployment environment through BeVocal Café. With BeVocal Café every developer now has the tools and software to build a state-of-the-art IVR application. You can even take an existing Web-based application and add an IVR interface for wireless access. We recently worked with the BeVocal team to build a small IVR application based on a production Web site. In the following sections, we'll take you through the highlights of the development process.
VoiceXML - The Heart of Modern IVR Applications
The heart of a VoiceXML application is the VoiceXML interpreter, which renders the VoiceXML documents into audio. VoiceXML documents are accessible via a Web browser, but they're more often accessed remotely via the interpreter engine. VoiceXML describes the data itself, and it's up to the interpreter to display the data in the most appropriate manner.
VoiceXML is composed of a number of tags that describe the interaction process with the user. For example, <prompt> gathers user input and displays results, while <assign> evaluates expressions. VoiceXML is just a derivative of XML, so VoiceXML documents could be interpreted as text within a browser. However, VoiceXML is meant to run on a VoiceXML interpreter engine. This engine is responsible for managing an execution environment that includes telephony, text-to-speech synthesis, and speech recognition. The telephony component handles the telephone connection issues (detecting incoming calls, disconnects and transfers), while the text-to-speech component translates text strings into audio output. The speech recognition engine listens for user responses and translates the response into output for processing. BeVocal combines all these functions into a powerful VoiceXML server engine, which is accessible through a standard Web browser.
LISTING 1 - sample1.vxml
If the user of this VoiceXML application were to say the word news in response to a prompt, the selection variable would be set to the string "news". Grammars allow you to extend the accuracy of the voice recognition by limiting the range of recognized values for any given prompt. VoiceXML instructions are coded into a VXML file along with their associated grammars, which are then uploaded into the BeVocal Café environment through the File Management utility as shown in Figure 1.
BeVocal's built-in extensions are impressive. Their VoiceXML interpreter is layered on Nuance's speech technology and they've made the SpeechObjects API available within the BeVocal environment. SpeechObjects can help you vocalize and interpret complex phrases such as dates and date components, and they're reusable across applications. They also provide a GEO API for location-based processing. So users can input Zip codes and the BeVocal interpreter can return city and state information. Once you've written and validated your VoiceXML file, you can start testing it right away. BeVocal offers a number of testing tools directly within the BeVocal Café environment. You can even test the complete application without a telephone using the Voice Scripter (as shown in Figure 2).
The Voice Scripter interprets the VoiceXML script as if it were executing in the production environment via the telephone. Through this interface you can quickly test the various logical paths within your application to ensure that they're working as expected. You can also test the application via the telephone and BeVocal provides telephone numbers and a complete tracing environment for this purpose. You can view log files of user sessions or trace user calls as they occur in real time. This is a critical capability for IVR-based applications. A user interface that works well on a browser may prove to be too cumbersome when it's deployed over the telephone. Through the trace facility (see Figure 3) you can monitor user sessions and look for problem areas such as hang-ups. BeVocal also provides a port estimator tool that you can use to determine the exact number of phone lines required to support a given group of users.
Choosing a Sample Application
Once you've entered search criteria into the form you can then view a list of the matching schools in the specified city and state. We chose to use Easton, Pennsylvania, as the basis for our search, which resulted in the list of schools shown in Figure 5.
The NCES application allows you to drill down on the school name from within the search results panel to view detailed information about the selected school (see Figure 6). From a research perspective, this application has all the classic elements. You can input query parameters into form and scroll through results, move forward and backward, and view detailed information for selected records. You can use WML and build an alternative version of this application for a WAP-enabled phone or a PDA. However, by leveraging the power of BeVocal's Café developer environment, you can make this very same data available to users from any phone - landline or mobile. VoiceXML applications can connect to existing Web applications by means of JavaServer Pages (or CGI). BeVocal provides the "Remote URL" facility for linking JSP pages to VoiceXML files running in the BeVocal environment. So you can build a JSP interface to your own data and host the JSPs on your existing Web infrastructure. When users call into your application via the telephone, they'll connect through BeVocal's VoiceXML interpreter into your application. This makes it very easy for you to maintain a single line of core processing logic for your business rules that can be applied to both browser-based and IVR user interfaces. BeVocal manages the telephony, speech recognition, and text-to-speech components, but you control the business rules.
Mukund Bhagavan from BeVocal took on the task of writing the VoiceXML file and the JavaServer Pages that would connect to the NCES site. Approximately 500 lines of VoiceXML and JSP code were needed to support this effort. When you consider the inherent complexity of this application, this small amount of code is very impressive. As part of the development effort, BeVocal has made the completed NCES application available as a public application, and has posted the source code for the VoiceXML and JSPs in the developer area within BeVocal Café. You can run the application by using the following steps:
Reader Feedback: Page 1 of 1
Latest Cloud Developer Stories
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
SYS-CON Featured Whitepapers
Most Read This Week