语音识别问题

时间:2014-10-03 06:49:42

标签: speech-recognition speech-to-text cmusphinx sphinx4

我想在java中创建一个语音识别项目,我尝试使用sphinx cmu。我用这段代码来识别语音但是没有给我很好的回应。我怎么解决这个问题?

import java.io.IOException;
import java.net.URL;

import edu.cmu.sphinx.api.Configuration;
import edu.cmu.sphinx.api.Context;
import edu.cmu.sphinx.api.LiveSpeechRecognizer;
import edu.cmu.sphinx.api.SpeechResult; 
import edu.cmu.sphinx.api.StreamSpeechRecognizer;
import edu.cmu.sphinx.result.WordResult;

public class App 
{
    public static void main( String[] args ) throws IOException
    {
        Configuration configuration = new Configuration();

        // Set path to acoustic model.
        configuration
            .setAcousticModelPath("resource:/WSJ_8gau_13dCep_8kHz_31mel_200Hz_3500Hz");
        // Set path to dictionary.
        configuration
            .setDictionaryPath("resource:/WSJ_8gau_13dCep_8kHz_31mel_200Hz_3500Hz/dict/cmudict.0.6d");
        // Set language model.
        configuration.setLanguageModelPath("resource:/edu/cmu/sphinx/models/language/en-us.lm.dmp");

        LiveSpeechRecognizer recognizer = new LiveSpeechRecognizer(configuration);
        // Start recognition process pruning previously cached data.
         recognizer.startRecognition(true);
         SpeechResult result = recognizer.getResult();
         while ((result = recognizer.getResult()) != null) {
             System.out.println(result.getHypothesis());
         }
         recognizer.stopRecognition();
    }
}

1 个答案:

答案 0 :(得分:0)

我不确定“不好回应”是什么意思。

如果要解码8khz文件,则需要调用configuration.setSampleRate(8000)来配置8khz的解码器。您还需要使用下载中提供的en-us-8khz模型以获得最佳效果。

如果你想从麦克风识别16khz音频,你需要使用16khz型号,而不是8khz型号。