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…

Что это такое?Spark-TTS — это система синтеза речи по тексту, которая использует большую языковую модель (построенную на Qwen2.5) для генерации очень естественной и точной речи, включая клонирование голоса без обучения на образце (zero-shot).
Это готовое приложение или код, который я запускаю сам?Это код для инференса на PyTorch, который вы запускаете самостоятельно: через CLI-скрипты или через встроенный веб-интерфейс в стиле Gradio (webui.py). Это не готовое приложение.
Как это запустить?Склонируйте репозиторий, создайте окружение Conda, скачайте модель (через python или git clone), затем запустите демо через CLI или веб-интерфейс командой 'python webui.py --device 0'.
Что нужно установить перед тем, как попробовать?Нужны Conda для настройки окружения Python и скачанные веса модели Spark-TTS. О том, что нужна видеокарта (GPU), говорят бенчмарки Nvidia Triton для serving.
Код обучения тоже доступен?Нет, пока опубликован только код инференса. Код обучения и обучающий датасет VoxBox пока в планах и ещё не выложены.
Работает только на Linux?Основные инструкции рассчитаны на Linux, но есть отдельное руководство по установке для Windows, написанное участниками сообщества, поэтому запустить его можно и на Windows.
Нужно знать о каком-нибудь отказе от ответственности при использовании?Да, авторы прямо предупреждают, что нельзя использовать его для клонирования голоса без разрешения, выдачи себя за другого человека, мошенничества или создания дипфейков. Авторы не несут ответственности за неправильное использование.
Может ли он говорить на нескольких языках?Да, есть двуязычная поддержка китайского и английского. Он умеет клонировать голос при переходе между языками (zero-shot cross-lingual) и переключаться между языками внутри фразы (code-switching), то есть менять язык прямо во время речи, сохраняя тот же клонированный голос.
Можно ли создать синтетический голос без эталонной записи?Да, в режиме создания голоса веб-интерфейса можно собрать виртуального диктора, настраивая такие параметры, как пол, высота тона и скорость речи, вместо клонирования существующего голоса.
Насколько он быстр для продакшн-сервиса?Бенчмарки на одной видеокарте Nvidia L20 с Triton и TensorRT-LLM показывают среднюю задержку примерно от 876 мс до 1,6 с в зависимости от количества параллельных запросов, а RTF составляет всего 0,07.
Почему обходятся без моделей flow-matching, как другие TTS-системы?Spark-TTS полностью построен на Qwen2.5 и восстанавливает звук напрямую из кодов, которые предсказывает языковая модель. Поэтому не нужна отдельная модель генерации акустических признаков, и конвейер проще.
Creator
SparkAudio
Size
7 MB
Stars
11K
Updated
CommitApr 09
Age
1y
Commits · 90 Days