Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

RecognizeCompletedEventArgs::InputStreamEnded Property

 

Gets a value indicating whether the input stream ended.

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

public:
property bool InputStreamEnded {
	bool get();
}

Property Value

Type: System::Boolean

true if the recognizer no longer has audio input; otherwise, false.

The recognizer sets this property to true when a file provides the input stream for the recognizer and the end of the file is reached. The end of the input stream can coincide with a successful recognition operation. For more information about using a file as the input stream, see the SetInputToAudioStream and SetInputToWaveFile methods.

The following example performs asynchronous speech recognition on a speech recognition grammar, using the SpeechRecognitionEngine::RecognizeAsync method with the in-process recognizer. The example uses Choices and GrammarBuilder objects to create the speech recognition grammar before building it into a Grammar object. A handler for the SpeechRecognitionEngine::RecognizeCompleted event outputs information about the recognition operation to the console.

using System;
using System.Speech.Recognition;

namespace SampleRecognition
{
  class Program
  {
    private static SpeechRecognitionEngine recognizer;
    public static void Main(string[] args)
    {

      // Initialize a SpeechRecognitionEngine object and set its input.
      recognizer = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US"));
      recognizer.SetInputToDefaultAudioDevice();

      // Configure recognition parameters.
      recognizer.InitialSilenceTimeout = TimeSpan.FromSeconds(5.0);
      recognizer.BabbleTimeout = TimeSpan.FromSeconds(3.0);
      recognizer.EndSilenceTimeout = TimeSpan.FromSeconds(1.0);
      recognizer.EndSilenceTimeoutAmbiguous = TimeSpan.FromSeconds(1.0);

      // Add a handler for the LoadGrammarCompleted event.
      recognizer.LoadGrammarCompleted +=
        new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);

      // Add a handler for the RecognizeCompleted event.
      recognizer.RecognizeCompleted += 
        new EventHandler<RecognizeCompletedEventArgs>(recognizer_RecognizeCompleted);

      // Create a speech recognition grammar and build it into a Grammar object.
      Choices bankingMenu = new Choices(new string[] 
      { "Access accounts", "Transfer funds", "Pay bills", "Get loan balance" });
      GrammarBuilder banking = new GrammarBuilder(bankingMenu);
      Grammar bankGrammar = new Grammar(banking);
      bankGrammar.Name = "Banking Menu";

      // Load the Grammar objects to the recognizer.
      recognizer.LoadGrammarAsync(bankGrammar);

      // Start asynchronous, continuous recognition.
      recognizer.RecognizeAsync();

      // Keep the console window open.
      Console.ReadLine();
    }

    // Handle the RecognizeCompleted event.
    static void recognizer_RecognizeCompleted(object sender, RecognizeCompletedEventArgs e)
    {
      if (e.Error != null)
      {
        Console.WriteLine(
          "RecognizeCompleted, error occurred during recognition: {0}", e.Error);
        return;
      }

      if (e.InitialSilenceTimeout || e.BabbleTimeout)
      {
        Console.WriteLine(
          "RecognizeCompleted: BabbleTimeout({0}), InitialSilenceTimeout({1}).",
          e.BabbleTimeout, e.InitialSilenceTimeout);
        return;
      }

      if (e.InputStreamEnded)
      {
        Console.WriteLine(
          "RecognizeCompleted: AudioPosition({0}), InputStreamEnded({1}).",
          e.AudioPosition, e.InputStreamEnded);
      }

      if (e.Result != null)
      {
        Console.WriteLine(
          "RecognizeCompleted: Grammar ({0}), Text ({1}), Confidence ({2}), AudioPosition ({3}).",
          e.Result.Grammar.Name, e.Result.Text, e.Result.Confidence, e.AudioPosition);
      }

      else
      {
        Console.WriteLine("RecognizeCompleted: No result.");
      } 

      Console.WriteLine();
      Console.WriteLine("Press any key to exit...");
      Console.ReadKey();
    }

    // Handle the LoadGrammarCompleted event. 
    static void recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e)
    {
      string grammarName = e.Grammar.Name;
      bool grammarLoaded = e.Grammar.Loaded;
      bool grammarEnabled = e.Grammar.Enabled;

      if (e.Error != null)
      {
        Console.WriteLine("LoadGrammar for {0} failed with a {1}.",
        grammarName, e.Error.GetType().Name);

        // Add exception handling code here.
      }

      Console.WriteLine("Grammar {0} {1} loaded and {2} enabled.", grammarName, 
        (grammarLoaded) ? "is" : "is not", (grammarEnabled) ? "is" : "is not");
    }
  }          
}

.NET Framework
Available since 3.0
Return to top
Show:
© 2017 Microsoft