Share via


Recognizing and Confirming Answers in the Speech Application SDK

  Microsoft Speech Technologies Homepage

The following list suggests the order of adding speech recognition and confirmation functionality to a voice-only application.

  1. Decide which answers a user can give in response to a particular question. This process typically consists of deciding whether to implement a system-initiative or mixed initiative dialogue style.
  2. Decide which prompts to provide at specific points in the application.
    • If using a system-initiative dialogue style, a specific prompt typically follows a specific answer from a user, so this process is fairly straightforward.
    • If using a mixed initiative dialogue style, any number of prompts can follow an answer from a user. This process involves determining which answers can follow a specific prompt, and which prompt to provide, depending on the answers from the user.

System-Initiative Dialogue Style

Using the system-initiative style, a sequence of specific questions or prompts guides a user through an application. The application asks the user a question, and accepts only an answer to that specific question. Dialogue occurs sequentially. Each question and answer cycle consists of one question and one answer. System-initiative dialogues are typically simpler to design than those using mixed initiative, but they limit the amount of flexibility a user has when answering questions.

Mixed Initiative Dialogue Style

Using the mixed initiative style, a user can answer multiple questions at once. The application can accept an answer in response to a specific question, but it can also accept extra answers that apply to questions the application has not yet asked. This style enables non-sequential dialogue. Each question and answer cycle includes one question, and one or more answers. Mixed initiative dialogues are typically more difficult to design than system-initiative dialogues, but they provide users with greater flexibility when answering questions. Mixed initiative dialogues simulate human interaction more closely than system-initiative dialogues.

Use the following Speech Controls in Speech Control Editor to perform basic speech recognition tasks.

Speech Control Description
Speech QA Use the Speech QA (QA) control to recognize responses and bind elements of the recognition results to Speech SemanticItem (SemanticItem) controls. QA controls are composed of:
  • Answers collections, which are composed of Answer objects that copy recognition results to the intended target SemanticItem control or controls.
  • ExtraAnswers collections, which are composed of Answer objects that copy extra recognition results to destinations other than the intended target SemanticItem control or controls.
  • Confirms collections, which are composed of Answer objects that confirm the recognition results in the intended target SemanticItem control or controls.
Speech SemanticMap Use the Speech SemanticMap (SemanticMap) control to define semantic properties that a control sends to an application using Semantic Markup Language (SML). The SML contains the XML text that notifies the application of the user's answer.

SemanticMap controls are composed of a set of SemanticItem controls, that contain information about a control's semantic state and its binding and autopostback characteristics.

Use the following Microsoft ASP.NET Application Speech Controls in Speech Control Editor to extend the ease and speed of development provided by Speech Controls to more complex dialogues. Application Speech Controls contain linguistic components such as built-in prompts and grammars, and provide other built-in mechanisms to handle speech events such as mumbling or silence that may occur during a dialogue. Use these controls when recognizing common scenarios. Examples of these common scenarios include allowing users to pick a date, input an amount in dollars, provide a ZIP Code, or select an item from a list.

Application Speech Control Description
AlphaDigit Use the AlphaDigit control to collect a string of digits and characters, for example, US395.
Currency Use the Currency control to collect an amount of U.S. dollars.
CreditCardNumber Use the CreditCardNumber control to collect a credit card number.
CreditCardDate Use the CreditCardDate control to collect a credit card expiration date.
Date Use the Date control to collect a date.
NaturalNumber Use the NaturalNumber control to collect a natural number.
DataTableNavigator Use the DataTableNavigator control to support speech navigation of tables.
Phone Use the Phone control to collect a U.S. telephone number.
ListSelector Use the ListSelector control to dynamically create a grammar containing a list of text items, and ask the user to select a single item from the list.
SocialSecurityNumber Use the SocialSecurityNumber control to collect a U.S. Social Security Number.
YesNo Use the YesNo control to collect a Yes or No answer.
ZipCode Use the ZipCode control to collect a U.S. ZIP Code.

See Also

Recognizing and Confirming Answers