Freigeben über


SpeechRecognitionEngine.EmulateRecognize Methode

Definition

Emuliert die Eingabe an die Spracherkennung, wobei Text anstelle von Audio für die synchrone Spracherkennung verwendet wird.

Überlädt

Name Beschreibung
EmulateRecognize(String)

Emuliert die Eingabe eines Ausdrucks an die Spracherkennung, wobei Text anstelle von Audio für die synchrone Spracherkennung verwendet wird.

EmulateRecognize(RecognizedWordUnit[], CompareOptions)

Emuliert die Eingabe bestimmter Wörter an die Spracherkennung, wobei Text anstelle von Audio für die synchrone Spracherkennung verwendet wird, und gibt an, wie die Erkennung unicode-Vergleich zwischen den Wörtern und der geladenen Spracherkennungsgrammatik behandelt.

EmulateRecognize(String, CompareOptions)

Emuliert die Eingabe eines Ausdrucks an die Spracherkennung, wobei Text anstelle von Audio für die synchrone Spracherkennung verwendet wird, und gibt an, wie die Erkennung unicode-Vergleich zwischen dem Ausdruck und der geladenen Spracherkennungsgrammatik behandelt.

Hinweise

Diese Methoden umgehen die Systemaudioeingabe und stellen der Erkennung Text als String Objekte oder als Array von RecognizedWordUnit Objekten bereit. Dies kann hilfreich sein, wenn Sie eine Anwendung oder Grammatik testen oder debuggen. Sie können z. B. die Emulation verwenden, um zu bestimmen, ob sich ein Wort in einer Grammatik befindet und welche Semantik zurückgegeben wird, wenn das Wort erkannt wird. Verwenden Sie die SetInputToNull Methode, um die Audioeingabe beim Emulationsvorgang für das Spracherkennungsmodul zu deaktivieren.

Die Spracherkennung löst die SpeechDetectedEreignisse und SpeechHypothesizedSpeechRecognitionRejectedSpeechRecognized Ereignisse aus, als ob der Erkennungsvorgang nicht emuliert wird. Die Erkennung ignoriert neue Zeilen und zusätzliche Leerzeichen und behandelt Interpunktion als Literaleingabe.

Hinweis

Das RecognitionResult von der Spracherkennung generierte Objekt als Reaktion auf emulierte Eingabe hat einen Wert null für seine Audio Eigenschaft.

Verwenden Sie die Methode, um die EmulateRecognizeAsync asynchrone Erkennung zu emulieren.

EmulateRecognize(String)

Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs

Emuliert die Eingabe eines Ausdrucks an die Spracherkennung, wobei Text anstelle von Audio für die synchrone Spracherkennung verwendet wird.

public:
 System::Speech::Recognition::RecognitionResult ^ EmulateRecognize(System::String ^ inputText);
public System.Speech.Recognition.RecognitionResult EmulateRecognize(string inputText);
member this.EmulateRecognize : string -> System.Speech.Recognition.RecognitionResult
Public Function EmulateRecognize (inputText As String) As RecognitionResult

Parameter

inputText
String

Die Eingabe für den Erkennungsvorgang.

Gibt zurück

Das Ergebnis für den Erkennungsvorgang oder null wenn der Vorgang nicht erfolgreich ist oder die Erkennung nicht aktiviert ist.

Ausnahmen

Die Erkennung hat keine Grammatik für die Spracherkennung geladen.

inputText ist null.

inputText ist die leere Zeichenfolge ("").

Beispiele

Das folgende Codebeispiel ist Teil einer Konsolenanwendung, die emulierte Eingaben, die zugehörigen Erkennungsergebnisse und die zugehörigen Ereignisse veranschaulicht, die von der Spracherkennung ausgelöst werden. Im Beispiel wird die folgende Ausgabe generiert.

TestRecognize("Smith")...
 SpeechDetected event raised.
 SpeechRecognized event raised.
  Grammar = Smith; Text = Smith
...Recognition result text = Smith

TestRecognize("Jones")...
 SpeechDetected event raised.
 SpeechRecognized event raised.
  Grammar = Jones; Text = Jones
...Recognition result text = Jones

TestRecognize("Mister")...
 SpeechDetected event raised.
 SpeechHypothesized event raised.
  Grammar = Smith; Text = mister
 SpeechRecognitionRejected event raised.
  Grammar = <not available>; Text =
...No recognition result.

TestRecognize("Mister Smith")...
 SpeechDetected event raised.
 SpeechRecognized event raised.
  Grammar = Smith; Text = mister Smith
...Recognition result text = mister Smith

press any key to exit...
using System;
using System.Globalization;
using System.Speech.Recognition;

