Files
antiwear-gateway/docs/华为云MetaStudio交互数字人配置指南.md

24 KiB
Raw Blame History

华为云交互数字人 MetaStudio 配置完整指南

本文档详细说明如何在华为云 MetaStudio 平台配置交互数字人,涵盖从创建到发布的全流程操作。


目录


一、基础概念

1.1 交互数字人类型

类型 说明 适用场景
2D 数字人 真人录制驱动,成本低,部署快 客服、讲解、播报
3D 数字人 高精度建模,交互强,表现力丰富 品牌代言、展厅展示

1.2 核心组件

  • 数字人模型:2D/3D 虚拟形象
  • 智能语音对话:与数字人实时语音/文字交互
  • 知识库:数字人回答的知识来源
  • 互动文档:数字人主动播报的内容脚本
  • 终端渠道:数字人落地展示的平台

1.3 名词解释

名词 说明
知识库 数字人回答问题的语料来源,支持文档上传、网页抓取等
互动文档 数字人主动播报的脚本,可配置触发时机
对话技能 控制数字人在特定场景下的对话逻辑
终端 数字人对外展示的渠道,如电脑端、手机端、大屏端
WebRTC 实时音视频通信协议,用于数字人实时交互

二、前置准备

2.1 开通华为云服务

登录 华为云官网,依次开通以下服务:

  1. MetaStudio(数字内容生产线)

  2. 语音交互服务(可选)

    • 如需语音对话,开通 "语音合成 TTS" 和 "语音识别 ASR"
  3. IEF(智能边缘平台,可选)

    • 如需本地部署数字人终端

2.2 准备资源

  • 华为云账号 + IAM 用户(建议创建子账号授权)
  • 已备案的域名(生产环境)
  • Dify 平台账号(用于对接数字人中转服务)

三、创建数字人项目

3.1 进入 MetaStudio 控制台

  1. 登录 MetaStudio 控制台
  2. 左侧菜单选择 数字人 → 交互数字人
  3. 点击 创建项目

3.2 项目基础信息

字段 说明
项目名称 如:公司官网数字人客服
项目描述 简要描述项目用途
地域 选择最近地域(如:华北-北京四)
数字人类型 2D / 3D,根据需求选择

3.3 选择数字人模板

华为 MetaStudio 提供以下模板类型:

模板 特点 适用场景
客服助手模板 开箱即用,配置简单 官网客服、产品咨询
讲解员模板 支持主动播报内容 展厅导览、品牌讲解
虚拟主播模板 支持内容自动播报 新闻播报、活动主持
自定义模板 从零配置,灵活度高 深度定制需求

建议首次使用选择 客服助手模板,快速熟悉流程。


四、角色选择与配置

4.1 选择数字人形象

在 角色配置 页面,选择数字人的外观形象:

方式一:使用平台预设形象

MetaStudio 提供多种预设形象,分为:

分类 说明
2D 预设形象 真人模特,覆盖多种性别、肤色、服装风格
3D 预设形象 二次元、仿真人、超写实等多种风格

选择步骤:

  1. 在 形象市场 中浏览预设形象
  2. 点击 预览,查看数字人在不同场景下的表现
  3. 点击 使用,将形象添加到当前项目

方式二:定制专属形象(需申请)

如需使用真人定制:

  1. 联系华为云商务,申请定制数字人形象
  2. 提供多角度真人视频素材(10-15 分钟)
  3. 华为云制作团队完成建模(约 5-10 个工作日)

4.2 角色参数配置

选定形象后,配置以下参数:

参数 说明 推荐值
音色 数字人说话的声音类型 根据形象性别/场景选择
语速 播报语速 1.0x(正常)
音调 声音高低 根据场景调整
音量 播报音量 80%
口型匹配 是否启用口型动画 启用
动作姿态 待机/讲解时的肢体动作 选择对应场景动作集

4.3 背景配置

设置项 说明
背景类型 纯色 / 虚拟背景 / 透明(抠像)
虚拟背景 可上传图片或使用平台提供的场景模板
分辨率 720P / 1080P / 4K

建议:如数字人需要叠加在任何背景内容上(如展厅大屏、网页侧边栏),选择透明背景(WebGL 渲染模式)。


五、终端配置

终端决定了数字人在哪里展示。华为 MetaStudio 支持电脑端、手机端和大屏端三种终端类型。

5.1 支持的终端类型

终端类型 说明 适用场景
电脑端(PC Web) 通过浏览器访问,支持 WebRTC 官网、线上展厅、办公系统
手机端(Mobile) 适配手机浏览器,含 H5 / 小程序 微信内嵌、企业微信、扫码体验
大屏端(Large Screen) 支持 Linux / Windows 大屏设备 展厅、营业厅、迎宾大屏、发布会

