ReplacementWordUnits Property

Microsoft Speech Platform SDK 11

Collapse imageExpand ImageCopy imageCopyHover image

Gets information about the text that the speech recognizer changed as part of speech-to-text normalization.

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

Syntax

Visual Basic (Declaration)
Public ReadOnly Property ReplacementWordUnits As Collection(Of ReplacementText)
	Get
Visual Basic (Usage)
Dim instance As RecognizedPhrase
Dim value As Collection(Of ReplacementText)

value = instance.ReplacementWordUnits
C#
public Collection<ReplacementText> ReplacementWordUnits { get; }

Property Value

Type: System.Collections.ObjectModel..::..Collection<(Of <(<'ReplacementText>)>)>

A collection of ReplacementText objects that describe sections of text that the speech recognizer replaced when it normalized the recognized input.

Remarks

As part of the speech recognition process, the speech recognizer normalizes the recognized input into a display form.

For example, the spoken input, "twenty five dollars", generates a recognition result where the Words property contains the words, "twenty", "five", and "dollars", and the Text property contains the phrase, "$25.00". For more information about text normalization, see the ReplacementText class.

Examples

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

C# Copy imageCopy Code
internal static void DisplayBasicPhraseInfo(Label label, RecognizedPhrase result, SpeechRecognitionEngine recognizer) 
{
  if (result != null && label != null)
  {// Blank
    if (recognizer != null) 
    { // Clear
      label.Text += String.Format(
          "  Recognizer currently at:   {0} mSec\n" +
          "  Audio Device currently at: {1} mSec\n",
          recognizer.RecognizerAudioPosition.TotalMilliseconds,
          recognizer.AudioPosition.TotalMilliseconds);
    }

    if (result != null) 
    { // Clear
      RecognitionResult recResult = result as RecognitionResult;
      if (recResult != null) 
      {
        RecognizedAudio resultRecognizedAudio = recResult.Audio;
        if (resultRecognizedAudio == 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",
            resultRecognizedAudio.AudioPosition.TotalMilliseconds,
            resultRecognizedAudio.Duration.TotalMilliseconds,
            resultRecognizedAudio.StartTime.ToShortTimeString(),
            resultRecognizedAudio.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) 
        {
          label.Text += String.Format("      At index {0} for {1} words. Text: {2}\n",
          rep.FirstWordIndex, rep.CountOfWords, rep.Text);
        }
        label.Text+=String.Format("\n\n");

      }
    }

  }
}

See Also