开源实时数字人项目 LiveTalking 本次更新带来了后台管理系统 、Avatar 生成管线 API 和全新前端页面
一、更新概览
一句话总结:系统化管理 + API化生产 + 产品化体验。
核心变化:
- 新增 Admin API 与管理后台 Dashboard
- 新增 Avatar 生成管线(异步任务 + REST API + 前端页面)
- 全新统一入口首页,替代旧的零散 Demo 页
- 完整的 API 接口文档
二、系统架构一览
更新后的 LiveTalking 整体架构如下:
输出层
引擎层
服务层
API 层
前端层
index.html
统一入口
avatar.html
形象生成
admin.html
后台管理
/offer
WebRTC 建连
/human
文本/音频驱动
/api/avatar/task
形象生成任务
/api/admin/
系统监控
TaskManager
异步任务调度
SessionManager
会话管理
LLM 对话引擎
TTS 语音合成
MuseTalk / Wav2Lip
唇形推理渲染
WebRTC
RTMP
录制 MP4
三、后台管理系统:服务从黑盒变白盒
以前部署了数字人服务,有多少活跃会话、每个会话跑什么模型、用的什么协议,全凭看日志猜。现在有了 Admin API 和 Dashboard。
Admin API 提供两个端点:
| 接口 | 说明 |
|---|---|
GET /api/admin/config |
返回全局配置:模型、端口、传输协议等 |
GET /api/admin/sessions |
返回所有活跃会话的状态、模型、avatar_id 等 |
Admin Dashboard (web/admin.html)通过这两个接口拉取数据,用卡片形式展示系统配置和会话列表。这套接口也为后续对接 Prometheus + Grafana 监控体系做好了准备。
四、Avatar 生成管线:自定义形象有了标准 API
以前生成自定义数字人形象,得手动跑脚本、传参数、盯着终端等结果。现在整个流程被封装成了一套异步任务系统。
4.1 任务调度流程
回调服务 GPU Worker TaskManager /api/avatar/task 前端 / API 调用方 回调服务 GPU Worker TaskManager /api/avatar/task 前端 / API 调用方 POST 创建任务(模型、视频、参数) add_task() 返回 task_id { task_id } submit(_run_task) POST notify_url(pending → running) generate_avatar() progress_callback 上报进度 POST notify_url(completed / failed) GET /api/avatar/task/{id} { status, progress, ... }
4.2 核心设计
任务状态机 :pending → running → completed/failed,每个任务携带 progress(0-100)、error_msg、耗时等字段,全程可追踪。
并发控制:ThreadPoolExecutor 串行执行,避免多任务抢占 GPU 显存导致 OOM------符合形象生成场景「低频但资源密集」的特点。
回调通知 :支持传入 notify_url,任务状态变化时自动 POST 通知,方便对接下游业务系统。
4.3 Avatar API
四组 RESTful 接口,支持 JSON 和 multipart/form-data 两种请求格式:
| 方法 | 路径 | 功能 |
|---|---|---|
| POST | /api/avatar/task |
创建生成任务 |
| GET | /api/avatar/task/{task_id} |
查询任务进度 |
| DELETE | /api/avatar/task/{task_id} |
删除待执行任务 |
| GET | /api/avatar/tasks |
列出所有任务 |
参数设计兼顾两种模型:wav2lip 的 face_det_batch_size、pads;musetalk 的 bbox_shift、parsing_mode、version。
配套前端 web/avatar.html 提供了可视化的表单配置 + 任务列表 + 进度条展示,大幅降低了非技术用户的使用门槛。
五、产品化体验升级
旧的零散 Demo 页面(webrtcapi-custom.html、webrtcchat.html)被移除,取而代之的是统一的 index.html 作为导航中心,串联起数字人对话、形象生成、后台管理三大模块。
新增的 /record/{sessionid} 下载接口打通了「API 提交文案 → 数字人播报 → 录制 → 下载」的短视频批量制作链路。
六、总结
| 维度 | 更新前 | 更新后 |
|---|---|---|
| 可观测性 | 日志 | Admin API + Dashboard |
| 形象生产 | 手动脚本 | REST API + 任务队列 |
| 前端体验 | 零散 Demo 页 | 统一导航体系 |
🔗 项目地址 :https://github.com/lipku/LiveTalking
🔗 国内镜像 :https://gitee.com/lipku/LiveTalking
🔗 说明文档 :https://doc.livetalking.ai