SpeechRecognitionEngine.RequestRecognizerUpdate Metod

Definition

Begär att identifieraren pausar för att uppdatera sitt tillstånd.

Överlagringar

Name Description
RequestRecognizerUpdate(Object, TimeSpan)

Begär att identifieraren pausar för att uppdatera sitt tillstånd och tillhandahåller en förskjutning och en användartoken för den associerade händelsen.

RequestRecognizerUpdate(Object)

Begär att identifieraren pausar för att uppdatera sitt tillstånd och tillhandahåller en användartoken för den associerade händelsen.

RequestRecognizerUpdate()

Begär att identifieraren pausar för att uppdatera sitt tillstånd.

Kommentarer

Använd den här metoden för att synkronisera ändringar i identifieraren. Om du till exempel läser in eller tar bort en taligenkännings grammatik medan identifieraren bearbetar indata använder du den RecognizerUpdateReached här metoden och händelsen för att synkronisera programbeteendet med identifierarens tillstånd.

När den här metoden anropas pausar eller slutför identifieraren asynkrona åtgärder och genererar en RecognizerUpdateReached händelse. En RecognizerUpdateReached händelsehanterare kan sedan ändra tillståndet för identifieraren mellan igenkänningsåtgärderna. Vid hantering av RecognizerUpdateReached händelser pausar identifieraren tills händelsehanteraren returnerar.

Note

Om indata till identifieraren ändras innan identifieraren RecognizerUpdateReached genererar händelsen ignoreras begäran.

När den här metoden anropas:

  • Om identifieraren inte bearbetar indata genererar RecognizerUpdateReached identifieraren omedelbart händelsen.

  • Om identifieraren bearbetar indata som består av tystnad eller bakgrundsbrus pausar identifieraren igenkänningsåtgärden och genererar RecognizerUpdateReached händelsen.

  • Om identifieraren bearbetar indata som inte består av tystnad eller bakgrundsbrus slutför identifieraren igenkänningsåtgärden och genererar RecognizerUpdateReached sedan händelsen.

När identifieraren hanterar RecognizerUpdateReached händelsen:

  • Identifieraren bearbetar inte indata och värdet för RecognizerAudioPosition egenskapen förblir detsamma.

  • Identifieraren fortsätter att samla in indata och värdet för AudioPosition egenskapen kan ändras.

RequestRecognizerUpdate(Object, TimeSpan)

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

Begär att identifieraren pausar för att uppdatera sitt tillstånd och tillhandahåller en förskjutning och en användartoken för den associerade händelsen.

public:
 void RequestRecognizerUpdate(System::Object ^ userToken, TimeSpan audioPositionAheadToRaiseUpdate);
public void RequestRecognizerUpdate(object userToken, TimeSpan audioPositionAheadToRaiseUpdate);
member this.RequestRecognizerUpdate : obj * TimeSpan -> unit
Public Sub RequestRecognizerUpdate (userToken As Object, audioPositionAheadToRaiseUpdate As TimeSpan)

Parametrar

userToken
Object

Användardefinierad information som innehåller information för åtgärden.

audioPositionAheadToRaiseUpdate
TimeSpan

Förskjutningen från aktuell AudioPosition för att fördröja begäran.

Kommentarer

Identifieraren initierar inte begäran om uppdatering av identifieraren förrän identifieraren är RecognizerAudioPosition lika med det aktuella AudioPosition plustecknet audioPositionAheadToRaiseUpdate.

När identifieraren genererar RecognizerUpdateReached händelsen innehåller egenskapen UserToken för parametern värdet RecognizerUpdateReachedEventArgsuserToken.

Se även

Gäller för

RequestRecognizerUpdate(Object)

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

Begär att identifieraren pausar för att uppdatera sitt tillstånd och tillhandahåller en användartoken för den associerade händelsen.

public:
 void RequestRecognizerUpdate(System::Object ^ userToken);
public void RequestRecognizerUpdate(object userToken);
member this.RequestRecognizerUpdate : obj -> unit
Public Sub RequestRecognizerUpdate (userToken As Object)

Parametrar

userToken
Object

Användardefinierad information som innehåller information för åtgärden.

Kommentarer

När identifieraren genererar RecognizerUpdateReached händelsen innehåller egenskapen UserToken för parametern värdet RecognizerUpdateReachedEventArgsuserToken.

Om du vill ange en ljudpositionsförskjutning använder du RequestRecognizerUpdate metoden .

Se även

Gäller för

RequestRecognizerUpdate()

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

Begär att identifieraren pausar för att uppdatera sitt tillstånd.

