dsh-dafeiyu-emotion:給 DSH 加一隻聽得懂語氣的魚耳

前言

先交代背景。DSH 生態裏插件是主要擴展方式,「一切皆插件」,你想改的交互幾乎都有人做。做智能體開發的人常碰到的一個小麻煩是:指令寫得夠全,語氣沒過去。同樣一句「這邊這樣改一下,但那報錯先別動」,崩潰和興奮在模型眼裏是同一段文字,回覆風格也千篇一律。想讓對方先響應你當下的狀態,沒有穩定的入口,逐次手動描述又太假。

lidu-china/dsh-dafeiyu-emotion 就是衝着這件事來的。它是社區目錄裏一個不起眼的小插件:維護者 LiDu-china,目錄分類「模型推理」,GitHub 兩顆星,倉庫自帶的英文簡介是一句:Voice + emotion-aware companion for DeepSeek Harness。下面介紹它的具體做法。

這是什麼

這是一個給 DeepSeek Harness 使用的語音情緒插件。作者把它定位成一個可解釋的情緒估計器,而不是「讀心」工具:做的是語音轉寫加聲學/文本情緒估計,然後把估計結果當作回覆風格的參考。

它在 DSH 輸入框旁邊加了一個「🐋 魚耳」按鈕,流程是:

  1. 點擊魚耳,說一句話;
  2. 插件在本機完成語音轉寫;
  3. 瀏覽器端計算韻律特徵(語速、停頓、基頻、音高波動、能量),服務端再融合小型中英文情緒詞表;
  4. 把「用戶原話 + 情緒上下文」填入當前會話並自動發送;
  5. 回覆模型先承接情緒再回答問題,桌面大肥魚繼續顯示工作狀態。

作者明確強調,插件只增加一段帶邊界的情緒上下文,要求模型「自然承接、不要複述分析、不要聲稱讀心」。

核心功能

能力分兩塊看:情緒輸出和注入方式。

情緒輸出方面,插件給出七類標籤——喜悅、低落、生氣、緊張、驚訝、厭煩、平靜——同時給出 confidence(置信度)、valence(愉悅度)、arousal(喚醒度)和一段語氣摘要。多段語音的情緒時間線也能看,每段文本、情緒和置信度都可懸停查看。

注入方式方面,默認把帶情緒上下文的 prompt 填入 composer 並自動發送,回覆直接出現在對話裏。失敗路徑也寫了:如果情緒分析失敗,插件會保留明確錯誤,不會假裝成功。

其它已覈實的能力點:

  • 設置頁註冊了完整卡片,可調啓用開關、語言、增強後端、超時和錄音上限,卡片頂部實時顯示當前模式;
  • 設置頁有隱私與運行狀態面板,能看到最近音頻大小、模型加載狀態、worker PID 和臨時文件清理;
  • 本機提供 /context 接口,其他插件可以讀取最近一次情緒上下文;
  • 支持 DSH 原生語音快捷鍵;
  • 安裝了 Better Sidebar 之後,可以把「情緒耳朵」固定到右側邊欄;
  • 大肥魚桌面角色由依賴 dsh-dafeiyu(0.1.23)提供 companion 能力,本插件負責「聽覺與情緒」這一半。

兩種分析模式

輕量模式是默認,面向插件市場安裝:

  • 用 DSH 自帶的 Voice Input / SenseVoice 做轉寫;
  • 瀏覽器端計算韻律特徵,服務端融合小型中英文情緒詞表;
  • 不需要 Python、GPU 或額外的模型路徑。

增強模式可選,面向本機已有「語音轉文本」/ VoiceSense 項目的人:把 backendRoot 指向該項目根目錄,轉寫走 SenseVoice,聲學情緒走 emotion2vec,再用 BERT + 詞典 + 韻律做融合,輸出更細的逐句情緒和時間線。插件不重新下載模型,也不修改 VoiceSense 項目,只是啓動一個常駐 worker 複用已有環境。

安裝與啓用

插件已經收錄到 1024Store(獨立站點,與 DeepSeek / 幻方無官方從屬關係),也可以在 DSH 的插件市場 / Discover 裏按包名搜索。

最簡單是走 npm:

dsh plugin --profile desktop add dsh-dafeiyu-emotion

DSH Web 使用 --profile web。

也可以走 GitHub 源:

dsh plugin --profile desktop add github:LiDu-china/dsh-dafeiyu-emotion

或下載 Release tarball 後用本地路徑安裝,當前包版本 0.3.2:

curl -L -o dsh-dafeiyu-emotion-0.3.2.tgz \
  https://github.com/LiDu-china/dsh-dafeiyu-emotion/releases/download/v0.3.2/dsh-dafeiyu-emotion-0.3.2.tgz
dsh plugin --profile desktop add "D:/path/to/dsh-dafeiyu-emotion-0.3.2.tgz"

DSH Desktop 的 profile 由 Electron 應用管理;命令行安裝請使用桌面應用自帶的 dsh 命令。

裝完先啓用 dsh-dafeiyu-emotion。輕量模式還要再做一步:打開 DSH 左側「插件」,找到 Voice Input,啓用它,然後進入詳情下載或準備 SenseVoice 模型。如果 Voice Input 尚未準備完成,插件會直接提示,不會靜默降級,也不會把音頻上傳。

典型用法

