对接说明

1、插件申请接入:

在腾讯公众平台中, “微信小程序官方后台-设置-第三方服务-插件管理” 里点击 “添加插件”,搜索 “Motionverse交互数字人” 申请,审核通过后,小程序开发者可在小程序内使用该插件。

2、引入插件包:

Motionverse交互数字人appId: wx89668f1adf0dd7a8

// app.json
{
  "plugins": {
    "motion-plugin": {
      "version": "1.1.5",
      "provider": "wx89668f1adf0dd7a8"
    }
  }
}

3、使用插件的组件模式

组件调用示例:

在需要使用问答机器人组件的页面 json 文件中注册该组件

// page.json
{
  "usingComponents": {
    "robot-view": "plugin://motion-plugin/robot-component"
  }
}

在小程序页面内使用

<!-- page.wxml -->
<robot-view id="robot"/>
// page.js
Page({
  onReady() {
    this.robotView = this.selectComponent("#robot")
  },
})

组件暴露的方法

/**
 * 鉴权
 * @param {fun} successCallback 成功回调
 */
auth(successCallback)

/**
  * 终端初始化
  * @param {string} terminalNo 设备编号,可选值。该值优先级:参数传递 > 配置对象 > 服务端获取
  * @param {*} callback 结果回调
  */
init(terminalNo, callback)


/**
  * 终端切换
  * @param {string} terminalNo 设备编号
  * @param {*} callback 结果回调
  */
switch(terminalNo, callback)

/**
  * 根据语音获取对应的答案
  * @param {OnStopCallbackResult} audioRes 音频文件对象
  * @param {*} options 配置数据 { "isNeedPlay": false }
  * @param {*} resultCallback 服务器结果回调
  * @param {*} playStartCallback 语音播报开始回调
  * @param {*} playCompleteCallback 语音播报结束回调
  */
getAnswerAccordAudio(audioRes, options, resultCallback, playStartCallback, playCompleteCallback)

/**
  * 根据文本获取对应的答案
  * @param {string} text 文本
  * @param {*} options 配置数据 { "isNeedPlay": false }
  * @param {*} resultCallback 服务器结果回调
  * @param {*} playStartCallback 语音播报开始回调
  * @param {*} playCompleteCallback 语音播报结束回调
  */
getAnswerAccordText(text, options, resultCallback, playStartCallback, playCompleteCallback)

/**
  * 根据文本获取对应的语音播报
  * @param {string} text 文本
  * @param {*} options 配置数据 { "isNeedPlay": false }
  * @param {*} resultCallback 服务器结果回调
  * @param {*} playStartCallback 语音播报开始回调
  * @param {*} playCompleteCallback 语音播报结束回调
  */
getBoardcastAudio(text, options, resultCallback, playStartCallback, playCompleteCallback)

/**
  * 开始动作(肢体动作、脸部表情)
  * @param {string} actionName 动作名称
  * @param {Number} actionId 动作唯一标识,(使用场景:一个动作用于多种回答) 选填
  */
startAction(actionName)

/**
 * 开始播放语音、动作、表情
 * @param {motionObj} 需要播放的对象
 * @param {*} playStartCallback 
 * @param {*} playCompleteCallback
 * 
 * motionObj
 * {
 * "actionName": "" // 预制身体动作名称 【与bodyUrl二选一】
 * "bodyUrl": "", // 生成身体动作文件的url  【与actionName二选一】
 * "audioUrl": "", // 生成声音文件的url
 * "mouthUrl": "" // 生成表情动作文件的url
 * } 
 */
startPlayAnswer(motionObj, playStartCallback, playCompleteCallback)

/**
  * 停止动作
  */
stopAction()

/**
  * 改变语音的音量
  * @param {Number} volume 声音的音量 0~1
  */
changeAudioVolume(volume)

4、使用插件的扩展方法

在 js 文件中导入

const plugin = requirePlugin('motion-plugin')

插件暴露的方法

/**
  * 插件对象数据的配置
  * @param {*} obj 数据对象
  * {
  *   localMotionArr: [
  *     {
  *       actionName: "Jiang", // 由模型提供方提供
  *       audioUrl: "https://zksz/123456.wav", // 对应行为的语音
  *       mouthUrl: "https://zksz/123456.json" // 对应行为的口型
  *     }
  *   ],
  *   randomMotionKeyArr: ["Jiang1", "Jiang2"], // 由模型提供方提供
  *   faceMorphKey: "Face_51_0,Face_51_1", // 由模型提供方提供,0:小程序,1:web
  *   modelUrl: "https://wwww.xxx.com/kefu.glb", // 模型url地址,可以固定配置,也可以从服务端获取
  *   terminalNo: "00211", // 终端设备编号
  *   asrName: "baidu" // 语音识别名称
  *   audioFileFormat:"pcm" // 语音文件格式 pcm m4a
  *   serverUserId: '15001191540', // 用户名称
  *   appid: '166554574663336380',  // app ID
  *   secret: '52ffd4ac353f75a646d7cdb82165f709cab5f61d', // app 秘钥
  *   sceneOption:{ // 场景配置
  *     useSceneLight: true, // 使用场景光
  *     // modelPosition:{x:0, y:0, z:-1.5}, // 设置模型位置
  *     // clearVertexColor: 'f_tal_unw_body_lod1_mesh2' // 清除节点顶点颜色
  *   }
  * }
  */
plugin.configData(obj)

/**
  * 预加载模型,提前进行模型的下载
  * @param {string} modelUrl 模型链接地址
  */
preloadModel(modelUrl)

/**
  * 模型下载任务,可根据此对象监听下载进度
  */
downloadModelTask

问题反馈

如果在使用Motionverse交互数字人插件过程中遇到问题,可以通过发送邮箱(邮箱:luozhiwen@deepscience.cn)反馈。

results matching ""

    No results matching ""