Spark‑TTS 部署避坑全攻略(Ubuntu 24.04 + Conda + RTX 40 系)

适用对象:零基础也想本地跑出第一句 TTS 的同学。

运行环境:Ubuntu 24.04 × CUDA 12.x × RTX 4090(同理可迁移到 30/20 系或纯 CPU)。


1 硬件 & 软件环境

类别 版本 备注
OS Ubuntu 24.04 其它发行版通用
GPU Driver 570.xx 保证 nvidia‑smi 正常
CUDA Toolkit 12.4 / 12.8 与驱动对应即可
Conda 24.3 推荐 Miniconda/Mamba
Python 3.12 (Conda) requirements 与官方兼容

检查脚本

python 复制代码
nvidia-smi     # GPU 与驱动
python - <<'PY'
import torch, platform, sys
print(torch.__version__, torch.version.cuda, torch.cuda.is_available())
PY

2 项目克隆与依赖安装

bash 复制代码
# 1️⃣ 克隆仓库
mkdir -p ~/tts && cd ~/tts
git clone https://github.com/SparkAudio/Spark-TTS.git
cd Spark-TTS

# 2️⃣ 创建并激活 env
conda create -n sparktts python=3.12 -y
conda activate sparktts

# 3️⃣ 安装 PyTorch(CUDA 12.1 为例)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# 4️⃣ 安装项目依赖
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

⚠️ 坑 1:pip install 过程卡在 Gradio 依赖

  • 症状:安装速度极慢或卡死。
  • 解决 :切换国内源、加 --timeout 600;必要时分两次安装(PyTorch 与其他包分开)。

3 下载 0.5 B 预训练模型

ini 复制代码
pip install -U huggingface_hub tqdm

# 若在中国大陆网络 ↓
export HF_ENDPOINT=https://hf-mirror.com

python - <<'PY'
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id="SparkAudio/Spark-TTS-0.5B",
    local_dir="pretrained_models/Spark-TTS-0.5B",
    resume_download=True,
    local_dir_use_symlinks=False
)
print("✅ 模型下载完成")
PY

⚠️ 坑 2:HuggingFace 下载报 SSL / Connection reset

  • 症状:下载时断连或 0 KB/s。
  • 解决
    1. 使用镜像域名 HF_ENDPOINT=https://hf-mirror.com
    2. 或离线拷贝别人已下载的 pretrained_models 文件夹。

4 命令行快速推理

bash 复制代码
export PYTHONPATH=$(pwd):$PYTHONPATH   # 每次启动前执行,或写入 ~/.bashrc

python -m cli.inference \
  --text "你好,Spark‑TTS 部署成功!" \
  --gender female --pitch moderate --speed high \
  --model_dir pretrained_models/Spark-TTS-0.5B \
  --device 0 \
  --save_dir outputs

生成的 outputs/YYYYmmddHHMMSS.wav 能播放即成功。

⚠️ 坑 3:TypeError: Invalid file: None

  • 原因 :未同时提供 --gender / --prompt_speech_path 任意一组参数。
  • 修复
    • Voice Creation :指定 --gender --pitch --speed
    • Voice Cloning :提供 --prompt_speech_path snd.wav(16 kHz WAV)+ 可选 --prompt_text

5 启动 Gradio Web UI

css 复制代码
python webui.py \
  --model_dir pretrained_models/Spark-TTS-0.5B \
  --device 0 \
  --server_name 0.0.0.0 --server_port 7860

本机浏览器 http://127.0.0.1:7860;远程使用服务器 IP 访问。

⚠️ 坑 4:TypeError: argument of type 'bool' is not iterable

  • 根因:Gradio ≤ 5.18 与 pydantic ≥ 2.11 不兼容。
  • 两种修复方案
    1. 降 pydantic
arduino 复制代码
pip uninstall -y pydantic && pip install "pydantic==2.10.6"
    1. 升 Gradio(≥ 5.24 已修复)
arduino 复制代码
pip install -U "gradio>=5.24.0"

6 显存占用与优化

选项 作用 显存消耗
--device -1 纯 CPU 推理 0 GiB(超慢)
默认 fp32 全精度 ~3.5 GiB
torch.cuda.set_per_process_memory_fraction(0.3,0) 限制显存百分比 自控

RTX 4090 + fp32 单句推理 ≈ 2 s;fp16 改源码或 ONNX 导出可进一步减至 1 s 级。


7 常见报错速查表

报错片段 触发场景 解决方案
Missing tensor: mel_transformer.* 正常提示,可忽略 ------
CUDA out of memory Vram 不够 关闭占用进程 / 限显存 / CPU 推理
ValueError: When localhost is not accessible 远程服务器无本机回环 --server_name 0.0.0.0--share

8 完整命令清单

bash 复制代码
# 克隆 & 环境
conda create -n sparktts python=3.12 -y && conda activate sparktts
git clone https://github.com/SparkAudio/Spark-TTS.git && cd Spark-TTS
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

# 下载模型
export HF_ENDPOINT=https://hf-mirror.com   # 可选
python - <<'PY'
from huggingface_hub import snapshot_download;snapshot_download(repo_id='SparkAudio/Spark-TTS-0.5B',local_dir='pretrained_models/Spark-TTS-0.5B',resume_download=True,local_dir_use_symlinks=False)
PY

# 降 pydantic(或升 gradio)
pip install 'pydantic==2.10.6'

# 推理
export PYTHONPATH=$(pwd):$PYTHONPATH
python -m cli.inference --text "Hello" --gender female --pitch moderate --speed high --model_dir pretrained_models/Spark-TTS-0.5B --device 0 --save_dir outputs

# Web UI
python webui.py --model_dir pretrained_models/Spark-TTS-0.5B --device 0 --server_name 0.0.0.0 --server_port 7860

9 结语

到此,一个 本地离线、显存友好、支持语音克隆的 Spark‑TTS 环境就全部搞定。把踩坑笔记分享到朋友圈 / 公众号,让更多小伙伴少走弯路吧!


作者最后更新:2025‑04‑25

相关推荐
FIT2CLOUD飞致云15 小时前
AI智能问数能力全面升级,DataEase开源BI工具v2.10.13 LTS版本发布
开源
FIT2CLOUD飞致云15 小时前
九月月报丨MaxKB在不同规模医疗机构的应用进展汇报
人工智能·开源
算家计算16 小时前
AI配音革命!B站最新开源IndexTTS2本地部署教程:精准对口型,情感随心换
人工智能·开源·aigc
OpenTiny社区17 小时前
OpenTiny NEXT 内核新生:生成式UI × MCP,重塑前端交互新范式!
前端·开源·agent
幂简集成explinks21 小时前
e签宝签署API更新实战:新增 signType 与 FDA 合规参数配置
后端·设计模式·开源
控心つcrazy1 天前
《独立开发者精选工具》第 018 期
开源·开发·工具·独立开发·出海·独立开发者
jctech1 天前
这才是2025年的插件化!ComboLite 2.0:为Compose开发者带来极致“爽”感
android·开源
杨杨杨大侠1 天前
解密 atlas-mapper 框架 (9/10):故障排查与调试技巧
java·开源·github
ai产品老杨1 天前
解锁仓储智能调度、运输路径优化、数据实时追踪,全功能降本提效的智慧物流开源了
javascript·人工智能·开源·音视频·能源
alphageek81 天前
Electron开源库入门教程:跨平台桌面应用框架
javascript·其他·electron·开源