Export (0) Print
Expand All

RecognizerUpdateReachedEventArgs.UserToken Property

Gets the UserToken passed to the system when an application calls RequestRecognizerUpdate or RequestRecognizerUpdate.

Namespace:  System.Speech.Recognition
Assembly:  System.Speech (in System.Speech.dll)

public Object UserToken { get; }

Property Value

Type: System.Object
Returns an object that contains the UserToken.

An application specifies a UserToken when it requests the generation of a RecognizerUpdateReached event by calling one of the SpeechRecognitionEngine.RequestRecognizerUpdate or SpeechRecognizer.RequestRecognizerUpdate methods that take a userToken parameter.

The following example shows a console application that loads and unloads Grammar objects. The application uses the RequestRecognizerUpdate method to request the speech recognition engine to pause so it can receive an update. The method passes in a String object for the userToken parameter that describes what the application will recognize after the update. The application then loads or unloads a Grammar object.

At each update, a handler for SpeechRecognitionEngine.RecognizerUpdateReached event writes the contents of userToken to the console. As grammars are loaded and unloaded, the application first recognizes the names of farm animals, then the names of farm animals and the names of fruits, then only the names of fruits.

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 farmAnimals grammar
        recognizer.LoadGrammar(farmAnimals);

        // Start continuous, asynchronous recognition.
        recognizer.RecognizeAsync(RecognizeMode.Multiple);
        Console.WriteLine("Starting asynchronous recognition...");
        Console.WriteLine("  Farm animals will now be recognized.");
        Thread.Sleep(7000);
        Console.WriteLine();

        // Load the Fruit grammar.
        string activeGrammars = "Farm animals and fruits will now be recognized.";
        recognizer.RequestRecognizerUpdate(activeGrammars);
        recognizer.LoadGrammarAsync(favoriteFruit);
        Console.WriteLine();
        Thread.Sleep(7000);
        Console.WriteLine();

        // Unload the Farm grammar.
        string onlyFruit = "Only fruits will now be recognized.";
        recognizer.RequestRecognizerUpdate(onlyFruit);
        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, describe what the application will recognize next.
    public static void recognizer_RecognizerUpdateReached(object sender, RecognizerUpdateReachedEventArgs e)
    {
      Console.WriteLine("  Update reached: " + e.UserToken);
    }

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

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft