Я записал wav-файл с помощью Audacity для тестирования демо-транскрибатора из Sphinx-4, я следовал инструкциям в этом сообщении: -not-working-accurate-for-short-wav">демонстрация распознавания речи Sphinx4 trasncribe не работает точно для короткого файла wav
особенно в этом ответе:
It must be 16khz 16bit mono little-endian file.
После этого я даже уменьшил шум. Но я получаю нулевую ошибку, когда пытаюсь распечатать гипотезу, что означает, что с моей записью возникла проблема:
Loading models...
Exception in thread "main" java.lang.NullPointerException
at transcriber.Transcriber.main(Transcriber.java:41)
Java Result: 1
BUILD SUCCESSFUL (total time: 2 minutes 14 seconds)
Строка 41, где я печатаю гипотезу. что я могу сделать, чтобы заставить его работать? Спасибо
Изменить: код:
package transcriber;
import java.net.URL;
import edu.cmu.sphinx.api.Configuration;
import edu.cmu.sphinx.api.SpeechResult;
import edu.cmu.sphinx.api.StreamSpeechRecognizer;
import edu.cmu.sphinx.result.WordResult;
/**
*
* @author ha
*/
public class Transcriber {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
System.out.println("Loading models...");
Configuration configuration = new Configuration();
// Load model from the jar
configuration.setAcousticModelPath("resource:/WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz");
configuration.setDictionaryPath("resource:/WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz/dict/cmudict.0.6d");
configuration.setLanguageModelPath("models/language/en-us.lm.dmp");
StreamSpeechRecognizer recognizer = new StreamSpeechRecognizer(configuration);
URL audioUrl = new URL("file:WAV/Hello.wav");
recognizer.startRecognition(audioUrl.openStream());
SpeechResult result = recognizer.getResult();
System.out.println(recognizer.getResult().getHypothesis());
while ((result = recognizer.getResult()) != null) {
System.out.format("Hypothesis: %s\n",
result.getHypothesis());
}
System.out.println("Stop Recognition..");
recognizer.stopRecognition();
}
}