SpeechRecognitionEngine.EmulateRecognize Methode

Definition

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

Überlädt

EmulateRecognize(String)

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

EmulateRecognize(RecognizedWordUnit[], CompareOptions)

Emuliert die Eingabe bestimmter Wörter für die Spracherkennung. Dabei wird Text statt Audio für die synchrone Spracherkennung verwendet und festgelegt, wie die Erkennung Unicode-Vergleich zwischen den Wörtern und den geladenen Spracherkennungsgrammatiken behandelt.

EmulateRecognize(String, CompareOptions)

Emuliert die Eingabe eines Ausdrucks für die Spracherkennung. Dabei wird Text statt Audio für die synchrone 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. 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 EmulateRecognizeAsync asynchrone Erkennung zu emulieren.

EmulateRecognize(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 synchrone Spracherkennung verwendet.

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 war oder die Erkennung nicht aktiviert ist.

Ausnahmen

Die Erkennung hat keine geladenen Spracherkennungsgrammatiken.

inputText ist null.

inputText ist die leere Zeichenfolge ("").

Beispiele

Das folgende Codebeispiel ist Teil einer Konsolenanwendung, die emulierte Eingaben, die zugeordneten 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 , SpeechHypothesized, SpeechRecognitionRejectedund SpeechRecognized aus, als ob der Erkennungsvorgang nicht emuliert wurde.

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.

Weitere Informationen

Gilt für:

EmulateRecognize(RecognizedWordUnit[], CompareOptions)

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

Emuliert die Eingabe bestimmter Wörter für die Spracherkennung. Dabei wird Text statt Audio für die synchrone Spracherkennung verwendet und festgelegt, wie die Erkennung Unicode-Vergleich zwischen den Wörtern und den geladenen Spracherkennungsgrammatiken 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, 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.

Gibt zurück

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

Ausnahmen

Die Erkennung hat keine geladenen Spracherkennungsgrammatiken.

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.

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 Erkennung ignoriert immer die Zeichenbreite und ignoriert niemals den Kana-Typ. Die Erkennung ignoriert auch neue Zeilen und zusätzliche Leerzeichen 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

Emuliert die Eingabe eines Ausdrucks für die Spracherkennung. Dabei wird Text statt Audio für die synchrone Spracherkennung verwendet und festgelegt, wie die Erkennung Unicode-Vergleich zwischen dem Ausdruck und den geladenen Spracherkennungsgrammatiken 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 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.

Gibt zurück

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

Ausnahmen

Die Erkennung hat keine geladenen Spracherkennungsgrammatiken.

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.

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 Erkennung ignoriert immer die Zeichenbreite und ignoriert niemals den Kana-Typ. Die Erkennung ignoriert auch neue Zeilen und zusätzliche Leerzeichen und behandelt interpunktion als Literaleingabe. Weitere Informationen zur Zeichenbreite und zum Kana-Typ finden Sie in der CompareOptions Enumeration.

Weitere Informationen

Gilt für: