从0到1打造专属数字人:魔珐星云SDK接入实战演示

前言

最近,魔珐科技发布了全球首个具有 3D 数字人开放平台------魔珐星云,将 AI 从对话框交互模式升级为能说会动的自然交互形态,让大模型突破文字交互限制,实现语音,表情,动作的自然表达

或许你在AI模拟面试、虚拟客服咨询等场景中已感受过类似的数字人应用,但魔珐星云的核心优势在于,它为开发者提供了完整的开放平台与SDK工具包,让普通人也能轻松开发出属于自己的3D数字人应用

核心优势

魔珐星云作为具身智能数字人开放平台,其支撑 3D 数字人规模化落地的六大核心优势:

高质量:具备逼真的 3D 数字人形象,可实时生成自然生动的声音、表情与动作,能够赋予数字人真实可信的表达力,让交互更贴近真人质感。

低延时:驱动响应速度仅需 500ms,交互过程实时流畅自然,且支持随时打断对话,高度还原真人沟通场景,提升交互体验的沉浸感。

低成本:依托 AI 端渲和解算技术,无需昂贵 GPU 设备,仅需百元级芯片即可运行,大幅降低数字人部署的硬件门槛,助力大规模普及。

高并发:支持千万级设备同时驱动,能够轻松应对批量化接入需求,在高负载场景下仍能保障交互体验稳定可靠,满足规模化应用需求。

多风格:覆盖超写实、二次元、卡通、美型等多种角色风格和人设,可根据不同场景灵活选择适配的数字人形象,适配多样化需求。

多终端适配:全面兼容手机、车机、Pad、PC、电视与大屏等终端设备,同时支持 Android、iOS、鸿蒙等主流系统,且 100% 兼容国产信创,实现跨端无缝部署。

通过文生3D多模态动作大模型和AI端渲和解算,实现打破3D数字人生成的质量、成本、延时不可能三角,从而真正支持AI具身智能大规模应用。

应用创建

接下来,给大家来演示一下如何创建应用,首先,可以来到官网,创建一个自己的应用:https://xingyun3d.com/?utm_campaign=daily\&utm_source=jixinghuiKoc18

这里可以选择一个自己喜欢的形象和背景,还有一些角色的表情之类的

然后就可以在这里进行调试了

创建完应用,平台会生成专属的appId和appSecret,这两个关键参数将作为后续SDK接入的核心凭证,然后就可以进行开发使用,可以先下载一下官方的 Demo 代码,然后输入配置进行运行体验

SDK 接入

魔珐星云具身驱动SDK是一款能够将AI表达从文本升级为3D多模态的前端开发工具包。通过接入该SDK,开发者可以在网页应用中实现实时3D数字人渲染、语音合成与口型同步、多状态行为控制等功能,为AI交互提供更丰富的表现力和更自然的交互体验。

可以先来分析一下官方的 Demo ,然后结合 SDK 文档来看下是怎么接入的:

首先是需要引入 SDK 脚本,项目中是通过 window.XmovAvatar 全局对象加载

复制代码
<!DOCTYPE html>
<html lang="en">
<body>
  <div style="width: 400px;height: 600px">
    <div id="sdk"></div>
  </div>
  <script src="https://media.xingyun3d.com/xingyun3d/general/litesdk/xmovAvatar@latest.js"></script>
</body>
</html>

然后创建渲染容器,获取到 appId 和 appSecret,

复制代码
// 构建网关URL
const url = new URL(SDK_CONFIG.GATEWAY_URL)
url.searchParams.append('data_source', SDK_CONFIG.DATA_SOURCE)

// 创建SDK实例
const avatar = new window.XmovAvatar({
  containerId: `#${containerId}`,
  appId,
  appSecret,
  gatewayServer: url.toString(),
  // 事件回调配置
})

// 初始化SDK
await avatar.init({
  onDownloadProgress: (progress) => {
    console.log(`初始化进度: ${progress}%`)
  }
})

接着就是语音交互功能:

复制代码
// 让虚拟人说话
avatar.instance.speak(ssml, true, false)

同时也可以通过 SSML 支持,来自定义音调,语速和音量

复制代码
// 生成SSML格式
const ssml = generateSSML(text, {
  pitch: 1,     // 音调
  speed: 1,     // 语速
  volume: 1     // 音量
})

