腾讯云智聆口语评测音频数据评测说明-教育服务解决方案
前提条件
1. 完成 集成 SDK2. 完成 密钥 申请
设置标签页
pages/index/index.wxml
// 设置标签页
SDK 初始化
在”pages/index/index.js”中 引入 SDK
let plugin = requirePlugin("myPlugin");let manager = null;
设置生命周期回调函数
参考 微信开发者文档,设置生命周期回调函数 onShow。选择一种密钥接入方式。
Page({ data: { resps: [], btnText: '本地文件', }, onShow: function() { // Do something when page show. },})
固定密钥接入
创建 getSoeRecorderManager 对象,使用 SecretId,SecretKey 进行签名认证。固定密钥适用于前端调试,若使用此格式,请避免泄露密钥。getSoeRecorderManager 获取的对象是唯一的,不同的界面需要重新创建。注意:建议用户使用子账号密钥 + 环境变量的方式调用 SDK,提高 SDK 使用的安全性。为子账号授权时,请遵循 最小权限指引,防止泄漏其他资源。如果您一定要使用永久密钥,建议遵循最小权限指引 对永久密钥的权限范围进行限制。
manager = plugin.getSoeRecorderManager({ SecretId: 'your secretid', // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考https://cloud.tencent.com/document/product/598/37140 SecretKey: 'your secretkey', // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考https://cloud.tencent.com/document/product/598/37140});
临时密钥接入
使用固定密钥会存在安全问题,需要创建 getSoeRecorderManager 对象,线上环境需要在 服务端获取临时授权凭证。调用服务端示例参考:
manager = plugin.getSoeRecorderManager({ getAuthorization: function (callback) { wx.request({ url: 'https://example.com/server/getTmpIdAndKey', method: 'POST', data: {}, success: data => { callback({ Token: data.Credentials.Token, TmpSecretId: data.Credentials.TmpSecretId, TmpSecretKey: data.Credentials.TmpSecretKey }) } }); }});
临时密钥接入(微信云开发)
使用微信云开发进行接入。需要创建 getSoeRecorderManager 对象,完成 微信云开发相关内容,调用云函数示例参考:
if (!wx.cloud) { console.error('请使用 2.2.3 或以上的基础库以使用云能力 。。')} else { wx.cloud.init({ traceUser: true, })}manager = plugin.getSoeRecorderManager({ getAuthorization: function (callback) { wx.cloud.callFunction({ name: 'getAuthorization', data: {}, success: data => { console.log('test:', data) callback({ Token: data.result.Credentials.Token, TmpSecretId: data.result.Credentials.TmpSecretId, TmpSecretKey: data.result.Credentials.TmpSecretKey }) } }) }})
SDK 使用方法
设置监听函数
在 onShow 里面设置监听函数
// 回调结果manager.onResponse((res) => { console.log(res)})
// 最终结果manager.onSuccess((res) => { const tempFilePath = res.tempFilePath // 音频数据 console.log(res)});
// 失败回调manager.onError((res) => { console.log(res)})
设置评测参数
在 uploadLocalFile 函数内设置音频数据,需要将音频的 byte 数据转成 base64数据。
// 设置音频数据 manager.uploadLocalFile({ content:"about", audioBase64: '//uQBAAAA'});
微信本地临时文件读取。需要使用 wx.chooseMessageFile() ,从客户端会话选择文件。然后使用 FileSystemManager.readFile,读取本地文件内容。
const fs = wx.getFileSystemManager()wx.chooseMessageFile({ count: 1, type: 'file', success(res) { console.log(res) fs.readFile({ filePath: res.tempFiles[0].path, encoding: 'base64', success(file) { console.log(file) } }) }})
集成使用
pages/index/index.wxml
// 设置标签页
pages/index/index.js
let plugin = requirePlugin("myPlugin");let manager = null;// 设置生命周期回调函数Page({ data: { resps: [], uploadBtnText: '本地文件', }, onShow: function () { // 设置初始化初始化,具体参考https://cloud.tencent.com/document/product/884/84111#434bdd99-20df-4763-9a51-00cf0b6e46dc if (!wx.cloud) { console.error('请使用 2.2.3 或以上的基础库以使用云能力 。。') } else { wx.cloud.init({ traceUser: true, }) } manager = plugin.getSoeRecorderManager({ getAuthorization: function (callback) { wx.cloud.callFunction({ name: 'getAuthorization', data: {}, success: data => { console.log('test:', data) callback({ Token: data.result.Credentials.Token, TmpSecretId: data.result.Credentials.TmpSecretId, TmpSecretKey: data.result.Credentials.TmpSecretKey }) } }) } }) //设置监听函数 // 回调结果 manager.onResponse((res) => { console.log(res) }) // 最终结果 manager.onSuccess((res) => { const tempFilePath = res.tempFilePath // 音频数据 console.log(res) }); // 失败回调 manager.onError((res) => { console.log(res) }) }, // 对应pages/index/index.wxml中的onupload,点击开始评测 onupload: function () { const fs = wx.getFileSystemManager() wx.chooseMessageFile({ count: 1, type: 'file', success(res) { console.log(res) fs.readFile({ filePath: res.tempFiles[0].path, encoding: 'base64', success(file) { manager.uploadLocalFile({ content: "about", audioBase64: file.data, voiceFileType: 3 }); } }) } }) }, })
uploadLocalFile(options)说明:
属性 | 类型 | 必填 | 默认值 | 说明 |
content | String | 是 | 无 | 被评估语音对应的文本,对应 API 文档 RefText 字段。参考评估文本介绍 |
evalMode | Number | 否 | 0 | 评测模式0:单词模式 1:句子模式 2:段落模式 3:自由说模式 4:单词音素纠错模式 5:情景评测模式 6:句子多分支评测模式 7:单词实时评测模式 8:拼音评测模式参考评测模式介绍 |
scoreCoeff | Number | 否 | 1.5 | 评价苛刻指数,[1.0 – 4.0] 范围内的浮点数,用于引擎评分的严格程度。参考苛刻指数介绍 |
serverType | Number | 否 | 0 | 评估语言,0:英文,1:中文。参考评测模式介绍 |
textMode | Number | 否 | 0 | 输入文本模式,0:普通文本,1:音素结构文本,参考音素标注 |
soeAppId | String | 否 | 无 | 业务应用 ID,参考业务应用 ID 介绍 |
keyword | String | 否 | 无 | 参考主题词和关键词 |
audioBase64 | String | 是 | 无 | 评测的音频数据,格式为 base64。注意:音频源目前仅支持16k采样率16bit单声道编码方式,如有不一致可能导致评估不准确或失败。参考 音频上传格式。 |
timeoutData | Number | 否 | 5000 | 请求超时时间,以毫秒为单位。 |
voiceFileType | Number | 否 | 3 | 语音文件类型 2:wav,3:mp3。 |
腾讯云官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠
发表评论