对接说明
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)反馈。