DSH Hub
dsh-voice-mode cover

qishuilalala/dsh-voice-mode

dsh-voice-mode

UIDesktop23 GitHub stars· updated 2026-10-27

dsh-voice-mode is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-voice-mode

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-voice-mode DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-voice-mode.svg)](https://dshhub.dev/plugins/dsh-voice-mode)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from qishuilalala/dsh-voice-mode, cleaned of badges and images.

<h1 align="center">dsh-voice-mode</h1> <p align="center">DeepSeek Harness 全双工语音插件 —— 边说边出字 · 按句朗读 · 开口即打断</p> <p align="center"><b>中文</b> · <a href="plugin/dsh-voice-mode/README.en.md">English</a></p>

Full-duplex voice mode for DeepSeek Harness —— 在会话内用语音完成整轮对话:说话时边说边出字、停顿后自动发送;回复按句朗读并跟随实时字幕;朗读中开口即打断。识别在本地推理、无需 API Key;朗读默认 Edge 云端(快且自然),本地 VITS / Kokoro 可选(隐私优先)。兼容 dsh 0.1.1-rc.2 起全版本(已验证至 0.2.1-rc.3,含官方桌面端等价的 Electron 宿主,完整矩阵见 docs/compat-contract.md §10–§22)。979 项测试全绿(74 套件);当前版本见上方 npm 徽章与 Releases。


💡 它是什么

在 DeepSeek Harness 的会话里,点一下麦克风就能用语音完成整轮对话:

  • 🎤 你说 —— 一边说一边实时出字(流式识别),停顿约 1500ms 断句进草稿,再静音约 1.2 秒(合计约 2.7 秒)自动发送;
  • 🔊 它答 —— 最终回复按句朗读,全程实时字幕跟随;
  • ⏸️ 随时打断 —— AI 还在朗读时开口即打断,你的话直接被听见。

零 API Key:识别在宿主端本地推理(zipformer2 流式 + SenseVoice 定稿);朗读默认 Edge 云端(快、自然),可选本地 VITS 纯中文 / Kokoro 中英混读(回复文本不出本机,隐私优先)。


🆕 最近更新

v0.7.31 —— 修复 Edge 云端朗读再次失效(详见 CHANGELOG)

  • 🔊 微软又改了 Edge 朗读的握手(2026-10-25 起),0.7.24 ~ 0.7.30 的默认朗读会整体无声;本版跟进上游修复并重建发布包,已实测合成成功。本地 VITS / Kokoro 朗读不受影响
  • 🔐 依赖审计:修复 zod 高危公告(GHSA-mrhx-c7xc-m3w5),该依赖仅用于开发期类型检查、不进发布包

v0.7.30 —— 兼容 dsh 0.2.1-rc.3

  • 🧩 覆盖矩阵扩到 18 个宿主版本 / 15 个隔离核心冒烟;兼容声明(中英 README、manifest)同步到 0.2.1-rc.3

v0.7.29 —— 对抗验证修复批(详见 CHANGELOG)

  • 🧩 长句还在识别时接着说下一句,前一句不再被吞;朗读中按住打断再上滑取消后,下一句不再丢
  • ⏱️ 长朗读、长工具回合不再被「空闲退出」掐断(距最后一次真实操作满 2 小时才退出)
  • 🔤 回复含 &、<、> 时 Edge 朗读不再整句跳过;本地 Kokoro 下载完成后可完全离线
  • 🌐 模型下载卡住 120 秒自动换源;点麦克风转圈时再点一次即取消,8 秒无应答自动收尾
  • ♿ 读屏软件只播报状态变化,不再被实时转写和计时刷屏

v0.7.28 —— 输入框内快捷键与按住说话优化(社区贡献 @dyguests,PR #17)

  • ⌨️ 光标在输入框里按 Alt+Enter(Mac 为 Option+Enter)即可进入 / 退出语音模式,不会插入换行;可在设置里改键或留空禁用
  • 🎙️ 设置新增「快捷键」分组:点「录制」直接按组合键录入,Esc 取消、Backspace 清空,缺修饰键或不支持的键会提示;改完立即生效,不用刷新
  • ✋ 按住说话:空闲时直接按住就开始录;松手发送后等回复读完自动退出;点麦克风按钮不再抢走输入框光标
  • 🔊 没有句末标点的长文字(含英文)朗读分段更自然,打断更及时

v0.7.27 —— 麦克风按钮即状态面板(社区贡献 @dyguests,PR #16)

  • 🎛️ 按钮挂到发送键旁,状态全写在按钮上:聆听绿条、朗读蓝条随音量跳动,出错红点、说话橙点;右键一键切交互模式 / 朗读范围 / 字幕 / 状态条
  • 🔁 说完就关(mode: once):说一句 → 自动发送 → 读完回复 → 自动退出,适合偶尔问一句
  • 📖 总是朗读(readAloud: always):打字发的消息也读出来;代码块自动跳过;点一下按钮就停

🤔 为什么值得用(3 个真痛点)

#痛点我们的应对
1字幕看不清 —— 字小、窄屏被输入框挡住captionFontSize 4 档(12/14/18/24px)+ captionMaxWidth 3 档(50/70/90vw)
2让位误打断 —— AI 朗读时插一句「嗯/对」就被硬打断backchannelYield 让位语义:短词自动让位 1.5s,真要说走才硬打断
3本地 TTS 太机械 —— 一句话读完停顿 3-5 秒本地 VITS / Kokoro 原生 addon + epoch 队列管理,按句流式朗读、句间无停顿

✨ 功能(按用户价值)

  1. 🎙️ 识别准 —— SenseVoice 多语种定稿 + ITN(数字/日期/货币自动规范化)
  2. 🗣️ 不说错 —— 唤醒词待机、唤醒词前缀语气词白名单(嗯/那个 不再误触)
  3. 🤝 让位 —— 让位语义 + 三档打断灵敏度(interruptLevel),外放也能精准打断
  4. 💬 有感情 —— 本地 Kokoro 103 音色 + Edge 322 音色,行内可试听;分段朗读不漏句
  5. 👁️ 字幕 a11y —— 4 档字号 + 3 档宽度,浅色主题变量跟随 dsh 主题
  6. ✋ 打断不吃句 —— 朗读中开口打断,打断前说的话自动并入识别;任务运行中开口直接插话
  7. 🔁 三种交互 —— 持续聆听 / 按住说话 / 说完就关;朗读范围可选语音模式 / 总是 / 关闭

🎬 Demo

麦克风按钮即状态面板(@dyguests 贡献,PR #16):聆听时绿色竖条随音量跳动、朗读时蓝色竖条、「说完就关」等回复时转圈、收尾对勾;右键可切换交互模式 / 朗读范围 / 字幕 / 状态条 / 自动发送。在右键菜单关掉状态条与字幕后,语音 UI 全部收进按钮(下图即此形态):

上图为当前界面的真实录制(由 screenshots/scripts/capture-demo.mjs 驱动真实链路产出,非 UI 摆拍;UI 持续演进,以实际界面为准)。设置面板见 使用说明。


🚀 5 分钟上手(Quick Start)

dsh plugin --profile web add dsh-voice-mode
systemctl restart dsh   # Linux;其他平台重启 dsh 进程

…

Related plugins