SpeechRecognizer.RequestRecognizerUpdate Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Richiede la sospensione del riconoscimento condiviso e l'aggiornamento dello stato.
Overload
RequestRecognizerUpdate(Object, TimeSpan) |
Richiede la sospensione del riconoscimento condiviso, l'aggiornamento dello stato e la fornitura di un offset e un token utente per l'evento associato. |
RequestRecognizerUpdate(Object) |
Richiede la sospensione del riconoscimento condiviso, l'aggiornamento dello stato e la fornitura di un token utente per l'evento associato. |
RequestRecognizerUpdate() |
Richiede la sospensione del riconoscimento condiviso e l'aggiornamento dello stato. |
Esempio
Nell'esempio seguente viene illustrata un'applicazione console che carica e scarica oggetti Grammar . L'applicazione usa il RequestRecognizerUpdate metodo per richiedere al motore di riconoscimento vocale di sospendere in modo che possa ricevere un aggiornamento. L'applicazione carica o scarica un Grammar oggetto .
A ogni aggiornamento, un gestore per RecognizerUpdateReached l'evento scrive il nome e lo stato degli oggetti attualmente caricati Grammar nella console. Quando le grammatiche vengono caricate e scaricate, l'applicazione riconosce prima i nomi degli animali agricoli, poi i nomi degli animali agricoli e i nomi dei frutti, quindi solo i nomi dei frutti.
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);
}
}
}
Commenti
Usare questo metodo per sincronizzare le modifiche al sistema di riconoscimento condiviso. Ad esempio, se si carica o si scarica una grammatica di riconoscimento vocale mentre lo strumento di riconoscimento elabora l'input, usare questo metodo e l'evento RecognizerUpdateReached per sincronizzare il comportamento dell'applicazione con lo stato del riconoscitore.
Quando questo metodo viene chiamato, il riconoscitore sospende o completa le operazioni asincrone e genera un RecognizerUpdateReached evento. Un RecognizerUpdateReached gestore eventi può quindi modificare lo stato del riconoscitore tra le operazioni di riconoscimento.
Quando viene chiamato questo metodo:
Se il riconoscitore non elabora l'input, il riconoscitore genera immediatamente l'evento RecognizerUpdateReached .
Se il riconoscitore elabora l'input costituito da silenzio o rumore di fondo, il riconoscitore sospende l'operazione di riconoscimento e genera l'evento RecognizerUpdateReached .
Se il riconoscitore elabora l'input che non è costituito da silenzio o rumore di fondo, il riconoscitore completa l'operazione di riconoscimento e quindi genera l'evento RecognizerUpdateReached .
Mentre il riconoscitore gestisce l'evento RecognizerUpdateReached :
Il riconoscitore non elabora l'input e il valore della RecognizerAudioPosition proprietà rimane invariato.
Il riconoscitore continua a raccogliere l'input e il valore della AudioPosition proprietà può cambiare.
Per modificare se il riconoscitore condiviso sospende le operazioni di riconoscimento mentre un'applicazione gestisce un SpeechRecognized evento, usare la PauseRecognizerOnRecognition proprietà .
RequestRecognizerUpdate(Object, TimeSpan)
- Origine:
- SpeechRecognizer.cs
- Origine:
- SpeechRecognizer.cs
- Origine:
- SpeechRecognizer.cs
Richiede la sospensione del riconoscimento condiviso, l'aggiornamento dello stato e la fornitura di un offset e un token utente per l'evento associato.
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)
Parametri
- userToken
- Object
Informazioni definite dall'utente che contengono informazioni per l'operazione.
- audioPositionAheadToRaiseUpdate
- TimeSpan
L'offset dall'oggetto AudioPosition corrente per ritardare la richiesta.
Commenti
Il riconoscitore non avvia la richiesta di aggiornamento del riconoscitore finché il riconoscitore RecognizerAudioPosition non è uguale al valore corrente AudioPosition del audioPositionAheadToRaiseUpdate
parametro.
Quando il riconoscitore genera l'evento RecognizerUpdateReached , la UserToken proprietà di RecognizerUpdateReachedEventArgs contiene il valore del userToken
parametro .
Vedi anche
Si applica a
RequestRecognizerUpdate(Object)
- Origine:
- SpeechRecognizer.cs
- Origine:
- SpeechRecognizer.cs
- Origine:
- SpeechRecognizer.cs
Richiede la sospensione del riconoscimento condiviso, l'aggiornamento dello stato e la fornitura di un token utente per l'evento associato.
public:
void RequestRecognizerUpdate(System::Object ^ userToken);
public void RequestRecognizerUpdate (object userToken);
member this.RequestRecognizerUpdate : obj -> unit
Public Sub RequestRecognizerUpdate (userToken As Object)
Parametri
- userToken
- Object
Informazioni definite dall'utente che contengono informazioni per l'operazione.
Commenti
Quando il riconoscitore genera l'evento RecognizerUpdateReached , la UserToken proprietà di RecognizerUpdateReachedEventArgs contiene il valore del userToken
parametro .
Per specificare un offset di posizione audio, usare il RequestRecognizerUpdate metodo .
Vedi anche
Si applica a
RequestRecognizerUpdate()
- Origine:
- SpeechRecognizer.cs
- Origine:
- SpeechRecognizer.cs
- Origine:
- SpeechRecognizer.cs
Richiede la sospensione del riconoscimento condiviso e l'aggiornamento dello stato.
public:
void RequestRecognizerUpdate();
public void RequestRecognizerUpdate ();
member this.RequestRecognizerUpdate : unit -> unit
Public Sub RequestRecognizerUpdate ()
Commenti
Quando il riconoscitore genera l'evento RecognizerUpdateReached , la UserToken proprietà di RecognizerUpdateReachedEventArgs è null
.
Per fornire un token utente, usare il RequestRecognizerUpdate metodo o RequestRecognizerUpdate . Per specificare un offset di posizione audio, usare il RequestRecognizerUpdate metodo .