Поделиться через


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

Значение от 0,0 до 1.0 float, указывающий определенность распознавания слова.

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 или pronunciation имеют nullзначение , "" или Empty и RecognizedWordUnit используется в операции распознавания, обработчик распознавания создаст соответствующие значения в любом выходном RecognizedWordUnit экземпляре.

Прямое построение экземпляров RecognizedWordUnit обычно используется только при эмуляции операций распознавания с помощью EmulateRecognize методов SpeechRecognitionEngine или EmulateRecognizeAsync класса и EmulateRecognize или EmulateRecognizeAsyncSpeechRecognizer класса .

Для фактических приложений не создавайте RecognizedWordUnitнапрямую , а получите его с помощью Words свойства объекта RecognizedPhrase .

Применяется к

См. также раздел