SparkAudioSpark-TTS-0.5B · Hugging Face

1- Spark-TTS: 基于 LLM 的高效文本转语音系统

Spark-TTS Logo

一种基于LLM、采用单流解耦语音标记的高效文本转语音模型
官方 PyTorch 推理代码

Institution 1 Institution 2 Institution 3
Institution 4 Institution 5 Institution 6
paper version Hugging Face version version python mit

2- Spark-TTS 🔥

2.1- 概览

Spark-TTS 是一款前沿的文本转语音 ( TTS ) 系统,利用大型语言模型 ( LLM ) 的能力生成高度准确且自然的合成语音。其设计兼顾效率、灵活性与性能,适用于研究及生产应用。

2.2- 主要特性

  • 简洁高效:完全基于 Qwen2.5 构建, Spark-TTS 不再需要流匹配 ( flow matching ) 等额外的生成模型。系统不依赖单独模型生成声学特征,而是直接利用 LLM 预测的代码重建音频。此方法简化了流程,提升了效率并降低了复杂性。
  • 高质量声音克隆:支持零样本 ( zero-shot ) 声音克隆,即在缺乏特定训练数据的情况下也能复制目标说话人的声音。该功能尤其适用于跨语言 ( cross-lingual ) 和语码转换 ( code-switching ) 场景,可实现不同语言和声音间的无缝切换,无需分别训练。
  • 双语支持:模型支持中文和英文,并能在跨语言 ( cross-lingual ) 及语码转换 ( code-switching ) 场景中进行零样本 ( zero-shot ) 声音克隆,以高自然度和准确度合成多语言语音。
  • 可控语音生成:支持通过调整性别、音高和语速等参数创建虚拟说话人。

声音克隆推理流程示意
可控生成推理流程示意

3- 🚀 最新动态

  • [2025-03-04] 关于本项目的论文 Spark-TTS 现已发表。

  • [2025-03-12] 项目现已支持 Nvidia Triton 推理服务 (Nvidia Triton Inference Serving)。更多细节请参阅下文 " 运行时 (Runtime)" 部分。

4- 安装指南 - Linux 安装

  1. 克隆代码库
git clone https://github.com/SparkAudio/Spark-TTS.git
cd Spark-TTS
  1. 安装 Conda
  1. 创建 Conda 环境
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

如果您使用 Windows 系统,请参考 Windows 安装指南
(感谢 @AcTePuKc 提供详尽的 Windows 安装指导!)

4.1- 模型下载

4.1.1- 方式一:通过 Python 下载

from huggingface_hub import snapshot_download

snapshot_download("SparkAudio/Spark-TTS-0.5B", local_dir="pretrained_models/Spark-TTS-0.5B")

4.1.2- 方式二:通过 Git Clone 下载

mkdir -p pretrained_models

# 请确保已安装 git-lfs (https://git-lfs.com)
git lfs install

git clone https://huggingface.co/SparkAudio/Spark-TTS-0.5B pretrained_models/Spark-TTS-0.5B

4.2- 基本用法

4.2.1- 快速演示

cd example
bash infer.sh

4.2.2- 命令行推理

python -m cli.inference \
    --text "需要合成的文本。" \
    --device 0 \
    --save_dir "保存音频的目标路径" \
    --model_dir pretrained_models/Spark-TTS-0.5B \
    --prompt_text "提示音频的内容转录" \
    --prompt_speech_path "提示音频文件的路径"

4.3- Web UI 使用

通过运行以下命令启动 Web UI:

python webui.py --device 0

您可以使用 Web UI 进行以下操作:

  • 声音克隆 (Voice Cloning):支持上传参考音频或直接录制声音
  • 声音创建 (Voice Creation):自定义语音参数
声音克隆 声音创建
声音克隆界面 声音创建界面

4.4- 可选方法

如需了解其他 CLI 和 Web UI 的替代实现方案和扩展功能,请参考:


5- 安装指南 (Windows 版)

5.1- 安装 Conda

  1. 下载并安装 Miniconda
  2. 安装过程中,请务必勾选 “Add Conda to PATH” 选项,将 Conda 添加到系统环境变量

