DeepSeek Harness 的本地 GPT-SoVITS 语音合成:朗读助手回复,带可拖拽的吉祥物和一键安装器。
43/100
综合分
18
GitHub 星标
1,230
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-dania-voicenpm 源 · dsh-dania-voice 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 9 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-dania-voice @ 1.0.0
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/28 04:51:32
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 41 处,展示前 21 条)
- 写入本地文件index.js:270
mkdirSync(stateDir, { recursive: true }) - 写入本地文件index.js:291
mkdirSync(dir, { recursive: true }) - 读取本地文件index.js:299
if (!existsSync(stateFile)) return {} - 读取本地文件index.js:300
const parsed = JSON.parse(readFileSync(stateFile, 'utf8')) - 写入本地文件index.js:316
mkdirSync(stateDir, { recursive: true }) - 写入本地文件index.js:319
writeFileSync(temp, `${JSON.stringify(next, null, 2)}\n`, 'utf8') - 写入本地文件index.js:320
renameSync(temp, stateFile) - 写入本地文件index.js:354
mkdirSync(join(DEFAULTS.cacheDir, 'state'), { recursive: true }) - 读取本地文件index.js:418
if (!existsSync(p.pythonPath)) { - 读取本地文件index.js:422
if (!existsSync(script)) { - 执行外部命令来自配置/变量index.js:434
serverChild = spawn( - 读取本地文件index.js:495
if (existsSync(target)) return name - 发起网络请求index.js:519
response = await fetch(`${cfg.baseUrl.replace(/ $/, '')}/tts`, { - 读取本地文件index.js:721
const installed = existsSync(p.pythonPath) - 执行外部命令来自配置/变量index.js:911
installChild = spawn( - 发起网络请求client.js:401
const response = await fetch(item.url, { cache: 'no-store' }) - 发起网络请求client.js:434
const res = await fetch(`${ROUTE}/config`, { cache: 'no-store' }) - 发起网络请求client.js:440
const res = await fetch(`${ROUTE}/status`, { cache: 'no-store' }) - 发起网络请求client.js:447
const res = await fetch(`${ROUTE}/next`, { cache: 'no-store' }) - 发起网络请求client.js:453
const res = await fetch(`${ROUTE}/next?since=${since}`, { cache: 'no-store' }) - 发起网络请求client.js:569
fetch(`${ROUTE}/next`, { cache: 'no-store' })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-dania-voice
给 DeepSeek Harness 用的本地 GPT-SoVITS 语音朗读插件:把助手的回复用达妮娅的音色念出来,旁边挂着一个可拖动的小挂件控制开关。
全部在本机运行,文字和音频都不出本地。
工作原理
DSH 会话事件(assistant/message + turn/end) │ 取最终回复正文:行内代码转成可念的英文, │ 代码块换成一句交代,表格和链接剔掉 ▼ Host:清洗 + 按 90 字聚合分段 │ POST http://127.0.0.1:9880/tts ▼ GPT-SoVITS api_v2.py(本地,GPU) │ wav → 缓存目录 → 队列 ▼ 浏览器:轮询 /dania-voice/next → Web Audio 播放
播放放在浏览器里是刻意的:Host 进程没有声卡,而且声音应该出现在你正坐着的那台机器上。
清洗的时候,反引号包着的行内代码不做删除——ops_bash 会被还原成 ops bash 念出来,过长的全大写词转成小写,免得模型把 EXECUTOR 拆成一个个字母。代码块则换成一句「这里有一段代码。」,不逐行朗读。
展开完整文档(README 剩余 1 节)
dsh-dania-voice 给 DeepSeek Harness 用的本地 GPT-SoVITS 语音朗读插件:把助手的回复用达妮娅的音色念出来,旁边挂着一个可拖动的小挂件控制开关。 全部在本机运行,文字和音频都不出本地。 工作原理 DSH 会话事件(assistant/message + turn/end) │ 取最终回复正文:行内代码转成可念的英文, │ 代码块换成一句交代,表格和链接剔掉 ▼ Host:清洗 + 按 90 字聚合分段 │ POST http://127.0.0.1:9880/tts ▼ GPT-SoVITS api_v2.py(本地,GPU) │ wav → 缓存目录 → 队列 ▼ 浏览器:轮询 /dania-voice/next → Web Audio 播放 播放放在浏览器里是刻意的:Host 进程没有声卡,而且声音应该出现在你正坐着的那台机器上。 清洗的时候,反引号包着的行内代码不做删除——ops_bash 会被还原成 ops bash 念出来,过长的全大写词转成小写,免得模型把 EXECUTOR 拆成一个个字母。代码块则换成一句「这里有一段代码。」,不逐行朗读。 环境要求 | 项目 | 说明 | | DSH | >= 0.1.7-rc.1 | | Python | 3.10 – 3.12(安装器只负责找,不负责装) | | 显卡 | 建议 NVIDIA、8 GB 以上显存;用 CPU 也能跑,但慢好几倍 | | 磁盘 | 约 5 GB(PyTorch + 底模 + 音色模型) | | ffmpeg | 多数情况下用不到,装了更保险 | 安装 dsh plugin --profile web add dsh-dania-voice 然后打开挂件面板,点 「一键部署」。安装器是独立进程,进度会实时显示在同一个面板里: 1. 在安装目录下建 Python 虚拟环境 2. 装 PyTorch(检测到 nvidia-smi 就装 CUDA 版) 3. 装推理依赖 4. 下载 GPT-SoVITS 源码(约 50 MB) 5. 下载预训练底模(约 1.6 GB) 6. 下载音色模型与参考音频(约 320 MB) 可以反复重跑:中途失败再点一次,已完成的步骤会自动跳过。第 5 步是 1.6 GB 的下载,这个特性很重要。 默认装在 $DSH_HOME/dania-voice。想放别的盘,改配置里的 installDir。 使用 窗口顶部正中挂着一只达妮娅: - 单击 —— 开关朗读 - 拖动 —— 挪到任意位置,位置会记住 - 右键 / Shift+单击 —— 打开设置面板 - 正在念的时候会轻轻晃动 面板里可以调音量、语速、温度(越低越稳、气音越少)、句间停顿,还有「重读上一段」和「让她说一句」用于试听。 语速/温度改完对下一条生效;音频按「文本 + 参数」缓存,参数不变时重读是秒回的。 配置 面板写入 $DSH_HOME/dania-voice/config.json。profile patch 里的 config: 段也可以写,会被面板覆盖。 | 键 | 默认 | 含义 | | enabled | true | 朗读总开关 | | volume / speed / temperature | 1 / 1 / 0.7 | 播放与采样参数 | | speakUser | false | 是否也念你自己发的消息 | | installDir | $DSH_HOME/dania-voice | 引擎安装目录 | | pythonPath / root / cacheDir | 自动派生 | 只有手动部署过才需要填 | | baseUrl | http://127.0.0.1:9880 | GPT-SoVITS 地址 | | autostart | true | 需要时自动拉起服务 | 已知限制 英文短词念得含糊。 长英文句没问题——一整句英文回听几乎全对。但 ops bash、 cut2、sha1 这种短词或者带数字的标识符,念出来会接近中文音,听着像嘴里含了下东西。 这是音色模型和英文音素的匹配问题,插件这边改不了。行内代码还是会转成可念的英文,长标识符比短的好使。 单段最长 90 字。 服务端的生成循环写死 1500 个语义 token,约 30 秒;超了不报错、直接截断,实测 147 字不切段时中间整整少读一句。90 字是留了三成余量的结果,代价是句间停顿比以前多。 网址不念,表格不念。 网址念出来是一串没人听得懂的字母,表格念出来是数字罗列,两者都直接删掉。删掉的地方用句号断开,不会把前后句子粘在一起念。 故障排查 - 挂件是红边 —— 插件路由没响应,检查插件是否启用。 - 提示「还没部署」 —— 点一键部署,或看 $DSH_HOME/dania-voice/install.log。 - 面板显示已就绪但没声音 —— 浏览器拦了自动播放,点一下挂件即可。 - 第一句很慢 —— 模型要 20~40 秒加载进显存,之后每句 1~3 秒。 版权 - GPT-SoVITS(RVC-Boss)—— MIT。 - 达妮娅音色模型来自 ModelScope 上的 villia/dania,安装器从原仓库下载,本仓库不再分发。 - 挂件立绘 © 夜游人(本项目作者);面板背景使用官方宣传素材,按官方第三方使用规范使用。 本项目是同人作品。《鸣潮》及其角色版权归库洛游戏所有。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
xcw520/dsh-dania-voice
DeepSeek Harness 的本地 GPT-SoVITS 语音合成:朗读助手回复,带可拖拽的吉祥物和一键安装器。
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,025未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,358已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13938 个插件含 PR 收录与…
★ 350已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7