Partager via


SpeechRecognitionEngine.EmulateRecognize Méthode

Définition

Émule l'entrée dans le module de reconnaissance vocale, en utilisant le texte à la place de l'audio pour la reconnaissance vocale synchrone.

Surcharges

EmulateRecognize(String)

Émule l'entrée d'une expression dans le module de reconnaissance vocale, en utilisant le texte à la place de l'audio pour la reconnaissance vocale synchrone.

EmulateRecognize(RecognizedWordUnit[], CompareOptions)

Émule l'entrée de mots spécifiques dans le module de reconnaissance vocale partagé, en utilisant le texte à la place de l'audio pour la reconnaissance vocale synchrone, et spécifie comment le module de reconnaissance gère la comparaison Unicode entre les mots et les grammaires de la reconnaissance vocale chargées.

EmulateRecognize(String, CompareOptions)

Émule l'entrée d'une expression dans le module de reconnaissance vocale partagé, en utilisant le texte à la place de l'audio pour la reconnaissance vocale synchrone, et spécifie comment le module de reconnaissance gère la comparaison Unicode entre l'expression et les grammaires de la reconnaissance vocale chargées.

Remarques

Ces méthodes contournent l’entrée audio système et fournissent du texte au module de reconnaissance sous forme String d’objets ou de tableau d’objets RecognizedWordUnit . Cela peut être utile lorsque vous testez ou déboguez une application ou une grammaire. Par exemple, vous pouvez utiliser l’émulation pour déterminer si un mot est dans une grammaire et quelle sémantique est retournée lorsque le mot est reconnu. Utilisez la méthode pour désactiver l’entrée SetInputToNull audio dans le moteur de reconnaissance vocale pendant les opérations d’émulation.

Le module de reconnaissance vocale déclenche les SpeechDetectedévénements , SpeechHypothesized, SpeechRecognitionRejectedet SpeechRecognized comme si l’opération de reconnaissance n’était pas émulée. Le module de reconnaissance ignore les nouvelles lignes et les espaces blancs supplémentaires et traite la ponctuation comme une entrée littérale.

Notes

L’objet RecognitionResult généré par le module de reconnaissance vocale en réponse à une entrée émulée a la valeur pour null sa Audio propriété .

Pour émuler la reconnaissance asynchrone, utilisez la EmulateRecognizeAsync méthode .

EmulateRecognize(String)

Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs

Émule l'entrée d'une expression dans le module de reconnaissance vocale, en utilisant le texte à la place de l'audio pour la reconnaissance vocale synchrone.

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

Paramètres

inputText
String

Entrée de l'opération de reconnaissance.

Retours

Résultat de l'opération de reconnaissance ou null si l'opération n'est pas réussie ou si le module de reconnaissance n'est pas activé.

Exceptions

Le module de reconnaissance n'a aucune syntaxe de reconnaissance vocale chargée.

inputText a la valeur null.

inputText est la chaîne vide ("").

Exemples

L’exemple de code ci-dessous fait partie d’une application console qui illustre l’entrée émulée, les résultats de la reconnaissance associée et les événements associés déclenchés par le module de reconnaissance vocale. L’exemple génère la sortie suivante.

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

Remarques

Le module de reconnaissance vocale déclenche les SpeechDetectedévénements , SpeechHypothesized, SpeechRecognitionRejectedet SpeechRecognized comme si l’opération de reconnaissance n’était pas émulée.

Les modules de reconnaissance fournis avec Vista et Windows 7 ignorent la casse et la largeur des caractères lors de l’application de règles de grammaire à l’expression d’entrée. Pour plus d’informations sur ce type de comparaison, consultez les valeurs OrdinalIgnoreCase d’énumération CompareOptions et IgnoreWidth. Les modules de reconnaissance ignorent également les nouvelles lignes et les espaces blancs supplémentaires et traitent la ponctuation comme une entrée littérale.

Voir aussi

S’applique à

