OpenTalking

6个月前发布 684 00

OpenTalking 是一个开源实时数字人框架,目标是把 数字人对话产品 需要的链路串起来:前端交互、会话状态、LLM 回复、TTS/音色选择、打断控制、字幕事件、WebRTC 音视频播放,以及外部模型服务调用。

所在地:
中国
收录时间:
2026-05-07
OpenTalkingOpenTalking

构建一个低延迟、高保真的实时数字人应用,通常意味着要处理复杂的 LLM 集成、流式 TTS、唇形同步模型以及 WebRTC 信令交互。OpenTalking 是一个面向实时对话的开源数字人产线编排层,旨在通过模块化设计,让你只需关注业务逻辑,而将底层复杂性交给框架。

无论是想快速验证 API 连通性,还是希望部署企业级的高保真数字人,OpenTalking 都提供了从“轻量 Demo”到“高质量生产”的完整路径。

OpenTalking

核心亮点:灵活、开放、实时

1. 三级演进路径,按需升级

OpenTalking 设计了三种使用模式,满足不同阶段的需求:

  • 快速体验 (Quick Start):默认使用 demo-avatar + Wav2Lip,无需下载大模型权重,无需独立推理服务。适合首次验证 API、TTS 和 WebRTC 链路。
  • 轻量适配 (Lightweight):支持 MuseTalk 等轻量模型,用于验证 Avatar 资产格式和模型适配器,平衡速度与效果。
  • 高质量部署 (Production):通过 OmniRT 接入兼容 FlashTalk 风格的 WebSocket 服务,利用本地或云端 GPU 实现电影级唇形同步和表情渲染,面向消费级显卡和企业私有化场景。

2. 模块化编排,广泛兼容

  • LLM 无关性:支持任何 OpenAI-compatible 接口,包括 DashScope (Qwen)、Ollama、vLLM、DeepSeek 等。
  • TTS/STT 灵活选择:默认集成免费的 Edge TTS,也支持阿里云百炼 Paraformer STT 和 Qwen Realtime TTS。
  • WebRTC 原生支持:内置 WebRTC 信令处理,实现端到端的低延迟音视频传输。

3. 实时交互与打断

  • 流式响应:LLM 回复、TTS 音频生成、字幕事件、状态事件在一条链路中完成,确保对话流畅自然。
  • 基础打断能力:支持在当前说话轮次中进行打断,后续版本将升级为全链路取消,进一步提升交互真实感。

4. 多种部署形态

  • 单进程 Demo:适合本地开发和测试。
  • 分布式模式:支持 API/Worker 分离,适合高并发场景。
  • Docker Compose:一键容器化部署,简化运维。

快速开始:三步启动你的数字人

1. 准备环境

确保已安装 Python ≥ 3.9, Node.js ≥ 18, FFmpeg。

git clone https://github.com/datascale-ai/opentalking.git
cd opentalking

python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

cp .env.example .env

2. 配置环境变量

在 .env 文件中填写必要的 API Key(以阿里云百炼为例,也可替换为其他提供商):

# 快速体验模式:关闭 FlashTalk,使用轻量 Wav2Lip
OPENTALKING_DEFAULT_MODEL=wav2lip
OPENTALKING_FLASHTALK_MODE=off

# LLM 配置 (示例:阿里云百炼 Qwen)
OPENTALKING_LLM_BASE_URL=https://dashscope.aliyun.com/compatible-mode/v1
OPENTALKING_LLM_API_KEY=sk-your-dashscope-key
OPENTALKING_LLM_MODEL=qwen-flash

# STT 配置
DASHSCOPE_API_KEY=sk-your-dashscope-key
OPENTALKING_STT_MODEL=paraformer-realtime-v2

# TTS 配置 (默认 Edge TTS,免费且无需 Key)
OPENTALKING_TTS_PROVIDER=edge
OPENTALKING_TTS_VOICE=zh-CN-XiaoxiaoNeural

3. 启动服务

打开两个终端窗口:

终端 1:启动后端

cd opentalking
source .venv/bin/activate
bash scripts/start_unified.sh

终端 2:启动前端

cd opentalking/apps/web
npm ci
npm run dev -- --host 0.0.0.0

浏览器访问 http://localhost:5173,即可开始与你的数字人对话!

模型支持与扩展

模型类型名称特点适用场景
轻量口型同步wav2lip (默认)无需独立服务,计算量小快速验证、低保真 Demo
进阶口型同步musetalk效果优于 Wav2Lip,仍需本地推理资产适配验证、中等质量需求
高保真渲染soulx-flashtalk-14b需 OmniRT + FlashTalk WebSocket生产级部署、高拟真度需求
轻量化高清soulx-flashhead-1.3b较小参数量,HTTP 接口资源受限环境下的高质量尝试

💡 提示:若要启用高质量 FlashTalk 模式,需参考 .env.flashtalk.example 配置 OmniRT 服务地址,并启动相应的推理后端。

为什么选择 OpenTalking?

  • 降低门槛:无需从头编写 WebRTC 信令、音频同步和流式处理逻辑。
  • 避免锁定:完全开源,支持本地部署,数据隐私可控。
  • 生态友好:轻松对接主流大模型和语音服务,便于集成现有业务。
  • 渐进式增强:从免费 Edge TTS + Wav2Lip 起步,逐步升级到付费高精度模型,成本可控。

相关导航