# DigHuman **Repository Path**: CainGao/dig-human ## Basic Information - **Project Name**: DigHuman - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-25 - **Last Updated**: 2025-11-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 数字人交互平台 —— 完整项目需求与技术架构设计文档 一、项目目标与核心需求 本项目旨在构建一个数字人互动生态,包含手机端App(Godot实现)和基于Go-zero的后台管理系统。主要目标如下: ● 手机端实现高表现力的数字人动画与交互,支持商城(数字人及蓝牙硬件购买)、用户中心等功能。 ● 后台系统支持数字人及其动作、资源、语音的内容管理,用户与权限管理、商城与订单管理等全套后台能力。 ● 支持注册、登录(Google等国际OAuth),数字人交互、商城交易、蓝牙硬件对接等。 ● 后台可录入和管理数字人动画顺序、每个动作的可交互标记、对应语音或文字(文字本地TTS,音频直接播放)。 ● 动画播放严格按顺序,交互仅限动画队列的前三个及后三个动作,保障数字人表现流畅与可控。 ● 手机端菜单包括:数字人(互动主场景)、商城(数字人及硬件购买)、我的(用户中心)。 二、整体系统架构 2.1 架构分层 ● 前端(移动App) ○ 实现数字人互动、商城、用户中心等UI及交互。 ○ 支持3D动画、TTS、音频、蓝牙硬件等。 ○ 建议采用Godot跨平台技术。 ● 服务端(Go-zero微服务) ○ 负责所有业务API、用户/权限、数字人、商城、资源、硬件等核心业务。 ● 管理后台(Web端) ○ Vue + Ant Design等,支持数字人内容、商品、用户、权限、订单等管理功能。 ● 数据库 ○ MySQL 存储用户、数字人、动作、订单等结构化数据。 ● 对象存储 ○ S3,存储大文件(如模型、动画、音频、图片等)。 ● 第三方服务 ○ OAuth(Google等)、支付(Stripe/PayPal)、TTS、蓝牙交互SDK等。 三、主要功能模块与业务流程 3.1 手机端App功能结构 ● 数字人 ○ 默认播放当前数字人动画(循环顺序可控),可切换数字人。 ○ 只在队列前三/后三个动作允许交互,点击触发指定动作、表情、语音/文字(TTS)等。 ● 商城 ○ 数字人、硬件商品浏览与购买。 ○ 订单管理、资产展示。 ○ 硬件蓝牙绑定与交互(预留)。 ● 我的 ○ 用户资料、头像、昵称、设置。 ○ 注册/登录(Google等国际OAuth)。 ○ 已购数字人/硬件、订单记录。 3.2 后台管理系统功能结构 ● 数字人管理 ○ 新增/编辑数字人,3D模型、动画、表情、音频、TTS文本等资源上传与配置。 ○ 动画动作顺序管理、可交互标记。 ● 动作/动画管理 ○ 录入/编辑动作,动画顺序、关联音频或文字(TTS)、可交互标志。 ● 用户/权限管理 ○ 前台用户、后台管理员。 ○ 角色、菜单、权限(RBAC)分配。 ● 商城管理 ○ 商品(数字人/硬件)管理,库存、订单、支付等。 ● 资源管理 ○ 模型、动画、音频、图片等资源上传与分发。 ● 硬件管理 ○ 蓝牙设备注册、绑定、交互配置(预留)。 四、关键业务逻辑与实现概要 4.1 数字人动作与交互控制 ● 每个数字人动画队列顺序由后台配置,前端拉取后循环播放。 ● 仅动画队列前三/后三个允许用户交互(前端根据can_interact标记控制按钮显示)。 ● 交互动作可触发动画、表情、音频或TTS文字(支持字幕),表现与后台所设内容一致。 ● 前端利用Godot/Unity等引擎,通过AnimationPlayer/Animator等切换动画与表情,并播放音频或本地TTS。 4.2 语音与文本处理 ● 后台为动作录入音频文件或文字(用于TTS)。 ● 手机端获取动作详情后,若为音频则直接播放,若为文字则通过系统TTS合成并播放,并同步字幕。 ● 动作与语音/字幕同步通过时间轴或回调实现。 4.3 商城与购买流程 ● 商品分数字人和硬件两类,支持购买与订单管理。 ● 前端集成国际支付SDK,购买成功后资产归属用户,并同步订单信息到后端。 4.4 用户与权限 ● 前端用户可通过Google等OAuth方式注册/登录。 ● 后台管理员通过RBAC进行权限分配,支持多级权限、菜单、按钮级控制。 4.5 资源存储与分发 ● 所有大文件(模型、动画、音频、图片等)上传至对象存储,前端通过URL按需下载/缓存(可支持CDN)。 ● 资源支持版本管理及增量更新。 4.6 蓝牙/硬件扩展(预留) ● 支持数字人与蓝牙/IoT硬件联动(如动作触发设备响应)。 五、接口设计与数据结构示例 5.1 手机端API(Restful,go-zero) 用户 ● POST /api/v1/auth/register 用户注册 ● POST /api/v1/auth/login 普通登录 ● POST /api/v1/auth/oauth/google Google登录 ● GET /api/v1/user/me 获取用户信息 ● PUT /api/v1/user/profile 更新资料 数字人与动作 ● GET /api/v1/avatars 获取数字人列表 ● GET /api/v1/avatars/{id} 获取数字人详情 ● GET /api/v1/avatars/{id}/actions 获取动画队列 ● POST /api/v1/avatars/{id}/select 选择数字人 ● POST /api/v1/avatars/{id}/action/{action_id}/trigger 触发动作 商城/订单 ● GET /api/v1/shop/items 获取商品列表 ● GET /api/v1/shop/items/{id} 商品详情 ● POST /api/v1/shop/orders 创建订单 ● GET /api/v1/shop/orders 用户订单 硬件(预留) ● GET /api/v1/hardware/list 查询设备 ● POST /api/v1/hardware/bind 绑定设备 API数据结构示例 // 动作信息 type Action struct { ID int64 `json:"id"` Name string `json:"name"` Sequence int `json:"sequence"` AnimURL string `json:"anim_url"` CanInteract bool `json:"can_interact"` AudioURL string `json:"audio_url,omitempty"` TTSText string `json:"tts_text,omitempty"` Type string `json:"type"` // 表情/动作/待机 } 5.2 后台管理API(部分) ● POST /admin/login 管理员登录 ● GET /admin/users 用户管理 ● GET /admin/roles 角色管理 ● GET /admin/menus 菜单管理 ● GET /admin/avatars 数字人管理 ● POST /admin/avatars 新增数字人 ● PUT /admin/avatars/{id} 编辑数字人 ● GET /admin/avatars/{id}/actions 动作管理 ● POST /admin/avatars/{id}/actions 新增/编辑动作 ● POST /admin/resources/upload 资源上传 ● GET /admin/shop/items 商品管理 ● PUT /admin/shop/items/{id} 编辑商品 ● GET /admin/orders 订单管理 六、数据库结构概要 ● users(用户表) ● admin_users(后台管理员) ● roles(角色) ● permissions(权限) ● role_permissions(角色-权限关系) ● menus(菜单/页面) ● avatars(数字人模型) ● avatar_actions(数字人动作、动画、语音、文本、顺序、可交互等) ● audio_resources(音频) ● resources(通用资源表) ● shop_items(商城商品) ● orders(订单) ● hardware_devices(硬件设备/蓝牙) 七、包结构建议 7.1 Go-zero后端 /api/ # OpenAPI/Swagger定义 /app/ /user/ # 用户业务 /avatar/ # 数字人业务 /action/ # 动作业务 /shop/ # 商城业务 /order/ # 订单业务 /resource/ # 文件资源 /hardware/ # 硬件管理 /auth/ # 认证 /permission/ # 权限管理 /internal/ /handler/ # 路由 /logic/ # 业务 /model/ # ORM模型 /svc/ # 服务 /middleware/ # 中间件 /config/ # 配置 /web/ # 管理后台前端 7.2 移动端 /avatars # 数字人3D模型 /anims # 动画、表情 /audio # 语音 /scripts # 交互脚本 /ui # 菜单 /network # API逻辑 /utils # 工具 /config # 配置 main.tscn # Godot主场景 7.3 管理后台前端 /src /pages /users /avatars /actions /shop /orders /resources /hardware /permissions /components /api /utils /assets /router /store 八、开发实现建议与关键要点 ● 动画与动作强依赖顺序,前端需严谨控制,仅允许在队列允许的动作时开放交互。 ● 动作数据需包含可交互标记、顺序、动画、语音/文字等,后台可灵活维护。 ● 资源采用对象存储,支持大文件上传与分发、CDN加速及版本管理。 ● 手机端TTS建议用原生API,后台可选用基础TTS服务做兜底。 ● 商城与支付采用国际解决方案,蓝牙/硬件需适配主流SDK。 ● 系统权限采用RBAC,支持细粒度菜单、功能点授权。 ● 预留蓝牙/IoT扩展接口,便于后续智能硬件联动。 ● 整体安全性、操作审计、资源权限等须完善。 九、后续扩展方向 ● 多语种/国际化 ● 数字人与硬件深度联动 ● 动作/表情编辑器 ● 资源热更新与灰度发布 ● Web/Pad端适配 如需详细ER图、Swagger API、移动端Demo工程、管理后台原型等,可进一步细化。此文档已覆盖完整项目开发所需逻辑与技术方案,可直接用于团队立项与开发推进。