Share via


SpeechRecognitionEngine.BabbleTimeout Özellik

Tanım

Tanımayı sonlandırmadan önce, bir SpeechRecognitionEngine girişin yalnızca arka plan gürültüsü içeren girişi kabul ettiği zaman aralığını alır veya ayarlar.

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

Özellik Değeri

Zaman aralığının süresi.

Özel durumlar

Bu özellik 0 saniyeden kısa olarak ayarlanır.

Örnekler

Aşağıdaki örnek, konuşma tanımayı başlatmadan önce bir öğesinin ve özelliklerini ayarlayan BabbleTimeout temel konuşma tanımayı gösteren bir SpeechRecognitionEngine konsol uygulamasının bölümünü gösterir.InitialSilenceTimeout Konuşma tanıyıcısının AudioStateChanged ve RecognizeCompleted olaylarının işleyicileri, bir tanıma işlemlerinin özelliklerini SpeechRecognitionEngine nasıl etkilediğini göstermek için konsola InitialSilenceTimeout olay bilgilerini döndürür.

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

Açıklamalar

Her konuşma tanıyıcısı, sessizliği ve konuşmayı ayırt etmek için bir algoritmaya sahiptir. Tanıyıcı, herhangi bir tanıyıcının yüklenen ve etkinleştirilen konuşma tanıma dil bilgisinin ilk kuralıyla eşleşmeyen sessiz olmayan girişlerde arka plan gürültüsü olarak sınıflandırır. Tanıyıcı, geveze zaman aşımı aralığında yalnızca arka plan gürültüsü ve sessizlik alıyorsa, tanıyıcı bu tanıma işlemini son haline getirir.

Babble zaman aşımı süresi 0 olarak ayarlanırsa, tanıyıcı bir babble zaman aşımı denetimi gerçekleştirmez. Zaman aşımı aralığı negatif olmayan herhangi bir değer olabilir. Varsayılan değer 0 saniyedir.

Şunlara uygulanır

Ayrıca bkz.