SpeechRecognitionEngine.BabbleTimeout Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dient zum Abrufen oder Festlegen des Zeitintervalls, in dem eine SpeechRecognitionEngine Eingabe nur Hintergrundgeräusche enthält, bevor die Erkennung abgeschlossen wird.
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
Eigenschaftswert
Die Dauer des Zeitintervalls.
Ausnahmen
Diese Eigenschaft wird auf weniger als 0 Sekunden festgelegt.
Beispiele
Das folgende Beispiel zeigt einen Teil einer Konsolenanwendung, die die grundlegende Spracherkennung veranschaulicht, die die BabbleTimeout Eigenschaften InitialSilenceTimeout einer Spracherkennung vor dem Initiieren der SpeechRecognitionEngine Spracherkennung festlegt. Handler für die Ereignisinformationen der Spracherkennung und RecognizeCompleted Ereignisse geben Ereignisinformationen an die Konsole aus, um zu veranschaulichen, wie sich die InitialSilenceTimeout Eigenschaften eines SpeechRecognitionEngine Erkennungsvorgänges AudioStateChanged auswirken.
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);
}
}
}
Hinweise
Jede Spracherkennung verfügt über einen Algorithmus, um zwischen Stille und Sprache zu unterscheiden. Die Erkennung klassifiziert hintergrundrauschende Eingaben, die nicht mit der anfänglichen Regel einer der geladenen und aktivierten Grammatiken für die Spracherkennung übereinstimmen. Wenn die Erkennung nur Hintergrundgeräusche und Stille innerhalb des Zeitüberschreitungsintervalls empfängt, schließt die Erkennung diesen Erkennungsvorgang ab.
Bei asynchronen Erkennungsvorgängen löst die Erkennung das RecognizeCompleted Ereignis aus, in dem sich die RecognizeCompletedEventArgs.BabbleTimeout Eigenschaft befindet
true, und die RecognizeCompletedEventArgs.Result Eigenschaft istnull.Bei synchronen Erkennungsvorgängen und -emulationen gibt
nulldie Erkennung anstelle eines gültigen RecognitionResultWerts zurück.
Wenn der Babble Timeout-Zeitraum auf 0 festgelegt ist, führt die Erkennung keine Babble Timeout-Prüfung durch. Das Timeoutintervall kann ein beliebiger nicht negativer Wert sein. Der Standardwert ist 0 Sekunden.