Partilhar via


SpeechRecognitionEngine.RequestRecognizerUpdate Método

Definição

Solicita que o reconhecedor pause para atualizar seu estado.

Sobrecargas

RequestRecognizerUpdate(Object, TimeSpan)

Solicita que o reconhecedor pause para atualizar seu estado e forneça um deslocamento e um token de usuário para o evento associado.

RequestRecognizerUpdate(Object)

Solicita que o reconhecedor pause para atualizar seu estado e forneça um token de usuário para o evento associado.

RequestRecognizerUpdate()

Solicita que o reconhecedor pause para atualizar seu estado.

Comentários

Use esse método para sincronizar alterações no reconhecedor. Por exemplo, se você carregar ou descarregar uma gramática de reconhecimento de fala enquanto o reconhecedor estiver processando a entrada, use esse método e o evento RecognizerUpdateReached para sincronizar o comportamento do aplicativo com o estado do reconhecedor.

Quando esse método é chamado, o reconhecedor pausa ou conclui operações assíncronas e gera um evento RecognizerUpdateReached. Um manipulador de eventos RecognizerUpdateReached pode modificar o estado do reconhecedor entre operações de reconhecimento. Ao lidar com eventos RecognizerUpdateReached, o reconhecedor pausa até que o manipulador de eventos retorne.

Nota

Se a entrada para o reconhecedor for alterada antes que o reconhecedor acione o evento RecognizerUpdateReached, a solicitação será descartada.

Quando esse método é chamado:

  • Se o reconhecedor não estiver processando a entrada, o reconhecedor gerará imediatamente o evento RecognizerUpdateReached.

  • Se o reconhecedor estiver processando a entrada que consiste em silêncio ou ruído de plano de fundo, o reconhecedor pausa a operação de reconhecimento e gera o evento RecognizerUpdateReached.

  • Se o reconhecedor estiver processando entradas que não consistem em silêncio ou ruído de plano de fundo, o reconhecedor concluirá a operação de reconhecimento e, em seguida, gerará o evento RecognizerUpdateReached.

Enquanto o reconhecedor está tratando o evento RecognizerUpdateReached:

  • O reconhecedor não processa a entrada e o valor da propriedade RecognizerAudioPosition permanece o mesmo.

  • O reconhecedor continua coletando entradas e o valor da propriedade AudioPosition pode ser alterado.

RequestRecognizerUpdate(Object, TimeSpan)

Origem:
SpeechRecognitionEngine.cs
Origem:
SpeechRecognitionEngine.cs
Origem:
SpeechRecognitionEngine.cs

Solicita que o reconhecedor pause para atualizar seu estado e forneça um deslocamento e um token de usuário para o evento associado.

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

Informações definidas pelo usuário que contêm informações para a operação.

audioPositionAheadToRaiseUpdate
TimeSpan

O deslocamento do AudioPosition atual para atrasar a solicitação.

Comentários

O reconhecedor não inicia a solicitação de atualização do reconhecedor até que o RecognizerAudioPosition do reconhecedor seja igual ao AudioPosition atual mais audioPositionAheadToRaiseUpdate.

Quando o reconhecedor gera o evento RecognizerUpdateReached, a propriedade UserToken do RecognizerUpdateReachedEventArgs contém o valor do parâmetro userToken.

Confira também

Aplica-se a

RequestRecognizerUpdate(Object)

Origem:
SpeechRecognitionEngine.cs
Origem:
SpeechRecognitionEngine.cs
Origem:
SpeechRecognitionEngine.cs

Solicita que o reconhecedor pause para atualizar seu estado e forneça um token de usuário para o evento associado.

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

Informações definidas pelo usuário que contêm informações para a operação.

Comentários

Quando o reconhecedor gera o evento RecognizerUpdateReached, a propriedade UserToken do RecognizerUpdateReachedEventArgs contém o valor do parâmetro userToken.

Para especificar um deslocamento de posição de áudio, use o método RequestRecognizerUpdate.

Confira também

Aplica-se a

RequestRecognizerUpdate()

Origem:
SpeechRecognitionEngine.cs
Origem:
SpeechRecognitionEngine.cs
Origem:
SpeechRecognitionEngine.cs

Solicita que o reconhecedor pause para atualizar seu estado.

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

Exemplos

O exemplo a seguir mostra um aplicativo de console que carrega e descarrega Grammar objetos. O aplicativo usa o método RequestRecognizerUpdate para solicitar que o mecanismo de reconhecimento de fala pause para que ele possa receber uma atualização. Em seguida, o aplicativo carrega ou descarrega um objeto Grammar.

Em cada atualização, um manipulador para RecognizerUpdateReached evento grava o nome e o status dos objetos Grammar carregados no momento no console. À medida que as gramáticas são carregadas e descarregadas, o aplicativo primeiro reconhece os nomes dos animais de fazenda, depois os nomes dos animais de fazenda e os nomes das frutas, depois apenas os nomes das 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");  
    }  
  }  
}  

Comentários

Quando o reconhecedor gera o evento RecognizerUpdateReached, a propriedade UserToken do RecognizerUpdateReachedEventArgs é null.

Para fornecer um token de usuário, use o método RequestRecognizerUpdate ou RequestRecognizerUpdate. Para especificar um deslocamento de posição de áudio, use o método RequestRecognizerUpdate.

Confira também

Aplica-se a