2012-08-09 9 views
0

예를 들어, 화면 가운데에서 마우스를 클릭하는 명령 "center"를 원한다고 가정 해 봅시다. 간단한 예제지만, 나는 그것의 문법 측면에 더 관심이 있습니다.System.Speech를 사용하여 정확한 구를 명령으로 인식하는 방법

"센터"만 일치 시키려면 어떻게해야합니까?

그래서 일시 중지하면 "가운데"라고 말한 다음 일시 중지하면 일치합니다.

하지만 내가 "방 중앙에있다"고 말하면 나는 성냥을 얻지 못합니다. 일반적으로 좋은 직업은 그들이 있는지 인식하지 못하기 할

  Choices center = new Choices(new string[] { "center" }); 
      SemanticResultKey centerKeys = new SemanticResultKey("center", center); 

      GrammarBuilder centerGrammarBuilder = new GrammarBuilder(); 
      centerGrammarBuilder.Append(centerKeys); 

      speechRecognitionEngine.UnloadAllGrammars(); 

      speechRecognitionEngine.LoadGrammar(new Grammar(centerGrammarBuilder)); 

답변

0

음성 엔진 :

다음 코드가에서 사용되는 어떤 문구의 일부에 상관없이 단어 "센터"를 일치하지 보인다 문장 중간에있는 문법적 단어. 그러나 항상 그런 것은 아니지만, 엔진이 중간 문장을 인식하는 가장자리 경우 중 하나를 찾으면 도움이되는 두 가지 사항을 추천 할 수 있습니다.

  • 문법에 가비지 규칙을 추가 한 다음 가비지 규칙이 포함 된 인식 이벤트를 무시하십시오. 일반적으로 사람들은 거의 쓰레기 규칙을 사용하지 않기 때문에 권장되지는 않지만 (그러나 작동 할 수는 있습니다) 모델을 구축하는 동안 성과를 거두기 때문에 발생합니다. 또한 다른 언어 모델보다는 일부 언어 모델에서 더 잘 작동한다는 것을 알 수 있습니다. 다시 말하지만, 이것은 모델 구축과 튜닝의 결과입니다. http://msdn.microsoft.com/en-us/library/system.speech.recognition.srgsgrammar.srgsruleref.garbage(v=VS.85).aspx
  • 확인하고 조정할 결과 단어의 신뢰를 (A grxml 내부는이 < ruleref 특별한 = "쓰레기"/>과 같을 것이다). 중간 문장을 인식하더라도 해당 구문에 대해 훨씬 낮은 신뢰도 점수를 얻어야합니다. 불행히도이 튜닝은 때때로 올바른 오디오를 얻기 위해 많은 양의 오디오가 필요합니다.