5.2 电脑端(PC Web)配置

适用于 PC 浏览器访问的数字人终端场景,如官网客服、线上展厅等。

创建电脑端终端

  1. 在项目页面,点击 添加终端 → 电脑端
  2. 配置以下参数:
参数 说明
终端名称 如:官网电脑端
终端尺寸 固定尺寸(如 1280×720)或全屏自适应
分辨率 720P / 1080P,推荐 1080P
默认语言 终端默认语言,如 zh_CN
域名白名单 允许嵌入数字人的域名,如:*.example.com
HTTPS 必须启用,生产环境必须配置
  1. 点击 生成嵌入代码,获取 Iframe 或 Web SDK 代码

Iframe 嵌入

<iframe
  src="https://your-domain.com/digital-human?token=xxx"
  width="100%"
  height="720px"
  allow="camera; microphone"
  frameborder="0"
></iframe>

Web SDK 嵌入

<!-- 引入 SDK -->
<script src="https://cdn.example.com/metastudio-sdk-v2.js"></script>

<!-- 挂载节点 -->
<div id="digital-human-container"></div>

<script>
  const dh = new MetaStudioDigitalHuman({
    container: '#digital-human-container',
    appId: 'your-app-id',
    token: 'your-auth-token',
    width: '100%',
    height: '720px',
    language: 'zh_CN',
    autoStart: true,
    onReady: () => console.log('数字人已就绪'),
    onError: (err) => console.error('错误:', err),
  });

  dh.start();
</script>

电脑端尺寸参考

场景 推荐尺寸 说明
官网侧边栏 320×580 px 小尺寸,悬浮展示
官网全屏 1920×1080 px 全屏沉浸式体验
线上展厅 1280×720 px 兼顾清晰度与性能

5.3 手机端(Mobile)配置

适用于手机浏览器、微信内嵌页、企业微信等移动端场景。

创建手机端终端

  1. 点击 添加终端 → 手机端
  2. 配置以下参数:
参数 说明
终端名称 如:手机H5端
终端尺寸 自适应(撑满屏幕宽度)
授权域名 微信/浏览器安全域名配置
是否支持微信内嵌 开启后使用微信 JSSDK,支持微信分享
底部交互栏 是否显示输入框、快捷按钮等交互组件
键盘适配 移动端软键盘弹出时数字人画面自动上移
  1. 获取分享链接或二维码,扫码即可体验

手机端尺寸参考

场景 推荐尺寸 说明
全屏沉浸 100vw × 100vh 铺满整个手机屏幕
底部悬浮 100vw × 60vh 底部固定,叠加在网页内容上
侧边栏 375×667(iPhone SE) 小尺寸悬浮展示

微信内嵌注意事项

  • 必须在华为云 MetaStudio 控制台将微信域名加入白名单
  • 微信内置浏览器需使用 HTTPS
  • 如需调用微信 JSSDK(分享、录音等),需在微信公众平台配置 JS 安全域名

5.4 大屏端(Large Screen)配置

适用于展厅、营业厅、迎宾大屏、发布会等线下大尺寸展示场景,支持 Linux 和 Windows 系统。

创建大屏端终端

  1. 点击 添加终端 → 大屏端
  2. 配置以下参数:
参数 说明
终端名称 如:展厅迎宾大屏
分辨率 1920×1080 / 2560×1440 / 3840×2160(4K)
画面比例 16:9 / 16:10 / 4:3
数字人位置 左侧 / 右侧 / 底部,居中
数字人尺寸 占屏幕宽度比例,如 40%
背景设置 支持透明背景叠加在任何内容上
待机画面 无交互时播放的内容(如品牌视频)
自动唤醒 检测到人脸/人体时自动唤醒数字人

大屏端高级功能

功能 说明
人脸唤醒 通过摄像头检测用户靠近,自动启动数字人
手势识别 支持挥手、指屏幕等手势触发对应内容
多人识别 支持同时检测多名观众,数字人面向最近用户
静音模式 大屏无声时,数字人仅做唇形动画,不播放语音
定时播报 按设置时间自动播放欢迎语或宣传内容

大屏端尺寸参考

场景 分辨率 数字人推荐宽度
企业展厅(55寸) 1920×1080 屏幕宽度的 35-40%
营业厅大堂(75寸) 3840×2160(4K) 屏幕宽度的 30-35%
发布会主屏 1920×1080 屏幕宽度的 50-60%
走廊导览屏 1080×1920(竖屏) 屏幕宽度的 60%

