我是靠谱客的博主 年轻秀发,最近开发中收集的这篇文章主要介绍Android 调用谷歌语音识别:获取识别结果,进行文字输出,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

调用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 调用谷歌语音识别:获取识别结果,进行文字输出所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部