Partager via


SpeechRecognitionEngine.EmulateRecognizeAsync Méthode

Définition

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

Surcharges

Nom Description
EmulateRecognizeAsync(String)

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

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

Émule l’entrée de mots spécifiques au module de reconnaissance vocale, à l’aide d’un tableau d’objets RecognizedWordUnit à la place de l’audio pour la reconnaissance vocale asynchrone et spécifie comment le module de reconnaissance vocale gère la comparaison Unicode entre les mots et les grammaires de reconnaissance vocale chargées.

EmulateRecognizeAsync(String, CompareOptions)

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

Remarques

Ces méthodes contournent l’entrée audio système et fournissent du texte au module de reconnaissance en tant qu’objets String ou sous forme 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 se trouve dans une grammaire et quelle sémantique sont retournées 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 événements et SpeechHypothesizedSpeechRecognitionRejectedSpeechRecognized les SpeechDetectedévénements comme si l’opération de reconnaissance n’est 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.

Note

L’objet RecognitionResult généré par le module de reconnaissance vocale en réponse à l’entrée émulée a la valeur de null 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
Source:
SpeechRecognitionEngine.cs

Émule l’entrée d’une expression dans le module de reconnaissance vocale, en utilisant du 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 vocale n’a pas de grammaires de reconnaissance vocale chargées, 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 une 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 événements et SpeechHypothesizedSpeechRecognitionRejectedSpeechRecognized les SpeechDetectedévénements comme si l’opération de reconnaissance n’est 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 CompareOptions valeurs OrdinalIgnoreCase d’énumération et IgnoreWidth. Les modules de reconnaissance ignorent également les nouvelles lignes et les espaces blancs supplémentaires et traitent la ponctuation comme entrée littérale.

Cette méthode stocke dans la tâche toutes les exceptions 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 est levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de façon synchrone. Pour 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
Source:
SpeechRecognitionEngine.cs

Émule l’entrée de mots spécifiques au module de reconnaissance vocale, à l’aide d’un tableau d’objets RecognizedWordUnit à la place de l’audio pour la reconnaissance vocale asynchrone et spécifie comment le module de reconnaissance vocale gère la comparaison Unicode entre les mots et les grammaires de 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[]

Tableau d’unités de mots qui contient l’entrée pour l’opération de reconnaissance.

compareOptions
CompareOptions

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

Exceptions

Le module de reconnaissance vocale n’a pas de grammaires de reconnaissance vocale chargées, 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 null éléments.

compareOptionscontient le , IgnoreSymbolsou StringSort l’indicateurIgnoreNonSpace.

Remarques

Le module de reconnaissance vocale déclenche les événements et SpeechHypothesizedSpeechRecognitionRejectedSpeechRecognized les SpeechDetectedévénements comme si l’opération de reconnaissance n’est 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 ou IgnoreCase la OrdinalIgnoreCase valeur 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 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 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 est levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de façon synchrone. Pour 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
Source:
SpeechRecognitionEngine.cs

Émule l’entrée d’une expression au module de reconnaissance vocale, en utilisant du texte à la place de l’audio pour la reconnaissance vocale asynchrone et spécifie comment le module de reconnaissance vocale gère la comparaison Unicode entre l’expression et les grammaires de 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 pour l’opération de reconnaissance.

compareOptions
CompareOptions

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

Exceptions

Le module de reconnaissance vocale n’a pas de grammaires de reconnaissance vocale chargées, 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 («  »).

compareOptionscontient le , IgnoreSymbolsou StringSort l’indicateurIgnoreNonSpace.

Remarques

Le module de reconnaissance vocale déclenche les événements et SpeechHypothesizedSpeechRecognitionRejectedSpeechRecognized les SpeechDetectedévénements comme si l’opération de reconnaissance n’est 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 ou IgnoreCase la OrdinalIgnoreCase valeur 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 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 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 est levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de façon synchrone. Pour les exceptions stockées, consultez les exceptions levées par EmulateRecognize(String, CompareOptions).

Voir aussi

S’applique à