SpeechRecognizer.RequestRecognizerUpdate Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Żąda wstrzymania współużytkowanego rozpoznawania i zaktualizowania jego stanu.
Przeciążenia
RequestRecognizerUpdate(Object, TimeSpan) |
Żąda, aby współużytkowany aparat rozpoznawania wstrzymał i zaktualizował jego stan oraz zapewnia przesunięcie i token użytkownika dla skojarzonego zdarzenia. |
RequestRecognizerUpdate(Object) |
Żąda wstrzymania i zaktualizowania stanu współużytkowanego rozpoznawania oraz udostępnienia tokenu użytkownika dla skojarzonego zdarzenia. |
RequestRecognizerUpdate() |
Żąda wstrzymania współużytkowanego rozpoznawania i zaktualizowania jego stanu. |
Przykłady
W poniższym przykładzie pokazano aplikację konsolową, która ładuje Grammar i zwalnia obiekty. Aplikacja używa RequestRecognizerUpdate metody , aby zażądać wstrzymania aparatu rozpoznawania mowy, aby mogła otrzymać aktualizację. Następnie aplikacja ładuje Grammar lub zwalnia obiekt.
W każdej aktualizacji program obsługi zdarzeń RecognizerUpdateReached zapisuje nazwę i stan aktualnie załadowanych Grammar obiektów do konsoli. Ponieważ gramatyki są ładowane i zwalniane, aplikacja najpierw rozpoznaje nazwy zwierząt gospodarskich, a następnie nazwy zwierząt gospodarskich i nazw owoców, a następnie tylko nazwy owoców.
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);
}
}
}
Uwagi
Użyj tej metody, aby zsynchronizować zmiany z usługą rozpoznawania współużytkowanego. Jeśli na przykład załadujesz lub zwolnisz gramatykę rozpoznawania mowy podczas przetwarzania danych wejściowych przez rozpoznawanie mowy, użyj tej metody i RecognizerUpdateReached zdarzenia, aby zsynchronizować zachowanie aplikacji ze stanem aparatu rozpoznawania.
Po wywołaniu tej metody funkcja rozpoznawania wstrzymuje lub kończy operacje asynchroniczne i generuje RecognizerUpdateReached zdarzenie. Program RecognizerUpdateReached obsługi zdarzeń może następnie zmodyfikować stan aparatu rozpoznawania między operacjami rozpoznawania.
Po wywołaniu tej metody:
Jeśli rozpoznawanie nie przetwarza danych wejściowych, rozpoznawanie RecognizerUpdateReached natychmiast generuje zdarzenie.
Jeśli rozpoznawanie przetwarza dane wejściowe składające się z ciszy lub szumu w tle, aparat rozpoznawania wstrzymuje RecognizerUpdateReached operację rozpoznawania i generuje zdarzenie.
Jeśli rozpoznawanie przetwarza dane wejściowe, które nie składają się z ciszy lub szumu w tle, rozpoznawanie kończy operację rozpoznawania, a następnie generuje RecognizerUpdateReached zdarzenie.
Rozpoznawanie obsługuje RecognizerUpdateReached zdarzenie:
Rozpoznawanie nie przetwarza danych wejściowych, a wartość RecognizerAudioPosition właściwości pozostaje taka sama.
Rozpoznawanie kontynuuje zbieranie danych wejściowych, a wartość AudioPosition właściwości może ulec zmianie.
Aby zmienić, czy współużytkowany aparat rozpoznawania wstrzymuje operacje rozpoznawania, gdy aplikacja obsługuje SpeechRecognized zdarzenie, użyj PauseRecognizerOnRecognition właściwości .
RequestRecognizerUpdate(Object, TimeSpan)
- Źródło:
- SpeechRecognizer.cs
- Źródło:
- SpeechRecognizer.cs
- Źródło:
- SpeechRecognizer.cs
Żąda, aby współużytkowany aparat rozpoznawania wstrzymał i zaktualizował jego stan oraz zapewnia przesunięcie i token użytkownika dla skojarzonego zdarzenia.
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
Informacje zdefiniowane przez użytkownika, które zawierają informacje dotyczące operacji.
- audioPositionAheadToRaiseUpdate
- TimeSpan
Przesunięcie z bieżącego AudioPosition w celu opóźnienia żądania.
Uwagi
Rozpoznawanie nie inicjuje żądania aktualizacji rozpoznawania, dopóki aparat rozpoznawania nie RecognizerAudioPosition będzie równy bieżącemu AudioPosition plus wartości parametru audioPositionAheadToRaiseUpdate
.
Gdy rozpoznawanie RecognizerUpdateReached generuje zdarzenie, UserToken właściwość parametru RecognizerUpdateReachedEventArgs zawiera wartość parametru userToken
.
Zobacz też
Dotyczy
RequestRecognizerUpdate(Object)
- Źródło:
- SpeechRecognizer.cs
- Źródło:
- SpeechRecognizer.cs
- Źródło:
- SpeechRecognizer.cs
Żąda wstrzymania i zaktualizowania stanu współużytkowanego rozpoznawania oraz udostępnienia tokenu użytkownika dla skojarzonego zdarzenia.
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
Informacje zdefiniowane przez użytkownika, które zawierają informacje dotyczące operacji.
Uwagi
Gdy rozpoznawanie RecognizerUpdateReached generuje zdarzenie, UserToken właściwość parametru RecognizerUpdateReachedEventArgs zawiera wartość parametru userToken
.
Aby określić przesunięcie położenia dźwięku RequestRecognizerUpdate , użyj metody .
Zobacz też
Dotyczy
RequestRecognizerUpdate()
- Źródło:
- SpeechRecognizer.cs
- Źródło:
- SpeechRecognizer.cs
- Źródło:
- SpeechRecognizer.cs
Żąda wstrzymania współużytkowanego rozpoznawania i zaktualizowania jego stanu.
public:
void RequestRecognizerUpdate();
public void RequestRecognizerUpdate ();
member this.RequestRecognizerUpdate : unit -> unit
Public Sub RequestRecognizerUpdate ()
Uwagi
Gdy aparat rozpoznawania generuje RecognizerUpdateReached zdarzenie, UserToken właściwość ma RecognizerUpdateReachedEventArgsnull
wartość .
Aby podać token użytkownika, użyj RequestRecognizerUpdate metody lub RequestRecognizerUpdate . Aby określić przesunięcie położenia dźwięku RequestRecognizerUpdate , użyj metody .