Compartir a través de


SpeechRecognizer.RequestRecognizerUpdate Método

Definición

Solicita que el reconocedor compartido pause y actualice su estado.

Sobrecargas

RequestRecognizerUpdate(Object, TimeSpan)

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

RequestRecognizerUpdate(Object)

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

RequestRecognizerUpdate()

Solicita que el reconocedor compartido pause y actualice su estado.

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

Comentarios

Use este método para sincronizar los cambios en el reconocedor compartido. 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.

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.

Para cambiar si el reconocedor compartido pausa las operaciones de reconocimiento mientras una aplicación controla un SpeechRecognized evento, use la PauseRecognizerOnRecognition propiedad .

RequestRecognizerUpdate(Object, TimeSpan)

Source:
SpeechRecognizer.cs
Source:
SpeechRecognizer.cs
Source:
SpeechRecognizer.cs

Solicita que el reconocedor compartido pause y actualice 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 el valor del audioPositionAheadToRaiseUpdate parámetro .

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:
SpeechRecognizer.cs
Source:
SpeechRecognizer.cs
Source:
SpeechRecognizer.cs

Solicita que el reconocedor compartido pause y actualice 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:
SpeechRecognizer.cs
Source:
SpeechRecognizer.cs
Source:
SpeechRecognizer.cs

Solicita que el reconocedor compartido pause y actualice su estado.

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

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