字
字节笔记本
2026年8月29日
Spark-TTS:开源语音合成怎么跑
API中转
¥120
想本地跑一版听感自然的开源语音合成,Spark-TTS 值得试。它基于 Qwen2.5,用单一码流拆开语义和说话人信息,不用再叠一层 flow matching,安装和推理路径都比较直。官方仓库:SparkAudio/Spark-TTS,权重在 Hugging Face:SparkAudio/Spark-TTS-0.5B。
它能干什么
Spark-TTS 主打这几件事:
- 零样本音色克隆:给一段参考音频(最好再配上对应文本),就能近似复刻说话人;中英双语,也支持跨语种和代码切换场景。
- 可控生成:不靠参考音也可以按性别、音高、语速等参数捏一个虚拟说话人。
- 结构相对简单:LLM 直接预测码流再还原波形,推理链路比多阶段 TTS 短一截。
论文在 arXiv:2503.01710。模型许可后来改成了 CC BY-NC-SA(非商用、署名、相同方式共享),商用前先看清条款。
环境与安装
官方推荐 Linux + Conda,Python 3.12。Windows 可看仓库里的 Windows 安装讨论。
bash
git clone https://github.com/SparkAudio/Spark-TTS.git
cd Spark-TTS
conda create -n sparktts -y python=3.12
conda activate sparktts
pip install -r requirements.txt
# 国内网络不稳定时可以换镜像:
# pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com下载 0.5B 权重
权重体积不小,提前留好磁盘。任选一种方式:
python
from huggingface_hub import snapshot_download
snapshot_download(
"SparkAudio/Spark-TTS-0.5B",
local_dir="pretrained_models/Spark-TTS-0.5B",
)或用 git-lfs:
bash
mkdir -p pretrained_models
git lfs install
git clone https://huggingface.co/SparkAudio/Spark-TTS-0.5B pretrained_models/Spark-TTS-0.5B命令行推理
仓库自带示例脚本:
bash
cd example
bash infer.sh自己拼参数时,大致是这样(把路径和文本换成你的):
bash
python -m cli.inference \
--text "今天天气不错,我们出去走走吧。" \
--device 0 \
--save_dir "outputs" \
--model_dir pretrained_models/Spark-TTS-0.5B \
--prompt_text "参考音频对应的转写文本" \
--prompt_speech_path "path/to/prompt.wav"要点:
--device 0用第一块 GPU;没有合适显卡时,按仓库说明改成 CPU(会慢很多)。--prompt_speech_path和--prompt_text是零样本克隆用的参考;参考音尽量干净、少噪音、时长别太短。- 输出目录提前建好,跑完听
outputs里的 wav。
Web UI:克隆和捏音色
想少敲命令,可以直接起 Gradio 界面:
bash
python webui.py --device 0界面里一般有两块:
- Voice Cloning:上传或现场录参考音,再填要合成的文本。
- Voice Creation:用性别、音高、语速等控件生成虚拟说话人。
第三方还有一些 CLI / UI 扩展,可在仓库 Issues 里搜到(例如社区整理的替代实现),官方路径优先。
生产侧:Triton 参考实现
要上服务而不是本机试听,仓库 runtime/triton_trtllm 给了 Nvidia Triton + TensorRT-LLM 的参考部署。官方在单卡 L20 上测过一批样例(约 169 秒音频),并发 1/2/4 时 RTF 大约在 0.07–0.14 量级,具体以该目录 README 为准。本地先跑通 CLI,再考虑服务化更稳。
实用建议
- 显存与磁盘:0.5B 对消费级显卡相对友好,但仍建议 16GB 显存档更从容;权重和缓存目录别塞系统盘。
- 参考音质量决定上限:克隆效果差时,先换更干净、更长一点的参考,再改采样率或重录,比盲目调参划算。
- 中英混排:模型宣称支持双语和 code-switching,实际仍建议按场景分段合成,听感更可控。
- 合规:零样本克隆很容易被滥用。只用有授权的声音,别做冒充、诈骗或未授权 deepfake。仓库 Usage Disclaimer 写得很清楚。
- 和 Index-TTS 怎么选:两边都是近期热门开源 TTS。Spark-TTS 强调 Qwen2.5 + 可控属性 + 官方 Triton 参考;若你更关心某一家的接口习惯或样例音色,各自拉仓库听 demo 再定。
相关链接
- 代码:https://github.com/SparkAudio/Spark-TTS
- 模型:https://huggingface.co/SparkAudio/Spark-TTS-0.5B
- 论文:https://arxiv.org/abs/2503.01710
- Demo 页:https://sparkaudio.github.io/spark-tts/
装好环境、下完权重,按上面 CLI 或 Web UI 走一遍,一般就能出第一段音频。之后再按项目需要接 Triton,或把参考音管理做成自己的小流水线。
分享: