前言¶
DSH 強調「一切皆插件」。語音播報和語音輸入這類界面能力,可以作爲一個獨立插件接入,而不改 harness 倉庫源代碼。dsh-speech-plugin 解決的就是這個問題:給助手消息增加播報,給輸入框增加麥克風。
這是什麼¶
dsh-speech-plugin 是 DeepSeek Harness 的語音插件,維護者爲 huangdejie,許可證爲 MIT。
它提供三類能力:
- 每條助手消息的播報
- 會話級的自動播報開關
- 輸入框的語音輸入麥克風
播報與語音輸入可分別使用阿里百鍊或火山豆包,也可使用同一家。
核心功能¶
每條消息播報¶
點擊消息操作條的喇叭,會朗讀該條回覆正文。插件會剝離 markdown 與表情符號,跳過代碼塊和圖片。再次點擊可停止。
自動播報¶
會話頭部有喇叭開關。開啓後,新完成的回覆自動朗讀,歷史消息不播。偏好按瀏覽器本地存儲,默認關閉。
自動播報按“新完成”觸發。切換會話期間,舊會話仍在生成的消息完成時也會播報。
語音輸入¶
點擊麥克風開始說話,識別結果即時寫入輸入框草稿。再點一次麥克風可結束併發送,也可以直接點發送。
語音輸入是開放麥克風,不做說話人分離;錄音期間環境人聲也會被識別。
雙引擎組合¶
播報與語音輸入可各自選擇阿里百鍊或火山豆包,也可都走同一家。
雲端憑據缺失、失效或失敗時,播報回退瀏覽器系統音色;語音輸入按鈕會禁用並提示原因。回退的系統音色質量取決於操作系統。macOS 可在系統設置 → 輔助功能 → 朗讀內容中下載增強版中文音色。
安裝與啓用¶
先安裝插件,再配置雲端憑據,最後重啓 dsh 驗證。
安裝¶
使用如下命令安裝:
dsh plugin --profile web add dsh-speech-plugin
也可以從本地目錄安裝。先構建源碼,再使用絕對路徑安裝:
git clone https://github.com/huangdejie/dsh-speech-plugin
cd dsh-speech-plugin && pnpm install && pnpm run build
dsh plugin --profile web add /絕對路徑/dsh-speech-plugin
配置憑據¶
使用阿里百鍊或火山豆包的 key:
export SPEECH_DASHSCOPE_API_KEY=sk-...
# 或
export SPEECH_VOLCENGINE_API_KEY=...
變量名不要寫成 DSH_ 開頭;否則 harness 啓動報錯。配置後重啓 dsh。
憑據注意:
- 阿里百鍊:一個 key 同時用於 TTS 與 ASR;賬戶欠費(Arrearage)會拒一切調用。
- 火山豆包:必須使用控制檯 API Key,不是應用級 Access Token;資源 ID 須與開通版本對應。
驗證¶
打開:
http://127.0.0.1:3080
點擊消息播報,或授權麥克風後開始語音輸入。瀏覽器要求先有一次顯式點擊才允許發聲。
可選配置¶
如果需要分別指定播報和語音輸入引擎,可在 profile 配置中寫 engine 與 asrEngine。配置文件路徑:
~/.dsh/profiles/web/cordis.patch.yml
示例:
engine: dashscope
asrEngine: volcengine
上面表示播報使用 dashscope,語音輸入使用 volcengine。改配置後需重啓 dsh 生效。
查看合成結果:
dsh --profile web --dump-config | grep -A8 dsh-speech
適用場景與注意¶
適合在 DSH web profile 中使用語音播報和語音輸入。插件以獨立方式安裝,不修改 harness 倉庫任何源代碼;但它以當前 dsh 進程權限運行,安裝前建議檢查源碼與許可證。
注意:
- 自動播報只對新完成的回覆觸發,歷史消息不播。
- 切換會話期間,舊會話仍在生成的消息完成時也會播報。
- 語音輸入不做說話人分離,環境人聲也會進入識別。
- 雲端回退的系統音色質量取決於操作系統。
結尾¶
dsh-speech-plugin 將消息播報、自動播報、語音輸入做成一組可配置的 DSH 插件能力,並在雲端不可用時提供系統音色回退。倉庫地址:
https://github.com/huangdejie/dsh-speech-plugin