5.2- 下载 Spark-TTS 源代码

获取 Spark-TTS 文件主要有两种方式:

5.2.1- ⬇️ 方式一(推荐 Windows 用户采用):手动下载 ZIP 压缩包

5.2.2- 🍴 方式二:使用 Git 克隆(可选)

5.3- 创建 Conda 虚拟环境

打开命令提示符 ( cmd ) 并依次运行以下命令:

conda create -n sparktts python=3.12 -y
conda activate sparktts

以上命令将创建一个名为 sparktts 的 Conda 虚拟环境(使用 Python 3.12 版本),并将其激活。后续操作都将在此环境中进行。

5.4- 安装项目依赖

进入您之前下载并解压(或 Git 克隆)的 ** Spark-TTS 文件夹**,在命令行中运行:

pip install -r requirements.txt

此命令将自动安装 requirements.txt 文件中列出的所有必需库。

5.5- 安装 PyTorch (自动检测 CUDA 或 CPU )

运行以下命令安装 PyTorch 核心库及其相关组件:

pip install torch torchvision torchaudio --index-url https://pytorch.org/get-started/previous-versions/

该命令会自动检测您的系统是否安装了 NVIDIA 的 CUDA 并安装相应的 GPU 加速版本。若未检测到 CUDA ,则会安装仅支持 CPU 的版本。

5.5.1- 或者:手动安装适用于特定 CUDA 版本的 PyTorch (若有需要)

例如,安装兼容 CUDA 12.1 的版本:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

例如,安装兼容 CUDA 11.8 的版本(适用于较旧型号的 GPU ):

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

5.6- 下载预训练模型

获取 Spark-TTS 预训练模型文件同样有两种方式,任选其一即可:

5.6.1- ✅ 方式一(推荐):使用 Python 脚本下载

在 ** Spark-TTS 文件夹**中,新建一个名为 download_model.py 的文件,将以下 Python 代码粘贴进去:

from huggingface_hub import snapshot_download
import os


# 指定模型下载和存储的本地路径
model_dir = "pretrained_models/Spark-TTS-0.5B"


# 检查模型目录是否已存在且包含文件
if os.path.exists(model_dir) and len(os.listdir(model_dir)) > 0:
 print(f"模型文件似乎已存在于 '{model_dir}'。跳过下载。")
else:
 print(f"开始下载模型文件到 '{model_dir}'...")
 # 从 Hugging Face Hub 下载模型仓库快照
 snapshot_download(
 repo_id="SparkAudio/Spark-TTS-0.5B",  # Hugging Face 上的模型仓库标识
 local_dir=model_dir,                # 指定本地存储目录
 resume_download=True                # 启用断点续传功能
 )
 print("模型下载完成!")


保存文件后,在 sparktts Conda 环境激活的状态下,于命令行中运行此脚本:

python download_model.py

此脚本会自动从 Hugging Face Hub 下载模型,并支持断点续传。

5.6.2- 💡 方式二:使用 Git 克隆(若您已安装 Git )

如果您已安装 Git ,可运行以下命令:

mkdir pretrained_models
git clone https://huggingface.co/SparkAudio/Spark-TTS-0.5B pretrained_models/Spark-TTS-0.5B

两种方法均可下载模型——请选择您认为更便捷的一种

5.7- 运行 Spark-TTS

5.7.1- 🌐 Web UI (推荐方式)

要启用基于浏览器的交互式图形界面( Web UI ),请在 sparktts 环境激活的状态下,于命令行中运行:

python webui.py

