Freigeben über


RecognizedWordUnit Konstruktor

Definition

Initialisiert eine neue Instanz der RecognizedWordUnit-Klasse.

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)

Parameter

text
String

Der normalisierte Text für ein erkanntes Wort.

Dieser Wert kann null, "" oder Empty.

confidence
Single

Ein float Wert von 0,0 bis 1,0, der die Sicherheit der Worterkennung angibt.

pronunciation
String

Die phonetische Schreibweise eines erkannten Worts.

Dieser Wert kann null, "" oder Empty.

lexicalForm
String

Der nichtnormalisierte Text für ein erkanntes Wort.

Dieses Argument ist erforderlich und darf nicht null" oder Empty.

displayAttributes
DisplayAttributes

Definiert die Verwendung von Leerzeichen zum Anzeigen erkannter Wörter.

audioPosition
TimeSpan

Die Position des erkannten Worts im Audioeingabedatenstrom.

Dieser Wert kann Zero sein.

audioDuration
TimeSpan

Die Länge der Audioeingabe, die dem erkannten Wort entspricht.

Dieser Wert kann Zero sein.

Beispiele

Im folgenden Beispiel handelt es sich um einen etwas konktiven Test der Emulation, bei dem neue Wörter aus der Eingabe generiert und an den Emulator übergeben und dann überprüft werden.

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;
      }
    }
  }
}

Hinweise

Wenn text das Erkennungsmodul " pronunciation " oder "" ist nulloder Empty in RecognizedWordUnit einem Erkennungsvorgang verwendet wird, generiert das Erkennungsmodul in jeder Ausgabeinstanz RecognizedWordUnit entsprechende Werte.

Direktes Erstellen von Instanzen wird in der RecognizedWordUnit Regel nur verwendet, wenn Erkennungsvorgänge mithilfe EmulateRecognize der SpeechRecognitionEngine Klassen oder EmulateRecognizeAsync Methoden der Klasse und der EmulateRecognize Methoden EmulateRecognizeAsync der SpeechRecognizer Klasse emuliert werden.

Erstellen Sie bei tatsächlichen Anwendungen nicht direkt RecognizedWordUnit, sondern rufen Sie sie über die Words Eigenschaft des RecognizedPhrase Objekts ab.

Gilt für:

Weitere Informationen