READMESource: main@e6e4980a
dsh-hervoice
DeepSeek Harness(DSH)的语音插件:说话转文字,回复自动朗读。
在聊天输入框右边放一颗麦克风,按一下开始说话、再按一下把语音转成文字填进输入框(不会替你发送,说完还能改);旁边的小喇叭是自动朗读开关,打开后助手每轮回复结束会自动念出来。
语音识别和语音合成都调用 DeepSeek 官方接口:
| 能力 | 接口 | 说明 |
|---|---|---|
| 语音转文字 | POST /v1/tools/asr |
16 位 PCM WAV / Ogg Opus,≤8 MiB、≤120 秒,语种自动识别 |
| 文字转语音 | POST /v1/tools/tts |
音色 stella(女声)/ tide(男声),不支持语速调节 |
API Key 在 设置 → 语音 里填,只保存到本机
~/.dsh/storages/dsh-hervoice/config.json,不会上报、不会转发给第三方。
特性
- 麦克风按钮常驻输入框,点一下录、点一下转写,识别结果用编辑器原生的插入动作写进草稿(可撤销)
- 自动朗读总开关,开 / 关状态跟设置页同步,一轮回复念一段
- 自带 SSE 通道:服务端从
agent/assistant-stream的text-delta帧攒正文,按 attempt 结束后推给页面,不轮询、不抓 DOM - 录音在浏览器侧直接采 16 kHz 单声道并编码成 16 位 PCM WAV,绕开 MediaRecorder 默认出 Opus 的兼容问题
- 只监听回环地址(127.0.0.1 / ::1),不给局域网开放
安装
方式一:从 npm 装(推荐)
dsh plugin --profile web add dsh-hervoice
装完重启 DSH → 设置 → 语音 → 填 Key → 点「试听一句」。
方式二:从仓库源码装
把仓库放进 DSH profile 的插件目录,例如 ~/.dsh/profiles/<profile>/dsh-plugins/dsh-hervoice,然后在该 profile 的 package.json 里登记:
{
"dependencies": {
"dsh-hervoice": "link:<绝对路径>/dsh-plugins/dsh-hervoice"
},
"dsh": {
"profile": {
"bundles": ["...", "dsh-hervoice"]
}
}
}
再让 node_modules/dsh-hervoice 指向插件目录(pnpm install,或 Windows 下直接建 junction):
New-Item -ItemType Junction -Path "$HOME\.dsh\profiles\<profile>\node_modules\dsh-hervoice" `
-Target "$HOME\.dsh\profiles\<profile>\dsh-plugins\dsh-hervoice"
注意:DSH 正在运行时不要动
node_modules(Windows 会锁文件),先退出再改。
使用
- 麦克风:点一下开始录,再点一下结束并转写。录音上限 115 秒,超时自动结束并转写。
- 喇叭:自动朗读开关。开着时每轮助手回复会念一遍,长文按
maxChars(默认 10000)截断。 - 设置 → 语音:填 / 清除 Key,改接口地址(兼容自建代理)、选音色、试听。
已知限制
- 必须自己准备 DeepSeek API Key,并且账号要能用 ASR / TTS 接口(额度、地区限制另算)
- 录音最长 115 秒,超过要分两次说
- TTS 不支持语速调节;音色只有官方给的两个
- 自动朗读是「整轮结束再念」,不是逐字流式念
- 只在 Windows + DSH Web(桌面端)上测过
项目结构
lib/index.js 服务端:配置读写 + /api/dsh-voice/{config,asr,tts,events}
lib/client.js 浏览器端:composer.dock 按钮条 + settings.section 设置页
cordis.patch.yml DSH 插件装载声明
服务端路由:
GET/POST /api/dsh-voice/config—— 读配置 / 改配置(Key 只回「有没有填」,不回原文)POST /api/dsh-voice/asr—— 请求体是裸 WAV,转成 multipart 转发上游POST /api/dsh-voice/tts—— JSON{ "text": "..." },回audio/wavGET /api/dsh-voice/events—— SSE,推送每轮助手正文
隐私
- API Key 明文保存在本机
~/.dsh/storages/dsh-hervoice/config.json,权限靠用户目录 - 插件不收集任何统计,不连接除你配置的
baseUrl之外的地址 - 录音只在内存里处理,转写完就丢,不落盘
License
MIT
No comments yet. Be the first to write one.