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"