DeepSeek Harness 語音對話插件介紹

前言

DeepSeek Harness (DSH) 提供了插件化擴展能力。在 Web 端開發時,如果希望爲對話界面增加語音交互功能,通常需要編寫後端服務或引入外部語音 SDK。該插件通過瀏覽器原生的 Web Speech API,實現了純客戶端的語音識別與朗讀(TTS)功能,無需服務端支持,也不需要配置 API Key。

插件定位

  • 名稱:lak321/dsh-voice-chat
  • 一句話描述:DeepSeek Harness 語音對話插件,支持語音輸入與自動/手動朗讀回覆。
  • 維護者:lak321
  • 類別:客戶端
  • 許可證:MIT

核心功能

  • 語音輸入:利用 Web Speech API 進行語音識別,支持普通話、粵語、臺灣國語、英語。識別結果實時顯示在輸入框中,支持編輯後發送。
  • 朗讀回覆:集成瀏覽器 TTS 引擎,支持對 AI 回覆進行朗讀。提供自動朗讀功能(默認開啓),通過消息序號判斷新舊消息,避免歷史消息重複朗讀。
  • 語音設置:支持選擇人聲、調節語速(0.5~2.0)與語調(0~2.0)。
  • 文本清理:自動剝離 Markdown 標記(如粗體、斜體、代碼塊、標題等),防止 TTS 朗讀出“星號星號”等噪音。
  • 數據持久化:所有設置通過 localStorage 保存,刷新頁面後保留。
  • 架構特點:純客戶端插件,無服務端依賴,無 API Key 需求。

安裝與啓用

該插件僅兼容 DSH Profile: web。

使用官方命令安裝(git 源,產物已入庫,無需構建):

dsh plugin --profile web add "github:lak321/dsh-voice-chat#<commit>&path:/"

安裝完成後需要重啓 DSH 進程(例如運行 npx -y @deepseek-ai/dsh web)。

注意:舊的手動複製 client/ 目錄並注入 cordis.patch.yml 的方式已廢棄。

典型用法

  1. 語音輸入:點擊輸入框旁的按鈕說話,識別後的文字會自動填入輸入框,可編輯後直接發送。
  2. 朗讀回覆:每條 AI 回覆旁會出現朗讀按鈕,點擊即可朗讀該條消息。系統默認開啓自動朗讀,新回覆生成時會自動朗讀。
  3. 設置調整:在設置面板中,可以關閉自動朗讀,選擇人聲,或調整語速和語調。

開發與注意事項

  • React Hook 規範:如果涉及 React 開發,props.useSession 必須在組件函數體頂層調用,不能在 onClick 等事件處理函數中調用,否則會報錯。
  • 導出要求:Client 插件必須導出 exports.inject 才能使用 ctx.slots。
  • 運行機制:插件通過 ctx.slots.inject 註冊 slot 到 conversation.input.left 和 conversation.chat.assistant-actions,通過 SpeechRecognition 和 speechSynthesis 實現核心邏輯。

結語

該插件爲 DSH Web 界面提供了輕量級的語音交互能力,適合需要在瀏覽器端直接使用語音功能的場景。

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

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

小夜