接入流程
?
?
?开发准备
SDK 下载
接入须知
开发者在调用前请先查看录音文件识别极速版的 接口说明,了解接口的使用要求和使用步骤。
该接口需要手机能够连接网络(3G、4G、5G 或 Wi-Fi 等),且系统为 Android 5.0 及其以上版本。
运行 Demo 必须设置 AppID、SecretID、SecretKey,可在 API 密钥管理 中获取。
运行环境配置
1. 添加录音文件识别 SDK aar,将 asr-file-recognize-release.aar 放在 libs 目录下,在 App 的 build.gradle 文件中添加。
implementation(name: 'asr-file-recognize-release', ext: 'aar')
2. 添加其他依赖,在 App 的 build.gradle 文件中添加。
implementation 'com.google.code.gson:gson:2.8.5'
3. 在 AndroidManifest.xml 添加如下权限。
< uses-permission android:name="android.permission.INTERNET"/>
混淆规则
-keepclasseswithmembernames class * { # 保持 native 方法不被混淆native <methods>;}-keep public class com.tencent.cloud.qcloudasrsdk.*
快速接入
开发流程及接入示例
1. 创建 QCloudFileRecognizer 示例
QCloudFlashRecognizer fileFlashRecognizer = new QCloudFlashRecognizer(this, appid, secretId, secretKey);?/**也可以使用临时密钥鉴权1.通过sts 获取到临时证书 (secretId secretKey token) ,此步骤应在您的服务器端实现,见/document/product/598/334162.通过临时密钥调用接口**/QCloudFlashRecognizer fileFlashRecognizer = new QCloudFlashRecognizer(DemoConfig.apppId, "临时secretId", "临时secretKey","对应的token");
2. 设置识别结果回调
fileFlashRecognizer.setCallback(this);
3. 调用方式示例
InputStream is = null;AssetManager am = getResources().getAssets();is = am.open("test1.mp3");int length = is.available();byte[] audioData = new byte[length];is.read(audioData);?QCloudFlashRecognitionParams params = (QCloudFlashRecognitionParams)QCloudFlashRecognitionParams.defaultRequestParams();//支持传音频文件数据或者音频文件路径,如果同时调用setData和setPath,sdk内将忽略setPath的值params.setData(audioData);// params.setPath("/sdcard/test2.mp3"); //支持100MB以内音频文件的识别params.setVoiceFormat("mp3"); //音频格式。支持 wav、pcm、ogg-opus、speex、silk、mp3、m4a、aac。?/**以下参数不设置将使用默认值**/params.setEngineModelType("16k_zh");//引擎模型类型,默认16k_zh。8k_zh:8k 中文普通话通用;16k_zh:16k 中文普通话通用;16k_zh_video:16k 音视频领域。params.setFilterDirty(0);// 0 :默认状态 不过滤脏话 1:过滤脏话params.setFilterModal(0);// 0 :默认状态 不过滤语气词 1:过滤部分语气词 2:严格过滤params.setFilterPunc(0);// 0 :默认状态 不过滤句末的句号 1:滤句末的句号params.setConvertNumMode(1);//1:默认状态 根据场景智能转换为阿拉伯数字;0:全部转为中文数字。params.setSpeakerDiarization(0); //是否开启说话人分离(目前支持中文普通话引擎),默认为0,0:不开启,1:开启。params.setFirstChannelOnly(1); //是否只识别首个声道,默认为1。0:识别所有声道;1:识别首个声道。params.setWordInfo(0); //是否显示词级别时间戳,默认为0。0:不显示;1:显示,不包含标点时间戳,2:显示,包含标点时间戳。params.setCustomizationID(""); //自学习模型 id。如设置了该参数,将生效对应的自学习模型。params.setHotwordID(""); //热词表 id。如不设置该参数,自动生效默认热词表;如设置了该参数,那么将生效对应的热词表。?fileFlashRecognizer.recognize(params);
关键类说明
QCloudFlashRecognizer:录音文件识别入口类
/*** 初始化方法* @param activity app activity* @param appId 便宜云服务器租用 appid* @param secretId 便宜云服务器租用 secretId* @param secretKey 便宜云服务器租用 secretKey*/public QCloudFlashRecognizer(String appId, String secretId, String secretKey);?* 通过 url 或语音数据调用录音文件识别* @param params 请求参数* @return 返回本次请求的唯一标识别 requestId*/public long recognize(QCloudFlashRecognitionParams params) throws Exception;
QCloudFlashRecognizerListener:识别结果回调
public interface QCloudFlashRecognizerListener {/*** 识别结果回调* @param recognizer 录音文件识别实例* @param result 服务器返回的识别结果 api文档 /document/product/1093/52097* @param exception 异常信息**/void recognizeResult(QCloudFlashFileRecognizer recognizer,String result, int status,Exception exception);}
?