LiveTalking 是一个开源的实时交互式数字人引擎
LiveTalking 是一个开源的实时交互式数字人引擎,支持多种先进模型(如Wav2Lip、MuseTalk),能够实现流畅的流式音视频对话,广泛应用于虚拟直播、AI客服、在线教育等场景。
本教程将指导你完成从环境搭建到服务启动的全流程部署。
📦 第一步:环境准备与依赖安装
LiveTalking 官方在 Ubuntu 22.04 / 24.04、Python 3.10 / 3.12、CUDA 12.4 / 12.8 环境下测试通过。请确保你的系统满足以下要求,并拥有NVIDIA GPU(推荐RTX 3060及以上)。
1.1 安装基础环境
安装CUDA工具包:确保已安装与你的GPU驱动兼容的CUDA版本。若未安装,可参考相关Linux CUDA环境搭建指南。
安装Miniconda(推荐用于环境隔离):
1
2
3wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3
source $HOME/miniconda3/bin/activate
1.2 创建并配置Python环境
1 | # 1. 创建名为 livetalking 的虚拟环境(Python版本可选3.10或3.12) |
注意:如果使用MuseTalk模型,可能需要额外安装
mmcv、mmdet、mmpose等计算机视觉库,建议按顺序执行pip install -U openmim后,使用mim install mmengine mmcv>=2.0.1 mmdet>=3.1.0 mmpose>=1.1.0进行安装。
🚀 第二步:下载模型与启动服务
2.1 下载预训练模型
从官方网盘(如夸克云盘或Google Drive)下载所需模型文件:
- 将
wav2lip256.pth拷贝到项目的models/目录下,并重命名为wav2lip.pth。 - 将
wav2lip256_avatar1.tar.gz解压,并将整个文件夹(wav2lip256_avatar1)拷贝到data/avatars/目录下。
网络优化:若无法访问Hugging Face,可在运行前设置环境变量
export HF_ENDPOINT=https://hf-mirror.com使用国内镜像。
2.2 启动数字人服务
在项目根目录下,使用以下命令启动服务。核心参数说明如下:
--transport webrtc:指定使用WebRTC进行低延迟传输。--model wav2lip:选择驱动模型。--avatar_id wav2lip256_avatar1:指定使用的数字人形象ID。
1 | python app.py --transport webrtc --model wav2lip --avatar_id wav2lip256_avatar1 |
重要:服务端需要在防火墙上开放端口 TCP 8010,以及 UDP端口范围 1-65536(或至少50000-60000),以支持WebRTC的媒体流传输。
🌐 第三步:客户端接入与功能测试
3.1 通过Web浏览器测试
服务启动后,打开Chrome或Edge浏览器,访问 http://<你的服务器IP>:8010/webrtcapi.html(或 index.html)。
- 点击页面上的 “Start” 或 “开始连接” 按钮。
- 看到数字人视频画面后,在文本框中输入文字,点击发送。
- 数字人将开始播报你输入的文字,并实现口型同步。
3.2 核心API快速上手
LiveTalking提供了丰富的HTTP API供二次开发:
文本驱动 (
POST /human):发送文本让数字人说话。1
2
3
4
5
6{
"sessionid": "从/offer接口获取的会话ID",
"text": "你好,欢迎使用LiveTalking!",
"type": "echo", // echo为直接复读,chat为触发LLM对话
"interrupt": true // 是否打断当前播报
}音频驱动 (
POST /humanaudio):上传音频文件直接驱动数字人。打断播报 (
POST /interrupt_talk):立即清空当前会话的音频队列。录制控制 (
POST /record):控制服务器端开始/停止录制数字人视频。
🛠️ 第四步:高级配置与定制(可选)
4.1 集成本地TTS(语音合成)
LiveTalking支持多种TTS引擎。以集成GPT-SoVITS实现声音克隆为例:
在另一个终端中,克隆GPT-SoVITS项目并启动API服务(默认端口9880)。
启动LiveTalking时,指定TTS类型和服务地址:
1
2
3
4
5
6
7
8python app.py \
--transport webrtc \
--model musetalk \
--avatar_id musetalk_avatar1 \
--tts gpt-sovits \
--TTS_SERVER http://127.0.0.1:9880 \
--REF_FILE ~/your_prompt.wav \
--REF_TEXT "参考音频对应的文本"
4.2 Docker一键部署(推荐)
对于希望快速体验的用户,可使用官方提供的Docker镜像,无需手动配置环境:
1 | docker run --gpus all -it --network=host --rm registry.cn-beijing.aliyuncs.com/codewithgpu2/lipku-metahuman-stream:2K9qaMBu8v |
容器启动后,代码位于 /root/metahuman-stream,可按需拉取最新代码并执行启动命令。
4.3 云端镜像部署
各大云计算平台也提供了预置LiveTalking的一键部署镜像,如优云智算的镜像,通常已配置好环境,创建实例后只需开放防火墙端口即可使用。
🔧 常见问题与性能调优
- 视频无法显示:通常为防火墙问题,请确保TCP 8010端口及大范围UDP端口已开放。
- 推理性能不足:查看后端日志中的
inferfps(GPU推理帧率)和finalfps(最终推流帧率)。两者均需 ≥ 25 才算实时。若inferfps达标但finalfps不达标,则说明CPU性能成为瓶颈。 - 显存不足:可尝试在启动命令中加入
--fp16参数使用半精度推理,或换用对显存要求更低的wav2lip模型。 - 端口被占用:使用
lsof -i:8010查看占用进程并结束,或修改启动脚本更换端口。
至此,你的LiveTalking数字人服务应已成功运行。你可以通过Web页面进行交互,或利用API将其集成到更复杂的应用中。遇到具体问题,可查阅项目的官方文档或加入社区寻求帮助。

