DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
V

dsh-voice-space

Voice Space

在 DeepSeek Harness 中按住空格键说话 — 使用本地 SenseVoice 进行转写(按住期间逐句输出),松开后自动润色。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:he-miaoqing/dsh-voice-space#06e5444638a8683df2e48d890ad712cf484cfef2
README兼容性版本

说明

在 DeepSeek Harness 中按住空格键说话 — 使用本地 SenseVoice 进行转写(按住期间逐句输出),松开后自动润色。按住空格键语音输入:长按录音、逐句实时出字,松手后自动校对优化。

兼容性与来源证明

Voice Space 以 dsh-voice-space 发布,当前版本为 0.2.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/30

版本

0.2.0stable
2026/10/30

相关插件

正在加载相关插件…

最新版
0.2.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1
周下载
0
最近提交
2026/10/30
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 vision-media 分类下经过校验的插件。

Experimental Voice Input Bundle@deepseek-ai/dsh-experimental-voice-input-bundle实验性语音输入,使用本地 SenseVoice;首次使用时下载其运行时Modlens@liustack/modlens面向仅支持文本的 LLM 的插件视觉能力,由免费的 Antigravity CLI 提供支持Image Gendsh-image-gen将类似 ChatGPT 的图像生成功能带到 DeepSeek Harness——支持 Gemini、OpenAI、Seedream、DashScope、本地 ComfyUI 等。Ab Ocrdsh-ab-ocr--- description: "外部 ocr 工具:逐页识别扫描的 PDF 或图像,仅在处理完最后一页后按顺序合并页面,并使用模型确定的标题级别保存为一个 Markdown 文档。" kind: "package-reference" ---

README

dsh-voice-space 🎤

Hold Space to talk in DeepSeek Harness. Long-press the Space bar in the chat input to record; the transcript streams in sentence by sentence while you hold, and on release it's automatically polished (homophones fixed, filler words removed, punctuation tidied) before landing at the caret. Fully local transcription — audio never leaves your machine, no STT API key required.

English · 中文


Features

  • Hold-to-talk: hold Space (≥ 450 ms) in the composer to start recording; release to stop. A quick tap still types a normal space.
  • Live streaming: sentences appear in the floating panel as you speak (silence-based segmentation, ~0.6 s after each pause).
  • Auto polish on release: the full transcript is sent through DeepSeek once and cleaned up — ASR homophone errors corrected, filler words (嗯/呃/那个/就是/然后) dropped, punctuation fixed — without changing the meaning. Falls back to the raw transcript if the API/key/network is unavailable.
  • IME-safe: the Space used to confirm Chinese IME candidates is never intercepted.
  • Local STT: SenseVoice (sherpa-onnx, CPU) runs inside the plugin's own host half. No dsh-voice-local required.
  • Esc to cancel; focus loss cancels cleanly.

功能

  • 按住说话:输入框内长按空格(≥450ms)开始录音,松手结束;轻点空格仍是普通空格。
  • 实时出字:说话时按静音断句,每个短句约 0.6 秒后实时显示在悬浮面板里。
  • 松手自动校准:松开后全文交给 DeepSeek 校对一次——修同音字错别字、删填充词、补标点,不改变原意;接口/Key/网络不可用时自动退回原始转写。
  • 中文输入法安全:选词用的空格不被拦截。
  • 本地转写:SenseVoice(sherpa-onnx,CPU)在插件自己的宿主端运行,无需安装 dsh-voice-local。
  • Esc 取消;窗口失焦自动取消。

Install

Requires DeepSeek Harness with the desktop / web profile (platform: web client). Tested on the Windows desktop app (dsh 0.2.1-rc.5).

# from the GitHub repository
dsh plugin --profile desktop add "github:he-miaoqing/dsh-voice-space"

# or from npm (once published)
dsh plugin --profile desktop add dsh-voice-space

# or from a local clone / path
dsh plugin --profile desktop add "link:<absolute path to this repo>"

Then fully quit and reopen DeepSeek Harness (a page refresh is not enough in the packaged app).

Model

The SenseVoice model (model.int8.onnx + tokens.txt, ~230 MB) is downloaded automatically on first use into ~/.dsh/voice/sensevoice/ (or $DSH_HOME/voice/sensevoice/), fetched from Hugging Face mirrors. You can also pre-place those two files there to skip the download.

DeepSeek API key (for polish)

The release-time polish uses your configured DEEPSEEK_API_KEY, resolved from the DSH credentials seam at request time — it never touches the browser or the plugin cache. Without a key, the raw transcript is inserted as-is.


Usage

  1. Click into the main composer.
  2. Hold Space for ~0.5 s → the panel shows 正在聆听…(松开空格结束,Esc 取消).
  3. Speak; the transcript streams into the panel.
  4. Release → brief 正在校准优化… → polished text is inserted at the caret.

How it works

hold Space (client keydown)
   └─ AudioWorklet records 16 kHz mono PCM (silence segmenter)
        └─ POST /dsh-voice-space/v1/transcribe  (per sentence)
             └─ pure-JS WAV decode → sherpa-onnx SenseVoice → text
release
   └─ flush tail → join sentences
        └─ POST /dsh-voice-space/v1/polish (DeepSeek) → cleaned text
             └─ insert into composer via inputActions.setDraft

The draft is written through the host's React-controlled channel (inputActions.setDraft via the conversation.input.left slot), so undo/history and the send gesture keep working.

Host routes (/dsh-voice-space/v1)

MethodPathPurpose
GET/healthnative module + model status
GET/model/statusmodel files + download state
POST/model/downloadstart background model download
POST/transcribeWAV body → { ok, text }
POST/polish{ text } → { ok, text }
GET/POST/diagclient lifecycle beacons (debugging)

WAV decoding is done in pure JS on purpose: in Electron the request body arrives as an "external" ArrayBuffer and sherpa-onnx's native readWaveFromBinary (zero-copy) throws External buffers are not allowed.


Disable / debug

  • Disable: in the console run window.__dshVoiceSpace.disable() (writes dsh-voice-space:enabled=0 to localStorage); enable() to restore.
  • State: window.__dshVoiceSpace.recording, .inputReady.

Privacy

  • Audio is transcribed locally and is never written to disk or sent to any STT service.
  • The polish step sends only the (already local) transcript text to api.deepseek.com.
  • The API key is resolved server-side from the DSH credentials seam and never enters the browser.

License

MIT