dsh-win-pronounce:用本機 Windows 語音讓 DSH 助手開口說話

前言

在 DeepSeek Harness(DSH)裏做智能體或日常對話時,回覆往往只有文字。若希望助手把短句念出來,常見做法是接雲端 TTS 或另開播放器,既多一步配置,也可能把文本送出本機。DSH 社區插件 dsh-win-pronounce 走的是另一條路:只調用 Windows 已安裝的 SAPI 與 OneCore 語音,朗讀過程不出網、不額外調模型。下面介紹它是什麼、怎麼裝、以及使用時要注意什麼。

這是什麼

dsh-win-pronounce 是維護者 Charles516z 發佈的 DSH 客戶端類插件(MIT 許可證,源碼見 GitHub)。它在對話輸入欄工具行裏、權限控件右邊增加一枚喇叭鍵;打開總開關後,宿主會爲助手註冊 speak 工具,助手可用本機 TTS 朗讀短句。音源、語速、音量在彈層裏調整,SAPI 桌面語音與 OneCore 語音可運行時切換。關掉開關時,speak 工具與相關係統提示會從宿主側註銷。

插件目錄頁:SkillHub — dsh-win-pronounce。SkillHub 爲社區獨立目錄,與 DeepSeek / 幻方無官方從屬關係;DSH 本身遵循「一切皆插件」的擴展方式。

核心功能

界面與狀態

  • 喇叭圖標掛在槽位 conversation.input.left,order: 10,緊挨權限控件。
  • 開啓時圖標爲品牌色並帶聲波示意;關閉時爲帶叉的靜音喇叭。
  • 彈層提供:總開關、按 SAPI 桌面語音 / OneCore 語音 分組的音源下拉、語速、音量,以及試聽、停止、刷新。彈層向上展開,點外部或按 Esc 關閉。

助手側行爲

部件 行爲
speak 工具 僅在總開關打開時註冊;調用後助手即可繼續回合,不等待播完
系統提示 開關打開時附帶提示:只念短句,不念代碼和表格
持久化 開關、音源、語速、音量寫入 <profile>/.dsh-win-pronounce.json,重啓後保留

speak 入參只有 text,超過 1200 字符會被截斷;返回 { ok, spoken, voice, error }。

本機 TTS,無網絡

實現只依賴 System.Speech 與 WinRT Windows.Media.SpeechSynthesis,通過 powershell.exe(Windows PowerShell 5.1)運行 assets/voices.ps1(枚舉)與 assets/speak.ps1(發聲)。用戶文本以 base64 傳給腳本,避免引號與編碼問題。一次只播一段,新朗讀會先停掉上一段;「停止」直接結束子進程。語速約 0.6×–1.8×,音量 0–1。

OneCore 與 SAPI 並存的原因在 README 中有說明:例如部分新版中文語音(如 Huihui / Yaoyao / Kangkang)在 SAPI 列表中不可見,需經 WinRT 枚舉;兩條鏈路各自可用,故一併提供。

安裝與啓用

從源碼目錄安裝(路徑換成你本機實際目錄):

dsh plugin add E:\path\to\dsh-win-pronounce

或在 DSH 桌面端:設置 → 插件 中選擇本地目錄安裝,然後在插件列表裏開啓 語音播報 / Voice output。裝完即生效,無需重啓宿主。

安裝前建議自行瀏覽倉庫源碼與 MIT 許可證;插件以當前 DSH 進程權限運行,會啓動本機 powershell.exe 做 TTS。

典型用法

  1. 按上文方式安裝並開啓插件。
  2. 在輸入欄權限控件右側點喇叭,在彈層裏打開總開關,選擇音源並調節語速、音量;可用「試聽」確認效果。
  3. 若系統裏新裝了語音(設置 → 時間和語言 → 語音 → 添加語音),在彈層點「刷新」重新枚舉。
  4. 總開關打開後,助手在合適場景可調用 speak,傳入短句 text;需要立刻靜音時點彈層「停止」或關閉總開關(關閉後 speak 不再可用)。

宿主提供同源 HTTP 路由(POST 需帶 x-dsh-win-pronounce: 1,且 Origin 的 host 與 Host 一致),供前端讀狀態與改配置,例如 GET /dsh-win-pronounce/state、POST /dsh-win-pronounce/config 等,細節見倉庫 README。

適用場景與注意

適合:在 Windows 上本地使用 DSH、希望助手偶爾朗讀短回覆、且不願爲 TTS 單獨接雲服務或外發文本的開發者與用戶。

限制(來自官方 README):

  • 僅 Windows,依賴 .NET System.Speech、WinRT 語音合成與 powershell.exe。
  • 只適合短句;長文本既佔用單個 PowerShell 子進程,也不符合插件設計(系統提示也約束不念代碼和表格)。
  • 一次一段播放,不適合當作長文有聲書引擎。

結尾

dsh-win-pronounce 把 Windows 已有語音接到 DSH 對話流裏:一枚喇叭鍵、一個可開關的 speak 工具、SAPI 與 OneCore 雙源枚舉,全程本機完成。進一步瞭解可查看 SkillHub 目錄頁 與 GitHub 倉庫。

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

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

小夜