Android 語音輸入(Speech To Text)

此功能使用Android提供的RecognizerIntent class來實現

public void promptSpeechInput() {

    Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    i.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
    i.putExtra(RecognizerIntent.EXTRA_PROMPT, "Say Something!");

    try {
        startActivityForResult(i, 100);
    } catch (ActivityNotFoundException a) {
        Toast.makeText(MainActivity.this, "您的裝置不支援語音輸入", Toast.LENGTH_LONG).show();
    }
}

public void onActivityResult (int request_code, int result_code, Intent i) {
    super.onActivityResult(request_code, result_code, i);
    switch (request_code) {
        case 100:
            if (i != null) {
                ArrayList<String> result = i.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                txtSpeechToText.setText(result.get(0));
            }
            break;
    }
}

留言

這個網誌中的熱門文章

Android JSONArray之排序

Android JSON Parse: JSONObject內又包了一個JSONObject