概述
调用android 谷歌语音识别 ,获取识别结果,首先添加权限:
<uses-permission android:name="android.permission.INTERNET" />
实现步骤:先初始化一个语音识别请求,调用系统语音识别功能,返回识别结果。
直白点就是在点击事件 直接利用 intent 跳转到手机里面的谷歌搜( 如果手机没有谷歌搜索,哦豁,你不能用这个功能。)
识别完成后,得到result List数组,里面有很多识别结果,我们获取第一个就可以了
其主要原理就是将语音发送到google云端,然后云端处理,匹配相应的数据,发送到客户端。不过一般谷歌语音被阉割了,或无法翻墙,推荐使用讯飞或百度
主要代码:
private void initView() {
button = (Button) findViewById(R.id.button_gugeshibie);
textText = (TextView) findViewById(R.id.text_text);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);//ACTION_RECOGNIZE_SPEECH接收输入语音,ACTION_WEB_SEARCH触发网络搜索或语音操作
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); //EXTRA_LANGUAGE_MODEL表示用于输入音频的语言模型
intent.putExtra(RecognizerIntent.EXTRA_PROMPT,"开始语音识别");
//intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1); //EXTRA_MAX_RESULTS限制潜在识别结果的数目
//intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.ENGLISH); //EXTRA_LANGUAGE指定默认值以外的输入语言
startActivityForResult(intent, RESULT_SPEECH);
textText.setText("");
} catch (Exception e){
Toast.makeText(GugeYuyinshibieActivity.this,"找不到语音设备",Toast.LENGTH_SHORT).show();
showDialog();
}
}
});
}
private void showDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(GugeYuyinshibieActivity.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();
}
/**
* 接收语音识别返回结果
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case RESULT_SPEECH:
if(resultCode == RESULT_OK && data != null){
//返回结果是一个list,我们一般取的是第一个最匹配的结果
ArrayList<String> list = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
if(list != null && list.size() > 0 ){
textText.setText(list.get(0));
} else {
textText.setText("信息错误,请重试");
}
}
break;
}
}
<string name="voice_url">https://play.google.com/store/apps/details?id=com.google.android.voicesearch</string>
<string name="dialog_title">提示</string>
<string name="dialog_content">未找到语音识别设备,是否下载?</string>
<string name="cancel">取消</string>
<string name="download">下载</string>
这个谷歌语音识别有一些限制,首先要求手机里必须有谷歌搜索,没有的话不能用,而且谷歌语音搜索不兼容android 8.0, 没办法从应用商店下载,只能自己手机翻墙下载。
最后
以上就是年轻秀发为你收集整理的Android 调用谷歌语音识别:获取识别结果,进行文字输出的全部内容,希望文章能够帮你解决Android 调用谷歌语音识别:获取识别结果,进行文字输出所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复