Condividi tramite


SpeechRecognitionEngine.RequestRecognizerUpdate Metodo

Definizione

Richiede la sospensione del riconoscimento per aggiornarne lo stato.

Overload

RequestRecognizerUpdate(Object, TimeSpan)

Richiede la sospensione del riconoscimento per aggiornarne lo stato e fornire un offset e un token utente per l'evento associato.

RequestRecognizerUpdate(Object)

Richiede la sospensione del riconoscimento per aggiornarne lo stato e fornire un token utente per l'evento associato.

RequestRecognizerUpdate()

Richiede la sospensione del riconoscimento per aggiornarne lo stato.

Commenti

Utilizzare questo metodo per sincronizzare le modifiche apportate al riconoscitore. 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 si gestiscono RecognizerUpdateReached gli eventi, il riconoscitore viene sospeso fino a quando non viene restituito il gestore eventi.

Nota

Se l'input per il riconoscitore viene modificato prima che il riconoscitore generi l'evento RecognizerUpdateReached , la richiesta viene eliminata.

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.

RequestRecognizerUpdate(Object, TimeSpan)

Origine:
SpeechRecognitionEngine.cs
Origine:
SpeechRecognitionEngine.cs
Origine:
SpeechRecognitionEngine.cs

Richiede la sospensione del riconoscimento per aggiornarne lo stato e fornire 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 non è uguale all'oggetto RecognizerAudioPosition corrente AudioPosition più audioPositionAheadToRaiseUpdate.

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:
SpeechRecognitionEngine.cs
Origine:
SpeechRecognitionEngine.cs
Origine:
SpeechRecognitionEngine.cs

Richiede la sospensione del riconoscimento per aggiornarne lo stato e fornire 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:
SpeechRecognitionEngine.cs
Origine:
SpeechRecognitionEngine.cs
Origine:
SpeechRecognitionEngine.cs

Richiede la sospensione del riconoscimento per aggiornarne lo stato.

public:
 void RequestRecognizerUpdate();
public void RequestRecognizerUpdate ();
member this.RequestRecognizerUpdate : unit -> unit
Public Sub RequestRecognizerUpdate ()

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 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");  
    }  
  }  
}  

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 .

Vedi anche

Si applica a