Note
Please see Azure Cognitive Services for Speech documentation for the latest supported speech solutions.
RecognizedPhrase.ReplacementWordUnits Property
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
'Declaration
Public ReadOnly Property ReplacementWordUnits As Collection(Of ReplacementText)
Get
'Usage
Dim instance As RecognizedPhrase
Dim value As Collection(Of ReplacementText)
value = instance.ReplacementWordUnits
public Collection<ReplacementText> ReplacementWordUnits { get; }
Property Value
Type: System.Collections.ObjectModel.Collection<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.
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");
}
}
}
}