该命令会启动一个本地 Web 服务器。随后,您可以通过浏览器访问提示的地址(通常是 http://127.0.0.1:7860),在 Web 界面中输入文本生成语音,或进行声音克隆等操作。

6- 故障排查与常见问题

🔎 寻求帮助前请注意

许多常见问题及其解决方案,可能已经在项目的 GitHub issues 、文档或其它在线资源中被提及和解答。在提出新问题前,请您尝试:

  • 🕵️‍♂️ 优先搜索 GitHub issues,看看是否有人遇到过类似问题。
  • 📖 仔细查阅相关文档
  • 🤖 利用 Google 搜索或 AI 助手(如 ChatGPT 、 DeepSeek 等) 查找相关信息或解决方案

如果尝试以上步骤后问题仍未解决,请在提问时尽量清晰地描述您遇到的具体问题、您的操作环境(如操作系统、 CUDA 版本等),以及您已经尝试过的解决方法。这将有助于他人更快速、准确地理解您的问题并提供有效的帮助。

至此,您已完成所有安装和设置步骤!🚀🔥


7- 运行时 ( Runtime )

** Nvidia Triton 推理服务 ( Inference Serving )**

我们现已提供使用 Nvidia Triton 和 TensorRT-LLM 部署 Spark-TTS 的参考方案。下表展示了在单个 L20 GPU 上的基准测试结果,测试使用了 26 对不同的 prompt_audio / target_text 组合(总计音频时长 169 秒):

模型 说明 并发数 平均延迟 (ms) 实时率 (RTF)
Spark-TTS-0.5B 代码提交版本 1 876.24 0.1362
Spark-TTS-0.5B 代码提交版本 2 920.97 0.0737
Spark-TTS-0.5B 代码提交版本 4 1611.51 0.0704

请查阅 runtime/triton_trtllm/README.md 中的详细说明获取更多信息。

8- 演示效果

以下是由 Spark-TTS 利用零样本 ( zero-shot ) 声音克隆技术生成的部分音频演示。欲了解更多演示效果,请访问我们的 演示页面


唐纳德·特朗普 ( Donald Trump )

钟离 (原神)

Donald Trump

钟离


陈鲁豫 ( Chen Luyu )

杨澜 ( Yang Lan )

陈鲁豫 Chen_Luyu.webm

Yang_Lan.webm


余承东 ( Richard Yu )

马云 ( Jack Ma )

Yu_Chengdong.webm

Ma_Yun.webm


刘德华 ( Andy Lau )

徐志胜 ( Xu Zhisheng )

Liu_Dehua.webm

Xu_Zhisheng.webm


哪吒 ( Nezha )

李靖 ( Li Jing )

Ne_Zha.webm

Li_Jing.webm

9- 未来计划

  • [x] 发布 Spark-TTS 相关论文。
  • [ ] 公开训练代码。
  • [ ] 公开训练数据集 VoxBox 。

10- 引用信息

@misc{wang2025sparktts,
      title={Spark-TTS: An Efficient LLM-Based Text-to-Speech Model with Single-Stream Decoupled Speech Tokens}, 
      author={Xinsheng Wang and Mingqi Jiang and Ziyang Ma and Ziyu Zhang and Songxiang Liu and Linqin Li and Zheng Liang and Qixi Zheng and Rui Wang and Xiaoqin Feng and Weizhen Bian and Zhen Ye and Sitong Cheng and Ruibin Yuan and Zhixian Zhao and Xinfa Zhu and Jiahao Pan and Liumeng Xue and Pengcheng Zhu and Yunlin Chen and Zhifei Li and Xie Chen and Lei Xie and Yike Guo and Wei Xue},
      year={2025},
      eprint={2503.01710},
      archivePrefix={arXiv},
      primaryClass={cs.SD},
      url={https://arxiv.org/abs/2503.01710}, 
}

11- ⚠️ 使用免责声明

本项目提供的零样本 ( zero-shot ) 声音克隆 TTS 模型,旨在用于学术研究、教育目的及合法的应用场景,例如个性化语音合成、辅助技术以及语言学研究等。

敬请注意:

  • 严禁将此模型用于未经授权的声音克隆、身份仿冒、欺诈、诈骗、深度伪造 ( deepfakes ) 或任何非法活动。

  • 使用本模型时,务必遵守当地法律法规并恪守伦理规范。

  • 对于本模型的任何滥用行为,开发者不承担任何责任。

我们倡导负责任地开发和使用人工智能 ( AI ) 技术,并鼓励社群在 AI 的研究与应用中,共同坚守安全与伦理原则。若您对相关伦理问题或潜在滥用行为存有疑虑,请与我们联系。