• 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.DialogInterface.OnClickListener() {
    					@Override
    					public void onClick(DialogInterface 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.DialogInterface.OnClickListener() {
    					@Override
    					public void onClick(DialogInterface 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>



  • 相关阅读:
    jquery ajax 显示服务器时钟
    盒子阴影
    排版问题,div nav 里面包含的内容没有在其范围内
    jquery点击向右,点击向左
    juqery 点击显示点击隐藏,slideDown slideUp slideToggle
    css强制换行
    jquery动画
    R17下maps新增参数的问题
    现阶段github上的emysql编译无法通过的问题
    之前数据库读写模型的实现
  • 原文地址:https://www.cnblogs.com/riskyer/p/3304109.html
Copyright © 2020-2023  润新知