gpt4 book ai didi

java - 无法启动服务? (语音识别)

转载 作者:行者123 更新时间:2023-12-01 10:25:10 29 4
gpt4 key购买 nike

我想在服务中使用 pocketsphinx 持续监听“hello”一词

我收到错误。这是full stack trace 。这是其中的一小部分。

Unable to create service curlybrace.ruchir.myApp.MyService: java.lang.RuntimeException: new_Decoder returned -1

原因是这样的:

            setupRecognizer(assetDir); //SETUP

还有这个:

                .getRecognizer();

在我的onCreate中:

 Log.v(TAG, "Voice recognition activated!");

//Register voice recog listener :)

Assets assets = null;
try {
assets = new Assets(MyService.this);
File assetDir = assets.syncAssets();
setupRecognizer(assetDir); //SETUP

Log.v(TAG, "Set up listener");
} catch (IOException e) {
e.printStackTrace();
}

这是我的setupRecognizer方法:

  private void setupRecognizer(File assetDir) throws IOException {

recognizer = defaultSetup()
.setAcousticModel(new File(assetDir, "hmm/en-us-semi"))
.setDictionary(new File(assetDir, "lm/cmu07a.dic"))
.setKeywordThreshold(1e-5f)
.getRecognizer();

recognizer.addListener(this);
// recognizer.addKeywordSearch("Hello", assetDir); //I don't know what this does...
recognizer.startListening("Hello"); //Start listeneing


}

这是实现的方法之一:

@Override
public void onPartialResult(Hypothesis hypothesis) {

String text = hypothesis.getHypstr();
if (text.equals("Hello")) {
// do something

Log.v(TAG, "SPEECH RECOGNIZED HELLO!");
}

}

如有任何反馈,我将不胜感激。正面的、负面的,甚至是评论。经过两天的尝试,此时我已经绝望了!

最佳答案

你有这个:

private void setupRecognizer(File assetDir) throws IOException {
recognizer = defaultSetup()
.setAcousticModel(new File(assetDir, "hmm/en-us-semi"))
.setDictionary(new File(assetDir, "lm/cmu07a.dic"))
.setKeywordThreshold(1e-5f)
.getRecognizer();
recognizer.addListener(this);
// recognizer.addKeywordSearch("Hello", assetDir); //I don't know what this does...
recognizer.startListening("Hello"); //Start listeneing
}

尝试将其更改为:

private void setupRecognizer(File assetDir) throws IOException {
recognizer = defaultSetup()
.setAcousticModel(new File(assetDir, "hmm/en-us-semi"))
.setDictionary(new File(assetDir, "lm/cmu07a.dic"))
.setKeywordThreshold(1e-5f)
.getRecognizer();
recognizer.addListener(this);

//Add this:
File digitsGrammar = new File(modelsDir, "grammar/digits.gram");
recognizer.addKeywordSearch(DIGITS_SEARCH, digitsGrammar);
}

要开始语音侦察,请通过按钮调用它。当它工作时,从服务调用它,以使事情变得更简单:

    recognizer.startListening("Hello"); //Start listeneing 

现在,创建一个名为digits.gram的新文件,并将其放入此处名为的文件夹中:/youProjectRootFolder/grammar/digits.gram该文件实际上是一个 .txt 文件,但在将此文本放入其中后,请将扩展名更改为 .gram:

hello /1e-1/
hi /1e-1/
bye /1e-1/
goodbye /1e-1/
...etc. /1e-1/

这里你会发现类似的情况:Recognizing multiple keywords using PocketSphinx祝你好运!

关于java - 无法启动服务? (语音识别),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35388720/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com