DiffSinger 数据标注工具 — 用于歌声合成唱法参数数据集的制作与标注。
- F0(基频)提取:Parselmouth / RMVPE / FCPE,基于神经网络的音高提取模型全部 Rust 原生推理(INT8-mix 量化),Parselmouth的音高提取部分使用Rust重写
- MIDI 估算:SOME 模型(INT8-mix 量化),Rust 原生推理
- 音素时长标注与编辑
- 实时音频播放与波形显示
- 更方便的词组划分功能
- 钢琴卷帘编辑器
- 导入/导出 DiffSinger 格式
- 更舒适的视觉设计(相对于SlurCutter而言),更加一致的设计风格,减缓标注时带来的疲劳感
目前代码存在的问题较多,功能尚未完善,还请发现bug后提出issue,以便第一时间进行修复,也欢迎各位共同开发。
- Node.js >= 18
- Rust >= 1.75
- Tauri v2 CLI
构建前需将以下模型文件放入 src-tauri/,你可以从这里下载:
| 文件 | 模型 | 用途 |
|---|---|---|
rmvpe.scr |
RMVPE (INT8-mix) | F0 提取 |
fcpe.scr |
FCPE (INT8-mix) | F0 提取 |
some.scr |
SOME (INT8-mix) | MIDI 估算 |
npm install
cargo tauri devcargo tauri build输出安装包在 src-tauri/target/release/bundle/。
如需 ASIO 低延迟音频输出:
- 下载 Steinberg ASIO SDK
- 解压到项目根目录
asio_sdk/ - 构建时启用 feature:
cargo tauri build -- --features asio
| 库 | 许可 | 用途 |
|---|---|---|
| React | MIT | UI 框架 |
| Zustand | MIT | 状态管理 |
| Vite | MIT | 构建工具 |
| TypeScript | Apache-2.0 | 类型系统 |
| @tauri-apps/api | MIT/Apache-2.0 | Tauri 前端绑定 |
| @tauri-apps/plugin-dialog | MIT/Apache-2.0 | 原生对话框 |
| @tauri-apps/plugin-fs | MIT/Apache-2.0 | 文件系统访问 |
| @tauri-apps/plugin-shell | MIT/Apache-2.0 | Shell 命令 |
| 库 | 许可 | 用途 |
|---|---|---|
| Tauri | MIT/Apache-2.0 | 桌面应用框架 |
| cpal | Apache-2.0 | 跨平台音频 I/O |
| hound | Apache-2.0 | WAV 读写 |
| rustfft | MIT/Apache-2.0 | FFT 计算 |
| rayon | MIT/Apache-2.0 | 数据并行 |
| serde | MIT/Apache-2.0 | 序列化 |
| serde_json | MIT/Apache-2.0 | JSON 解析 |
| tokio | MIT | 异步运行时 |
| 模型 | 许可 | 用途 |
|---|---|---|
| RMVPE (Wei et al. 2023) | MIT | F0 提取 |
| TorchFCPE (CNChTu) | MIT | F0 提取 |
| SOME (openvpi) | MIT | MIDI 估算 |
| 组件 | 说明 |
|---|---|
| Parselmouth-Rust | Praat F0 算法的 Rust 原生实现 |
| RMVPE / FCPE / SOME Rust 推理引擎 | INT8-mix-W8A32 量化 + AVX2 SIMD 加速 |
Apache-2.0