dsh-voice-kit
已验证dsh-voice-kit · v0.4.0 · MIT · Web 界面
Voice input (Web Speech API) and read-aloud (speechSynthesis) for the DeepSeek Harness web GUI — DSH 语音输入 + 回复朗读套件
安装
dsh plugin add dsh-voice-kit 用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。
源码
标签
作者
说明文档
dsh-voice-kit 🎙️
DeepSeek Harness Web GUI 的语音输入与回复朗读套件。
状态:v0.4.0 已发布 npm —
pnpm typecheck通过、239 个单测通过、pnpm build产出生态标准 closure-factory bundle(宿主半区 + 浏览器半区)。 已在真实 DSH Desktop profile 里验证通过。安装:dsh plugin add dsh-voice-kit。
功能
- 🎤 语音输入 — 输入框左侧麦克风按钮;录音后经宿主侧 STT 转写并追加进草稿(不覆盖已有输入)。
支持浏览器 Web Speech API(Chrome/Edge)与宿主侧 OpenAI 兼容转写服务(如硅基流动 SenseVoice)
两种后端,
Esc取消、可随时停止。 - 🔊 回复朗读(三种引擎) — 每条 assistant 消息尾部朗读按钮:
- 微软神经语音(免费,晓晓/云希/云健/云扬…)— 宿主侧经
msedge-tts合成,带缓存;被墙网络经系统代理隧道自动连通 - 云端神经语音(硅基流动 CosyVoice2 等 OpenAI 兼容
audio/speech,境内直连、无需代理)— 复用语音识别密钥 - 系统语音 — 完全离线兜底,任何环境都可用
- 朗读前剥离 markdown / emoji;长回复按句子边界流式分块——首块约 1 秒内出声,后续边播边预取;同一时刻只读一条;播放中消息自动滚到视野中央并弹气泡显示正在读的内容;再次点击立即停止。
- 微软神经语音(免费,晓晓/云希/云健/云扬…)— 宿主侧经
- ⚙️ 设置 — 一级设置页:语音引擎(三种)、云端服务一键预设、音色、语速、音调、识别语言、引擎可用性探测(Edge 是否能连点一下就显示)、密钥状态(只显示「已保存/未设置」,绝不回显值)。
新手教程(5 分钟上手)
1. 安装
# 从 npm 安装(推荐)
dsh plugin add dsh-voice-kit
# 或本地开发安装
dsh plugin --profile desktop add link:/path/to/dsh-voice-kit
重启 DSH Desktop 并刷新 Web GUI。
2. 让回复朗读出声(选一种引擎)
打开设置 → 语音 → 回复朗读:
- 立刻可用的:选「系统语音」→ 点 🔊 就有声音(离线,音质一般)。
- 免费且好听:选「微软神经语音」→ 设置页会显示「❌ Edge 不可达 / ✅ Edge 可达」。若不可达,打开你的科学上网代理(插件会自动走系统代理),回来点 🔊 即可听到晓晓音色。
- 不依赖代理、音质接近豆包:选「云端神经语音」→ 点「硅基流动 CosyVoice2」一键预设 → 若你已配过语音识别密钥,直接点「试听」;没配过就填一次密钥(TTS 会复用同一个)。
💡 云端 TTS 与语音识别共用同一个密钥:先配好语音输入,朗读就无需再填。
3. 用语音输入说话
打开输入框左侧的 🎤:
- 状态栏若提示「需在设置里配置识别服务」,去 设置 → 语音 → 语音输入 选「宿主侧转写」,配好硅基流动地址 + 密钥。
- 点 🎤 开始说话,说完再点一次停止(或
Esc),转写文字自动追加进输入框。 - 也可点「麦克风自检」先确认权限/设备/格式正常。
4. 常见问题
| 问题 | 处理 |
|---|---|
| 朗读没声音 | 检查引擎是否可达;微软语音需代理,云端语音需密钥,系统语音永远可用 |
| 段落太长出声慢 | 已优化到约 1 秒内出声;若仍慢请更新插件到 0.4.0 |
| 密钥「已保存」但没生效 | 密钥存宿主端,重启后再试「试听」 |
| 语音输入无转写 | 确认已配置宿主侧识别服务 |
安装
# npm 发布后
dsh plugin add dsh-voice-kit
# 本地开发
dsh plugin --profile desktop add link:/path/to/dsh-voice-kit
重启 harness 并刷新 Web GUI。
开发
pnpm install
pnpm typecheck # tsc --noEmit
pnpm test # vitest(纯逻辑:markdown 剥离 / 分块 / 并发流式预取)
pnpm build # tsdown → lib/index.js(宿主)+ lib/client.js(浏览器)
构建链路采用生态标准 closure-factory bundle
(window.__ModuleLoader__.load),由 shared/tsdown.client.ts 驱动
(改编自官方 DeepSeek Harness packages/client/tsdown.client.ts,MIT;
libExternal 选项来自 dsh-web-ui 全家桶,Apache-2.0,见文件头注明)。
License
MIT。内置的 shared/tsdown.client.ts 改编自官方 DSH 构建工具(MIT)与
dsh-web-ui 的 libExternal 选项(Apache-2.0),详见文件头。