Spark-TTS README

The project's README from github.com/SparkAudio/Spark-TTS. As one markdown file: README.md.

Spark-TTS

Official PyTorch code for inference of
Spark-TTS: An Efficient LLM-Based Text-to-Speech Model with Single-Stream Decoupled Speech Tokens

Spark-TTS Logo

Institution 1 Institution 2 Institution 3

Institution 4 Institution 5 Institution 6

paper version Hugging Face version version python mit

Spark-TTS 🔥

Overview

Spark-TTS is an advanced text-to-speech system that uses the power of large language models (LLM) for highly accurate and natural-sounding voice synthesis. It is designed to be efficient, flexible, and powerful for both research and production use.

Key Features


Inference Overview of Voice Cloning
Inference Overview of Controlled Generation

🚀 News

Install

Clone and Install

Here are instructions for installing on Linux. If you're on Windows, please refer to the Windows Installation Guide.
(Thanks to @AcTePuKc for the detailed Windows instructions!)

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
# If you are in mainland China, you can set the mirror as follows:
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com

Model Download

Download via python:

from huggingface_hub import snapshot_download

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

Download via git clone:

mkdir -p pretrained_models

# Make sure you have git-lfs installed (https://git-lfs.com)
git lfs install

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

Basic Usage

You can simply run the demo with the following commands:

cd example
bash infer.sh

Alternatively, you can directly execute the following command in the command line to perform inference:

python -m cli.inference \
    --text "text to synthesis." \
    --device 0 \
    --save_dir "path/to/save/audio" \
    --model_dir pretrained_models/Spark-TTS-0.5B \
    --prompt_text "transcript of the prompt audio" \
    --prompt_speech_path "path/to/prompt_audio"

Web UI Usage

You can start the UI interface by running python webui.py --device 0, which allows you to perform Voice Cloning and Voice Creation. Voice Cloning supports uploading reference audio or directly recording the audio.

Voice Cloning Voice Creation
Image 1 Image 2

Optional Methods

For additional CLI and Web UI methods, including alternative implementations and extended functionalities, you can refer to:

Runtime

Nvidia Triton Inference Serving

We now provide a reference for deploying Spark-TTS with Nvidia Triton and TensorRT-LLM. The table below presents benchmark results on a single L20 GPU, using 26 different prompt_audio/target_text pairs (totalling 169 seconds of audio):

Model Note Concurrency Avg Latency RTF
Spark-TTS-0.5B Code Commit 1 876.24 ms 0.1362
Spark-TTS-0.5B Code Commit 2 920.97 ms 0.0737
Spark-TTS-0.5B Code Commit 4 1611.51 ms 0.0704

Please see the detailed instructions in runtime/triton_trtllm/README.md for more information.

Demos

Here are some demos generated by Spark-TTS using zero-shot voice cloning. For more demos, visit our demo page.


Donald Trump

Zhongli (Genshin Impact)

Donald Trump

Zhongli


陈鲁豫 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

To-Do List

Citation

@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}, 
}

⚠️ Usage Disclaimer

This project provides a zero-shot voice cloning TTS model intended for academic research, educational purposes, and legitimate applications, such as personalized speech synthesis, assistive technologies, and linguistic research.

Please note:

We advocate for the responsible development and use of AI and encourage the community to uphold safety and ethical principles in AI research and applications. If you have any concerns regarding ethics or misuse, please contact us.

Spark-TTS (SparkAudio/Spark-TTS)

Searching Database…

What is this?Spark-TTS is a text-to-speech system that uses a large language model (built on Qwen2.5) to generate highly natural, accurate speech, including zero-shot voice cloning.
Is this a ready-made app or code I run myself?It's PyTorch inference code you run yourself, either via CLI scripts or a bundled Gradio-style Web UI (webui.py), not a packaged application.
How do I get it running?Clone the repo, create a Conda environment, download the model (via python or git clone), then run the demo CLI or start the Web UI with 'python webui.py --device 0'.
What do I need installed before trying it?You need Conda to set up the Python environment, plus the downloaded Spark-TTS model weights; a GPU is implied by the Nvidia Triton benchmarks for serving.
Is the training code available too?No, only inference code is released so far; the training code and the VoxBox training dataset are still on the to-do list, not yet published.
Does it only run on Linux?The main instructions target Linux, but there's a separate community-contributed Windows Installation Guide for getting it running on Windows too.
Is there a usage disclaimer I should know about?Yes, the authors explicitly warn against using it for unauthorized voice cloning, impersonation, fraud, or deepfakes, and take no liability for misuse.
Can it speak more than one language?Yes, it has bilingual support for Chinese and English and can do zero-shot cross-lingual and code-switching voice cloning, meaning it can switch languages mid-speech while keeping the same cloned voice.
Can I create a synthetic voice without a reference recording?Yes, the Web UI's Voice Creation mode lets you build a virtual speaker by adjusting parameters like gender, pitch, and speaking rate instead of cloning an existing voice.
How fast is it for production serving?Benchmarks on a single Nvidia L20 GPU using Triton and TensorRT-LLM show average latencies around 876ms-1.6s depending on concurrency, with an RTF as low as 0.07.
Why skip flow-matching models like other TTS systems?Spark-TTS is built entirely on Qwen2.5 and reconstructs audio directly from LLM-predicted codes, removing the need for a separate acoustic feature generation model and simplifying the pipeline.
Creator
SparkAudio
Size
7 MB
Stars
11K
Updated
CommitApr 09
Age
1y
Commits · 90 Days