Freigeben über


SpeechRecognitionEngine.EmulateRecognizeAsync Methode

Definition

Emuliert die Eingabe für die Spracherkennung. Dabei wird Text statt Audio für die asynchrone Spracherkennung verwendet.

Überlädt

EmulateRecognizeAsync(String)

Emuliert die Eingabe eines Ausdrucks für die Spracherkennung. Dabei wird Text statt Audio für die asynchrone Spracherkennung verwendet.

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

Emuliert die Eingabe bestimmter Wörter für die freigegebene Spracherkennung. Dabei wird ein Array von RecognizedWordUnit-Objekten statt Audio für die asynchrone Spracherkennung verwendet und festgelegt, wie die Erkennung Unicode-Vergleich zwischen den Wörtern und den geladenen Spracherkennungsgrammatiken behandelt.

EmulateRecognizeAsync(String, CompareOptions)

Emuliert die Eingabe eines Ausdrucks für die Spracherkennung. Dabei wird Text statt Audio für die asynchrone Spracherkennung verwendet und festgelegt, wie die Erkennung Unicode-Vergleich zwischen dem Ausdruck und den geladenen Spracherkennungsgrammatiken behandelt.

Hinweise

Diese Methoden umgehen die Systemaudioeingabe und stellen text für die Erkennung als String Objekte oder als Array von RecognizedWordUnit Objekten bereit. Dies kann hilfreich sein, wenn Sie eine Anwendung oder Grammatik testen oder debuggen. Beispielsweise können Sie mithilfe der Emulation bestimmen, ob ein Wort in einer Grammatik enthalten ist und welche Semantik zurückgegeben wird, wenn das Wort erkannt wird. Verwenden Sie die SetInputToNull -Methode, um die Audioeingabe für die Spracherkennungs-Engine während Emulationsvorgängen zu deaktivieren.

Die Spracherkennung löst die SpeechDetectedEreignisse , SpeechHypothesized, SpeechRecognitionRejectedund SpeechRecognized aus, als ob der Erkennungsvorgang nicht emuliert wurde. Wenn die Erkennung den asynchronen Erkennungsvorgang abgeschlossen hat, löst sie das EmulateRecognizeCompleted -Ereignis aus. Die Erkennung ignoriert neue Zeilen und zusätzliche Leerzeichen und behandelt interpunktion als Literaleingabe.

Hinweis

Das RecognitionResult objekt, das von der Spracherkennung als Reaktion auf emulierte Eingabe generiert wird, hat den Wert für null seine Audio -Eigenschaft.

Verwenden Sie die -Methode, um die EmulateRecognize synchrone Erkennung zu emulieren.

EmulateRecognizeAsync(String)

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

Emuliert die Eingabe eines Ausdrucks für die Spracherkennung. Dabei wird Text statt Audio für die asynchrone Spracherkennung verwendet.

public:
 void EmulateRecognizeAsync(System::String ^ inputText);
public void EmulateRecognizeAsync (string inputText);
member this.EmulateRecognizeAsync : string -> unit
Public Sub EmulateRecognizeAsync (inputText As String)

Parameter

inputText
String

Die Eingabe für den Erkennungsvorgang.

Ausnahmen

Die Erkennung hat keine geladenen Spracherkennungsgrammatiken, oder die Erkennung bearbeitet einen asynchronen Erkennungsvorgang, der noch nicht abgeschlossen ist.

inputText ist null.

inputText ist die leere Zeichenfolge ("").

Beispiele

Das folgende Codebeispiel ist Teil einer Konsolenanwendung, die die asynchrone emulierte Eingabe, die zugehörigen Erkennungsergebnisse und die von der Spracherkennung ausgelösten zugeordneten Ereignisse veranschaulicht. Im Beispiel wird die folgende Ausgabe generiert.

TestRecognizeAsync("Smith")...  
 SpeechDetected event raised.  
 SpeechRecognized event raised.  
  Grammar = Smith; Text = Smith  
 EmulateRecognizeCompleted event raised.  
  Grammar = Smith; Text = Smith  
 Done.  

TestRecognizeAsync("Jones")...  
 SpeechDetected event raised.  
 SpeechRecognized event raised.  
  Grammar = Jones; Text = Jones  
 EmulateRecognizeCompleted event raised.  
  Grammar = Jones; Text = Jones  
 Done.  

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

