Compartir vía


SpeechRecognitionEngine.RequestRecognizerUpdate Método

Definición

Solicita que el reconocedor pause para actualizar su estado.

Sobrecargas

RequestRecognizerUpdate(Object, TimeSpan)

Solicita que el reconocedor pause para actualizar su estado y proporcione un desplazamiento y un token de usuario para el evento asociado.

RequestRecognizerUpdate(Object)

Solicita que el reconocedor pause para actualizar su estado y proporcione un token de usuario para el evento asociado.

RequestRecognizerUpdate()

Solicita que el reconocedor pause para actualizar su estado.

Comentarios

Use este método para sincronizar los cambios en el reconocedor. Por ejemplo, si carga o descarga una gramática de reconocimiento de voz mientras el reconocedor está procesando la entrada, use este método y el evento para sincronizar el RecognizerUpdateReached comportamiento de la aplicación con el estado del reconocedor.

Cuando se llama a este método, el reconocedor pausa o completa las operaciones asincrónicas y genera un RecognizerUpdateReached evento. A continuación, un RecognizerUpdateReached controlador de eventos puede modificar el estado del reconocedor entre las operaciones de reconocimiento. Al controlar RecognizerUpdateReached eventos, el reconocedor se pausa hasta que el controlador de eventos vuelve.

Nota:

Si se cambia la entrada al reconocedor antes de que el reconocedor genere el RecognizerUpdateReached evento, se descarta la solicitud.

Cuando se llama a este método:

  • Si el reconocedor no procesa la entrada, el reconocedor genera inmediatamente el RecognizerUpdateReached evento.

  • Si el reconocedor está procesando la entrada que consta de silencio o ruido de fondo, el reconocedor pausa la operación de reconocimiento y genera el RecognizerUpdateReached evento.

  • Si el reconocedor está procesando la entrada que no consta de silencio o ruido de fondo, el reconocedor completa la operación de reconocimiento y, a continuación, genera el RecognizerUpdateReached evento.

Mientras el reconocedor controla el RecognizerUpdateReached evento:

  • El reconocedor no procesa la entrada y el valor de la RecognizerAudioPosition propiedad sigue siendo el mismo.

  • El reconocedor continúa recopilando la entrada y el valor de la AudioPosition propiedad puede cambiar.

RequestRecognizerUpdate(Object, TimeSpan)

Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs

Solicita que el reconocedor pause para actualizar su estado y proporcione un desplazamiento y un token de usuario para el evento asociado.

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)

Parámetros

userToken
Object

Información definida por el usuario que contiene información para la operación.

audioPositionAheadToRaiseUpdate
TimeSpan

El desplazamiento del AudioPosition actual para retrasar la solicitud.

Comentarios

El reconocedor no inicia la solicitud de actualización del reconocedor hasta que el reconocedor RecognizerAudioPosition es igual al actual AudioPosition más audioPositionAheadToRaiseUpdate.

Cuando el reconocedor genera el RecognizerUpdateReached evento, la UserToken propiedad de RecognizerUpdateReachedEventArgs contiene el valor del userToken parámetro .

Consulte también

Se aplica a

RequestRecognizerUpdate(Object)

Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs

Solicita que el reconocedor pause para actualizar su estado y proporcione un token de usuario para el evento asociado.

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

Parámetros

userToken
Object

Información definida por el usuario que contiene información para la operación.

Comentarios

Cuando el reconocedor genera el RecognizerUpdateReached evento, la UserToken propiedad de RecognizerUpdateReachedEventArgs contiene el valor del userToken parámetro .

Para especificar un desplazamiento de posición de audio, use el RequestRecognizerUpdate método .

Consulte también

Se aplica a

RequestRecognizerUpdate()

Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs

Solicita que el reconocedor pause para actualizar su estado.

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

Ejemplos

En el ejemplo siguiente se muestra una aplicación de consola que carga y descarga Grammar objetos. La aplicación usa el RequestRecognizerUpdate método para solicitar al motor de reconocimiento de voz que se detenga para que pueda recibir una actualización. A continuación, la aplicación carga o descarga un Grammar objeto .

En cada actualización, un controlador para RecognizerUpdateReached el evento escribe el nombre y el estado de los objetos cargados Grammar actualmente en la consola. A medida que las gramáticas se cargan y descargan, la aplicación reconoce primero los nombres de los animales de granja, luego los nombres de los animales de granja y los nombres de las frutas y, a continuación, solo los nombres de las frutas.

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

Comentarios

Cuando el reconocedor genera el RecognizerUpdateReached evento , la UserToken propiedad de RecognizerUpdateReachedEventArgs es null.

Para proporcionar un token de usuario, use el RequestRecognizerUpdate método o RequestRecognizerUpdate . Para especificar un desplazamiento de posición de audio, use el RequestRecognizerUpdate método .

Consulte también

Se aplica a