Partilhar via


SpeechRecognizer.RequestRecognizerUpdate Método

Definição

Solicita que o reconhecedor compartilhado pause e atualize seu estado.

Sobrecargas

Nome Description
RequestRecognizerUpdate(Object, TimeSpan)

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

RequestRecognizerUpdate(Object)

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

RequestRecognizerUpdate()

Solicita que o reconhecedor compartilhado pause e atualize seu estado.

Exemplos

O exemplo a seguir mostra um aplicativo de console que carrega e descarrega Grammar objetos. O aplicativo usa o RequestRecognizerUpdate método 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 Grammar objeto.

Em cada atualização, um manipulador de RecognizerUpdateReached evento grava o nome e o status dos objetos carregados Grammar 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 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);
    }
  }
}

Comentários

Use esse método para sincronizar alterações no reconhecedor compartilhado. 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 para sincronizar o RecognizerUpdateReached 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 RecognizerUpdateReached evento. Um RecognizerUpdateReached manipulador de eventos pode modificar o estado do reconhecedor entre operações de reconhecimento.

Quando esse método é chamado:

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

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

  • 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 gerará o RecognizerUpdateReached evento.

Enquanto o reconhecedor está tratando o RecognizerUpdateReached evento:

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

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

Para alterar se o reconhecedor compartilhado pausa as operações de reconhecimento enquanto um aplicativo está tratando um SpeechRecognized evento, use a PauseRecognizerOnRecognition propriedade.

RequestRecognizerUpdate(Object, TimeSpan)

Origem:
SpeechRecognizer.cs
Origem:
SpeechRecognizer.cs
Origem:
SpeechRecognizer.cs
Origem:
SpeechRecognizer.cs

Solicita que o reconhecedor compartilhado pause e atualize 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 atual AudioPosition para atrasar a solicitação.

Comentários

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

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

Confira também

Aplica-se a

RequestRecognizerUpdate(Object)

Origem:
SpeechRecognizer.cs
Origem:
SpeechRecognizer.cs
Origem:
SpeechRecognizer.cs
Origem:
SpeechRecognizer.cs

Solicita que o reconhecedor compartilhado pause e atualize 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 RecognizerUpdateReached evento, a UserToken propriedade do RecognizerUpdateReachedEventArgs contém o valor do userToken parâmetro.

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

Confira também

Aplica-se a

RequestRecognizerUpdate()

Origem:
SpeechRecognizer.cs
Origem:
SpeechRecognizer.cs
Origem:
SpeechRecognizer.cs
Origem:
SpeechRecognizer.cs

Solicita que o reconhecedor compartilhado pause e atualize seu estado.

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

Comentários

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

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

Confira também

Aplica-se a