dsh-hold-to-talk-plus:DSH 編輯器按住說話,本地或雲端 ASR 轉寫入框

前言

在 DeepSeek Harness(DSH)裏寫提示詞、改草稿時,鍵盤輸入往往打斷思路。原版 dsh-hold-to-talk 已經在 Web composer 上提供「按住鼠標說話、鬆手寫入」的手勢,並可用本機 SenseVoice(sherpa-onnx)離線識別。若你希望改用百鍊、SiliconFlow 或自建 OpenAI 兼容轉寫接口,同時維護術語表與錯詞糾正規則,並把輸入框已有草稿一併交給識別側作上下文,就需要在現有手勢之上擴展 ASR 提供方與配置方式。lcx19970714/dsh-hold-to-talk-plus 即在此基礎上的 fork,包名與 bundle id 仍與上游一致(dsh-hold-to-talk),可作爲 profile 插件替換安裝。

這是什麼

維護者爲 GitHub 用戶 lcx19970714,社區目錄分類爲「模型推理」。插件面向 DSH Web 對話 composer:按住說話、鬆手後把轉寫文本插入草稿;浮動層、「上滑取消」與 60 秒自動結束等行爲與上游一致。相對 dsh-hold-to-talk@0.1.4,本 fork 增加第三方雲端 ASR、用戶詞庫、草稿作上下文提示、設置頁與雲端說話時的實時預覽等能力。許可證爲 MIT(fork 自 wangzhanchao883/dsh-hold-to-talk)。當前資料中的版本號爲 0.1.4-cloud.6,運行時要求 Node ^22.0.0 || >=24。

核心功能

下面按 README 功能對比表歸納已覈實能力。

識別引擎

  1. 本機離線:SenseVoice(sherpa-onnx),與上游相同。
  2. 雲端 ASR:支持 OpenAI 兼容的 /v1/audio/transcriptions,以及阿里雲百鍊兼容端點上的 chat/completions + input_audio(chat-audio 協議)。
  3. 端點協議:根據 URL 自動判斷協議,避免協議與端點不匹配導致的 400。
  4. 失敗回退:雲端調用失敗時自動回退到本機 ASR。

詞庫與上下文

  • 用戶詞庫(wordbank):術語表,以及 correct=wrong1|wrong2 形式的糾正規則;識別結果在本地與雲端路徑上均可做後處理。
  • 草稿作上下文:composer 中已有草稿會作爲 context prompt 參與組裝(雲端側見 cloud-asr.mjs 中的 system prompt 邏輯)。
  • 百鍊說明:在百鍊兼容端點上,ASR 任務會忽略 instruction 式提示;術語表接受但效果有限,可靠糾錯仍依賴 wordbank 的 correct=wrong 規則。

設置與聯調

  • 路徑 Settings → Voice input:選擇提供方預設、填寫 API Key,可先 Test connection 再保存(未保存亦可測);401/403/404/429/超時等會譯爲可讀說明。
  • 雲端實時預覽:按住說話時使用雲端 ASR 時,對尾部窗口約每 2 秒重新解碼一次,便於邊說邊看。

代碼結構(便於對照源碼)

lib/
├─ index.js           # 路由、引擎管理、提示組裝、雲端分支、/settings
├─ client.js          # 按住手勢、浮層、設置頁
├─ asr-worker.mjs     # 本機 sherpa-onnx
├─ cloud-asr.mjs      # WAV 編碼與兩種第三方協議
├─ wordbank.mjs       # 詞庫解析與後處理
└─ settings-store.mjs # ~/.dsh/hold-to-talk/settings.json

預設提供方(資料原文)

Provider Endpoint Model Protocol
Alibaba Cloud Model Studio (BaiLian) https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions qwen3-asr-flash chat-audio
SiliconFlow (free tier) https://api.siliconflow.cn/v1/audio/transcriptions TeleAI/TeleSpeechASR transcriptions
Self-hosted (faster-whisper / whisper.cpp / FunASR gateway) http://127.0.0.1:8000/v1/audio/transcriptions whisper-large-v3 transcriptions
Local offline (no key) — SenseVoiceSmall int8 local

