SpeechRecognitionEngine.BabbleTimeout Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit l’intervalle de temps pendant lequel une SpeechRecognitionEngine entrée accepte uniquement le bruit d’arrière-plan, avant de finaliser la reconnaissance.
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
Valeur de propriété
Durée de l’intervalle de temps.
Exceptions
Cette propriété est définie sur moins de 0 secondes.
Exemples
L’exemple suivant montre une partie d’une application console qui illustre la reconnaissance vocale de base qui définit les propriétés et InitialSilenceTimeout les BabbleTimeout propriétés d’une SpeechRecognitionEngine reconnaissance vocale avant de lancer la reconnaissance vocale. Les gestionnaires des informations d’événement de sortie du AudioStateChanged module de reconnaissance vocale et RecognizeCompleted des événements dans la console pour montrer comment les InitialSilenceTimeout propriétés d’une SpeechRecognitionEngine opération de reconnaissance affectent.
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);
}
}
}
Remarques
Chaque module de reconnaissance vocale a un algorithme permettant de faire la distinction entre le silence et la parole. Le module de reconnaissance classifie comme bruit d’arrière-plan toute entrée sans silence qui ne correspond pas à la règle initiale de l’une des grammaires de reconnaissance vocale chargées et activées du module de reconnaissance vocale. Si le module de reconnaissance reçoit uniquement le bruit d’arrière-plan et le silence dans l’intervalle de délai d’expiration de babble, le module de reconnaissance finalise cette opération de reconnaissance.
Pour les opérations de reconnaissance asynchrone, le module de reconnaissance déclenche l’événement RecognizeCompleted , où la RecognizeCompletedEventArgs.BabbleTimeout propriété est
true, et la RecognizeCompletedEventArgs.Result propriété estnull.Pour les opérations de reconnaissance synchrone et l’émulation, le module de reconnaissance retourne
null, au lieu d’une valeur valide RecognitionResult.
Si la période de délai d’expiration de babble est définie sur 0, le module de reconnaissance n’effectue pas de vérification du délai d’expiration babble. L’intervalle de délai d’expiration peut être n’importe quelle valeur non négative. La valeur par défaut est de 0 secondes.