腾讯云智聆口语评测音频数据评测说明-教育服务解决方案

前提条件

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折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

发表评论