2014-10-03 2 views
-1

자바에서 음성 인식 프로젝트를 만들고 싶습니다. 스핑크스 cmu를 사용하려고합니다. 나는이 코드를 사용하여 연설을 인식하지만 나에게 좋은 반응을주지 말라. 어떻게 해결할 수 있을까요?음성 인식 문제

import java.io.IOException; 
import java.net.URL; 

import edu.cmu.sphinx.api.Configuration; 
import edu.cmu.sphinx.api.Context; 
import edu.cmu.sphinx.api.LiveSpeechRecognizer; 
import edu.cmu.sphinx.api.SpeechResult; 
import edu.cmu.sphinx.api.StreamSpeechRecognizer; 
import edu.cmu.sphinx.result.WordResult; 

public class App 
{ 
    public static void main(String[] args) throws IOException 
    { 
     Configuration configuration = new Configuration(); 

     // Set path to acoustic model. 
     configuration 
      .setAcousticModelPath("resource:/WSJ_8gau_13dCep_8kHz_31mel_200Hz_3500Hz"); 
     // Set path to dictionary. 
     configuration 
      .setDictionaryPath("resource:/WSJ_8gau_13dCep_8kHz_31mel_200Hz_3500Hz/dict/cmudict.0.6d"); 
     // Set language model. 
     configuration.setLanguageModelPath("resource:/edu/cmu/sphinx/models/language/en-us.lm.dmp"); 

     LiveSpeechRecognizer recognizer = new LiveSpeechRecognizer(configuration); 
     // Start recognition process pruning previously cached data. 
     recognizer.startRecognition(true); 
     SpeechResult result = recognizer.getResult(); 
     while ((result = recognizer.getResult()) != null) { 
      System.out.println(result.getHypothesis()); 
     } 
     recognizer.stopRecognition(); 
    } 
} 

답변

0

"좋은 응답이 아닙니다."라는 것이 무엇을 의미하는지 모르겠습니다.

8khz 파일을 디코딩하려면 configuration.setSampleRate (8000)를 호출하여 8khz 용 디코더를 구성해야합니다. 최상의 결과를 얻으려면 다운로드 가능한 en-us-8khz 모델을 사용해야합니다.

마이크에서 16khz 오디오를 인식하려면 8khz 모델이 아닌 16khz 모델을 사용해야합니다.