Запись аудио WAV для Sphinx-4 не удалась

Я записал WAV-файл, используя Audacity для тестирования демонстрации транскрибера из Sphinx-4, я следовал инструкции в этом посте: 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();
    }
}

1 ответ

Замещать

System.out.println(recognizer.getResult().getHypothesis());

с

System.out.println(result.getHypothesis());
Другие вопросы по тегам