namespace Sre_EmulateRecognize
{
  class Program
  {
    static void Main(string[] args)
    {

      // Create an in-process speech recognizer for the en-US locale.
      using (SpeechRecognitionEngine recognizer =
        new SpeechRecognitionEngine(new CultureInfo("en-US")))
      {

        // Load grammars.
        recognizer.LoadGrammar(CreateNameGrammar("Smith"));
        recognizer.LoadGrammar(CreateNameGrammar("Jones"));

        // Disable audio input to the recognizer.
        recognizer.SetInputToNull();

        // Add handlers for events raised by the EmulateRecognize method.
        recognizer.SpeechDetected +=
          new EventHandler<SpeechDetectedEventArgs>(
            SpeechDetectedHandler);
        recognizer.SpeechHypothesized +=
          new EventHandler<SpeechHypothesizedEventArgs>(
            SpeechHypothesizedHandler);
        recognizer.SpeechRecognitionRejected +=
          new EventHandler<SpeechRecognitionRejectedEventArgs>(
            SpeechRecognitionRejectedHandler);
        recognizer.SpeechRecognized +=
          new EventHandler<SpeechRecognizedEventArgs>(
            SpeechRecognizedHandler);

        // Start four synchronous emulated recognition operations.
        TestRecognize(recognizer, "Smith");
        TestRecognize(recognizer, "Jones");
        TestRecognize(recognizer, "Mister");
        TestRecognize(recognizer, "Mister Smith");
      }

      Console.WriteLine("press any key to exit...");
      Console.ReadKey(true);
    }

    // Create a simple name grammar.
    // Set the grammar name to the surname.
    private static Grammar CreateNameGrammar(string surname)
    {
      GrammarBuilder builder = new GrammarBuilder("mister", 0, 1);
      builder.Append(surname);

      Grammar nameGrammar = new Grammar(builder);
      nameGrammar.Name = surname;

      return nameGrammar;
    }

    // Send emulated input to the recognizer for synchronous recognition.
    private static void TestRecognize(
      SpeechRecognitionEngine recognizer, string input)
    {
      Console.WriteLine("TestRecognize(\"{0}\")...", input);
      RecognitionResult result =
        recognizer.EmulateRecognize(input,CompareOptions.IgnoreCase);
      if (result != null)
      {
        Console.WriteLine("...Recognition result text = {0}",
          result.Text ?? "<null>");
      }
      else
      {
        Console.WriteLine("...No recognition result.");
      }
      Console.WriteLine();
    }

    static void SpeechDetectedHandler(
      object sender, SpeechDetectedEventArgs e)
    {
      Console.WriteLine(" SpeechDetected event raised.");
    }

    // Handle events.
    static void SpeechHypothesizedHandler(
      object sender, SpeechHypothesizedEventArgs e)
    {
      Console.WriteLine(" SpeechHypothesized event raised.");
      if (e.Result != null)
      {
        Console.WriteLine("  Grammar = {0}; Text = {1}",
          e.Result.Grammar.Name ?? "<none>", e.Result.Text);
      }
      else
      {
        Console.WriteLine("  No recognition result available.");
      }
    }

    static void SpeechRecognitionRejectedHandler(
      object sender, SpeechRecognitionRejectedEventArgs e)
    {
      Console.WriteLine(" SpeechRecognitionRejected event raised.");
      if (e.Result != null)
      {
        string grammarName;
        if (e.Result.Grammar != null)
        {
          grammarName = e.Result.Grammar.Name ?? "<none>";
        }
        else
        {
          grammarName = "<not available>";
        }
        Console.WriteLine("  Grammar = {0}; Text = {1}",
          grammarName, e.Result.Text);
      }
      else
      {
        Console.WriteLine("  No recognition result available.");
      }
    }

    static void SpeechRecognizedHandler(
      object sender, SpeechRecognizedEventArgs e)
    {
      Console.WriteLine(" SpeechRecognized event raised.");
      if (e.Result != null)
      {
        Console.WriteLine("  Grammar = {0}; Text = {1}",
          e.Result.Grammar.Name ?? "<none>", e.Result.Text);
      }
      else
      {
        Console.WriteLine("  No recognition result available.");
      }
    }
  }
}

Hinweise

Die Spracherkennung löst die SpeechDetectedEreignisse und SpeechHypothesizedSpeechRecognitionRejectedSpeechRecognized Ereignisse aus, als ob der Erkennungsvorgang nicht emuliert wird.

Die Erkennungen, die mit Vista und Windows 7 geliefert werden, ignorieren die Groß- und Kleinschreibung und Die Zeichenbreite beim Anwenden von Grammatikregeln auf den Eingabeausdruck. Weitere Informationen zu diesem Vergleichstyp finden Sie in den CompareOptions Enumerationswerten OrdinalIgnoreCase und IgnoreWidth. Die Erkennungen ignorieren auch neue Zeilen und zusätzliche Leerzeichen und behandeln Interpunktion als Literaleingabe.

Weitere Informationen

Gilt für:

EmulateRecognize(RecognizedWordUnit[], CompareOptions)

Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs

Emuliert die Eingabe bestimmter Wörter an die Spracherkennung, wobei Text anstelle von Audio für die synchrone Spracherkennung verwendet wird, und gibt an, wie die Erkennung unicode-Vergleich zwischen den Wörtern und der geladenen Spracherkennungsgrammatik behandelt.

