Skip to content

dsh-voice-say

Verified

dsh-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。

本地(免费离线)

点「一键装环境」,它会:

  1. 建 venv(优先 uv,没有就 python -m venv)
  2. pip install f5-tts faster-whisper soundfile
  3. 下模型 —— 都走国内可达的镜像:F5-TTS 与 whisper 走 ModelScope,声码器走 aifasthub.com (官方 HuggingFace 的 xet 存储在国内会 302 到连不上的主机,这条路不通)
  4. 把参考音频转成 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。