Udostępnij za pośrednictwem


SpeechRecognitionEngine.InitialSilenceTimeout Właściwość

Definicja

Pobiera lub ustawia interwał czasu, w którym SpeechRecognitionEngine akceptuje dane wejściowe zawierające tylko ciszę przed sfinalizowaniem rozpoznawania.

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

Wartość właściwości

Czas trwania interwału ciszy.

Wyjątki

Ta właściwość jest ustawiona na mniej niż 0 sekund.

Przykłady

Poniższy przykład przedstawia część aplikacji konsolowej, która demonstruje podstawowe rozpoznawanie mowy. Przykład ustawia BabbleTimeout właściwości i InitialSilenceTimeout obiektu SpeechRecognitionEngine przed zainicjowaniem rozpoznawania mowy. Programy obsługi dla informacji o zdarzeniach i RecognizeCompleted zdarzeniach rozpoznawania AudioStateChanged mowy są wyświetlane w konsoli programu w celu zademonstrowania wpływu InitialSilenceTimeout właściwości właściwości SpeechRecognitionEngine na operacje rozpoznawania.

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

Uwagi

Każdy aparat rozpoznawania mowy ma algorytm rozróżniania ciszy i mowy. Jeśli dane wejściowe rozpoznawania są ciche podczas początkowego limitu czasu ciszy, rozpoznawanie finalizuje tę operację rozpoznawania.

Jeśli początkowy interwał limitu czasu ciszy jest ustawiony na wartość 0, rozpoznawanie nie wykonuje sprawdzania limitu czasu początkowej ciszy. Interwał limitu czasu może być dowolną wartością nieujemną. Wartość domyślna to 0 sekund.

Dotyczy

Zobacz też