PilotTTS / README.md
nielsr's picture
nielsr HF Staff
Improve model card metadata and content
950a4c6 verified
|
Raw
History Blame
2.82 kB
---
license: apache-2.0
pipeline_tag: text-to-speech
---
# PilotTTS: A Disciplined Modular Recipe for Competitive Speech Synthesis
<div align="center">
<img src="assert/Introduction.png" width="600" />
</div>
PilotTTS is a lightweight autoregressive text-to-speech (TTS) system that achieves competitive performance through minimalist architecture and rigorous data engineering. It supports zero-shot voice cloning, emotion synthesis, paralinguistic synthesis, and various Chinese dialects.
- **Paper:** [PilotTTS: A Disciplined Modular Recipe for Competitive Speech Synthesis](https://arxiv.org/abs/2605.27258)
- **Code:** [GitHub Repository](https://github.com/AMAPVOICE/PilotTTS)
- **Demos:** [Project Page](https://amapvoice.github.io/PilotTTS/)
## Highlight 🔥
- **A fully open-source data processing pipeline:** Converts large-scale Internet audio into clean training data with rich annotation using publicly available tools.
- **Content Consistency and Speaker Similarity:** Achieves state-of-the-art speaker similarity (0.862) and highly competitive content accuracy (CER 0.87%) on Seed-TTS benchmarks.
- **Controllable Synthesis:** Supports 11 emotion categories (e.g., Happy, Sad, Angry) and 4 paralinguistic categories (LAUGH, BREATH, CRY, COUGH).
- **Dialect Support:** Supports 14 Chinese dialects and enables cross-dialect synthesis.
## Installation
```bash
git clone https://github.com/AMAPVOICE/PilotTTS.git
cd PilotTTS
conda create -n pilot-tts python=3.10 -y
conda activate pilot-tts
pip install -r requirements.txt
```
## Sample Usage
To use PilotTTS, you can use the following Python snippet for zero-shot voice cloning and emotion-controlled synthesis:
```python
from demo import load_engine, synthesize
# 1. Zero-shot voice cloning (base model)
engine = load_engine(
config_path="configs/infer_pilot_tts.yaml",
checkpoint="pretrained_models/pilot_tts.pt",
)
synthesize(engine, text="你好,世界!",
prompt_wav="assert/prompt.wav",
output_path="output/clone.wav")
# 2. Emotion synthesis (instruct model)
engine_instruct = load_engine(
config_path="configs/infer_pilot_tts_instruct.yaml",
checkpoint="pretrained_models/pilot_tts_instruct.pt",
)
synthesize(engine_instruct, text="今天天气真好啊!",
prompt_wav="assert/prompt.wav",
emotion="happy", output_path="output/happy.wav")
```
## Citation
```bibtex
@article{pilottts2026,
title={PilotTTS: A Disciplined Modular Recipe for Competitive Speech Synthesis},
author={Bowen Li and Shaotong Guo and Zhen Wang and Yang Xiang and Mingli Jin and Yihang Lin and Jiahui Zhao and Weibo Xiong and Dongrui Li and Keming Chen and Yunze Gao and Yuze Zhou and Zeyang Lin and Yue Liu},
year={2026},
journal={arXiv preprint arXiv:2605.27258}
}
```