当前位置:操作系统 > 安卓/Android >>

Android 调用谷歌语音识别

調用谷歌语音识别其实很简单,直接利用 intent 跳转到手机里面的谷歌搜索
代码也很简单,直接调用方法 startVoiceRecognitionActivity()
如果大家手机里面没有谷歌搜索,这里会弹出一个下载框给我们选择下载
识别完成后,得到result List数组,里面有很多识别结果,我们获取第一个就可以了
贴出代码:
 
/** 
 * 調用方法 
 */  
private void startVoiceRecognitionActivity() {  
    try {  
        // 通过Intent传递语音识别的模式,开启语音  
        Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);  
        // 语言模式和自由模式的语音识别  
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,  
                RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);  
        // 提示语音开始  
        intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "开始语音");  
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "zh-HK");  
        // 开始语音识别  
        startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);  
    } catch (Exception e) {  
        e.printStackTrace();  
        showDialog();  
    }  
}  
  
private void showDialog() {  
    AlertDialog.Builder builder = new Builder(MainActivity.this);  
    builder.setMessage(R.string.dialog_content);  
    builder.setTitle(R.string.dialog_title);  
    builder.setNegativeButton(R.string.download,  
            new android.content.DialogInte易做图ce.OnClickListener() {  
                @Override  
                public void onClick(DialogInte易做图ce dialog, int which) {  
                    dialog.dismiss();  
                    Uri uri = Uri.parse(getApplication().getString(R.string.voice_url));  
                    Intent it = new Intent(Intent.ACTION_VIEW, uri);  
                    startActivity(it);  
                }  
            });  
    builder.setPositiveButton(R.string.cancel,  
            new android.content.DialogInte易做图ce.OnClickListener() {  
                @Override  
                public void onClick(DialogInte易做图ce dialog, int which) {  
                    dialog.dismiss();  
                }  
            });  
    builder.create().show();  
}  
  
protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    if (requestCode == VOICE_RECOGNITION_REQUEST_CODE  
            && resultCode == RESULT_OK) {  
        ArrayList<String> results = data  
                .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);  
  
        if (results.size() > 0) {  
            voiceView.setText(results.get(0));  
        } else {  
            Utils.getInstance().showTextToast("檢測失敗,請重新點擊識別!", context);  
        }  
    }  
}  

 

 
 
 
<string name="voice_url">https://play.google.com/store/apps/details?id=com.google.android.voicesearch.x</string>  
<string name="dialog_title">提示</string>  
<string name="dialog_content">未找到語音識別設備,是否下載?</string>  
<string name="cancel">取消</string>  
<string name="download">下載</string>  

 

 
 
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,