도움이 필요합니다. 나는 내가하는 말을 알아보고 내가하는 말을 할 응용 프로그램을 만들고 싶습니다. 예를 들면 다음과 같습니다.자유 의사 표현이있는 음성 인식
이 어떤 응용 프로그램 이름이든간에 open [notepad]
이라고 말하면 메모장을 열어야합니다.
은 내가 모두 문법 및 DictationGrammar를 사용할 필요가 있다고 생각,하지만 난 방법을 모르겠어요. 도와주세요. 감사.
내 코드는 이제 다음과 같습니다
string WelcomeSentence = "Hello sir, how are you today";
SpeechSynthesizer sSynth = new SpeechSynthesizer();
PromptBuilder pBuilder = new PromptBuilder();
SpeechRecognitionEngine sRecognize = new SpeechRecognitionEngine();
private void frmMain_Load(object sender, EventArgs e)
{
sSynth.SelectVoice("IVONA Amy");
sSynth.SetOutputToDefaultAudioDevice();
pBuilder.ClearContent();
pBuilder.AppendText(WelcomeSentence);
sSynth.Speak(pBuilder);
Choices sList = new Choices();
sList.Add(File.ReadAllLines(@"Commands.ekd"));
Grammar gr = new Grammar(new GrammarBuilder(sList));
DictationGrammar dgr = new DictationGrammar();
try
{
sRecognize.RequestRecognizerUpdate();
sRecognize.LoadGrammar(gr);
sRecognize.SpeechRecognized += sRecognize_SpeechRecognized;
sRecognize.SetInputToDefaultAudioDevice();
sRecognize.RecognizeAsync(RecognizeMode.Multiple);
sRecognize.Recognize();
}
catch { return; }
}
private void sRecognize_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
if (e.Result.Text == "open notepad")
{
System.Diagnostics.Process.Start(@"C:\Windows\System32\Notepad.exe");
}
else
{
pBuilder.ClearContent();
pBuilder.AppendText(e.Result.Text);
sSynth.Speak(pBuilder);
}
}
도와주세요.
이 질문에 대해서는 코드를 추가하고 읽을 수있는 질문을하는 데 충분한 표시를합니다. 그러나 나는 그것이 너무 광범위하다고 생각합니다. 문제를보다 구체적인 언어로 좁혀 야합니다. – paqogomez
FWIW .. 몇 달 전에 [answer I posted] (http://stackoverflow.com/a/18605036/2589202)에 관심이있을 수 있습니다. – paqogomez
나는 무엇을 더 말할 수 있을지 모른다. 난 단지 응용 프로그램이 문법으로 추가되지 않은 응용 프로그램 인 것처럼 명령 및 메모장으로 인식하도록하고 싶습니다. – TheNeosrb