SpeechRecognitionEngine.BabbleTimeout Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece el intervalo de tiempo durante el que SpeechRecognitionEngine acepta la entrada que contiene solo ruido de fondo, antes de finalizar el reconocimiento.
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
Valor de propiedad
La duración del intervalo de tiempo.
Excepciones
Esta propiedad se establece en un valor menor que 0 segundos.
Ejemplos
En el ejemplo siguiente se muestra parte de una aplicación de consola que muestra el reconocimiento de voz básico que establece las BabbleTimeout propiedades y InitialSilenceTimeout de un SpeechRecognitionEngine antes de iniciar el reconocimiento de voz. Los controladores de la información de eventos y RecognizeCompleted del AudioStateChanged reconocedor de voz generan información de eventos en la consola para demostrar cómo afectan las InitialSilenceTimeout propiedades de una SpeechRecognitionEngine operación de reconocimiento.
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);
}
}
}
Comentarios
Cada reconocedor de voz tiene un algoritmo para distinguir entre silencio y voz. El reconocedor clasifica como ruido de fondo cualquier entrada sin silencio que no coincida con la regla inicial de ninguna de las gramáticas de reconocimiento de voz cargadas y habilitadas del reconocedor. Si el reconocedor recibe solo ruido de fondo y silencio dentro del intervalo de tiempo de espera babble, el reconocedor finaliza esa operación de reconocimiento.
Para las operaciones de reconocimiento asincrónicas, el reconocedor genera el RecognizeCompleted evento , donde la RecognizeCompletedEventArgs.BabbleTimeout propiedad es
true
y la RecognizeCompletedEventArgs.Result propiedad esnull
.Para las operaciones de reconocimiento sincrónicas y la emulación, el reconocedor devuelve
null
, en lugar de un válido RecognitionResult.
Si el período de tiempo de espera de babble está establecido en 0, el reconocedor no realiza una comprobación de tiempo de espera babble. El intervalo de tiempo de espera puede ser cualquier valor no negativo. El valor predeterminado es 0 segundos.