dsh-voice-scribe
Manifest valid★ 35DSH voice input plugin: tap Alt to talk, get text in composer. Web Speech default (zero config), optional OpenAI-compatible ASR, polish via DSH LLM.
dsh-voice-scribe
DSH 专属语音输入插件:点按或按住 Alt 说话、松开/再点按转文字,结果追加到输入框草稿末尾(不覆盖已输入内容)。 Voice input for DeepSeek Harness: tap or hold Alt to talk, get text in the composer.
⚠️ 非官方插件,与 DeepSeek / 深度求索公司无关联。使用前请阅读 SECURITY.md。
安装 Install
dsh plugin --profile web add dsh-voice-scribe # 重启 dsh web 后生效
使用 Usage
- 麦克风按钮:输入框右侧 🎤 图标,点击开始说话、再点停止并转写(按钮录音中变红)
- 热键:点输入框 → 按 Alt 开始说话 → 再按 Alt 结束并转写(备选 Alt+空格;设置 → 语音输入 → 热键可选「自定义」,录制任意组合键,如 Ctrl+Shift+V、F9、Alt+Space)
- 按住说话:设置 → 语音输入 → 触发方式 可选「按住说话」——按住热键录音、松开自动转写(麦克风按钮同样支持);自定义组合键在按住模式下同样生效(松开组合键中的任意一键即结束)
- 实时中间结果:说话时识别文本实时出现在草稿里(浏览器引擎逐字、本地引擎每 3 秒刷新),停止后替换为最终结果
- 录音电平指示:录音中状态条下方显示实时电平条
- 最长录音时长:本地引擎约 4 分钟、云端 10 分钟,到时长自动停止并转写
- 切窗取消:录音中切到其他窗口自动取消本次录音(Alt+Tab 误触不会留下录音)
识别引擎 Engine(默认「自动」,零配置)
| 引擎 | 说明 |
|---|---|
| 自动(默认) | 本地离线识别优先;不可用时自动回退浏览器识别 |
| 本地离线识别 | SenseVoice,零配置零 key、音频不出本机;首次使用自动下载模型(约 230MB,国内镜像,只需一次) |
| 浏览器 Web Speech | 零配置;依赖 Google/Microsoft 服务(国内 / Edge Stable 可能不可用) |
| 云端 ASR(可选) | 服务链:可配置多个 OpenAI 兼容端点按序尝试、失败自动切换;需在设置中配置 API key |
浏览器识别依赖外部语音服务(Chrome 在大陆被墙、Edge Stable 有已知回归),故默认以本地识别为主。
云端 ASR 服务链示例:Groq(免费层)→ 硅基流动 SenseVoice → 阿里云百炼,任一失败自动尝试下一个(设置 → 语音输入 → 云端 ASR)。
识别语言 Languages
支持 中文 / English / 粤语 / 日本語 / 한국어(设置 → 语音输入 可选)。本地离线识别自动检测语言;所选语言作用于浏览器与云端识别。
热词替换表 Hot Words(可选)
把识别错的人名、术语、项目名替换回来:编辑 $DSH_HOME/voice/hot.txt(每行一条,修改后下次转写生效):
# 字面替换(不区分大小写):正确词=错误词1|错误词2
DeepSeek=deep seek|迪普西克
王小明=王小铭
# 正则替换(标准 $1 语义;未写 flags 时默认全局替换,写 g/y 则按原样使用)
/老\s*师/老师/
/\{([^}]+)\}/【$1】/
/deep\s*seek/DeepSeek/gi
设置 → 语音输入 页面会显示热词表状态(规则条数 / 文件路径 / 解析错误)。云端与本地离线引擎的转写结果统一应用。
自定义润色提示词(可选)
设置 → 语音输入 → 开启润色后:
- 润色模型:下拉选择复用的 DSH 模型(选项来自 DSH 已配置的 provider,首次开启自动选中第一个)
- 润色提示词:可自定义(多行,保存在服务端);留空或「恢复默认」使用内置的最小必要修正提示词
润色时会先做一步本地规则预润色(去「嗯/呃」等口头禅、折叠多余空格),再把更短更干净的文本交给 LLM,省 token;LLM 失败时仍保留原始转写。
隐私 Privacy
本地引擎音频不出本机;Web Speech 由浏览器语音服务处理;云端 ASR 的 key 只存服务端。
与同类插件对比 Compare
同为 DSH 的语音 / 输入增强插件,主要差异(截至 2026-09):
| dsh-voice-scribe(本插件) | dsh-better-input | |
|---|---|---|
| 定位 | 专注语音输入 | 输入增强套件(语音 + 提示词优化 + 文件转 Markdown 等) |
| 本地离线识别 | ✅ SenseVoice,零 key,音频不出本机 | ❌ 仅浏览器原生识别 |
| 浏览器 Web Speech | ✅ 回退 | ✅ |
| 云端 ASR 服务链 | ✅ 多 provider 故障切换 | ❌ |
| 热词替换表 hot.txt | ✅ | ❌ |
| 本地规则预润色(省 token) | ✅ 0.4.2 起 | ❌ |
| AI 润色(复用 DSH 模型) | ✅ | ✅ |
| 按住说话 / 录音电平 | ✅ | 录音自动停止(无电平) |
| 提示词优化 / 文件转 Markdown | ❌ | ✅ |
只想要更省心、更私密的语音输入 → dsh-voice-scribe;需要一整套输入增强(提示词优化、文件转 Markdown) → dsh-better-input。两者可并存。
已知限制 Known limitations
- 输入框里含
@引用芯片(如@文件)时,DSH 只提供「整段替换草稿」的接口,转写结果插入会把芯片展开成纯文本;先发送或清空草稿再听写可避免。 - 浏览器 Web Speech 依赖外部语音服务,国内网络下通常需要改用本地离线或云端引擎。
兼容性 Compatibility
- 需要 DSH 0.1.0-rc.6 及以上;peer 范围显式列出每条已发布的预发布线(
0.1.1-rc/0.1.2-alpha/0.1.3-alpha/0.1.5-alpha/0.1.6-alpha),semver 的预发布规则要求逐条列出元组,否则该线宿主会一直收到 unmet-peer 告警。 - 输入框插槽
conversation.input.right在 DSH 0.1.2 起由<textarea>改为 Lexicalcontenteditable:0.4.8 起两种形态都支持(读取实时草稿走useInput,写入走inputActions.setDraft)。 - 界面没有麦克风按钮(旧壳子没有该插槽)时,Alt 热键仍然可用。
- 实测核对:0.4.10 逐文件对照了 DSH 0.1.5-rc.1 与 0.1.2-rc.1 —— 宿主端
dsh-host-webserver两份字节一致,webServer/webRuntime/llm三个服务与ctx.llm.prepareCall/ 流式text-delta/finish.reason均无变化;客户端dsh-client-modules/dsh-client-ui-renderer/dsh-client-locale/dsh-client-ui-settings四份字节一致,插槽注册、setDraft、useInput(s => s.draft)、[data-composer-card]+ contenteditable 的 DOM 形态全部不变。
开发 Dev
npm test # 测试
npm run lint # 语法检查
npm run security # 密钥/路径泄露扫描
License
MIT
Compatibility
Versions
| Latest version | Published | Size |
|---|---|---|
| 0.4.7 | — | — |
| 0.4.2 | — | — |
| 0.4.3 | — | — |
| 0.4.4 | — | — |
| 0.2.0 | — | — |
| 0.4.5 | — | — |
| 0.5.0 | — | — |
| 0.4.10 | — | — |
| 0.4.0 | — | — |
| 0.5.1 | — | — |
| 0.4.8 | — | — |
| 0.4.1 | — | — |
| 0.1.1 | — | — |
| 0.4.9 | — | — |
| 0.4.6 | — | — |
| 0.3.0 | — | — |
| 0.1.0 | — | — |
| 0.5.2 | — | — |
| 0.5.3 | — | — |
| 0.5.4 | — | — |
Comments
Loading…
Similar plugins
by baisama-cloud
Speech-to-text voice input plugin for DeepSeek Harness (DSH) web GUI: click the mic in the composer to turn speech into text in the input box. Browser Web Speech API + OpenAI-compatible Whisper (OpenA
★ 3
MIT
JavaScript
Aug 31, 2026
dsh plugin --profile web add dsh-stt-inputby mohith-das
Minimal, English-only voice input plugin for DeepSeek Harness Web UI — a mic button in the composer using the browser's native SpeechRecognition API. Zero dependencies, no subprocess, no tracking.
★ 0
MIT
JavaScript
Sep 1, 2026
dsh plugin --profile web add dsh-voice-input-enby QDchuan
Voice input for DeepSeek Harness: a microphone seat in the composer and a Web settings page that transcribes through the browser or any OpenAI-compatible /audio/transcriptions endpoint, with a fully o
★ 0
MIT
JavaScript
Sep 12, 2026
dsh plugin --profile web add dsh-voice-inputMic button in the composer tool row: Web Speech API speech-to-text (Chrome/Edge), language switching, and optional auto-send, zero dependencies.
★ 0
dsh plugin --profile web add dsh-voice-input-webby nonmean
DSH web plugin: macOS native speech-to-text composer input (Apple Speech framework, remote helper)
★ 0
MIT
TypeScript
Aug 18, 2026
dsh plugin --profile web add dsh-audio-inputby 3274375092
Voice input plugin for DeepSeek Harness: mic → local/browser speech recognition → text submitted as a normal chat message. Input-only and preset-agnostic.
★ 8
↓ 69/wk
MIT
TypeScript
Oct 1, 2026
dsh plugin --profile web add @nn12138/dsh-voice