这篇内容分为两个部分:前半部分是我的个人使用心得与场景记录,后半部分是一份完整的SDK接入教程,开发者可以直接照着操作。
一、最近在折腾魔珐星云
这段时间一直在关注魔珐星云这个3D数字人开放平台。
它和市面上常见的“会说话的头像”有什么不同?你给一段文字,它生成的不只是干巴巴的语音,而是带着表情、动作、甚至眼神的3D数字人——不是静态图片,也不是提前录好的视频。用官方的说法叫“具身智能”,通俗点讲,就是给原本只有“脑子”的AI补上了“身体”和“表达能力”。
真正有吸引力的是它开放了SDK:不只是能在平台里生成成品,而是能把数字人能力直接嵌入到自己的网页、应用里,跟自己的业务和大模型接起来。这就从“做视频的工具”变成了“能长在产品里的一块能力”。
二、实际应用场景
平时做内容和小程序开发,一直想给用户一个“有人味”的交互入口,而不是冷冰冰的对话框。魔珐星云正好补上了这一块,主要用在三个方向:
1. 内容创作:口播视频提效
以前一条口播视频要写稿、出镜、拍摄、剪辑,一个人跑下来非常累。现在稿子写好,直接交给数字人播报出片,形象和声音统一,产量明显上来了。对于需要稳定更新的公众号或短视频内容,这个提效是实打实的。
2. 小程序/网页:交互式虚拟形象
把数字人嵌进页面里,当作一个会说话、会做表情的“导览/客服”角色。用户进来不再是面对一个输入框,而是有个形象跟他打招呼、答疑、引导操作。信任感和停留时长都比纯文字界面要好不少。
3. 接大模型:能对话的数字人
这是最有想象力的一步——把数字人和大模型接起来:用户提问,大模型生成回答,数字人把回答播报出来。于是它不再是“按剧本念稿”,而是能根据用户的问题实时应答。医疗导诊、商场导览、景区讲解这类场景,都能套这个链路。
说句实在话:它不是万能的,复杂场景仍然需要调;但作为“日常内容生产+给产品加一个虚拟人”的方案,性价比和上手门槛都在可接受的范围内。所以顺手把接入过程整理出来,方便想试的朋友直接照着做。
三、SDK 接入教程
3.0 整体调用链路
接入逻辑很简单,核心就是把“文本”送进数字人SDK让它播报;接了大模型之后,再把模型的回答喂给播报方法。
创建驱动应用
↓
获取 appId / appSecret / gatewayServer
↓
项目中配置参数
↓
初始化 XmovA vatar
↓
调用 speak 播报文本
↓
(可选)接入大模型,将模型回答传给 speak
3.1 准备工作
注册并登录
- 打开官网 www.xingyun3d.com/ ,点击右上角“登录/注册”。
- 注册时填写邀请码,完成账号绑定。
确认账号权益
登录后点击右上角头像进入个人中心,确认账号已具备SDK体验额度。可在以下位置核对权益是否生效:
- 消耗记录
- 订单发片
3.2 创建驱动应用并获取配置
创建驱动应用,进入平台左侧菜单:
应用管理 → 驱动应用 → 创建驱动应用
按页面提示填写应用名称等基础信息,完成创建。
选择数字人形象:创建完成后进入应用详情页,选择对应数字人形象并保存。
获取调用配置:进入已创建的驱动应用,复制SDK调用所需的两项配置:
appId
appSecret
3.3 在项目里接入 SDK
① 配置参数
const xingyunConfig = {
appId: '替换为自己的 appId',
appSecret: '替换为自己的 appSecret'
}
② 准备挂载容器
③ 初始化 SDK
const a vatar = new XmovA vatar({
containerId: '#a vatar-container',
appId: xingyunConfig.appId,
appSecret: xingyunConfig.appSecret,
gatewayServer: 'https://nebula-agent.xingyun3d.com/user/v1/ttsa/session'
})
④ 调用播报
a vatar.speak('你好,我是魔珐星云数字人。')
建议封装一层,统一做防空判断:
function speakText(text) {
if (!a vatar) {
console.warn('SDK 未初始化')
return
}
if (!text) {
console.warn('播报文本为空')
return
}
a vatar.speak(text)
}
3.4 接入大模型问答(可选)
用户输入问题
↓
请求大模型接口
↓
获取大模型返回文本
↓
调用数字人 SDK 播报文本
async function handleQuestion(question) {
const answer = await callLLM(question) // callLLM 由项目自行实现
speakText(answer)
}
callLLM 由项目自行实现,可接入豆包、OpenAI兼容接口或其他大模型服务。
3.5 体验与测试
⚠️ 建议体验2分钟以上,充分感受语音、表情、动作效果。
依次尝试以下输入(每次等数字人回复后再继续):
- 输入:
你好 - 输入以下任一,等待回复:
这里有什么好玩/这里有什么好吃的/我的症状是发热 - 输入以下任一,等待回复:
我想去发热科室/我想去电影院/我想去某某商家
测试顺序建议:
- ① 基础播报测试 — 输入
你好,判断:数字人是否正常加载、能否语音播报、嘴型/动作是否正常、页面是否报错。 - ② 场景问答测试 — 输入
这里有什么好玩的?或我的症状是发热。,判断:大模型是否返回内容、数字人能否播报返回内容、连续多轮输入是否正常。
四、几点注意事项
- 配置隔离:appId / appSecret是账号+应用级别的,不要跨账号混用,也不要写死在可被公开访问的前端代码里(有安全要求时,敏感配置建议走后端袋里)。
- 体验额度:先确认账号权益生效再开发,避免卡在调用环节。
- 接口名:
speak、XmovA vatar等以当前SDK版本为准,升级后留意变更。 - 效果预期:简单播报开箱即用,复杂交互场景仍需按业务调优。
五、写在最后
用下来的整体感受:它把“让AI拥有身体”这件原本很重的事,做成了普通开发者也能上手的能力。如果你也在做内容生产,或想在自己的产品里加一个能对话、有表情的虚拟形象,值得亲手试一次——那种“AI活过来了”的感觉,文字确实形容不出来。
(本文接入部分整理自官方“星云平台SDK操作教程”,界面与接口以平台最新版本为准。)
