SpeechRecognitionEngine.RequestRecognizerUpdate Metoda

Definice

Požaduje, aby se služba rozpoznávání pozastavila a aktualizovala svůj stav.

Přetížení

RequestRecognizerUpdate(Object, TimeSpan)

Požaduje, aby se služba rozpoznávání pozastavila, aby aktualizovala svůj stav a aby pro přidruženou událost poskytovala posun a token uživatele.

RequestRecognizerUpdate(Object)

Požádá o pozastavení rozpoznávání, aby aktualizoval svůj stav a poskytne token uživatele pro přidruženou událost.

RequestRecognizerUpdate()

Požaduje, aby se služba rozpoznávání pozastavila a aktualizovala svůj stav.

Poznámky

Tuto metodu použijte k synchronizaci změn do nástroje pro rozpoznávání. Pokud například načítáte nebo uvolníte gramatiku rozpoznávání řeči, zatímco rozpoznávání zpracovává vstup, použijte tuto metodu RecognizerUpdateReached a událost k synchronizaci chování aplikace se stavem rozpoznávání.

Při volání této metody rozpoznávání pozastaví nebo dokončí asynchronní operace a vygeneruje RecognizerUpdateReached událost. Obslužná rutina RecognizerUpdateReached události pak může upravit stav rozpoznávání mezi operacemi rozpoznávání. Při zpracování RecognizerUpdateReached událostí se rozpoznávání pozastaví, dokud se obslužná rutina události nevrátí.

Poznámka

Pokud se vstup do rozpoznávání změní předtím, než rozpoznávání vyvolá RecognizerUpdateReached událost, požadavek se zahodí.

Při zavolání této metody:

  • Pokud rozpoznávání nezpracovává vstup, nástroj pro rozpoznávání okamžitě vygeneruje RecognizerUpdateReached událost.

  • Pokud rozpoznávání zpracovává vstup, který se skládá z ticha nebo šumu na pozadí, pozastaví operaci rozpoznávání a vygeneruje RecognizerUpdateReached událost.

  • Pokud rozpoznávání zpracovává vstup, který se skládá z ticha nebo šumu na pozadí, dokončí rozpoznávání operaci rozpoznávání a pak vygeneruje RecognizerUpdateReached událost.

Zatímco rozpoznávání zpracovává RecognizerUpdateReached událost:

  • Rozpoznávání nezpracovává vstup a hodnota RecognizerAudioPosition vlastnosti zůstává stejná.

  • Rozpoznávání dál shromažďuje vstupy a hodnota vlastnosti se AudioPosition může změnit.

RequestRecognizerUpdate(Object, TimeSpan)

Zdroj:
SpeechRecognitionEngine.cs
Zdroj:
SpeechRecognitionEngine.cs
Zdroj:
SpeechRecognitionEngine.cs

Požaduje, aby se služba rozpoznávání pozastavila, aby aktualizovala svůj stav a aby pro přidruženou událost poskytovala posun a token uživatele.

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)

Parametry

userToken
Object

Uživatelem definované informace, které obsahují informace pro operaci.

audioPositionAheadToRaiseUpdate
TimeSpan

Posun od aktuálního AudioPosition stavu, který zpozdí požadavek.

Poznámky

Služba rozpoznávání neiniciuje žádost o aktualizaci nástroje pro rozpoznávání, dokud se RecognizerAudioPosition hodnota rozpoznávání nerovná aktuálnímu AudioPosition plus audioPositionAheadToRaiseUpdate.

Když rozpoznávání generuje RecognizerUpdateReached událost, UserToken vlastnost RecognizerUpdateReachedEventArgs obsahuje hodnotu parametru userToken .

Viz také

Platí pro

RequestRecognizerUpdate(Object)

Zdroj:
SpeechRecognitionEngine.cs
Zdroj:
SpeechRecognitionEngine.cs
Zdroj:
SpeechRecognitionEngine.cs

Požádá o pozastavení rozpoznávání, aby aktualizoval svůj stav a poskytne token uživatele pro přidruženou událost.

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

Parametry

userToken
Object

Uživatelem definované informace, které obsahují informace pro operaci.

Poznámky

Když rozpoznávání generuje RecognizerUpdateReached událost, UserToken vlastnost RecognizerUpdateReachedEventArgs obsahuje hodnotu parametru userToken .

Pokud chcete určit posun pozice zvuku, použijte metodu RequestRecognizerUpdate .

Viz také

Platí pro

RequestRecognizerUpdate()

Zdroj:
SpeechRecognitionEngine.cs
Zdroj:
SpeechRecognitionEngine.cs
Zdroj:
SpeechRecognitionEngine.cs

Požaduje, aby se služba rozpoznávání pozastavila a aktualizovala svůj stav.

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

Příklady

Následující příklad ukazuje konzolovou aplikaci, která načítá a uvolní objekty Grammar . Aplikace používá metodu RequestRecognizerUpdate k vyžádání pozastavení modulu rozpoznávání řeči, aby mohl obdržet aktualizaci. Aplikace pak objekt načte nebo uvolní Grammar .

Při každé aktualizaci obslužná rutina události RecognizerUpdateReached zapíše název a stav aktuálně načtených Grammar objektů do konzoly. Při načítání a vyložení gramatiky aplikace nejprve rozpozná názvy hospodářských zvířat, pak názvy hospodářských zvířat a názvy ovoce, pak pouze názvy ovoce.

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

Poznámky

Když rozpoznávání generuje RecognizerUpdateReached událost, UserToken vlastnost objektu RecognizerUpdateReachedEventArgs je null.

Pokud chcete poskytnout token uživatele, použijte metodu RequestRecognizerUpdate nebo RequestRecognizerUpdate . Pokud chcete určit posun pozice zvuku, použijte metodu RequestRecognizerUpdate .

Viz také

Platí pro