5.5 终端通用参数

参数 说明 推荐值
默认语言 终端启动时的语言 zh_CN
自动启动 页面加载后自动启动数字人 是
显示水印 是否显示华为云水印 生产环境关闭
会话超时 无交互自动休眠时间 5 分钟

六、互动文档配置

互动文档用于配置数字人主动播报的内容,可以是产品介绍、活动说明、迎宾语等。

6.1 创建互动文档

  1. 在项目左侧菜单选择 内容管理 → 互动文档
  2. 点击 新建文档
  3. 填写文档名称(如:产品介绍-旗舰机型)

6.2 文档结构

互动文档采用结构化脚本格式,支持以下元素:

{
  "doc_id": "doc-001",
  "doc_name": "产品介绍-旗舰机型",
  "language": "zh_CN",
  "content": [
    {
      "type": "greeting",
      "text": "您好,欢迎来到我们的产品展厅!"
    },
    {
      "type": "segment",
      "title": "关于我们",
      "text": "我们是国内领先的智能制造企业,专注于为客户提供高品质的智能产品解决方案。"
    },
    {
      "type": "image",
      "url": "https://cdn.example.com/product.jpg",
      "description": "产品实物图"
    },
    {
      "type": "segment",
      "title": "核心优势",
      "text": "我们的产品有三大核心优势:\n1. 高性能处理器\n2. 超长续航能力\n3. 智能交互体验"
    },
    {
      "type": "qa",
      "question": "产品价格是多少",
      "answer": "具体价格请咨询我们的销售顾问,或拨打400-888-8888。"
    },
    {
      "type": "video",
      "url": "https://cdn.example.com/intro.mp4",
      "description": "产品介绍视频"
    },
    {
      "type": "goodbye",
      "text": "感谢您的参观,如有任何问题,随时向我咨询!"
    }
  ],
  "triggers": [
    {
      "type": "keyword",
      "keywords": ["产品", "介绍", "优势"],
      "priority": 1
    },
    {
      "type": "schedule",
      "cron": "0 9 * * *",   // 每天早上9点自动播报
      "description": "每日早间播报"
    }
  ]
}

6.3 触发时机配置

互动文档支持多种触发方式:

触发类型 说明 配置方式
关键词触发 用户提到特定关键词时播报 配置关键词列表,设置优先级
定时播报 按 Cron 表达式定时触发 设置 Cron 表达式
欢迎语触发 用户首次进入时播报 全局开关控制
按钮触发 用户点击引导按钮时播报 生成互动按钮
手势触发 特定手势(如挥手)触发 需配置摄像头手势识别

6.4 多文档优先级

当多个文档的触发条件同时满足时,按以下优先级处理:

  1. 问答匹配最高 — 用户问题与 Q&A 完全匹配
  2. 关键词命中数最多 — 命中关键词最多的文档
  3. 手动优先级设置 — 在文档属性中手动设置 1-100 优先级

七、对话配置

对话配置是数字人"智能"的核心,决定数字人如何理解和回答用户问题。

7.1 接入中转服务(推荐)

数字人对话推荐通过 digital-human.py 中转服务接入 Dify,无需每个终端单独对接:

数字人终端 --> digital-human.py 中转 --> Dify 知识库 --> LLM --> 响应
                      |
                      +--> Redis(多轮对话上下文)

配置步骤:

  1. 在华为云 MetaStudio 终端配置中,填写中转服务地址:
中转服务地址:https://your-domain.com/digital-human
  1. 中转服务 POST /digital-human 请求参数映射:
华为云参数 中转服务字段 说明
用户 ID user 终端用户标识
会话 ID session_id 多轮对话上下文关联
用户输入 messages[0].content 用户问题内容
应用 ID app_id Dify 应用标识
流式模式 is_stream 是否启用流式响应

7.2 Dify 应用配置

7.2.1 创建 Dify 应用

  1. 登录 Dify 平台
  2. 创建应用,选择类型:
    • 聊天助手:适合问答场景
    • Agent:适合复杂任务处理
    • Workflow:适合流程化对话

7.2.2 知识库配置

  1. 在 Dify 应用中,进入 知识库

  2. 上传文档,支持格式:

    • PDF
    • Word(.docx)
    • TXT
    • Markdown
    • 网页 URL
  3. 文档分段策略:

策略 说明 适用场景
自动分段 AI 自动识别段落 通用场景
固定长度分段 每 N 个字符一段 结构化文档
自定义分段 手动设置分段点 精准控制
  1. 设置Embedding 模型(推荐使用华为云或 OpenAI 的 Embedding 服务)

