0

음성 인식 엔진을 사용하는 응용 프로그램을 작성해야 할 필요가 있습니다. 응용 프로그램을 끄는 목적은 사용자가 "컴퓨터 열기"라고 말하면 PC (키보드 및 마우스)를 제어하는 ​​것입니다. 또는 어떤 일이 해당 작업을 수행하는 말은, 내가 시간을 많이 시도했지만 사이에 갇혀 한
내 코드음성 인식을 통해 내 컴퓨터를 여는 방법

 {   
     SpeechRecognizer recognizer = new SpeechRecognizer(); 
     recognizer.Enabled = true; 

     Choices folderPath= new Choices(); 
     folderPath.Add(new string[] { "My Computer", "My Documents", "my docs", "Sumeet", "gehi"}); 

     GrammarBuilder gb = new GrammarBuilder(folderPath); 

     Grammar gramer = new Grammar(gb); 
     recognizer.LoadGrammar(gramer); 

     gramerSpeechRecognized+=new EventHandler<SpeechRecognizedEventArgs (gramer_SpeechRecognized); 
    } 
    void gramer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 
    { 

     if (e.Result.Text == "computer" || e.Result.Text=="my computer") 
     { 
      string myComputerPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); 
     System.Diagnostics.Process.Start("explorer", myComputerPath); 
     //OR 
     //System.Diagnostics.Process.Start("explorer", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}"); 
     } 
     else 
     { 
      // give output what user have said 
      textBox1.Text = e.Result.Text; 
     } 
    } 

도움이 필요하다! 내 코드에서 수행 할 작업이나 실수?

+0

언급? –

+2

중단 점을 배치하고 디버그합니다. 디버거가 gramer_SpeechRecognized 함수에 도달합니까? e.Tesult.Text 값은 무엇입니까? – sara

+1

또한 비교하기 전에 e.Result.Text를 소문자로 변환하십시오. – sara

답변

0

그래, 난이 지금 지사에게

string resultText = e.Result.Text.ToLower(); 
     if (resultText == "computer") 
     { 
      string myComputerPath = Environment. (Environment.SpecialFolder.MyComputer); 
      System.Diagnostics.Process.Start("explorer", myComputerPath); 
     //System.Diagnostics.Process.Start("explorer", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}"); 
     } 

일을 수행했지만 여전히 이것보다 더 나은 답을 찾을 경우 너무 PLZ 정확하게 작동하지 않습니다 여기에서 고맙습니다들