Yuaz SGR (Singing Generative Refinement) — 基于 DDSP + Flow Matching 的歌唱声音合成系统。
本项目基于 DDSP(Differentiable Digital Signal Processing)和 Flow Matching 技术,实现了高保真的中文歌唱声音合成。
全球首个基于中文数据集完整复现并开源的项目。
论文标题: Singing voice synthesis via latent flow matching and differentiable digital signal processing 详见
论文/paper15_full.txt
yuaz-sgr/
├── yuaz_sgr/ # 核心训练代码
│ ├── models/ # 模型定义 (Encoder, RVQ, DDSP, Flow Matching)
│ ├── train/ # 训练脚本
│ ├── data/ # 数据处理与 OpenCPOP 数据集
│ ├── scripts/ # 预处理/推理脚本
│ ├── losses/ # 损失函数
│ └── utils/ # 工具函数
├── yuaz_sgr_inference/ # 推理包 (轻量级,可独立部署)
│ ├── yuaz_sgr/ # 模型代码
│ ├── checkpoint_300k.pt # 预训练模型 (300K steps, 94MB)
│ ├── infer_vsqx.py # VSQX 文件推理脚本
│ └── example.py # 推理示例
├── 示例.wav # VSQX 推理输出示例
├── 论文/ # 参考论文
├── README.md # 中文文档
└── README.en.md # English docs
- Encoder: MFCC 特征提取 + CREPE F0 估计
- RVQ: Residual Vector Quantization (4 级量化)
- DDSP Decoder: 谐波+噪声合成,带 weight_net 门控
- Conditioning Encoder: 音素嵌入 + F0 → 条件向量 μ
- Flow Matching Generator: ODE 积分生成潜变量
- F0Predictor: 从 μ 独立预测精炼 F0
音频直链:https://github.com/user-attachments/files/30454901/default.wav
歌曲: 这世界那么多人 (VSQX 调音版),使用原始 F0 合成,n_steps=8
在 CPU (AMD Ryzen 5 3500U) 上实测性能:
| 指标 | 数值 |
|---|---|
| 模型大小 | 94MB (提纯后仅含权重) |
| 推理速度 (n_steps=8) | RTF = 0.821 (4分15秒歌曲 → 3分29秒合成, 比实时快) |
| CPU 推理内存占用 | ~283 MB (加载+推理增量) |
| ODE 步数 | 支持 1~16 步, 8步即可获得高质量结果 |
| 采样率 | 24 kHz |
RTF (Real-Time Factor) < 1 表示合成速度快于音频实际时长,即使在 CPU 上也能实现实时或超实时合成。
本仓库包含已个预训练模型:
| 模型 | 文件 | 大小 | 说明 |
|---|---|---|---|
| 基础模型 | yuaz_sgr_inference/checkpoint_300k.pt |
94MB | 300K 步训练,已提纯(仅保留权重) |
# 使用基础模型推理 (从音素合成)
cd yuaz_sgr_inference/
pip install -r requirements.txt
python example.py
本项目使用 OpenCPOP 中文歌唱数据集进行训练。
本项目遵循 MIT License,欢迎自由使用和修改。
- OpenCPOP 中文 singing 数据集
- DDSP: Differentiable Digital Signal Processing
- Flow Matching for Generative Modeling