SpeechRecognitionEngine.RequestRecognizerUpdate Methode

Definition

Fordert an, dass die Erkennung anhält, um den Zustand zu aktualisieren.

Überlädt

RequestRecognizerUpdate(Object, TimeSpan)

Fordert an, dass die Erkennung anhält, um den Zustand zu aktualisieren und stellt ein Offset für das zugeordnete Ereignis bereit.

RequestRecognizerUpdate(Object)

Fordert an, dass die Erkennung anhält, um den Zustand zu aktualisieren und stellt ein Benutzertoken für das zugeordnete Ereignis bereit.

RequestRecognizerUpdate()

Fordert an, dass die Erkennung anhält, um den Zustand zu aktualisieren.

Hinweise

Verwenden Sie diese Methode, um Änderungen mit der Erkennung zu synchronisieren. Wenn Sie beispielsweise eine Spracherkennungsgrammatik laden oder entladen, während die Erkennung Eingabe verarbeitet, verwenden Sie diese Methode und das RecognizerUpdateReached Ereignis, um Ihr Anwendungsverhalten mit dem Status der Erkennung zu synchronisieren.

Wenn diese Methode aufgerufen wird, hält die Erkennung asynchrone Vorgänge an oder schließt sie ab und generiert ein RecognizerUpdateReached Ereignis. Ein RecognizerUpdateReached Ereignishandler kann dann den Status der Erkennung zwischen Erkennungsvorgängen ändern. Bei der Behandlung von RecognizerUpdateReached Ereignissen wird die Erkennung angehalten, bis der Ereignishandler zurückgegeben wird.

Hinweis

Wenn die Eingabe für die Erkennung geändert wird, bevor die Erkennung das RecognizerUpdateReached Ereignis auslöst, wird die Anforderung verworfen.

Wenn diese Methode aufgerufen wird:

  • Wenn die Erkennung keine Eingabe verarbeitet, generiert die Erkennung sofort das RecognizerUpdateReached Ereignis.

  • Wenn die Erkennung Eingaben verarbeitet, die aus Stille oder Hintergrundgeräuschen bestehen, hält die Erkennung den Erkennungsvorgang an und generiert das RecognizerUpdateReached Ereignis.

  • Wenn die Erkennung Eingaben verarbeitet, die nicht aus Stille oder Hintergrundgeräuschen bestehen, schließt die Erkennung den Erkennungsvorgang ab und generiert dann das RecognizerUpdateReached Ereignis.

Während die Erkennung das RecognizerUpdateReached Ereignis behandelt:

  • Die Erkennung verarbeitet keine Eingabe, und der Wert der RecognizerAudioPosition Eigenschaft bleibt gleich.

  • Die Erkennung sammelt weiterhin Eingaben, und der Wert der AudioPosition Eigenschaft kann sich ändern.

RequestRecognizerUpdate(Object, TimeSpan)

Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs

Fordert an, dass die Erkennung anhält, um den Zustand zu aktualisieren und stellt ein Offset für das zugeordnete Ereignis bereit.

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)

Parameter

userToken
Object

Benutzerdefinierte Informationen, die Informationen für den Vorgang enthalten.

audioPositionAheadToRaiseUpdate
TimeSpan

Der Offset von der aktuellen AudioPosition, um die Anforderung zu verzögern.

Hinweise

Die Erkennung initiiert die Anforderung zur Aktualisierung der Erkennung erst, wenn die der Erkennung RecognizerAudioPosition gleich dem aktuellen AudioPosition Pluspunkt audioPositionAheadToRaiseUpdateist.

Wenn die Erkennung das RecognizerUpdateReached Ereignis generiert, enthält die UserToken -Eigenschaft des RecognizerUpdateReachedEventArgs den Wert des userToken Parameters.

Weitere Informationen

Gilt für:

RequestRecognizerUpdate(Object)

Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs

Fordert an, dass die Erkennung anhält, um den Zustand zu aktualisieren und stellt ein Benutzertoken für das zugeordnete Ereignis bereit.

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

Parameter

userToken
Object

Benutzerdefinierte Informationen, die Informationen für den Vorgang enthalten.

Hinweise

Wenn die Erkennung das RecognizerUpdateReached Ereignis generiert, enthält die UserToken -Eigenschaft des RecognizerUpdateReachedEventArgs den Wert des userToken Parameters.

Verwenden Sie die RequestRecognizerUpdate -Methode, um einen Audiopositionsoffset anzugeben.

Weitere Informationen

Gilt für:

RequestRecognizerUpdate()

Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs

Fordert an, dass die Erkennung anhält, um den Zustand zu aktualisieren.

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

Beispiele

Das folgende Beispiel zeigt eine Konsolenanwendung, die Objekte lädt und entlädt Grammar . Die Anwendung verwendet die RequestRecognizerUpdate -Methode, um die Spracherkennungs-Engine anzufordern, anzuhalten, damit sie ein Update erhalten kann. Anschließend lädt oder entlädt die Anwendung ein Grammar -Objekt.

Bei jedem Update schreibt ein Handler für RecognizerUpdateReached das Ereignis den Namen und die status der aktuell geladenen Grammar Objekte in die Konsole. Wenn Grammatiken geladen und entladen werden, erkennt die Anwendung zuerst die Namen von Nutztieren, dann die Namen der Nutztiere und die Namen der Früchte, dann nur die Namen von Früchten.

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

Hinweise

Wenn die Erkennung das RecognizerUpdateReached Ereignis generiert, ist nulldie UserToken -Eigenschaft von RecognizerUpdateReachedEventArgs .

Verwenden Sie die - oder RequestRecognizerUpdate -Methode, um ein Benutzertoken RequestRecognizerUpdate bereitzustellen. Verwenden Sie die RequestRecognizerUpdate -Methode, um einen Audiopositionsoffset anzugeben.

Weitere Informationen

Gilt für: