SpeechRecognitionEngine.EmulateRecognizeAsync Metod

Definition

Emulerar indata till taligenkänningen med hjälp av text i stället för ljud för asynkron taligenkänning.

Överlagringar

Name Description
EmulateRecognizeAsync(String)

Emulerar indata från en fras till taligenkänningen med hjälp av text i stället för ljud för asynkron taligenkänning.

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

Emulerar indata från specifika ord till taligenkänningen med hjälp av en matris med RecognizedWordUnit objekt i stället för ljud för asynkron taligenkänning och anger hur identifieraren hanterar Unicode-jämförelse mellan ord och inlästa grammatiker för taligenkänning.

EmulateRecognizeAsync(String, CompareOptions)

Emulerar indata från en fras till taligenkänningen med hjälp av text i stället för ljud för asynkron taligenkänning och anger hur identifieraren hanterar Unicode-jämförelse mellan frasen och den inlästa taligenkänningens grammatik.

Kommentarer

Dessa metoder kringgår systemets ljudindata och ger text till identifieraren som String objekt eller som en matris med RecognizedWordUnit objekt. Detta kan vara användbart när du testar eller felsöker ett program eller grammatik. Du kan till exempel använda emulering för att avgöra om ett ord finns i en grammatik och vilka semantik som returneras när ordet känns igen. SetInputToNull Använd metoden för att inaktivera ljudindata till taligenkänningsmotorn under emuleringsåtgärder.

Taligenkänningen genererar SpeechDetectedhändelserna , SpeechHypothesized, SpeechRecognitionRejectedoch SpeechRecognized som om igenkänningsåtgärden inte emuleras. När identifieraren slutför den asynkrona igenkänningsåtgärden EmulateRecognizeCompleted genereras händelsen. Identifieraren ignorerar nya linjer och extra tomt utrymme och behandlar skiljetecken som literalindata.

Note

Objektet RecognitionResult som genereras av taligenkänningen som svar på emulerade indata har värdet null för dess Audio egenskap.

Använd metoden för EmulateRecognize att emulera synkron igenkänning.

EmulateRecognizeAsync(String)

Källa:
SpeechRecognitionEngine.cs
Källa:
SpeechRecognitionEngine.cs
Källa:
SpeechRecognitionEngine.cs
Källa:
SpeechRecognitionEngine.cs

Emulerar indata från en fras till taligenkänningen med hjälp av text i stället för ljud för asynkron taligenkänning.

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

Parametrar

inputText
String

Indata för igenkänningsåtgärden.

Undantag

Identifieraren har inga grammatiker för taligenkänning inlästa, eller så har identifieraren en asynkron igenkänningsåtgärd som ännu inte har slutförts.

inputText är null.

inputText är den tomma strängen ("").

Exempel

Kodexemplet nedan är en del av ett konsolprogram som visar asynkrona emulerade indata, associerade igenkänningsresultat och associerade händelser som genereras av taligenkänningen. Exemplet genererar följande utdata.

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

Kommentarer

Taligenkänningen genererar SpeechDetectedhändelserna , SpeechHypothesized, SpeechRecognitionRejectedoch SpeechRecognized som om igenkänningsåtgärden inte emuleras. När identifieraren slutför den asynkrona igenkänningsåtgärden EmulateRecognizeCompleted genereras händelsen.

De identifierare som levereras med Vista och Windows 7 ignorera skiftläge och teckenbredd när grammatikregler tillämpas på indatafrasen. Mer information om den här typen av jämförelse finns i CompareOptions uppräkningsvärdena OrdinalIgnoreCase och IgnoreWidth. Igenkännarna ignorerar också nya linjer och extra tomt utrymme och behandlar skiljetecken som literalindata.

Den här metoden lagrar i aktiviteten som returnerar alla undantag som inte används som metodens synkrona motsvarighet kan utlösa. Om ett undantag lagras i den returnerade aktiviteten utlöses undantaget när aktiviteten väntar. Användningsfel, till exempel ArgumentException, genereras fortfarande synkront. De lagrade undantagen finns i undantagen som genereras av EmulateRecognize(String).

Se även

Gäller för

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

Källa:
SpeechRecognitionEngine.cs
Källa:
SpeechRecognitionEngine.cs
Källa:
SpeechRecognitionEngine.cs
Källa:
SpeechRecognitionEngine.cs

Emulerar indata från specifika ord till taligenkänningen med hjälp av en matris med RecognizedWordUnit objekt i stället för ljud för asynkron taligenkänning och anger hur identifieraren hanterar Unicode-jämförelse mellan ord och inlästa grammatiker för taligenkänning.

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)

