여러 가지 테스트 프로그램으로 며칠 동안 음성 인식을 조금 해봤지만 제대로 작동합니다. 그러나 나는 그것을 OpenGL 프로젝트에 구현하려고 시도했는데 'Recognized'함수가 호출되지 않고있다.C# 음성 인식 (System.Speech.Recognition) 문제
Windows 음성 인식 기능 ("듣기 시작하기"라는 말은 "듣기 시작"이라고 말한 것)에서 단어를로드 할 때로드되는 단어가 표시되므로 단어를 올바르게 감지하고 있다고 가정합니다. 어떤 이유로 이벤트를 트리거하지 않습니다.
다음은 내가 사용 해본 코드입니다. (코드에 표시된 것 외에) 알아야 할 것은 AddCommands가 다른 곳에서 호출되어 테스트 중이라는 것을 추가하고 'Initiate'가 폼로드시 호출된다는 것입니다. .
public class SpeechControls
{
public static SpeechRecognizer sRecognizer;
private static Dictionary<string, IVoiceControlable> controllers = new Dictionary<string, IVoiceControlable>();
public static void Initiate()
{
sRecognizer = new SpeechRecognizer();
sRecognizer.Enabled = true;
sRecognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(Recognized);
}
private static void Recognized(object obj, SpeechRecognizedEventArgs args)
{
controllers[args.Result.Text].TriggerCommand(args.Result.Text);
}
public static void AddCommands(string[] commands, IVoiceControlable control)
{
foreach (string str in commands)
{
controllers.Add(str, control);
}
sRecognizer.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(commands))));
}
}
'인식'이 실행되지 않는 이유를 아는 사람이 있습니까?
도움을 주셔서 감사합니다.
'시작'을 호출하는 위치는 어디입니까? –
아, 죄송합니다. 메인 양식을로드하는 중입니다. – Randomman159
SpeechRecognitionRejected 및 AudioSignalProblemOccurred 이벤트에 대한 처리기를 작성하는 것을 잊었습니다. –