SpeechRecognizer.RequestRecognizerUpdate Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Solicita que o reconhecedor compartilhado pause e atualize seu estado.
Sobrecargas
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 para RecognizerUpdateReached o evento grava o nome e 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 da 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 com o 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 pausará a operação de reconhecimento e gerará 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 conclui a operação de reconhecimento e, em seguida, gera o RecognizerUpdateReached evento.
Enquanto o reconhecedor está manipulando 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 operações de reconhecimento enquanto um aplicativo está manipulando um SpeechRecognized evento, use a PauseRecognizerOnRecognition propriedade .
RequestRecognizerUpdate(Object, TimeSpan)
- 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 da 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 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
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 da 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
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 RequestRecognizerUpdate método ou RequestRecognizerUpdate . Para especificar um deslocamento de posição de áudio, use o RequestRecognizerUpdate método .