录音评测说明

最近更新时间:2024-03-27 09:56:11

我的收藏

前提条件

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); } });

服务端评测接入

Web SDK 通过发送 POST 请求, Content-Type 类型为 application/json。调用服务端评测进行评测,将返回结果回调。示例参考:
let recorder = new TencentSOE({ TransInitUrl: '', // 服务端获取评测结果地址 success() { recorder.start({}); }, error(err) { console.log(err); } });

开始录音

创建对象 TencentSOE 后,new TencentSOE 时会授权打开麦克风,使用 start 方法后 SDK 会调用评测服务,调用成功会在 success 中输出评测结果;调用失败会在 error 中返回报错信息。
let recorder = new TencentSOE({
SilentDuration:5000
SilentVolume:20
success() {
recorder.start({ //使用start方法开始录音
RefText: 'about', // 参数
error: function (err) {
console.log(err);
}
success: function (res) {
console.log(res);
result.innerHTML = JSON.stringify(res); //展示结果
}
});
}
})

静音检测

在 start 中使用 quiet 检测用户是否连续处于静音状态,使用 volume 检测当前音量。
let recorder = new TencentSOE({
SilentDuration:5000
SilentVolume:20
success() {
recorder.start({
quiet: function(res) {
console.log(res);
},
volume: function(res) {
console.log(res);
}
});
}


停止录音

创建对象 TencentSOE 后,在 success()内使用 stop 方法进行录音评测。使用 stop 方法后 SDK 会停止录音,在 success 中返回最终评测结果和音频数据;调用失败后会在 error 中返回报错信息。stop 方法需要在 start 后进行调用。
css 部分:
<button id="stop">stop</button>
<span id="result"></span>
javascript 部分:
const stopbtn = document.querySelector("#stop") //获取button
const result = document.querySelector("#result")

let recorder = new TencentSOE({ // 初始化
success() {
stopbtn.onclick = function () {
recorder.stop({
success(res) {
// 输出测评结果
console.log(res); //打印结果
result.innerHTML = JSON.stringify(res); //展示结果
const audioUrl = res.blob ? URL.createObjectURL(res.blob) : ''; //输出音频url
},
error(err) {
console.log(err);
}
});
}
}
})

重置参数

创建对象 TencentSOE 后,在 success()内使用 reset 方法进行重置参数。同一页面不同的 tab 可以不通过 TencentSOE 重复初始化,使用 reset 改变评测参数。
let recorder = new TencentSOE({
success() {
recorder.reset({
WorkMode: 1
});
}
})

解除麦克风占用

使用 TencentSOE 创建对象后,调用 destroy 方法,即可解除麦克风占用。
// 使用场景:在停止录音后需要解除麦克风占用
let recorder = new TencentSOE({
success() {
recorder.stop({
success(res) {
// 输出测评结果
console.log(res); //打印结果
recorder.destroy(); //解除麦克风占用
},
});
}
})

参数说明

TencentSOE 说明

参数
类型
是否必填
默认值
说明
SecretId
String
用户 SecretId
SecretKey
String
用户 SecretKey
getAuthorization
function
获取临时密钥接口,参考getAuthorization 接口说明
TransInitUrl
String
发音数据传输附带初始化接口地址,参考TransInitUrl 接口说明
success
function
创建成功回调
error
function
创建失败回调
WorkMode
Integer
0
语音输入模式,0流式分片,1非流式一次性评估。参考语音输入模式介绍
EvalMode
Integer
0
评测模式
0:单词模式
1:句子模式
2:段落模式
3:自由说模式
4:单词音素纠错模式
5:情景评测模式
6:句子多分支评测模式
7:单词实时评测模式
8:拼音评测模式
ScoreCoeff
Float
3.5
评价苛刻指数,取值为[1.0 - 4.0]范围内的浮点数
用于平滑不同年龄段的分数,1.0为小年龄段,4.0为最高年龄段。参考苛刻指数介绍
SoeAppId
String
业务应用 ID,参考业务应用 ID 介绍
ServerType
Integer
0
评估语言,0:英文,1:中文。参考评测模式介绍
TextMode
Integer
0
输入文本模式,0: 普通文本,1: 音素结构文本,参考音素标注
SilentDuration
Float
5000
触发静音回调所需要检测的连续的时间;单位为毫秒
SilentVolume
Float
20
低于该值,则认为是静音。取值为1 - 100
cosBucketUrl
String
音频存储模式,此参数已废弃,无需设置;
注意:
有存储需求的用户建议自行存储至腾讯云 COS 对象存储使用。

start(options) 说明

参数
类型
是否必填
默认值
说明
RefText
String
被评估语音对应的文本,参考评估文本介绍
Keyword
String

reset(options)说明

参数
类型
是否必填
默认值
说明
WorkMode
Integer
0
语音输入模式,0流式分片,1非流式一次性评估。参考语音输入模式介绍
EvalMode
Integer
0
评测模式
0:单词模式
1:句子模式
2:段落模式
3:自由说模式
4:单词音素纠错模式
5:情景评测模式
6:句子多分支评测模式
7:单词实时评测模式
8:拼音评测模式
ScoreCoeff
Float
3.5
评价苛刻指数,取值为[1.0 - 4.0]范围内的浮点数
用于平滑不同年龄段的分数,1.0为小年龄段,4.0为最高年龄段。参考苛刻指数介绍
SoeAppId
String
业务应用 ID,参考业务应用 ID 介绍
ServerType
Integer
0
评估语言,0:英文,1:中文。参考评测模式介绍
TextMode
Integer
0
输入文本模式,0: 普通文本,1: 音素结构文本,参考音素标注

error 错误码说明

code
错误说明
10000
参数格式错误
10001
当前浏览器不支持录音功能
10002
未开启麦克风访问权限
10003
未提供发音评估初始化接口
10004
未提供发音数据传输接口
10005
未提供测评文本
10006
上传文件必须是 MP3 类型
10007
未引入微信 JS-SDK
10008
用户拒绝用户拒绝授权录音
10009
上传文件必须是 MP3 类型
10010
网络异常
10011
TransInitUrl 接口不正确
10012
MediaUrl 接口不正确
10013
录音失败,请重新录音
10020
接口错误,具体看返回信息