SpeechRecognizer.RequestRecognizerUpdate Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Demande que le module de reconnaissance partagé soit suspendu et mette à jour son état.
Surcharges
RequestRecognizerUpdate(Object, TimeSpan) |
Demande que le module de reconnaissance partagé soit suspendu, mette à jour son état et fournisse un offset et un jeton utilisateur pour l'événement associé. |
RequestRecognizerUpdate(Object) |
Demande que le module de reconnaissance partagé soit suspendu, mette à jour son état et fournisse un jeton utilisateur pour l'événement associé. |
RequestRecognizerUpdate() |
Demande que le module de reconnaissance partagé soit suspendu et mette à jour son état. |
Exemples
L’exemple suivant montre une application console qui charge et décharge des Grammar objets. L’application utilise la RequestRecognizerUpdate méthode pour demander au moteur de reconnaissance vocale de suspendre afin qu’il puisse recevoir une mise à jour. L’application charge ou décharge ensuite un Grammar objet.
À chaque mise à jour, un gestionnaire d’événements RecognizerUpdateReached écrit le nom et le status des objets actuellement chargés Grammar dans la console. À mesure que les grammaires sont chargées et déchargées, l’application reconnaît d’abord les noms des animaux de ferme, puis les noms des animaux de ferme et les noms des fruits, puis uniquement les noms des fruits.
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);
}
}
}
Remarques
Utilisez cette méthode pour synchroniser les modifications apportées au module de reconnaissance partagé. Par exemple, si vous chargez ou déchargez une grammaire de reconnaissance vocale pendant que le module de reconnaissance traite l’entrée, utilisez cette méthode et l’événement RecognizerUpdateReached pour synchroniser le comportement de votre application avec l’état du module de reconnaissance.
Lorsque cette méthode est appelée, le module de reconnaissance interrompt ou termine les opérations asynchrones et génère un RecognizerUpdateReached événement. Un RecognizerUpdateReached gestionnaire d’événements peut ensuite modifier l’état du module de reconnaissance entre les opérations de reconnaissance.
Quand cette méthode est appelée :
Si le module de reconnaissance ne traite pas l’entrée, il génère immédiatement l’événement RecognizerUpdateReached .
Si le module de reconnaissance traite une entrée composée de silence ou de bruit de fond, il suspend l’opération de reconnaissance et génère l’événement RecognizerUpdateReached .
Si le module de reconnaissance traite une entrée qui ne se compose pas de silence ou de bruit de fond, il termine l’opération de reconnaissance, puis génère l’événement RecognizerUpdateReached .
Pendant que le module de reconnaissance gère l’événement RecognizerUpdateReached :
Le module de reconnaissance ne traite pas l’entrée et la valeur de la RecognizerAudioPosition propriété reste la même.
Le module de reconnaissance continue de collecter les entrées, et la valeur de la AudioPosition propriété peut changer.
Pour modifier si le module de reconnaissance partagé suspend les opérations de reconnaissance pendant qu’une application gère un SpeechRecognized événement, utilisez la PauseRecognizerOnRecognition propriété .
RequestRecognizerUpdate(Object, TimeSpan)
- Source:
- SpeechRecognizer.cs
- Source:
- SpeechRecognizer.cs
- Source:
- SpeechRecognizer.cs
Demande que le module de reconnaissance partagé soit suspendu, mette à jour son état et fournisse un offset et un jeton utilisateur pour l'événement associé.
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)
Paramètres
- userToken
- Object
Informations définies par l'utilisateur qui comporte des informations sur l'opération.
- audioPositionAheadToRaiseUpdate
- TimeSpan
Offset de la AudioPosition actuelle pour différer la demande.
Remarques
Le module de reconnaissance ne lance pas la demande de mise à jour du module de reconnaissance tant que celui du module de reconnaissance n’est RecognizerAudioPosition pas égal à la valeur actuelle AudioPosition plus la valeur du audioPositionAheadToRaiseUpdate
paramètre .
Lorsque le module de reconnaissance génère l’événement RecognizerUpdateReached , la UserToken propriété de contient RecognizerUpdateReachedEventArgs la valeur du userToken
paramètre .
Voir aussi
S’applique à
RequestRecognizerUpdate(Object)
- Source:
- SpeechRecognizer.cs
- Source:
- SpeechRecognizer.cs
- Source:
- SpeechRecognizer.cs
Demande que le module de reconnaissance partagé soit suspendu, mette à jour son état et fournisse un jeton utilisateur pour l'événement associé.
public:
void RequestRecognizerUpdate(System::Object ^ userToken);
public void RequestRecognizerUpdate (object userToken);
member this.RequestRecognizerUpdate : obj -> unit
Public Sub RequestRecognizerUpdate (userToken As Object)
Paramètres
- userToken
- Object
Informations définies par l'utilisateur qui comporte des informations sur l'opération.
Remarques
Lorsque le module de reconnaissance génère l’événement RecognizerUpdateReached , la UserToken propriété de contient RecognizerUpdateReachedEventArgs la valeur du userToken
paramètre .
Pour spécifier un décalage de position audio, utilisez la RequestRecognizerUpdate méthode .
Voir aussi
S’applique à
RequestRecognizerUpdate()
- Source:
- SpeechRecognizer.cs
- Source:
- SpeechRecognizer.cs
- Source:
- SpeechRecognizer.cs
Demande que le module de reconnaissance partagé soit suspendu et mette à jour son état.
public:
void RequestRecognizerUpdate();
public void RequestRecognizerUpdate ();
member this.RequestRecognizerUpdate : unit -> unit
Public Sub RequestRecognizerUpdate ()
Remarques
Lorsque le module de reconnaissance génère l’événement, la UserToken propriété de est null
RecognizerUpdateReachedEventArgs .RecognizerUpdateReached
Pour fournir un jeton utilisateur, utilisez la RequestRecognizerUpdate méthode ou RequestRecognizerUpdate . Pour spécifier un décalage de position audio, utilisez la RequestRecognizerUpdate méthode .