Confirming and Correcting Answers and ExtraAnswers
A confirmation is an acknowledgement that the system has heard a user's response. An effective confirmation and correction strategy is vital for voice-only applications due to the potential for speech recognition errors, coupled with the fact that there is only a single audio channel of communication between the user and the application.
Before attempting to implement confirmation and correction strategies, review the semantic processing stages of a QA control.
Confirmation and Correction Overview
Speech Controls facilitate confirmation using a separate Confirm object that is distinct from the Answer object initially used to obtain an information item. The RunSpeech algorithm handles Confirms in a different way than it handles Answers.
- The Answer object changes the status of a SemanticItem from Empty to Needs Confirmation.
- For Confirm objects, the RunSpeech algorithm handles the further change of status to Confirmed or Denied, depending on the user's response to the confirmation question.
- If the user says yes or repeats the item (or both), then the item's status changes to Confirmed.
- If the user changes the item, then the status remains Needs Confirmation.
- If the user says no then the item reverts to Empty.
This status change logic does not need to be coded; the RunSpeech algorithm handles it automatically.
The default activation rule for a QA control looks at the Answers collection first. If this collection is not empty, the QA is active if all the items specified in the Answer objects in the collection are empty. If the Answers collection is empty, the rule examines the Confirms collection, and activates the QA if at least one Answer in this collection needs confirmation.
For more information about the activation process of QA controls, see Management of Speech QA Controls.
Consider three basic strategies when deciding how to confirm, correct, or reject user's responses.
- Implicit Confirmation (IC) strategy. Using IC, the confirmation question combines with the next information retrieval question to form a single prompt. This strategy uses fewer prompts than Explicit Confirmation.
- Short Time-out Confirmation (STC) strategy. Using STC, the confirmation question is an echo of the SemanticItem, either as a statement or a question, and silence is interpreted as acceptance of the confirmation.
- Explicit Confirmation (EC) strategy. EC is the most basic form of confirmation. Of the three styles of confirmation, EC takes the most user time, because it introduces an extra prompt to explicitly confirm information that the user has previously provided. Use EC for situations in which the cost of a misunderstanding is high.
Specifying Rejection and Confirmation Thresholds
Set the ConfirmThreshold property of an Answer object to specify the threshold at or below which an application must confirm an Answer or ExtraAnswer. If the confidence value of the matched Answer or ExtraAnswer is less than or equal to this threshold, the application marks the Answer or ExtraAnswer as Needs Confirmation. Valid values can range from 0 (zero) to 1.
Set the Reject property of an Answer object to specify the rejection threshold below which an Answer or ExtraAnswer is ignored by the application. Valid values can range from 0 to 1.
To specify rejection and confirm thresholds for Answers and ExtraAnswers
- Right-click a QA control on an .aspx page, and on the shortcut menu, click Property Builder to open the General panel of the QA Property Builder.
- In the tree view pane on the left, under the Input heading, click General.
- In the Answers tab, for each Answer in the collection, in the Reject column, type a rejection value from 0 to 1, and then in the ConfirmThreshold column, type a confirmation threshold value from 0 to 1.
- In the Extra Answers tab, for each ExtraAnswer in the collection, in the Reject column, type a rejection value from 0 to 1, and then in the ConfirmThreshold column, type a confirmation threshold value from 0 to 1.
Confirming Answers and ExtraAnswers
Confirmation logic requires setting the XPathAcceptConfirms and XPathDenyConfirms properties of a QA control, in addition to adding Answer objects to the Confirms collection of the QA control.
Set the XPathAcceptConfirms property of a QA control to specify the path in the resulting SML that indicates the confirm items were accepted. Set the XPathDenyConfirms property of a QA control to specify the path in the resulting SML that indicates the confirm items were denied.
- If RunSpeech finds the SML node specified by XPathAcceptConfirms, it sets the confirmation state to Accept.
- If RunSpeech finds the SML node specified by XPathDenyConfirms, it sets the confirmation state to Deny.
- If RunSpeech finds neither, it sets the confirmation state to Neutral.
To specify confirmation settings for Answers and ExtraAnswers
- Right-click a QA control on an .aspx page, and on the shortcut menu, click Property Builder to open the General panel of the QA Property Builder.
- In the tree view pane on the left, under the Input heading, click General.
- In the Confirms tab, select or clear Confirm By Omission to set the ConfirmByOmission property and specify whether user silence is treated as confirmation of multiple items.
- In the Confirms tab, select or clear Confirm If Equal to set the ConfirmIfEqual property and specify whether a user correction which matches the current value of a SemanticItem is confirmed automatically by the system.
- In the Confirms tab, in the XPathAcceptConfirms box, type or select the XPath expression in the resulting SML that indicates the confirm items were accepted.
- In the Confirms tab, in the AcceptRejectThreshold text box, type the AcceptRejectThreshold value that specifies the recognition confidence level at or below which an accept confirmation is rejected by the system.
- In the Confirms tab, in the XPathDenyConfirms box, type or select the XPath expression in the resulting SML that indicates the confirm items were denied.
- In the Confirms tab, in the DenyRejectThreshold text box, type the DenyRejectThreshold value that specifies the recognition confidence level at or below which a deny confirmation is rejected by the system.
- In the grid at the bottom of the Confirms tab, in the SemanticItem column, type or select the ID of the SemanticItem for which a user can specify a confirmation.
- In the grid at the bottom of the Confirms tab, in the XPathTrigger column, type or select the XPath expression that semantically identifies the confirmed Answer object in the resulting SML output.
Correcting Answers and ExtraAnswers
A user answering a question can speak a correction to the previous answer confirmed by the system.
To specify a correction
- Right-click a QA control on an .aspx page, and on the shortcut menu, click Property Builder to open the General panel of the QA Property Builder.
- In the tree view pane on the left, under the Input heading, click General.
- In the grid at the bottom of the Confirms tab, in the SemanticItem column, type or select the ID of the SemanticItem for which a user can speak a correction.
- In the grid at the bottom of the Confirms tab, in the XPathTrigger column, type or select the XPath expression that semantically identifies the corrected Answer object in the resulting SML output.
For an example of using various confirmation and correction strategies, see the Confirmation and Correction sample application included in the SASDK.
See Also
Recognizing and Confirming Answers | Management of Speech QA Controls