SpeechRecognizer.RequestRecognizerUpdate Metodo

Definizione

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 .

Vedi anche

Si applica a