SpeechRecognizer.RequestRecognizerUpdate Metoda

Definicja

Żąda wstrzymania współużytkowanego rozpoznawania i zaktualizowania jego stanu.

Przeciążenia

RequestRecognizerUpdate(Object, TimeSpan)

Żąda, aby współużytkowany aparat rozpoznawania wstrzymał i zaktualizował jego stan oraz zapewnia przesunięcie i token użytkownika dla skojarzonego zdarzenia.

RequestRecognizerUpdate(Object)

Żąda wstrzymania i zaktualizowania stanu współużytkowanego rozpoznawania oraz udostępnienia tokenu użytkownika dla skojarzonego zdarzenia.

RequestRecognizerUpdate()

Żąda wstrzymania współużytkowanego rozpoznawania i zaktualizowania jego stanu.

Przykłady

W poniższym przykładzie pokazano aplikację konsolową, która ładuje Grammar i zwalnia obiekty. Aplikacja używa RequestRecognizerUpdate metody , aby zażądać wstrzymania aparatu rozpoznawania mowy, aby mogła otrzymać aktualizację. Następnie aplikacja ładuje Grammar lub zwalnia obiekt.

W każdej aktualizacji program obsługi zdarzeń RecognizerUpdateReached zapisuje nazwę i stan aktualnie załadowanych Grammar obiektów do konsoli. Ponieważ gramatyki są ładowane i zwalniane, aplikacja najpierw rozpoznaje nazwy zwierząt gospodarskich, a następnie nazwy zwierząt gospodarskich i nazw owoców, a następnie tylko nazwy owoców.

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

Uwagi

Użyj tej metody, aby zsynchronizować zmiany z usługą rozpoznawania współużytkowanego. Jeśli na przykład załadujesz lub zwolnisz gramatykę rozpoznawania mowy podczas przetwarzania danych wejściowych przez rozpoznawanie mowy, użyj tej metody i RecognizerUpdateReached zdarzenia, aby zsynchronizować zachowanie aplikacji ze stanem aparatu rozpoznawania.

Po wywołaniu tej metody funkcja rozpoznawania wstrzymuje lub kończy operacje asynchroniczne i generuje RecognizerUpdateReached zdarzenie. Program RecognizerUpdateReached obsługi zdarzeń może następnie zmodyfikować stan aparatu rozpoznawania między operacjami rozpoznawania.

Po wywołaniu tej metody:

  • Jeśli rozpoznawanie nie przetwarza danych wejściowych, rozpoznawanie RecognizerUpdateReached natychmiast generuje zdarzenie.

  • Jeśli rozpoznawanie przetwarza dane wejściowe składające się z ciszy lub szumu w tle, aparat rozpoznawania wstrzymuje RecognizerUpdateReached operację rozpoznawania i generuje zdarzenie.

  • Jeśli rozpoznawanie przetwarza dane wejściowe, które nie składają się z ciszy lub szumu w tle, rozpoznawanie kończy operację rozpoznawania, a następnie generuje RecognizerUpdateReached zdarzenie.

Rozpoznawanie obsługuje RecognizerUpdateReached zdarzenie:

  • Rozpoznawanie nie przetwarza danych wejściowych, a wartość RecognizerAudioPosition właściwości pozostaje taka sama.

  • Rozpoznawanie kontynuuje zbieranie danych wejściowych, a wartość AudioPosition właściwości może ulec zmianie.

Aby zmienić, czy współużytkowany aparat rozpoznawania wstrzymuje operacje rozpoznawania, gdy aplikacja obsługuje SpeechRecognized zdarzenie, użyj PauseRecognizerOnRecognition właściwości .

RequestRecognizerUpdate(Object, TimeSpan)

Źródło:
SpeechRecognizer.cs
Źródło:
SpeechRecognizer.cs
Źródło:
SpeechRecognizer.cs

Żąda, aby współużytkowany aparat rozpoznawania wstrzymał i zaktualizował jego stan oraz zapewnia przesunięcie i token użytkownika dla skojarzonego zdarzenia.

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

Informacje zdefiniowane przez użytkownika, które zawierają informacje dotyczące operacji.

audioPositionAheadToRaiseUpdate
TimeSpan

Przesunięcie z bieżącego AudioPosition w celu opóźnienia żądania.

Uwagi

Rozpoznawanie nie inicjuje żądania aktualizacji rozpoznawania, dopóki aparat rozpoznawania nie RecognizerAudioPosition będzie równy bieżącemu AudioPosition plus wartości parametru audioPositionAheadToRaiseUpdate .

Gdy rozpoznawanie RecognizerUpdateReached generuje zdarzenie, UserToken właściwość parametru RecognizerUpdateReachedEventArgs zawiera wartość parametru userToken .

Zobacz też

Dotyczy

RequestRecognizerUpdate(Object)

Źródło:
SpeechRecognizer.cs
Źródło:
SpeechRecognizer.cs
Źródło:
SpeechRecognizer.cs

Żąda wstrzymania i zaktualizowania stanu współużytkowanego rozpoznawania oraz udostępnienia tokenu użytkownika dla skojarzonego zdarzenia.

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

Informacje zdefiniowane przez użytkownika, które zawierają informacje dotyczące operacji.

Uwagi

Gdy rozpoznawanie RecognizerUpdateReached generuje zdarzenie, UserToken właściwość parametru RecognizerUpdateReachedEventArgs zawiera wartość parametru userToken .

Aby określić przesunięcie położenia dźwięku RequestRecognizerUpdate , użyj metody .

Zobacz też

Dotyczy

RequestRecognizerUpdate()

Źródło:
SpeechRecognizer.cs
Źródło:
SpeechRecognizer.cs
Źródło:
SpeechRecognizer.cs

Żąda wstrzymania współużytkowanego rozpoznawania i zaktualizowania jego stanu.

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

Uwagi

Gdy aparat rozpoznawania generuje RecognizerUpdateReached zdarzenie, UserToken właściwość ma RecognizerUpdateReachedEventArgsnullwartość .

Aby podać token użytkownika, użyj RequestRecognizerUpdate metody lub RequestRecognizerUpdate . Aby określić przesunięcie położenia dźwięku RequestRecognizerUpdate , użyj metody .

Zobacz też

Dotyczy