dsh-ears
Voice input plugin for DeepSeek Harness (dsh): a microphone button in the composer turns speech into a draft transcript, with a choice of speech-recognition backends, optional polish through dsh own LLM routes, and a native settings page.
Install
dsh plugin --profile web add dsh-ears
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
<p align="center">
<img src="./assets/banner.jpg" width="100%" alt="dsh-ears" />
</p>
<h1 align="center">dsh-ears</h1>
<p align="center"><b>一款支持润色整理的 <a href="https://github.com/deepseek-ai/deepseek-harness">DeepSeek Harness</a> 语音输入插件。</b></p>
<p align="center">
简体中文 ·
<a href="./README.en.md">English</a>
</p>
<p align="center">
<a href="https://github.com/deepseek-ai/deepseek-harness"><img src="https://img.shields.io/badge/dsh-%3E%3D0.2.0--rc.1-1a73e8?style=flat-square&logo=deepseek&logoColor=white" alt="dsh >= 0.2.0-rc.1"></a>
<a href="https://www.npmjs.com/package/dsh-ears"><img src="https://img.shields.io/npm/v/dsh-ears?style=flat-square&logo=npm" alt="npm version"></a>
<!-- Download badge icon: Akar Icons, MIT, © 2020-present Arturo Wibawa — https://github.com/artcoholic/akar-icons -->
<a href="https://www.npmjs.com/package/dsh-ears"><img src="https://img.shields.io/npm/dt/dsh-ears?style=flat-square&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI%2BPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTEyIDE1VjNtMCAxMmwtNC00bTQgNGw0LTRNMiAxN2wuNjIxIDIuNDg1QTIgMiAwIDAgMCA0LjU2MSAyMWgxNC44NzdhMiAyIDAgMCAwIDEuOTQtMS41MTVMMjIgMTciLz48L3N2Zz4%3D" alt="npm downloads"></a>
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="MIT"></a>
</p>
https://github.com/user-attachments/assets/1363768e-a393-44bd-a008-1ce2055cac41
dsh-ears 为 DeepSeek Harness 提供语音输入与 LLM 润色整理能力。支持浏览器 Web Speech、本地 Whisper 以及主流语音识别(ASR)API 服务。
安装
前置依赖:DeepSeek Harness >=0.2.0-rc.1,以及 Node.js ^22.19.0 || >=24.0.0。
通过 npm 安装
Web UI:
dsh plugin --profile web add dsh-ears
桌面端:在插件管理界面中安装。桌面端独占名为 desktop 的 profile,dsh 命令不会管理它,因此没有对应的命令行写法。dsh-ears 不需要单独的桌面端构建,两个界面加载同一个 web 客户端包。
仍在使用 dsh 0.1.x? dsh-ears0.4.3要求 dsh>=0.2.0-rc.1,dsh 会直接拒绝在旧版本上安装。请继续使用对应的旧版本线:
```sh
# dsh 0.1.2–0.1.6
dsh plugin --profile web add "dsh-ears@<0.4.0"
# dsh 0.1.7(dsh-ears 0.4.0 要求 dsh 0.1.7-rc.2 及以后)
dsh plugin --profile web add "dsh-ears@<0.4.1"
# dsh 0.1.1
dsh plugin --profile web add "dsh-ears@<0.3.0"
```
从源码安装
git clone https://github.com/WizisCool/dsh-ears.git cd dsh-ears pnpm use:platform pnpm install pnpm build dsh plugin --profile web add "$PWD" # Windows 的 cmd 请使用 "%CD%";PowerShell 直接使用 $PWD
pnpm use:platform 将 node_modules 切换到当前平台的 native 依赖树(Windows / Linux 各自独立),首次克隆和跨平台切换后都需要运行。
安装完成后刷新 Web UI,输入框右侧会显示麦克风图标。
更新
dsh plugin --profile web add dsh-ears
add 会从 npm 拉取最新版本,任何已装版本都可以直接运行。更新后需要重启 dsh web 加载新的服务端代码,再刷新 Web UI;也可以在设置页的"关于"面板检查新版本。
卸载
dsh plugin --profile web remove dsh-ears
卸载后刷新 Web UI。
使用
1. 点击麦克风图标,或按下 Ctrl+Shift+Space(可在设置页更改)
2. 开始说话
3. 再次按下快捷键或点击麦克风,停止录音并开始转写
4. 开启润色后,原始转写会先写入草稿,润色完成后再更新,期间的手动编辑会被保留
5. 检查内容后手动发送
转写结果始终写入可编辑草稿,不会自动发送。如果所选后端尚未就绪,麦克风图标会变灰,悬停即可查看原因。
识别后端
后端 · 工作方式 · 需要什么
Web Speech · 浏览器实时识别 · 默认后端;Chromium 内核浏览器
本地 Whisper · 录音结束后本地转写 · 在设置页下载 GGML 模型
Groq · Groq Whisper API · API key
Deepgram · 预录音频或实时音频流 · API key、模型名(如 nova-3)
阿里云百炼 · DashScope 同步转写 · API key、同步模型 ID;单次最长 300 秒
腾讯云 · 录音文件识别或实时语音识别 · AppID、SecretID、SecretKey、engine_type
小米 MiMo · 语音识别 API,支持标准 API 或 Token Plan · API key、模型名(如 mimo-v2.5-asr);Token Plan 需选择区域集群
硅基流动 (CN) · 语音转写 API · API key、模型名(如 FunAudioLLM/SenseVoiceSmall)
火山引擎 · 录音文件识别(大模型)或单向流式语音识别 · API key(新版控制台 X-Api-Key)、资源 ID
自定义 OpenAI 兼容 · 发送到指定 /audio/transcriptions 端点 · 端点地址、API key、模型名
本地 Whisper:基于@fugood/whisper.node本地运行 whisper.cpp,无需 Python、FFmpeg 或外部依赖。支持在设置页下载管理 GGML 模型(tiny(默认)至turbo),并可选default(自动)、vulkan或cuda加速。
阿里云百炼:升级后的控制台使用业务空间专属域名(华北2 北京为https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com,新加坡为https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com)。请填写该 API Host 和同步模型 ID(如qwen3-asr-flash、qwen-audio-3.1-asr-flash、fun-asr-flash-2026-06-15),不要填控制台显示名称,也不要使用-filetrans、-streaming、-message、-realtime变体,这些模型走异步任务或 WebSocket 接口,dsh-ears 不支持。
火山引擎:仅支持新版控制台的 API Key(X-Api-Key)鉴权(不支持旧版 AppID + Access Token),可在控制台 API Key 管理页面获取。
润色
默认开启。提供方和模型都留空时使用 dsh 的默认 Agent 模型(包括默认推理设置);也可以从 dsh 已配置的模型中选择。LLM 凭据复用 dsh 现有配置。支持设置推理强度。
默认提示词会删除口头禅、修正 ASR 错字、处理自我纠正和口头列举。可在设置页自定义提示词或查看默认内容。润色失败或取消时保留原始转写。
设置
安装后在 Web UI 的设置页出现 dsh-ears 面板,分为四个标签页:
标签页 · 可配置项
常规 · 设置页显示名称、语音快捷键开关与组合键、提示音开关、最长录音时间(1–600 秒,默认 120 秒)
识别 · 后端选择、语言、本地 Whisper 模型和加速方式、云服务提供方及各提供方凭据
润色 · 开关、LLM 提供方和模型、推理强度、自定义提示词(最长 4000 字)
关于 · 版本号、许可证、dsh 兼容范围、检查更新
已知限制
- Web Speech 后端依赖浏览器实现,音频可能被发送到浏览器厂商的服务端处理,不是完全的本地/离线方案。
- 百炼单次录音最长 300 秒;Qwen-Audio-3.1 对极短或静音音频可能返回“无词”,短语音输入建议使用
qwen3-asr-flash。 - Deepgram Flux 系列模型需要 Listen V2 协议,当前不支持。
- 本地 Whisper 单次音频限制 24 MB,转写超时 120 秒。
- 加速方式(
default/ `
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::18,最后更新 2026-10-17