# LiveTalking **Repository Path**: lipku/LiveTalking ## Basic Information - **Project Name**: LiveTalking - **Description**: 实时交互数字人 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: https://livetalking-doc.readthedocs.io/ - **GVP Project**: No ## Statistics - **Stars**: 117 - **Forks**: 71 - **Created**: 2023-12-29 - **Last Updated**: 2026-04-15 ## Categories & Tags **Categories**: ai **Tags**: None ## README # [English](./README-EN.md) | 中文版
实时交互流式数字人,实现音视频同步对话。基本可以达到商用效果 [wav2lip效果](https://www.bilibili.com/video/BV1scwBeyELA/) | [ernerf效果](https://www.bilibili.com/video/BV1G1421z73r/) | [musetalk效果](https://www.bilibili.com/video/BV1bUwezvEnG/) 国内镜像地址:
### 系统架构图
```mermaid
graph TD
User["User / Frontend Web"] -->|"Text Input / Audio File"| API["API Routes: /human, /humanaudio"]
subgraph "Server Layer"
API --> SessionMgr["Session Manager"]
SessionMgr --> AvatarSession["Avatar Session Instance"]
end
subgraph "Logic Layer"
AvatarSession -->|"Request Type: chat"| LLM["LLM Response Engine"]
LLM -->|"Generated Text"| TTS["TTS Engine: Edge/CosyVoice/Tencent..."]
AvatarSession -->|"Request Type: echo"| TTS
TTS -->|"PCM Audio (16k)"| ASR["Audio Feature Extraction"]
API -->|"Uploaded audio"| ASR
end
subgraph "Rendering Layer"
ASR -->|"Audio Features / Mel"| Infer["Inference Engine: Wav2Lip/MuseTalk/ERNeRF"]
Infer -->|"Generated Mouth Sync"| Paste["Paste Back"]
end
subgraph "Streaming Layer"
Paste -->|"Video Frames"| Output["Output Module: WebRTC/RTMP/Virtualcam"]
ASR -->|"Audio Frames"| Output
Output -->|"Real-time Media Stream"| User
end
subgraph "Modular Plugin System"
Reg["Registry"] -.-> TTS
Reg -.-> Infer
Reg -.-> Output
end
style User fill:#f9f,stroke:#333,stroke-width:2px
style Reg fill:#fff2cc,stroke:#d6b656,stroke-width:2px
style LLM fill:#dae8fc,stroke:#6c8ebf,stroke-width:2px
style Infer fill:#d5e8d4,stroke:#82b366,stroke-width:2px
```
### 1. API层
- **接口端点**:
- `/human`:接收文本,用于“(echo)”(直接播放)或“聊天(chat)”(大语言模型交互)场景。
- `/humanaudio`:接收原始音频文件用于播放。
- **会话管理**:每个连接都会分配一个`sessionid`,用于维护状态并处理多用户并发请求。
### 2. 逻辑层
- **大语言模型(LLM)引擎**:与通义千问(Qwen)等模型对接,生成对话式回复。
- **语音合成(TTS)引擎**:模块化系统,支持多种服务商(EdgeTTS、GPT-SoVITS等),实现文本到语音的转换。
- **语音特征提取**:提取视觉唇形同步所需的声学特征(如梅尔频谱图)。
### 3. 渲染层
- **模型推理**:基于深度学习模型(如Wav2Lip、MuseTalk),根据音频特征生成唇形同步的视频帧。
- **后处理**:将生成的嘴部区域平滑叠加回原始高清虚拟形象视频上。
### 4. 流媒体层
- **传输协议**:
- **WebRTC**:低延迟的浏览器端流媒体传输协议。
- **RTMP**:适用于YouTube、哔哩哔哩等平台的标准流媒体协议。
- **虚拟摄像头**:允许将输出内容作为系统摄像头使用。
### 5. 插件系统
- **注册中心**:采用去中心化的注册机制([registry.py](./registry.py)),开发者可轻松新增语音合成(TTS)、虚拟形象(Avatar)或输出(Output)模块。 欢迎效果更好的模型和服务接入,也可以进行商业合作。
## 4. More Usage
使用说明: 