700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 安卓调用系统语音识别功能全解(谷歌语音服务):获取识别结果 使用语音识别进行搜索

安卓调用系统语音识别功能全解(谷歌语音服务):获取识别结果 使用语音识别进行搜索

时间:2024-01-08 16:45:41

相关推荐

安卓调用系统语音识别功能全解(谷歌语音服务):获取识别结果 使用语音识别进行搜索

全栈工程师开发手册 (作者:栾鹏)

安卓教程全解

安卓调用系统语音识别功能全解(谷歌语音服务):获取识别结果,使用语音识别进行搜索。

首先要添加权限

<uses-permission android:name="android.permission.INTERNET"/>

先初始化一个语音识别请求,调用系统语音识别功能,返回识别结果。

其主要原理就是将语音发送到google云端,然后云端处理,匹配相应的数据,发送到客户端。不过一般谷歌语音被阉割了,或无法翻墙,推荐使用讯飞或百度

private void speechInput() {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,"开始语音");//EXTRA_PROMPT语音输入对话框中的提示字符串//intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1); //EXTRA_MAX_RESULTS限制潜在识别结果的数目//intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.ENGLISH); //EXTRA_LANGUAGE指定默认值以外的输入语言startActivityForResult(intent, VOICE_RECOGNITION);} catch (Exception e) {e.printStackTrace();Toast.makeText(getApplicationContext(), "找不到语音设备", 1).show();}}

接收语音识别返回结果

//查找一个语音识别请求的结果@Overrideprotected void onActivityResult(int requestCode,int resultCode,Intent data) {if (requestCode == VOICE_RECOGNITION && resultCode == RESULT_OK) {ArrayList<String> results;results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);float[] confidence;String confidenceExtra = RecognizerIntent.EXTRA_CONFIDENCE_SCORES;confidence = data.getFloatArrayExtra(confidenceExtra);//在这里使用识别的语音字符串results做点事情}super.onActivityResult(requestCode, resultCode, data);}

调用系统语音识别后直接进行网络搜索

private void speechWebSearch() {Intent intent = new Intent(RecognizerIntent.ACTION_WEB_SEARCH);intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH); //LANGUAGE_MODEL_WEB_SEARCH表示进行网络搜索startActivityForResult(intent, 0);}

安卓调用系统语音识别功能全解(谷歌语音服务):获取识别结果 使用语音识别进行搜索。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。