Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.

ReplacementText Class

Contains information about a speech normalization procedure that has been performed upon recognition results.

Namespace: Microsoft.Speech.Recognition
Assembly: Microsoft.Speech (in microsoft.speech.dll)

[SerializableAttribute] 
public class ReplacementText
/** @attribute SerializableAttribute() */ 
public class ReplacementText
SerializableAttribute 
public class ReplacementText

Speech normalization is the use of special constructs or symbols to express speech in writing.

For example, suppose that this is recognized text:

july four at twelve thirty one PM, I bought one point six kilograms of fish for fourteen dollars and six cents, at the pike market in seattle washington nine eight one two two

This is the same text after normalization:

July 4 at 12:31 PM, I bought 1.6 kg of fish for $14.06, at the pike market in Seattle WA 98122

In this example there are five substitutions, each of which would be described by an instance of ReplacementText.

Using the ReplacementText object, an application can determine:

Instances of ReplacementText are typically obtained as members of the System.Collections.ObjectModel.Collection object returned by the ReplacementWordUnits property on RecognizedPhrase (or classes which inherit from RecognizedPhrase such as RecognitionResult) when returned text has been normalized.


System.Object
  Microsoft.Speech.Recognition.ReplacementText

In the example below, information about a RecognizedPhrase object returned by a recognition engine is displayed to a user interface.

The code where information about each originally recognized phrase replaced by normalization is displayed using ReplacementText instances obtained ReplacementWordUnits is highlighted.

internal static void DisplayBasicPhraseInfo(Label label, RecognizedPhrase result, SpeechRecognizer rec) {
  if (result != null && label != null) {// Blank
    if (rec != null) { //Clear
      label.Text += String.Format(
                                  "  Recognizer currently at:   {0} mSec\n" +
                                  "  Audio Device currently at: {1} mSec\n",
                                  rec.RecognizerAudioPosition.TotalMilliseconds,
                                  rec.AudioPosition.TotalMilliseconds);
    }
    
    if (result != null) { //Clear
      RecognitionResult recResult = result as RecognitionResult;
      if (recResult != null) {
        RecognizedAudio resultAudio = recResult.Audio;
        if (resultAudio == null) {
          label.Text += String.Format(
                                      "  Emulated input\n");
        } else {
          label.Text += String.Format(
                                      "  Candidate Phrase at:       {0} mSec\n" +
                                      "  Phrase Length:             {1} mSec\n" +
                                      "  Input State Time:          {2}\n" +
                                      "  Input Format:              {3}\n",
                                      resultAudio.AudioPosition.TotalMilliseconds,
                                      resultAudio.Duration.TotalMilliseconds,
                                      resultAudio.StartTime.ToShortTimeString(),
                                      resultAudio.Format.EncodingFormat.ToString());
        }
      }
      
      label.Text += String.Format("  Confidence Level:          {0}\n", result.Confidence);
      if (result.Grammar != null) {
        label.Text += String.Format(
                                    "  Recognizing Grammar:       {0}\n" +
                                    "  Recognizing Rule:          {1}\n",
                                    ((result.Grammar.Name != null) ? (result.Grammar.Name) : "None"),
                                    ((result.Grammar.RuleName != null) ? (result.Grammar.RuleName) : "None"));
      }
      
      if (result.ReplacementWordUnits.Count != 0) {
        label.Text += String.Format("  Replacement text:\n");
        foreach (ReplacementText rep in result.ReplacementWordUnits) {
          string repText = rep.Text;
          // Add trailing spaces
          
          if ((rep.DisplayAttributes & DisplayAttributes.OneTrailingSpace) != 0) {
            repText += " ";
          }
          if ((rep.DisplayAttributes & DisplayAttributes.TwoTrailingSpaces) != 0) {
            repText += "  ";
          }
          if ((rep.DisplayAttributes & DisplayAttributes.ConsumeLeadingSpaces) != 0) {
            repText=repText.TrimStart();
          }
          if ((rep.DisplayAttributes & DisplayAttributes.ZeroTrailingSpaces) != 0) {
            repText = repText.TrimEnd();
           }
          label.Text += String.Format("      At index {0} for {1} words. Text: \"{2}\"\n",
                                      rep.FirstWordIndex, rep.CountOfWords, repText);

        }
        label.Text += String.Format("\n\n");
      }
    }
    
  }

}

All public static (Shared in Visual Basic) members of this type are thread-safe. Instance members are not guaranteed to be thread-safe.

Development Platforms

Windows XP Professional with Service Pack 2 (SP2), Windows Server 2003, Windows Vista Ultimate Edition, Windows Vista Business Edition, Windows Vista Enterprise Edition

Target Platforms

Show:
© 2015 Microsoft