还有口型同步和字幕功能,SDK 能够自动处理语音与口型的同步,提供完善的字幕显示和隐藏机制,只需调用 speak() 方法,SDK会自动将SSML文本转换为语音,并且分析语音的音素和节奏,自动生成对应的口型动画,完成语音与口型的匹配

复制代码
// 在app.ts的sendMessage方法中
const ssml = generateSSML(text)
// 三个参数分别是:SSML文本、是否打断当前语音、是否为最后一句话
avatar.instance.speak(ssml, true, false)  // 第一句话
avatar.instance.speak(ssml, false, false) // 中间的话
avatar.instance.speak(ssml, false, true)  // 最后一句话

字幕功能:

通过配置 onWidgetEvent 回调函数来监听SDK发送的字幕事件

复制代码
const constructorOptions = {
  // 其他配置...
  onWidgetEvent: (event: any) => {
    console.log('SDK事件:', event)
    if (event.type === 'subtitle_on') {
      onSubtitleOn(event.text)  // 触发字幕显示回调
    } else if (event.type === 'subtitle_off') {
      onSubtitleOff()  // 触发字幕隐藏回调
    }
  },
  // 其他配置...
}

const avatar = await avatarService.connect({
  appId,
  appSecret
}, {
  onSubtitleOn: (text: string) => {
    appState.ui.subTitleText = text  // 更新字幕文本状态
  },
  onSubtitleOff: () => {
    appState.ui.subTitleText = ''  // 清空字幕文本
  },
  onStateChange: (state: string) => {
    avatarState.value = state
  }
})

当虚拟人开始说话时,SDK会触发 subtitle_on 事件, Vue的响应式系统检测到状态变化,自动更新字幕显示, 当说话结束时,SDK触发 subtitle_off 事件,清空字幕状态并隐藏UI

调用完之后就可以断开连接了:

复制代码
avatarService.disconnect(avatar.instance)

此外,配合 SDK 的流式播报功能,可以实现长文本的流畅播报:

复制代码
// 文本分割算法核心逻辑
function splitSentence(text: string): string[] {
  // 根据标点符号和长度规则分割文本
  // 返回分割后的文本数组
}

// 流式播报实现
for await (const chunk of stream) {
  buffer += chunk
  const arr = splitSentence(buffer)
  
  if(arr.length > 1) {
    // 播报第一段
    avatar.instance.speak(generateSSML(arr[0]), false, false)
    buffer = arr[1] // 保留剩余文本
  }
}

我们自己来开发的话也是这样的流程, 通过使用魔珐星云的 SDK,再结合一些前端样式,就可以开发出一个自己的 web 页面数字人

代码地址

这里也给大家准备了开箱即用的代码:https://gitee.com/cold-is-not-effective/magic-flower-nebula

大家可以下载代码自己试一下

常见问题

在实际开发过程中,难免会遇到一些技术问题,以下是针对魔珐星云SDK接入的常见问题排查与优化技巧,帮助大家提升开发效率和应用体验。

  1. 跨域问题:如果初始化时出现CORS错误,需检查网关URL是否正确,同时确保前端项目已添加跨域许可。魔珐星云SDK支持跨域访问,若仍出现问题,可在后端配置代理转发网关请求。 2. 初始化失败:大概率是appId、appSecret错误或网络问题。建议先核对凭证信息,再通过浏览器开发者工具查看网络请求状态,若网关地址无法访问,可尝试切换网络环境。 3. 口型不同步:可能是语音合成延迟或文本长度过长。建议优化文本分割逻辑,避免单段文本超过50字,同时确保网络通畅,减少语音合成的响应时间。 4. 渲染卡顿:多为设备性能不足或渲染参数设置过高。可降低渲染分辨率(如从1080p改为720p),关闭抗锯齿功能,或优化页面其他资源,减少CPU和GPU占用。

总结

魔珐星云3D数字人开放平台的发布,为开发者提供了一套低成本、高效率的3D数字人开发解决方案。通过简单的应用创建流程和清晰的SDK接入文档,即使是前端新手也能快速上手,打造出具备语音、表情、动作的多模态数字人应用。

如果你也想尝试开发专属的3D数字人应用,不妨从魔珐星云官网开始: https://xingyun3d.com/?utm_campaign=daily\&utm_source=jixinghuiKoc18

注册账号之后就可以来体验了

相关推荐
NAGNIP1 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab2 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab2 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP6 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年6 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼6 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS6 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区8 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈8 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang8 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx