语音输入插件:对着麦克风说话,识别后的文字作为普通聊天消息发送(本地模型或浏览器语音识别)。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:3274375092/dsh-voice
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文
DeepSeek Harness 的语音输入插件:网页里点 🎤(或按快捷键)说话,识别文本作为普通消息提交进会话。纯输入,与 agent preset/人设完全解耦,任何模式下都只是"另一种输入法"。
特性
- 🎤 语音输入:麦克风按钮(平台设计系统 UI)+ 全局快捷键(默认 Ctrl+Space,可配)
- ⚡ 边说边识别:live-stream 部分识别实时回显,停麦 VAD 定稿提交(尾音补偿 0.6s,句尾不吞音)
- 🧠 双引擎自适应:host 原生(sherpa-onnx-node zipformer2 + silero VAD,离线、隐私)与浏览器在线(Web Speech,零依赖)自动探测降级
- 🔌 与 preset 解耦:不碰 persona/系统提示词,code/standard/minimal/自定义 preset 全通用
- 📦 可选模型:零配置开箱即用;想要原生一条
dsh-voice-models下载
安装
# 插件本体
dsh plugin --profile web add @nn12138/dsh-voice
# 可选: 离线原生识别(插件本体零依赖,不自动装该运行时)
dsh plugin --profile web add sherpa-onnx-node
dsh-voice-models # 一键下载模型(~100MB)→ ./dsh-voice-models
# 可选: 配置(编辑 ~/.dsh/profiles/web/cordis.patch.yml)
- id: voice
config:
modelDir: './dsh-voice-models' # 原生识别模型目录
hotkey: 'ctrl+space' # 全局快捷键
vadThreshold: 0.3 # 越低越不吞句首尾
tailPadSeconds: 0.6 # 尾音补偿时长
engine: auto # auto(默认) | native | browser
行内 config 由 host 半接收;engine / hotkey 会经 /voice.config loopback RPC 自动同步到浏览器半,无需另写 client 配置。auto 会先探测 host 原生能力:有模型用 native,无模型自动回退 Web Speech,保证零配置可用。修改配置后重启 dsh web。
dsh web # 输入框左侧 🎤 或 Ctrl+Space
详见 USAGE.md 与 INSTALL.md。
工作原理
浏览器采麦(自动重采样 16k)
→ PCM base64 分块(256ms)→ /voice RPC 通道(loopback)
→ host: silero VAD + zipformer2 流式解码
→ partial 逐块回传(边说边看)/ final 定稿(VAD 分段 + 0.6s 尾音补偿)
→ conversation 服务提交(与打字同路)
双引擎:host 判定生效引擎(配置 + 模型加载结果),客户端经 /voice.ping 消费;原生不可用自动降级浏览器 Web Speech。
开发
pnpm install --ignore-workspace # 独立依赖(不依赖 DSH monorepo;无安装期脚本)
pnpm --ignore-workspace test # 单测(含真实模型冒烟)
pnpm --ignore-workspace typecheck # 类型检查
pnpm --ignore-workspace build # 构建(tsc host 半 + tsdown client 半)
pnpm --ignore-workspace verify:package # 发布包校验:无安装期脚本、产物完整、--ignore-scripts 可安装
构建只发生在发布方侧(prepack — npm pack/npm publish 时)与 CI 发布前;消费者从 registry 安装 @nn12138/dsh-voice 不会执行任何生命周期脚本,--ignore-scripts 安装依然完整可用(见 issue #2)。
真实模型烟测默认指向本机 voxelf assets,模型不存在时自动跳过;可用环境变量指到别处:
DSH_VOICE_MODEL_DIR(模型目录)/ DSH_VOICE_TEST_WAV(测试 wav)/ DSH_VOICE_DOWNLOADED_MODELS(下载模型目录)。
结构:src/index.ts(host 半)/ src/client/(浏览器半)/ src/core/(识别核心)/ tools/(线协议冒烟 + 模型下载)。
License
MIT
链接
同类插件
PolinniZhong/dsh-omi-voice★ 74
DeepSeek Harness 对话内朗读:点一下即可朗读、暂停、继续 AI 回复,豆包 TTS 自然音色(BYOK),只读最终回答并过滤代码、表格与图形,本地引擎,插件零 Key。
PensiveFei/dsh-voice-scribe★ 34
面向 Web UI 的语音输入插件:点按 Alt(或 Alt+空格)开始/停止听写,支持浏览器内置 Web Speech(零配置)或 OpenAI 兼容云端 ASR,可选经 DSH 已配置模型润色,带设置页。
1624318455/dsh-plugin-tts★ 21
用免费 Edge TTS 或你自己的 RVC 音色朗读 AI 回复:消息朗读与自动朗读、长文自适应分块渐进播放(无缝衔接)、音色包仓库一键安装、便携 RVC 运行时。
WizisCool/dsh-ears★ 21
面向 DeepSeek Harness (dsh) 的语音输入插件:输入框的麦克风按钮把语音转成草稿文本,支持多种语音识别后端,可选经 dsh 自有 LLM 路由润色,并带原生设置页。
PerryLink/dsh-talk★ 15
DeepSeek Harness 的语音输入输出:麦克风语音转文字与文字转语音。
qishuilalala/dsh-voice-mode#dsh-voice-mode★ 15
DeepSeek Harness Web UI 全双工语音对话:按钮或 Ctrl+Shift+V 进入,持续聆听(停顿自动发送)或按住说话,zipformer2 流式识别入可编辑草稿、可选唤醒词;回复按句 Edge TTS 朗读并显示实时字幕,开口即打断播放与回合(真 barge-in);识别模型本地推理、Edge TTS 在线合成,无需 API Key。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。