Sdílet prostřednictvím


SpeechRecognizer.RequestRecognizerUpdate Metoda

Definice

Požaduje, aby sdílený rozpoznávatel pozastavil a aktualizoval svůj stav.

Přetížení

RequestRecognizerUpdate(Object, TimeSpan)

Požaduje, aby sdílený rozpoznávatel pozastavil a aktualizoval svůj stav a poskytoval posun a token uživatele pro přidruženou událost.

RequestRecognizerUpdate(Object)

Požaduje, aby sdílený rozpoznávatel pozastavil a aktualizoval svůj stav a poskytne token uživatele pro přidruženou událost.

RequestRecognizerUpdate()

Požaduje, aby sdílený rozpoznávatel pozastavil a aktualizoval svůj stav.

Příklady

Následující příklad ukazuje konzolovou aplikaci, která načítá a uvolní objekty Grammar . Aplikace pomocí RequestRecognizerUpdate metody požádá modul rozpoznávání řeči o pozastavení, 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. Vzhledem k tomu, že gramatiky jsou načteny a uvolněny, 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 SpeechRecognizer recognizer;  
    public static void Main(string[] args)  
    {  

      // Initialize an in-process speech recognition engine and configure its input.  
      recognizer = new SpeechRecognizer();  

      // 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);  

      // Check to see if recognizer is loaded, wait if it is not loaded.  
      if (recognizer.State != RecognizerState.Listening)  
      {  
        Thread.Sleep(5000);  

        // Put recognizer in listening state.  
        recognizer.EmulateRecognizeAsync("Start listening");  
      }  

      // Load the Farm grammar.  
      recognizer.LoadGrammar(farmAnimals);  
      Console.WriteLine("Grammar Farm is loaded");  

      // 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(5000);  

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

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

    public static void recognizer_RecognizerUpdateReached(object sender, RecognizerUpdateReachedEventArgs e)  
    {  
      // At the update, get the names and enabled status of the currently loaded grammars.  
      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("  Grammar {0} is loaded and is {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);  
    }  
  }  
}  

Poznámky

Tuto metodu použijte k synchronizaci změn do sdíleného rozpoznávání. Pokud například načtete 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 změnit stav rozpoznávacího nástroje mezi operacemi rozpoznávání.

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

  • Pokud rozpoznávatel nezpracovává vstup, rozpoznávatel událost okamžitě vygeneruje RecognizerUpdateReached .

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

  • Pokud rozpoznávací nástroj zpracovává vstup, který se skládá z ticha nebo šumu na pozadí, rozpoznávání dokončí 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ávatel dál shromažďuje vstupy a hodnota vlastnosti se AudioPosition může změnit.

Pokud chcete změnit, jestli sdílený rozpoznávací nástroj pozastavuje operace rozpoznávání, když aplikace zpracovává SpeechRecognized událost, použijte PauseRecognizerOnRecognition vlastnost .

RequestRecognizerUpdate(Object, TimeSpan)

Zdroj:
SpeechRecognizer.cs
Zdroj:
SpeechRecognizer.cs
Zdroj:
SpeechRecognizer.cs

Požaduje, aby sdílený rozpoznávatel pozastavil a aktualizoval svůj stav a poskytoval posun a token uživatele pro přidruženou událost.

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 proudu AudioPosition za účelem zpoždění požadavku.

Poznámky

Rozpoznávání neiniciuje žádost o aktualizaci rozpoznávání, dokud se hodnota rozpoznávače RecognizerAudioPosition nerovná aktuálnímu AudioPosition plus hodnotě parametru audioPositionAheadToRaiseUpdate .

Když rozpoznávatel vygeneruje RecognizerUpdateReached událost, UserToken vlastnost RecognizerUpdateReachedEventArgs obsahuje hodnotu parametru userToken .

Viz také

Platí pro

RequestRecognizerUpdate(Object)

Zdroj:
SpeechRecognizer.cs
Zdroj:
SpeechRecognizer.cs
Zdroj:
SpeechRecognizer.cs

Požaduje, aby sdílený rozpoznávatel pozastavil a 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ávatel vygeneruje 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:
SpeechRecognizer.cs
Zdroj:
SpeechRecognizer.cs
Zdroj:
SpeechRecognizer.cs

Požaduje, aby sdílený rozpoznávatel pozastavil a aktualizoval svůj stav.

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

Poznámky

Když rozpoznávatel vygeneruje 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