语音输入

    public static final int VOICE_INPUT_REQUEST_CODE = 0;

    private void voiceInput() {
        try {
            Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
            intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
            intent.putExtra(RecognizerIntent.EXTRA_PROMPT, getString(R.string.voicesearch_message));
            startActivityForResult(intent, VOICE_INPUT_REQUEST_CODE);
        } catch (final ActivityNotFoundException e) {
            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.voicesearch_url))));
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        voiceOutput(requestCode, resultCode, data);
        super.onActivityResult(requestCode, resultCode, data);
    }

    private void voiceOutput(int requestCode, int resultCode, Intent data) {
        if ((requestCode == VOICE_INPUT_REQUEST_CODE && (resultCode == RESULT_OK))) {
            String speakedString = "";
            final ArrayList<String> speechToChar = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);

            // Google语音返回一个字符列表,可能性依次降低。第一个是最有可能的,所以选择第一个字符。
            if (speechToChar.size() > 0) {
                speakedString = speechToChar.get(0);
            }

            Log.d("TAG", "显示的语音:" + speakedString.trim());
        }
    }


<string name="voicesearch_url">market://details?id=com.google.android.voicesearch</string> 
<string name="voicesearch_message">语音输入</string>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值