public:
 System::Speech::Recognition::RecognitionResult ^ EmulateRecognize(cli::array <System::Speech::Recognition::RecognizedWordUnit ^> ^ wordUnits, System::Globalization::CompareOptions compareOptions);
public System.Speech.Recognition.RecognitionResult EmulateRecognize(System.Speech.Recognition.RecognizedWordUnit[] wordUnits, System.Globalization.CompareOptions compareOptions);
member this.EmulateRecognize : System.Speech.Recognition.RecognizedWordUnit[] * System.Globalization.CompareOptions -> System.Speech.Recognition.RecognitionResult
Public Function EmulateRecognize (wordUnits As RecognizedWordUnit(), compareOptions As CompareOptions) As RecognitionResult

Parameter

wordUnits
RecognizedWordUnit[]

Ein Array von Worteinheiten, die die Eingabe für den Erkennungsvorgang enthalten.

compareOptions
CompareOptions

Eine bitweise Kombination der Enumerationswerte, die den Typ des Vergleichs beschreiben, der für den emulierten Erkennungsvorgang verwendet werden soll.

Gibt zurück

Das Ergebnis für den Erkennungsvorgang oder null wenn der Vorgang nicht erfolgreich ist oder die Erkennung nicht aktiviert ist.

Ausnahmen

Die Erkennung hat keine Grammatik für die Spracherkennung geladen.

wordUnits ist null.

wordUnits enthält ein oder null mehrere Elemente.

compareOptions enthält das IgnoreNonSpace, IgnoreSymbolsoder StringSort flag.

Hinweise

Die Spracherkennung löst die SpeechDetectedEreignisse und SpeechHypothesizedSpeechRecognitionRejectedSpeechRecognized Ereignisse aus, als ob der Erkennungsvorgang nicht emuliert wird.

Die Erkennung wird verwendet compareOptions , wenn sie Grammatikregeln auf den Eingabeausdruck anwendet. Die Erkennungsgeräte, die mit Vista und Windows 7 ausgeliefert werden, ignorieren den Fall, wenn der OrdinalIgnoreCaseIgnoreCase Wert vorhanden ist. Die Erkennung ignoriert immer die Zeichenbreite und ignoriert niemals den Kana-Typ. Die Erkennung ignoriert auch neue Zeilen und zusätzlichen Leerraum und behandelt Interpunktion als Literaleingabe. Weitere Informationen zur Zeichenbreite und zum Kana-Typ finden Sie in der CompareOptions Enumeration.

Weitere Informationen

Gilt für:

EmulateRecognize(String, CompareOptions)

Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs

Emuliert die Eingabe eines Ausdrucks an die Spracherkennung, wobei Text anstelle von Audio für die synchrone Spracherkennung verwendet wird, und gibt an, wie die Erkennung unicode-Vergleich zwischen dem Ausdruck und der geladenen Spracherkennungsgrammatik behandelt.

public:
 System::Speech::Recognition::RecognitionResult ^ EmulateRecognize(System::String ^ inputText, System::Globalization::CompareOptions compareOptions);
public System.Speech.Recognition.RecognitionResult EmulateRecognize(string inputText, System.Globalization.CompareOptions compareOptions);
member this.EmulateRecognize : string * System.Globalization.CompareOptions -> System.Speech.Recognition.RecognitionResult
Public Function EmulateRecognize (inputText As String, compareOptions As CompareOptions) As RecognitionResult

Parameter

inputText
String

Der Eingabeausdruck für den Erkennungsvorgang.

compareOptions
CompareOptions

Eine bitweise Kombination der Enumerationswerte, die den Typ des Vergleichs beschreiben, der für den emulierten Erkennungsvorgang verwendet werden soll.

Gibt zurück

Das Ergebnis für den Erkennungsvorgang oder null wenn der Vorgang nicht erfolgreich ist oder die Erkennung nicht aktiviert ist.

Ausnahmen

Die Erkennung hat keine Grammatik für die Spracherkennung geladen.

inputText ist null.

inputText ist die leere Zeichenfolge ("").

compareOptions enthält das IgnoreNonSpace, IgnoreSymbolsoder StringSort flag.

Hinweise

Die Spracherkennung löst die SpeechDetectedEreignisse und SpeechHypothesizedSpeechRecognitionRejectedSpeechRecognized Ereignisse aus, als ob der Erkennungsvorgang nicht emuliert wird.

Die Erkennung wird verwendet compareOptions , wenn sie Grammatikregeln auf den Eingabeausdruck anwendet. Die Erkennungsgeräte, die mit Vista und Windows 7 ausgeliefert werden, ignorieren den Fall, wenn der OrdinalIgnoreCaseIgnoreCase Wert vorhanden ist. Die Erkennung ignoriert immer die Zeichenbreite und ignoriert niemals den Kana-Typ. Die Erkennung ignoriert auch neue Zeilen und zusätzlichen Leerraum und behandelt Interpunktion als Literaleingabe. Weitere Informationen zur Zeichenbreite und zum Kana-Typ finden Sie in der CompareOptions Enumeration.

Weitere Informationen

Gilt für: