
qishuilalala/dsh-voice-mode
dsh-voice-mode
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-modeRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](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.
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 队列管理,按句流式朗读、句间无停顿 |
✨ 功能(按用户价值)
- 🎙️ 识别准 —— SenseVoice 多语种定稿 + ITN(数字/日期/货币自动规范化)
- 🗣️ 不说错 —— 唤醒词待机、唤醒词前缀语气词白名单(
嗯/那个不再误触) - 🤝 让位 —— 让位语义 + 三档打断灵敏度(
interruptLevel),外放也能精准打断 - 💬 有感情 —— 本地 Kokoro 103 音色 + Edge 322 音色,行内可试听;分段朗读不漏句
- 👁️ 字幕 a11y —— 4 档字号 + 3 档宽度,浅色主题变量跟随 dsh 主题
- ✋ 打断不吃句 —— 朗读中开口打断,打断前说的话自动并入识别;任务运行中开口直接插话
- 🔁 三种交互 —— 持续聆听 / 按住说话 / 说完就关;朗读范围可选语音模式 / 总是 / 关闭
🎬 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 进程
…

