中文口型同步优化
项目定位
针对 MuseTalk 中文场景下口型不同步、关键音素表现弱的问题,从数据质量、同步预处理和模型微调三个层面联合优化,提升中文发音的可用性。
训练数据统计
以下统计基于 dataset/TalkVid/train.txt 与 dataset/JoyGen/train.txt 中实际参与训练、且同时具备 json + mp4 + wav 的样本。
TRAIN SPLIT
实际训练使用的中文说话视频
训练集共包含 2262 个视频片段,累计 8.98 小时,覆盖 325 个说话人。其中 TalkVid 按源视频 ID 归并为 234 人,JoyGen 按源前缀归并为 91 人。
FORMAT
数据组织与字段
dataset/{TalkVid, JoyGen}/meta/*.jsondataset/{TalkVid, JoyGen}/video_audio_clip_root/*.{mp4,wav}
mp4_path / wav_path / video_size / face_size / frames / face_list / landmark_list / isvalid
支持逐帧口型建模、音视频对齐、裁剪脸框重建与说话人视频检索;video_size 与 face_size 采用 [height, width] 顺序。
SPEAKER OVERVIEW
说话人总览图

总览图基于训练集样本生成。JoyGen 按源视频前缀归并;TalkVid 按去除 clipxxx_ 后的源视频 ID 归并。
TALKVID PROCESSED
TalkVid 子集
- 5.57 小时 / 1017 段训练视频,全部来自
dataset/TalkVid/train.txt,训练清单与本地文件完全对齐。 - 234 个说话人,按去除
clipxxx_后的源视频 ID 归并;该口径与我最初项目记录中的 234 speakers 对齐。 - 平均片段长度 19.71 秒,中位数 19.12 秒,适合中文口型和长句驱动训练。
- 训练音频配对完整,1017 段视频均有 16 kHz、16-bit、单声道 WAV,同时库存中还保留 2287 条
_16k.wav。 - 库存与训练口径差异明显:仓库库存有 2347 段 mp4、4091 条元数据,其中 1744 条元数据未附对应 mp4,不应计入训练统计。
JOYGEN PROCESSED
JoyGen 子集
- 3.41 小时 / 1245 段训练视频,全部来自
dataset/JoyGen/train.txt,训练清单与本地文件完全对齐。 - 91 个源说话人归并,平均每位说话人 13.68 段视频,中位数 8 段。
- 平均片段长度 9.87 秒,更适合高密度口型同步和短句生成训练。
- 库存与训练差异较小:库存为 1506 段,训练实际使用 1245 段,说明主要是清单过滤而不是文件缺失。
WHY IT MATTERS
说话人视频数据集常看的信息
- 时长、片段数、说话人数 决定覆盖度与训练上限。
- 帧率、分辨率、脸框占比 直接影响口型、表情和裁剪质量。
- 音频规格与音视频配对 决定后续对齐、重采样与训练稳定性。
- 逐帧边框和关键点 能显著降低二次清洗与预处理成本。
技术链路
- 先从中文场景失败案例出发,定位关键问题集中在素材质量、遮挡、音画错位和特定音素表达不足。
- 对数据做系统清洗,重点处理磨皮美颜、字幕挡脸、手挡脸、模糊样本等会影响口型监督信号的噪声。
- 做同步预处理与 offset 校正,减少标签偏移带来的训练误差。
- 在 MuseTalk / LatentSync 上做两阶段微调,并对双唇音、撮口音、大开口元音、儿化音、快语速场景进行针对性观察。
效果展示
优化前:直接使用原始链路时,中文场景下更容易出现口型跟随不稳、关键音素闭合不到位等问题。
优化后:经过数据清洗、音画 offset 校正和两阶段微调后,唇形闭合、撮口与快语速下的稳定性都有明显改善。
页面内可直接对比优化前后的口型效果,更直观看到唇形闭合、撮口和快语速场景下的改善。
结果
- 同步预处理后平均绝对偏移由 1.95 帧 降至 0.62 帧。
- 完全对齐占比由 15.76% 提升至 40.08%。
- 在双唇音、撮口音、大开口元音、儿化音和快语速场景下均有明显改善。
- 形成了可继续扩充的中文口型数据清洗与同步流程,而不是只得到一次性的单模型结果。