dsh-hold-to-talk:DeepSeek Harness Web 输入框的本地长按语音输入

前言

在 DeepSeek Harness 的插件生态中,Web profile 的语音输入往往需要调用外部 API 或依赖云端服务。dsh-hold-to-talk 插件提供了一个无需密钥、完全离线的语音输入方案。它复用了微信桌面版“长按说话”的交互逻辑:在输入框按住鼠标,说话,松开将文本写入草稿。识别完全在本地运行,音频不会离开机器。

是什么

这是一个为 DeepSeek Harness Web composer 提供本地语音输入能力的客户端插件。由 wangzhanchao883 维护。它通过 sherpa-onnx 调用 SenseVoice 模型,在浏览器端完成实时语音识别。

核心功能

  • 长按说话交互:在输入框上按住鼠标静止 ≥400ms 开始录音,松开将文本插入草稿。
  • 本地识别:使用 sherpa-onnx 运行 SenseVoice 模型,无需 API 密钥,离线运行,音频不离开机器。
  • 实时预览:录音时浮层显示实时转录文本,仅作为预览,不写入草稿。
  • 取消机制:录音过程中上滑或按 Esc 键可取消。
  • 自动完成:按住超过 60 秒自动完成录音并插入。
  • 线程优化:解码运行在 Web Worker 线程中,避免阻塞主线程。

安装与配置

安装

确保已安装 DeepSeek Harness 并运行 Web profile(dsh web),执行以下命令:

dsh plugin --profile web add dsh-hold-to-talk

安装后重启 dsh web 并刷新页面(Ctrl+Shift+R)。

配置

插件的默认配置位于 profile 的 cordis.patch.yml 文件中。在 dsh-hold-to-talk 项下添加 config 字段即可覆盖默认值:

- id: dsh-hold-to-talk
  name: dsh-hold-to-talk
  config:
    holdThresholdMs: 400     # 长按触发阈值
    cancelSlidePx: 60        # 上滑取消距离
    interimIntervalMs: 1500  # 实时预览间隔
    maxWindowSec: 6          # 预览解码窗口
    minHoldMs: 250           # 最小触发时间(防误触)
    maxHoldMs: 60000         # 最大自动完成时间
    autoSend: false          # 是否自动发送(默认仅插入)
    language: auto           # 语言模式
    useItn: true             # 是否启用逆文本归一化
    numThreads: 2            # 引擎线程数

典型用法

  1. 开始录音:在 DSH Web 的输入框上按住鼠标,保持静止 ≥400ms。此时会弹出一个浮层,显示“松开发送 · 上滑取消”。
  2. 说话与预览:说话过程中,浮层实时显示转录文本(预览)。文本不会立即写入输入框。
  3. 插入文本:松开鼠标,浮层中的完整文本会被插入到输入框的草稿中。
  4. 取消录音:录音过程中上滑 >60px,或按 Esc 键,可取消本次录音。
  5. 自动完成:按住超过 60 秒,录音自动完成并插入文本。
  6. 预取模型:首次使用会自动下载模型(约 230MB)。若需提前下载,可在插件目录执行:
npm run model:fetch

注意事项

  • 环境要求:DeepSeek Harness 必须运行在 Web profile 下(dsh web)。宿主机器需安装 Node.js >=22.19 或 >=24。
  • 浏览器兼容:需要 Chromium 内核浏览器(Chrome/Edge),并允许麦克风权限。
  • 磁盘占用:首次运行需下载模型文件,占用约 230 MB 磁盘空间。
  • 预览与草稿:浮层显示的“实时转录”仅为预览,不会写入草稿。只有松开鼠标后的完整音频解码结果才会被插入。
  • 重采样机制:音频重采样总是从样本 0 开始,不支持增量式重采样。

总结

dsh-hold-to-talk 通过本地化 ASR 和 Web Worker 解码,为 DSH Web 提供了轻量级、隐私友好的语音输入能力。对于需要在本地处理敏感数据或离线工作的场景,该插件提供了可行的解决方案。

插件目录:https://www.skillhub.cn/plugins/wangzhanchao883/dsh-hold-to-talk
GitHub:https://github.com/wangzhanchao883/dsh-hold-to-talk

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