SpeechRecognitionEngine.BabbleTimeout 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
인식을 완료하기 전에 SpeechRecognitionEngine에서 배경 잡음만 포함된 입력만 허용할 시간 간격을 가져오거나 설정합니다.
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
속성 값
시간 간격의 지속 시간입니다.
예외
이 속성은 0보다 작은 값으로 설정되어 있습니다.
예제
다음 예제에서는 기본 음성 인식 기능을 설정 하는 방법을 보여 주는 콘솔 애플리케이션 부분을 보여 줍니다.는 BabbleTimeout 하 고 InitialSilenceTimeout 의 속성을 SpeechRecognitionEngine 음성 인식 시작 하기 전에 합니다. 음성 인식기의 AudioStateChanged 및 RecognizeCompleted 이벤트에 대한 처리기는 의 속성이 인식 작업에 미치는 InitialSilenceTimeout 영향을 보여 주는 이벤트 정보를 콘솔에 SpeechRecognitionEngine 출력합니다.
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);
}
}
}
설명
각 음성 인식기에는 무음과 음성을 구분하는 알고리즘이 있습니다. 인식기는 인식기의 로드 및 활성화된 음성 인식 문법의 초기 규칙과 일치하지 않는 무음이 아닌 입력을 백그라운드 노이즈로 분류합니다. 인식기가 babble 시간 제한 간격 내에 백그라운드 노이즈 및 무음만 수신하면 인식기가 해당 인식 작업을 완료합니다.
비동기 인식 작업의 경우 인식기는 이벤트를 발생 RecognizeCompleted 합니다. 여기서 RecognizeCompletedEventArgs.BabbleTimeout 속성은
true
이고 RecognizeCompletedEventArgs.Result 속성은 입니다null
.동기 인식 작업 및 에뮬레이션의 경우 인식기에서는 유효한 RecognitionResult대신 를 반환
null
합니다.
babble 시간 제한 기간이 0으로 설정된 경우 인식기는 babble 시간 제한 검사 수행하지 않습니다. 시간 제한 간격은 음수가 아닌 값일 수 있습니다. 기본값은 0초입니다.
적용 대상
추가 정보
.NET