SpeechRecognizer.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 sdílený rozpoznávatel pozastavil a aktualizoval svůj stav.
Přetížení
| Name | Description |
|---|---|
| RequestRecognizerUpdate(Object, TimeSpan) |
Vyžaduje, aby sdílený rozpoznávatel pozastavil a aktualizoval svůj stav a poskytuje posun a token uživatele pro přidruženou událost. |
| RequestRecognizerUpdate(Object) |
Vyžádá si pozastavení a aktualizaci stavu sdíleného rozpoznávatele a poskytne token uživatele pro přidruženou událost. |
| RequestRecognizerUpdate() |
Požaduje, aby sdílený rozpoznávatel pozastavil a aktualizoval svůj stav. |
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 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);
}
}
}
Poznámky
Tuto metodu použijte k synchronizaci změn do sdíleného nástroje pro rozpoznávání. 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 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.
Chcete-li změnit, zda sdílený rozpoznávací nástroj pozastaví operace rozpoznávání v době, kdy aplikace zpracovává SpeechRecognized událost, použijte PauseRecognizerOnRecognition vlastnost.
RequestRecognizerUpdate(Object, TimeSpan)
- Zdroj:
- SpeechRecognizer.cs
- Zdroj:
- SpeechRecognizer.cs
- Zdroj:
- SpeechRecognizer.cs
- Zdroj:
- SpeechRecognizer.cs
Vyžaduje, aby sdílený rozpoznávatel pozastavil a 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í požadavek na aktualizaci nástroje pro rozpoznávání, dokud se nerozpozná RecognizerAudioPosition aktuální AudioPosition plus hodnota parametru audioPositionAheadToRaiseUpdate .
Když rozpoznávání vygeneruje RecognizerUpdateReached událost, UserToken vlastnost RecognizerUpdateReachedEventArgs obsahuje hodnotu parametru userToken .
Viz také
Platí pro
RequestRecognizerUpdate(Object)
- Zdroj:
- SpeechRecognizer.cs
- Zdroj:
- SpeechRecognizer.cs
- Zdroj:
- SpeechRecognizer.cs
- Zdroj:
- SpeechRecognizer.cs
Vyžádá si pozastavení a aktualizaci stavu sdíleného rozpoznávatele a poskytne token uživatele pro přidruženou událost.
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()
- Zdroj:
- SpeechRecognizer.cs
- Zdroj:
- SpeechRecognizer.cs
- Zdroj:
- SpeechRecognizer.cs
- Zdroj:
- SpeechRecognizer.cs
Požaduje, aby sdílený rozpoznávatel pozastavil a aktualizoval svůj stav.
public:
void RequestRecognizerUpdate();
public void RequestRecognizerUpdate();
member this.RequestRecognizerUpdate : unit -> unit
Public Sub RequestRecognizerUpdate ()
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 .