前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云语音识别之一句话识别

腾讯云语音识别之一句话识别

原创
作者头像
HI hero
发布2020-07-26 16:35:19
2.2K0
发布2020-07-26 16:35:19
举报
文章被收录于专栏:技术拓展与说明

一句话识别API地址:https://cloud.tencent.com/document/product/1093/35646


Action : SentenceRecognition

语音数据传输方式及其限制

  • url

设置SourceType参数为0后,Url参数中传输

限制:音频时间长度要小于60s

  • post body

设置SourceType参数为1后,Data参数中传输

限制:大小不超过600KB

注意事项

  • QPS:25qps
  • 支持语种:中文普通话、英语、粤语。
  • 音频格式:wav、mp3;采样率支持8000Hz或者16000Hz;采样精度支持16bits;声道支持单声道。
  • 所有请求参数放在POST请求的body中,编码类型采用x-www-form-urlencoded,参数进行urlencode编码后传输。

Android关于使用一句话识别SDK演示

SDK地址:https://cloud.tencent.com/document/product/1093/36501

获取到压缩包,sdk demo获取src下级目录 QCloudSDKOneSentenceDemo 作为项目根目录

目录

设置编辑器环境

ERROR:

配置错误

解决方案:编辑中:文件->项目结构 中设置SDK、NDK、JDK 的 Path

项目结构

更新扩展

在Dependencies中更新扩展,选中app(当前项目),查看当前app下所有扩展,是否需要更新(波浪线代表需要更新版本),点击Update进行更新,无则不更新.

更新扩展

设置项目秘钥配置 DemoConfig.java

秘钥配置文件

设定项目相关权限集

Path:app > src > main > AndroidManifest.xml

代码语言:javascript
复制
    <!--网络权限-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 相机硬件的权限 -->
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <uses-permission android:name="android.permission.FLASHLIGHT" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <!-- 录音的权限 -->
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 

录音文件识别功能代码文件 OneSentenceRecognizeActivity.java介绍

