PocketSphinx中的部分结果

时间:2012-08-22 18:13:21

标签: android colors speech-recognition

我有一个使用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:“弄清楚之前问题的一部分”

0 个答案:

没有答案