dsh-dafeiyu-pro:爲大肥魚桌寵補上語音交互的 DSH 客戶端插件

前言

在 DeepSeek Harness 裏做開發,桌面伴侶 dsh-dafeiyu 已經能把 Agent 的思考、改文件、等確認等狀態疊在透明置頂窗口上,還能看餘額。但若希望「叫一聲就聊、查天氣要快、寫代碼再走 Agent」,原版沒有完整的聽與說鏈路。社區維護者 cooleye 在 QCYTSN/dsh-dafeiyu 基礎上做了二次開發倉庫 cooleye/dsh-dafeiyu-pro:保留上游狀態機與桌寵動畫,增加本地喚醒、雲端流式 ASR/TTS,以及閒聊 / 查數據 / 長任務的分級路由。下面按定位、能力、安裝與注意點說明。

這是什麼

dsh-dafeiyu-pro 是 DeepSeek Harness 的客戶端類桌面伴侶插件(package 名 dsh-dafeiyu-pro,當前版本 0.1.23)。README 寫明這是 fork,不是原創:上游 dsh-dafeiyu 由 QCYTSN 開發(MIT);本倉庫在同一協議下疊加語音能力。動畫與狀態顯示仍沿用上游;companion-reducer.js 狀態機核心與上游一致,動畫素材仍來自 PC2005-cloud/dsh-pet(MIT)。

核心功能(以 README 當前進度爲準)

保留的上游能力

  • 透明置頂原生窗口展示 Agent 實時狀態
  • 桌寵動畫、圖標、光標、音效與餘額相關邏輯

語音鏈路(README 標註 Phase 0–4 已完成)

整體交互在文檔中概括爲:喚醒 → 回應 → 聽寫 → 轉寫 → 意圖分流 → 合成播放,並支持流式播放時打斷。

  1. 喚醒(本地)
    默認喚醒詞「大肥魚」,可配置;使用 sherpa-onnx KWS,待命態不觸發雲端。README 記載喚醒 PoC 實測 3/3 命中。

  2. 語音識別(雲端流式)
    阿里雲 paraformer-realtime-v2;VAD 斷句,支持連續多段(文檔記載 6 段識別正確、會話不串)。

  3. 語音合成(雲端流式)
    阿里雲 Qwen-TTS / MiniMax;按句切分、逐句播放。雲端失敗時可回落本地 TTS(規劃說明中有寫)。

  4. 意圖分流(三級)
    | 路徑 | 典型觸發 | 處理方式 |
    |------|----------|----------|
    | chat | 寒暄、情緒 | 直連 LLM,文檔記載約 0.5~1s 量級 |
    | data | 天氣、新聞等 | LLM + 搜索等工具,約 1~2s |
    | task | 寫文檔、改代碼等 | 交給 DSH agent,先墊場再異步執行 |

設計動機在 README 中寫得很直接:統一走 Agent 時簡單問候也要等數十秒,體驗差;分流後快路徑保持低延遲,慢路徑用墊場話。

  1. 長期記憶
    README 中 Phase 5 爲「未開始」,正文能力以當前已跑通鏈路爲準,不當作現成特性承諾。

技術選型摘要

層面 選型
桌面殼 PySide6 (Qt6),沿用上游
插件層 Cordis (DSH)
喚醒 sherpa-onnx KWS
ASR 阿里雲 paraformer-realtime-v2
TTS 阿里雲 Qwen-TTS
音頻採集 sounddevice (PortAudio)
意圖 規則 + 小模型兜底

詳細設計見倉庫內 docs/VOICE-DESIGN.md,測試說明見 docs/TESTING.md。

安裝與啓用

插件在 DSH 桌面 profile 下以 link 模式 安裝,便於改代碼實時生效。官方 README 給出的命令如下(將佔位符換成你本機克隆或解壓後的倉庫絕對路徑):

dsh plugin --profile desktop add link:<本倉庫絕對路徑>

前置環境(開發或本地構建時):Node.js ≥ 22.19、Python ≥ 3.10、pnpm。若需在本機構建各平臺 helper,可使用 npm run build:helper:windows / build:helper:linux / build:helper:darwin;日常開發亦可 npm run helper:visual 直接起帶窗口的 helper(見 README「開發環境」)。

典型用法與配置預期

README 未給出單獨的 dsh plugin config 字段清單于本摘抄片段;語音能力依賴雲端 ASR/TTS 與 LLM,使用前需在倉庫說明與 docs/ 中核對所需密鑰與模型名。文檔提示:部分模型在特定 key 上可能 429,默認傾向使用 qwen-flash 等可用型號。

交互流程可復現爲文檔中的完整鏈路:

  1. 說「大肥魚」→ 本地 KWS 命中 → 回應「我在」
  2. 進入聽寫,雲端流式轉寫用戶語句
  3. 經意圖分流走 chat / data / task 之一
  4. TTS 流式合成並播放,可中途打斷

在 Windows 上,README 特別說明:MME / DirectSound / WASAPI 可能被其他程序(含 DSH 自帶語音輸入)獨佔,項目已對 WDM-KS 做自動降級,排音頻問題時可對照該說明。

驗證質量可不依賴麥克風:npm test 與 npm run test:python(README 記載 17 個自動化用例可在不聯網、不用麥克風下通過)。

適用場景與注意

適合誰:已在用或打算用 dsh-dafeiyu 桌寵、希望同窗口內保留 Agent 狀態展示,同時用喚醒詞驅動閒聊、查實時信息、把重活交給 DSH agent 的桌面用戶。

權限與安全:與其它 DSH 插件一樣,插件邏輯隨當前 DSH 進程權限運行;安裝前請閱讀源碼、LICENSE 與 ASSET_LICENSE.md(區分 MIT 源碼與已移除的受限 legacy 素材說明)。

生態說明:DeepSeek Harness 奉行「一切皆插件」;SkillHub 目錄頁 是社區站點,與 DeepSeek / 幻方無官方從屬關係。本倉庫爲社區獨立分支,問題可先查上游 issue,再查本 fork。

進度邊界:fork 聲明中部分表格將「意圖分流」「長期記憶」標爲規劃中,與「當前進度」表並存時,以實現狀態表(Phase 4 完成等)爲準;上游未合併前,語音相關 bug 需以本倉庫 issue 爲主。

結尾

dsh-dafeiyu-pro 在不大動上游桌寵與狀態機的前提下,把「叫大肥魚 → 聽 → 分流 → 說」串成可測鏈路,適合想給 DSH 桌面加語音入口的開發者與用戶。進一步細節與實測數據見 GitHub 倉庫 與 SkillHub 插件頁。

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

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

小夜