Only the Chinese version of this page is provided currently. The English version will be provided soon.
Help & Documentation>口语评测(基础版)

录音评测说明

Last updated: 2026-01-16 17:21:52

SDK 初始化

固定密钥接入

1. 您在 获取密钥 后,可以开始创建 TencentSOE 对象,使用 SecretId,SecretKey 进行签名认证。
注意:
该格式适用于前端调试,若使用此格式,请避免泄露密钥。
2. TencentSOE 获取的对象是唯一的,不同的界面需要重新创建。同一页面可以使用 reset 修改评测参数。
注意
建议用户使用子账号密钥 + 环境变量的方式调用 SDK,提高 SDK 使用的安全性。为子账号授权时,请遵循 最小权限指引原则,防止泄漏其他资源。
如果您一定要使用永久密钥,建议遵循 最小权限指引原则 对永久密钥的权限范围进行限制。
wx.ready(function() {
const recorder = new TencentSOE({
SecretId: 'your secretid', // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考https://cloud.tencent.com/document/product/598/37140
SecretKey: 'your secretkey', // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考https://cloud.tencent.com/document/product/598/37140
success() {
recorder.start({
RefText: 'about'
});
},
error(err) {
console.log(err);
}
});
});

临时密钥接入

使用固定密钥会存在安全问题,线上环境推荐使用临时访问凭证。示例参考 getAuthorization 接口说明 。
wx.ready(function () {
const 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({
RefText: 'about'
});
},
error(err) {
console.log(err);
}
});
});

后端评测接入

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

开始录音

创建对象 TencentSOE 后,在 success()内使用 start 方法进行录音评测。使用 start 方法后 SDK 会开始录音,调用成功会在 success 中输出评测结果;调用失败会在 error 中返回报错信息;录音超过60s会调用 complete 停止录音。使用方法原型参考微信 JSSDK - 开始录音接口。
wx.ready(function () {
const recorder = new TencentSOE({
// SDK初始化代码
MediaUrl: 'https://yourdomain/getMedia',
success() {
stopbtn.onclick = function () {
recorder.start({
RefText: 'about',
error: function (err) {
console.log(err);
},
complete: function () {
console.log('录音超过1分钟未停止触发此回调')
},
success: function (res) {
console.log(res);
result.innerHTML = JSON.stringify(res); //展示结果
}
});
}
}
})
})

停止录音

创建对象 TencentSOE 后,在 success()内使用 stop 方法进行录音评测。使用 stop 方法后 SDK 会停止录音,在 success 中返回最终评测结果和 localId,localId 可以用于播放等;调用失败后会在 error 中返回报错信息。stop 方法需要在 start 后进行调用。使用方法原型参考微信 JSSDK - 停止录音接口。
wx.ready(function () {
const recorder = new TencentSOE({
// SDK初始化代码
MediaUrl: 'https://yourdomain/getMedia',
success() {
stopbtn.onclick = function () {
recorder.stop({
success(res) {
// 输出测评结果
console.log(res); //打印结果
result.innerHTML = JSON.stringify(res); //展示结果
audioUrl = res.localId || '';
},
error(err) {
console.log(err);
}
});
}
}
})
})
SDK 内部会在停止录音后上传语音,获取到 media_id。MediaUrl 需要填入自身后端地址,SDK 会拼接?mediaId=media_id发送 get 请求,获取到音频数据(blob 或 base64 格式)进行评测。MediaUrl 后端接口参考微信开发相关 - mediaurl接口。

录音回放

使用 stop 方法后根据返回的 localId 数据,生成音频 url。使用 audio 标签进行播放。
css 部分:
<button id="listen">试听</button>
<audio id="audio">
<source src="" type="audio/mp3">
</audio>
javascript 部分:
const listenBtn = document.querySelector("#listen")

let isPlaying = false;
listenBtn.onclick = function () {
if (isWX) {
wx.playVoice({
filePath: 'wxLocalResource://6876692290864'
});
return;
}
const ele = document.getElementById('audio');
if (!audioUrl.length || !ele) {
alert('当前没有录音音频可播放');
return;
}
if (isPlaying) {
ele.currentTime = 0;
ele.pause();
} else {
ele.setAttribute('src', audioUrl);
ele.play();
}
}

重制参数

创建对象 TencentSOE 后,在 success()内使用 reset 方法进行重置参数。同一页面不同的 tab 可以不通过 TencentSOE 重复初始化,使用 reset 改变评测参数。
wx.ready(function () {
const recorder = new TencentSOE({
// SDK初始化代码
MediaUrl: 'https://yourdomain/getMedia',
success() {
recorder.reset({
WorkMode: 0
});
},
error(err) {
console.log(err);
}
});
});

参数说明

TencentSOE 说明

参数
类型
是否必填
默认值
说明
SecretId
String
否
无
用户 SecretId
SecretKey
String
否
无
用户 SecretKey
getAuthorization
function
否
无
获取临时密钥接口,参考getAuthorization 接口说明
TransInitUrl
String
否
无
发音数据传输附带初始化接口地址,参考TransInitUrl 接口说明
MediaUrl
String
是
无
获取音频byte数据的url,参考微信开发相关
success
function
否
无
创建成功回调
error
function
否
无
创建失败回调
WorkMode
Integer
否
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: 音素结构文本,参考音素标注
cosBucketUrl
String
否
无
音频存储模式,此参数已废弃,无需设置;
注意:
有存储需求的用户建议自行存储至腾讯云 COS 对象存储使用。

start(options) 说明

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

reset(options)说明

参数
类型
是否必填
默认值
说明
WorkMode
Integer
否
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
接口错误,具体看返回信息