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

腾讯云语音识别之录音文件识别

原创
作者头像
HI hero
修改2020-07-26 16:36:32
9.1K0
修改2020-07-26 16:36:32
举报
文章被收录于专栏:技术拓展与说明

录音文件识别API介绍地址:https://cloud.tencent.com/document/product/1093/37822


Action : CreateRecTask

获取结果方式

录音文件识别在线API具备2种方式获取识别结果,均为异步

  • 回调

通过设置请求参数CallbackUrl开启回调获取结果,轮循此参数不填。(用户自行搭建的用于接收识别结果的服务器地址)

  • 轮循

提交请求后,获取响应中反馈的TaskId,向接口(Action:DescribeTaskStatus)提交任务ID来轮询识别结果(任务成功、等待、执行中和失败)

轮循任务结果示例:

代码语言:javascript
复制
{
  "Response": {
    "RequestId": "8824366f-0e8f-4bd4-8924-af5e84127caa",
    "Data": {
      "TaskId": 522931820,
      "Status": 2,
      "StatusStr": "success",
      "Result": "[0:0.000,0:2.260,0]  腾讯云语音识别欢迎您。\n",
      "ErrorMsg": ""
    }
  }
}

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

  • url

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

限制:音频时长不能长于5小时,文件大小不超过512MB

  • post body

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

限制:大小不超过5MB


注意

  • 语种:中文普通话、英语和粤语,通过EngineModelType参数设定
  • 格式:支持wav、mp3、m4a的音频格式
  • QPS:20qps

Android关于使用录音识别SDK演示

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

获取到压缩包,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" /> 

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

代码语言:javascript
复制
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        setContentView(R.layout.activity_file_sentence_recognize);


        RotateLoading rotateLoading = findViewById(R.id.rotateloading);
        rotateLoading.setLoadingColor(Color.parseColor("#FF79CD6E"));
        if(!checkMyPermission(permiss)){
            ActivityCompat.requestPermissions(this,permiss, REQUEST_CODE);
        }
        //读取秘钥配置
        if (fileRecognizer == null) {
            fileRecognizer = new QCloudFileRecognizer(DemoConfig.apppId, DemoConfig.secretId, DemoConfig.secretKey);
            //设置识别结果回调
            fileRecognizer.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);
                    QCloudFileRecognitionParams params = (QCloudFileRecognitionParams) QCloudFileRecognitionParams.defaultRequestParams();
                    params.setUrl("http://client-sdk-1255628450.cossh.myqcloud.com/test%20audio/voice_WGVNG_8000.mp3");
                    params.setSourceType(QCloudSourceType.QCloudSourceTypeUrl);
                    params.setFilterDirty(0);// 0 :默认状态 不过滤脏话 1:过滤脏话
                    params.setFilterModal(0);// 0 :默认状态 不过滤语气词  1:过滤部分语气词 2:严格过滤
                    params.setConvertNumMode(1);//1:默认状态 根据场景智能转换为阿拉伯数字;0:全部转为中文数字。
//                    params.setHotwordId("");  // 热词id。用于调用对应的热词表,如果在调用语音识别服务时,不进行单独的热词id设置,自动生效默认热词;如果进行了单独的热词id设置,那么将生效单独设置的热词id。
                    fileRecognizer.recognize(params);
                } 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);
                    //转化本地录音文件为base64数据流
                    AssetManager am = getResources().getAssets();
                    is = am.open("test1.mp3");
                    int length = is.available();
                    byte[] audioData = new byte[length];
                    is.read(audioData);

                    QCloudFileRecognitionParams params = (QCloudFileRecognitionParams) QCloudFileRecognitionParams.defaultRequestParams();
                    params.setData(audioData);
                    params.setSourceType(QCloudSourceType.QCloudSourceTypeData);
                    params.setFilterDirty(0);// 0 :默认状态 不过滤脏话 1:过滤脏话
                    params.setFilterModal(0);// 0 :默认状态 不过滤语气词  1:过滤部分语气词 2:严格过滤
                    params.setConvertNumMode(1);//1:默认状态 根据场景智能转换为阿拉伯数字;0:全部转为中文数字。
//                    params.setHotwordId("");

                    fileRecognizer.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();
                    }
                }
            }
        });
    }

识别结果获取回调方法

qcloudasrsdk_2.0_release 扩展实例方法参考 : https://cloud.tencent.com/document/product/1093/38351

代码语言:javascript
复制
  /**
     * 识别结果回调
     * @param recognizer 录音文件识别实例
     * @param requestId 请求唯一标识别
     * @param result 识别文本
     * @param status 任务状态码:0:任务等待 1:任务执行中 2:任务成功 3:任务失败 
     * @param exception 异常信息
     *
     */
    @Override
    public void recognizeResult(QCloudFileRecognizer recognizer, final long requestId, String result,int status, Exception exception) {
        if(status==2||status==3){
            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());
            showLoading(false);
        }
        else {
            Log.e("recognizeResult","result: " + result+"---status=="+status);
            if(!TextUtils.isEmpty(result)){
                String pattern = "\\[[^\\]]+\\]";	//中括号内
                //String pattern = "\\([^)]*\\)";//括号内
                //String pattern = "\\(.+"
                result = result.replaceAll(pattern, "");
            }
            textView.setText(result);
        }

    }

模拟器请求演示

请求演示
请求演示

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

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

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

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

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

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