2012-04-04 4 views
1

CMU sphinx 라이브러리를 사용하여 사운드를 녹음하고 있습니다. 난 내 자바 응용 프로그램을 시작할 때, 나는 한 번 다음과 같이 인식기 및 구성 관리자를 할당 :마이크를 사용하여 사운드를 한 번 녹음 할 수 있지만 두 번째 마이크를 시작할 수 없습니다.

 cm = new ConfigurationManager(soundPart.class.getResource("hellongram.config.xml")); 
     recognizer = (Recognizer) cm.lookup("recognizer"); 
     recognizer.allocate(); 

는 또한, 내 응용 프로그램에서 기록 사운드 버튼이 있습니다. 사용자가 클릭 할 때, 나는 기록 소리에 아래의 코드를 사용

Microphone microphone = (Microphone)MR.sp.cm.lookup("microphone"); 
    if (!microphone.startRecording()) { 
     System.out.println("Cannot start microphone."); 
     MR.sp.recognizer.deallocate(); 

     System.exit(1); 
    } 
    //MR.sp.pleaseStartSpeaking.setVisible(true); 
    while(true){ 
    Result result = MR.sp.recognizer.recognize(); 
    if(result!=null){ 
     String resultText = result.getBestFinalResultNoFiller(); 
     MR.sp.lblYouSearched.setVisible(true); 
     MR.sp.lblNewLabel.setVisible(true); 
     MR.sp.lblNewLabel.setText(resultText); 
     MR.textQuery = resultText.toLowerCase(); 
     break; 
    } 
    } 

이 내가 그것을 처음 작동합니다. 그러나 사용자가 두 번째로 녹음 단추를 클릭하면 "마이크를 시작할 수 없습니다"라는 오류가 발생합니다. 내가 여기서 잘못하고있는 것. 이유는 마이크를 두 번째로 획득 할 수

답변

0
당신은 마이크의 RecordingThread here 들여다뿐만 아니라 당신은 당신이 사용하는 코드와 당신이 원하는의 차이 때문에 그 코드 here를 가지고 페이지를 다시 읽어보십시오

당신이 사용하는 코드가 마이크를 시작하고 멈추지 않으면 계속 녹음 중입니다. RecordingThread는 start() 및 stop()을 호출하여 자신이 원하는 것을 쉽게 얻을 수 있기 때문에 자신이 뭘하고있는 것처럼 보입니다.

+0

샘플 코드를 제공해 주시겠습니까? 그냥 문서를보고 많이 도움이되지 않습니다. – Programmer

+0

더욱이, 위의 코드에서는 언제든지 녹음하고 싶습니다. 마이크가 있습니다. 이게 뭐가 잘못 되었 니? – Programmer