SpeechRecognitionEngine.InitialSilenceTimeout Propiedad

Definición

Obtiene o establece el intervalo de tiempo durante el que SpeechRecognitionEngine acepta la entrada que contiene solo silencio, antes de finalizar el reconocimiento.

public:
 property TimeSpan InitialSilenceTimeout { TimeSpan get(); void set(TimeSpan value); };
public TimeSpan InitialSilenceTimeout { get; set; }
member this.InitialSilenceTimeout : TimeSpan with get, set
Public Property InitialSilenceTimeout As TimeSpan

Valor de propiedad

La duración del intervalo de silencio.

Excepciones

Esta propiedad se establece en un valor menor que 0 segundos.

Ejemplos

En el ejemplo siguiente se muestra parte de una aplicación de consola que muestra el reconocimiento de voz básico. En el ejemplo se establecen las BabbleTimeout propiedades y InitialSilenceTimeout de un SpeechRecognitionEngine objeto antes de iniciar el reconocimiento de voz. Los controladores de la información de AudioStateChanged eventos y RecognizeCompleted del reconocedor de voz generan información de eventos en la consola para demostrar cómo afectan las InitialSilenceTimeout propiedades de una SpeechRecognitionEngine propiedad a las operaciones de reconocimiento.

using System;  
using System.Speech.Recognition;  

namespace SpeechRecognitionApp  
{  
  class Program  
  {  
    static void Main(string[] args)  
    {  

      // Initialize an in-process speech recognizer.  
      using (SpeechRecognitionEngine recognizer =  
        new SpeechRecognitionEngine(  
          new System.Globalization.CultureInfo("en-US")))  
      {  
        // Load a Grammar object.  
        recognizer.LoadGrammar(CreateServicesGrammar("FindServices"));  

        // Add event handlers.  
        recognizer.AudioStateChanged +=  
          new EventHandler<AudioStateChangedEventArgs>(  
            AudioStateChangedHandler);  
        recognizer.RecognizeCompleted +=  
          new EventHandler<RecognizeCompletedEventArgs>(  
            RecognizeCompletedHandler);  

        // Configure input to the speech recognizer.  
        recognizer.SetInputToDefaultAudioDevice();  

        recognizer.InitialSilenceTimeout = TimeSpan.FromSeconds(3);  
        recognizer.BabbleTimeout = TimeSpan.FromSeconds(2);  
        recognizer.EndSilenceTimeout = TimeSpan.FromSeconds(1);  
        recognizer.EndSilenceTimeoutAmbiguous = TimeSpan.FromSeconds(1.5);  

        Console.WriteLine("BabbleTimeout: {0}", recognizer.BabbleTimeout);  
        Console.WriteLine("InitialSilenceTimeout: {0}", recognizer.InitialSilenceTimeout);  
        Console.WriteLine("EndSilenceTimeout: {0}", recognizer.EndSilenceTimeout);  
        Console.WriteLine("EndSilenceTimeoutAmbiguous: {0}", recognizer.EndSilenceTimeoutAmbiguous);  
        Console.WriteLine();  

        // Start asynchronous speech recognition.  
        recognizer.RecognizeAsync(RecognizeMode.Single);  

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

    // Create a grammar and build it into a Grammar object.   
    static Grammar CreateServicesGrammar(string grammarName)  
    {  

      // Create a grammar for finding services in different cities.  
      Choices services = new Choices(new string[] { "restaurants", "hotels", "gas stations" });  
      Choices cities = new Choices(new string[] { "Seattle", "Boston", "Dallas" });  

      GrammarBuilder findServices = new GrammarBuilder("Find");  
      findServices.Append(services);  
      findServices.Append("near");  
      findServices.Append(cities);  

      // Create a Grammar object from the GrammarBuilder. 
      Grammar servicesGrammar = new Grammar(findServices);  
      servicesGrammar.Name = ("FindServices");  
      return servicesGrammar;  
    }  

    // Handle the AudioStateChanged event.  
    static void AudioStateChangedHandler(  
      object sender, AudioStateChangedEventArgs e)  
    {  
      Console.WriteLine("AudioStateChanged ({0}): {1}",  
        DateTime.Now.ToString("mm:ss.f"), e.AudioState);  
    }  

    // Handle the RecognizeCompleted event.  
    static void RecognizeCompletedHandler(  
      object sender, RecognizeCompletedEventArgs e)  
    {  
      Console.WriteLine("RecognizeCompleted ({0}):",  
        DateTime.Now.ToString("mm:ss.f"));  

      string resultText;  
      if (e.Result != null) { resultText = e.Result.Text; }  
      else { resultText = "<null>"; }  

      Console.WriteLine(  
        " BabbleTimeout: {0}; InitialSilenceTimeout: {1}; Result text: {2}",  
        e.BabbleTimeout, e.InitialSilenceTimeout, resultText);  
      if (e.Error != null)  
      {  
        Console.WriteLine(" Exception message: ", e.Error.Message);  
      }  

      // Start the next asynchronous recognition operation.  
      ((SpeechRecognitionEngine)sender).RecognizeAsync(RecognizeMode.Single);  
    }  
  }  
}  

Comentarios

Cada reconocedor de voz tiene un algoritmo para distinguir entre el silencio y la voz. Si la entrada del reconocedor se silencia durante el período de tiempo de espera de silencio inicial, el reconocedor finaliza esa operación de reconocimiento.

Si el intervalo de tiempo de espera de silencio inicial se establece en 0, el reconocedor no realiza una comprobación de tiempo de espera de silencio inicial. El intervalo de tiempo de espera puede ser cualquier valor no negativo. El valor predeterminado es 0 segundos.

Se aplica a

Consulte también