Skip to content

SelfTalk-powered Talking Face Generation System

Notifications You must be signed in to change notification settings

laonuo2004/TFG-SelfTalk

 
 

Repository files navigation

TFG-SelfTalk

基于 SelfTalk 的说话人脸生成对话系统 (Talking Face Generation System)

📋 项目概述

本项目基于 SelfTalk 实现,提供了一个完整的 Web 界面,支持:

  • 🎓 模型训练:在线训练 SelfTalk 模型,实时查看训练日志
  • 🎬 视频生成:根据语音生成 3D 说话人脸动画视频
  • 💬 人机对话:与 AI 进行语音对话并生成虚拟人视频
  • 🕑 实时对话:与 AI 进行实时语音对话

📦 手动部署

系统要求

  • 操作系统:Linux / WSL2 (Windows Subsystem for Linux)
  • GPU:NVIDIA GPU (支持 CUDA 11.3)
  • 内存:建议 16GB+
  • 磁盘空间:建议 20GB+ (包含数据集和模型)

步骤 1: 安装系统依赖

# Ubuntu / Debian
sudo apt-get update
sudo apt-get install -y \
    ffmpeg \
    libboost-dev \
    libgl1-mesa-glx \
    libgl1-mesa-dev \
    libegl1-mesa \
    libegl1-mesa-dev \
    libosmesa6 \
    libosmesa6-dev \
    libgles2-mesa \
    libgles2-mesa-dev \
    portaudio19-dev \
    libsndfile1 \
    freeglut3-dev

步骤 2: 克隆项目

git clone https://github.com/laonuo2004/TFG-SelfTalk.git
cd TFG-SelfTalk

步骤 3: 创建 Conda 环境

conda create -n selftalk python=3.8.8
conda activate selftalk

步骤 4: 安装 PyTorch (CUDA 11.3)

pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113

步骤 5: 安装其他依赖

pip install -r requirements.txt

步骤 6: 安装 MPI-IS/mesh

# 克隆 mesh 库
git clone https://github.com/MPI-IS/mesh.git
cd mesh
pip install .
cd ..

步骤 7: 下载预训练模型(可选,用于快速测试视频生成与人机对话功能,否则需要自行训练模型)

  1. Google Drive 下载 vocaset.pth
  2. 将文件放置到 SelfTalk/vocaset/vocaset.pth

步骤 8: 准备 VOCASET 数据集

  1. 下载 FLAME_sample.ply,存放到 SelfTalk/vocaset/templates/ 目录
  2. VOCA 官网 申请并下载数据集,包括 Template Meshes 与 Training Data
  3. templates.zip 解压到 SelfTalk/vocaset/templates/ 目录
  4. 将以下文件放入 SelfTalk/vocaset/ 目录:
    • data_verts.npy
    • raw_audio_fixed.pkl
    • templates.pkl
    • subj_seq_to_idx.pkl
  5. 处理数据:
    cd SelfTalk/vocaset
    python process_voca_data.py
    cd ../..

步骤 9: 启动应用

python app.py

访问 http://localhost:6009 即可使用。


🐳 Docker 部署

前置要求

本项目需要 GPU 支持。WSL2 + Docker Desktop 无需额外配置,Docker Desktop 已内置 GPU 支持;原生 Linux 需安装 NVIDIA Container Toolkit

准备数据与预训练模型

在构建之前,请确保你已经完成了手动部署当中的步骤 7 (可选)步骤 8

使用 Docker Compose (推荐)

# 构建并启动
docker-compose up -d --build

# 查看日志
docker-compose logs -f

# 停止服务
docker-compose down

使用 Dockerfile

# 构建镜像
docker build -t tfg-selftalk .

# 运行容器
docker run -d \
  --gpus all \
  -p 6009:5000 \
  -p 8765:8765 \
  -v $(pwd)/SelfTalk/vocaset/wav:/app/SelfTalk/vocaset/wav:ro \
  -v $(pwd)/SelfTalk/vocaset/vertices_npy:/app/SelfTalk/vocaset/vertices_npy:ro \
  -v $(pwd)/SelfTalk/vocaset/vocaset.pth:/app/SelfTalk/vocaset/vocaset.pth:ro \
  -v $(pwd)/SelfTalk/vocaset/save:/app/SelfTalk/vocaset/save \
  -v $(pwd)/SelfTalk/vocaset/output:/app/SelfTalk/vocaset/output \
  -v $(pwd)/models.json:/app/models.json \
  --name tfg-selftalk \
  tfg-selftalk

访问应用

启动后访问 http://localhost:6009


📖 使用说明

注意:首次使用需下载 Hugging Face 模型。Docker 镜像构建时已通过国内镜像 (hf-mirror.com) 预下载,无需额外配置。手动部署的用户如遇网络问题,可设置环境变量:export HF_ENDPOINT=https://hf-mirror.com

模型训练

  1. 访问「模型训练」页面
  2. 选择训练设备 (GPU/CPU)
  3. 配置训练参数 (Epochs、训练集、验证集等)
  4. 点击「开始训练」
  5. 实时查看训练日志和进度

视频生成

  1. 访问「视频生成」页面
  2. 选择已训练的模型
  3. 上传音频文件 (.wav 格式)
  4. 选择目标人物 (Subject)
  5. 点击「生成视频」

人机对话

  1. 访问「人机对话」页面
  2. 点击麦克风开始录音
  3. 与 AI 进行语音对话
  4. 系统自动生成虚拟人视频回复

实时对话

  1. 访问「实时对话」页面
  2. 系统会自动连接语音对话服务(需要麦克风权限)
  3. 直接与 AI 进行实时语音交流
  4. AI 会以语音形式实时回复

📁 项目结构

TFG-SelfTalk/
├── app.py                  # Flask 主应用
├── requirements.txt        # Python 依赖
├── models.json             # 已注册模型列表
├── SelfTalk/               # SelfTalk 核心代码
│   ├── main.py             # 训练入口
│   ├── demo_voca.py        # 推理 Demo
│   └── vocaset/            # 数据集目录
│       ├── vocaset.pth     # 预训练模型
│       ├── wav/            # 音频文件
│       ├── vertices_npy/   # 顶点数据
│       └── save/           # 训练模型保存目录
├── backend/                # 后端逻辑
│   ├── model_trainer.py    # 训练调度
│   ├── selftalk_trainer.py # SelfTalk 训练
│   ├── selftalk_generator.py # 视频生成
│   └── model_registry.py   # 模型注册管理
├── templates/              # HTML 模板
└── static/                 # 静态资源

📄 许可证

本项目基于 SelfTalk 开发,遵循 CC-BY-NC 4.0 许可证。

🙏 致谢

About

SelfTalk-powered Talking Face Generation System

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • MATLAB 37.0%
  • Python 26.4%
  • C++ 15.4%
  • HTML 11.6%
  • CSS 8.6%
  • M 0.4%
  • Other 0.6%