dsh-voice-conversation:DSH 免提意英語音對話

前言

在 DSH 裏做智能體開發,常見交互仍是鍵盤輸入:切到瀏覽器、打字、等回覆,再決定是否繼續追問。若希望「對着麥克風說、停頓後自動提交、聽完助手朗讀再繼續說」,需要客戶端側把採集、停頓檢測、提交與會話 UI 串起來;可選地還要本地 STT/TTS,避免把語音明文送到未配置的遠端。

下面介紹社區插件 dsh-voice-conversation(維護者 redhunt07):面向 DSH web profile 的客戶端插件,支持意/英免提對話、內聯對話 dock,以及可選的本地 Whisper/Piper 後端。插件以 MIT 許可發佈;Voice Loop 相關代碼源自 ZG2017 的 fork 說明見倉庫 NOTICE.md。目錄頁:skillhub.cn/plugins/redhunt07/dsh-voice-conversation;源碼:github.com/redhunt07/dsh-voice-conversation。DSH 生態強調「一切皆插件」;社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

這是什麼

dsh-voice-conversation 是 npm 包名,當前發佈版本 0.1.2。一句話定位:在 DSH 聊天裏開啓 Voice Mode 後,用戶說話、停頓約 1.7 秒即提交 prompt;助手最終口頭回復播完後,在同一麥克風流上繼續監聽。緊湊的 composer dock 保留原生聊天、工具與 DSH 提供的 Think 輸出(展示的是 DSH 暴露的推理片段,而非模型私有推理)。

README 寫明在 DSH 0.2.0-rc.2、Node.js 22+、Linux web profile 上做過測試;其他 DSH 版本、操作系統與瀏覽器需自行驗證。麥克風需 localhost 或 HTTPS 及瀏覽器授權;建議戴耳機,減輕外放回聲觸發「說話打斷」。

核心功能

免提對話與 dock

  • 在會話中啓用 Voice Mode 並授權麥克風;dock 顯示 listening、processing、speaking 等狀態。
  • 助手回覆僅在 agent 結束後朗讀;中間 tool-step 文本會跳過。
  • 可在播放回復時開口打斷;審批類請求仍在普通聊天裏,可能需要點擊確認。
  • 關閉 Voice Mode 釋放麥克風。

語言與語音

  • 識別在意語與英語間自動選擇;合成語音需在界面選擇:paola(意語)或 lessac(英語)。輸出語言不會隨識別自動切換。
  • 可在插件設置裏配置 local/cloud 兩個端點槽位;默認均指向 localhost。無隱式遠端回退,也不會自動從環境讀取 API key。

默認本地端點(需可選後端運行):

  • http://127.0.0.1:8766/v1/audio/transcriptions
  • http://127.0.0.1:8766/v1/audio/speech

STT 接受 multipart file 與 model,返回 JSON {text}。TTS 接受 JSON {model,input,voice,lang_code,response_format:"mp3"},返回 MP3 字節。

可選本地後端

不裝後端時,插件仍可在配置了兼容遠端 STT/TTS 時使用;倉庫提供的 Python 運行時在本機處理音頻,綁定 127.0.0.1:8766,DSH 須與本機同機,由 host 代理音頻;瀏覽器源請求會被拒絕。本地進程可無認證訪問該端口,需保持端口不對外暴露。

Voice Mode 激活時 Native Think 區塊會展開一次;手動摺疊會被尊重。更細的活動可在 DSH 全局設置裏選 verbose transcript、detailed usage,插件不覆蓋這些偏好。

與舊版 Voice Loop 互斥

README 要求:若曾安裝舊 Voice Loop bundle,先禁用。兩插件佔用相同 API 路徑,不能同時運行。

安裝與啓用

插件隨 DSH web profile 安裝,不自動安裝後端、全局 transcript 偏好或後臺服務。安裝前建議瀏覽源碼與 MIT 許可證;插件在當前 DSH 進程權限下運行。

安裝當前 npm 發佈版:

dsh plugin --profile web add dsh-voice-conversation

固定已驗證版本:

dsh plugin --profile web add dsh-voice-conversation@0.1.2

也可使用 0.1.1 預構建歸檔(等價安裝方式,見 README):

