a106079595 发表于 2014-5-25 18:33:15

在搜索里加的语音搜索 PhoneGap 可以实现的吗?

在搜索里加的语音搜索 PhoneGap 可以实现的吗?

欢迎讨论qq:106079595

admin 发表于 2014-5-26 09:32:27

可以用 html5的语音   也可以用插件方式实现,看看原生怎么整的

a106079595 发表于 2014-5-26 22:32:16

树根boss可以帮忙给个教材不

a106079595 发表于 2014-5-27 13:19:28

测试: html5的语音输入功能
支持: webkit核心的浏览器

Demo: <input type="text" x-webkit-speech lang="zh-CN" />

这个是html5 用的好像没有效果 我试了

我想把语音变成文字 再点下搜索

a106079595 发表于 2014-5-27 13:22:02

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>

cswisodmliu 发表于 2016-1-25 13:56:34

http://www.ionic.ren/2016/01/25/ionic%E5%B8%B8%E7%94%A8%E6%8F%92%E4%BB%B6-%E7%99%BE%E5%BA%A6%E8%AF%AD%E9%9F%B3%E6%92%AD%E6%94%BE%E6%8F%92%E4%BB%B6/
页: [1]
查看完整版本: 在搜索里加的语音搜索 PhoneGap 可以实现的吗?