Parametrar

wordUnits
RecognizedWordUnit[]

En matris med ordenheter som innehåller indata för igenkänningsåtgärden.

compareOptions
CompareOptions

En bitvis kombination av uppräkningsvärdena som beskriver vilken typ av jämförelse som ska användas för den emulerade igenkänningsåtgärden.

Undantag

Identifieraren har inga grammatiker för taligenkänning inlästa, eller så har identifieraren en asynkron igenkänningsåtgärd som ännu inte har slutförts.

wordUnits är null.

wordUnits innehåller ett eller flera null element.

compareOptions innehåller IgnoreNonSpaceflaggan , IgnoreSymbolseller StringSort .

Kommentarer

Taligenkänningen genererar SpeechDetectedhändelserna , SpeechHypothesized, SpeechRecognitionRejectedoch SpeechRecognized som om igenkänningsåtgärden inte emuleras. När identifieraren slutför den asynkrona igenkänningsåtgärden EmulateRecognizeCompleted genereras händelsen.

Identifieraren använder compareOptions när den tillämpar grammatikregler på indatafrasen. De identifierare som levereras med Vista och Windows 7 ignorera fall om värdet OrdinalIgnoreCase eller IgnoreCase finns. Identifierarna ignorerar alltid teckenbredden och ignorerar aldrig Kana-typen. Igenkännarna ignorerar också nya linjer och extra tomt utrymme och behandlar skiljetecken som literalindata. Mer information om teckenbredd och Kana-typ finns i CompareOptions uppräkningen.

Den här metoden lagrar i aktiviteten som returnerar alla undantag som inte används som metodens synkrona motsvarighet kan utlösa. Om ett undantag lagras i den returnerade aktiviteten utlöses undantaget när aktiviteten väntar. Användningsfel, till exempel ArgumentException, genereras fortfarande synkront. De lagrade undantagen finns i undantagen som genereras av EmulateRecognize(RecognizedWordUnit[], CompareOptions).

Se även

Gäller för

EmulateRecognizeAsync(String, CompareOptions)

Källa:
SpeechRecognitionEngine.cs
Källa:
SpeechRecognitionEngine.cs
Källa:
SpeechRecognitionEngine.cs
Källa:
SpeechRecognitionEngine.cs

Emulerar indata från en fras till taligenkänningen med hjälp av text i stället för ljud för asynkron taligenkänning och anger hur identifieraren hanterar Unicode-jämförelse mellan frasen och den inlästa taligenkänningens grammatik.

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)

Parametrar

inputText
String

Indatafrasen för igenkänningsåtgärden.

compareOptions
CompareOptions

En bitvis kombination av uppräkningsvärdena som beskriver vilken typ av jämförelse som ska användas för den emulerade igenkänningsåtgärden.

Undantag

Identifieraren har inga grammatiker för taligenkänning inlästa, eller så har identifieraren en asynkron igenkänningsåtgärd som ännu inte har slutförts.

inputText är null.

inputText är den tomma strängen ("").

compareOptions innehåller IgnoreNonSpaceflaggan , IgnoreSymbolseller StringSort .

Kommentarer

Taligenkänningen genererar SpeechDetectedhändelserna , SpeechHypothesized, SpeechRecognitionRejectedoch SpeechRecognized som om igenkänningsåtgärden inte emuleras. När identifieraren slutför den asynkrona igenkänningsåtgärden EmulateRecognizeCompleted genereras händelsen.

Identifieraren använder compareOptions när den tillämpar grammatikregler på indatafrasen. De identifierare som levereras med Vista och Windows 7 ignorera fall om värdet OrdinalIgnoreCase eller IgnoreCase finns. Identifierarna ignorerar alltid teckenbredden och ignorerar aldrig Kana-typen. Igenkännarna ignorerar också nya linjer och extra tomt utrymme och behandlar skiljetecken som literalindata. Mer information om teckenbredd och Kana-typ finns i CompareOptions uppräkningen.

Den här metoden lagrar i aktiviteten som returnerar alla undantag som inte används som metodens synkrona motsvarighet kan utlösa. Om ett undantag lagras i den returnerade aktiviteten utlöses undantaget när aktiviteten väntar. Användningsfel, till exempel ArgumentException, genereras fortfarande synkront. De lagrade undantagen finns i undantagen som genereras av EmulateRecognize(String, CompareOptions).

Se även

Gäller för