安裝與啓用

本倉庫作爲 DSH profile 插件安裝,是 dsh-hold-to-talk 的直接替換,步驟以倉庫 README 爲準。安裝前請自行閱讀源碼與 MIT 許可證;插件在 DSH 進程權限下運行,API Key 與詞庫會寫入本機配置(如 ~/.dsh/hold-to-talk/settings.json)。

1、獲取源碼並安裝依賴(含 sherpa-onnx 原生運行時)

git clone https://github.com/lcx19970714/dsh-hold-to-talk-plus.git "H:\DSH-鼠標語音輸入"
cd "H:\DSH-鼠標語音輸入"
pnpm install

2、將 desktop profile 指向本地副本

編輯 %USERPROFILE%\.dsh\profiles\desktop\package.json,增加或改爲:

"dsh-hold-to-talk": "link:H:/DSH-鼠標語音輸入"

隨後在 profile 目錄執行依賴安裝(README 給出的 PowerShell 示例):

$node = "$env:USERPROFILE\.dsh\dsh-runtimes\dsh-primary-runtime\dependencies\node\bin\node.exe"
$pnpm = "$env:USERPROFILE\.dsh\dsh-runtimes\dsh-primary-runtime\dependencies\pnpm\bin\pnpm.cjs"
& $node $pnpm install --dir "$env:USERPROFILE\.dsh\profiles\desktop"

3、在 cordis.patch 中註冊插件

編輯 %USERPROFILE%\.dsh\profiles\desktop\cordis.patch.yml,按倉庫內 cordis.patch.yml 與 README.zh.md 填寫 id、name 與 config。

4、重啓 DSH

完全退出 DSH(托盤 → Quit)後重新打開。

5、配置識別提供方

打開 Settings → Voice input,選擇提供方、粘貼 API Key,點擊 Test connection,確認通過後保存。若僅使用本機 local 提供方,則無需 Key。

典型用法

  1. 在 DSH Web composer 輸入區域按住鼠標左鍵,開始說話;需要取消時按上游交互上滑取消。
  2. 鬆手後,轉寫文本插入當前草稿;若已配置 wordbank,錯詞規則會在結果上生效。
  3. 使用雲端提供方時,按住期間可觀察 live preview 的階段性轉寫;超過 60 秒會自動結束一輪。
  4. 在設置頁切換 Provider 或自建 http://127.0.0.1:8000/v1/audio/transcriptions 時,先用 Test connection 確認可達,再保存,避免把錯誤配置寫入 settings.json。

更細的 config 字段與中文說明見倉庫 README.zh.md。

適用場景與注意

  • 適合:長期在 DSH 裏寫提示詞、希望「按住即說」且要在本機離線與多家雲端 ASR 之間切換的開發者;對專有名詞、易混諧音有 wordbank 糾正需求;希望把輸入框已有內容作爲識別上下文的場景。
  • 與上游關係:手勢與 60 秒等行爲未改,差異集中在 ASR 提供方、詞庫、設置頁與雲端預覽;安裝時仍使用包名 dsh-hold-to-talk,勿與未增強的上游包混用 link 目標。
  • 安全與合規:雲端模式會向所選 Endpoint 發送音頻(及 README 描述的 prompt 組裝內容);自建網關時需自行保證網絡與密鑰管理。安裝前審閱 lib/cloud-asr.mjs、lib/wordbank.mjs 等是否符合你的數據策略。
  • 生態說明:DSH 採用「一切皆插件」思路;SkillHub 插件目錄 爲社區站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-hold-to-talk-plus 在保留 DSH 按住說話體驗的前提下,把識別擴展到 OpenAI 兼容與百鍊協議、詞庫糾正、設置頁聯調與雲端預覽,並在雲端失敗時回退本機 SenseVoice。查閱參數與中文文檔請以 GitHub 倉庫爲準。

  • 目錄頁:https://www.skillhub.cn/plugins/lcx19970714/dsh-hold-to-talk-plus
  • 源碼:https://github.com/lcx19970714/dsh-hold-to-talk-plus
羽毛球分组比赛记分
小程序二维码

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

小夜