Condividi tramite


SpeechRecognitionEngine.EmulateRecognizeAsync Metodo

Definizione

Emula l'input al riconoscimento vocale, utilizzando il testo anziché l'audio per il riconoscimento vocale asincrono.

Overload

EmulateRecognizeAsync(String)

Emula l'input di una frase al riconoscimento vocale, utilizzando il testo anziché l'audio per il riconoscimento vocale asincrono.

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

Emula l'input di parole specifiche al riconoscimento vocale, utilizzando una matrice di oggetti RecognizedWordUnit anziché l'audio per il riconoscimento vocale asincrono, e specifica come il riconoscimento gestisce il confronto Unicode tra le parole e le grammatiche di riconoscimento vocale caricate.

EmulateRecognizeAsync(String, CompareOptions)

Emula l'input di una frase al riconoscimento vocale, utilizzando il testo anziché l'audio per il riconoscimento vocale asincrono, e specifica come il riconoscimento gestisce il confronto Unicode tra la frase e le grammatiche di riconoscimento vocale caricate.

Commenti

Questi metodi ignorano l'input audio del sistema e forniscono testo al riconoscimento come String oggetti o come matrice di RecognizedWordUnit oggetti. Questo può essere utile quando si esegue il test o il debug di un'applicazione o una grammatica. Ad esempio, è possibile usare l'emulazione per determinare se una parola è in una grammatica e quali semantiche vengono restituite quando la parola viene riconosciuta. Usare il metodo per disabilitare l'input SetInputToNull audio al motore di riconoscimento vocale durante le operazioni di emulazione.

Il riconoscimento vocale genera gli SpeechDetectedeventi , , SpeechRecognitionRejectedSpeechHypothesizede SpeechRecognized come se l'operazione di riconoscimento non sia emulata. Quando il riconoscimento completa l'operazione di riconoscimento asincrona, genera l'evento EmulateRecognizeCompleted . Il riconoscimento ignora nuove righe e spazi vuoti aggiuntivi e tratta la punteggiatura come input letterale.

Nota

L'oggetto RecognitionResult generato dal riconoscimento vocale in risposta all'input emulato ha un valore di null per la relativa Audio proprietà.

Per emulare il riconoscimento sincrono, usare il EmulateRecognize metodo .

EmulateRecognizeAsync(String)

Origine:
SpeechRecognitionEngine.cs
Origine:
SpeechRecognitionEngine.cs
Origine:
SpeechRecognitionEngine.cs

Emula l'input di una frase al riconoscimento vocale, utilizzando il testo anziché l'audio per il riconoscimento vocale asincrono.

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

Parametri

inputText
String

Input per l'operazione di riconoscimento.

Eccezioni

Nel riconoscimento non sono caricate grammatiche di riconoscimento vocale, oppure ci sono operazioni di riconoscimento asincrone non ancora complete.

inputText è null.

inputText è la stringa vuota ("").

Esempio

L'esempio di codice seguente fa parte di un'applicazione console che illustra l'input emulato asincrono, i risultati di riconoscimento associati e gli eventi associati generati dal riconoscimento vocale. L'esempio genera l'output seguente.

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

Commenti

Il riconoscimento vocale genera gli SpeechDetectedeventi , , SpeechRecognitionRejectedSpeechHypothesizede SpeechRecognized come se l'operazione di riconoscimento non sia emulata. Quando il riconoscimento completa l'operazione di riconoscimento asincrona, genera l'evento EmulateRecognizeCompleted .

I riconoscitori che vengono forniti con Vista e Windows 7 ignorano maiuscole e minuscole e larghezza dei caratteri durante l'applicazione delle regole di grammatica alla frase di input. Per altre informazioni su questo tipo di confronto, vedere i CompareOptions valori OrdinalIgnoreCase di enumerazione e IgnoreWidth. I riconoscimento ignorano anche nuove righe e spazi vuoti aggiuntivi e considerano la punteggiatura come input letterale.

Questo metodo archivia nell'attività che restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da EmulateRecognize(String).

Vedi anche

Si applica a

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

Origine:
SpeechRecognitionEngine.cs
Origine:
SpeechRecognitionEngine.cs
Origine:
SpeechRecognitionEngine.cs

