SpeechRecognitionEngine.BabbleTimeout Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger det tidsintervall under vilket en SpeechRecognitionEngine accepterar indata som endast innehåller bakgrundsbrus innan igenkänningen slutförs.
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
Egenskapsvärde
Varaktigheten för tidsintervallet.
Undantag
Den här egenskapen är inställd på mindre än 0 sekunder.
Exempel
I följande exempel visas en del av ett konsolprogram som visar grundläggande taligenkänning som anger BabbleTimeout egenskaperna och InitialSilenceTimeout för en SpeechRecognitionEngine innan taligenkänning initieras. Hanterare för taligenkänningens och AudioStateChanged händelserna matar RecognizeCompleted ut händelseinformation till konsolen för att visa hur InitialSilenceTimeout egenskaperna för en SpeechRecognitionEngine påverkar igenkänningsåtgärder.
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);
}
}
}
Kommentarer
Varje taligenkänning har en algoritm för att skilja mellan tystnad och tal. Identifieraren klassificerar som bakgrundsbrus alla icke-tysta indata som inte matchar den första regeln för någon av identifierarens inlästa och aktiverade taligenkänningsmatik. Om identifieraren endast tar emot bakgrundsbrus och tystnad inom tidsgränsintervallet för babbeln slutför identifieraren den igenkänningsåtgärden.
För asynkrona igenkänningsåtgärder genererar identifieraren RecognizeCompleted händelsen, där RecognizeCompletedEventArgs.BabbleTimeout egenskapen är
trueoch egenskapen RecognizeCompletedEventArgs.Result ärnull.För synkrona igenkänningsåtgärder och emulering returnerar
nullidentifieraren , i stället för en giltig RecognitionResult.
Om tidsgränsen för babbeln är inställd på 0, utför inte identifieraren en pratbar timeout-check. Tidsgränsintervallet kan vara ett icke-negativt värde. Standardvärdet är 0 sekunder.