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

相关推荐
算家计算34 分钟前
字节开源代码模型——Seed-Coder 本地部署教程,模型自驱动数据筛选,让每行代码都精准落位!
人工智能·开源
深圳亥时科技7 小时前
智慧党建系统(源码+文档+讲解+演示)
开源
OpenCSG7 小时前
电子行业AI赋能软件开发经典案例——某金融软件公司
人工智能·算法·金融·开源
天天码行空9 小时前
Bootstrap Table企业级web数据表格集成框架
前端·javascript·开源
说私域11 小时前
基于定制开发开源AI智能名片S2B2C商城小程序的首屏组件优化策略研究
人工智能·小程序·开源·零售
token-go15 小时前
[特殊字符] 革命性AI提示词优化平台正式开源!
人工智能·开源
DevSecOps选型指南20 小时前
2025软件供应链安全最佳实践︱证券DevSecOps下供应链与开源治理实践
网络·安全·web安全·开源·代码审计·软件供应链安全
草梅友仁1 天前
AI 图片文字翻译与视频字幕翻译工具推荐 | 2025 年第 23 周草梅周报
开源·github·aigc
心随_风动1 天前
SUSE Linux 发行版全面解析:从开源先驱到企业级支柱
linux·运维·开源
PythonFun1 天前
DeepSeek-R1-0528:开源推理模型的革新与突破
语言模型·开源