部署教程:LiveTalking

1. 准备工作与环境要求

在开始之前,请确保你的系统满足以下核心要求

  • 操作系统:Ubuntu 22.04 或 24.04(官方推荐,其他 Linux 发行版也可尝试)。
  • GPU 硬件
    • Wav2Lip 模型:推荐 NVIDIA RTX 3060 及以上显卡(性能约 60 FPS)。
    • MuseTalk 模型:推荐 NVIDIA RTX 3080Ti / 3090 / 4090 及以上显卡(性能约 42-72 FPS)。
    • 显存要求:至少 6GB 以上(使用 --fp16 可降低显存占用)。
  • 软件环境
    • CUDA:12.4 或 12.8(运行 nvidia-smi 确认版本)。
    • Python:3.10 或 3.12。
    • conda:推荐使用 Miniconda 管理环境。
    • FFmpeg:用于视频/音频处理。

2. 安装步骤

2.1 克隆仓库并创建环境

1
2
3
4
git clone https://github.com/lipku/LiveTalking.git
cd LiveTalking
conda create -n livetalking python=3.10
conda activate livetalking

2.2 安装 PyTorch

根据你的 CUDA 版本安装对应的 PyTorch。以 CUDA 12.4 为例:

1
conda install pytorch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 pytorch-cuda=12.4 -c pytorch -c nvidia

如果 CUDA 版本是 12.8(项目测试版本),请使用以下命令:

1
pip install torch==2.9.1 torchvision==0.24.1 torchaudio==2.9.1 --index-url https://download.pytorch.org/whl/cu128

2.3 安装项目依赖

1
pip install -r requirements.txt

如果你打算使用 MuseTalk 模型,还需要额外安装 mmcv 全家桶:

1
2
3
4
5
pip install -U openmim
mim install mmengine
mim install "mmcv>=2.0.1"
mim install "mmdet>=3.1.0"
mim install "mmpose>=1.1.0"

提示:如果在安装过程中遇到网络问题(如无法访问 Hugging Face),可以在运行前设置镜像:export HF_ENDPOINT=https://hf-mirror.com

3. 下载模型与数字人形象

3.1 下载预训练模型

从云盘下载所需的模型文件:

3.2 放置模型文件

  1. wav2lip256.pth 拷贝到项目的 models/ 目录下,并重命名wav2lip.pth
  2. wav2lip256_avatar1.tar.gz 解压后,整个文件夹拷贝到 data/avatars/ 目录下。

3.3 下载 MuseTalk 模型(可选)

如果要使用 MuseTalk 模型,可以通过 Hugging Face 下载官方权重(使用国内镜像加速):

1
2
3
4
5
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download TMElyralab/MuseTalk \
--local-dir models \
--include "musetalk/musetalk.json" "musetalk/pytorch_model.bin" \
"musetalk/unet.pth" "musetalk/vae.pth"

4. 快速启动

4.1 启动服务

在项目根目录下,执行以下命令启动数字人服务:

1
python app.py --transport webrtc --model wav2lip --avatar_id wav2lip256_avatar1

参数说明

  • --transport webrtc:使用 WebRTC 传输(低延迟)。
  • --model wav2lip:选择数字人模型(可选 wav2lipmusetalkernerf)。
  • --avatar_id wav2lip256_avatar1:指定使用的数字人形象。

启动后,你会看到 Running on http://0.0.0.0:8010 的提示。

注意:服务端需要开放端口 TCP 8010UDP 1-65535(WebRTC 需要)。

4.2 访问 Web 界面

打开浏览器,访问 http://<你的服务器IP>:8010/index.html,点击 “Start” 连接,即可在文本框中输入文字驱动数字人说话。

5. 高级配置与常见场景

5.1 使用声音克隆(GPT-SoVITS)

  1. 在另一个终端中,启动 GPT-SoVITS 服务:

    1
    2
    3
    4
    5
    6
    7
    conda create -n sovits python=3.10 -y
    conda activate sovits
    git clone https://github.com/RVC-Boss/GPT-SoVITS.git
    cd GPT-SoVITS
    pip install -r requirements.txt
    # 放置你的参考音频 zero_shot_prompt.wav 到 ~/ 目录
    python api_v2.py # 默认端口 9880
  2. 启动 LiveTalking 时指定 TTS 参数:

    1
    2
    3
    4
    5
    6
    7
    8
    python app.py \
    --transport webrtc \
    --model wav2lip \
    --avatar_id wav2lip256_avatar1 \
    --tts gpt-sovits \
    --TTS_SERVER http://127.0.0.1:9880 \
    --REF_FILE ~/zero_shot_prompt.wav \
    --REF_TEXT "大家好,我是由 LiveTalking 驱动的超酷数字人"

5.2 连接大语言模型(LLM)实现智能对话

LiveTalking 支持接入 LLM 实现智能问答。在启动时可以指定 LLM 提供商,例如通过 OrcaRouter 等 OpenAI 兼容网关接入:

1
python app.py --transport webrtc --model wav2lip --avatar_id wav2lip256_avatar1 --llm_provider orcarouter

具体需要根据你的 LLM 服务配置相应的环境变量,可参考 config.pyllm.py 文件。

5.3 使用 Docker 部署(快速体验)

如果不想手动配置环境,可以直接使用 Docker 镜像:

1
docker run --gpus all -it --network=host --rm registry.cn-beijing.aliyuncs.com/codewithgpu2/lipku-metahuman-stream:2K9qaMBu8v

进入容器后,更新代码并启动:

1
2
3
cd /root/metahuman-stream
git pull
python app.py --transport webrtc --model wav2lip --avatar_id wav2lip256_avatar1

6. 常见问题排查

  • FPS 不足 25:检查日志中的 inferfpsfinalfps。若 inferfps 达标而 finalfps 低,说明 CPU 性能不足(推流编码瓶颈);反之则需升级 GPU。
  • 视频无法连接:检查防火墙是否开放了所需的 UDP 端口(50000-65535),以及是否使用了正确的 WebRTC 地址。
  • 显存不足(OOM):添加 --fp16 参数使用半精度推理,或切换至更轻量的 Wav2Lip 模型。
  • 端口被占用:使用 lsof -i:8010 查找并结束占用进程,或通过 --port 参数指定其他端口。