Бөлісу құралы:


SpeechRecognitionEngine.BabbleTimeout Свойство

Определение

Возвращает или задает интервал времени, в течение которого SpeechRecognitionEngine принимает входные данные, содержащие только фоновый шум, перед завершением распознавания.

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

Значение свойства

Длительность интервала времени.

Исключения

Это свойство имеет значение менее 0 секунд.

Примеры

В следующем примере показана часть консольного приложения, демонстрирующая базовое распознавание речи, которое задает BabbleTimeout и InitialSilenceTimeout свойства SpeechRecognitionEngine перед инициированием распознавания речи. Обработчики событий распознавателя AudioStateChanged речи и RecognizeCompleted события выходных событий в консоли, чтобы продемонстрировать, как InitialSilenceTimeout свойства операций SpeechRecognitionEngine распознавания влияют.

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

Комментарии

Каждый распознаватель речи имеет алгоритм для различения тишины и речи. Распознаватель классифицирует как фоновый шум любых немолчучих входных данных, которые не соответствуют первоначальному правилу любой загруженной и включенной грамматики распознавания речи распознавателя. Если распознаватель получает только фоновый шум и молчание в течение интервала времени ожидания, распознаватель завершает операцию распознавания.

Если для периода лепетного времени ожидания задано значение 0, распознаватель не выполняет проверку времени ожидания. Интервал времени ожидания может быть любым не отрицательным значением. Значение по умолчанию — 0 секунд.

Применяется к

См. также раздел