10. 基本動き(お話し中⇔聞きとり中)

Tapia
(黄)Tapiaがお話してます。   (青)Tapiaが聞いています。

◆◇◆◇◆サンプルコード:TAPIAの状態を顔の表情で区別します◆◇◆◇◆

1) ボタンを追加する

サンプルコード「8.ボタンを追加する」を参考に作成します

2) Activityに以下処理を追加する

//■□■」「お話し中」と「聞き取り中」の表情を切り替える■□■
public class Mode2Activity extends TapiaActivity {
    TapiaAnimation tapiaAnimation;

    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.eyes_layout);
        ImageView tapiaEyes = (ImageView) findViewById(R.id.eyes);

        //タピアの表情を、目をパチパチするに設定する
        tapiaAnimation = new TapiaAnimation(this,tapiaEyes);
        tapiaAnimation.startAnimation(TapiaAnimation.PLAIN ,true);

        //タピアが話をする言語を日本語にする
        TapiaApp.setCurrentLanguage(Language.LanguageID.JAPANESE);

        //TTS、STTのインスタンスを取得する
        ttsProvider = TapiaApp.currentLanguage.getTTSProvider();
        sttProvider = TapiaApp.currentLanguage.getOnlineSTTProvider();

        //目を長押ししたときにメニューに戻る
        tapiaEyes.setOnLongClickListener(new View.OnLongClickListener() {
           @Override
            public boolean onLongClick(View v) {
                finish();
                return false;
            }
        });

        //タピアがご挨拶をする。
        try {
            ttsProvider.ask(getString(R.string.service_offerHelp1),sttProvider);//何か御用ですか
        } catch (LanguageNotSupportedException e) {
            e.printStackTrace();
        }  
    }

    @Override
    protected void onResume() {
        super.onResume();

        //タピアが聞きとりした後は、タピアが「はーい」と返事をする
        sttProvider.setOnRecognitionCompleteListener(new STTProvider.OnRecognitionCompleteListener() {
            @Override
            public void onRecognitionComplete(List list) {

                try {
                ttsProvider.ask("はーい",sttProvider);  //はーいとしゃべる
                } catch (LanguageNotSupportedException e) {
                    e.printStackTrace();
                }

        //聞いている時、目の色を青に設定する
        sttProvider.setOnStateChangeListener(new STTProvider.OnStateChangeListener() {
            @Override
            public void onStateChange(STTProvider.State newState) {
                switch (newState){
 
                    case LISTENING:
                        tapiaAnimation.setBackground(R.drawable.gradient_aqua);//青
                       break;
                }
            }
        });

        //お話している時、目の色を黄に設定する
        ttsProvider.setOnStateChangeListener(new TTSProvider.OnStateChangeListener() {
            @Override
            public void onStateChange(TTSProvider.State newState) {
                switch (newState) {

                    case SPEAKING:
                        tapiaAnimation.setBackground(R.drawable.gradient_yellow);//黄色
                        break;
                }
            }
     });
    }

    @Override
    protected void onPause() {
        super.onPause();
        sttProvider.stopListening();
    }
}
            

© 2018 - MJI Inc. Copyright reserved -