SpeechRecognizer.LoadGrammar(Grammar) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
음성 인식 문법을 로드합니다.
public:
void LoadGrammar(System::Speech::Recognition::Grammar ^ grammar);
public void LoadGrammar(System.Speech.Recognition.Grammar grammar);
member this.LoadGrammar : System.Speech.Recognition.Grammar -> unit
Public Sub LoadGrammar (grammar As Grammar)
매개 변수
- grammar
- Grammar
로드할 음성 인식 문법입니다.
예제
다음 예제는 음성 인식 문법을 로드하고 비동기 에뮬레이트된 입력, 연결된 인식 결과 및 음성 인식기에서 발생하는 관련 이벤트를 보여 주는 콘솔 애플리케이션의 일부입니다. Windows 음성 인식이 실행되고 있지 않으면 이 애플리케이션을 시작하면 Windows 음성 인식도 시작됩니다. Windows 음성 인식이 절전 모드 상태이 EmulateRecognizeAsync 면 항상 null을 반환합니다.
using System;
using System.Speech.Recognition;
using System.Threading;
namespace SharedRecognizer
{
class Program
{
// Indicate whether the asynchronous emulate recognition
// operation has completed.
static bool completed;
static void Main(string[] args)
{
// Initialize an instance of the shared recognizer.
using (SpeechRecognizer recognizer = new SpeechRecognizer())
{
// Create and load a sample grammar.
Grammar testGrammar =
new Grammar(new GrammarBuilder("testing testing"));
testGrammar.Name = "Test Grammar";
recognizer.LoadGrammar(testGrammar);
// Attach event handlers for recognition events.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(
SpeechRecognizedHandler);
recognizer.EmulateRecognizeCompleted +=
new EventHandler<EmulateRecognizeCompletedEventArgs>(
EmulateRecognizeCompletedHandler);
completed = false;
// This EmulateRecognizeAsync call generates a SpeechRecognized event.
recognizer.EmulateRecognizeAsync("testing testing");
// Wait for the asynchronous operation to complete.
while (!completed)
{
Thread.Sleep(333);
}
completed = false;
// This EmulateRecognizeAsync call does not match the grammar
// or generate a SpeechRecognized event.
recognizer.EmulateRecognizeAsync("testing one two three");
// Wait for the asynchronous operation to complete.
while (!completed)
{
Thread.Sleep(333);
}
}
Console.WriteLine();
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
// Handle the SpeechRecognized event.
static void SpeechRecognizedHandler(
object sender, SpeechRecognizedEventArgs e)
{
if (e.Result != null)
{
Console.WriteLine("Recognition result = {0}",
e.Result.Text ?? "<no text>");
}
else
{
Console.WriteLine("No recognition result");
}
}
// Handle the EmulateRecognizeCompleted event.
static void EmulateRecognizeCompletedHandler(
object sender, EmulateRecognizeCompletedEventArgs e)
{
if (e.Result == null)
{
Console.WriteLine("No result generated.");
}
completed = true;
}
}
}
설명
음성 인식 문법이 이미 로드되었거나, 비동기적으로 로드되거나, 인식기에 로드되지 않은 경우 공유 인식기가 예외를 throw합니다. 인식기가 실행 중인 경우 애플리케이션은 문법을 로드, 언로드, 사용 또는 사용하지 않도록 설정하기 전에 음성 인식 엔진을 일시 중지하는 데 사용해야 RequestRecognizerUpdate 합니다.
음성 인식 문법을 비동기적으로 로드하려면 이 메서드를 LoadGrammarAsync 사용합니다.