番剧角色台词提取与 GPT-SoVITS v2 训练配音技能,含 DSH 宿主实测记录
34.9/100
综合分
7
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/25 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
该插件未发布到 npm,按作者文档从 GitHub 源安装即可(静态检查只覆盖 npm 路径,不代表插件不可用)。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add InariNGT-Ofiicial/dsh-anime-voice该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · skill
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 7 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/25) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装仓库 package.json 标记 private,未发布到 npm,需从源码安装;安装清单取自 plugins/tts-train-pipeline/package.json
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-tts-train-pipeline(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=18 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/25 17:09:34
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 73 处,展示前 45 条)
- 读取本地文件plugins/tts-train-pipeline/src/checks.js:80
const missing = GSV_MARKERS.filter((m) => !existsSync(join(cfg.gsvDir, m))); - 读取本地文件plugins/tts-train-pipeline/src/checks.js:110
if (!existsSync(p)) { - 读取本地文件plugins/tts-train-pipeline/src/checks.js:122
} else if (cfg.ffmpeg !== 'ffmpeg' && !existsSync(cfg.ffmpeg)) { - 执行外部命令固定命令plugins/tts-train-pipeline/src/checks.js:235
const out = execFileSync('git', ['-C', dir, 'rev-parse', '--short', 'HEAD'], { encoding: 'utf8', timeout: 8000 }); - 读取本地文件plugins/tts-train-pipeline/src/config.js:262
export const isFile = (p) => { try { return !!p && existsSync(p) && statSync(p).isFile(); } catch { return false; } }; - 读取本地文件plugins/tts-train-pipeline/src/config.js:262
export const isFile = (p) => { try { return !!p && existsSync(p) && statSync(p).isFile(); } catch { return false; } }; - 读取本地文件plugins/tts-train-pipeline/src/config.js:263
export const isDir = (p) => { try { return !!p && existsSync(p) && statSync(p).isDirectory(); } catch { return false; } }; - 读取本地文件plugins/tts-train-pipeline/src/config.js:263
export const isDir = (p) => { try { return !!p && existsSync(p) && statSync(p).isDirectory(); } catch { return false; } }; - 读取本地文件plugins/tts-train-pipeline/src/config.js:268
return readdirSync(dir, { withFileTypes: true }) - 读取本地文件plugins/tts-train-pipeline/src/config.js:276
return readdirSync(dir, { withFileTypes: true }).filter((d) => d.isFile()).map((d) => d.name); - 执行外部命令来自配置/变量plugins/tts-train-pipeline/src/execution.js:57
child = spawn(cmd, args, { cwd, env, windowsHide: true }); - 写入本地文件plugins/tts-train-pipeline/src/execution.js:80
mkdirSync(dirname(logPath), { recursive: true }); - 写入本地文件plugins/tts-train-pipeline/src/execution.js:82
try { writeFileSync(logPath, ''); } catch { } - 执行外部命令来自配置/变量plugins/tts-train-pipeline/src/execution.js:86
child = spawn(cmd, args, { - 写入本地文件plugins/tts-train-pipeline/src/execution.js:91
try { appendFileSync(logPath, `\n[spawn error] ${e?.message ?? e}\n`); } catch { } - 读取本地文件plugins/tts-train-pipeline/src/execution.js:109
if (existsSync(p)) { - 读取本地文件plugins/tts-train-pipeline/src/execution.js:111
const st = statSync(p); - 读取本地文件plugins/tts-train-pipeline/src/execution.js:116
try { entries = readdirSync(p).length; } catch { entries = 0; } - 读取本地文件plugins/tts-train-pipeline/src/execution.js:142
if (!existsSync(path)) return ''; - 读取本地文件plugins/tts-train-pipeline/src/execution.js:144
const size = statSync(path).size; - 读取本地文件plugins/tts-train-pipeline/src/execution.js:225
const arr = JSON.parse(readFileSync(file, 'utf8')); - 写入本地文件plugins/tts-train-pipeline/src/execution.js:232
mkdirSync(dirname(file), { recursive: true }); - 写入本地文件plugins/tts-train-pipeline/src/execution.js:233
writeFileSync(file, JSON.stringify(jobs.slice(-50), null, 2), 'utf8'); - 读取本地文件plugins/tts-train-pipeline/src/gsv.js:52
if (!existsSync(p)) continue; - 写入本地文件plugins/tts-train-pipeline/src/gsv.js:54
mkdirSync(staleDir, { recursive: true }); - 写入本地文件plugins/tts-train-pipeline/src/gsv.js:55
renameSync(p, join(staleDir, t)); - 读取本地文件plugins/tts-train-pipeline/src/gsv.js:104
if (!existsSync(scriptPath)) { - 写入本地文件plugins/tts-train-pipeline/src/gsv.js:107
mkdirSync(cfg.expDir, { recursive: true }); - 读取本地文件plugins/tts-train-pipeline/src/gsv.js:124
if (existsSync(part)) { - 写入本地文件plugins/tts-train-pipeline/src/gsv.js:125
try { renameSync(part, fin); return true; } catch { return false; } - 读取本地文件plugins/tts-train-pipeline/src/gsv.js:127
return existsSync(fin); - 读取本地文件plugins/tts-train-pipeline/src/gsv.js:152
textLines = readFileSync(join(cfg.expDir, PREP_ARTIFACTS.text), 'utf8') - 读取本地文件plugins/tts-train-pipeline/src/gsv.js:173
const txt = readFileSync(listFile, 'utf8'); - 写入本地文件plugins/tts-train-pipeline/src/gsv.js:248
mkdirSync(join(tmpPath, '..'), { recursive: true }); - 写入本地文件plugins/tts-train-pipeline/src/gsv.js:249
writeFileSync(ovPath, JSON.stringify(overrides, null, 2), 'utf8'); - 读取本地文件plugins/tts-train-pipeline/src/index.js:47
if (!existsSync(p)) return ''; - 读取本地文件plugins/tts-train-pipeline/src/index.js:50
for (const line of readFileSync(p, 'utf8').split(/ ? /)) { - 读取本地文件plugins/tts-train-pipeline/src/index.js:324
if (existsSync(p)) { scnDir = p; break; } - 读取本地文件plugins/tts-train-pipeline/src/index.js:332
if (!existsSync(scnDir)) { - 写入本地文件plugins/tts-train-pipeline/src/index.js:338
mkdirSync(c.workspace.corpus, { recursive: true }); - 读取本地文件plugins/tts-train-pipeline/src/index.js:401
try { isLines = statSync(args.source).isFile(); } catch { isLines = false; } - 读取本地文件plugins/tts-train-pipeline/src/index.js:590
if (!existsSync(wavDir)) { - 写入本地文件plugins/tts-train-pipeline/src/index.js:843
mkdirSync(c.workspace.logs, { recursive: true }); - 写入本地文件plugins/tts-train-pipeline/src/index.js:1283
mkdirSync(join(file, '..'), { recursive: true }); - 写入本地文件plugins/tts-train-pipeline/src/index.js:1284
writeFileSync(file, JSON.stringify(reg, null, 2), 'utf8');
扫描于 2026/10/31(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成DSH Anime Voice
正式版 v0.1.0 · 同时支持 DSH rc.2 / rc.3。
兼容维护:同时支持 DSH 0.2.1-rc.2 / rc.3,保留旧版用法与设置。验证范围与复现见 DSH 兼容说明。
番剧台词提取与 GPT-SoVITS v2 训练/配音的两个本地技能。与 DDSP 训练、歌曲翻唱项目分别维护。
2026-10-20 已核验一条真实 DSH 代表性链路:自然语言任务 → 技能加载 → 少量真实片段导出 → 数据集校验/清单 → 报告 → 已有检查点 CPU 配音。运行时使用 danger-full-access 授权,并调整了推理子进程的 NO_PROXY;受限模式、完整训练和人工听音仍待验证。见 宿主回执与验收范围。
| 技能 | 输入 | 输出 |
| anime-voice-line-extractor | 本地音视频、已确认的角色映射 | 角色 WAV/TXT、绝对时间轴 CSV、train.list |
| anime-voice-clone-training | 整集音频、人工确认的声纹参照、明确模型路径 | 整集重建数据集、训练特征/权重、单句配音 WAV/JSON |
A 可以直接导出 绝对wav路径|角色|语言|文本。
展开完整文档(README 剩余 1 节)
DSH Anime Voice 正式版 v0.1.0 · 同时支持 DSH rc.2 / rc.3。 兼容维护:同时支持 DSH 0.2.1-rc.2 / rc.3,保留旧版用法与设置。验证范围与复现见 DSH 兼容说明。 番剧台词提取与 GPT-SoVITS v2 训练/配音的两个本地技能。与 DDSP 训练、歌曲翻唱项目分别维护。 2026-10-20 已核验一条真实 DSH 代表性链路:自然语言任务 → 技能加载 → 少量真实片段导出 → 数据集校验/清单 → 报告 → 已有检查点 CPU 配音。运行时使用 danger-full-access 授权,并调整了推理子进程的 NO_PROXY;受限模式、完整训练和人工听音仍待验证。见 宿主回执与验收范围。 | 技能 | 输入 | 输出 | | anime-voice-line-extractor | 本地音视频、已确认的角色映射 | 角色 WAV/TXT、绝对时间轴 CSV、train.list | | anime-voice-clone-training | 整集音频、人工确认的声纹参照、明确模型路径 | 整集重建数据集、训练特征/权重、单句配音 WAV/JSON | A 可以直接导出 绝对wav路径|角色|语言|文本。B 的主路线复用 A 建声纹参照,再从整集分离和带标点 ASR 重建数据集;不是把 A 的旧 157 条直接洗成新 291 条。训练器也可以独立读取 A 的清单,但素材是否适合训练仍需审核。 安装 git clone https://github.com/InariNGT-Ofiicial/dsh-anime-voice.git cd dsh-anime-voice ./install.ps1 -SkillRoot "$env:USERPROFILE/.dsh/skills" 已经安装时加 -Update;脚本会先备份这两个技能。若 .dsh/skills 是 Junction,会写入它实际指向的技能根。安装不修改宿主配置、模型、Python 环境或其它技能。 Windows 11、PowerShell 7 和 Python 3.10–3.12 是本项目的目标环境。分析侧依赖见 requirements-analysis.txt;训练和推理必须使用已经配置好的 GPT-SoVITS v2 环境。分离使用独立的 MSST 兼容环境。不要把这几套环境混装。 复制 config.example.ps1 为本地配置,填入自己的路径后执行: . ./config.local.ps1 $A = "$env:USERPROFILE/.dsh/skills/anime-voice-line-extractor/scripts" $B = "$env:USERPROFILE/.dsh/skills/anime-voice-clone-training/scripts" & $env:ANIME_PYTHON "$A/anime_lines.py" --help & $env:ANIME_PYTHON "$B/run_pipeline.py" --list-stages 完整操作、依赖和可复现命令见 运行说明,宿主实测范围见 验证记录。在 DSH 新会话里用自然语言说明素材路径、角色、输出目录,以及允许哪些耗时阶段。技能目录存在只证明文件已安装;真实宿主验收必须包含模型选择技能、调用工具和生成产物的证据。 训练插件(可选) plugins/tts-train-pipeline/ 是同一套 GPT-SoVITS 训练流程的 DSH 插件形态:14 个工具(tts_doctor / tts_script / tts_scan / tts_build / tts_preprocess / tts_run / tts_infer …),由宿主直接加载,不用在会话里逐步跑脚本。 cd plugins/tts-train-pipeline npm test # 契约自检,不需要 GPT-SoVITS 环境 dsh plugin add . 它和两个 skill 的分工:skill 是「一次任务的脚本化流程」,插件是「常驻工具集」。两者共用同一个 GPT-SoVITS 工程与语料约定,不要同时改同一个实验目录。 0.2.0 新增两项与训练质量直接相关的改动,都有同批语料的对照: - 数据集留尾:出料默认只裁句首静音,保留句尾自然衰减并兜 0.16s 静音底。旧做法每条都停在满电平,训出来的模型会吞末字。383 条语料对照:末三字完整念出率 33% → 93%,PER 0.197 → 0.018。 - 日语文本消 UNK:#(声调短语边界)与 引号/破折号/括号 都不在 732 项符号表里,会被降级成 UNK。 补丁幂等、自动备份、可回滚、打前核符号表;打了必须重训(只打不训是负收益,PER 0.197 → 0.236)。 详见该目录的 README 与 CHANGELOG。 许可随仓库整体:代码尚未指定开放许可证,插件 package.json 里的 license 因此标为 UNLICENSED(不是 MIT)。要引用或再分发请先取得授权。 能力边界 声纹、F0、ASR 一致性都是辅助筛选,不能替代人工听音与文本校对;默认 F0 下限为 0,必须按目标声音调整。标点只能说明文字形态,不能证明音频自然收尾——现在这条有可判读的信号了:插件出料会给出 tail_stats(收尾电平中位、尾部静音中位、切断比例),但它仍然只是体检,不是听音替代。脚本生成 WAV 不等于朗读正确,跨语种尤其需要逐句复听。 没有通用的「25/38 分钟就达标」门槛,也不把余弦相似度解释成「不可区分」。旧版本的声纹/F0 数字不代表当前权重已通过验收。当前维护验证优先复用已存在的 v2 检查点,不重新训练整个模型,也不重跑三集全量流程。 仓库只包含代码和脱敏技术验证记录;不包含番剧、声音素材、模型权重、用户会话或凭据。素材、声音及模型的使用授权由使用者确认,各上游依赖分别遵循其许可证。代码尚未指定开放许可证。 维护 python -m unittest discover -s tests -v 反馈问题时请提供脚本版本、已脱敏的命令/退出码、阶段、期望和实际产物。不要上传模型、私有路径、音频或账号配置。CPU 接口回归由 GitHub Actions 执行;GPU 和 DSH 宿主验证记录单独维护,不能由 CI 通过替代。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
InariNGT-Ofiicial/dsh-anime-voice
番剧角色台词提取与 GPT-SoVITS v2 训练配音技能,含 DSH 宿主实测记录
相关插件 · 技能 / 提示词
人设统管ZiChuanLan/agent-purge
一份系统提示词,喂给多个 coding…
★ 931已汉化DSH
73.8
人物画像蒸馏titanwings/distilly
Distilly — 把他们的思考方式提炼成可复用的技能,供任何智能体或机器人使用。原名 Colleague Skill(原同事 Skill)。
★ 25,659已汉化DSH
71.3
推理工作空间套件Tiger3807861189/J-Space-Cognition-Suite
J-Space 是面向复杂推理、大型仓库工程、子代理协作与授权安全分析的推理时工作空间和控制套件。
★ 2,957已汉化DSH
70.5
两阶段工具锚定预设xiaobright/dsh-anchored-standard
实验性 DeepSeek Harness agent preset…
★ 3,742已汉化DSH
70.1
智能体工作流编排nrslib/takt
不再日夜盯着 AI 编码智能体。
★ 1,402已汉化DSH
70
Agent 运行时手册Electricitysheep/dsh-handbook
DeepSeek Harness dsh 从 0 到 1 深度手册:安装/插件开发/性能调优/实测案例/同模型多…
★ 827已汉化DSH
68.7