前提条件
无论您当前使用的是测试版本或正式版本,都需要在申请授权并激活后才能正常使用。
操作步骤
步骤1:提交申请
1. 在 语音评测离线 SDK 控制台 选择离线识别 SDK,首次注册请先完成实名认证。
2. 目前语音评测离线 SDK 只接受企业认证账号进行测试申请(如果需要正式购买必须先进行测试申请)。
3. 实名认证与企业认证后,在语音评测离线 SDK 控制台单击立即申请进行测试版本申请。
4. 填写申请信息。
步骤2:授权使用
1. 获取 LicenseID 与腾讯云鉴权相关信息
申请测试版本通过后,会在语音评测离线 SDK 控制台生成一条记录。
单击激活指引列表,可以看到当前记录被分配的 LicenseID,后续激活 SDK 代码需要用到。同时,可以单击激活指引跳转至本页面,查看腾讯云 签名方法 需要的 SecretID 与 SecretKey。
2. 下载、修改、运行
Android:集成步骤
添加 SDK 依赖:TAISDK 已经发布到 Maven Central 库,您可以通过配置 gradle 自动下载更新。
implementation 'com.tencent.edu:TAISDK-offline:1.0.1.74'
同步SDK:单击 Sync Now,如果您的网络连接 Maven Central 没有问题,SDK 会自动下载集成到工程里。
配置 App 权限:在 AndroidManifest.xml 中配置 App 的权限,TAISDK 需要以下权限:
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.RECORD_AUDIO" />
接口调用
声明并定义对象
private TAIOralEvaluation oral = new TAIOralEvaluation();
设置数据回调
this.oral.setListener(new TAIOralEvaluationListener() {@Overridepublic void onEvaluationData(final TAIOralEvaluationData data, final TAIOralEvaluationRet result) {OralEvaluationActivity.this.runOnUiThread(new Runnable() {@Overridepublic void run() {}});}@Overridepublic void onEvaluationError(TAIOralEvaluationData data, TAIError error) {runOnUiThread(new Runnable() {@Overridepublic void run() {}});}@Overridepublic void onEndOfSpeech() {OralEvaluationActivity.this.runOnUiThread(new Runnable() {@Overridepublic void run() {}});}@Overridepublic void onVolumeChanged(final int volume) {OralEvaluationActivity.this.runOnUiThread(new Runnable() {@Overridepublic void run() {}});}});
内部录制(SDK 内部录制音频并传输,推荐使用)
TAIOralEvaluationParam param = new TAIOralEvaluationParam();param.context = this;param.appId = "";param.soeAppId ="";param.licenseId=""; //申请到的licenseIdparam.sessionId = UUID.randomUUID().toString();param.workMode = TAIOralEvaluationWorkMode.ONCE;param.evalMode = TAIOralEvaluationEvalMode.SENTENCE;param.storageMode = TAIOralEvaluationStorageMode.DISABLE;param.serverType = TAIOralEvaluationServerType.ENGLISH;param.scoreCoeff = 1.0;param.refText = "";param.secretId = "";param.secretKey = ""; //申请到的secretKeyAIRecorderParam recordParam = new TAIRecorderParam();recordParam.fragSize = 1024;recordParam.fragEnable = true;recordParam.vadEnable = true;recordParam.isOffline = true;recordParam.vadInterval = Integer.parseInt(this.vadInterval.getText().toString());this.oral.setRecorderParam(recordParam);this.oral.startRecordAndEvaluation(param);//结束录制this.oral.stopRecordAndEvaluation();
外部录制(SDK 外部录制音频数据作为 API 调用参数)
//三、初始化参数TAIOralEvaluationParam param = new TAIOralEvaluationParam();param.context = this;param.appId = "";param.licenseId=""; //申请到的licenseIdparam.sessionId = UUID.randomUUID().toString();param.workMode = TAIOralEvaluationWorkMode.ONCE;param.evalMode = TAIOralEvaluationEvalMode.SENTENCE;param.storageMode = TAIOralEvaluationStorageMode.DISABLE;param.serverType = TAIOralEvaluationServerType.ENGLISH;param.fileType = TAIOralEvaluationFileType.Raw;param.scoreCoeff = 1.0;param.refText = "hello guagua";param.secretId = "";param.secretKey = ""; //申请到的secretKey//四、传输数据try{InputStream is = getAssets().open("hello_guagua.wav");byte[] buffer = new byte[is.available()];is.read(buffer);is.close();TAIOralEvaluationData data = new TAIOralEvaluationData();data.seqId = 1; //分片序号从1开始data.bEnd = true;data.audio = buffer;this.oral.oralEvaluation(param, data);}catch (Exception e){}
iOS:通过 CocoaPods 自动加载的方式集成 SDK,详情请参见 测试申请 文档。
接口调用:
//实现协议@protocol TAIOralEvaluationDelegate <NSObject>/*** 评估结果回调* @param oralEvaluation 评测对象* @param data 音频数据* @param result 评估结果(最后一个分片返回,其他分片为nil)* @param error 错误信息*/- (void)oralEvaluation:(TAIOralEvaluation *)oralEvaluationonEvaluateData:(TAIOralEvaluationData *)dataresult:(TAIOralEvaluationRet *)resulterror:(TAIError *)error;/*** 静音检测回调 * @param oralEvaluation 评测对象* @brief 检测到静音内部不会停止录制,业务层可以根据此回调主动停止录制或提示用户*/- (void)onEndOfSpeechInOralEvaluation:(TAIOralEvaluation *)oralEvaluation;/*** 音量分贝变化* @param oralEvaluation 评测对象* @param volume 分贝大小* @brief volume范围【0-120】*/- (void)oralEvaluation:(TAIOralEvaluation *)oralEvaluation onVolumeChanged:(NSInteger)volume;//鉴权结果回调- (void)onAuthResult:(TAIError *)error;@end//一、声明并定义对象@property (strong, nonatomic) TAIOralEvaluation *oralEvaluation;self.oralEvaluation = [[TAIOralEvaluation alloc] init];self.oralEvaluation.delegate = self;//应用初始化的时候请求鉴权//**************鉴权*****************************TAISignParam *param = [[TAISignParam alloc] init];param.appId = [PrivateInfo shareInstance].appId;param.secretId = [PrivateInfo shareInstance].secretId;param.secretKey = [PrivateInfo shareInstance].secretKey; param.token = [PrivateInfo shareInstance].token;param.licenseId = [PrivateInfo shareInstance].licenseId;[self.oralEvaluation auth:param];
数据回调
-(void)oralEvaluation:(TAIOralEvaluation *)oralEvaluation onEvaluateData:(TAIOralEvaluationData *)data result:(TAIOralEvaluationRet *)result error:(TAIError *)error { //数据和结果回调(只有data.bEnd为YES,result有效) }
内部录制(SDK 内部录制音频并传输,推荐使用)
TAIOralEvaluationParam *param = [[TAIOralEvaluationParam alloc] init];param.sessionId = [[NSUUID UUID] UUIDString];param.appId = @"";param.workMode = TAIOralEvaluationWorkMode_Once;param.evalMode = TAIOralEvaluationEvalMode_Sentence;param.storageMode = TAIOralEvaluationStorageMode_Disable;param.serverType = TAIOralEvaluationServerType_English;param.scoreCoeff = 1.0;param.fileType = TAIOralEvaluationFileType_Mp3;param.refText = @"";param.secretId = @"";param.secretKey = @"";//四、开始录制[self.oralEvaluation startRecordAndEvaluation:param callback:^(TAIError *error)//结果返回}];//五、结束录制[self.oralEvaluation stopRecordAndEvaluation:^(TAIError *error) {//结果返回}];
外部录制(SDK 外部录制音频数据作为 API 调用参数)
//三、初始化参数TAIOralEvaluationParam *param = [[TAIOralEvaluationParam alloc] init];param.sessionId = [[NSUUID UUID] UUIDString];param.appId = @"";param.workMode = TAIOralEvaluationWorkMode_Once;param.evalMode = TAIOralEvaluationEvalMode_Sentence;param.storageMode = TAIOralEvaluationStorageMode_Disable;param.serverType = TAIOralEvaluationServerType_English;param.scoreCoeff = 1.0;param.fileType = TAIOralEvaluationFileType_Raw;param.refText = @"hello guagua";param.secretId = @"";param.secretKey = @"";NSString *wavPath = [[NSBundle mainBundle] pathForResource:@"hello_guagua" ofType:@"wav"];TAIOralEvaluationData *data = [[TAIOralEvaluationData alloc] init];data.seqId = 1;data.bEnd = YES;data.audio = [NSData dataWithContentsOfFile:wavPath];__weak typeof(self) ws = self;//四、传输数据[self.oralEvaluation oralEvaluation:param data:data callback:^(TAIError *error) {//接口调用结果返回}];
请求参数