public:
 void RequestRecognizerUpdate();
public void RequestRecognizerUpdate();
member this.RequestRecognizerUpdate : unit -> unit
Public Sub RequestRecognizerUpdate ()

Exempel

I följande exempel visas ett konsolprogram som läser in och tar bort Grammar objekt. Programmet använder RequestRecognizerUpdate metoden för att begära att taligenkänningsmotorn pausas så att den kan ta emot en uppdatering. Programmet läser sedan in eller tar bort ett Grammar objekt.

Vid varje uppdatering skriver en händelsehanterare namn och status för RecognizerUpdateReached de objekt som för närvarande är inlästa Grammar till konsolen. När grammatiker läses in och lossas känner programmet först igen namnen på husdjur, sedan namnen på husdjur och namnen på frukter, sedan bara namnen på frukter.

using System;
using System.Speech.Recognition;
using System.Collections.Generic;
using System.Threading;

namespace SampleRecognition
{
  class Program
  {
    private static SpeechRecognitionEngine recognizer;
    public static void Main(string[] args)
    {

      // Initialize an in-process speech recognition engine and configure its input.
      using (recognizer = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US")))
      {
        recognizer.SetInputToDefaultAudioDevice();

        // Create the first grammar - Farm.
        Choices animals = new Choices(new string[] { "cow", "pig", "goat" });
        GrammarBuilder farm = new GrammarBuilder(animals);
        Grammar farmAnimals = new Grammar(farm);
        farmAnimals.Name = "Farm";

        // Create the second grammar - Fruit.
        Choices fruit = new Choices(new string[] { "apples", "peaches", "oranges" });
        GrammarBuilder favorite = new GrammarBuilder(fruit);
        Grammar favoriteFruit = new Grammar(favorite);
        favoriteFruit.Name = "Fruit";

        // Attach event handlers.
        recognizer.SpeechRecognized +=
          new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
        recognizer.RecognizerUpdateReached +=
          new EventHandler<RecognizerUpdateReachedEventArgs>(recognizer_RecognizerUpdateReached);
        recognizer.SpeechRecognitionRejected +=
          new EventHandler<SpeechRecognitionRejectedEventArgs>(recognizer_SpeechRecognitionRejected);

        // Load the Farm grammar.
        recognizer.LoadGrammar(farmAnimals);

        // Start asynchronous, continuous recognition.
        recognizer.RecognizeAsync(RecognizeMode.Multiple);
        Console.WriteLine("Starting asynchronous, continuous recognition");
        Console.WriteLine("  Farm grammar is loaded and enabled.");

        // Pause to recognize farm animals.
        Thread.Sleep(7000);
        Console.WriteLine();

        // Request an update and load the Fruit grammar.
        recognizer.RequestRecognizerUpdate();
        recognizer.LoadGrammarAsync(favoriteFruit);
        Thread.Sleep(7000);

        // Request an update and unload the Farm grammar.
        recognizer.RequestRecognizerUpdate();
        recognizer.UnloadGrammar(farmAnimals);
        Thread.Sleep(7000);
      }

      // Keep the console window open.
      Console.WriteLine();
      Console.WriteLine("Press any key to exit...");
      Console.ReadKey();
    }

    // At the update, get the names and enabled status of the currently loaded grammars.
    public static void recognizer_RecognizerUpdateReached(
      object sender, RecognizerUpdateReachedEventArgs e)
    {
      Console.WriteLine();
      Console.WriteLine("Update reached:");
      Thread.Sleep(1000);

      string qualifier;
      List<Grammar> grammars = new List<Grammar>(recognizer.Grammars);
      foreach (Grammar g in grammars)
      {
        qualifier = (g.Enabled) ? "enabled" : "disabled";
        Console.WriteLine("  {0} grammar is loaded and {1}.",
        g.Name, qualifier);
      }
    }

    // Write the text of the recognized phrase to the console.
    static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
      Console.WriteLine("    Speech recognized: " + e.Result.Text);
    }

    // Write a message to the console when recognition fails.
    static void recognizer_SpeechRecognitionRejected(object sender, SpeechRecognitionRejectedEventArgs e)
    {
      Console.WriteLine("    Recognition attempt failed");
    }
  }
}

Kommentarer

När identifieraren genererar RecognizerUpdateReached händelsen UserToken är RecognizerUpdateReachedEventArgsegenskapen för null .

Om du vill ange en användartoken använder du RequestRecognizerUpdate metoden eller RequestRecognizerUpdate . Om du vill ange en ljudpositionsförskjutning använder du RequestRecognizerUpdate metoden .

Se även

Gäller för