综合介绍
LatentSync是字节跳动(ByteDance)开源的一个创新性音频条件潜在扩散模型框架,专门用于实现高质量的视频唇形同步。与传统方法不同,LatentSync采用端到端的方式,无需中间动作表示就能直接生成自然、流畅的唇形同步效果。该项目使用Whisper模型将语音转换为音频嵌入,通过跨注意力层整合到U-Net中,实现了视频帧的精确生成。系统不仅支持真人视频处理,还能处理动漫角色的唇形同步,具有广泛的应用前景。项目完全开源,提供了推理代码、数据处理流程和训练代码,使研究者和开发者能够轻松复现和改进这项技术。终于有了除 Wav2Lip 以外的另一个选择!
功能列表
- 端到端的音频驱动唇形同步生成
- 支持真人视频和动漫角色的唇形同步处理
- 自动音视频对齐和同步校正
- 高质量人脸检测和对齐
- 场景自动分割和视频分段处理
- 视频质量评估和过滤
- 提供完整的数据处理流水线
- 支持自定义模型训练
使用帮助
环境配置
- 系统要求:
- GPU显存需求:至少6.5GB
- 支持CUDA的NVIDIA显卡
- Python环境
- 安装步骤:
source setup_env.sh
安装成功后,检查点文件结构应如下:
./checkpoints/
|-- latentsync_unet.pt # 主要模型文件
|-- latentsync_syncnet.pt # 同步网络模型
|-- whisper
| `-- tiny.pt # 语音处理模型
|-- auxiliary/ # 辅助模型目录
使用流程
- 基础推理使用:
- 运行
./inference.sh
进行基本推理 - 可以通过调整
guidance_scale
参数到1.5来提高唇形同步精度
- 运行
- 数据处理流程:
- 视频预处理:
- 自动修正视频帧率至25fps
- 音频重采样至16000Hz
- 自动场景检测和分割
- 将视频分割为5-10秒的片段
- 人脸处理:
- 检测并筛选人脸大小(要求大于256×256)
- 去除多人脸场景
- 基于面部特征点进行仿射变换
- 统一调整尺寸至256×256
- 质量控制:
- 同步置信度评分筛选(阈值为3)
- 自动调整音视频偏移
- 使用hyperIQA进行图像质量评估
- 视频预处理:
- 高级功能:
- 模型训练:
- U-Net训练:使用
./train_unet.sh
- SyncNet训练:使用
./train_syncnet.sh
- U-Net训练:使用
- 可以根据需要调整配置文件中的参数,如数据目录、检查点保存路径等
- 模型训练:
注意事项
- 推理时确保显存充足(至少6.5GB)
- 处理前请确保视频质量良好
- 建议在处理大量视频前先进行小规模测试
- 训练自定义模型前需完成完整的数据处理流程
- 请遵守相关许可证要求