2013-04-14 3 views
0

다음 및 마지막 단추가있는 양식이있는 음성 인식을 사용하여 C# 프로젝트를 만들었습니다. 다음에 단추를 사용하면 다음 파일로 이동하게됩니다. 다시 말하면 이전 파일로 이동합니다. 그러나 프로젝트를 디버깅 할 때, 내가하는 일 대신에 내가하는 말만 보여줍니다. 아무도 내가 고칠 수있는 방법을 알고 있습니까?음성 인식을 사용하는 명령

private void Form1_Load(object sender, EventArgs e) 
    { 
     SpeechRecognizer recognizer = new SpeechRecognizer(); 
     Choices command = new Choices(); 
     command.Add(new string[] { "next", "last", "first" }); 

     GrammarBuilder gb = new GrammarBuilder(); 
     gb.Append(command); 

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

     recognizer.SpeechRecognized += 
       new EventHandler<SpeechRecognizedEventArgs>(sre_SpeechRecognized); 
    } 


    void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 
    { 
     MessageBox.Show("Speech recognized: " + e.Result.Text); 
    } 
} 
+0

더 많은 세부 사항이 – CodeGuy

+0

가 나는 우리가 코드의 주요 벌크을보고있는 가정 –

+1

만든 코드를 추가 ... 당신을 도울 필요합니다, 당신은'next'을 수행하는 코드를 없어 또는 '이전'동작. 이 코드는'sre_SpeechRecognized' 이벤트 핸들러 내에서 호출되어야합니다. – keyboardP

답변

2

는 몇 년 전에 나는이 주제에 대한 사례 연구를했다 :

이것은 내가 만든 코드입니다. 내 코드를 내 코드와 비교하면 뭔가를 찾을 수 있습니다. 아래 코드는 전구의 상태를 변경합니다.

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 
using System.Speech.Recognition; 
using System.Threading; 


namespace SesTanima 
{ 
    public partial class Form1 : Form 
    { 
     private SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine(); 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      LoadGrammars(); 
      StartRecognition(); 
     } 


     private void LoadGrammars() 
     { 
      Choices choices = new Choices(new string[] {"Lights on", "Exit", "Zoom out", "Zoom in", "Reset", "Lights off" }); 
      GrammarBuilder grammarBuilder = new GrammarBuilder(choices); 
      Grammar grammar = new Grammar(grammarBuilder); 
      recognizer.LoadGrammar(grammar); 
     } 

     private void StartRecognition() 
     { 
      recognizer.SpeechDetected += new EventHandler<SpeechDetectedEventArgs>(recognizer_SpeechDetected); 
      recognizer.SpeechRecognitionRejected += new EventHandler<SpeechRecognitionRejectedEventArgs>(recognizer_SpeechRecognitionRejected); 
      recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized); 
      recognizer.RecognizeCompleted += new EventHandler<RecognizeCompletedEventArgs>(recognizer_RecognizeCompleted); 


      Thread t1 = new Thread(delegate() 
      {    
       recognizer.SetInputToDefaultAudioDevice(); 
       recognizer.RecognizeAsync(RecognizeMode.Single); 
      }); 
      t1.Start(); 
     } 

     private void recognizer_SpeechDetected(object sender, SpeechDetectedEventArgs e) 
     { 
      textBox1.Text = "Recognizing voice command...";  
     } 

     private void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 
     { 
      if (e.Result.Text == "Lights on") 
      { 
       pictureBox1.Image = Properties.Resources.lightsOn; 
      } 
      else if (e.Result.Text == "Lights off") 
      { 
       pictureBox1.Image = Properties.Resources.lightsOff; 
      } 
      else if (e.Result.Text == "Exit") 
      { 
       recognizer.Dispose(); 
       Application.Exit(); 

      } 
      else if (e.Result.Text == "Zoom out") 
      { 
       pictureBox1.Size = new System.Drawing.Size(135, 107); 
      } 
      else if (e.Result.Text == "Zoom in") 
      { 
       pictureBox1.Size = new System.Drawing.Size(538, 426); 
      } 
      else if (e.Result.Text == "Reset") 
      { 
       pictureBox1.Size = new System.Drawing.Size(269, 213); 
      } 
      textBox1.Text = e.Result.Text; 
     } 

     private void recognizer_SpeechRecognitionRejected(object sender, SpeechRecognitionRejectedEventArgs e) 
     { 
      textBox1.Text = "Failure."; 
     } 

     private void recognizer_RecognizeCompleted(object sender, RecognizeCompletedEventArgs e) 
     { 
      recognizer.RecognizeAsync(); 
     } 
    } 
} 
+0

정말 고마워요 Ozkan Ozlu –

관련 문제