SpeechRecognitionEngine.EmulateRecognizeAsync Método

Definição

Emula a entrada para o reconhecedor de fala usando o texto no lugar do áudio para o reconhecimento de fala assíncrono.

Sobrecargas

EmulateRecognizeAsync(String)

Emula a entrada de uma fase para o reconhecedor de fala usando o texto no lugar do áudio para o reconhecimento de fala assíncrono.

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

Emula a entrada de palavras específicas no reconhecedor de fala usando uma matriz de objetos RecognizedWordUnit em vez de áudio para o reconhecimento de fala assíncrono e especifica como o reconhecedor trata a comparação Unicode entre as palavras e as gramáticas do reconhecimento de fala carregado.

EmulateRecognizeAsync(String, CompareOptions)

Emula a entrada de uma frase no reconhecedor de fala usando texto em vez de áudio para o reconhecimento de fala assíncrono e especifica como o reconhecedor trata a comparação Unicode entre a frase e as gramáticas do reconhecimento de fala carregado.

Comentários

Esses métodos ignoram a entrada de áudio do sistema e fornecem texto ao reconhecedor como String objetos ou como uma matriz de RecognizedWordUnit objetos. Isso pode ser útil quando você está testando ou depurando um aplicativo ou gramática. Por exemplo, você pode usar a emulação para determinar se uma palavra está em uma gramática e qual semântica é retornada quando a palavra é reconhecida. Use o SetInputToNull método para desabilitar a entrada de áudio no mecanismo de reconhecimento de fala durante operações de emulação.

O reconhecedor de fala gera os SpeechDetectedeventos , SpeechHypothesized, SpeechRecognitionRejectede SpeechRecognized como se a operação de reconhecimento não fosse emulada. Quando o reconhecedor conclui a operação de reconhecimento assíncrono, ele aciona o EmulateRecognizeCompleted evento. O reconhecedor ignora novas linhas e espaço em branco extra e trata a pontuação como entrada literal.

Observação

O RecognitionResult objeto gerado pelo reconhecedor de fala em resposta à entrada emulada tem um valor de null para sua Audio propriedade.

Para emular o reconhecimento síncrono, use o EmulateRecognize método .

EmulateRecognizeAsync(String)

Origem:
SpeechRecognitionEngine.cs
Origem:
SpeechRecognitionEngine.cs
Origem:
SpeechRecognitionEngine.cs

Emula a entrada de uma fase para o reconhecedor de fala usando o texto no lugar do áudio para o reconhecimento de fala assíncrono.

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

Parâmetros

inputText
String

A entrada da operação de reconhecimento.

Exceções

O reconhecedor não tem nenhuma gramática de reconhecimento de fala carregada ou o reconhecedor tem uma operação de reconhecimento assíncrono que ainda não está completa.

inputText é null.

inputText é a cadeia de caracteres vazia ("").

Exemplos

O exemplo de código abaixo faz parte de um aplicativo de console que demonstra a entrada emulada assíncrona, os resultados de reconhecimento associados e os eventos associados gerados pelo reconhecedor de fala. O exemplo gera a saída a seguir.

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

Comentários

O reconhecedor de fala gera os SpeechDetectedeventos , SpeechHypothesized, SpeechRecognitionRejectede SpeechRecognized como se a operação de reconhecimento não fosse emulada. Quando o reconhecedor conclui a operação de reconhecimento assíncrono, ele aciona o EmulateRecognizeCompleted evento.

Os reconhecedores fornecidos com Vista e Windows 7 ignoram a largura de maiúsculas e minúsculas e caracteres ao aplicar regras gramaticais à frase de entrada. Para obter mais informações sobre esse tipo de comparação, consulte os CompareOptions valores OrdinalIgnoreCase de enumeração e IgnoreWidth. Os reconhecedores também ignoram novas linhas e espaço em branco extra e tratam a pontuação como entrada literal.

Esse método armazena na tarefa que retorna todas as exceções de não uso que o equivalente síncrono do método pode gerar. Se uma exceção for armazenada na tarefa retornada, essa exceção será gerada quando a tarefa for aguardada. Exceções de uso, como ArgumentException, ainda são geradas de forma síncrona. Para as exceções armazenadas, consulte as exceções geradas por EmulateRecognize(String).

Confira também

Aplica-se a

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

Origem:
SpeechRecognitionEngine.cs
Origem:
SpeechRecognitionEngine.cs
Origem:
SpeechRecognitionEngine.cs

Emula a entrada de palavras específicas no reconhecedor de fala usando uma matriz de objetos RecognizedWordUnit em vez de áudio para o reconhecimento de fala assíncrono e especifica como o reconhecedor trata a comparação Unicode entre as palavras e as gramáticas do reconhecimento de fala carregado.

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)

