🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

语音输入助手 Nothree-code/voco-input-sh

DeepSeek Harness
Nothree-code51 天前有提交已提供中文文档扫描:含敏感能力

点麦克风说话,识别文字自动填入聊天输入框

31.6/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

该插件未发布到 npm,按作者文档从 GitHub 源安装即可(静态检查只覆盖 npm 路径,不代表插件不可用)。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Nothree-code/voco-input-sh
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 51 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包voco-input-sh(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 18:53:39

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 5 处,展示前 5 条)
  • 读取本地文件
    lib/index.js:65
    const buf = await readFile(logPath());
  • 读取本地文件
    lib/index.js:66
    const st = await stat(logPath());
  • 发起网络请求
    lib/client.js:19
    return fetch("/dsh-voco-" + m + (p ? "?" + new URLSearchParams(p) : ""), ctl ? { signal: ctl } : undefined).then((r) => r.json());
  • 发起网络请求
    lib/client.js:26
    if (!TOKEN_P) TOKEN_P = fetch('/dsh-voco-token').then((r) => r.json()).then((d) => { if (d && d.token) TOKEN = d.token; return TOKEN; }).catch(() => '
  • 发起网络请求
    lib/client.js:32
    return fetch('/dsh-voco-ensure', {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 点麦克风语音输入
  • 识别文字自动填入
  • 本地离线识别

README

由 DeepSeek 最新模型翻译生成
voco-input-sh DeepSeek Harness(dsh web)持久语音输入插件:在聊天输入框旁提供麦克风按钮,弹出录音面板,把本地语音识别软件 VocoType 的识别结果自动插入输入框。 基于 VocoType(开源离线语音输入,Paraformer 中文识别 + FSMN-VAD + CT-Transformer 标点),本插件负责「检测/启动/自动部署 VocoType → 读取识别日志 → 去重 → 自动插入输入框」的完整闭环。 功能特性 - 🎙 麦克风按钮:输入框工具行右侧,千问风格图标,hover 高亮、录音中红点呼吸 - 🪟 录音面板:输入框上方弹出,波形动画 + 状态提示 + 累计计数(已插入 N 条) - 🚀 自动准备引擎:检测 VocoType 进程 → 未运行自动启动 → 未安装自动下载官方安装包(NSIS 静默安装到 %LOCALAPPDATA%\Programs\VocoType) - ✂️ 防重复插入:VocoType 会把文字粘贴到焦点窗口,插件插入前检查草稿是否已包含该文本,避免双份 - 🔁 持续输入:点一次按钮开始,连续说多句全部自动插入,再点按钮结束 - 🔧 错误重试:面板出错时提供「重试」按钮 - ⚡ mtime 优化轮询:日志文件无变化时不重复读取
展开完整文档(README 剩余 1 节)
voco-input-sh

DeepSeek Harness(dsh web)持久语音输入插件:在聊天输入框旁提供麦克风按钮,弹出录音面板,把本地语音识别软件 VocoType 的识别结果自动插入输入框。

基于 VocoType(开源离线语音输入,Paraformer 中文识别 + FSMN-VAD + CT-Transformer 标点),本插件负责「检测/启动/自动部署 VocoType → 读取识别日志 → 去重 → 自动插入输入框」的完整闭环。

功能特性

- 🎙 麦克风按钮:输入框工具行右侧,千问风格图标,hover 高亮、录音中红点呼吸
- 🪟 录音面板:输入框上方弹出,波形动画 + 状态提示 + 累计计数(已插入 N 条)
- 🚀 自动准备引擎:检测 VocoType 进程 → 未运行自动启动 → 未安装自动下载官方安装包(NSIS 静默安装到 %LOCALAPPDATA%\Programs\VocoType)
- ✂️ 防重复插入:VocoType 会把文字粘贴到焦点窗口,插件插入前检查草稿是否已包含该文本,避免双份
- 🔁 持续输入:点一次按钮开始,连续说多句全部自动插入,再点按钮结束
- 🔧 错误重试:面板出错时提供「重试」按钮
- ⚡ mtime 优化轮询:日志文件无变化时不重复读取
- 🔄 日志轮转自适应:VocoType 重启或日志轮转后自动重设读取游标,不会出现「说了话却不再插入」
- 💾 路径动态探测:日志路径基于 %LOCALAPPDATA%,exe 探测 5 个常见安装位置,换机器可用

安装

1. 将本包放入 dsh profile 的 packages/ 目录(例如 C:\Users\\.dsh\profiles\web\packages\voco-input-sh)
2. 在 profile 根目录安装:

cd # 例如 C:\Users\\.dsh\profiles\web
pnpm add "file:./packages/voco-input-sh"

3. 在 cordis.patch.yml 添加挂载行:

- insert:
- id: voco-input-sh
name: 'voco-input-sh'

4. 重启 dsh web,麦克风按钮自动出现在聊天输入框工具行。

依赖项:需要 pnpm。VocoType 会自动部署,无需预装(首次会自动下载约 25MB 安装包并静默安装,模型约 1.6GB 由 VocoType 首次启动时下载)。

使用

1. 点击输入框右侧 🎙 按钮 → 弹出录音面板(波形动画 +「按住 AltRight 说话」)
2. 按住 AltRight 说话,松开
3. 识别文字自动插入输入框(若 VocoType 已粘贴到输入框则自动去重)
4. 连续说多句会全部按顺序插入;再点按钮(或面板 ✕)结束

工作原理

┌─────────────┐ 识别完成 ┌──────────────────┐ 写日志 ┌────────────────────────┐ │ VocoType │ ──────────► │ 剪贴板 + Ctrl+V │ ────────► │ %LOCALAPPDATA%\VocoType\│
│ (AltRight) │ │ (粘贴到焦点窗口) │ │ logs\VocoType.log │
└─────────────┘ └──────────────────┘ └───────────┬────────────┘
│ 轮询(600ms, mtime优化) ┌─────────────────────────┐ setDraft(草稿拼接) ┌────────────────────▼─────────┐ │ 输入框(React 受控) │ ◄──────────────────────│ 插件 Client(slot 面板) │ └─────────────────────────┘ │ 草稿包含→跳过(去重) │ │ 未包含→拼接插入 │ └─────────────┬───────────────┘ fetch /dsh-voco-* ┌─────────────▼───────────────┐ │ 插件 Host(webServer 路由) │ │ ensure / baseline / poll │ └────────────────────────────┘

- Host(lib/index.js):Node ESM,webServer 注册三条 HTTP 路由(/dsh-voco-ensure、/dsh-voco-baseline、/dsh-voco-poll),node:fs 直读日志、child_process 调 PowerShell 检查/启动/部署 VocoType
- Client(lib/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 ├── CHANGELOG.md # 版本变更记录 └── README.md

DSH 兼容性

已验证宿主版本:dsh 0.1.5-rc.2。

本插件依赖的宿主契约及核对结果:

| 依赖面 | 契约 | 0.1.5-rc.2 |
| 清单 | dsh.client.platform = "web" + exports["./client"] | 未变 |
| 客户端 bundle | window.__ModuleLoader__.load({ id, factory }) | 未变 |
| 插槽 | conversation.input.right、conversation.input.dock | 仍存在 |
| 插槽 props | InputZone = { session, input }、InputState.draft、inputActions.setDraft(text) | 未变 |
| Host 路由 | webServer.register({ kind: 'exact', path, handler }) | 未变 |
| 客户端 inject | 插件对象必须声明 inject: ['slots', 'timer'] | v0.2.2 修复 |

⚠️ 客户端必须声明 inject。若只导出 apply,cordis 不会等待服务就绪就调用它,
ctx.get('slots') 会拿到 undefined,插件便静默注册不出任何 UI(按钮消失,控制台也没有报错)。
v0.2.1 及更早版本正是踩了这个坑,v0.2.2 已修复。同机对照:dsh-prompt-enhancer 声明了
inject: ['timer'],所以不受影响。

已知行为边界:

- 输入框里的引用 chip 会降级为纯文本。DSH 0.1.5 的输入框会把 @文件 引用渲染成 chip,而本插件通过
inputActions.setDraft() 整体替换草稿——这是当前唯一的公开写入路径,因此草稿里已有的 chip 会被写回成
它的文本形式。文字内容不会丢失,只失去 chip 外观。
- 语音插入依赖 VocoType 的日志格式(session_id=… text=… 替换次数=N)。VocoType 升级若改动日志格式,需要同步更新 lib/index.js 的 parseEntries。

相关项目

- 233stone/vocotype-cli — VocoType 开源语音输入引擎
- DeepSeek Harness — 本插件的宿主环境

安全加固(v0.1.1 起)

本版本根据三模型安全评估修订:

- 部署操作改 POST + anti-CSRF token:/dsh-voco-ensure 从 GET 改为 POST,必须携带 /dsh-voco-token 下发的每进程令牌,封堵跨站 触发「下载+静默安装」。
- 供应链加固:下载链路移除 --ssl-no-revoke;安装包固定 SHA-256(5629de8a…02c5c2),下载后先校验、不匹配即删除并中止,杜绝篡改/替换安装包。
- Origin/Sec-Fetch-Site 守卫:全部 3 条路由拒绝跨站请求与外来 Origin。
- 去掉硬编码用户路径:日志路径完全基于 %LOCALAPPDATA%(回退 homedir/AppData/Local),换机器可用,不再泄漏主机用户名。
- GBK 日志回退:日志按 UTF-8 读取失败时自动改用 GBK 解码,中文识别不再乱码。
- 执行超时:PowerShell 调用加 180s 超时,安装器卡住不再挂起路由;客户端 ensure 请求 120s 超时。
- 升级方式:同步 sync.ps1 后完全重启 dsh web。

版本历史

见 CHANGELOG.md。当前版本 v0.2.2 —— 修复客户端漏声明 inject 导致的「麦克风按钮不显示」。

License

MIT
预览分享卡片长什么样 ↓Nothree-code/voco-input-sh
分享 · DeepSeek Harness Hub
Nothree-code/voco-input-sh

点麦克风说话,识别文字自动填入聊天输入框

这是你的仓库?认领条目

回到顶部