
opentalking
私有部署的数字人框架,接上模型就能实时对话
OpenTalking 是一个面向生产环境的开源 AI 数字人框架,用 Python 编写,目标是让开发者能快速搭建可实时对话的虚拟人应用。它把语音识别、大模型对话、语音合成、口型与表情驱动等环节串成完整流水线,并支持私有化部署,数据不出内网。框架强调可插拔模型设计,ASR、LLM、TTS、驱动模型都能按需替换,避免被单一供应商锁定。同时提供实时对话能力,适合客服、导览、直播等交互场景。相比只做单点能力的开源项目,它更偏向工业级整合方案,降低从零拼接各模块的工程成本,让团队把精力放在业务与形象定制上。
项目数据
使用教程
环境要求
- Python 3.11(命令中通过 uv 指定)
- Node.js(前端运行需要)
- FFmpeg
- uv 包管理工具
- 真实渲染模型:需 NVIDIA GPU(如 RTX 3060/3090/4090)及对应模型权重;仅跑 Mock 模式无需 GPU
安装与启动步骤
-
1克隆仓库
把 OpenTalking 源码拉到本地,随后所有命令都在该目录中执行。
git clone https://github.com/datascale-ai/opentalking.git cd opentalking -
2安装依赖
用 uv 在 Python 3.11 下创建虚拟环境并安装开发依赖,这一步会下载较多包。
uv sync --extra dev --python 3.11 -
3激活虚拟环境
后续启动脚本依赖主 .venv 环境,必须先激活再继续。
source .venv/bin/activate -
4生成配置文件
从示例复制出 .env,随后需要手工编辑它,至少配置一个 LLM 提供商。
cp .env.example .env -
5编辑 .env 填 LLM
打开 .env 配置至少一个 LLM;TTS 默认可用免密钥的 edge 音色。LLM/STT/TTS 是相互独立的提供商配置。
-
6以 Mock 模式启动
Mock 模式使用内置静态帧,但 LLM 回复、流式 TTS、字幕事件和 WebRTC 全链路都会跑通,适合首次验证。
bash scripts/start_unified.sh --mock -
7自定义端口启动
默认前端为 5173,若端口被占用可通过参数指定 API 与前端端口。
bash scripts/start_unified.sh --mock --api-port 8210 --web-port 5280 -
8停止服务
验证完成后用该脚本关停所有已启动的服务进程。
bash scripts/quickstart/stop_all.sh
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
LLM 提供商 | 是 | 在 .env 中至少配置一个 LLM,否则对话链路无法回复;具体变量名见官方配置文档 | sk-xxxxxxxx |
TTS 提供商 | 否 | 默认可使用免密钥的 edge 音色,无需额外申请密钥 | edge |
如何确认成功
服务启动后浏览器打开默认前端地址 http://localhost:5173,能出现 WebUI 并完成一轮带字幕的对话与音视频播放即为成功。
常见问题
Q:没有 GPU 可以体验吗?
A:可以。使用 --mock 模式,内置静态帧代替视频渲染,仍可验证 API、LLM、TTS、WebRTC 与浏览器播放的完整链路,无需下载模型权重。
Q:TTS 一定要付费密钥吗?
A:不一定。默认 TTS 可使用免密钥的 edge 音色;如需本地 TTS 可改用 local_cosyvoice(在独立 sidecar venv 中运行)。
Q:端口被占用怎么办?
A:启动时加参数覆盖,例如 bash scripts/start_unified.sh --mock --api-port 8210 --web-port 5280,默认前端为 5173。
Q:如何切换到真实数字人渲染?
A:先在 Mock 模式跑通全链路,再按显卡条件选择 quicktalk、wav2lip、musetalk 等后端;显存较低时请调低分辨率。
注意事项
- 推荐先用 Mock 模式验证全链路,再根据 GPU、模型和私有化要求切换真实渲染模型。
- 编排层(API/Worker/前端)与数字人合成后端(mock、local、direct_ws、OmniRT)可独立部署。
- 若无法本地部署,也可用官方发布的 Compshare 镜像,需开放 5173 端口。
- 本地 STT/TTS 组合(sensevoice + local_cosyvoice + quicktalk)需要 RTX 3090/4090 级别显卡,CosyVoice 运行在独立 venv 中。
核心亮点
- 模块化可插拔设计,ASR/LLM/TTS/驱动模型均可替换,便于按成本与效果选型
- 支持私有化部署,语音与对话数据可留在内网,满足合规与数据安全要求
- 提供实时对话完整链路,省去自行拼接语音识别、大模型与口型驱动的工程成本
不足之处
- 项目处于成长阶段,文档与示例的完整度可能不足,上手需要一定调试
- 工业级效果依赖所接入的模型质量,开箱即用的默认体验可能有限
适用场景
- 企业私有化智能客服数字人
- 展厅/银行网点虚拟导览员
- 直播或短视频的实时虚拟主播
替代项目
Fay、metahuman-stream、Awesome-Digital-Human
项目介绍
同类项目推荐
A3D
开源
在 three.js 里直接调用 AI 生成纹理和素材,边建模边生成
3D x AI hybrid editor, built with three.js
cube
开源
用一句话生成 3D 模型,在 Roblox 里快速落地 AI 创作
Roblox Foundation Model for 3D Intelligence
AG3D
开源
用2D图片直接生成3D虚拟人,告别昂贵扫描
Official code release for ICCV2023 paper AG3D: Learning to Generate 3D Avatars from ···
GameFactory-3A
开源
一条命令生成 3A 游戏资产,从模型到视频全自动
A comprehensive open-source 3A game-generation skill and asset framework.