dsh-voice-say
Verifieddsh-voice-say · v0.1.0 · MIT · Web UI
DSH 插件「语音合成」:用一段参考音频的音色,把任意文字说出来。云端音色复刻(MiniMax / OpenAI 兼容)或本机 F5-TTS 零样本克隆,两条路都行。
Install
dsh plugin add dsh-voice-say Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Readme
dsh-voice-say —— 语音合成(音色复刻)
把任意文字用一段参考音频的音色说出来。两条路:
| 引擎 | 怎么工作 | 需要什么 | 速度 |
|---|---|---|---|
| cloud | 把参考音频上传给服务商做音色复刻,拿到 voice_id 后合成 | 一个 API key(MiniMax 海螺,或任何 OpenAI 风格 /audio/speech 接口) |
秒级 |
| local | 本机 F5-TTS 零样本克隆,完全离线 | 跑一次「装环境」:venv + 约 1.8GB 模型 | CPU 上一句几十秒到几分钟 |
本插件只负责合成,不负责发到哪儿。要在 QQ 里发语音,需要 qq-bridge 那侧的发语音工具(或者自己把 wav 发出去)。
装
dsh plugin --profile <你的profile> add dsh-voice-say
或在 DSH 里 plugin_manager → install_bundle <本目录或 .tgz>。装完刷新页面,设置 → 语音合成。
用
云端(推荐起步)
设置页里选 cloud → 选服务商 → 填 API Key(OpenAI 兼容的还要 Base URL / 模型 / 音色)→ 保存。
MiniMax 那条会把参考音频上传复刻一次,之后复用缓存的 voice_id。
本地(免费离线)
点「一键装环境」,它会:
- 建 venv(优先
uv,没有就python -m venv) pip install f5-tts faster-whisper soundfile- 下模型 —— 都走国内可达的镜像:F5-TTS 与 whisper 走 ModelScope,声码器走
aifasthub.com(官方 HuggingFace 的 xet 存储在国内会 302 到连不上的主机,这条路不通) - 把参考音频转成 24k 单声道并裁到 12 秒,然后用本地 whisper 转写参考文字
装完把参考音频放进 <数据根>/ref/(或脚本参数 node scripts/setup.mjs <参考音频>),写好后设置页里「参考音频 / 参考文字」会变 ✓。
工具与接口
工具:voice_say({ text, provider?, speed? }) → { out, seconds, engine, ... }
GET /api/voice-say/status 状态(引擎、key、本地环境、参考音频)
POST /api/voice-say/config 改配置(存到 <数据根>/config.json)
POST /api/voice-say/synth { text, provider?, speed? }
GET /api/voice-say/audio?name=xxx.wav 取回合成结果(页内试听)
POST /api/voice-say/setup 启动「装环境」(后台跑,日志同下)
GET /api/voice-say/setup 读装环境日志尾巴
POST /api/voice-say/reference { src } 换参考音频:转码(文字仍需转写或手写)
数据放哪
默认 <用户主目录>/.dsh-voice,可用插件配置的 dataRoot 或环境变量 DSH_VOICE_HOME 改:
config.json 设置页写的配置(覆盖插件 patch 里的 config)
venv/ 本地引擎的 Python 环境
models/ f5tts / vocos-mel-24khz / whisper-small
ref/ ref-24k.wav(24k 单声道)+ ref-text.txt(参考文字)
out/ 合成结果
setup.log 装环境日志
已知限制
- CPU 上本地合成慢(一句几十秒到几分钟)。要快就上 GPU(装 CUDA 版 torch)或改用云端。
- 本地克隆质量取决于参考音频:5~15 秒干净人声最好;带伴奏/唱歌的素材会跑偏。
- 「参考文字」如果与实际音频不符,克隆会明显失真 —— 转写不可靠时可以手写
ref-text.txt。 - 云端复刻需要服务商支持(MiniMax 支持上传音频;OpenAI 官方
/audio/speech只能用预置音色)。
许可
MIT。