TestRecognizeAsync("Mister Smith")...  
 SpeechDetected event raised.  
 SpeechRecognized event raised.  
  Grammar = Smith; Text = mister Smith  
 EmulateRecognizeCompleted event raised.  
  Grammar = Smith; Text = mister Smith  
 Done.  

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

namespace SreEmulateRecognizeAsync  
{  
  class Program  
  {  
    // Indicate when an asynchronous operation is finished.  
    static bool completed;  

    static void Main(string[] args)  
    {  
      using (SpeechRecognitionEngine recognizer =  
        new SpeechRecognitionEngine(new CultureInfo("en-US")))  
      {  
        // Load grammars.  
        recognizer.LoadGrammar(CreateNameGrammar("Smith"));  
        recognizer.LoadGrammar(CreateNameGrammar("Jones"));  

        // Configure the audio input.  
        recognizer.SetInputToNull();  

        // Add event handlers for the events raised by the  
        // EmulateRecognizeAsync 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);  
        recognizer.EmulateRecognizeCompleted +=  
          new EventHandler<EmulateRecognizeCompletedEventArgs>(  
            EmulateRecognizeCompletedHandler);  

        // Start four asynchronous emulated recognition operations.  
        TestRecognizeAsync(recognizer, "Smith");  
        TestRecognizeAsync(recognizer, "Jones");  
        TestRecognizeAsync(recognizer, "Mister");  
        TestRecognizeAsync(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 asynchronous  
    // recognition.  
    private static void TestRecognizeAsync(  
      SpeechRecognitionEngine recognizer, string input)  
    {  
      completed = false;  

      Console.WriteLine("TestRecognizeAsync(\"{0}\")...", input);  
      recognizer.EmulateRecognizeAsync(input);  

      // Wait for the operation to complete.  
      while (!completed)  
      {  
        Thread.Sleep(333);  
      }  

      Console.WriteLine(" Done.");  
      Console.WriteLine();  
    }  

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

    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.");  
      }  
    }  

    // Handle events.  
    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.");  
      }  
    }  

    static void EmulateRecognizeCompletedHandler(  
      object sender, EmulateRecognizeCompletedEventArgs e)  
    {  
      Console.WriteLine(" EmulateRecognizeCompleted event raised.");  

      if (e.Error != null)  
      {  
        Console.WriteLine("  {0} exception encountered: {1}:",  
          e.Error.GetType().Name, e.Error.Message);  
      }  
      else if (e.Cancelled)  
      {  
        Console.WriteLine("  Operation cancelled.");  
      }  
      else 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.");  
      }  

      completed = true;  
    }  
  }  
}

Hinweise

Die Spracherkennung löst die SpeechDetectedEreignisse , SpeechHypothesized, SpeechRecognitionRejectedund SpeechRecognized aus, als ob der Erkennungsvorgang nicht emuliert wurde. Wenn die Erkennung den asynchronen Erkennungsvorgang abgeschlossen hat, löst sie das EmulateRecognizeCompleted -Ereignis aus.

Die Erkennungen, die mit Vista und Windows 7 ausgeliefert werden, ignorieren die Groß- und Kleinschreibung und Die Zeichenbreite, wenn Grammatikregeln auf den Eingabebegriff angewendet werden. Weitere Informationen zu diesem Vergleichstyp finden Sie unter Enumerationswerte CompareOptionsOrdinalIgnoreCase und IgnoreWidth. Die Erkennungen ignorieren auch neue Zeilen und zusätzliche Leerzeichen und behandeln Interpunktion als Literaleingabe.

Diese Methode speichert in der Aufgabe, die alle Nichtverwendungsausnahmen zurückgibt, die die synchrone Entsprechung der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Verwendungsausnahmen wie ArgumentExceptionwerden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie unter ausnahmen, die von ausgelöst werden EmulateRecognize(String).

Weitere Informationen

Gilt für:

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

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

Emuliert die Eingabe bestimmter Wörter für die freigegebene Spracherkennung. Dabei wird ein Array von RecognizedWordUnit-Objekten statt Audio für die asynchrone Spracherkennung verwendet und festgelegt, wie die Erkennung Unicode-Vergleich zwischen den Wörtern und den geladenen Spracherkennungsgrammatiken behandelt.

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

Parameter

wordUnits
RecognizedWordUnit[]

Ein Array von Worteinheiten, das die Eingabe für den Erkennungsvorgang enthält.

compareOptions
CompareOptions

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

Ausnahmen

Die Erkennung hat keine geladenen Spracherkennungsgrammatiken, oder die Erkennung bearbeitet einen asynchronen Erkennungsvorgang, der noch nicht abgeschlossen ist.

