前言¶
在 DSH 里做翻唱或音色替换,常见瓶颈不在「能不能调一次推理」,而在素材从哪来、数据集怎么整理、DDSP 工程怎么接、训练完的 model_N.pt 和 config.yaml 怎么进翻唱插件能发现的音色库。手工拷贝目录、改 data/train/audio,再盯着 checkpoint,步骤多且容易和正在跑的任务抢同一份数据目录。
dsh-train-pipeline(维护者 InariNGT-Ofiicial)把上述环节拆成一组可由智能体逐步调用的工具:本机查找与下载、部分吉里吉里封包解包、角色盘点、数据集构建与质量检查、DDSP Reflow 预处理与训练、短句试听,以及向与 dsh-cover-pipeline 约定的音色库注册。插件当前版本 0.4.1,在 SkillHub 分类为模型推理;GitHub 仓库约 4 stars。仓库源码树不含 DDSP 工程、模型权重、游戏素材或语音,需自行准备外部环境与合规素材。
这是什么¶
一句话:dsh-train-pipeline 是 DeepSeek Harness 的本地音色训练插件,用 19 个工具覆盖素材获取、数据集整理、DDSP-SVC 6.2 Reflow 训练链,以及训练结果注册,供翻唱流水线重载后使用。
与翻唱插件的关系:训练侧把 model_N.pt 和 config.yaml 放到约定布局;翻唱插件重载后发现该音色。芳乃演示权重在 Releases voice-yoshino-20000 单独提供,用法与 SHA-256 见仓库内 docs/YOSHINO_MODEL.md,不随 npm 包或源码树分发;插件代码 MIT 许可不自动适用于权重。
核心功能¶
素材与源类型¶
| 输入 | 已实现行为 | 限制 |
|---|---|---|
| 按角色分目录的语音 | 按目录名盘点与整理;用 soundfile 读帧数算时长 |
目录名需抽检;不能证明标注正确 |
JSON / KAG3 .ks 剧本 |
启发式提取 speaker / voice,报告匹配率 | 陌生格式可能漏抓 |
| 普通 XP3、部分内嵌 EXE | 外部 arc_unpacker,按落盘结果检查 |
不覆盖所有引擎与加密 |
| SenrenCxCrypt 系列 | 静态解析/解密;需兼容的 GARbro Formats.dat |
体验版验证过,不承诺全游戏 |
| 单角色音频目录 | 指定角色后整理 WAV | 不自动区分 BGM 或多人对话 |
| 番剧 / 录屏 | 适配器接口已留 | 分离、VAD、声纹归属未实现 |
剧本分支仍用 4.2 秒/句 粗估并标「未实测」;质量检查与语音目录用实测时长。
工具链(19 个)¶
README 给出的推荐顺序如下,实际调用需逐步看各工具返回的 ok、报告与产物;train_plan 提供流程规则,不会自动跑完全部质量门,也不保证一次自然语言请求走完整条链。
train_doctor → train_plan → train_hunt / train_fetch / train_unpack
→ train_scan → train_build → train_qc
→ train_preprocess → train_run → train_status / train_stop
→ train_infer → train_register → 翻唱插件重载
| 工具 | 用途 |
|---|---|
train_sources / train_plan |
实现状态、流程与决策提示 |
train_doctor / train_setup |
环境检查、配置建议、可选写入本机配置 |
train_hunt |
搜索本机目录与 Steam 库(深度与时间预算受限) |
train_toolchain |
检查或从上游 GitHub release 安装解包工具 |
train_fetch |
下载给定 URL,记录 URL、SHA-256 与时间 |
train_unpack / train_acquire |
解包、可选反编译;acquire 串接查找与角色盘点 |
train_scan |
源识别、角色数、语音数、时长及匹配报告 |
train_build |
转码、单声道、重采样、裁静音、超长分段 |
train_qc |
采样率、时长、削波、静音、粗重复;apply=true 才移走不合格文件 |
train_preprocess |
备份 DDSP 工程旧音频,复制新数据,跑 draw.py / preprocess.py |
train_run / train_status / train_stop |
后台训练、日志与 checkpoint、停止进程 |
train_infer |
选 checkpoint 短句推理,需人工试听 |
train_register / train_overview |
注册模型与配置、检查工作区与音色库 |
要点:train_preprocess 会替换 DDSP 工程里 data/train/audio 与 data/val/audio,原目录先移到训练工作区 backup/,应使用独立训练工程。train_run 若已有 checkpoint 默认停止,需 confirmOverwrite=true 才继续。train_register 默认拒绝覆盖;缺同一实验的 config.yaml 或空模型会失败;注册成功只表示文件可发现,不表示音质合格。
安装与启用¶
当前主要面向 Windows。需要 Node.js 18+、已安装的 DSH,以及本机可用的 DDSP-SVC 6.2 Reflow 工程及其 Python 环境;GPU 训练依赖该工程自带的 PyTorch/CUDA、预训练权重与配置,本插件不会安装 DDSP 或下载权重。
官方 README 中的安装步骤如下。../AudioWork 仅为示例,应先准备自己的外部音频工程根目录,也可通过 train.local.json 配置;布局与排障见 docs/INSTALL.md,外部工具清单见 materials/README.md。
git clone https://github.com/InariNGT-Ofiicial/dsh-train-pipeline.git
cd dsh-train-pipeline
# 设置为自己的音频工程根目录,也可配置 train.local.json。
$env:DSH_COVER_ROOT = (Resolve-Path ../AudioWork).Path
node test/live.mjs train_doctor
dsh plugin --profile desktop add .
安装后重载 DSH。train_doctor 用于先检查环境是否满足后续工具假设。
典型用法¶
1、在 DSH 中说明目标角色与素材目录(或 URL、本机游戏路径等),由智能体按流程调用工具;每一步核对返回的 ok 与报告。
2、若从封包或剧本入手,可先 train_hunt / train_fetch / train_unpack(或 train_acquire),再 train_scan 看角色与时长匹配。
3、train_build → train_qc 得到可训练数据集后,train_preprocess 写入 DDSP 数据目录,train_run 启动训练;用 train_status 看日志与 checkpoint,train_stop 可停进程。
4、训练或已有 checkpoint 时,train_infer 做短句试听;满意后 train_register 写入音色库。注册布局与翻唱调用示例见 docs/INTEGRATION.md。
5、重载 dsh-cover-pipeline(或配套翻唱插件),在翻唱流程中使用新注册的音色。
演示说明:仓库记载本机曾用《千恋*万花》体验版解包、角色目录整理、读取已有 20000 步检查点、注册及原翻唱插件调用;该演示未重新训练,也不保证其他机器完整训练成功。
适用场景与注意¶
适合:已在 DSH 生态里做翻唱、愿意自备 DDSP Reflow 工程与合规素材;偏 galgame / 吉里吉里语音目录、剧本引用,或单角色 WAV 目录的训练前整理与训练编排。
不适合或需知限制:指望插件自带 DDSP、预训练权重或游戏资源;需要番剧/录屏自动人声分离与声纹归属(接口未实现);在无 GPU 或未完成材料准备时期望一键训出可用模型。
安全与合规:插件以当前 dsh 进程权限 运行,可访问本机目录、启动外部解包与 Python 训练进程。安装前应阅读源码、MIT 与 THIRD_PARTY_NOTICES.md;代码许可不授予游戏素材、音色、训练数据或模型的使用与再分发权。仅使用你有权使用的素材与权重。
测试方面,仓库提供 CPU 向 npm test(见 README 中 requirements-test.txt 与 DSH_TRAIN_PYTHON);真实 GPU 训练与下载测试需独立环境,见 docs/VALIDATION.md。
结尾¶
dsh-train-pipeline 把本地素材、DDSP Reflow 训练与翻唱音色注册串成可逐步验收的工具链,并与 dsh-cover-pipeline 约定目录对接。目录页:SkillHub - dsh-train-pipeline。源码与文档:GitHub - InariNGT-Ofiicial/dsh-train-pipeline。