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

相关推荐
说私域30 分钟前
从工具理性到价值共生:开源链动2+1模式、AI智能名片与S2B2C商城系统的社会连接重构研究
人工智能·重构·开源
Yann-企业信息化9 小时前
AI 开发工具对比:Dify 与 Coze Studio(开源版)差异对比
人工智能·开源
IvorySQL14 小时前
在一台机器上搭建一体化 Ceph 存储集群
postgresql·开源
云雾J视界14 小时前
开源协作2.0:GitHub Discussions+AI重构开发者社区的知识共创生态
人工智能·开源·github·discussions·知识共创·社区知识·ai重构
兆龙电子单片机设计14 小时前
【STM32项目开源】STM32单片机智能家居控制系统
stm32·单片机·物联网·开源·毕业设计·智能家居
一路阳光85115 小时前
开源鸿蒙5.0正式发布 底座及配套能力快速稳定成熟
华为·开源·harmonyos
IvorySQL15 小时前
PostgreSQL 18 中国贡献者经验分享:开源参与的四点建议
数据库·postgresql·开源
云创智城-yuncitys17 小时前
城市级充电项目高性价比落地方案:源码级交付 + 设备直供,全文档 + 永久保障(已开源)
开源·城市级充电系统·充电桩二开
ajassi200017 小时前
开源 Linux 服务器与中间件(六)服务器--Lighttpd
linux·服务器·开源
ajassi200019 小时前
开源 Linux 服务器与中间件(七)数据库--MySQL
linux·服务器·数据库·ubuntu·开源