小程序插件

最近更新时间:2019-04-10 12:06:42

腾讯云智聆口语评测(Smart Oral Evaluation,SOE)是腾讯云推出的语音评测产品。一种语言的口语练习,过去由于只能依赖专业教师听后进行主观评估,成本高,学习时间也难以保证。腾讯云针对此场景推出英文语音评测产品,支持从儿童到成人全年龄覆盖的语音评测,支持单词,句子等多种模式,支持发音准确度(GOP),流利度,完整度,重音准确度等全方位打分机制,专家打分相似度95%以上。

智聆语音评测小程序插件, 封装了小程序录音功能及智聆口语测评 API 的调用,可以让开发者通过简单配置就能接入语音评测能力, 免去繁杂的语音分片和鉴权逻辑, 专注于业务开发。

开发准备

在首次使用插件之前,请前往 微信小程序平台 申请安全凭证。 安全凭证包括 secretId 和 secretKey :

secretId 用于标识 API 调用者身份。
secretKey 用于加密签名字符串和服务器端验证签名字符串的密钥。

注意:

用户必须要严格保管安全凭证,避免泄露。
有了安全凭证 secretId 和 secretKey 后,可以生成鉴权凭证来使用小程序插件: 后端获取授权凭证请参考 demo

引入方式

1.登录到 小程序插件中心 添加该插件。

2.在 app.json 里面引入以下代码:

  "plugins": {
    "myPlugin": {
      "version": "1.1.1",
      "provider": "wxe5a00a1780c8eb95"
    }
  }
  1. 在代码里面导入:
    let plugin = requirePlugin("myPlugin");

调用方法

初始化:

  • 初始化格式一(推荐):通过后端获取授权凭证给到小程序插件, 小程序插件拿到授权凭证发起请求, 正式部署时请在后端加一层自己网站本身的权限检验:
    let plugin = requirePlugin("myPlugin");
    let manager = plugin.getSoeRecorderManager({
    getAuthorization: function (callback) {
      wx.request({
        url: 'https://example.com/server/getAuthorization',
        method: 'POST',
        data: {},
        success: data => {
           callback({
            timestamp: data.result.timestamp,
            authorization: data.result.authorization
          })
        }
      });
    }
    });
  • 初始化格式二(推荐):通过小程序云函数获取授权凭证,小程序插件拿到授权凭证发起请求, 小程序云自带权限检验, 不需再另加权限检验:
    let plugin = requirePlugin("myPlugin");
    let manager = plugin.getSoeRecorderManager({
    getAuthorization: function (callback) {
      wx.cloud.callFunction({
        name: 'getAuthorization',
        data: {},
        success: data => {
          callback({
            timestamp: data.result.timestamp,
            authorization: data.result.authorization
          })
        }
      })
    }
    });
  • 初始化格式三(不推荐): 小程序端使用固定密钥计算授权凭证,该格式适用于前端调试,若使用此格式,请避免泄露密钥。
    let plugin = requirePlugin("myPlugin");
    let manager = plugin.getSoeRecorderManager({
      secretId: yourSecretId,
      secretKey: yourSecretKey
    });

开始录音:

//开始评测
manager.start({
    content: 'about'
})

停止录音:

//停止录音
manager.stop()

获取评测结果:

manager.onSuccess((res) => {
  //打印识别结果
  console.log(res)
});

其他回调方法:

//开始录音回调
manager.onStart((res) => {
  console.log("成功开始录音识别", res)
});

//停止录音回调
manager.onStop((res) => {
  console.log("录音已停止", res)
});

//错误回调
manager.onError((res) => {
  //打印错误
  console.log(res)
})

识别结果说明请参考 API 文档

start(options) 说明:

属性 类型 必填 默认值 说明
content String 评测的文本
evalMode Number 0 评估模式,0:词模式、1:句子模式、2:段落模式、3:自由说模式、序列为词模式评估时、能够提供每个音节的评估信息、序列为句子模式时,能够提供完整度和流利度信息。
duration Number 60000 指定录音的时长,单位 ms,最大为60000,在到达 duration 后会自动停止录音。
scoreCoeff Number 1.5 [1.0 - 4.0] 范围内的浮点数,用于引擎评分的严格程度。
serverType Number 0 评估语言,0:英文,1:中文。
storageMode Number 0 音频存储模式,0:不存储,1:存储到公共对象存储,输出结果为该会话,最后一个分片 TransmitOralProcess 返回结果 AudioUrl 字段。
textMode Number 0 输入文本模式,0:普通文本,1:音素结构文本。
soeAppId String 业务应用 ID,与账号应用 APPID 无关,是用来方便客户管理服务的参数,新的 SoeAppId 可以在 腾讯云智聆口语评测 的【应用管理】下新建。