dsh-voice-mode:DSH 會話內的全雙工語音輸入與按句朗讀

前言

在 DeepSeek Harness(DSH)裏做智能體對話,常見做法是鍵盤輸入或外掛第三方語音識別服務。前者在長對話、移動場景下不夠順手;後者往往要單獨申請 API Key、把音頻或文本送到雲端,成本和隱私邊界也要自己管。若希望在同一會話界面裏完成「邊說邊出字 → 編輯或自動發送 → 回覆按句朗讀並可開口打斷」,且識別在宿主端本地推理、不必爲 ASR 再配密鑰,社區維護的客戶端插件 dsh-voice-mode 就是針對這條鏈路做的集成。下面按安裝、操作和配置說明其能力與邊界。

這是什麼

dsh-voice-mode(倉庫 qishuilalala/dsh-voice-mode)是 DSH 的全雙工語音插件:流式語音識別寫入可編輯草稿,文本合成按句朗讀並帶實時字幕,朗讀過程中可發聲打斷;可選喚醒詞待機。維護者爲 qishuilalala,在 SkillHub 等社區目錄中歸類爲客戶端插件。識別使用宿主端 zipformer2 流式 + SenseVoice 定稿(含 ITN 等),無需額外語音 API Key;朗讀默認走 Edge 雲端(訪問微軟在線服務),也可選本地 VITS(偏中文)或 Kokoro(中英混讀),合成在宿主端完成。宿主 LLM 的密鑰、網絡與費用仍由 DSH 自身配置決定。

插件以 npm 包 dsh-voice-mode 發佈(資料中當前版本 0.7.34,MIT 許可證);package.json 聲明宿主兼容範圍爲 dsh >=0.1.1-rc.2 <0.3.0-0,Node >=18。README 註明已對 dsh 0.2.1-rc.5 做過兼容複覈,但不等於所有設備上的麥克風閉環或跨平臺均已驗收。

核心功能

語音輸入與發送

進入語音模式後,麥克風採集經客戶端 VAD 分段,partial 結果約 0.9s 級別流式出字並可在字幕浮層展示;定稿在宿主端完成。默認行爲(可調):停頓約 1500ms 斷句進草稿,再靜音約 1.2s(合計約 2.7s)自動發送;按住 Ctrl 可強制立即發送。

朗讀、字幕與打斷

模型回覆經句子切分進入 TTS 隊列,按句朗讀,字幕跟隨。AI 朗讀時用戶開口可打斷(效果受設備、回聲消除與噪聲影響;不可靠時可改用「按住說話」)。設置中的 讓位語義(backchannelYield,默認開)可在朗讀期對短反饋詞(如「嗯」「對」)讓位約 1.5s,避免誤打斷。

交互模式

支持持續聆聽、按住說話、說完就關(mode: once:一句 → 自動發送 → 讀完回覆後退出)等;朗讀範圍可選僅在語音模式朗讀、總是朗讀(readAloud: always,打字消息也可讀,代碼塊會跳過)或關閉。麥克風按鈕可顯示聆聽/朗讀狀態條,右鍵可切換交互模式、朗讀範圍、字幕、狀態條等(詳見 README 操作表)。

無障礙與細節

字幕字號 captionFontSize、寬度 captionMaxWidth 多檔可調;讀屏相關優化在版本說明中有單獨條目。喚醒詞待機、語氣詞白名單等用於減少誤觸發。

安裝與啓用

安裝命令以 README「快速開始」爲準:

dsh plugin --profile web add dsh-voice-mode
# 安裝到 web profile 後,按實際部署方式重啓宿主

首次使用會下載識別相關模型,耗時取決於網絡與硬件。插件聲明爲 web 客戶端注入(dsh.client.platform: web),需在對應 profile 下安裝並重啓宿主後再試。

典型用法

  1. 進入任一會話,按 Ctrl+Shift+V 或點輸入區麥克風按鈕進入語音模式,狀態條顯示「聆聽中…」(應用內快捷鍵可在設置中修改)。
  2. 說一句完整的話(例如「幫我看看今天的天氣」)→ 實時字幕出現,停頓後進草稿、靜音片刻後自動發送。
  3. AI 開始按句朗讀時,可嘗試發聲打斷,確認朗讀停止及後續轉寫是否符合預期。

輸入框內快捷鍵:光標在輸入框時 Alt+Enter(Mac 爲 Option+Enter)進入/退出語音模式且不插入換行,對應設置鍵 composerShortcut,留空可禁用。

按住麥克風按鈕:空閒時按住即錄,鬆手發送;等回覆讀完(若開啓朗讀)後自動退出;等待或朗讀期間單擊麥克風可停止朗讀並完全退出。完整手勢表見 GitHub README。

配置入口與常用項

通用入口:DSH 設置(Settings)→ 語音模式(Voice Mode)。

dsh 版本 次要入口 設置存放
≤ 0.1.5 設置 → Plugins → 插件配置 → 語音模式 dsh 官方設置存儲
0.1.6-alpha 及以後 左側 Plugins → 已安裝的 dsh-voice-mode → 詳情頁「語音模式」卡片 0.1.6:官方設置存儲;0.1.7+(含 0.2.0):~/.dsh/voice-mode.settings.json($DSH_HOME 下),優先級高於 profile 中同名鍵

設置生效分即時、下次識別、下一段話、下次進入語音模式等檔位;卡片頂部會列出「已保存但未生效」項。常用鍵示例:

用途 鍵 默認
數字/日期/貨幣規範化 senseITN true
靜音斷句時長 silenceMs 1500
讓位語義 backchannelYield true
字幕字號 / 寬度 captionFontSize / captionMaxWidth 0 / 1
Edge 語速 / 空閒退出 rate / idleTimeoutMinutes 1.1 / 5

完整設置項(README 稱共 29 項)見倉庫內 使用說明。

適用場景與注意

適合:希望在 DSH Web 會話裏用語音完成整輪對話、減少單獨 ASR 服務配置、需要按句朗讀與字幕、並能在朗讀中打斷的開發者或日常用戶。

務必知曉:

  • 插件在當前 dsh 進程權限下運行;安裝前應查看源碼與 MIT 許可證,自行評估信任邊界。
  • 默認 Edge 朗讀依賴微軟在線服務;離線或隱私敏感場景應改用本地 VITS/Kokoro,並接受首次模型下載與硬件性能差異。
  • README 明確區分「CI/兼容聲明」與「真實聽感、麥克風閉環、跨平臺」——不存在「所有設備都能精準打斷」或「後續所有宿主版本自動兼容」的承諾;升級宿主或插件前可看 CHANGELOG 與 兼容契約。
  • DSH 生態強調「一切皆插件」;SkillHub 目錄頁 爲社區收錄,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-voice-mode 把本地流式識別、草稿編輯、按句 TTS 與打斷收進 DSH 會話,默認安裝命令爲 dsh plugin --profile web add dsh-voice-mode。進一步說明、架構圖與 Demo 見 GitHub 倉庫 與 SkillHub 插件頁。

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

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

小夜