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

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

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

小夜