7.2.3 对话技能配置

在 Dify 应用中配置 提示词,控制数字人回答风格:

你是华为云交互数字人客服,名为"小华"。
你的职责是:
1. 热情、专业地回答用户关于产品和服务的问题
2. 回答简洁有条理,不超过3句话
3. 遇到无法回答的问题,引导用户转人工服务
4. 禁止回答与公司业务无关的问题

7.3 多轮对话配置

通过 Redis 存储 session_id 与 conversation_id 映射,实现多轮对话:

用户: 你好,我想咨询产品
数字人: 您好!很高兴为您服务。请问您想了解哪类产品?
用户: 有没有适合企业使用的?
数字人: 当然有!我们有多款企业级产品,请问您更关注哪个方面?
        (A)服务器 (B)存储 (C)网络
用户: A
数字人: 我们的服务器产品分为...

配置要点:

  • session_id:由终端生成,必须唯一,用于关联同一用户的多轮会话
  • conversation_id:由 Dify 生成,存储在 Redis 中
  • 会话超时时间:建议设置 30 分钟无交互则清理会话

7.4 意图识别与槽位填充

高级配置:通过 Dify Workflow 配置意图识别:

用户输入
    ↓
意图分类(识别是"咨询产品"还是"投诉"还是"转人工")
    ↓
分支处理
    ├── 咨询产品 → 知识库检索
    ├── 投诉     → 道歉+记录+转人工
    └── 转人工   → 输出转接指令

八、多语言配置

多语言支持让数字人可以服务全球用户,是国际化场景的必备能力。

8.1 支持的语言列表

语言代码 语言名称 说明
zh_CN 简体中文 默认
zh_TW 繁体中文 港澳台地区
en_US 英语 国际通用
ja_JP 日语 日本市场
ko_KR 韩语 韩国市场
fr_FR 法语 法国及法语区
de_DE 德语 德国及德语区
es_ES 西班牙语 西班牙及拉丁美洲
pt_BR 葡萄牙语 巴西及葡萄牙
ru_RU 俄语 俄罗斯市场
ar_SA 阿拉伯语 中东地区(RTL)

8.2 终端语言配置

在终端配置中设置支持的语言列表:

{
  "supported_languages": [
    { "code": "zh_CN", "name": "简体中文", "default": true },
    { "code": "en_US", "name": "English", "default": false },
    { "code": "ja_JP", "name": "日本語", "default": false }
  ],
  "default_language": "zh_CN",
  "language_switch_position": "top-right"
}

8.3 数字人音色多语言配置

每种语言需配置对应的音色:

语言 音色名称 参数
简体中文 小华-女声-自然 zh-CN-XiaoxiaoNeural
简体中文 小华-男声-正式 zh-CN-YunxiNeural
英语 Emma-女声 en-US-EmmaNeural
英语 Justin-男声 en-US-JustinNeural
日语 Nanami-女声 ja-JP-NanamiNeural

配置步骤:

  1. 进入 角色配置 → 音色设置
  2. 点击 添加音色
  3. 选择语言和音色类型
  4. 预览并确认

8.4 多语言互动文档

每个语言创建独立的互动文档:

内容管理/
├── 互动文档/
│   ├── 产品介绍(中文)  doc-zh-CN.json
│   ├── 产品介绍(英文)  doc-en-US.json
│   ├── 产品介绍(日文)  doc-ja-JP.json
│   └── 欢迎语(多语言) doc-welcome-all.json

文档语言字段:

{
  "doc_id": "doc-001",
  "language": "en_US",
  "content": [
    {
      "type": "greeting",
      "text": "Hello! Welcome to our digital showroom. How can I assist you today?"
    }
  ]
}

8.5 多语言对话路由

在 digital-human.py 中转服务实现多语言路由:

# 根据用户语言选择 Dify 对应的应用
LANGUAGE_APP_MAP = {
    "zh_CN": "app-zh-cn-xxx",
    "en_US": "app-en-us-xxx",
    "ja_JP": "app-ja-jp-xxx",
}

# 从请求中获取语言参数
lang = body.get("language", "zh_CN")
app_id = LANGUAGE_APP_MAP.get(lang, LANGUAGE_APP_MAP["zh_CN"])

8.6 翻译知识库

对于知识库文档较多的场景,建议:

方案 适用规模 说明
多套独立知识库 少于 10 个应用 每种语言独立维护,简单可靠
统一知识库 + 翻译中间件 大规模多语言 知识库统一存储,翻译层按需转换
多语言 Embedding 模型 中等规模 使用支持多语言的 Embedding 模型

九、发布与上线

9.1 预览测试

