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

java– 无法启动服务? (语音识别),第1张

概述我想在服务中不断地使用pocketsphinx来听取hello这个词我收到了错误.这是fullstacktrace.这是它的一小部分.Unabletocreateservicecurlybrace.ruchir.myApp.MyService:java.lang.RuntimeException:new_Decoderreturned-1这是由于:setupRecognizer(asse

我想在服务中不断地使用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!");        }    }

我将不胜感激任何反馈.积极的,消极的,甚至是评论.在这一点上,经过2天的努力,我绝望了!

解决方法:

你有这个:

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的新文件,并将其放在一个名为here的文件夹中:/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 – 无法启动服务? (语音识别)全部内容,希望文章能够帮你解决java – 无法启动服务? (语音识别)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1103048.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存