Android Googleオリジナル音声認識

2065 ワード

1.Googleネイティブ音声認識を呼び出す
 Intent intent = new Intent(
                RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); //      
        intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Please start your voice");//      
        try {
            startActivityForResult(intent, RESULT_SPEECH); //RESULT_SPEECH Activity    code 
        } catch (ActivityNotFoundException a) { //        google    
            Toast t = Toast.makeText(getApplicationContext(),
                    "Opps! Your device doesn't support Speech to Text",
                    Toast.LENGTH_SHORT);
            t.show();
        }

2.Activityコールバック結果
  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
            case RESULT_SPEECH: {
                if (resultCode == RESULT_OK && data != null) {
                    ArrayList text = data
                            .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                    //                 
                    tv_open.setText(text.get(0));
                }
                break;
            }

        }
    }

3.Googleの音声認識には一定の制限があるため、多くのデバイスがサポートしていない可能性があります.しかし、取得がこの機能をサポートしているかどうかを抽出することはできません.そのため、このIntentが利用可能かどうかを判断する方法を提供します.
 public static boolean isIntentAvailable(Context context) {
        final PackageManager packageManager = context.getPackageManager();
        final Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);//       Google   action,      
        List list =
                packageManager.queryIntentActivities(intent,
                        PackageManager.MATCH_DEFAULT_ONLY);
        return list.size() > 0;
    }

——————————-
3つのものは生命の苦労を緩和するのに役立ちます:希望、睡眠と微笑み