ByteNoteByteNote

字节笔记本

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

界面里一般有两块:

  1. Voice Cloning:上传或现场录参考音,再填要合成的文本。
  2. 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 再定。

相关链接

装好环境、下完权重,按上面 CLI 或 Web UI 走一遍,一般就能出第一段音频。之后再按项目需要接 Triton,或把参考音管理做成自己的小流水线。

分享: