3

私はpocketsphinx(それに付属するデモ)で実行されているアプリを持っています。私のアプリは、たとえば、命令されたときに色を変更できる必要があります。sphinx4の「helloworld」を「hellophillip」の代わりに「colorblack/blue」で並べ替えます

そのために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:「前の質問の一部を理解した」

4

0 に答える 0