安卓有没有英语语音识别 应用场景的应用我发的音 这个应用可以

42756人阅读
& & &百度Android语音识别SDK分在线与离线两种,这篇文章介绍在线SDK的使用方法。
& & &在线SDK是以JAR包和动态链接库形式发布和使用,可以从百度开放云平台网站中下载SDK及使用说明文档。
& & &完成语音SDK的集成分以下几步,本文将一步步介绍SDK集成方法。
&1、注册开放开放平台 &&
&点击管理控制台,选择移动应用管理
&选择创建应用,填写应用名称
可以看到右上角有ID、API KEY、Secret KEY,点击可以复制其内容,保存这些字符串,在使用语音SDK时会用到。
2、申请开启语音识别服务 ,选择媒体云---语音识别,点击申请开启服务,填写理由。
等待对接成功
3、使用语音识别SDK前的准备
之前准备了SDK开发包以及ID、API KEY、Secret KEY。
首先将开发包中的lib中的库添加到工程中
& & & & 声明权限
&uses-permission android:name=&android.permission.RECORD_AUDIO& /&
&uses-permission android:name=&android.permission.ACCESS_NETWORK_STATE& /&
&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE& /&
&uses-permission android:name=&android.permission.INTERNET& /&
&uses-permission android:name=&android.permission.READ_PHONE_STATE& /&
&uses-permission android:name=&android.permission.WAKE_LOCK& /&
&uses-permission android:name=&android.permission.ACCESS_FINE_LOCATION& /&
&uses-permission android:name=&android.permission.ACCESS_COARSE_LOCATION& /&
&uses-permission android:name=&android.permission.ACCESS_WIFI_STATE& /&&/span&
& &4、语音识别
SDK有两种实现语音识别的方式,一种是直接使用SDK中的语音识别控件,一种是使用SDK中的语音识别服务。
语音识别控件方式
语音识别控件BaiduASRDigitalDialog,提供了整套语音交互、提示音、音量反馈、动效反馈。开发者初始化一个BaiduASRDigitalDialog对象,并设置相关参数及结果回调,调用Show()方法就可以弹出对话框开始识别,识别结束后会在回调中得到识别结果。
if (mDialog == null || mCurrentTheme != Config.DIALOG_THEME) {
mCurrentTheme = Config.DIALOG_THEME;
if (mDialog != null) {
mDialog.dismiss();
Bundle params = new Bundle();
params.putString(BaiduASRDigitalDialog.PARAM_API_KEY, Constants.API_KEY);
params.putString(BaiduASRDigitalDialog.PARAM_SECRET_KEY, Constants.SECRET_KEY);
params.putInt(BaiduASRDigitalDialog.PARAM_DIALOG_THEME, Config.DIALOG_THEME);
mDialog = new BaiduASRDigitalDialog(this, params);
mDialog.setDialogRecognitionListener(mRecognitionListener);
mDialog.getParams().putInt(BaiduASRDigitalDialog.PARAM_PROP, Config.CURRENT_PROP);
mDialog.getParams().putString(BaiduASRDigitalDialog.PARAM_LANGUAGE,
Config.getCurrentLanguage());
mDialog.show();
识别对话框支持的参数定义在BaiduASRDigitalDialog中以PARAM_前缀的常量。列表如下:
PARAM_API_KEY
开放平台认证API_key
PARAM_SECRET_KEY
开放平台认证Secret_key
PARAM_LANGUAGE
LANGUAGE_CHINESE
语种,取值定义在VoiceRecognitionConfig类中前缀为LANGUAGE_的常量
PARAM_PARTIAL_RESULTS
PARAM_NLU_ENABLE
是否语义解析。Prop为输入时暂不支持语义,请显示指定为其它领域。
PARAM_NLU_PARAMS
预留语义解析参数
PARAM_PROP
PROP_INPUT
领域参数,定义在VoiceRecognitionConfig类中前缀为PROP_的常量
PARAM_PORMPT_TEXT
“请说话”
对话框提示语
PARAM_PROMPT_SOUND_ENABLE
提示音,需要集成SDK包Raw文件夹的资源
PARAM_DIALOG_THEME
THEME_BLUE_LIGHTBG
样式。定义在前缀为THEME_的常量中
PARAM_TIPS
引导语列表
PARAM_SHOW_TIPS_ON_START
对话框弹出时首先显示引导语列表
PARAM_SHOW_TIP
识别启动3秒未检测到语音,随机出现一条引导语
PARAM_SHOW_HELP_ON_SILENT
静音超时后将“取消”按钮替换为“帮助”
设置回调方法,处理返回的结果
mRecognitionListener = new DialogRecognitionListener() {
public void onResults(Bundle results) {
ArrayList&String& rs = results != null ? results
.getStringArrayList(RESULTS_RECOGNITION) :
if (rs != null && rs.size() & 0) {
mResult.setText(rs.get(0));
首先需要配置语音识别引擎ASREngine的参数VoiceRecognitionConfig
VoiceRecognitionConfig config = new VoiceRecognitionConfig();
config.setProp(Config.CURRENT_PROP);
config.setLanguage(Config.getCurrentLanguage());
config.enableVoicePower(Config.SHOW_VOL); // 音量反馈。
if (Config.PLAY_START_SOUND) {
config.enableBeginSoundEffect(R.raw.bdspeech_recognition_start); // 设置识别开始提示音
if (Config.PLAY_END_SOUND) {
config.enableEndSoundEffect(R.raw.bdspeech_speech_end); // 设置识别结束提示音
config.setSampleRate(VoiceRecognitionConfig.SAMPLE_RATE_8K); // 设置采样率,需要与外部音频一致
然后启动识别 int code = mASREngine.startVoiceRecognition(mListener, config);
其中mListener是识别过程的回调,需要对其中的方法进行实现 /**
* 重写用于处理语音识别回调的监听器
class MyVoiceRecogListener implements VoiceClientStatusChangeListener {
public void onClientStatusChange(int status, Object obj) {
switch (status) {
// 语音识别实际开始,这是真正开始识别的时间点,需在界面提示用户说话。
case VoiceRecognitionClient.CLIENT_STATUS_START_RECORDING:
isRecognition =
mHandler.removeCallbacks(mUpdateVolume);
mHandler.postDelayed(mUpdateVolume, POWER_UPDATE_INTERVAL);
mControlPanel.statusChange(ControlPanelFragment.STATUS_RECORDING_START);
case VoiceRecognitionClient.CLIENT_STATUS_SPEECH_START: // 检测到语音起点
mControlPanel.statusChange(ControlPanelFragment.STATUS_SPEECH_START);
// 已经检测到语音终点,等待网络返回
case VoiceRecognitionClient.CLIENT_STATUS_SPEECH_END:
mControlPanel.statusChange(ControlPanelFragment.STATUS_SPEECH_END);
// 语音识别完成,显示obj中的结果
case VoiceRecognitionClient.CLIENT_STATUS_FINISH:
mControlPanel.statusChange(ControlPanelFragment.STATUS_FINISH);
isRecognition =
updateRecognitionResult(obj);
// 处理连续上屏
case VoiceRecognitionClient.CLIENT_STATUS_UPDATE_RESULTS:
updateRecognitionResult(obj);
// 用户取消
case VoiceRecognitionClient.CLIENT_STATUS_USER_CANCELED:
mControlPanel.statusChange(ControlPanelFragment.STATUS_FINISH);
isRecognition =
public void onError(int errorType, int errorCode) {
isRecognition =
mResult.setText(getString(R.string.error_occur, Integer.toHexString(errorCode)));
mControlPanel.statusChange(ControlPanelFragment.STATUS_FINISH);
public void onNetworkStatusChange(int status, Object obj) {
// 这里不做任何操作不影响简单识别
获得识别BDVRClient对象
mASREngine = VoiceRecognitionClient.getInstance(this);
mASREngine.setTokenApis(Constants.API_KEY, Constants.SECRET_KEY);
请求参数设置
每次识别需要通过通过VoiceRecognitionConfig设置参数,其中一些方法在API中有说明
enableBeginSoundEffect
int soundResourceId 启动提示音资源Id
设置开始提示音,soundResourceId为放置在Raw文件夹的资源Id。
enableEndSoundEffect
int soundResourceId 说话结束提示音资源Id
检测到用户说话结束播报的提示音,非识别结束
setSampleRate
int rate 采样率
设置音频采样率,
通常建议开发者不指定采样频率,由BDVRClient自动根据当前网络环境选择采样频率。WiFi环境下将使用16kHz采样,移动网络下将使用8kHz采样,来节省流量。参考常量定义
SAMPLE_RATE_8K 8K采样率
SAMPLE_RATE_16K 16K采样率
开发者可以通过指定垂直分类来获取更精准的语音识别结果。
注:垂直分类目前支持地图,音乐,视频,APP,网址,开发者需要注意设定采样频率时只能在这五种垂直分类中选择。若指定其他分类,可能会影响识别结果的精度。参考PROP_前缀的常量定义。
setUseDefaultAudioSource
boolean&useDefaultSource
设置是否使用缺省的录音。 如果不使用,用户需要调用VoiceRecognitionClient对象的feedAudioBuffer方法为识别器提供语音数据
启用语义解析,只在搜索模式起作用
getSampleRate
获取当前识别采样率
setLanguage
String Language
设置语种。目前支持的语种有中文普通话(LANGUAGE_CHINESE)、中文粤语(LANGUAGE_CANTONSE)、英文(LANGUAGE_ENGLISH)。
开始语音识别,BDVRClient在开始识别后,会启动录音、预处理、上传到服务器并获取识别结果。
int code = mASREngine.startVoiceRecognition(mListener, config);
if (code != VoiceRecognitionClient.START_WORK_RESULT_WORKING) {
mResult.setText(getString(R.string.error_start, code));
取消语音识别
mASREngine.stopVoiceRecognition();
结束语音识别
mRecognitionClient.speakFinish();
读者可以结合着SDK文档与demo源代码一起来学习百度语音识别SDK的使用。
语音识别的demo下载: http://download.csdn.net/detail/voicefans/7451441
小伙伴注意: 需要按照文章开头的去申请api key和secret key, 修改Constant.java,填上自己的key就ok了。VoiceRecognitionDemoActivity.java &展示了如何使用Dialog方式识别
如果遇到问题欢迎留言交流。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:48219次
排名:千里之外
评论:36条本帖子已过去太久远了,不再提供回复功能。当前【安卓手机】
全部安卓手机安卓平板安卓电视iPhoneiPad其他
当前位置:>>>语音翻译安卓版
如果您正把手机连着电脑,欢迎点击
语音翻译类型:最新版:3.1.3
还要另行下载才能使用语音,不然只能输入翻译。
不好用,无语音翻译
非常好用,太感谢了
热门排行榜
7万+人在玩135万+人在玩89万+人在玩78万+人在玩12万+人在玩9万+人在玩
语音翻译app相关推荐
发现该应用有下载安装使用错误或恶意扣费携带病毒,请
版权所有 京ICP备号-5
京公网安备 50 备安卓也玩siri语音识别 安卓语音软件合集
安卓系统语音软件合集
在苹果推出了Siri以后,相信很多人都对这种语音类软件感兴趣。通过Siri,苹果将手机变成了能够跟用户讲话并帮助用户完成一些操作的小助手,而通过Siri用户也可以在闲暇时与手机进行交谈,Siri的出现使得手机变得更加人性化了,随着Siri的推出,其他平台上也出现了类似的语音软件,接下来小编就给大家推荐几款安卓语音软件。
安卓语音软件推荐之 iris
第一个要给大家推荐的就是iris这款安卓语音软件,从名字就可以看出这个软件的来源,说白了就是安卓版的siri,只是将名字倒过来了而已。与siri的功能基本类似,它可以让安卓系统的使用者感受到语音类软件的魅力。
软件主界面进入软件后,屏幕下方会出现一个蓝色的圆形按键,点击后按键将变为红色,这时对着手机说话,按键会用色彩上的明暗变化来提示正在采音,采音结束后软件会在屏幕上将你的问题显示出来,并根据你的问题来寻找合适的答案。Iris只能用英文来提问,对英语口语的要求比较高,标准的发音将更加准确的搜索到想要的答案。
软件使用情况软件只能对英文问题做出解答,有时还会出现刷屏的现象,系统并不稳定,不过回答问题的准确性还是不错的,对于想感受语音软件的人来说是个不错的选择。
安卓语音软件推荐之 轻松语音指令
这是一款可以对手机进行语音操作的安卓语音软件。虽说并不是一个大软件,但里面的操作是很实用的,可以让你腾出手来,用语音来控制手机。
软件主界面及软件信软件的界面相当简洁,一目了然。屏幕下方有三个选项:“友情提示”这个选项会提醒用户在使用软件时需要注意的地方,“指令说明”则会告诉你如何使用这款软件,里面共有十种指令,分别有不同的用途,讲解的很是详细。点击屏幕上的话筒,将你想给手机下达的指令清楚的说出来,软件便会帮你自动查询。
软件使用方法及指令
软件采音及处理画面此软件对指令的分辨程度比较高,可以方便的查询手机里的信息,但是只能按照固定的模式来下达指令,能够查询的内容也比较少。
安卓语音软件推荐之 虫洞
[Page=安卓语音软件推荐之 虫洞]安卓语音软件虫洞是一款可以进行在线查询,并且能够进行手机网友互动的软件,它提供了四种提问的方式,可以让用户选择适合的方式来提问。
软件主页及采音画虫洞是一个社区类的软件,可以通过网友的信息找到自己需求信息。进入主页面后,可以看到下方的五个选项、文字框、两个提问方式,图片提问以及投票提问。图片提问是可以将语言表达不清楚的信息通过照片的方式来提问,而投票提问则是将你的问题交给网友们进行投票。你可以注册一个账号并将自己的问题发到网上,网友将会帮忙回答你的各种问题。接下来想要进行语音提问,点击提问界面的话筒图标就可以了,图标会显示如何提问,随后将问题清楚地说出来,软件就会自动搜索合适的答案。
个人信息界面及问题界面
广场以及设置软件在搜索答案方面有着不错的表现,实用性比较强,另外在与网友互动方面比较好,可以发动群众的力量解答问题。
安卓语音软件推荐之 智能360
[Page=安卓语音软件推荐之 智能360]安卓语音软件智能360一款很强大的语音类软件,可以完成大部分问题的回答,并且具有一定的娱乐性,在语音类软件里算很不错的,可以媲美苹果的siri。
主界面以及彩印界面进入程序后界面相当简单,屏幕下方会有一个蓝色的圆形按钮,点击后说话,软件就会显示你的说话内容,采音效果相当出色,基本能完美检测你的语音,并做出回答。这款软件就像是一个智能机器人,它能回答一些其他语音类软件不能回答的问题,甚至还会为你讲笑话。只能360还能够搜索歌曲,给通讯录里的好友打电话,查询天气,查询地图等等。一些语言翻译它也能完成,有时还会跟用户开小玩笑,很是有趣。
软件的搜索以及娱乐
设置以及不足之处这款软件功能很强大,是一款比较完善的语音类软件,所能做到的要比一般语音软件多,兼顾实用性跟娱乐性,不过仍然对一些问题无法清楚的回答。总结:
安卓系统的语音类软件并不算很多,也可能跟语音类软件的普及刚起步不久有关,以上几款软件各有利弊,但都能够为用户提供基本的语音声控服务。这里面智能360是小编觉得很实用的一款软件,声控发短信打电话查资料没有什么问题,没事让软件讲个笑话调侃几句也很有乐趣,大家不妨尝试一下。我们关注国内外最新最酷的软件应用,如果您觉得哪个软件应用不错,可以投稿给我们,或是您想比较某一类软件想获悉哪一方面应用都可以联系我们,我们将及时推荐和报道。邮箱:新浪微博:@TomPDA
(本文来源:TOMPDA智能手机网
没有相关新闻
跟贴读取中...
跟贴昵称修改后,论坛昵称也会变哦
复制成功,按CTRL+V发送给好友、论坛或博客。
浏览器限制,请复制链接和标题给好友、论坛或博客。
网易手机48小时评论排行
评论70265条
评论1823条
评论1801条
评论1290条
评论1219条
网易公司版权所有  由于为期半年的项目结束了,进入了一段&疗养&的真空期,因此有时间可以去归纳整理项目的经验,学习新的姿势与技巧,对自己技术水平也是一种提升。另外,个人懒癌症严重,为强迫自己努力学习,立了一些福来阁(比如没有写出博客女装什么的咳咳,我一定会拔旗成功的,哼),总体来说督促效果还是挺不错的。
  项目中使用的Android和linux进行客户端的开发,结合项目的实战经验,七月份写的博客内容主要围绕Android开发进行,研究的内容预定为:Android中谷歌语音搜索功能探究(开篇),app应用意外关闭后MediaPlayer进行断点播放(预计两到三章左右)
  为何选择Android谷歌语音搜索作为第一篇正式的博文?第一实现功能较为简单,代码量很小,可以为后续的文章热热身;第二语音搜索这个功能强大的,尤其是谷歌作为IT巨头,语音搜索体感非常棒,识别快而精准。谷歌的语音搜索可以广泛应用与基于LBS的Android应用程序中,调用谷歌api获取搜索结果,然后根据这个结果做自己想要的功能。
  言归正传,下面开始正式介绍谷歌的语音搜索。
&谷歌语音搜索基础
&  语音识别是Google在API Level3,也就是SDK1.5中引入的。根据官方的SDK的资料,语音检索的模式行为(action)有4种:
& & & ACTION_GET_LANGUAGE_DETAILS&&         ---&&& API Level8引入
& & & ACTION_RECOGNIZE_SPEECH&&&&&&&&&&&&&&&&&      &---&&& API Level3引入
& & & ACTION_VOICE_SEARCH_HANDS_FREE&&&&&&&&&&&&&&&&&& ---&&& API Level16引入
& & & ACTION_WEB_SEARCH&&&&&&&&&&&           &&---&&& API Level3引入
  大致的功能为:
  ACTION_GET_LANGUAGE_DETAILS:一个广播性质的intent,用于获取meta-data, 不常用。
  ACTION_RECOGNIZE_SPEECH:起一个activity将用户所说的内容发送至语音识别器,结果将会从onActivityResult中返回。(注: 官方不再支持startActivity的方式起intent, 改为startActivityResult)。该部分是核心功能。
  ACTION_VOICE_SEARCH_HANDS_FREE:API16中新引入的功能,不常用,目的是让用户在不使用客户端的情况下也能进行语音搜索,例如处于锁屏的安全模式中。如果要想使用该模式必须在manifest中加入如下:
1 &action android:name="android.speech.action.VOICE_SEARCH_HANDS_FREE" /&
  ACTION_WEB_SEARCH:通过Web网络检索来实现。
&  自定义设置项(Option)主要有以下3个:
  EXTRA_LANGUAGE_MODEL:语音识别的语言设置
  EXTRA_PROMPT: 语音输入时显示的提示文字
  EXTRA_MAX_RESULTS: 语音搜索结果最大值设定
&  此外需要注意一点,在没有谷歌服务的地区是不能进行谷歌语音服务的,括弧笑。而且手机不支持语音搜索的话,本地需要预先安装一个语音包:Voice_Search_2.1.4.apk, 这个版本非常老,2011年出的一直没有更新,原生态的皮肤令人怀念。如果没有在google-market中下载到,可以到如下网址下载:
  /apk/com.google.android.voicesearch
&谷歌语音搜索的实现
  实现的方法可以概括为以下四步:
  1&起一个名为RecognizerIntent的Intent活动
  2&putExtra中填入语音搜索的常量设定
  3&startActivityResult
  4&onActivityResult等待搜索结果。
&核心代码示例:
  添加一个RadiaGroup, 设置3种常用的语音搜索模式。
&RadioGroup
android:id="@+id/search_group"
android:orientation="vertical"
android:layout_marginLeft="90dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"&
&RadioButton
android:checked="true"
android:text="ACTION_RECOGNIZE_SPEECH"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /&
&RadioButton
android:text="ACTION_WEB_SEARCH"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /&
&RadioButton
android:text="ACTION_VOICE_SEARCH_HANDS_FREE"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /&
&/RadioGroup&
  在MainActivity中获取RadioGroup所选的内容,代码如下
1 private String getRecognizerMode() {
for (int i=0; i&radioBtn.getChildCount(); i++) {
RadioButton btn = (RadioButton) radioBtn.getChildAt(i);
if (btn.isChecked()) {
if (btn.getText().equals(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)) {
return RecognizerIntent.ACTION_RECOGNIZE_SPEECH;
} else if (btn.getText().equals(RecognizerIntent.ACTION_WEB_SEARCH)) {
return RecognizerIntent.ACTION_WEB_SEARCH;
} else if (btn.getText().equals(RecognizerIntent.ACTION_VOICE_SEARCH_HANDS_FREE)) {
return RecognizerIntent.ACTION_VOICE_SEARCH_HANDS_FREE;
return null;
return null;
  然后是点击语音按钮后,执行startVoiceRecognition这个方法起intent操作
1 private void startVoiceRecognition(String mode) {
Intent intent = new Intent(mode);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, R.string.voice_begin);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "zh-HK");
startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, "No Google Voice app, plz download.", Toast.LENGTH_SHORT).show();
&&&&&&&& 在测试中发现,语音搜索所识别的内容依赖于机器的系统环境,如果是中文系统识别出的是中文的搜索内容,如果是日文系统的则是日文的搜索内容。RecognizerIntent.EXTRA_LANGUAGE这个属性似乎没有什么乱用。
&&&&&&&& 最后是onActivityResult回调结果部分
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d("lsy", "onActivityResult --& requestCode: " + requestCode + " resultCode: " + resultCode);
if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) {
ArrayList&String & results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
if (results.size() & 0) {
String result = results.get(0).toString().trim();
if (null != result && result.length() & 0) {
searchResult.setText(result);
获取所有检索结果
for (String str : results) {
searchResult.append(str + "/n");
Toast.makeText(this, "Voice Content Fail", Toast.LENGTH_SHORT).show();
Log.d("lsy", "onActivityResult --& Voice Content Fail");
Toast.makeText(this, "Voice Content Fail", Toast.LENGTH_SHORT).show();
&&&&&&&& 所有搜索的结果保存在一个ArrayList的列表中,第一个数据是匹配值最高,代码中因为需要拿最匹配的值去做地图搜索才会选择第一个数据。注释部分可以打印出所有满足搜索条件的值。
&&&&&&&& 谷歌的语音搜索可以帮助我们实现在LBS类应用中进行语音定位,其搜索精度高,速度快,只是不可描述的存在限制了这个好用的功能,很是可惜。后续基于谷歌语音开发的内容可以包括:历史语音搜索记录、语音联想功能、与自主开发导航软件的协同工作等,由于时间仓促没有来的及实现,有兴趣的朋友可以实验下。
&&&&&&&& 本文对网上关于谷歌语音搜索的文章进行总结和部分拓展,做了点微小的贡献,甚是惭愧。
阅读(...) 评论()}

我要回帖

更多关于 语音识别应用领域 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信