java – 无法启动服务? (语音识别)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 无法启动服务? (语音识别),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2630字,纯文字阅读大概需要4分钟。
内容图文
![java – 无法启动服务? (语音识别)](/upload/InfoBanner/zyjiaocheng/712/234d294979f6449892a0332af53c3938.jpg)
我想在服务中不断地使用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 – 无法启动服务? (语音识别)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。