SpeechRecognitionEngine.InitialSilenceTimeout Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Tanımayı sonlandırmadan önce yalnızca sessizlik içeren girişi SpeechRecognitionEngine kabul ettiği zaman aralığını alır veya ayarlar.
public:
property TimeSpan InitialSilenceTimeout { TimeSpan get(); void set(TimeSpan value); };
public TimeSpan InitialSilenceTimeout { get; set; }
member this.InitialSilenceTimeout : TimeSpan with get, set
Public Property InitialSilenceTimeout As TimeSpan
Özellik Değeri
Sessizlik aralığının süresi.
Özel durumlar
Bu özellik 0 saniyeden kısa olarak ayarlanır.
Örnekler
Aşağıdaki örnek, temel konuşma tanımayı gösteren bir konsol uygulamasının bir bölümünü gösterir. Örnek, konuşma tanımayı BabbleTimeout başlatmadan önce öğesinin SpeechRecognitionEngine ve InitialSilenceTimeout özelliklerini ayarlar. Konuşma tanıyıcısının AudioStateChanged ve RecognizeCompleted olaylarının işleyicileri, özelliklerin SpeechRecognitionEngine özelliklerinin tanıma işlemlerini nasıl InitialSilenceTimeout etkilediğini göstermek için konsola olay bilgileri çıkışı sağlar.
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);
}
}
}
Açıklamalar
Her konuşma tanıyıcının sessizliği ve konuşmayı ayırt etmek için bir algoritması vardır. Tanıyıcı girişi ilk sessizlik zaman aşımı süresi boyunca sessizlikse, tanıyıcı bu tanıma işlemini son haline getirir.
Zaman uyumsuz tanıma işlemleri ve öykünme için tanıyıcı, özelliğinin ve özelliğinin RecognizeCompletedRecognizeCompletedEventArgs.ResultRecognizeCompletedEventArgs.InitialSilenceTimeout
true
null
olduğu olayı tetikler.Zaman uyumlu tanıma işlemleri ve öykünme için, tanıyıcı geçerli RecognitionResultbir yerine döndürür
null
.
İlk sessizlik zaman aşımı aralığı 0 olarak ayarlanırsa, tanıyıcı ilk sessizlik zaman aşımı denetimini gerçekleştirmez. Zaman aşımı aralığı negatif olmayan herhangi bir değer olabilir. Varsayılan değer 0 saniyedir.