dsh-tts-flash
DSH voice reader: read LLM replies aloud as they stream. Edge-tts built-in, any OpenAI-compatible cloud TTS plugs in via the settings panel, plus a voiced waiting-phrase ticker while the model thinks.
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:2021Heei/dsh-tts-flash说明文档
阅读完整 README ↗使用
引擎
- Edge TTS(默认):零配置,音色几十种(晓晓/云希/小艺…),「语音模型」下拉选择即可
- 添加云端引擎:设置面板「云端引擎」按钮 → 弹窗填 baseURL、API Key、模型 id(别名可选,默认与模型 id 一致)→ 点「添加」。模型 id 必须与厂商文档完全一致(如 MiMo 全小写)
- 也可以不经过面板:往
~/.dsh/tts-flash/engines/放一个 JSON 声明:
{
"id": "my-engine",
"label": "我的引擎",
"kind": "openai",
"url": "https://api.example.com/v1",
"apiKey": "sk-...",
"model": "tts-model-id",
"stylePrompt": "可选:音色描述/风格指令(voicedesign 类模型需要)"
}
- API Key 保存在本机
~/.dsh/tts-flash/engines/(单用户本机场景);请勿把该目录内容分享给他人
等待期语音
AI 思考(已开始生成但还没有音频)时,浮条每 2.6~3.5 秒轮换一条短语并同步朗读(文字与语音由 host 统一驱动,显示什么就说什么):
- 语音文件缓存在
~/.dsh/tts-flash/cache/thinking/-.p.mp3,首次用到自动补齐整池,之后直接回放 - 「等待期语音模型」可独立选择发声引擎(默认 Edge 小艺 zh-CN-XiaoyiNeural);「批量生成语音」可预生成;「清理语音文件」删除全部
- 短语池在
src/thinking-phrases.ts(5 条),host/client 共享,改完短语后请重新生成音频文件 - 第一句正文出现时短语循环立即停止,无缝切换为正文朗读
语音设置面板
| 控件 | 行为 |
|---|---|
| 朗读开关 | 与朗读管线实时同步(SSE 广播) |
| 语音模型 | 自动检测(Edge)+ 各引擎,实时探测可用性 |
| 人声 | 跟随模型刷新(edge 拉微软实时列表) |
| 语速 | -75% ~ +200%;edge 服务端封顶 +100%,MiMo 式引擎翻译为自然语言控速指令 |
| 音量 | 0% ~ 200%,≤100% 播放端衰减,>100% edge 走 SSML 增益 |
| 字幕流光/字号 | 两个渐变色 + 流光速度 + 字号(10~30px),即时同步 |
| 云端引擎 | 二级弹窗添加/说明;选中引擎后可编辑音色描述、删除引擎 |
| 等待期语音 | 独立发声引擎选择 + 批量生成/清理 |
| 悬浮条位置 | 可拖动 + 「设为默认」/「重置」 |
| 试听区 | 预设文案 + 自由输入 + 测试朗读 |