SpeechRecognitionEngine.BabbleTimeout Własność
Definicja
Ważny
Niektóre informacje dotyczą produktów przedpremierowych, które mogą zostać znacznie zmodyfikowane przed premierą. Microsoft nie udziela żadnych gwarancji, ani wyraźnych, ani domniemanych, dotyczących informacji podanych tutaj.
Pobiera lub ustawia interwał czasu, w którym SpeechRecognitionEngine akceptuje dane wejściowe zawierające tylko szum w tle, przed sfinalizowaniem rozpoznawania.
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
Wartość nieruchomości
Czas trwania przedziału czasu.
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, które ustawia BabbleTimeout właściwości SpeechRecognitionEngine i InitialSilenceTimeout obiektu przed zainicjowaniem rozpoznawania mowy. Programy obsługi dla informacji o zdarzeniach i zdarzeniach rozpoznawania AudioStateChanged mowy są wyświetlane w konsoli programu w celu zademonstrowania, w jaki sposób InitialSilenceTimeout właściwości SpeechRecognitionEngine operacji rozpoznawania mają wpływ.RecognizeCompleted
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. Aparat rozpoznawania klasyfikuje jako szum w tle wszelkie dane wejściowe inne niż milczenie, które nie są zgodne z początkową regułą żadnego z załadowanych i włączonych gramatyk rozpoznawania mowy przez rozpoznawanie mowy. Jeśli rozpoznawanie odbiera tylko szum tła i milczenie w interwale limitu czasu pałka, rozpoznawanie finalizuje tę operację rozpoznawania.
W przypadku operacji rozpoznawania asynchronicznego funkcja rozpoznawania zgłasza RecognizeCompleted zdarzenie, w którym RecognizeCompletedEventArgs.BabbleTimeout właściwość to
true, a RecognizeCompletedEventArgs.Result właściwość tonull.W przypadku operacji rozpoznawania synchronicznego i emulacji funkcja rozpoznawania zwraca
nullwartość zamiast prawidłowego RecognitionResultelementu .
Jeśli okres limitu czasu pałka jest ustawiony na 0, rozpoznawanie nie wykonuje sprawdzania limitu czasu pawłka. Interwał limitu czasu może być dowolną wartością nieujemną. Wartość domyślna to 0 sekund.