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 安装基础环境

  1. 安装CUDA工具包:确保已安装与你的GPU驱动兼容的CUDA版本。若未安装,可参考相关Linux CUDA环境搭建指南。

  2. 安装Miniconda(推荐用于环境隔离):

    1
    2
    3
    wget 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
2
3
4
5
6
7
8
9
10
11
12
# 1. 创建名为 livetalking 的虚拟环境(Python版本可选3.10或3.12)
conda create -n livetalking python=3.12 -y
conda activate livetalking

# 2. 安装PyTorch及配套工具(以CUDA 12.8为例,请根据你的CUDA版本选择对应命令)
pip install torch==2.9.1 torchvision==0.24.1 torchaudio==2.9.1 --index-url https://download.pytorch.org/whl/cu128
# 若CUDA版本为12.4,可使用:conda install pytorch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 pytorch-cuda=12.4 -c pytorch -c nvidia

# 3. 克隆项目并安装依赖
git clone https://github.com/lipku/LiveTalking.git
cd LiveTalking
pip install -r requirements.txt

注意:如果使用MuseTalk模型,可能需要额外安装 mmcvmmdetmmpose 等计算机视觉库,建议按顺序执行 pip install -U openmim 后,使用 mim install mmengine mmcv>=2.0.1 mmdet>=3.1.0 mmpose>=1.1.0 进行安装。


🚀 第二步:下载模型与启动服务

2.1 下载预训练模型

从官方网盘(如夸克云盘Google Drive)下载所需模型文件:

  1. wav2lip256.pth 拷贝到项目的 models/ 目录下,并重命名为 wav2lip.pth
  2. 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)。

  1. 点击页面上的 “Start”“开始连接” 按钮。
  2. 看到数字人视频画面后,在文本框中输入文字,点击发送。
  3. 数字人将开始播报你输入的文字,并实现口型同步。

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实现声音克隆为例:

  1. 在另一个终端中,克隆GPT-SoVITS项目并启动API服务(默认端口9880)。

  2. 启动LiveTalking时,指定TTS类型和服务地址:

    1
    2
    3
    4
    5
    6
    7
    8
    python 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将其集成到更复杂的应用中。遇到具体问题,可查阅项目的官方文档或加入社区寻求帮助。