Partager via


SpeechRecognitionEngine.EmulateRecognizeAsync 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 asynchrone.

Surcharges

EmulateRecognizeAsync(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 asynchrone.

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

Émule l'entrée de mots spécifiques dans le module de reconnaissance vocale partagé, en utilisant un tableau d'objets RecognizedWordUnit à 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.

EmulateRecognizeAsync(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 asynchrone, 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. Lorsque le module de reconnaissance termine l’opération de reconnaissance asynchrone, il déclenche l’événement EmulateRecognizeCompleted . Le module de reconnaissance ignore les nouvelles lignes et les espaces blancs supplémentaires et traite la ponctuation comme 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 de null pour sa Audio propriété.

Pour émuler la reconnaissance synchrone, utilisez la EmulateRecognize méthode .

EmulateRecognizeAsync(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 asynchrone.

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

Paramètres

inputText
String

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

Exceptions

Le module de reconnaissance n'a aucune syntaxe de reconnaissance vocale chargée, ou le module de reconnaissance a une opération de reconnaissance asynchrone qui n'est pas encore terminé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 asynchrone, 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.

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

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. Lorsque le module de reconnaissance termine l’opération de reconnaissance asynchrone, il déclenche l’événement EmulateRecognizeCompleted .

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.

Cette méthode stocke dans la tâche toutes les exceptions de non-utilisation que l’équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception sera levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de manière synchrone. Pour connaître les exceptions stockées, consultez les exceptions levées par EmulateRecognize(String).

Voir aussi

S’applique à

EmulateRecognizeAsync(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 un tableau d'objets RecognizedWordUnit à 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:
 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)

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.

Exceptions

Le module de reconnaissance n'a aucune syntaxe de reconnaissance vocale chargée, ou le module de reconnaissance a une opération de reconnaissance asynchrone qui n'est pas encore terminé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. Lorsque le module de reconnaissance termine l’opération de reconnaissance asynchrone, il déclenche l’événement EmulateRecognizeCompleted .

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. Les modules de reconnaissance ignorent toujours la largeur des caractères et n’ignorent jamais le type Kana. 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. Pour plus d’informations sur la largeur des caractères et le type Kana, consultez l’énumération CompareOptions .

Cette méthode stocke dans la tâche toutes les exceptions de non-utilisation que l’équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception sera levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de manière synchrone. Pour connaître les exceptions stockées, consultez les exceptions levées par EmulateRecognize(RecognizedWordUnit[], CompareOptions).

Voir aussi

S’applique à

EmulateRecognizeAsync(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 asynchrone, 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:
 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)

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.

Exceptions

Le module de reconnaissance n'a aucune syntaxe de reconnaissance vocale chargée, ou le module de reconnaissance a une opération de reconnaissance asynchrone qui n'est pas encore terminé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. Lorsque le module de reconnaissance termine l’opération de reconnaissance asynchrone, il déclenche l’événement EmulateRecognizeCompleted .

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. Les modules de reconnaissance ignorent toujours la largeur des caractères et n’ignorent jamais le type Kana. 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. Pour plus d’informations sur la largeur des caractères et le type Kana, consultez l’énumération CompareOptions .

Cette méthode stocke dans la tâche toutes les exceptions de non-utilisation que l’équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception sera levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de manière synchrone. Pour connaître les exceptions stockées, consultez les exceptions levées par EmulateRecognize(String, CompareOptions).

Voir aussi

S’applique à