輕量模式的典型用法只是一個按鈕。打開任意普通會話,點輸入框旁的「🐋 魚耳」,說一句話;插件完成本地轉寫和情緒估計,把帶情緒上下文的 prompt 填入 composer 並自動發送。ttsOnlyAfterVoice 默認爲 true,也就是說只有錄音後兩分鐘內的回覆纔會被朗讀,純打字對話裏大肥魚不會搶話。

增強模式只多一個配置步驟,在 DSH profile 配置覆蓋層裏把 backendRoot 指向 VoiceSense 項目根目錄:

- id: dsh-dafeiyu-emotion
  config:
    backendRoot: D:/path/to/voice-sense

也可以用環境變量:

DSH_DAFEIYU_EMOTION_BACKEND=D:/path/to/voice-sense

可配置字段不少,挑幾個跟日常使用關係大的列出來,完整表見倉庫 README:

字段 默認值 說明
backendRoot 空 VoiceSense 項目根目錄;空則使用 DSH Voice Input 輕量模式
pythonPath 空 自定義 Python;空則自動尋找 .venv-ser
language zh zh / en / auto
empathyStyle gentle gentle / direct / humorous / concise
ttsEnabled true 是否朗讀大肥魚回覆
ttsEngine piper piper 本地 / edge 在線 / browser 系統語音
ttsVoice zh-CN-XiaoyiNeural Edge TTS 音色
maxAudioBytes 12 MB 單次錄音大小上限
startupTimeoutMs 180000 首次加載增強後端的最長等待
requestTimeoutMs 180000 單次分析請求超時

保存後配置會立即寫入 DSH 設置,路徑或超時變化時會自動重啓語音 worker。

大肥魚語音回覆

助手回覆生成後,插件通過本機事件流把文本交給 TTS,讓大肥魚把回覆讀出來。默認是 Piper 本地模型,音色 zh_CN-huayan-medium,不聯網,延遲低:

python -m pip install piper-tts

模型放到默認目錄:

~/.dsh/dafeiyu-emotion/tts/piper/zh_CN-huayan-medium.onnx
~/.dsh/dafeiyu-emotion/tts/piper/zh_CN-huayan-medium.onnx.json

也可以在設置頁填自定義 Piper 模型路徑。模型缺失或合成失敗時自動回退到瀏覽器 speechSynthesis,不會讓回覆靜默丟失。更自然的在線音色可以切到 Edge TTS,默認音色 zh-CN-XiaoyiNeural;Edge 需要網絡,回覆文本會發送到 Microsoft,網絡或服務不可用時同樣回退到瀏覽器語音。

語音快捷鍵

插件向 DSH 註冊了一個原生快捷鍵命令,在「設置 → 快捷鍵 → 搜索『大肥魚語音』」即可改鍵。默認值:

客戶端 默認快捷鍵
DSH Desktop(Windows / Linux / macOS) Alt+V
DSH Web(Windows) Ctrl+Alt+V
DSH Web(macOS) Cmd+Option+V
DSH Web(Linux) 默認未綁定,需在快捷鍵設置中指定

空閒時按一次開始錄音,錄音中再按一次結束並分析。快捷鍵必須至少包含 Ctrl、Alt、Shift 或 Cmd 等修飾鍵,不能綁定裸字母鍵。

隱私與注意

磁盤和隱私約束是它寫得比較完整的地方。音頻不進入 Session 事件或附件,只有最終文本和情緒摘要會進入對話;分析期間的 WAV 走系統臨時目錄,請求結束即刪除。默認全本地:不讀取屏幕,不常駐監聽麥克風,只在點擊魚耳後錄音;客戶端單次錄音上限 30 秒。插件不自動執行語音裏的命令,也不把情緒預測當成醫學或心理診斷。

選擇 TTS 引擎時注意一條邊界:ttsEngine 切成 edge 之後,回覆文本不在本地,會發送到 Microsoft 做語音合成。切之前先確認這條能不能接受。

其它需要留意的點:

  • 增強模式首次啓動要加載 SenseVoice、BERT 文本模型和 emotion2vec,通常十幾到幾十秒;之後 worker 常駐,熱請求通常在一秒內;
  • 本插件代碼爲 MIT,桌面角色與基礎 companion 能力來自 dsh-dafeiyu,語音識別來自 SenseVoice,聲學情緒來自 emotion2vec,均按各自許可使用,作者聲明本項目不是 DeepSeek 官方項目;
  • 插件以當前 DSH 進程權限運行,裝之前建議先把源碼和許可證過一遍,確認目錄、音頻路徑和依賴項在你環境的可獲取性;
  • 情緒判斷不準時,作者給的建議是靠近麥克風、減少環境噪聲、一次只說一兩句、儘量用完整自然句,並把它當回覆風格參考,而不是讀心或診斷。

結尾

想給 DSH 的輸入補上聲音和情緒線索,又不能接受音頻被送到雲端,這個插件值得裝來試。輕量模式門檻最低,只需要啓用 DSH 自帶的 Voice Input,不需要 Python、GPU 或額外模型路徑,代價是聲學估計只有一個基礎檔位,細粒度的逐句情緒和時間線要上增強模式,而增強模式要求你先有一個可用的 VoiceSense 環境。開增強模式之前,先把 README 與源碼讀一遍。

  • 目錄頁:https://www.skillhub.cn/plugins/LiDu-china/dsh-dafeiyu-emotion
  • GitHub:https://github.com/LiDu-china/dsh-dafeiyu-emotion
羽毛球分组比赛记分
小程序二维码

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

小夜