我有一个使用pocketsphinx运行的应用程序(随附的演示)。我的应用程序需要成为 能够例如在命令时改变颜色。 sphinx4上的“hello world”排序为“color black / blue”而不是“hello phillip”
我稍微修改了pocketsphinxandroiddemo来做到这一点。
使用按钮识别我可以在OnResult的run()中使用它来实现操作:
if(hyp.equals("COLOR BLACK")){
bg.setImageResource(R.drawable.black);
}
if(hyp.equals("COLOR WHITE")){
bg.setImageResource(R.drawable.white);
}
没有问题。
但是我需要不断的倾听,所以我绕过按钮然后转到我的OnPartial run()。 那里的.equals(“KEY WORD”)没有用,所以我使用了.contains(“KEY WORD”)。 只要我通过我的if语句改变而不是通过它们,这是有效的,因为我的hyp或某些东西仍然包含前面的单词,因此执行我的开关中的最后一个命令。
问题:如何在执行良好的行动后清除hyp?
这是我的OnPartial:
public void onPartialResults(Bundle b){
final PocketSphinxAndroidDemo that = this;
final String hyp = b.getString("hyp");
that.edit_text.post(new Runnable() {
public void run() {
that.edit_text.setText(hyp);
if(hyp.contains("COLOR BLACK")){
bg.setImageResource(R.drawable.black);
}
if(hyp.contains("COLOR WHITE")){
bg.setImageResource(R.drawable.white);
}
我是新手(几个月前才开始学习编程),所以我可能会遗漏一些明显的东西。如果你能看到我的错误请解释。 如果我在OnPartial中应该使用.contains以外的东西那么什么?我尝试过.equals(“KEY WORD”),但这只适用于OnResult。
亲切的问候雅各布
伊迪丝:“一些错误和代码” 伊迪丝2:“弄清楚之前问题的一部分”