huangdejie/dsh-speech-plugin ↗★ 1
dsh-speech-plugin
Speech plugin for DeepSeek Harness: per-message speak button, composer voice input, and auto-announce toggle, over cloud TTS/ASR with Web Speech API fallback
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:huangdejie/dsh-speech-plugin说明文档
阅读完整 README ↗配置
环境变量(共 2 个)
SPEECH_DASHSCOPE_API_KEY=sk-... # 阿里百炼:TTS + ASR
SPEECH_VOLCENGINE_API_KEY=... # 火山豆包:TTS + ASR
放哪都行:harness 仓库根目录 .env(源码运行,与 DEEPSEEK_API_KEY 同处)、~/.dsh/.env(全局安装)、或启动 dsh 的 shell 环境。注意变量名不要写成 DSH_ 开头(如 DSH_SPEECH_*):harness 启动层把 DSH_ 前缀保留为自举命名空间,.env 里出现任何 DSH_* 都会启动报错。
引擎组合(可选,~/.dsh/profiles/web/cordis.patch.yml)
- id: ui-speech
config:
engine: dashscope # 播报:auto | dashscope | volcengine | system
asrEngine: volcengine # 语音输入:auto | dashscope | volcengine | off
engine 与 asrEngine 完全独立。常用组合:
| 想要的效果 | engine | asrEngine | 需要的 key |
|---|---|---|---|
| 全自动(默认,零配置) | auto | auto | 任一家的 |
| 播报阿里 + 输入火山 | dashscope | volcengine | 两家的 |
| 播报火山 + 输入阿里 | volcengine | dashscope | 两家的 |
| 只播报,不要语音输入 | 任意 | off | 对应家的 |
全部可配字段(均有默认值,按需覆盖)
| 字段 | 默认值 | 说明 |
|---|---|---|
engine | auto | 播报引擎,见上表 |
asrEngine | auto | 语音输入引擎,见上表 |
dashscopeModel | qwen3-tts-flash | 百炼合成模型 |
dashscopeAsrModel | paraformer-realtime-v2 | 百炼实时识别模型 |
dashscopeVoice | Cherry | 百炼音色 |
volcengineVoice | zh_female_vv_uranus_bigtts | 火山音色(须 2.0 系;公版音色会报 55000000) |
volcengineResourceId | seed-tts-2.0 | 火山合成资源 ID,须与开通版本一致 |
volcengineAsrResourceId | volc.seedasr.sauc.duration | 火山识别资源 ID:2.0 小时版;1.0 用 volc.bigasr.sauc.duration,并发版把 duration 换 concurrent |
maxTextLength | 8000 | 单条播报字符上限(成本闸门,超出回退系统音色) |
cacheEntries | 64 | 合成结果内存缓存条数 |
改配置后重启 dsh 生效;查看合成结果:dsh --profile web --dump-config | grep -A8 dsh-speech。
使用说明
- 播报:点击消息下的 🔊;长回复边合成边播(首段 1~2 秒出声),同一条重复点击命中缓存即时重放。
- 自动播报:点会话头部喇叭开启(浏览器要求先有一次显式点击才允许发声);换设备/浏览器需各自开启。
- 语音输入:点 🎤 开始,实时看到识别预览;句末自动落定(带标点)。结束方式二选一:再点 🎤,或直接点发送——发送会立即停止收音,屏幕上已识别的文字随消息一起发出。