DSH Hub
dsh-voice-mode cover

qishuilalala/dsh-voice-mode

dsh-voice-mode

ToolWorkflow15 GitHub stars· updated 2026-09-24

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>

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


💡 它是什么

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

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

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


🤔 为什么值得用(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 主题

🎬 Demo

上方为当前界面的真实录制(由 screenshots/scripts/capture-demo.mjs 驱动真实链路产出,非 UI 摆拍);下图为静态总览。

真实录屏脚本见 demos/RECORDING-SCRIPT.md(60s/30s/15s 三段脚本)。
真机截图清单见 screenshots/MANIFEST.md(10 张)。


🚀 5 分钟上手(Quick Start)

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

第一次用:

  1. 进入任一会话,按 Ctrl+Shift+V(或点输入区麦克风按钮)进入语音模式,状态条显示「聆听中…」;
  2. 说一句完整的话(如「帮我看看今天的天气」)→ 实时字幕立即出现,停顿后自动发送;
  3. AI 回复开始朗读时,开口说话 → 朗读即刻停止,你的话被听见(这就是 barge-in)。

操作手势

手势作用
Ctrl+Shift+V进入 / 退出语音模式
直接说话(toggle)边说边出字,停顿 1500ms 自动发送;按住 Ctrl 强制立即发送
按住麦克风按钮(hold)松手发送;短按退出;滑出 / Esc / 失焦放弃本段
点输入框旁模式按钮在「持续聆听 ⇄ 按住说」间切换(保存到设置)
AI 朗读时开口说话打断朗读并取消当前回合
点状态条「退出」退出语音模式
点字幕浮层「跳过」跳过当前句朗读

⚙️ 配置(4 新设置字段 + 3 默认值微调)

设置 → Plugins → 插件配置 → 语音模式(voice-mode)。

4 新设置字段(11 批次周全修复落地)

你想调什么改哪个键默认说明
逆文本归一化senseITNtrueSenseVoice 数字/日期/货币规范化(默认开,关掉保留原文)
字幕字号captionFontSize0档位 0=12px / 1=14px / 2=18px / 3=24px
字幕宽度captionMaxWidth1档位 0=50vw / 1=70vw / 2=90vw
让位语义backchannelYieldtrue朗读期说「嗯/对」自动让位 1.5s,真要说走硬打断(ADR-0008)

3 默认值微调(批 J)

字段旧新理由
rate1.01.1Edge 默认略慢,统一提速 10% 改善体验
idleTimeoutMinutes105空闲退出更灵敏(朗读仍计为活动)
interruptLevel description旧描述新描述明确「3/2/1 帧确认」机制

字段名零变化,旧 ~/.dsh/settings.yaml 100% 兼容。

完整 19 项设置表见 plugin/dsh-voice-mode/README.md。


🏛️ 架构(Architecture)

…

Related plugins