dsh-voice:DSH 的 TTS 與 STT 插件

前言

在 DSH 的智能體流程中,文本輸出很常見,但語音場景往往需要額外處理:文字要合成語音時,要關心音色、請求參數和輸出文件;音頻要轉文字時,要關心 ASR 端點、密鑰、語言和結果落盤。

dsh-voice 把這幾件事收進 DSH 插件:提供 voice_tts、voice_stt 和 voice_list 三個工具,覆蓋文字合成 MP3、音頻轉文字和常用音色清單。

這是什麼

dsh-voice 是一個 DSH 語音雙件套插件,定位是給 agent 增加 TTS 與 STT 工具能力。

  • 項目倉庫:https://github.com/STARDUSTLC666/dsh-voice
  • 已覈實資料中的 owner 爲 STARDUSTLC666;資料中同時出現 stardustlc 表述,但未明確兩者是否爲同一人或主維護者。
  • 許可證爲 MIT。
  • 在 @deepseek-ai/dsh@0.1.2-alpha.2 上驗證(2026-08-31)。
  • 運行時不 import 任何 @deepseek-ai/* 內部模塊。
  • Node 要求爲 Node >=22。
  • 實現上使用原生 WebSocket,並提供插件級代理。

核心功能

下面介紹插件提供的三個工具。

voice_tts:文字合成 MP3

voice_tts 用於把文本合成爲 MP3(免費)。text 爲必填參數;voice、rate、pitch、output 爲可選參數。

voice_tts { text: 今天的 AI 早報來了 } # 曉曉女聲,輸出 voice_output.mp3
voice_tts { text: hello, voice: en-US-AriaNeural } # 英文女聲

已覈實資料說明,voice_tts 零配置可用;合成走 edge-tts 協議直連,並本地生成 Sec-MS-GEC 令牌。

voice_stt:音頻轉文字

voice_stt 用於把音頻轉成文字。audio 爲必填參數;engine、model、language、prompt、output 爲可選參數。

voice_stt { audio: E:\audio\meeting.mp3, language: zh } # 轉寫會議錄音

該工具需要 ASR 密鑰。它支持 OpenAI 兼容 ASR 接口,可指向 Groq、OpenAI 或自定義端點;密鑰推薦改用環境變量 DSH_VOICE_ASR_KEY。

voice_list:音色清單

voice_list 用於返回常用音色清單,方便選擇 voice_tts 的 voice 參數。

voice_list {}

安裝與啓用

先確認運行環境滿足 Node >=22,再執行:

dsh plugin --profile web add dsh-voice

執行上面的命令後,即可在 DSH 工具調用中使用下面三個示例。如果後續使用 voice_stt,建議把 ASR 密鑰放入環境變量 DSH_VOICE_ASR_KEY,而不是把密鑰寫進日常配置裏。

適用場景與注意

適合的場景:

  • 在 DSH agent 中直接把文本轉成 MP3,例如生成早報語音。
  • 在 DSH agent 中把會議錄音等音頻轉成文字。
  • 需要快速查看可用音色,再調整 voice_tts 參數。

使用時注意:

  • voice_tts 零配置可用;voice_stt 需要 ASR 密鑰。
  • 插件會對輸入做前置校驗:文本不超過 5000 字符,音頻不超過 25MB。
  • 輸出文件同名時會自動加序號。
  • 卸載後需要重啓 Web 服務;如需徹底清理,可再手動刪除自己 profile cordis.patch.yml 中覆蓋的插件行。
  • 插件會以當前 dsh 進程權限運行。安裝前建議檢查源碼、依賴和 MIT 許可證。
  • DSH 的插件生態強調“一切皆插件”,社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-voice 的價值在於把 TTS、STT 和音色清單放進 DSH 插件工具鏈中,減少 agent 語音輸入輸出所需的膠水代碼。

項目倉庫:https://github.com/STARDUSTLC666/dsh-voice

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

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

小夜