2014-10-17 2 views
0

cmu 스핑크스에서 분류기 클래스를 사용하여 음성 파일이 인식되는 시간을 얻으려고합니다. 그러나 컴파일하고 실행할 수없는 것 같습니다. 분할기를 사용하기 위해 먼저 구성해야하는 것이 있습니까? CMU 스핑크스를 처음 사용하니 죄송합니다.cmu 스핑크스 분류기 클래스 사용 방법

------------------------------------ 다음은 분할 자 코드입니다. ---------------------------

package edu.cmu.sphinx.tools.endpoint; 

import java.io.File; 
import java.io.IOException; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.Scanner; 

import edu.cmu.sphinx.frontend.Data; 
import edu.cmu.sphinx.frontend.FrontEnd; 
import edu.cmu.sphinx.frontend.util.AudioFileDataSource; 
import edu.cmu.sphinx.frontend.util.WavWriter; 
import edu.cmu.sphinx.util.props.ConfigurationManager; 
import edu.cmu.sphinx.util.props.ConfigurationManagerUtils; 

public class Segmenter { 

    public static void main(String[] argv) throws MalformedURLException, 
      IOException { 

     String configFile = null; 
     String inputFile = null; 
     String inputCtl = null; 
     String outputFile = null; 
     boolean noSplit = false; 

     for (int i = 0; i < argv.length; i++) { 
      if (argv[i].equals("-c")) { 
       configFile = argv[++i]; 
      } 
      if (argv[i].equals("-i")) { 
       inputFile = argv[++i]; 
      } 
      if (argv[i].equals("-ctl")) { 
       inputCtl = argv[++i]; 
      } 
      if (argv[i].equals("-o")) { 
       outputFile = argv[++i]; 
      } 
      if (argv[i].equals("-no-split")) { 
       noSplit = Boolean.parseBoolean(argv[i]); 
      } 
     } 

     if ((inputFile == null && inputCtl == null) || outputFile == null) { 
      System.out 
        .println("Usage: java -cp lib/batch.jar:lib/sphinx4.jar edu.cmu.sphinx.tools.endpoint.Segmenter " 
          + "[ -config configFile ] -name frontendName " 
          + "< -i input File -o outputFile | -ctl inputCtl -i inputFolder -o outputFolder >"); 
      System.exit(1); 
     } 

     URL configURL; 
     if (configFile == null) 
      configURL = Segmenter.class.getResource("frontend.config.xml"); 
     else 
      configURL = new File(configFile).toURI().toURL(); 

     ConfigurationManager cm = new ConfigurationManager(configURL); 

     if (noSplit) { 
      ConfigurationManagerUtils.setProperty(cm, "wavWriter", 
        "captureUtterances", "false"); 
     } 
     if (inputCtl != null) { 
      ConfigurationManagerUtils.setProperty(cm, "wavWriter", 
        "isCompletePath", "true"); 
     } 

     if (inputCtl == null) 
      processFile(inputFile, outputFile, cm); 
     else 
      processCtl(inputCtl, inputFile, outputFile, cm); 
    } 

    static private void processFile(String inputFile, String outputFile, 
      ConfigurationManager cm) throws MalformedURLException, IOException { 

     FrontEnd frontend = (FrontEnd) cm.lookup("endpointer"); 

     AudioFileDataSource dataSource = (AudioFileDataSource) cm 
       .lookup("audioFileDataSource"); 
     System.out.println(inputFile); 
     dataSource.setAudioFile(new File(inputFile), null); 
     WavWriter wavWriter = (WavWriter) cm.lookup("wavWriter"); 
     wavWriter.setOutFilePattern(outputFile); 

     frontend.initialize(); 

     Data data = null; 
     do { 
      data = frontend.getData(); 
     } while (data != null); 
    } 

    static private void processCtl(String inputCtl, String inputFolder, 
      String outputFolder, ConfigurationManager cm) 
      throws MalformedURLException, IOException { 

     Scanner scanner = new Scanner(new File(inputCtl)); 
     while (scanner.hasNext()) { 
      String fileName = scanner.next(); 
      String inputFile = inputFolder + "/" + fileName + ".wav"; 
      String outputFile = outputFolder + "/" + fileName + ".wav"; 
      processFile(inputFile, outputFile, cm); 
     } 
     scanner.close(); 
    } 
} 

---------------- ---------- 그리고 컴파일 할 때 오류입니다. ---------------------------

ant -f C : \ Users \ Gerard \ Documents \ NetBeansProjects \ sphinx4-5prealpha \ nbproject \ ide-file-targets.xml -Drun.class = edu.cmu.sphinx.tools.endpoint.Segmenter 실행 선택 파일 -in-sphinx4 run-selected-file-in-sphinx4 :

사용법 : java -cp lib/batch.jar : lib/sphinx4.jar edu.cmu.sphinx.tools.endpoint.Segmenter [-config configFile] -name frontendName < -i input 파일 -o outputFile | -ctl inputCtl -i inputFolder -o outputFolder>

C : \ 사용자 \ 제라드 \ 문서 \ NetBeansProjects \ sphinx4-5prealpha \ nbproject \ IDE-파일 targets.xml : 38 : 자바 반환 : 1 총 BUILD FAILED (시간 : 0 초)

------------------------이 파일은 ide-file-targets.xml입니다. 38 ----- -----------------------------

java classname = "$ {run.class}"failonerror = "true"fork = "true"

답변

0

일반적으로 TranscriberDemo을 참조하십시오. 긴 오디오를 시간 정렬해야하는 경우 AlignerDemo을 참조하십시오.