TAISDK是一款封装了腾讯云教育AI能力的SDK,通过集成SDK,用户可以快速接入相关产品功能,如数学作业批改、智玲口语评测等。
secretId和secretKey是使用SDK的安全凭证,通过以下方式获取
![](https://camo.githubusercontent.com/f9c71467d17b592385817a7c3665810ab5c2242130e47365c0ec8c2cc5f32d47/687474703a2f2f646c646972312e71712e636f6d2f6875646f6e677a6869626f2f74616973646b2f646f63756d656e742f74616973646b5f636c6f75645f312e706e67)
Demo源码下载
从Demo获取SDK并导入到工程
![](https://camo.githubusercontent.com/f4262f98eae9594cb80be2a8e8bae51bf47c6b625214a49f2b8344f58e68208b/687474703a2f2f646c646972312e71712e636f6d2f6875646f6e677a6869626f2f74616973646b2f646f63756d656e742f74616973646b5f696f735f312e706e67)
//一、声明并定义对象
@property (strong, nonatomic) TAIMathCorrection *mathCorrection;
self.mathCorrection = [[TAIMathCorrection alloc] init];
//二、初始化参数
TAIMathCorrectionParam *param = [[TAIMathCorrectionParam alloc] init];
param.sessionId = [NSString stringWithFormat:@"%ld", (long)[[NSDate date] timeIntervalSince1970]];
param.appId = @"";
param.imageData = UIImageJPEGRepresentation(_imageView.image, 0);
param.secretId = @"";
param.secretKey = @"";
//三、作业批改
[self.mathCorrection correction:param callback:^(TAIError *error, TAIMathCorrectionRet *result) {
//成功返回TAIMathCorrectionRet
}];
//一、声明并定义对象
@property (strong, nonatomic) TAIOralEvaluation *oralEvaluation;
self.oralEvaluation = [[TAIOralEvaluation alloc] init];
self.oralEvaluation.delegate = self;
//二、数据回调
- (void)oralEvaluation:(TAIOralEvaluation *)oralEvaluation onEvaluateData:(TAIOralEvaluationData *)data result:(TAIOralEvaluationRet *)result error:(TAIError *)error
{
//数据和结果回调(只有data.bEnd为YES,result有效)
}
//三、初始化参数
TAIOralEvaluationParam *param = [[TAIOralEvaluationParam alloc] init];
param.sessionId = [NSString stringWithFormat:@"%ld", (long)[[NSDate date] timeIntervalSince1970]];
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;//只支持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 = [NSString stringWithFormat:@"%ld", (long)[[NSDate date] timeIntervalSince1970]];
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 = @"hello guagua";
param.secretId = @"";
param.secretKey = @"";
NSString *mp3Path = [[NSBundle mainBundle] pathForResource:@"hello_guagua" ofType:@"mp3"];
TAIOralEvaluationData *data = [[TAIOralEvaluationData alloc] init];
data.seqId = 1;
data.bEnd = YES;
data.audio = [NSData dataWithContentsOfFile:mp3Path];
__weak typeof(self) ws = self;
//四、传输数据
[self.oralEvaluation oralEvaluation:param data:data callback:^(TAIError *error) {
//接口调用结果返回
}];
注意事项
外部录制三种格式目前仅支持16k采样率16bit编码单声道,如有不一致可能导致评估不准确或失败
secretKey属于安全敏感参数,线上版本一般由业务后台生成临时secretKey或者SDK外部签名返回到客户端。
(1)内部签名:sdk内部通过用户提供的secretKey和secretId计算签名,用户无需关心签名细节
(2)外部签名:sdk外部调用getStringToSign获取签名字符串,然后根据签名规则(参考步骤三) 进行签名。口语评测时需提供secretId、timestamp和signature参数
//获取签名所需字符串
- (NSString *)getStringToSign:(NSInteger)timestamp;
注意事项
时间戳timestamp必须和TAIEvaluationParam参数的timestamp一致
参数 |
类型 |
必填 |
说明 |
appId |
NSString |
是 |
appId |
timeout |
NSInteger |
否 |
超时时间,默认30秒 |
secretId |
NSString |
是 |
密钥Id |
secretKey |
NSString |
内部签名:必填 |
密钥Key |
signature |
NSString |
外部签名:必填 |
签名 |
timestamp |
NSInteger |
外部签名:必填 |
秒级时间戳 |
参数 |
类型 |
说明 |
code |
TAIErrCode |
错误码 |
desc |
NSString |
错误描述 |
requestId |
NSString |
请求id,定位错误信息 |
- TAIMathCorrectionParam参数说明
参数 |
类型 |
必填 |
说明 |
sessionId |
NSString |
是 |
一次批改唯一标识 |
imageData |
NSData |
是 |
图片数据 |
参数 |
类型 |
说明 |
sessionId |
NSString |
一次批改唯一标识 |
formula |
NSString |
算式 |
items |
NSArray<TAIMathCorrectionItem *> |
算式结果 |
- TAIMathCorrectionItem参数说明
参数 |
类型 |
说明 |
result |
BOOL |
算式结果 |
rect |
CGRect |
算式坐标 |
formula |
NSString |
算式字符串 |
- TAIOralEvaluationParam参数说明
参数 |
类型 |
必填 |
说明 |
sessionId |
NSString |
是 |
一次批改唯一标识 |
workMode |
TAIOralEvaluationWorkMode |
是 |
传输方式 |
evalMode |
TAIOralEvaluationEvalMode |
是 |
评测模式 |
fileType |
TAIOralEvaluationFileType |
是 |
数据格式(目前支持mp3) |
storageMode |
TAIOralEvaluationStorageMode |
式 |
是否存储音频文件 |
serverType |
TAIOralEvaluationServerType |
是 |
语言类型 |
scoreCoeff |
float |
是 |
苛刻指数,取值为[1.0 - 4.0]范围内的浮点数,用于平滑不同年龄段的分数,1.0为小年龄段,4.0为最高年龄段 |
refText |
NSString |
是 |
被评估语音对应的文本 |
- TAIOralEvaluationData参数说明
参数 |
类型 |
说明 |
seqId |
NSInteger |
分片序列号 |
bEnd |
BOOL |
是否最后一个分片 |
audio |
NSData |
音频数据 |
参数 |
类型 |
说明 |
sessionId |
NSString |
一次批改唯一标识 |
pronAccuracy |
float |
发音精准度,取值范围[-1, 100],当取-1时指完全不匹配 |
pronFluency |
float |
发音流利度,取值范围[0, 1],当为词模式时,取值无意义 |
pronCompletion |
float |
发音完整度,取值范围[0, 1],当为词模式时,取值无意义 |
audioUrl |
NSString |
保存语音音频文件的下载地址(TAIOralEvaluationStorageMode_Enable有效) |
words |
NSArray<TAIOralEvaluationWord *> |
详细发音评估结果 |
- TAIOralEvaluationWord参数说明
参数 |
类型 |
说明 |
beginTime |
int |
当前单词语音起始时间点,单位为ms |
endTime |
int |
当前单词语音终止时间点,单位为ms |
pronAccuracy |
float |
单词发音准确度,取值范围[-1, 100],当取-1时指完全不匹配 |
pronFluency |
float |
单词发音流利度,取值范围[0, 1] |
word |
NSString |
当前词 |
matchTag |
int |
当前词与输入语句的匹配情况,0:匹配单词、1:新增单词、2:缺少单词 |