SpeechRecognitionEngine.RequestRecognizerUpdate Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Solicita que o reconhecedor faça uma pausa para atualizar o seu estado.
Sobrecargas
| Name | Description |
|---|---|
| RequestRecognizerUpdate(Object, TimeSpan) |
Solicita que o reconhecedor faça uma pausa para atualizar o seu estado e fornece um offset e um token de utilizador para o evento associado. |
| RequestRecognizerUpdate(Object) |
Solicita que o reconhecedor faça uma pausa para atualizar o seu estado e forneça um token de utilizador para o evento associado. |
| RequestRecognizerUpdate() |
Solicita que o reconhecedor faça uma pausa para atualizar o seu estado. |
Observações
Use este método para sincronizar alterações ao reconhecedor. Por exemplo, se carregar ou descarregar uma gramática de reconhecimento de fala enquanto o recognizer está a processar a entrada, use este método e o RecognizerUpdateReached evento para sincronizar o comportamento da sua aplicação com o estado do recognizer.
Quando este método é chamado, o reconhecedor pausa ou completa operações assíncronas e gera um RecognizerUpdateReached evento. Um gestor de eventos pode então modificar o estado do reconhecedor entre operações de RecognizerUpdateReached reconhecimento. Ao lidar RecognizerUpdateReached com eventos, o recognizer pausa até que o handler de eventos regresse.
Note
Se a entrada do reconhecedor for alterada antes de este levantar o RecognizerUpdateReached evento, o pedido é descartado.
Quando este método é chamado:
Se o recognizer não estiver a processar a entrada, gera imediatamente o RecognizerUpdateReached evento.
Se o reconhecedor estiver a processar uma entrada que consiste em silêncio ou ruído de fundo, pausa a operação de reconhecimento e gera o RecognizerUpdateReached evento.
Se o recognizer estiver a processar uma entrada que não consiste em silêncio ou ruído de fundo, o recognizer completa a operação de reconhecimento e depois gera o RecognizerUpdateReached evento.
Enquanto o reconhecedor está a tratar do RecognizerUpdateReached evento:
O reconhecedor não processa entradas, e o valor da RecognizerAudioPosition propriedade mantém-se igual.
O reconhecedor continua a recolher entradas, e o valor da AudioPosition propriedade pode mudar.
RequestRecognizerUpdate(Object, TimeSpan)
Solicita que o reconhecedor faça uma pausa para atualizar o seu estado e fornece um offset e um token de utilizador 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ção definida pelo utilizador que contém informações sobre a operação.
- audioPositionAheadToRaiseUpdate
- TimeSpan
O deslocamento em relação à corrente AudioPosition para atrasar o pedido.
Observações
O recognizer não inicia o pedido de atualização do recognizer até que o do recognizer RecognizerAudioPosition seja igual ao atual AudioPosition mais audioPositionAheadToRaiseUpdate.
Quando o reconhecedor gera o RecognizerUpdateReached evento, a UserToken propriedade de contém RecognizerUpdateReachedEventArgs o valor do userToken parâmetro.
Ver também
Aplica-se a
RequestRecognizerUpdate(Object)
Solicita que o reconhecedor faça uma pausa para atualizar o seu estado e forneça um token de utilizador 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ção definida pelo utilizador que contém informações sobre a operação.
Observações
Quando o reconhecedor gera o RecognizerUpdateReached evento, a UserToken propriedade de contém RecognizerUpdateReachedEventArgs o valor do userToken parâmetro.
Para especificar um deslocamento de posição de áudio, use o RequestRecognizerUpdate método.
Ver também
Aplica-se a
RequestRecognizerUpdate()
Solicita que o reconhecedor faça uma pausa para atualizar o seu estado.
public:
void RequestRecognizerUpdate();
public void RequestRecognizerUpdate();
member this.RequestRecognizerUpdate : unit -> unit
Public Sub RequestRecognizerUpdate ()
Exemplos
O exemplo seguinte mostra uma aplicação de consola que carrega e descarrega Grammar objetos. A aplicação utiliza o RequestRecognizerUpdate método para pedir ao motor de reconhecimento de voz uma pausa para receber uma atualização. A aplicação então carrega ou descarrega um Grammar objeto.
Em cada atualização, um handler de RecognizerUpdateReached eventos escreve o nome e o estado dos objetos atualmente carregados Grammar na consola. À medida que as gramáticas são carregadas e descarregadas, a aplicação reconhece primeiro os nomes dos animais de quinta, depois os nomes dos animais e os nomes dos frutos, e depois apenas os nomes dos frutos.
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");
}
}
}
Observações
Quando o reconhecedor gera o RecognizerUpdateReached evento, a UserToken propriedade do RecognizerUpdateReachedEventArgs é null.
Para fornecer um token de utilizador, use o RequestRecognizerUpdate método ou RequestRecognizerUpdate . Para especificar um deslocamento de posição de áudio, use o RequestRecognizerUpdate método.