🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

本地语音朗读 lihaiyang616/dsh-local-tts

DeepSeek Harness
lihaiyang61612 天前有提交已提供中文文档扫描:含敏感能力

用本机音色把每轮回复自动念出来,支持多音色切换

30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add lihaiyang616/dsh-local-tts
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/10/24·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 12 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 14 处,展示前 14 条)
  • 写入本地文件
    lib/index.js:34
    appendFileSync(LOG_PATH, new Date().toISOString() + " " + line + "\n", "utf8");
  • 读取本地文件
    lib/index.js:58
    return statSync(configPath()).mtimeMs;
  • 读取本地文件
    lib/config.js:110
    if (!existsSync(path)) {
  • 读取本地文件
    lib/config.js:116
    return normalizeConfig(JSON.parse(readFileSync(path, "utf8")));
  • 写入本地文件
    lib/config.js:125
    mkdirSync(dirname(path), { recursive: true });
  • 写入本地文件
    lib/config.js:126
    writeFileSync(path, JSON.stringify(cfg, null, 2) + "\n", "utf8");
  • 执行外部命令来自配置/变量
    lib/tts.js:18
    child = spawn(cmd, args, { windowsHide: true, stdio: ["ignore", "pipe", "pipe"] });
  • 发起网络请求
    lib/tts.js:67
    const response = await fetch(url, { signal: AbortSignal.timeout(timeoutMs) });
  • 读取本地文件
    lib/tts.js:117
    const bytes = readFileSync(wav);
  • 删除本地文件递归
    lib/tts.js:124
    rmSync(dir, { recursive: true, force: true });
  • 发起网络请求
    lib/tts.js:134
    const response = await fetch(serverUrl.replace(/ +$/, "") + "/models/info", {
  • 写入本地文件
    lib/tts.js:154
    writeFileSync(path, bytes);
  • 删除本地文件递归
    lib/tts.js:159
    rmSync(dir, { recursive: true, force: true });
  • 执行外部命令来自配置/变量
    lib/tts.js:187
    const child = spawn(cmd, args, { windowsHide: true, stdio: "ignore" });
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 本地朗读:用本机 Style-Bert-VITS2 把会话读出声,支持多音色与按语言切换

README

由 DeepSeek 最新模型翻译生成
dsh-local-tts DSH 本地朗读:把 DSH 会话里「说完一整轮」的回复念出来——声音从你本机扬声器出来,不经过浏览器、不用登录账号、不用开着网页。 引擎二选一: - Style-Bert-VITS2(本地):音色可以自己训练/克隆,适合日式角色音;需要一个正在跑的 SBV2 服务 - edge-tts(微软在线语音):中文自然(晓晓/云希等),不需要账号,只要联网 和「朗读桥」类插件的区别:那类插件把话送到 DeepSeek 网页端、借网页的朗读功能出声(浏览器必须开着);这个插件自己合成、自己播放。 开关语音(重点) 装好、重启 DSH 后,在 DSH 输入框里发命令就行,想开就开,想关就关: | 命令 | 作用 | | /voice-on | 打开自动朗读:从现在起每轮回复都会念 | | /voice-off | 关闭自动朗读(正在念的也会停) | | /voice-status | 查看开关、引擎、服务器、最近错误 | 也可以直接让我开/关(我会调用 local_tts_set_autospeak),或者手动改 ~/.dsh/local-tts.json 里的 autoSpeak——改完 1.5 秒内生效。
展开完整文档(README 剩余 1 节)
dsh-local-tts

DSH 本地朗读:把 DSH 会话里「说完一整轮」的回复念出来——声音从你本机扬声器出来,不经过浏览器、不用登录账号、不用开着网页。

引擎二选一:

- Style-Bert-VITS2(本地):音色可以自己训练/克隆,适合日式角色音;需要一个正在跑的 SBV2 服务
- edge-tts(微软在线语音):中文自然(晓晓/云希等),不需要账号,只要联网

和「朗读桥」类插件的区别:那类插件把话送到 DeepSeek 网页端、借网页的朗读功能出声(浏览器必须开着);这个插件自己合成、自己播放。

开关语音(重点)

装好、重启 DSH 后,在 DSH 输入框里发命令就行,想开就开,想关就关:

| 命令 | 作用 |
| /voice-on | 打开自动朗读:从现在起每轮回复都会念 |
| /voice-off | 关闭自动朗读(正在念的也会停) |
| /voice-status | 查看开关、引擎、服务器、最近错误 |

也可以直接让我开/关(我会调用 local_tts_set_autospeak),或者手动改 ~/.dsh/local-tts.json 里的 autoSpeak——改完 1.5 秒内生效。

特性

- 🔊 两种引擎:本地 SBV2 / 在线 edge,按配置切换或按语言自动分流(auto)
- 🎭 多音色:SBV2 每个音色对应一个模型 + 说话人,可自己训练/克隆
- 🌏 按语言自动切换:中文 / 日文 / 英文自动判断;没有对应音色时宁可不念,也不念成怪声音
- ⏭️ 只念正文:只读助手回复里的文字块,工具调用、思考过程、代码块都跳过
- ✂️ 防话痨:Markdown 剥掉、每轮最多念 maxChars 字
- 🔁 热重载:配置文件改动 1.5 秒内生效,不用重启
- 🧰 工具:local_tts_say / local_tts_status / local_tts_stop / local_tts_set_autospeak

安装

从 GitHub 装(插件没有发 npm)
dsh plugin --profile desktop add github:lihaiyang616/dsh-local-tts

或者本地开发用 link 装
dsh plugin --profile desktop add link:D:/path/to/dsh-local-tts

装完重启 DSH。首次启动会生成配置 ~/.dsh/local-tts.json(没设 DSH_HOME 时)。

用哪条路(按你想念什么选)

A. 中文:edge-tts(最省事)

1. 建一个 Python 环境并安装:
python -m venv $env:USERPROFILE\.dsh\venvs\edge-tts
$env:USERPROFILE\.dsh\venvs\edge-tts\Scripts\python.exe -m pip install edge-tts

2. 确认有 ffmpeg(ffmpeg -version;Windows 可用 winget install Gyan.FFmpeg)
3. 在 ~/.dsh/local-tts.json 里设置: { "provider": "edge",
"edge": {
"pythonPath": "C:/Users/你/.dsh/venvs/edge-tts/Scripts/python.exe", "voice": "zh-CN-XiaoxiaoNeural", "rate": "+0%", "volume": "+0%", "pitch": "+0Hz" }, "ffmpegPath": "C:/path/to/ffmpeg.exe" }

4. /voice-on 试试。可选音色:zh-CN-XiaoxiaoNeural(晓晓,女)、zh-CN-YunxiNeural(云希,男)、zh-CN-XiaoyiNeural(晓伊)等。

B. 本地 + 自己克隆音色:Style-Bert-VITS2

1. 本机跑起 SBV2 的 API 服务(默认 5000 端口):
cd Style-Bert-VITS2
.\env\python.exe server_fastapi.py

2. 模型放进 model_assets/<模型名>/,服务会把它们列在 GET /models/info
3. 在配置里写 "provider": "sbv2" 和 voices(见下)

{
"provider": "sbv2",
"serverUrl": "http://127.0.0.1:5000",
"defaultVoice": "ling",
"languageVoices": { "jp": "ling" },
"voices": [
{ "name": "ling", "modelName": "Ling-v2", "speakerName": "Ling v2", "languages": ["jp"] }
]
}

⚠️ 一个 SBV2 模型只擅长它训练时的语言。日文模型念中文会出怪声或直接失败——中文请用中文模型,或直接用上面的 edge 方案。auto 模式会按文字语言分流:日文走 SBV2、其它走 edge。

配置速查

| 字段 | 说明 |
| provider | sbv2 / edge / auto |
| autoSpeak | 是否自动朗读(/voice-on / /voice-off 就是改它) |
| sessions | 要朗读的会话 id;[] = 所有加载中的会话 |
| maxChars | 每轮最多念多少字,默认 300 |
| language | auto / zh / jp / en |
| languageVoices | 语言 → 音色名 |
| voices | SBV2 音色列表:modelName 必填,languages 填它会的语言 |
| edge | edge-tts 的 python 路径、voice、rate、volume、pitch |
| ffmpegPath | mp3 转 wav 用;留空则用 PATH 里的 ffmpeg |

工具

| 工具 | 作用 |
| local_tts_say | 立刻朗读一段文字(可指定 voice / language 试听) |
| local_tts_status | 查看引擎、服务器、音色、队列、最近错误 |
| local_tts_stop | 停止当前朗读并清空队列 |
| local_tts_set_autospeak | 打开/关闭自动朗读 |

已知限制

- 自动朗读时,SBV2 音色和语言对不上会跳过(避免怪声),原因在 local_tts_status 里
- 播放只支持 wav;Windows 用 PowerShell SoundPlayer,Linux 需要 aplay,macOS 用 afplay
- 没有图形设置页,配置就是 ~/.dsh/local-tts.json
- edge-tts 需要联网;SBV2 需要你自己把服务跑起来

隐私

- 用 SBV2 时:只发到 serverUrl(默认本机 127.0.0.1),不联网
- 用 edge 时:文字会发给微软的语音服务(要念的内容会离开本机)
- 临时 wav 放系统临时目录,播放完即删

License

MIT
预览分享卡片长什么样 ↓lihaiyang616/dsh-local-tts
分享 · DeepSeek Harness Hub
lihaiyang616/dsh-local-tts

用本机音色把每轮回复自动念出来,支持多音色切换

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部