xlians555 commited on
Commit
3cea4a3
·
verified ·
1 Parent(s): 12d5ef6

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +177 -1
README.md CHANGED
@@ -1 +1,177 @@
1
- dots.tts base
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ pipeline_tag: text-to-speech
4
+ tags:
5
+ - text-to-speech
6
+ - tts
7
+ - audio
8
+ - speech-synthesis
9
+ - voice-cloning
10
+ - autoregressive
11
+ - flow-matching
12
+ language:
13
+ - en
14
+ - zh
15
+ - ar
16
+ - cs
17
+ - nl
18
+ - fi
19
+ - fr
20
+ - de
21
+ - el
22
+ - hi
23
+ - id
24
+ - it
25
+ - ja
26
+ - ko
27
+ - pl
28
+ - pt
29
+ - ro
30
+ - ru
31
+ - es
32
+ - th
33
+ - tr
34
+ - uk
35
+ - vi
36
+ - yue
37
+ library_name: dots_tts
38
+ ---
39
+
40
+ <p align="center">
41
+ <img src="logo.png" alt="dots.tts" width="280">
42
+ </p>
43
+
44
+ # dots.tts-base
45
+
46
+ **dots.tts** is a **2B-parameter fully continuous, end-to-end autoregressive (AR) text-to-speech system**. The backbone pairs a semantic encoder, an LLM, and an autoregressive flow-matching acoustic head over a 48 kHz AudioVAE — no discrete codec tokens anywhere in the pipeline.
47
+
48
+ This repository hosts **`dots.tts-base`**, the **end-to-end pretrained checkpoint** trained on ~1.5M hours of speech. It is the foundation for the two post-trained variants and the recommended starting point for **fine-tuning**.
49
+
50
+ | Checkpoint | Stage | Best for |
51
+ |---|---|---|
52
+ | **[dots.tts-base](https://huggingface.co/rednote-hilab/dots.tts-base)** ← *you are here* | Pretrain (~1.5M h) | Fine-tuning, full CFG / NFE control |
53
+ | [dots.tts-soar](https://huggingface.co/rednote-hilab/dots.tts-soar) | + Self-corrective alignment | Highest zero-shot fidelity and speaker similarity |
54
+ | [dots.tts-mf](https://huggingface.co/rednote-hilab/dots.tts-mf) | + MeanFlow distillation | Few-step inference (NFE = 3–4), low latency |
55
+
56
+ ---
57
+
58
+ ## Quick Start
59
+
60
+ ### Installation
61
+
62
+ ```bash
63
+ conda create -n dots_tts python=3.10 -y
64
+ conda activate dots_tts
65
+
66
+ python -m pip install --upgrade pip
67
+ python -m pip install "git+https://github.com/rednote-hilab/dots.tts.git" \
68
+ -c "https://raw.githubusercontent.com/rednote-hilab/dots.tts/main/constraints/recommended.txt"
69
+ ```
70
+
71
+ ### CLI
72
+
73
+ ```bash
74
+ # Continuation voice cloning (reference audio + transcript) — recommended
75
+ dots.tts \
76
+ --model-name-or-path rednote-hilab/dots.tts-base \
77
+ --text "Hello, this is a zero-shot voice cloning demonstration." \
78
+ --prompt-audio /path/to/reference.wav \
79
+ --prompt-text "The exact transcript of the reference audio." \
80
+ --output clone.wav
81
+ ```
82
+
83
+ ### Python API
84
+
85
+ ```python
86
+ from dots_tts.runtime import DotsTtsRuntime
87
+ import soundfile as sf
88
+
89
+ runtime = DotsTtsRuntime.from_pretrained(
90
+ "rednote-hilab/dots.tts-base",
91
+ precision="bfloat16",
92
+ )
93
+
94
+ result = runtime.generate(
95
+ text="Hello, this is a quick speech synthesis test.",
96
+ prompt_audio_path="/path/to/reference.wav",
97
+ prompt_text="The exact transcript of the reference audio.",
98
+ num_steps=10,
99
+ guidance_scale=1.2,
100
+ )
101
+
102
+ sf.write("output.wav", result["audio"].float().cpu().squeeze().numpy(), result["sample_rate"])
103
+ ```
104
+
105
+ ### Recommended sampling settings
106
+
107
+ | Flag | Recommended | Notes |
108
+ |---|---:|---|
109
+ | `--num-steps` | `10`–`32` | Flow-matching sampling steps; higher = better quality, slower |
110
+ | `--guidance-scale` | `1.2` (default) | Standard CFG; raise modestly for stronger text/timbre adherence |
111
+
112
+ ### Fine-tuning
113
+
114
+ `dots.tts-base` is the recommended starting point for fine-tuning. See the [training script](https://github.com/rednote-hilab/dots.tts/blob/main/scripts/train_dots_tts.py) and [smoke config](https://github.com/rednote-hilab/dots.tts/blob/main/configs/dots_tts.yaml) in the source repository:
115
+
116
+ ```bash
117
+ accelerate launch scripts/train_dots_tts.py --config configs/dots_tts.yaml
118
+ ```
119
+
120
+ ---
121
+
122
+ ## Architecture
123
+
124
+ A frozen **AudioVAE** encodes 48 kHz mono waveform into a continuous latent and decodes it back via a BigVGAN-style causal decoder. An **autoregressive backbone** predicts that latent one patch at a time:
125
+
126
+ - **Semantic encoder** — re-encodes each newly generated VAE patch into a compact embedding for the LLM, stripping high-variance acoustic detail.
127
+ - **LLM** — initialized from **Qwen2.5-1.5B-Base**, consumes BPE text directly (no phonemes), emits one hidden state per audio step.
128
+ - **AR flow-matching head** — a DiT that conditions on the LLM hidden state and the AR prefix to denoise the next VAE patch, with a frozen CAM++ speaker x-vector as side input.
129
+
130
+ ---
131
+
132
+ ## Performance — `dots.tts-base`
133
+
134
+ ### Seed-TTS-Eval (zero-shot, ~3 s reference)
135
+
136
+ | Model | Params | test-en WER↓ / SIM↑ | test-zh WER↓ / SIM↑ | test-zh-hard WER↓ / SIM↑ | **Avg WER↓ / SIM↑** |
137
+ |---|---:|:---:|:---:|:---:|:---:|
138
+ | Seed-TTS | — | 2.25 / 76.2 | 1.12 / 79.6 | 7.59 / 77.6 | 3.65 / 77.8 |
139
+ | Qwen3-TTS | 1.7B | 1.23 / 71.7 | 1.22 / 77.0 | 6.76 / 74.8 | 3.07 / 74.5 |
140
+ | VoxCPM 2 | 2B | 1.84 / 75.3 | 0.97 / 79.5 | 8.13 / 75.3 | 3.65 / 76.7 |
141
+ | **dots.tts-base** | **2B** | 1.34 / 76.8 | 0.96 / 80.5 | 6.46 / 79.2 | **2.92** / 78.8 |
142
+
143
+ ### MiniMax Multilingual (24 languages, average)
144
+
145
+ | Model | Avg WER↓ | Avg SIM↑ |
146
+ |---|:---:|:---:|
147
+ | MiniMax | 2.8 | 76.6 |
148
+ | Fish-Audio S2 | 3.7 | 78.0 |
149
+ | VoxCPM 2 | 5.7 | 82.3 |
150
+ | **dots.tts-base** | 6.6 | **83.5** |
151
+
152
+ See the [project README](https://github.com/rednote-hilab/dots.tts#-performance) for the full per-language breakdown, CV3-Eval and EmergentTTS-Eval results.
153
+
154
+ ---
155
+
156
+ ## Risks and Limitations
157
+
158
+ - **Misuse risk.** High-fidelity zero-shot voice cloning can produce highly realistic synthetic speech. This checkpoint is intended for research and authorized deployment. Do **not** use it for impersonation, fraud, or disinformation. Combine downstream use with consent-aware reference-audio policies, robust synthetic-speech detection, and content watermarking. Clearly mark AI-generated audio.
159
+ - **Low-resource WER gap.** A BPE backbone inherits the text LLM's language coverage at the cost of a higher data appetite. On script-divergent and under-represented languages (Arabic, Hindi, Turkish, Vietnamese) WER is higher than on high-resource languages; speaker similarity is preserved.
160
+ - **Speech-heavy training.** The backbone is trained on a speech-heavy mixture. Singing and unified speech + sound generation are not covered.
161
+
162
+ ---
163
+
164
+ ## Citation
165
+
166
+ ```bibtex
167
+ @article{dotstts2026,
168
+ title = {dots.tts Technical Report},
169
+ author = {dots.tts Team},
170
+ journal = {arXiv preprint},
171
+ year = {2026},
172
+ }
173
+ ```
174
+
175
+ ## License
176
+
177
+ Released under [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0).