Nothree-code/voco-input-sh ↗★ 1
voco-input-sh
VocoType voice input bridge for DSH Web: mic button + recording panel in the composer, auto-insert recognized text (dedupe, auto-launch/deploy, mtime-optimized polling)
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Nothree-code/voco-input-sh说明文档
阅读完整 README ↗voco-input-sh
DeepSeek Harness(dsh web)持久语音输入插件:在聊天输入框旁提供麦克风按钮,弹出录音面板,把本地语音识别软件 VocoType 的识别结果自动插入输入框。
基于 VocoType(开源离线语音输入,Paraformer 中文识别 + FSMN-VAD + CT-Transformer 标点),本插件负责「检测/启动/自动部署 VocoType → 读取识别日志 → 去重 → 自动插入输入框」的完整闭环。
功能特性
- 🎙 麦克风按钮:输入框工具行右侧,千问风格图标,hover 高亮、录音中红点呼吸
- 🪟 录音面板:输入框上方弹出,波形动画 + 状态提示 + 累计计数(已插入 N 条)
- 🚀 自动准备引擎:检测 VocoType 进程 → 未运行自动启动 → 未安装自动下载官方安装包(NSIS 静默安装到
%LOCALAPPDATA%\Programs\VocoType) - ✂️ 防重复插入:VocoType 会把文字粘贴到焦点窗口,插件插入前检查草稿是否已包含该文本,避免双份
- 🔁 持续输入:点一次按钮开始,连续说多句全部自动插入,再点按钮结束
- 🔧 错误重试:面板出错时提供「重试」按钮
- ⚡ mtime 优化轮询:日志文件无变化时不重复读取
- 💾 路径动态探测:日志路径基于
%LOCALAPPDATA%,exe 探测 5 个常见安装位置,换机器可用
安装
-
将本包放入 dsh profile 的
packages/目录(例如C:\Users\\.dsh\profiles\web\packages\voco-input-sh) -
在 profile 根目录安装:
cd # 例如 C:\Users\\.dsh\profiles\web pnpm add "file:./packages/voco-input-sh" -
在
cordis.patch.yml添加挂载行:- insert: - id: voco-input-sh name: 'voco-input-sh' -
重启 dsh web,麦克风按钮自动出现在聊天输入框工具行。
依赖项:需要 pnpm。VocoType 会自动部署,无需预装(首次会自动下载约 25MB 安装包并静默安装,模型约 1.6GB 由 VocoType 首次启动时下载)。
使用
- 点击输入框右侧 🎙 按钮 → 弹出录音面板(波形动画 +「按住 AltRight 说话」)
- 按住
AltRight说话,松开 - 识别文字自动插入输入框(若 VocoType 已粘贴到输入框则自动去重)
- 连续说多句会全部按顺序插入;再点按钮(或面板 ✕)结束
工作原理
┌─────────────┐ 识别完成 ┌──────────────────┐ 写日志 ┌────────────────────────┐
│ VocoType │ ──────────► │ 剪贴板 + Ctrl+V │ ────────► │ %LOCALAPPDATA%\VocoType\│
│ (AltRight) │ │ (粘贴到焦点窗口) │ │ logs\VocoType.log │
└─────────────┘ └──────────────────┘ └───────────┬────────────┘
│ 轮询(600ms, mtime优化)
┌─────────────────────────┐ setDraft(草稿拼接) ┌────────────────────▼─────────┐
│ 输入框(React 受控) │ ◄──────────────────────│ 插件 Client(slot 面板) │
└─────────────────────────┘ │ 草稿包含→跳过(去重) │
│ 未包含→拼接插入 │
└─────────────┬───────────────┘
fetch /dsh-voco-*
┌─────────────▼───────────────┐
│ 插件 Host(webServer 路由) │
│ ensure / baseline / poll │
└────────────────────────────┘