SpeechRecognitionEngine.BabbleTimeout Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u het tijdsinterval op waarmee invoer SpeechRecognitionEngine wordt geaccepteerd die alleen achtergrondruis bevat, voordat u de herkenning voltooit.
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
Waarde van eigenschap
De duur van het tijdsinterval.
Uitzonderingen
Deze eigenschap is ingesteld op minder dan 0 seconden.
Voorbeelden
In het volgende voorbeeld ziet u een deel van een consoletoepassing die eenvoudige spraakherkenning demonstreert waarmee de BabbleTimeout en InitialSilenceTimeout eigenschappen van een SpeechRecognitionEngine toepassing worden ingesteld voordat spraakherkenning wordt gestart. Handlers voor de gebeurtenisinformatie van AudioStateChanged de spraakherkennings- en RecognizeCompleted gebeurtenissenuitvoeren naar de console om te laten zien hoe de InitialSilenceTimeout eigenschappen van een SpeechRecognitionEngine herkenningsbewerking van invloed zijn.
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);
}
}
}
Opmerkingen
Elke spraakherkenning heeft een algoritme om onderscheid te maken tussen stilte en spraak. De recognizer classificeert als achtergrondruis eventuele niet-stilte-invoer die niet overeenkomt met de eerste regel van een van de geladen en ingeschakelde grammatica's voor spraakherkenning van de recognizer. Als de recognizer alleen achtergrondruis en stilte ontvangt binnen het time-outinterval van babbels, voltooit de recognizer die herkenningsbewerking.
Voor asynchrone herkenningsbewerkingen genereert de recognizer de RecognizeCompleted gebeurtenis, waarbij de RecognizeCompletedEventArgs.BabbleTimeout eigenschap zich bevindt
trueen de RecognizeCompletedEventArgs.Result eigenschap isnull.Voor synchrone herkenningsbewerkingen en emulatie retourneert
nullde recognizer , in plaats van een geldige RecognitionResult.
Als de time-outperiode voor babble is ingesteld op 0, voert de recognizer geen time-outcontrole uit. Het time-outinterval kan elke niet-negatieve waarde zijn. De standaardwaarde is 0 seconden.