READMESource: main@acbf5ce6
dsh-deepseek-voice
用 DeepSeek 网页版的「朗读」声音把文字念出来,给 DeepSeek Harness 当 TTS 用。
装完 agent 就多一个
say工具:给文字 → 返回音频文件路径。
它怎么工作
say("你好呀")
→ 调 DeepSeek 网页版朗读背后的接口(你在配置里填地址 + 登录凭据)
→ 存成 mp3,返回路径
为什么需要你填接口地址:DeepSeek 网页版的朗读不是公开 API。它的请求只有在你登录网页版、点「朗读」时才会出现。本插件不猜地址,也不内置任何凭据——你自己抓一次,填进配置,插件照着调。
安装
dsh plugin --profile <你的档> add link:/path/to/dsh-deepseek-voice
或手动加进 cordis.patch.yml:
- insert:
- id: mcp-deepseek-voice
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: deepseek-voice
transport: stdio
command: node
args:
- '/path/to/dsh-deepseek-voice/mcp/server.mjs'
toolCallTimeoutMs: 120000
装完重启 DSH。
抓朗读接口(一次就够)
DeepSeek 网页版的朗读不是公开 API,地址/参数/签名会变,所以插件不内置地址——你自己抓一次。
- 打开 https://chat.deepseek.com,登录,发一句话
- 在回复下面找到朗读 / 喇叭按钮
- F12 → Network,过滤
tts或audio - 点朗读,看新出现的那条请求
- 右键 → Copy → Copy as cURL
把抓到的 cURL 存成文件,然后一条命令生成配置:
node scripts/from-curl.mjs --file curl.txt
# 或者直接贴
node scripts/from-curl.mjs "curl 'https://...' -X POST -H '...' --data-raw '...'"
它会自动:
- 解析出 URL、请求方法、全部请求头(含 cookie / authorization)
- 把请求体里那段要念的文字替换成
{text}占位 - 写到
~/.dsh/deepseek-voice/config.json
生成的东西长这样:
{
"DSV_TTS_METHOD": "POST",
"DSV_TTS_URL": "https://chat.deepseek.com/api/v0/...",
"DSV_TTS_HEADERS": { "authorization": "Bearer ...", "cookie": "..." },
"DSV_TTS_BODY": "{\"text\":\"{text}\"}"
}
凭据会过期:过期了重新抓一次,再跑一遍脚本即可。
配置项
| 键 | 默认 | 说明 |
|---|---|---|
DSV_TTS_URL |
— | 朗读接口地址 |
DSV_TTS_METHOD |
POST |
GET 时把文本拼到 query |
DSV_TTS_BODY |
{"text":"{text}"} |
用 {text} 占位 |
DSV_TTS_TOKEN |
— | 鉴权内容,原样塞进请求头 |
DSV_TTS_TOKEN_HEADER |
authorization |
放哪个头 |
DSV_HOME |
~/.dsh/deepseek-voice |
输出目录 |
返回格式
{
"ok": true,
"file": "C:/Users/you/.dsh/deepseek-voice/audio/1793xxxx-你好呀.mp3",
"bytes": 24576,
"mode": "web",
"chars": 3
}
宿主拿到 file 想怎么发就怎么发(QQ 语音条、Discord 附件、直接播放)。
注意
- 接口非公开:DeepSeek 随时可能改路径、加验证。改了就重新抓一次。
- 凭据是你的账号:插件只把凭据用在你自己配的地址上,不会发给第三方;但请别把它提交进 Git。
- 别高频调用:网页版有频控,批量念长文会被限速。
- 本插件不包含任何 DeepSeek 官方授权,仅做本地自动化。
许可
MIT(代码)。DeepSeek 网页版的声音与接口归深度求索所有,请遵守其服务条款。
No comments yet. Be the first to write one.