在 DeepSeek Harness(DSH)的開發中,當智能體僅以文本形式回覆時,交互往往顯得單調。開發者希望爲 Web UI 增加語音能力,讓智能體不僅能說,還能主動發送語音便籤。dsh-voice 插件正是爲此設計的解決方案。
這是什麼¶
這是一個由 Lorodn4x 維護的 DSH 客戶端插件。它利用 Edge TTS 爲 DSH 網頁 UI 提供了兩個核心能力:瀏覽器端的語音播放按鈕,以及 Agent 主動調用 voice_say 發送語音消息的功能。無需 API 密鑰,直接使用微軟 Edge 語音合成。
核心功能¶
插件通過 Node-端和瀏覽器端兩部分協作實現語音功能:
- Agent 工具:在
ctx.tools中註冊了voice_say(text, voice?)工具。Agent 可以調用此工具主動發送語音消息。 - HTTP 路由:在
ctx.webServer上註冊了POST /dsh-voice/tts路由,接收{text, voice}參數並返回audio/mpeg格式的音頻數據,供瀏覽器端調用。 - 文本清理:在合成語音前,會自動移除 fenced 代碼塊、縮進代碼、行內代碼、URL、HTML 標籤、表格和標題,僅保留可讀文本。
- 瀏覽器端渲染:在
conversation.chat.turnTail插槽中渲染播放器、聽取按鈕和語音切換器。
安裝與啓用¶
安裝插件需要將代碼路徑添加到配置中,並確保配置項正確寫入。
- 執行安裝命令,將插件鏈接到 Web 配置文件:
dsh plugin --profile web add --save link:/путь/к/dsh-voice
*(注意:命令中的路徑需替換爲實際代碼路徑)*
-
在 DSH 配置文件中添加
"dsh-voice"到dsh.profile.bundles列表中。 -
重啓配置:安裝完成後必須重啓當前使用的配置(Profile),因爲工具和路由運行在宿主進程中。
典型用法¶
1. Agent 主動發送語音¶
Agent 在執行任務時,可以通過調用 voice_say 工具發送語音回覆。例如:
ctx.tools.voice_say('你好')
2. 用戶聽取語音¶
瀏覽器端渲染的界面會顯示「聽取」按鈕。用戶點擊後,系統會合成文本並播放。切換語音時,聽取按鈕會重新合成文本(不同語音的緩存是獨立的)。
3. 語音配置¶
默認語音爲俄語。若需使用其他語言,Agent 或用戶需通過 voice 參數使用完整的 Edge TTS ShortName,例如:
- ru-RU-DmitryNeural (男性)
- ru-RU-SvetlanaNeural (女性)
適用場景與注意¶
適用場景:
- 需要 Web UI 具備語音交互能力的開發者。
- 希望智能體能主動通過語音發送便籤的場景。
注意事項:
- 權限與網絡:語音合成需要訪問 speech.platform.bing.com。
- 緩存位置:生成的音頻文件會緩存於 $DSH_HOME/voice-cache/<sha1>.mp3。
- 許可證:本項目採用 MIT 許可證。
總結¶
dsh-voice 通過複用 Edge TTS 引擎,爲 DeepSeek Harness 的 Web UI 補齊了語音交互能力。開發者可以直接通過 Agent 工具或瀏覽器端按鈕使用語音功能,無需配置複雜的 API 密鑰。更多細節可查看插件目錄或源碼:GitHub。