SpeechRecognitionEngine.RequestRecognizerUpdate Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Požaduje, aby se rozpoznač pozastavil, aby aktualizoval svůj stav.
Přetížení
| Name | Description |
|---|---|
| RequestRecognizerUpdate(Object, TimeSpan) |
Vyžaduje, aby se rozpoznávání pozastavil, aby aktualizoval svůj stav, a poskytuje posun a token uživatele pro přidruženou událost. |
| RequestRecognizerUpdate(Object) |
Požaduje, aby se rozpoznávání pozastavil, aby aktualizoval svůj stav a pro přidruženou událost poskytuje token uživatele. |
| RequestRecognizerUpdate() |
Požaduje, aby se rozpoznač pozastavil, aby aktualizoval svůj stav. |
Poznámky
Tuto metodu použijte k synchronizaci změn s rozpoznáváním. Pokud například načtete nebo uvolníte gramatiku rozpoznávání řeči při zpracování vstupu rozpoznávání řeči, použijte tuto metodu RecognizerUpdateReached a událost k synchronizaci chování aplikace se stavem rozpoznávání.
Při volání této metody rozpoznávání pozastaví nebo dokončí asynchronní operace a vygeneruje RecognizerUpdateReached událost. Obslužná rutina RecognizerUpdateReached události pak může upravit stav rozpoznávání mezi operacemi rozpoznávání. Při zpracování RecognizerUpdateReached událostí se rozpoznávání pozastaví, dokud se obslužná rutina události nevrátí.
Poznámka:
Pokud se před vyvolání RecognizerUpdateReached události změní vstup do nástroje pro rozpoznávání, požadavek se zahodí.
Při zavolání této metody:
Pokud rozpoznávání nezpracovává vstup, služba rozpoznávání událost okamžitě vygeneruje RecognizerUpdateReached .
Pokud rozpoznávání zpracovává vstup, který se skládá z tichosti nebo šumu na pozadí, rozpoznávání pozastaví operaci rozpoznávání a vygeneruje RecognizerUpdateReached událost.
Pokud rozpoznávání zpracovává vstup, který se skládá z tichosti nebo šumu na pozadí, rozpoznávání dokončí operaci rozpoznávání a pak vygeneruje RecognizerUpdateReached událost.
Zatímco rozpoznávání zpracovává RecognizerUpdateReached událost:
Rozpoznávání nezpracuje vstup a hodnota RecognizerAudioPosition vlastnosti zůstane stejná.
Rozpoznávání bude dál shromažďovat vstup a hodnota AudioPosition vlastnosti se může změnit.
RequestRecognizerUpdate(Object, TimeSpan)
Vyžaduje, aby se rozpoznávání pozastavil, aby aktualizoval svůj stav, a poskytuje posun a token uživatele pro přidruženou událost.
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)
Parametry
- userToken
- Object
Uživatelem definované informace, které obsahují informace pro operaci.
- audioPositionAheadToRaiseUpdate
- TimeSpan
Posun od aktuálního stavu AudioPosition ke zpoždění požadavku.
Poznámky
Rozpoznávání nespouští žádost o aktualizaci nástroje pro rozpoznávání, dokud se nerozpozná RecognizerAudioPosition aktuální AudioPosition plus audioPositionAheadToRaiseUpdate.
Když rozpoznávání vygeneruje RecognizerUpdateReached událost, UserToken vlastnost RecognizerUpdateReachedEventArgs obsahuje hodnotu parametru userToken .
Viz také
Platí pro
RequestRecognizerUpdate(Object)
Požaduje, aby se rozpoznávání pozastavil, aby aktualizoval svůj stav a pro přidruženou událost poskytuje token uživatele.
public:
void RequestRecognizerUpdate(System::Object ^ userToken);
public void RequestRecognizerUpdate(object userToken);
member this.RequestRecognizerUpdate : obj -> unit
Public Sub RequestRecognizerUpdate (userToken As Object)
Parametry
- userToken
- Object
Uživatelem definované informace, které obsahují informace pro operaci.
Poznámky
Když rozpoznávání vygeneruje RecognizerUpdateReached událost, UserToken vlastnost RecognizerUpdateReachedEventArgs obsahuje hodnotu parametru userToken .
Pokud chcete určit posun pozice zvuku, použijte metodu RequestRecognizerUpdate .
Viz také
Platí pro
RequestRecognizerUpdate()
Požaduje, aby se rozpoznač pozastavil, aby aktualizoval svůj stav.
public:
void RequestRecognizerUpdate();
public void RequestRecognizerUpdate();
member this.RequestRecognizerUpdate : unit -> unit
Public Sub RequestRecognizerUpdate ()
Příklady
Následující příklad ukazuje konzolovou aplikaci, která načte a uvolní objekty Grammar . Aplikace používá metodu RequestRecognizerUpdate k vyžádání modulu pro rozpoznávání řeči, aby se pozastavil, aby mohl obdržet aktualizaci. Aplikace pak načte nebo uvolní Grammar objekt.
V každé aktualizaci zapíše obslužná rutina události RecognizerUpdateReached název a stav aktuálně načtených Grammar objektů do konzoly. Jak se načítají a odkládají gramatiky, aplikace nejprve rozpozná názvy farmových zvířat, pak názvy farmových zvířat a názvy ovoce, pak pouze názvy ovoce.
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");
}
}
}
Poznámky
Když rozpoznávání vygeneruje RecognizerUpdateReached událost, UserToken vlastnost RecognizerUpdateReachedEventArgs je null.
K zadání tokenu uživatele použijte metodu RequestRecognizerUpdate nebo RequestRecognizerUpdate token uživatele. Pokud chcete určit posun pozice zvuku, použijte metodu RequestRecognizerUpdate .