通过


RecognizedWordUnit 构造函数

定义

初始化 RecognizedWordUnit 类的新实例。

public:
 RecognizedWordUnit(System::String ^ text, float confidence, System::String ^ pronunciation, System::String ^ lexicalForm, System::Speech::Recognition::DisplayAttributes displayAttributes, TimeSpan audioPosition, TimeSpan audioDuration);
public RecognizedWordUnit(string text, float confidence, string pronunciation, string lexicalForm, System.Speech.Recognition.DisplayAttributes displayAttributes, TimeSpan audioPosition, TimeSpan audioDuration);
new System.Speech.Recognition.RecognizedWordUnit : string * single * string * string * System.Speech.Recognition.DisplayAttributes * TimeSpan * TimeSpan -> System.Speech.Recognition.RecognizedWordUnit
Public Sub New (text As String, confidence As Single, pronunciation As String, lexicalForm As String, displayAttributes As DisplayAttributes, audioPosition As TimeSpan, audioDuration As TimeSpan)

参数

text
String

已识别单词的规范化文本。

此值可以是 null“”或 Empty

confidence
Single

float 0.0 到 1.0 的值,指示单词识别的确定性。

pronunciation
String

已识别单词的拼音拼写。

此值可以是 null“”或 Empty

lexicalForm
String

已识别单词的未规范化文本。

此参数是必需的,可能不是 null“”或 Empty

displayAttributes
DisplayAttributes

定义使用空格来显示已识别的字词。

audioPosition
TimeSpan

音频输入流中已识别单词的位置。

此值可为 Zero

audioDuration
TimeSpan

对应于已识别单词的音频输入的长度。

此值可为 Zero

示例

下面的示例是模拟的一个有点精心的测试,其中新单词是从输入生成并传递到模拟器,然后验证的。

private void _emulateAndVerify_Click(object sender, EventArgs e)
{
  char[] delimiterChars = { ' ', ',', '.', ':', ';', '\t' };
  string text = _emulateTextBox.Text;
  string[] words = text.Split(delimiterChars);

  RecognizedWordUnit[] InputWordUnits = new RecognizedWordUnit[words.Length];
  for (int i = 0; i < words.Length; i++)
  {
    InputWordUnits[i] = new RecognizedWordUnit(
        "",
        0,
        "",
        words[i].ToLower(),
        DisplayAttributes.OneTrailingSpace,
        new TimeSpan(),
        new TimeSpan());
  }

  RecognitionResult rec = _recognizer.EmulateRecognize(
        InputWordUnits,
        System.Globalization.CompareOptions.IgnoreCase);
  if (rec == null)
  {
    MessageBox.Show(String.Format("Recognition emulation for {0} failed.\n", text));
  }
  else if (InputWordUnits.Length != rec.Words.Count)
  {
    MessageBox.Show(
       String.Format("Length mismatch: Input was {0} words, Recognition has {1} words.\n}"));
  }
  else
  {
    for (int i = 0; i < InputWordUnits.Length; i++)
    {

      if (rec.Words[i].LexicalForm.ToLower() != InputWordUnits[i].LexicalForm.ToLower())
      {
        MessageBox.Show(
          String.Format("Input word {0} \"{1}\" not found. Recognition output is {2}",
          i, InputWordUnits[i].LexicalForm, rec.Words[i].LexicalForm));
        continue;
      }
    }
  }
}

注解

如果在text识别操作中使用或为pronunciationnull“”或“,EmptyRecognizedWordUnit则识别引擎将在任何输出RecognizedWordUnit实例中生成适当的值。

仅当使用EmulateRecognize类或类的方法和EmulateRecognizeEmulateRecognizeAsync类或EmulateRecognizeAsync方法SpeechRecognizerSpeechRecognitionEngine模拟识别操作时,才会直接构造RecognizedWordUnit实例。

对于实际应用程序,请不要直接构造 RecognizedWordUnit,而是通过 Words 对象上的 RecognizedPhrase 属性获取它。

适用于

另请参阅