2013-10-13 6 views

답변

5

.NET에는 음성 인식을위한 어셈블리가 포함되어 있습니다. 당신은 당신의 연설을 분석하고 텍스트 상자에 텍스트를 추가합니다

System.Speech

에 대한 참조를 추가하고

using System.Speech.Recognition; 

다음 코드 네임 스페이스를 추가해야합니다 :

private void startRecognition() 
    { 
     SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine(); //default culture 
     //SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine(new CultureInfo("de-DE")); 
     //With specified culture | Could cause an CultureNotFoundException 
     Grammar dictationGrammar = new DictationGrammar(); 
     recognizer.LoadGrammar(dictationGrammar); 
     try 
     { 
      recognizer.SetInputToDefaultAudioDevice(); 
      RecognitionResult result = recognizer.Recognize(); 
      if(result != null) 
       result_textBox.Text += result.Text + "\r\n"; 
     } 
     catch (InvalidOperationException exception) 
     { 
      MessageBox.Show(exception.Message,exception.Source); 
     } 
     finally 
     { 
      recognizer.UnloadAllGrammars(); 
     }     
    } 

시간을 변경하려면 eout 인식은 다음과 같은 속성을 변경 :

recognizer.InitialSilenceTimeout = TimeSpan.FromSeconds(3); 
    recognizer.BabbleTimeout = TimeSpan.FromSeconds(2); 
    recognizer.EndSilenceTimeout = TimeSpan.FromSeconds(1); 
    recognizer.EndSilenceTimeoutAmbiguous = TimeSpan.FromSeconds(1.5); 

출처 :

http://msdn.microsoft.com/en-us/magazine/cc163663.aspx | http://msdn.microsoft.com/en-us/library/system.speech.recognition.speechrecognitionengine.aspx

+0

이것은 매력적인 형제처럼 작동합니다! 고마워요! – Xeon

+0

오신 것을 환영합니다. 개선해야 할 점이 있습니다. 인식을 시작하고 말을하지 않으면 result가 null이되고 textBox에 결과 텍스트를 추가하면 NullReferenceException이 발생합니다. 그것을 피하려면 :'if (result! = null) result_textBox.Text + = result.Text + "\ r \ n";' –