在正式发布前,使用 MetaStudio 提供的预览功能:

  1. 点击右上角 预览
  2. 在模拟器中选择终端类型(PC / 手机 / 大屏)
  3. 输入测试问题,验证回答是否正确
  4. 检查多语言切换是否正常
  5. 确认互动文档触发是否符合预期

9.2 发布配置

基本信息

字段 说明
发布版本号 如:v1.0.0,建议遵循语义化版本
更新说明 本次更新的内容简述
发布环境 测试环境 / 预发布 / 正式环境

终端发布

终端 发布前检查项
电脑端 域名已备案、HTTPS 证书有效、ICP 许可证(如需)
手机端 微信/支付宝域名白名单已配置
大屏端 大屏设备已就绪,系统为 Windows 或 Linux,网络畅通
APP APP 已上架或已添加测试设备

数字人内容审核

华为云对数字人内容有审核机制:

  1. 内容合规检查:禁止涉及政治、色情、暴力等内容
  2. 品牌合规检查:涉及商标、品牌需提供授权证明
  3. AI 安全检查:对话内容通过 AI 安全审核

审核时间:工作日 1-3 个工作日。

9.3 发布上线

审核通过后,点击 立即发布:

发布中 → 部署终端 → 服务启动 → 上线成功

9.4 监控与运维

发布后通过华为云控制台监控:

监控项 说明
在线人数 当前同时在线的终端用户数
对话量 每小时/每天的对话请求数
平均响应时间 Dify → 数字人响应的端到端延迟
错误率 5xx 错误占比
Redis 连接状态 会话缓存是否正常

告警配置:

  • 对话量突增 / 突降
  • 错误率超过 5%
  • 响应时间超过 10 秒
  • Redis 连接失败

十、常见问题

Q1:数字人形象无法加载?

排查步骤:

  1. 检查网络是否正常
  2. 检查浏览器控制台是否有 CORS 错误
  3. 确认终端配置的域名与实际访问域名一致
  4. 检查 HTTPS 证书是否有效

Q2:对话回答不准确?

排查步骤:

  1. 检查 Dify 知识库是否已正确关联应用
  2. 检查文档分段是否合理
  3. 在 Dify 的"日志"中查看实际检索到的内容
  4. 调整提示词,减少"幻觉"回答
  5. 适当提高检索相似度阈值(0.7-0.85 为宜)

Q3:多轮对话上下文丢失?

排查步骤:

  1. 检查 Redis 是否正常运行:docker ps | grep redis
  2. 检查 session_id 是否每次请求都相同
  3. 检查 Redis 会话过期时间(默认 86400 秒)
  4. 查看容器日志是否有 Redis 连接错误

Q4:流式响应延迟高?

排查步骤:

  1. 检查 Dify 服务响应时间(独立测试 Dify)
  2. 检查容器服务器与 Dify 服务器之间的网络延迟
  3. 确认 digital-human.py 中 generate_streaming_messages 是否实时 yield
  4. 检查 Redis 查询耗时(session_id 读取)
  5. 考虑在 Dify 侧开启流式输出(response_mode: streaming)

Q5:多语言切换不生效?

排查步骤:

  1. 确认终端配置中已添加对应语言
  2. 确认该语言的知识库文档已上传
  3. 确认 digital-human.py 中有 LANGUAGE_APP_MAP 路由
  4. 终端前端是否正确传递 language 参数

Q6:互动文档触发时机不正确?

排查步骤:

  1. 检查关键词列表是否覆盖用户可能表达的同义词
  2. 确认文档优先级设置(数字越小优先级越高)
  3. 检查定时触发 Cron 表达式是否正确
  4. 在 Dify 日志中确认是否有匹配的知识库内容被检索到

附录

A. 华为云 MetaStudio 官方文档

B. 中转服务快速验证命令

# 健康检查
curl http://localhost:8000/

# 非流式对话测试
curl -X POST http://localhost:8000/digital-human \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [{"content": "你好"}],
    "app_id": "app-PDkSHiHZsZIluoZF7N2OlNZM",
    "user": "test-user",
    "session_id": "test-001",
    "is_stream": false
  }'

C. 推荐配置清单

□ 华为云 MetaStudio 已开通
□ Dify 平台应用已创建
□ 知识库文档已上传并关联
□ .env 中 DIFY_URL / DIFY_API_KEY 已配置
□ 容器已启动(docker compose up -d --build)
□ 容器状态为 healthy
□ HTTPS 反向代理已配置
□ 域名白名单已在华为云终端配置
□ 多语言知识库和文档已准备
□ 发布审核已通过
□ 上线后监控告警已配置