EmulateRecognize(RecognizedWordUnit[], CompareOptions)

Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs

Émule l'entrée de mots spécifiques dans le module de reconnaissance vocale partagé, en utilisant le texte à la place de l'audio pour la reconnaissance vocale synchrone, et spécifie comment le module de reconnaissance gère la comparaison Unicode entre les mots et les grammaires de la reconnaissance vocale chargées.

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

Paramètres

wordUnits
RecognizedWordUnit[]

Un tableau d'unités de mot qui contient l'entrée pour l'opération de reconnaissance.

compareOptions
CompareOptions

Combinaison d'opérations de bits des valeurs d'énumération qui décrivent le type de comparaison à utiliser pour la reconnaissance émulée.

Retours

Résultat de l'opération de reconnaissance ou null si l'opération n'est pas réussie ou si le module de reconnaissance n'est pas activé.

Exceptions

Le module de reconnaissance n'a aucune syntaxe de reconnaissance vocale chargée.

wordUnits a la valeur null.

wordUnits contient un ou plusieurs éléments null.

compareOptions contient l'indicateur IgnoreNonSpace, IgnoreSymbols ou StringSort.

Remarques

Le module de reconnaissance vocale déclenche les SpeechDetectedévénements , SpeechHypothesized, SpeechRecognitionRejectedet SpeechRecognized comme si l’opération de reconnaissance n’était pas émulée.

Le module de reconnaissance utilise compareOptions lorsqu’il applique des règles de grammaire à l’expression d’entrée. Les modules de reconnaissance fournis avec Vista et Windows 7 ignorent la casse si la OrdinalIgnoreCase valeur ou IgnoreCase est présente. Le module de reconnaissance ignore toujours la largeur du caractère et n’ignore jamais le type Kana. Le module de reconnaissance ignore également les nouvelles lignes et les espaces blancs supplémentaires et traite la ponctuation comme une entrée littérale. Pour plus d’informations sur la largeur des caractères et le type Kana, consultez l’énumération CompareOptions .

Voir aussi

S’applique à

EmulateRecognize(String, CompareOptions)

Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs

Émule l'entrée d'une expression dans le module de reconnaissance vocale partagé, en utilisant le texte à la place de l'audio pour la reconnaissance vocale synchrone, et spécifie comment le module de reconnaissance gère la comparaison Unicode entre l'expression et les grammaires de la reconnaissance vocale chargées.

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

Paramètres

inputText
String

Expression d'entrée de l'opération de reconnaissance.

compareOptions
CompareOptions

Combinaison d'opérations de bits des valeurs d'énumération qui décrivent le type de comparaison à utiliser pour la reconnaissance émulée.

Retours

Résultat de l'opération de reconnaissance ou null si l'opération n'est pas réussie ou si le module de reconnaissance n'est pas activé.

Exceptions

Le module de reconnaissance n'a aucune syntaxe de reconnaissance vocale chargée.

inputText a la valeur null.

inputText est la chaîne vide ("").

compareOptions contient l'indicateur IgnoreNonSpace, IgnoreSymbols ou StringSort.

Remarques

Le module de reconnaissance vocale déclenche les SpeechDetectedévénements , SpeechHypothesized, SpeechRecognitionRejectedet SpeechRecognized comme si l’opération de reconnaissance n’était pas émulée.

Le module de reconnaissance utilise compareOptions lorsqu’il applique des règles de grammaire à l’expression d’entrée. Les modules de reconnaissance fournis avec Vista et Windows 7 ignorent la casse si la OrdinalIgnoreCase valeur ou IgnoreCase est présente. Le module de reconnaissance ignore toujours la largeur du caractère et n’ignore jamais le type Kana. Le module de reconnaissance ignore également les nouvelles lignes et les espaces blancs supplémentaires et traite la ponctuation comme une entrée littérale. Pour plus d’informations sur la largeur des caractères et le type Kana, consultez l’énumération CompareOptions .

Voir aussi

S’applique à