Pizza Shop: Web-based Voice Response Application Tutorial

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

The Pizza Shop tutorial topics demonstrate the use of Speech Server Developer Tools in Microsoft Visual Studio 2005. The tutorial topics are for a simple Web-based voice response application. You build a Start page of an imaginary pizza ordering service for use by a telephony Speech Application Language Tags (SALT) client.

Goals of the Tutorial

The tutorial uses Speech Server Developer Tools to create the basic structure and data organization of a simple SALT voice response application for a telephony environment. It shows the use of Speech Server Developer Tools in Visual Studio to create grammars, record prompts, create a dialog with callers, and test the application under development.

The tutorial does not cover all the requirements for a production speech application. For example, it does not cover all the error-checking and confirmation strategies that production applications require, such as dealing with mumbled or unrecognized speech, setting recognition or confirmation thresholds, providing the alternative of touch-tone input, or providing error-recovery paths. It does not deal with the many facets of the audio characteristics of prompts, such as increasing or decreasing the pauses or silence at the beginning and ending of prompts, or smoothing concatenations of prompts to get a more pleasing response. It also does not provide a way to display, print, or store the received and confirmed results or provide a method to identify a particular session or caller.

The tutorial does not cover multi-language applications.

Structure of the Tutorial Application

The tutorial application is designed for a pizza take-out service, with a very limited menu of sizes. The application uses a simple system-initiative dialog structure to guide the caller through these basic choices. The caller must provide a telephone number to use as identification when picking up the pizza. The application gathers the information that the caller supplies, repeats it back to the caller, and requests confirmation from the caller. A pizza delivery service would be more interesting, but recognizing addresses requires a relatively complicated grammar, with more complicated confirmations, which is outside the scope of this simple tools tutorial.

Design of the Tutorial Application

The tutorial has the following general dialog structure. The following is a possible dialog in the tutorial application.

System

Welcome to Tony's Pizza. Order a pizza now and we'll have it waiting when you arrive.

Say Cancel at any time to cancel this order. [pause]

System

We have small, medium and large sizes.

What size would you like?

Caller

I'd like a large pizza, please.

System

Please say your telephone number, area code first.

Caller

It's four two five five five five oh nine zero zero.

System

You ordered a large pizza and your phone number is four two five five five five oh nine zero zero. Is that correct?

Caller

Yes.

System

Thanks for your order. Your pizza will be ready in thirty minutes.

Give us your phone number when you arrive and we'll give you your pizza.

Additional Sources of Information

Speech Server contains a number of Sample and Reference Applications that cover some of the tutorial topics in more depth and cover other topics not included in the tutorial. Some of the samples are relatively simple. Speech Server also has a grammar library containing many rulesets for common scenarios. The tutorial has links where appropriate to the samples and grammars.

Before Beginning the Tutorial

Before beginning the tutorial:

  • Install the English (United States) language pack.
  • Configure the microphone used to respond to prompts in the tutorial.
  • If you run the tutorial on Microsoft Windows Server 2003, add base URLs for the tutorial to the Trusted Sites for Microsoft Internet Explorer.

Configuring the Microphone

Some of the prompts in the tutorial application allow speech input before the prompt finishes; that is, the control begins listening for input before the prompt output is complete. This is called bargein, where the caller can barge in on the prompt. If the microphone is not configured properly, sometimes even breathing or ambient noise can seem like a response to the control; that is, it seems as if the caller has barged in on the prompt. The application might then treat this as an unrecognized phrase. Because the tutorial does not have all the recovery mechanisms that a production application would have, it cannot cope well with this behavior.

Microphone configuration is different depending on the operating system.

To configure the microphone

  1. In Control Panel, open Sounds and Audio Devices.

  2. On the Voice tab, select Test hardware, and then follow the subsequent instructions.

    Tip

    If you configure your microphone with a speaking voice that is too quiet (low in volume), your microphone easily picks up ambient noises and perhaps even the output from the headphones. In the tutorial, if it seems like you do not get a chance to respond to the prompts, you can reconfigure your microphone with a louder speaking voice.

Adding URLs to Trusted Sites for Windows Server 2003

When Internet Explorer Enhanced Security Configuration is enabled, the security settings for all Internet sites are set to High. If you trust a Web page and need it to be functional, you can add that page to the Trusted Sites zone in Internet Explorer.

To add URLs to Trusted Sites for Windows Server 2003

  1. Start Microsoft Internet Explorer.

  2. On the Tools menu, click Internet Options.

  3. In the Internet Options dialog box, click the Security tab.

  4. Select Trusted Sites, and then click Sites.

  5. In the Trusted Sites dialog box, enter the following URLs in the Add this Web site to the zone box, one after the other, and then click Add after each URL:

    • *://localhost
    • *://YourMachineName/*

    The asterisk at the start of the URL permits any protocol (such as HTTP, HTTPS, or FTP), and the asterisk at the end of the computer name permits any site for the computer.

  6. Click OK in each dialog box to accept the changes.

Beginning the Tutorial

The procedures for creating the pizza ordering service application build on each other. The sequence in which you perform the procedures is therefore important. The topics are listed in the following table in the suggested order of use.

Topic Description

Creating a Speech Project

Specify the project characteristics with the Web-based Voice Response Application Project Wizard.

Creating Grammars

Create a speech grammar for the application with Speech Grammar Editor.

Creating the Dialog Framework

Insert controls to speak to the caller and grammars to understand the caller's speech with Speech Control Editor.

Creating Prompts

Create a prompt database for the application with Speech Prompt Editor.

How to: Add Semantic Information

Add semantic information to the application, specifying the semantic information each rule returns and binding that to semantic items.

How to: Confirm Responses

Use a QA control with a prompt select function to repeat the information gathered to the caller and confirm that information, and then set up a Command control.

Debugging the Tutorial Application

Ensure full recorded prompt coverage with the Validate Solution tool in Speech Prompt Editor, simulate a connection to a telephony system with Telephony Application Simulator, and monitor and manipulate speech data, events, and errors with the Voice Response Debugging Window dialog box.