




JSSDK使用
1.1简介
jssdk通过使用Web Audio Api完成在浏览器上的录音。然后将录制的原始音频流进行wav格式封装。在封装之后进行speex压缩以及ogg格式的重新封装,最终将ogg格式的采样率为16000的音频输入到引擎,进行评测。
1.2引入
需要在页面初始化时通过<script>引入engine.js
1.3 浏览器兼容
操作系统 | 支持的浏览器最低版本 | |||||
---|---|---|---|---|---|---|
360 | chrome | Firefox | 猎豹 | 搜狗 | ||
win7 | 8.0.1.222 | 41.0.2272.76 | 46 | 5.9.109 | 7 | 9.3.1 |
winXP | 8.0.1.222 | 43.0.2357.81 | 46 | 5.9.109 | 7 | 9.3.1 |
win10 | 8.0.1.222 | 43.0.2357.81 | 46 | 5.9.109 | 7 | 9.3.1 |
mac | 无MAC版 | 43.0.2357.81 | 46 | 无MAC版 | 无MAC版 | 无MAC版 |
1.4 评测流程
1、自动停止
评测开始 ——> 调用startRecord方法并且传递评测参数 ——> 自动完成评测;
2、手动停止
评测开始 ——> 调用startRecord方法并且传递评测参数 ——> 调用stopRecord方法 ——> 完成评测;
两者区别评测参数evalTime(评测时间)不相同;
自动停止:evalTime(评测时间)不是必传。如果不传则会通过评测参数中refText(评测文本)计算这次评测时间,如果传则直接取参数值;自动调用stopRecord方法完成评测;
手动停止:evalTime(评测时间)必传并且值为null; 需要再次调用stopRecord方法完成评测;
参数配置
2.1引擎参数
(1)配置参数
名称 | 类型 | 说明 | 默认值 | 必填 |
---|---|---|---|---|
applicationId | String | 商户id | 无 | 是 |
timestamp | String | 时间戳 | 无 | 是 |
sig | String | 签名 | 无 | 是 |
userId | String | 用户ID | 无 | 是 |
coreTimeout | Number | 连接超时时间 | 10000 | 否 |
coreType | String | 默认评测类型 | en.sent.score | 否 |
engineLinksAddress | Array | 连接地址 | ['gate-01.api.cloud.ssapi.cn', 'gate-02.api.cloud.ssapi.cn'] | 否 |
engineConnectTimeOut | Function | 引擎连接超时回调方法 | 无 | 否 |
- 参数实例
new EngineEvaluat ({ applicationId:“”, timestamp: “”, Sig: “”, userId: “”, coreTimeout: 10000, engineLinksAddress: “” })
2.2 麦克风方法
(1)配置参数
名称 | 类型 | 说明 | 默认值 | 必填 |
---|---|---|---|---|
micAllowCallback | Function | 麦克风允许回调方法 | 无 | 否 |
micForbidCallback | Function | 麦克风拒绝回调方法 | 无 | 否 |
(2)参数实例
new EngineEvaluat ({ micAllowCallback:function(){}, micForbidCallback:function(){} })
2.3 引擎评测成功
(1)配置参数
名称 | 类型 | 说明 | 默认值 | 必填 |
---|---|---|---|---|
engineBackResultDone | Function | 引擎返回结果成功回调 | 无 | 否 |
engineBackResultFail | Function | 引擎返回结果失败回调 | 无 | 否 |
(2)参数实例
new EngineEvaluat({
engineBackResultDone:function(data){},
engineBackResultFail:function(data){}
})
@param data是json字符串;
2.4 日志
(1)配置参数
名称 | 类型 | 说明 | 默认值 | 必填 |
---|---|---|---|---|
logAccept | Function | 日志收集 | 无 | 否 |
logIsOpen | Boolean | 日志是否开启 | true | 否 |
(2)参数实例
new EngineEvaluat ({ logAccept: function(data){}, logIsOpen: true })
@param data是json字符串;
2.5 音频
(1)配置参数
名称 | 类型 | 说明 | 默认值 | 必填 |
---|---|---|---|---|
playAudioComplete | Function | 音频播放完成回调 | 无 | 否 |
playAudioError | Function | 音频加载或播放出错回调 | 无 | 否 |
(2)参数实例
new EngineEvaluat ({ playAudioComplete: function(event){}, playAudioError: function(event){} })
@param event是事件对象;
2.6 网络
(1)配置参数
名称 | 类型 | 说明 | 默认值 | 必填 |
---|---|---|---|---|
noNetwork | Function | 暂无网络 | 无 | 否 |
(2)参数实例
new EngineEvaluat ({ noNetwork:function(data){} })
方法调用
startRecord(params, done, fail)
功能:开始录音;
参数:@params引擎评测参数
eg:
{
coreType: 'en.word.score', (必传)
refText:’word’,
precision:0.5,
evalTime:6000
};
evalTime: 1、不填。默认取refText去计算值,如果评测参数没有refText字段,默认值为5000; 2、填。如果值是null录音不会自动中断需要调用stopRecord方法结束录音获取评测结果;如果值是number类型则会按照参数值自动结束录音获取评测结果;
@done 引擎评测成功回调 注:不传默认是engineBackResultDone方法,传可覆盖;
@fail引擎评测失败回调 注:不传默认是engineBackResultFail方法,传可覆盖;
参数 | 类型 | 默认值 | 必填 |
---|---|---|---|
params | Object | {coreType:”en.sent.score”} | 是 |
done | Function | 无 | 否 |
fail | Function | 无 | 否 |
stopRecord()
功能:停止录音,录音评测停止;
cancelRecord()
功能:取消录音;
loadAudio(url)
功能:初始化音频;
参数:@url音频播放地址;
参数 | 类型 | 默认值 | 必填 |
---|---|---|---|
url | String | 无 | 是 |
playAudio()
功能:播放音频;
pauseAudio()
功能:暂停播放;
stopAudio()
功能:停止播放;
getDuration()
功能:获取音频时长;
getCurrentTime()
功能:获取音频播放进度;
setAudioVolume(num)
功能:设置音频音量;
参数:@num 音频音量设置大小;
参数 | 类型 | 默认值 | 必填 |
---|---|---|---|
num | Number | 0.8 | 是 |
setMicVolume(num)
功能:设置麦克风音量;
参数:@num麦克风音量设置大小;
参数 | 类型 | 默认值 | 必填 |
---|---|---|---|
num | Number | 1.5 | 是 |
wholeFileUpload(evt, params)
功能:文件整体上传评测;
参数:@evt上传文件压缩后对象;
@params 引擎评测参数 eg:{coreType: “en.word.score”, refText:”word”};
@coreType 评测类型; eg: “en.word.score”;
参数 | 类型 | 默认值 | 必填 |
---|---|---|---|
evt | Object | 无 | 是 |
params | Object | 无 | 是 |
coreType | String | 无 | 是 |
题型介绍
单词评测
eg:
startRecord ({
coreType:’en.word.score’,
refText:’word’,
rateScale:1.0,
symbol:1,
evalTime:6000
})
参数 | 类型 | 可选 | 说明 |
---|---|---|---|
coreType | String | 必选 | en.word.score表示英文单词评测 |
refText | String | 必选 | 评分参考文本 |
rateScale | Number | 可选 | 评分松紧度,范围0.8\~1.5,默认是1.0。值越高打分越高 |
symbol | Number | 可选 | 标点符号设置,值为0或1。默认值为0,不开启此功能 |
evalTime | Number | 可选 | 评测时间 例如:6000, 单位:ms |
attachAudioUrl | Number | 可选 | 返回云端音频Url,默认:0,开启:1。 |
句子评测
eg:
startRecord ({
coreType:’en.sent.score’,
refText:’How do you do’,
rateScale:1.0,
symbol:1,
evalTime:6000
})
参数 | 类型 | 可选 | 说明 |
---|---|---|---|
coreType | String | 必选 | en.sent.score表示英文句子评测 |
refText | String | 必选 | 评分参考文本 |
rateScale | Number | 可选 | 评分松紧度,范围0.8\~1.5,默认是1.0。值越高打分越高 |
symbol | Number | 可选 | 标点符号设置,值为0或1。默认值为0,不开启此功能 |
evalTime | Number | 可选 | 评测时间 例如:6000, 单位:ms |
attachAudioUrl | Number | 可选 | 返回云端音频Url,默认:0,开启:1。 |
段落评测
eg:
startRecord ({
coreType: ’en.pred.score’,
refText: ’Learning another language may seem more challenge than it's worth. The advantages of knowing another language......’,
rateScale: 1.0,
symbol: 1,
evalTime: 6000
})
参数 | 类型 | 可选 | 说明 |
---|---|---|---|
coreType | String | 必选 | en.pred.score表示英文句子评测 |
refText | String | 必选 | 评分参考文本 |
rateScale | Number | 可选 | 评分松紧度,范围0.8\~1.5,默认是1.0。值越高打分越高 |
symbol | Number | 可选 | 标点符号设置,值为0或1。默认值为0,不开启此功能 |
evalTime | Number | 可选 | 评测时间 例如:6000, 单位:ms |
attachAudioUrl | Number | 可选 | 返回云端音频Url,默认:0,开启:1。 |