Emula l'input di parole specifiche al riconoscimento vocale, utilizzando una matrice di oggetti RecognizedWordUnit anziché l'audio per il riconoscimento vocale asincrono, e specifica come il riconoscimento gestisce il confronto Unicode tra le parole e le grammatiche di riconoscimento vocale caricate.

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)

Parametri

wordUnits
RecognizedWordUnit[]

Matrice di unità di parole che contiene l'input per l'operazione di riconoscimento.

compareOptions
CompareOptions

Combinazione bit per bit dei valori di enumerazione che descrivono il tipo di confronto da utilizzare per l'operazione di riconoscimento emulato.

Eccezioni

Nel riconoscimento non sono caricate grammatiche di riconoscimento vocale, oppure ci sono operazioni di riconoscimento asincrone non ancora complete.

wordUnits è null.

wordUnits contiene uno o più elementi null.

compareOptions contiene il flag IgnoreNonSpace, IgnoreSymbols o StringSort.

Commenti

Il riconoscimento vocale genera gli SpeechDetectedeventi , , SpeechRecognitionRejectedSpeechHypothesizede SpeechRecognized come se l'operazione di riconoscimento non sia emulata. Quando il riconoscimento completa l'operazione di riconoscimento asincrona, genera l'evento EmulateRecognizeCompleted .

Il riconoscimento usa compareOptions quando applica regole di grammatica alla frase di input. I riconoscitori che vengono forniti con Vista e Windows 7 ignorano il caso se il OrdinalIgnoreCase valore o IgnoreCase è presente. I riconoscimento ignorano sempre la larghezza del carattere e non ignorano mai il tipo Kana. I riconoscimento ignorano anche nuove righe e spazi vuoti aggiuntivi e considerano la punteggiatura come input letterale. Per altre informazioni sulla larghezza dei caratteri e sul tipo Kana, vedere l'enumerazione CompareOptions .

Questo metodo archivia nell'attività che restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da EmulateRecognize(RecognizedWordUnit[], CompareOptions).

Vedi anche

Si applica a

EmulateRecognizeAsync(String, CompareOptions)

Origine:
SpeechRecognitionEngine.cs
Origine:
SpeechRecognitionEngine.cs
Origine:
SpeechRecognitionEngine.cs

Emula l'input di una frase al riconoscimento vocale, utilizzando il testo anziché l'audio per il riconoscimento vocale asincrono, e specifica come il riconoscimento gestisce il confronto Unicode tra la frase e le grammatiche di riconoscimento vocale caricate.

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)

Parametri

inputText
String

Frase di Input per l'operazione di riconoscimento.

compareOptions
CompareOptions

Combinazione bit per bit dei valori di enumerazione che descrivono il tipo di confronto da utilizzare per l'operazione di riconoscimento emulato.

Eccezioni

Nel riconoscimento non sono caricate grammatiche di riconoscimento vocale, oppure ci sono operazioni di riconoscimento asincrone non ancora complete.

inputText è null.

inputText è la stringa vuota ("").

compareOptions contiene il flag IgnoreNonSpace, IgnoreSymbols o StringSort.

Commenti

Il riconoscimento vocale genera gli SpeechDetectedeventi , , SpeechRecognitionRejectedSpeechHypothesizede SpeechRecognized come se l'operazione di riconoscimento non sia emulata. Quando il riconoscimento completa l'operazione di riconoscimento asincrona, genera l'evento EmulateRecognizeCompleted .

Il riconoscimento usa compareOptions quando applica regole di grammatica alla frase di input. I riconoscitori che vengono forniti con Vista e Windows 7 ignorano il caso se il OrdinalIgnoreCase valore o IgnoreCase è presente. I riconoscimento ignorano sempre la larghezza del carattere e non ignorano mai il tipo Kana. I riconoscimento ignorano anche nuove righe e spazi vuoti aggiuntivi e considerano la punteggiatura come input letterale. Per altre informazioni sulla larghezza dei caratteri e sul tipo Kana, vedere l'enumerazione CompareOptions .

Questo metodo archivia nell'attività che restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da EmulateRecognize(String, CompareOptions).

Vedi anche

Si applica a