前提条件
1. 完成 集成 SDK。
2. 完成 密钥 申请。
SDK 初始化
固定密钥接入
创建 TencentSOE 对象,使用 SecretId,SecretKey 进行签名认证。该格式适用于前端调试,若使用此格式,请避免泄露密钥。
TencentSOE 获取的对象是唯一的,不同的界面需要重新创建。同一页面可以使用 reset 修改评测参数。
注意:
实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密。
代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见 云 API 密钥安全方案推荐。
密钥可前往 官网控制台 进行获取。
let recorder = new TencentSOE({ SecretId: 'your secretid', SecretKey: 'your secretkey', success() { recorder.start({}); }, error(err) { console.log(err); } });
临时密钥接入
let recorder = new TencentSOE({ getAuthorization(callback) { let url = ''; // 服务端获取临时密钥地址 $.get(url, function (data) { callback({ Token: data.Credentials.Token, TmpSecretId: data.Credentials.TmpSecretId, TmpSecretKey: data.Credentials.TmpSecretKey, ExpiredTime: data.ExpiredTime }); }); }, success() { recorder.start({}); }, error(err) { console.log(err); } });
服务端评测接入
let recorder = new TencentSOE({ TransInitUrl: '', // 服务端获取评测结果地址 success() { recorder.start({}); }, error(err) { console.log(err); } });
上传本地文件
创建对象 TencentSOE 后,在 success()内使用 uploadLocalFile 方法进行录音评测。上传本地文件,SDK 内部会调用评测服务,获取结果。评测结果参考:
css 部分:
<button id="upload">upload</button>
javascript 部分:
uploadbtn.onclick = function () {let recorder = new TencentSOE({// SDK 初始化success() {recorder.uploadLocalFile({RefText: 'about',load() {console.log('文件加载完成');},success(res) {console.log(res); // 输出测评结果result.innerHTML = JSON.stringify(res);},error(err) {console.log('err', err);}});}})}
重置参数
创建对象 TencentSOE 后,在 success()内使用 reset 方法进行重置参数。同一页面不同的 tab 可以不通过 TencentSOE 重复初始化,使用 reset 改变评测参数。
let recorder = new TencentSOE({// SDK 初始化success() {recorder.reset({WorkMode: 1});}})
参数说明
TencentSOE 说明
参数 | 类型 | 是否必填 | 默认值 | 说明 |
SecretId | String | 否 | 无 | 用户 SecretId |
SecretKey | String | 否 | 无 | 用户 SecretKey |
getAuthorization | function | 否 | 无 | |
TransInitUrl | String | 否 | 无 | |
success | function | 否 | 无 | 创建成功回调 |
error | function | 否 | 无 | 创建失败回调 |
WorkMode | Integer | 否 | 0 | |
EvalMode | Integer | 否 | 0 | 评测模式 0:单词模式 1:句子模式 2:段落模式 3:自由说模式 4:单词音素纠错模式 5:情景评测模式 6:句子多分支评测模式 7:单词实时评测模式 8:拼音评测模式 |
ScoreCoeff | Float | 否 | 3.5 | 评价苛刻指数,取值为[1.0 - 4.0]范围内的浮点数 |
SoeAppId | String | 否 | 无 | |
ServerType | Integer | 否 | 0 | |
TextMode | Integer | 否 | 0 | |
SilentDuration | Float | 否 | 5000 | 触发静音回调所需要检测的连续的时间;单位为毫秒 |
SilentVolume | Float | 否 | 20 | 低于该值,则认为是静音。取值为1 - 100 |
cosBucketUrl | String | 否 | 无 |
uploadLocalFile(options) 说明
reset(options)说明
参数 | 类型 | 是否必填 | 默认值 | 说明 |
WorkMode | Integer | 否 | 0 | |
EvalMode | Integer | 否 | 0 | 评测模式 0:单词模式 1:句子模式 2:段落模式 3:自由说模式 4:单词音素纠错模式 5:情景评测模式 6:句子多分支评测模式 7:单词实时评测模式 8:拼音评测模式 |
ScoreCoeff | Float | 否 | 3.5 | 评价苛刻指数,取值为[1.0 - 4.0]范围内的浮点数 |
SoeAppId | String | 否 | 无 | |
ServerType | Integer | 否 | 0 | |
TextMode | Integer | 否 | 0 |
error 错误码说明
code | 错误说明 |
10000 | 参数格式错误 |
10001 | 当前浏览器不支持录音功能 |
10002 | 未开启麦克风访问权限 |
10003 | 未提供发音评估初始化接口 |
10004 | 未提供发音数据传输接口 |
10005 | 未提供测评文本 |
10006 | 上传文件必须是 MP3 类型 |
10007 | 未引入微信 JS-SDK |
10008 | 用户拒绝用户拒绝授权录音 |
10009 | 上传文件必须是 MP3 类型 |
10010 | 网络异常 |
10011 | TransInitUrl 接口不正确 |
10012 | MediaUrl 接口不正确 |
10013 | 录音失败,请重新录音 |
10020 | 接口错误,具体看返回信息 |