Android开发之语音识别

开发背景

最近了解了一下Android Q(安卓10),得知Android Q基于语音识别技术,不需要联网就可以将视频中的语音实时转化成字幕这一功能。其实,在安卓中实现语音识别的代码很简单,我们要实现的就是调用谷歌API获取搜索结果,然后根据这个结果做自己想要的功能。
Android 中主要通过RecognizerIntent来实现语音识别。

RecognizerIntent相关知识

常量 简介
ACTION_RECOGNIZE_SPEECH 开启语音识别调用
ACTION_WEB_SEARCH 开启网络语音识别,结果以网页的形式显示
EXTRA_LANGUAGE_MODEL 语音识别的模式
EXTRA_MAX_RESULTS 返回的最大结果
EXTRA_PROMPT 设置用户可以开始语音的提示语
EXTRA_RESULTS 将返回的字符串集中到一个list
LANGUAGE_MODEL_FREE_FORM 在一种模式上的自由语音
LANGUAGE_MODEL_WEB_SEARCH 使用语言模型在web上搜索
RESULT_AUDIO_ERROR 返回结果时,音频遇到错误
RESULT_CLIENT_ERROR 返回结果时,客户端遇到错误
RESULT_NETWORK_ERROR 返回结果时,网络遇到错误
RESULT_NO_MATCH 未知错误
RESULT_SERVER_ERROR 返回结果时,服务端遇到错误

代码解释

1.​ 首先在AndroidManifest中设置网络权限,Android 6.0以后还需要动态请求权限

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

2.调用Google原生语音识别

  			@Override
            public void onClick(View v) {
   
                //开启语音识别功能
                Intent intent = new Intent(
                        RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
                //设置模式,这里设置成自由模式
                intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
                //提示语音开始文字
                intent.putExtra(RecognizerIntent.EXTRA_PROMPT,"Please start your voice");
                //开始进行语音识别,这里先检测手机(模拟器)是否支持语音识别并且捕获异常
                try {
   
                    startActivityForResult(intent, RESULT_SPEECH);
                    txtText.setText("");
                } catch (ActivityNotFoundException a) {
   
                    Toast t = Toast.makeText(getApplicationContext(),
                            "Opps! Your device doesn't support Speech to Text",
                            Toast.LENGTH_SHORT);
                    t.show();
                }
            }
        });

3.使用onActivityResult接收返回的结果

  @Override
    protected void onActivityResult(int requestCode, int resultCode
  • 10
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android平台上,有多种方式可以实现语音识别。其中一种方式是使用Intent调用系统自带的语音识别程序。这种方法非常简单,只需要创建一个Intent对象,并设置action为ACTION_RECOGNIZE_SPEECH,然后启动该Intent即可触发系统的语音识别功能。另外一种方式是使用PocketSphinx库进行离线语音识别。PocketSphinx是一个在Android平台上常用的离线语音识别库,具有较高的识别准确率。可以在小范围内实现99%的识别率。在使用语音识别功能时,需要注意模拟器的设置,确保其可以接收语音输入。同时,还可以参考相关文章来了解更多关于Android上调用谷歌语音识别技术的方法和步骤。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Android语音识别](https://blog.csdn.net/wjw_java/article/details/17170369)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Android开发语音识别](https://blog.csdn.net/fjnu_se/article/details/106722958)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值