Parâmetros

wordUnits
RecognizedWordUnit[]

Uma matriz de unidades de palavra que contém a entrada da operação de reconhecimento.

compareOptions
CompareOptions

Uma combinação bit a bit dos valores de enumeração que descrevem o tipo de comparação a ser usada para a operação de reconhecimento emulada.

Exceções

O reconhecedor não tem nenhuma gramática de reconhecimento de fala carregada ou o reconhecedor tem uma operação de reconhecimento assíncrono que ainda não está completa.

wordUnits é null.

wordUnits contém um ou mais elementos null.

compareOptions contém o sinalizador IgnoreNonSpace, IgnoreSymbols ou StringSort.

Comentários

O reconhecedor de fala gera os SpeechDetectedeventos , SpeechHypothesized, SpeechRecognitionRejectede SpeechRecognized como se a operação de reconhecimento não fosse emulada. Quando o reconhecedor conclui a operação de reconhecimento assíncrono, ele aciona o EmulateRecognizeCompleted evento.

O reconhecedor usa compareOptions quando aplica regras gramaticais à frase de entrada. Os reconhecedores fornecidos com Vista e Windows 7 ignoram maiúsculas e minúsculas se o OrdinalIgnoreCase valor ou IgnoreCase estiver presente. Os reconhecedores sempre ignoram a largura do caractere e nunca ignoram o tipo Kana. Os reconhecedores também ignoram novas linhas e espaço em branco extra e tratam a pontuação como entrada literal. Para obter mais informações sobre a largura do caractere e o tipo Kana, consulte a CompareOptions enumeração .

Esse método armazena na tarefa que retorna todas as exceções de não uso que o equivalente síncrono do método pode gerar. Se uma exceção for armazenada na tarefa retornada, essa exceção será gerada quando a tarefa for aguardada. Exceções de uso, como ArgumentException, ainda são geradas de forma síncrona. Para as exceções armazenadas, consulte as exceções geradas por EmulateRecognize(RecognizedWordUnit[], CompareOptions).

Confira também

Aplica-se a

EmulateRecognizeAsync(String, CompareOptions)

Origem:
SpeechRecognitionEngine.cs
Origem:
SpeechRecognitionEngine.cs
Origem:
SpeechRecognitionEngine.cs

Emula a entrada de uma frase no reconhecedor de fala usando texto em vez de áudio para o reconhecimento de fala assíncrono e especifica como o reconhecedor trata a comparação Unicode entre a frase e as gramáticas do reconhecimento de fala carregado.

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)

Parâmetros

inputText
String

A frase de entrada da operação de reconhecimento.

compareOptions
CompareOptions

Uma combinação bit a bit dos valores de enumeração que descrevem o tipo de comparação a ser usada para a operação de reconhecimento emulada.

Exceções

O reconhecedor não tem nenhuma gramática de reconhecimento de fala carregada ou o reconhecedor tem uma operação de reconhecimento assíncrono que ainda não está completa.

inputText é null.

inputText é a cadeia de caracteres vazia ("").

compareOptions contém o sinalizador IgnoreNonSpace, IgnoreSymbols ou StringSort.

Comentários

O reconhecedor de fala gera os SpeechDetectedeventos , SpeechHypothesized, SpeechRecognitionRejectede SpeechRecognized como se a operação de reconhecimento não fosse emulada. Quando o reconhecedor conclui a operação de reconhecimento assíncrono, ele aciona o EmulateRecognizeCompleted evento.

O reconhecedor usa compareOptions quando aplica regras gramaticais à frase de entrada. Os reconhecedores fornecidos com Vista e Windows 7 ignoram maiúsculas e minúsculas se o OrdinalIgnoreCase valor ou IgnoreCase estiver presente. Os reconhecedores sempre ignoram a largura do caractere e nunca ignoram o tipo Kana. Os reconhecedores também ignoram novas linhas e espaço em branco extra e tratam a pontuação como entrada literal. Para obter mais informações sobre a largura do caractere e o tipo Kana, consulte a CompareOptions enumeração .

Esse método armazena na tarefa que retorna todas as exceções de não uso que o equivalente síncrono do método pode gerar. Se uma exceção for armazenada na tarefa retornada, essa exceção será gerada quando a tarefa for aguardada. Exceções de uso, como ArgumentException, ainda são geradas de forma síncrona. Para as exceções armazenadas, consulte as exceções geradas por EmulateRecognize(String, CompareOptions).

Confira também

Aplica-se a