代码语言:javascript
复制
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        
        setContentView(R.layout.activity_one_sentence_recognize);
        
        RotateLoading rotateLoading = findViewById(R.id.rotateloading);
        rotateLoading.setLoadingColor(Color.parseColor("#FF79CD6E"));
        if(!checkMyPermission(permiss)){
            ActivityCompat.requestPermissions(this,permiss, REQUEST_CODE);
        }
        //读取秘钥配置
        if (recognizer == null) {
            recognizer = new QCloudOneSentenceRecognizer(this,DemoConfig.apppId, DemoConfig.secretId, DemoConfig.secretKey);
            //设置识别结果回调
            recognizer.setCallback(this);
        }

        System.out.println(Thread.currentThread());
        //通过setOnClickListener绑定按钮recognize(url)点击事件请求URL方式传递文件访问一句话识别接口
        findViewById(R.id.recognize_ur_btn).setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                try {
                    showLoading(true);

                    QCloudOneSentenceRecognitionParams params = (QCloudOneSentenceRecognitionParams) QCloudOneSentenceRecognitionParams.defaultRequestParams();
                    params.setUrl("http://liqiansunvoice-1255628450.cosgz.myqcloud.com/30s.wav");
                    params.setSourceType(QCloudSourceType.QCloudSourceTypeUrl);
                    params.setFilterDirty(0);// 0 :默认状态 不过滤脏话 1:过滤脏话
                    params.setFilterModal(0);// 0 :默认状态 不过滤语气词  1:过滤部分语气词 2:严格过滤
                    params.setFilterPunc(0); // 0 :默认状态 不过滤句末的句号 1:滤句末的句号
                    params.setConvertNumMode(1);//1:默认状态 根据场景智能转换为阿拉伯数字;0:全部转为中文数字。
                    params.setHotwordId("1335468b9e7c11ea9ae9446a2eb5fd98"); // 热词id。用于调用对应的热词表,如果在调用语音识别服务时,不进行单独的热词id设置,自动生效默认热词;如果进行了单独的热词id设置,那么将生效单独设置的热词id。
                    params.setVoiceFormat(QCloudAudioFormat.QCloudAudioFormatWav);
                    params.setSourceType(QCloudSourceType.QCloudSourceTypeUrl);
                    params.setEngSerViceType(QCloudAudioFrequence.QCloudAudioFrequence16k.getFrequence());
                    recognizer.recognize(params);

//                    recognizer.recognize("http://liqiansunvoice-1255628450.cosgz.myqcloud.com/30s.wav", QCloudAudioFormat.QCloudAudioFormatWav, QCloudAudioFrequence.QCloudAudioFrequence16k);
                } catch (Exception e) {
                    e.printStackTrace();
                    System.out.println("exception msg" + e.getMessage());
                } finally {
                }
            }
        });

        //通过setOnClickListener绑定按钮recognize(data)点击事件通过data方式传递文件请求一句话识别接口
        findViewById(R.id.recognize_ur_data).setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                InputStream is = null;
                try {
                    //开启加载效果
                    showLoading(true);
                    //通过语音数据调用 转化的语音数据
                    AssetManager am = getResources().getAssets();
                    is = am.open("test1.mp3");
                    int length = is.available();
                    byte[] audioData = new byte[length];
                    is.read(audioData);
                    QCloudOneSentenceRecognitionParams  params = (QCloudOneSentenceRecognitionParams)QCloudOneSentenceRecognitionParams.defaultRequestParams();
                    params.setFilterDirty(0);// 0 :默认状态 不过滤脏话 1:过滤脏话
                    params.setFilterModal(0);// 0 :默认状态 不过滤语气词  1:过滤部分语气词 2:严格过滤
                    params.setFilterPunc(0); // 0 :默认状态 不过滤句末的句号 1:滤句末的句号
                    params.setConvertNumMode(1);//1:默认状态 根据场景智能转换为阿拉伯数字;0:全部转为中文数字。
//                    params.setHotwordId(""); // 热词id。用于调用对应的热词表,如果在调用语音识别服务时,不进行单独的热词id设置,自动生效默认热词;如果进行了单独的热词id设置,那么将生效单独设置的热词id。
                    params.setData(audioData);
                    params.setVoiceFormat(QCloudAudioFormat.QCloudAudioFormatMp3);
                    params.setSourceType(QCloudSourceType.QCloudSourceTypeData);
                    params.setEngSerViceType(QCloudAudioFrequence.QCloudAudioFrequence16k.getFrequence());
                    recognizer.recognize(params);
                }
                catch (IOException e) {
                    e.printStackTrace();
                }
                catch (Exception e) {
                    e.printStackTrace();
                    System.out.println("exception msg" + e.getMessage());
                }
                finally {
                    try {
                        is.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
        
        //SDK设置内置录音器开启/关闭
        findViewById(R.id.recognize_start_record).setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                try {
                    if (recording) {
                        //停止录音
                        recognizer.stopRecognizeWithRecorder();
                    }
                    else {
                        //开启录音
                        recognizer.recognizeWithRecorder();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    System.out.println("exception msg" + e.getMessage());
                } finally {
                }
            }
        });
    }

SDK带识别结果获取回调方法

代码语言:javascript
复制
   /**
     * 识别结果回调
     * @param recognizer 实例
     * @param result 识别文本
     * @param exception 异常信息
     *
     */
    @Override
    public void recognizeResult(QCloudOneSentenceRecognizer recognizer, String result, Exception exception)  {
        //关闭加载效果
        showLoading(false);
        TextView textView = findViewById(R.id.recognize_text_view);
        Log.e("recognizeResult","thread id:" + Thread.currentThread().getId() + " name:" + Thread.currentThread().getName());
        if (exception != null) {
            Log.e("recognizeResult","result: " + result + "exception msg" + exception + exception.getLocalizedMessage());
            textView.setText(exception.getLocalizedMessage());
        }
        else {
            Log.e("recognizeResult","result: " + result);
            textView.setText(result);
        }
    }

模拟器请求演示

这篇文章对您有帮助的话,记得给小编点个赞 !!!!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Action : SentenceRecognition
    • 语音数据传输方式及其限制
      • 注意事项
      • Android关于使用一句话识别SDK演示
        • 设置编辑器环境
          • 更新扩展
            • 设置项目秘钥配置 DemoConfig.java
              • 录音文件识别功能代码文件 OneSentenceRecognizeActivity.java介绍
              • 模拟器请求演示
              • 这篇文章对您有帮助的话,记得给小编点个赞 !!!!!
              相关产品与服务
              语音识别
              腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档