dsh-senses:爲 DSH 智能體補上眼、口、耳

前言

在 DSH 裏跑智能體,常見做法是純文本對話:用戶打字、模型回字。要看屏幕上的報錯或界面,往往得自己描述或另開工具截圖再粘貼;想讓助手「念出」回覆,或 hands-free 用喚醒詞開聊,通常要再接一套腳本或服務。維護者 Geang-yy 的 dsh-senses 把截屏、本機 TTS、喚醒詞監聽合成一個插件,三項能力可在設置裏分別開關,面向「需要 AI 偶爾看屏、聽完回覆、喊一聲再說話」的本地開發場景。

下面按定位、能力、安裝配置和用法說明,事實均來自倉庫 README 與 package 描述(版本 0.1.0,MIT)。

這是什麼

dsh-senses 是給 DeepSeek Harness 用的社區插件:給 AI 裝上眼睛(按需截屏,不做常駐錄屏)、嘴巴(每條回覆結束後本機朗讀,聲音不外傳)、耳朵(常駐監聽,識別喚醒詞後把那句話送進會話,且只認主人聲紋)。倉庫:https://github.com/Geang-yy/dsh-senses;社區目錄頁:https://www.skillhub.cn/plugins/Geang-yy/dsh-senses。DSH 生態強調「一切皆插件」,目錄站點與 DeepSeek / 幻方無官方從屬關係。

核心功能

眼睛(eye)

需要時截一張屏,看完即結束。可配置寬度、保留最近幾張;超寬屏可用 look(region: "left"|"right"|"top") 只截半屏,在同樣輸出寬度下文字更清晰。look(text: true) 走本機 OCR(Windows 自帶 Windows.Media.Ocr),只返回文字,避免整圖再丟給大模型;look() 返回截圖路徑供自行讀圖。中文 OCR 結果中的多餘空格會清洗,換行保留。

嘴巴(mouth)

每回復完一條就唸出來,使用 edge-tts 等本機合成。可設音色、語速、最長/最短念讀字數;另有 scripts/mood_voice.py 可讀 ~/.dsh/feiyu-mood/state.json 按心情調整句尾語氣詞與語速音調(未裝心情插件時按平靜處理)。

耳朵(ear)

常駐聽麥克風,喊配置的喚醒詞(默認示例爲「小魚」)後將語句送入會話。聲紋未登記前「出廠鎖定」,不認主人之外的人。喚醒詞也可通過 models/keywords.txt 音素序列自定義(需與 models/tokens.txt 對齊)。

安裝與啓用

先安裝 Python 側依賴,再用官方給出的命令加入插件,裝完重啓 DSH:

pip install edge-tts soundfile sounddevice sherpa-onnx faster-whisper opencc-python-reimplemented
dsh plugin add https://github.com/Geang-yy/dsh-senses

裝完必須先登記聲紋(耳朵不認你之前誰喊都不應):

python scripts/enroll.py --device 3

錄約 20 秒平常語速的一段話;一致度 > 0.7 可用,< 0.5 會提示重錄。README 強調不要用 TTS 生成的音頻冒充真人樣本,否則後續鏈路會一直拒真人。

裝完建議跑一次體檢(只讀、不改配置):

python scripts/doctor.py --device 3

逐項檢查依賴、模型、聲紋、麥克風、TTS 是否正常。

在 DSH 配置中指定裝了上述包的 Python 路徑,並開關三項感官。示例結構如下(設備號、路徑按本機修改):

- id: dsh-senses
  name: dsh-senses
  config:
    python: C:\path\to\venv\Scripts\python.exe
    enabled:
      eye: true
      mouth: true
      ear: true
    eye:
      width: 1280
      keep: 10
    mouth:
      voice: zh-CN-XiaoxiaoNeural
      rate: "+4%"
      maxChars: 180
      minChars: 8
    ear:
      device: 3
      wake: 小魚
      autoStart: true

客戶端設置裏有一頁「魚的感官」,三個開關與上述能力對應。

查麥克風設備號:

python -c "import sounddevice; [print(i, d['name']) for i, d in enumerate(sounddevice.query_devices()) if d['max_input_channels']>0]"

不要選「立體聲混音 / Stereo Mix」,那是播放回環而非麥克風。

典型用法

半屏截屏(帶魚屏 / 大屏):

look(region: "left")
look(region: "right")
look(region: "top")

只要文字、省 token 費用時:

look(text: true)
look()

重新登記聲紋或換人、換麥:

python scripts/enroll.py --device 3

適用場景與注意

適合在 Windows 上本地跑 DSH、希望助手能看屏(尤其開發調試界面)、聽完回覆、或喚醒詞 + 聲紋門禁 hands-free 輸入的開發者。README 寫明:眼睛依賴 PowerShell 截屏,嘴和耳朵理論上可跨平臺,但未在 macOS / Linux 上驗證。

插件與腳本在本機以 DSH 進程權限運行,會訪問麥克風、截屏與本地模型;安裝前應閱讀源碼與 MIT 許可證,並自行評估隱私與安全。OCR 與 TTS 均爲本機路徑(Windows OCR、edge-tts),不依賴把截圖再發給雲端讀圖——與「截圖後仍用大模型讀圖」的做法在成本上不同。

維護者在 README 中記錄了喚醒詞 KWS、Whisper VAD、TTS 被麥克風回錄、聲紋樣本錯誤等踩坑與對策,排查時可對照倉庫註釋。

結尾

dsh-senses 把看屏、朗讀、喚醒監聽收進一個可分項關閉的 DSH 插件,並強調真人聲紋登記與裝後體檢。進一步細節與模型文件見 GitHub 倉庫;在 SkillHub 目錄可檢索同名插件條目。

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

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

小夜