dsh-web-speech-input
leozou320-ai
Voice-to-text for the DeepSeek Harness Web UI — live, editable, never auto-sends. | DeepSeek Harness 网页语音输入
PROJECT TOPICS
PROJECT README
DeepSeek Harness(dsh web)持久语音输入插件:在聊天输入框旁提供麦克风按钮,弹出录音面板,把本地语音识别软件 VocoType 的识别结果自动插入输入框。
基于 VocoType(开源离线语音输入,Paraformer 中文识别 + FSMN-VAD + CT-Transformer 标点),本插件负责「检测/启动/自动部署 VocoType → 读取识别日志 → 去重 → 自动插入输入框」的完整闭环。
%LOCALAPPDATA%\Programs\VocoType)%LOCALAPPDATA%,exe 探测 5 个常见安装位置,换机器可用将本包放入 dsh profile 的 packages/ 目录(例如 C:\Users\<你>\.dsh\profiles\web\packages\voco-input-sh)
在 profile 根目录安装:
cd <你的 profile 目录> # 例如 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 说话,松开┌─────────────┐ 识别完成 ┌──────────────────┐ 写日志 ┌────────────────────────┐
│ VocoType │ ──────────► │ 剪贴板 + Ctrl+V │ ────────► │ %LOCALAPPDATA%\VocoType\│
│ (AltRight) │ │ (粘贴到焦点窗口) │ │ logs\VocoType.log │
└─────────────┘ └──────────────────┘ └───────────┬────────────┘
│ 轮询(600ms, mtime优化)
┌─────────────────────────┐ setDraft(草稿拼接) ┌────────────────────▼─────────┐
│ 输入框(React 受控) │ ◄──────────────────────│ 插件 Client(slot 面板) │
└─────────────────────────┘ │ 草稿包含→跳过(去重) │
│ 未包含→拼接插入 │
└─────────────┬───────────────┘
fetch /dsh-voco-*
┌─────────────▼───────────────┐
│ 插件 Host(webServer 路由) │
│ ensure / baseline / poll │
└────────────────────────────┘
lib/index.js):Node ESM,webServer 注册三条 HTTP 路由(/dsh-voco-ensure、/dsh-voco-baseline、/dsh-voco-poll),node:fs 直读日志、child_process 调 PowerShell 检查/启动/部署 VocoTypelib/client.js):__ModuleLoader__ bundle,slots 注册按钮(conversation.input.right)与面板(conversation.input.dock),fetch 轮询路由,inputActions.setDraft() 写入输入框源码与运行副本(node_modules/voco-input-sh)需保持一致。修改 packages/voco-input-sh/ 下的 package.json、lib/index.js、lib/client.js 后,在包目录执行:
powershell -ExecutionPolicy Bypass -File sync.ps1
然后重启 dsh web 生效。
voco-input-sh/
├── package.json # 包定义(dsh.client 声明)
├── lib/
│ ├── index.js # Host:HTTP 路由(ensure/baseline/poll)
│ └── client.js # Client:按钮 + 录音面板(slots)
├── sync.ps1 # 一键同步到 node_modules
└── README.md
本版本根据三模型安全评估修订:
/dsh-voco-ensure 从 GET 改为 POST,必须携带 /dsh-voco-token 下发的每进程令牌,封堵跨站 <img> 触发「下载+静默安装」。--ssl-no-revoke;安装包固定 SHA-256(5629de8a…02c5c2),下载后先校验、不匹配即删除并中止,杜绝篡改/替换安装包。%LOCALAPPDATA%(回退 homedir/AppData/Local),换机器可用,不再泄漏主机用户名。sync.ps1 后完全重启 dsh web。MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。