dsh plugin --profile web add https://raw.githubusercontent.com/redhunt07/dsh-voice-conversation/main/dist/dsh-voice-conversation-0.1.1.tgz

dsh plugin 會選取 bundle。請確認 $DSH_HOME/profiles/web/package.json(通常爲 ~/.dsh/profiles/web/package.json)裏的 dsh.profile.bundles 中 dsh-voice-conversation 只出現一次;若缺失則手動補上並保留既有條目。完成後重啓 DSH,瀏覽器硬刷新。

卸載:從 bundle 移除條目,執行 dsh plugin --profile web remove dsh-voice-conversation,再重啓 DSH;運行時數據與共享模型緩存不會自動刪除。

典型用法

1. 僅客戶端(遠端或後續再配本地端點)

  1. 按上一節安裝並重啓 DSH。
  2. 打開任意 DSH 聊天,開啓 Voice Mode,允許麥克風。
  3. 在識別/合成選項中選擇 local 或 cloud(兩槽位可在插件設置中改爲兼容的遠端 URL 與憑據)。
  4. 選擇合成音色 paola 或 lessac,開始說話;停頓約 1.7 秒後 prompt 提交。

2. 本地 Whisper / Piper 後端

先解壓源碼包並進入目錄。依賴:python3、uv、PATH 上的 ffmpeg。setup 會創建隔離的 Python 3.12 環境(必要時經 uv 下載解釋器),並下載約 3.1 GB 的 pinned Whisper/Piper 模型;安裝前請閱讀 NOTICE.md。

CPU 示例:

python3 scripts/runtime.py setup --device cpu
python3 scripts/runtime.py start

Linux 上若有兼容 CUDA 12 驅動與足夠顯存(README 在 16 GB GPU 上測過),可用:

python3 scripts/runtime.py setup --device cuda
python3 scripts/runtime.py start

保持前臺進程運行;Ctrl+C 停止。數據目錄默認 ~/.local/share/dsh-voice-conversation,可用 --data-dir PATH 覆蓋。Whisper 使用標準 Hugging Face 緩存。檢查配置與服務:

python3 scripts/runtime.py doctor

0.1.1 起可選 Kokoro TTS(setup 額外下載約 354 MB ONNX 與 voice bank,README 截斷處仍指向 --tts kokoro)。Whisper large-v3 在 CPU 上可能較慢。

適用場景與注意

適合:在 DSH web 端做意/英口語式調試、演示或長時間 hands-free 迭代;希望 STT/TTS 明確走本機或自配遠端、而非插件隱式聯網的場景。

限制與隱私(摘自 README):

  • 隨附本地後端在內存中處理音頻,不保存錄音或 transcript 日誌;轉寫後的 prompt 與回覆仍進入 DSH 正常會話歷史,並隨所選聊天模型的數據處理策略走。顯式配置的遠端語音端點會收到音頻/文本。
  • 停頓與 barge-in 基於音頻能量,非語義判停;環境噪聲、增益與回聲會影響體驗。單次錄音上限 120 秒;音頻請求超時 90 秒;播放有 watchdog,過長回覆可能被截斷。Voice Mode 下會向模型請求更 concise 的回答。
  • setup 需要網絡;模型緩存完成後本地識別/合成可離線。聊天模型仍可使用遠端 provider。
  • README 稱自動化測試覆蓋 VAD、dock、連續回覆、tool-step 過濾、TTS 失敗等;真實房間麥克風仍須在穩定公開發布前自行驗證。0.1.1 爲 initial release candidate 表述。

結尾

dsh-voice-conversation 把 DSH web 聊天擴展爲可停頓提交的意/英免提循環,並用 dock 保留工具與 Think 可見性;需要完全本地語音鏈路時,可疊加 127.0.0.1:8766 上的可選 Python 運行時。安裝與版本以 npm 0.1.2 與 README 命令爲準。

  • 目錄頁:https://www.skillhub.cn/plugins/redhunt07/dsh-voice-conversation
  • GitHub:https://github.com/redhunt07/dsh-voice-conversation
  • npm:https://www.npmjs.com/package/dsh-voice-conversation
羽毛球分组比赛记分
小程序二维码

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

小夜