wordUnits ist null.

wordUnits enthält mindestens ein null-Element.

compareOptions enthält das Flag IgnoreNonSpace, IgnoreSymbols oder StringSort.

Hinweise

Die Spracherkennung löst die SpeechDetectedEreignisse , SpeechHypothesized, SpeechRecognitionRejectedund SpeechRecognized aus, als ob der Erkennungsvorgang nicht emuliert wurde. Wenn die Erkennung den asynchronen Erkennungsvorgang abgeschlossen hat, löst sie das EmulateRecognizeCompleted -Ereignis aus.

Die Erkennung verwendet compareOptions , wenn Grammatikregeln auf den Eingabebegriff angewendet werden. Die Erkennungen, die mit Vista und Windows 7 ausgeliefert werden, ignorieren die Groß-/Kleinschreibung, wenn der OrdinalIgnoreCase Wert oder IgnoreCase vorhanden ist. Die Erkennungen ignorieren immer die Zeichenbreite und niemals den Kana-Typ. Die Erkennungen ignorieren auch neue Zeilen und zusätzliche Leerzeichen und behandeln Interpunktion als Literaleingabe. Weitere Informationen zur Zeichenbreite und zum Kana-Typ finden Sie in der CompareOptions Enumeration.

Diese Methode speichert in der Aufgabe, die alle Nichtverwendungsausnahmen zurückgibt, die die synchrone Entsprechung der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Verwendungsausnahmen wie ArgumentExceptionwerden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie unter ausnahmen, die von ausgelöst werden EmulateRecognize(RecognizedWordUnit[], CompareOptions).

Weitere Informationen

Gilt für:

EmulateRecognizeAsync(String, CompareOptions)

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

Emuliert die Eingabe eines Ausdrucks für die Spracherkennung. Dabei wird Text statt Audio für die asynchrone Spracherkennung verwendet und festgelegt, wie die Erkennung Unicode-Vergleich zwischen dem Ausdruck und den geladenen Spracherkennungsgrammatiken behandelt.

public:
 void EmulateRecognizeAsync(System::String ^ inputText, System::Globalization::CompareOptions compareOptions);
public void EmulateRecognizeAsync (string inputText, System.Globalization.CompareOptions compareOptions);
member this.EmulateRecognizeAsync : string * System.Globalization.CompareOptions -> unit
Public Sub EmulateRecognizeAsync (inputText As String, compareOptions As CompareOptions)

Parameter

inputText
String

Der Eingabebegriff für den Erkennungsvorgang.

compareOptions
CompareOptions

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

Ausnahmen

Die Erkennung hat keine geladenen Spracherkennungsgrammatiken, oder die Erkennung bearbeitet einen asynchronen Erkennungsvorgang, der noch nicht abgeschlossen ist.

inputText ist null.

inputText ist die leere Zeichenfolge ("").

compareOptions enthält das Flag IgnoreNonSpace, IgnoreSymbols oder StringSort.

Hinweise

Die Spracherkennung löst die SpeechDetectedEreignisse , SpeechHypothesized, SpeechRecognitionRejectedund SpeechRecognized aus, als ob der Erkennungsvorgang nicht emuliert wurde. Wenn die Erkennung den asynchronen Erkennungsvorgang abgeschlossen hat, löst sie das EmulateRecognizeCompleted -Ereignis aus.

Die Erkennung verwendet compareOptions , wenn Grammatikregeln auf den Eingabebegriff angewendet werden. Die Erkennungen, die mit Vista und Windows 7 ausgeliefert werden, ignorieren die Groß-/Kleinschreibung, wenn der OrdinalIgnoreCase Wert oder IgnoreCase vorhanden ist. Die Erkennungen ignorieren immer die Zeichenbreite und niemals den Kana-Typ. Die Erkennungen ignorieren auch neue Zeilen und zusätzliche Leerzeichen und behandeln Interpunktion als Literaleingabe. Weitere Informationen zur Zeichenbreite und zum Kana-Typ finden Sie in der CompareOptions Enumeration.

Diese Methode speichert in der Aufgabe, die alle Nichtverwendungsausnahmen zurückgibt, die die synchrone Entsprechung der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Verwendungsausnahmen wie ArgumentExceptionwerden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie unter ausnahmen, die von ausgelöst werden EmulateRecognize(String, CompareOptions).

Weitere Informationen

Gilt für: