Update README.md
Browse files
README.md
CHANGED
|
@@ -1,3 +1,526 @@
|
|
| 1 |
---
|
| 2 |
license: apache-2.0
|
| 3 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
license: apache-2.0
|
| 3 |
---
|
| 4 |
+
<div align="center">
|
| 5 |
+
<h1>
|
| 6 |
+
FireRedTTS3
|
| 7 |
+
</h1>
|
| 8 |
+
<p>
|
| 9 |
+
Official PyTorch code for <br>
|
| 10 |
+
<b><em>FireRedTTS3: Unified Speech Generation and Editing with Semantically Enriched Speech Representations</em></b>
|
| 11 |
+
</p>
|
| 12 |
+
<p>
|
| 13 |
+
</p>
|
| 14 |
+
<a href="#"><img src="https://img.shields.io/badge/Paper-ArXiv-red" alt="technical report"></a>
|
| 15 |
+
<a href="#"><img src="https://img.shields.io/badge/Demo-Page-lightgrey" alt="version"></a>
|
| 16 |
+
<a href="#"><img src="https://img.shields.io/badge/Hugging%20Face-Model%20Page-yellow" alt="HF-model"></a>
|
| 17 |
+
<a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="Apache-2.0"></a>
|
| 18 |
+
</div>
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
## Overview
|
| 22 |
+
|
| 23 |
+
**FireRedTTS3** is a unified speech generation and editing system built on **semantically enriched continuous speech representations**. It comes in two variants:
|
| 24 |
+
|
| 25 |
+
- **FireRedTTS3-Base** — zero-shot voice cloning across **24 languages** and **21 Chinese dialects**
|
| 26 |
+
- **FireRedTTS3-Instruct** — natural-language **voice design** and **speech editing** (semantic + acoustic) in one unified model
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
## Highlights ✨
|
| 30 |
+
|
| 31 |
+
* 🌍 **Multilingual — 24 Languages** — Best average WER/CER (avg 3.754%) and best average speaker similarity on MiniMax-MLS-Test (avg 84.8%), plus best-in-class cloning WER/CER (avg 3.04%) and similarity on Seed-TTS-eval (avg 78.8%). Supported languages:
|
| 32 |
+
`Arabic` · `Cantonese` · `Chinese` · `Czech` · `Dutch` · `English` · `Finnish` · `French` · `German` · `Greek` · `Hindi` · `Indonesian` · `Italian` · `Japanese` · `Korean` · `Polish` · `Portuguese` · `Romanian` · `Russian` · `Spanish` · `Thai` · `Turkish` · `Ukrainian` · `Vietnamese`
|
| 33 |
+
* 🗣️ **Multi-Dialect — 21 Chinese Dialects** — Zero-shot voice cloning across major Chinese dialect groups. Supported dialects:
|
| 34 |
+
`Anhui` · `Fujian` · `Gansu` · `Guizhou` · `Hebei` · `Henan` · `Hubei` · `Hunan` · `Jiangxi` · `Liaoning` · `Minnan` · `Ningxia` · `Shaanxi` · `Shandong` · `Shanghai` · `Shanxi` · `Sichuan` · `Tianjin` · `Wenzhou` · `Wu` · `Yunnan`
|
| 35 |
+
* 🎨 **Instruction-Controlled Voice Design** — Generate a brand-new voice from a natural-language description (gender, age, timbre, emotion, pace, accent…) with no reference audio, guided by an explicit textual plainning step before synthesis.
|
| 36 |
+
* ✂️ **Free-Form Speech Editing** — Semantic editing (insertion / deletion / substitution) and acoustic editing (speed / pitch / volume) driven by free-form instructions.
|
| 37 |
+
|
| 38 |
+
|
| 39 |
+
## News
|
| 40 |
+
- [2026.08.05] We release **FireRedTTS3-Base**
|
| 41 |
+
- [2026.08.13] We release the **FireRedTTS3-Instruct** model & code
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
## Roadmap
|
| 45 |
+
|
| 46 |
+
- [x] Release the FireRedTTS3-Base model
|
| 47 |
+
- [x] Release the FireRedTTS3-Instruct model
|
| 48 |
+
- [ ] Release the technical report
|
| 49 |
+
|
| 50 |
+
|
| 51 |
+
## Contents
|
| 52 |
+
|
| 53 |
+
- [Quick Start](#-quick-start)
|
| 54 |
+
- [Model](#-model)
|
| 55 |
+
- [Performance](#-performance)
|
| 56 |
+
- [Usage Disclaimer](#-usage-disclaimer-)
|
| 57 |
+
- [Citation](#-citation)
|
| 58 |
+
- [Acknowledgements](#-acknowledgements)
|
| 59 |
+
- [License](#-license)
|
| 60 |
+
|
| 61 |
+
## Quick Start 🚀
|
| 62 |
+
|
| 63 |
+
### Installation with pip
|
| 64 |
+
|
| 65 |
+
```sh
|
| 66 |
+
pip install -r requirements.txt
|
| 67 |
+
```
|
| 68 |
+
|
| 69 |
+
### Model Download
|
| 70 |
+
|
| 71 |
+
Download the pretrained model from Hugging Face with the `hf` CLI:
|
| 72 |
+
|
| 73 |
+
```sh
|
| 74 |
+
pip install "huggingface_hub[cli]"
|
| 75 |
+
hf download FireRedTeam/FireRedTTS3 --local-dir pretrained_models/
|
| 76 |
+
```
|
| 77 |
+
|
| 78 |
+
### Configure Text Frontend
|
| 79 |
+
|
| 80 |
+
#### Language Recognition (Optional)
|
| 81 |
+
FireRedTTS3-Base relies on explicit language tags for best performance. However, if you don't know the exact language of the text, you can download Meta's `FastText` language-id model and let it detect the language automatically.
|
| 82 |
+
|
| 83 |
+
```sh
|
| 84 |
+
# Download FastText language-id model (lid.176) with:
|
| 85 |
+
curl -L -o fireredtts3/utils/llm_tn/models/lid.176.ftz https://dl.fbaipublicfiles.com/fasttext/supervised-models/lid.176.ftz
|
| 86 |
+
```
|
| 87 |
+
|
| 88 |
+
#### Text Normalization (TN)
|
| 89 |
+
TN converts written numbers, dates, units, currencies, acronyms, etc. into their spoken form (e.g. 19:30 → nineteen thirty). By default, FireRedTTS3 uses the `wetext` TN tool, which supports Chinese and English, other languages (e.g. Japanese, Russian) undergo only basic cleaning. For full language TN support, enable the LLM-based TN by passing `use_llm_tn=True` when initializing FireRedTTS3. It reads its config from a .env file:
|
| 90 |
+
|
| 91 |
+
```sh
|
| 92 |
+
cp .env.example .env
|
| 93 |
+
|
| 94 |
+
# Then fill in your values
|
| 95 |
+
LLM_TN_API_URL=https://api.deepseek.com/chat/completions # any OpenAI-compatible endpoint
|
| 96 |
+
LLM_TN_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
| 97 |
+
LLM_TN_MODEL=deepseek-v4-flash # or any model >= 30B
|
| 98 |
+
```
|
| 99 |
+
|
| 100 |
+
|
| 101 |
+
### Python API
|
| 102 |
+
|
| 103 |
+
For the best voice cloning performance, use a prompt in the desired language or dialect, since the output inherits the speaking style of the reference. For example, provide a Japanese prompt when synthesizing Japanese and a Sichuanese prompt when synthesizing Sichuanese.
|
| 104 |
+
|
| 105 |
+
```python
|
| 106 |
+
import torch
|
| 107 |
+
import torchaudio
|
| 108 |
+
from fireredtts3.core import FireRedTTS3
|
| 109 |
+
|
| 110 |
+
# Init model: choose the text-normalization frontend here.
|
| 111 |
+
# use_wetext=True -> local weText TN (zh/en only)
|
| 112 |
+
# use_llm_tn=True -> LLM-based TN (all languages, needs .env / API creds)
|
| 113 |
+
# both False -> no TN frontend built
|
| 114 |
+
tts = FireRedTTS3(
|
| 115 |
+
"pretrained_models",
|
| 116 |
+
use_wetext=True,
|
| 117 |
+
use_llm_tn=False,
|
| 118 |
+
)
|
| 119 |
+
|
| 120 |
+
language = None # Automatic detection if pass None
|
| 121 |
+
prompt_text = "<prompt audio text>"
|
| 122 |
+
prompt_audio, prompt_audio_sr = torchaudio.load('prompt.wav')
|
| 123 |
+
text = "今天天气很好,我们一起去公园散步吧。"
|
| 124 |
+
|
| 125 |
+
gen_audio, gen_audio_sr = tts.generate(
|
| 126 |
+
language=language,
|
| 127 |
+
prompt_text=prompt_text,
|
| 128 |
+
prompt_audio=prompt_audio,
|
| 129 |
+
prompt_audio_sr=prompt_audio_sr,
|
| 130 |
+
text=text,
|
| 131 |
+
do_tn=True, # whether to run the frontend TN on this call
|
| 132 |
+
)
|
| 133 |
+
torchaudio.save("gen.wav", gen_audio.cpu(), gen_audio_sr)
|
| 134 |
+
|
| 135 |
+
# Supported languages and dialects
|
| 136 |
+
|
| 137 |
+
# Multilingual languages:
|
| 138 |
+
# Arabic, Cantonese, Chinese, Czech, Dutch, English, Finnish,
|
| 139 |
+
# French, German, Greek, Hindi, Indonesian, Italian, Japanese,
|
| 140 |
+
# Korean, Polish, Portuguese, Romanian, Russian, Spanish, Thai,
|
| 141 |
+
# Turkish, Ukrainian, Vietnamese
|
| 142 |
+
|
| 143 |
+
# Multi-dialect:
|
| 144 |
+
# ZH_Anhui, ZH_Fujian, ZH_Gansu, ZH_Guizhou, ZH_Hebei, ZH_Henan,
|
| 145 |
+
# ZH_Hubei, ZH_Hunan, ZH_Jiangxi, ZH_Liaoning, ZH_Minnan, ZH_Ningxia,
|
| 146 |
+
# ZH_Shaanxi, ZH_Shandong, ZH_Shanghai, ZH_Shanxi, ZH_Sichuan,
|
| 147 |
+
# ZH_Tianjin, ZH_Wenzhou, ZH_Wu, ZH_Yunnan
|
| 148 |
+
```
|
| 149 |
+
|
| 150 |
+
### Instruct API — Voice Design & Speech Editing
|
| 151 |
+
|
| 152 |
+
**FireRedTTS3-Instruct** is a unified instruction-driven model. On top of
|
| 153 |
+
zero-shot voice cloning, it also supports **Voice Design**, **Semantic Edit**
|
| 154 |
+
and **Acoustic Edit** through a single entry point:
|
| 155 |
+
`fireredtts3.core.FireRedTTS3Instruct`.
|
| 156 |
+
|
| 157 |
+
```python
|
| 158 |
+
import torch
|
| 159 |
+
import torchaudio
|
| 160 |
+
from fireredtts3.core import FireRedTTS3Instruct
|
| 161 |
+
|
| 162 |
+
# Init the Instruct model (same text-frontend options as FireRedTTS3)
|
| 163 |
+
instruct = FireRedTTS3Instruct(
|
| 164 |
+
"pretrained_models",
|
| 165 |
+
use_wetext=True,
|
| 166 |
+
use_llm_tn=False, # set True to enable LLM-based TN (all languages)
|
| 167 |
+
)
|
| 168 |
+
|
| 169 |
+
# ---- 1) Voice Design Inference ---------------
|
| 170 |
+
# Generate a brand-new voice from a natural-language description only;
|
| 171 |
+
# no reference audio is needed. The model first writes a voice-attribute
|
| 172 |
+
# plan (returned as gen_text), then renders the audio.
|
| 173 |
+
instruction = "一个年轻女性的温柔嗓音,语速稍慢,带一点俏皮。"
|
| 174 |
+
text = "今天天气很好,我们一起去公园散步吧。"
|
| 175 |
+
gen_audio, gen_audio_sr, gen_text = instruct.generate_voice_design(
|
| 176 |
+
instruction=instruction,
|
| 177 |
+
text=text,
|
| 178 |
+
)
|
| 179 |
+
torchaudio.save("design.wav", gen_audio.cpu(), gen_audio_sr)
|
| 180 |
+
print("Voice plan:", gen_text)
|
| 181 |
+
|
| 182 |
+
# ---- 2) Semantic Edit ------------------------
|
| 183 |
+
# Content-level editing: insertion / deletion / substitution by instruction.
|
| 184 |
+
# Returns the edited audio and the model's rewritten text with edit mask.
|
| 185 |
+
audio_in, audio_in_sr = torchaudio.load("input.wav")
|
| 186 |
+
gen_audio, gen_audio_sr, gen_text = instruct.generate_semantic_edit(
|
| 187 |
+
instruction="Replace 'cats' with 'dogs'.",
|
| 188 |
+
audio_in=audio_in,
|
| 189 |
+
audio_in_sr=audio_in_sr,
|
| 190 |
+
)
|
| 191 |
+
torchaudio.save("edit_semantic.wav", gen_audio.cpu(), gen_audio_sr)
|
| 192 |
+
print("Edited text:", gen_text)
|
| 193 |
+
|
| 194 |
+
# ---- 3) Acoustic Edit ------------------------
|
| 195 |
+
# Acoustic-attribute editing: speed / pitch / volume. The instruction must
|
| 196 |
+
# follow the trained templates below (free-form phrasing is not supported):
|
| 197 |
+
# speed -> "adjust the speed to X" X in [0.5, 2.0], step 0.1
|
| 198 |
+
# pitch -> "shift the pitch by N step(s)" N in {-6,...,-1,1,...,+6}
|
| 199 |
+
# volume -> "adjust the volume to X" X in [0.3, 2.0], step 0.1
|
| 200 |
+
gen_audio, gen_audio_sr = instruct.generate_acoustic_edit(
|
| 201 |
+
instruction="adjust the speed to 0.5x",
|
| 202 |
+
audio_in=audio_in,
|
| 203 |
+
audio_in_sr=audio_in_sr,
|
| 204 |
+
)
|
| 205 |
+
torchaudio.save("edit_acoustic.wav", gen_audio.cpu(), gen_audio_sr)
|
| 206 |
+
|
| 207 |
+
# ---- 4) ICL zero-shot voice cloning using the Instruct model ----
|
| 208 |
+
gen_audio, gen_audio_sr = instruct.generate_tts(
|
| 209 |
+
prompt_text="<prompt audio text>",
|
| 210 |
+
prompt_audio=prompt_audio,
|
| 211 |
+
prompt_audio_sr=prompt_audio_sr,
|
| 212 |
+
text="<text to be synthesized>",
|
| 213 |
+
)
|
| 214 |
+
torchaudio.save("gen_instruct.wav", gen_audio.cpu(), gen_audio_sr)
|
| 215 |
+
```
|
| 216 |
+
|
| 217 |
+
|
| 218 |
+
## Performance
|
| 219 |
+
|
| 220 |
+
### Zero-Shot Voice Cloning — Seed-TTS-eval
|
| 221 |
+
|
| 222 |
+
Best in **bold**, second best in <ins>underline</ins>. Evaluation scripts: [Seed-TTS-eval](https://github.com/BytedanceSpeech/seed-tts-eval).
|
| 223 |
+
|
| 224 |
+
| Model | Test-EN<br>WER/SIM | Test-ZH<br>CER/SIM | Test-Hard<br>CER/SIM | Avg<br>WER/SIM |
|
| 225 |
+
| --- | --- | --- | --- | --- |
|
| 226 |
+
| CosyVoice3-1.5B | 2.22 / 72.0 | 1.12 / 78.1 | **5.83** / 75.8 | <ins>3.06</ins> / 75.3 |
|
| 227 |
+
| DiTAR | 1.69 / 73.5 | 1.02 / 75.3 | – / – | – / – |
|
| 228 |
+
| F5-TTS | 2.00 / 67.0 | 1.53 / 76.0 | 8.67 / 71.3 | 4.10 / 71.4 |
|
| 229 |
+
| FireRedTTS-2 | 1.95 / 66.5 | 1.14 / 73.6 | 8.98 / 70.3 | 4.02 / 70.1 |
|
| 230 |
+
| IndexTTS2 | 2.23 / 70.6 | 1.03 / 76.5 | 7.12 / 75.5 | 3.46 / 74.2 |
|
| 231 |
+
| MegaTTS3 | 2.79 / <ins>77.1</ins> | 1.52 / 79.0 | – / – | – / – |
|
| 232 |
+
| MiniMax-Speech | 1.65 / 69.2 | **0.83** / 78.3 | – / – | – / – |
|
| 233 |
+
| Qwen3-TTS | **1.23** / 71.7 | 1.22 / 77.0 | 6.76 / 74.8 | 3.07 / 74.5 |
|
| 234 |
+
| Seed-TTS | 2.25 / 76.2 | 1.12 / 79.6 | 7.59 / 77.6 | 3.65 / 77.8 |
|
| 235 |
+
| VibeVoice | 3.04 / 68.9 | 1.16 / 74.4 | – / – | – / – |
|
| 236 |
+
| VoxCPM2 | 1.84 / 75.3 | <ins>0.97</ins> / 79.5 | 8.13 / 75.3 | 3.65 / 76.7 |
|
| 237 |
+
| dots.tts (Pretrain) | 1.80 / 77.0 | <ins>0.97</ins> / <ins>80.4</ins> | 6.65 / **78.8** | 3.14 / <ins>78.7</ins> |
|
| 238 |
+
| **FireRedTTS3-Base** | <ins>1.64</ins> / **77.2** | 1.01 / **80.9** | <ins>6.50</ins> / <ins>78.4</ins> | **3.04** / **78.8** |
|
| 239 |
+
|
| 240 |
+
|
| 241 |
+
### Multilingual Zero-Shot Cloning — MiniMax-MLS-Test
|
| 242 |
+
|
| 243 |
+
Best in **bold**, second best in <ins>underline</ins>. CER reported for Chinese, Cantonese, Japanese, Korean, Arabic, Vietnamese, Hindi, Thai, and Greek; WER for the rest.
|
| 244 |
+
|
| 245 |
+
<details>
|
| 246 |
+
<summary><b>WER / CER (↓) (click to expand)</b></summary>
|
| 247 |
+
|
| 248 |
+
| Language | Minimax | ElevenLabs | VoxCPM2 | FishAudio S2 | dots.tts (Pretrain) | **FireRedTTS3** |
|
| 249 |
+
| --- | --- | --- | --- | --- | --- | --- |
|
| 250 |
+
| Arabic | **1.67** | **1.67** | 13.05 | 3.50 | 37.91 | <ins>1.75</ins> |
|
| 251 |
+
| Cantonese | <ins>34.11</ins> | 51.51 | 38.58 | **30.67** | 37.91 | 40.32 |
|
| 252 |
+
| Chinese | 2.25 | 16.03 | 1.14 | **0.73** | 1.08 | <ins>0.91</ins> |
|
| 253 |
+
| Czech | 3.88 | **2.11** | 24.13 | <ins>2.84</ins> | 5.05 | 3.17 |
|
| 254 |
+
| Dutch | 1.14 | **0.80** | <ins>0.91</ins> | 0.99 | 1.20 | 1.15 |
|
| 255 |
+
| English | 2.16 | 2.34 | 2.29 | 1.62 | **1.06** | <ins>2.12</ins> |
|
| 256 |
+
| Finnish | 4.67 | <ins>2.96</ins> | **2.63** | 3.33 | 3.44 | 3.10 |
|
| 257 |
+
| French | 4.10 | 5.22 | 4.53 | **3.05** | <ins>3.82</ins> | 5.28 |
|
| 258 |
+
| German | 1.91 | <ins>0.57</ins> | 0.68 | **0.55** | 1.03 | 0.69 |
|
| 259 |
+
| Greek | 2.02 | **0.99** | 2.84 | 5.74 | 2.97 | <ins>1.24</ins> |
|
| 260 |
+
| Hindi | <ins>6.96</ins> | **5.83** | 19.70 | 14.64 | 14.32 | 7.02 |
|
| 261 |
+
| Indonesian | 1.24 | **1.06** | <ins>1.08</ins> | 1.46 | 2.71 | 1.42 |
|
| 262 |
+
| Italian | <ins>1.54</ins> | 1.74 | 1.56 | **1.27** | 3.16 | 2.28 |
|
| 263 |
+
| Japanese | <ins>3.52</ins> | 10.65 | 4.63 | **2.76** | 7.16 | 3.60 |
|
| 264 |
+
| Korean | <ins>1.75</ins> | 1.87 | 1.96 | **1.18** | 5.30 | 2.42 |
|
| 265 |
+
| Polish | 1.42 | **0.77** | <ins>1.14</ins> | 1.26 | 2.72 | 1.22 |
|
| 266 |
+
| Portuguese | 1.88 | <ins>1.33</ins> | 1.94 | **1.14** | 1.64 | 1.79 |
|
| 267 |
+
| Romanian | 2.88 | **1.35** | 21.58 | 10.74 | 3.36 | <ins>1.93</ins> |
|
| 268 |
+
| Russian | 4.28 | 3.88 | 3.63 | **2.40** | 3.64 | <ins>3.28</ins> |
|
| 269 |
+
| Spanish | 1.03 | 1.08 | 1.44 | **0.91** | <ins>0.96</ins> | 1.21 |
|
| 270 |
+
| Thai | <ins>2.70</ins> | 73.94 | 2.96 | 4.23 | 7.45 | **1.87** |
|
| 271 |
+
| Turkish | 1.52 | **0.70** | <ins>0.82</ins> | 0.87 | 5.45 | 0.92 |
|
| 272 |
+
| Ukrainian | 1.08 | <ins>1.00</ins> | 6.32 | 2.30 | 1.61 | **0.55** |
|
| 273 |
+
| Vietnamese | <ins>0.88</ins> | 73.42 | 3.31 | 7.41 | 3.85 | **0.86** |
|
| 274 |
+
| **Average** | <ins>3.77</ins> | 10.95 | 6.79 | 4.40 | 6.60 | **3.75** |
|
| 275 |
+
|
| 276 |
+
</details>
|
| 277 |
+
|
| 278 |
+
<details>
|
| 279 |
+
<summary><b>SIM (↑) (click to expand)</b></summary>
|
| 280 |
+
|
| 281 |
+
| Language | Minimax | ElevenLabs | VoxCPM2 | FishAudio S2 | dots.tts (Pretrain) | **FireRedTTS3** |
|
| 282 |
+
| --- | --- | --- | --- | --- | --- | --- |
|
| 283 |
+
| Arabic | 73.6 | 70.6 | **79.1** | 75.0 | 77.5 | <ins>78.9</ins> |
|
| 284 |
+
| Cantonese | 77.8 | 67.0 | 83.5 | 80.5 | **84.7** | <ins>83.9</ins> |
|
| 285 |
+
| Chinese | 78.0 | 67.7 | <ins>82.5</ins> | 81.6 | 82.3 | **84.2** |
|
| 286 |
+
| Czech | 79.6 | 68.5 | 78.3 | 79.8 | <ins>83.8</ins> | **86.1** |
|
| 287 |
+
| Dutch | 73.8 | 68.0 | 80.8 | 73.0 | <ins>81.4</ins> | **84.3** |
|
| 288 |
+
| English | 75.6 | 61.3 | 85.4 | 79.7 | **86.9** | <ins>86.8</ins> |
|
| 289 |
+
| Finnish | 83.5 | 75.9 | <ins>89.0</ins> | 81.9 | 88.0 | **89.9** |
|
| 290 |
+
| French | 62.8 | 53.5 | 73.5 | 69.8 | <ins>78.2</ins> | **81.0** |
|
| 291 |
+
| German | 73.3 | 61.4 | <ins>80.3</ins> | 76.7 | 79.5 | **83.3** |
|
| 292 |
+
| Greek | 82.6 | 73.3 | 86.0 | 79.5 | <ins>87.6</ins> | **89.3** |
|
| 293 |
+
| Hindi | 81.8 | 73.0 | <ins>85.6</ins> | 82.1 | 84.5 | **87.2** |
|
| 294 |
+
| Indonesian | 72.9 | 66.0 | 80.0 | 76.3 | <ins>80.8</ins> | **83.3** |
|
| 295 |
+
| Italian | 69.9 | 57.9 | 78.0 | 74.7 | **84.5** | <ins>83.6</ins> |
|
| 296 |
+
| Japanese | 77.6 | 73.8 | <ins>82.8</ins> | 79.6 | **83.1** | <ins>82.8</ins> |
|
| 297 |
+
| Korean | 77.6 | 70.0 | 83.3 | 81.7 | <ins>84.3</ins> | **86.6** |
|
| 298 |
+
| Polish | 80.2 | 72.9 | <ins>88.4</ins> | 81.9 | 87.3 | **89.8** |
|
| 299 |
+
| Portuguese | 80.5 | 71.1 | <ins>83.7</ins> | 78.1 | 83.1 | **86.3** |
|
| 300 |
+
| Romanian | <ins>80.9</ins> | 69.9 | 79.7 | 73.3 | **86.2** | **86.2** |
|
| 301 |
+
| Russian | 76.1 | 67.6 | 81.1 | 79.0 | <ins>83.0</ins> | **84.7** |
|
| 302 |
+
| Spanish | 76.2 | 61.5 | 83.1 | 77.6 | <ins>83.9</ins> | **86.3** |
|
| 303 |
+
| Thai | 80.0 | 58.8 | **84.0** | 78.6 | <ins>83.8</ins> | 83.3 |
|
| 304 |
+
| Turkish | 77.9 | 59.6 | <ins>87.1</ins> | 83.5 | **87.4** | 86.6 |
|
| 305 |
+
| Ukrainian | 73.0 | 64.7 | <ins>79.8</ins> | 74.7 | **80.5** | <ins>79.8</ins> |
|
| 306 |
+
| Vietnamese | 74.3 | 36.9 | 80.6 | 74.0 | <ins>80.7</ins> | **81.3** |
|
| 307 |
+
| **Average** | 76.6 | 65.5 | 82.3 | 78.0 | <ins>83.5</ins> | **84.8** |
|
| 308 |
+
|
| 309 |
+
</details>
|
| 310 |
+
|
| 311 |
+
### Instruct TTS
|
| 312 |
+
|
| 313 |
+
Since Gemini-2.5-pro-preview is inaccessible, Gemini-2.5-pro is used to score all systems.
|
| 314 |
+
|
| 315 |
+
<div align="center">
|
| 316 |
+
|
| 317 |
+
<table style="border-collapse:collapse; margin:0 auto; text-align:center; white-space:nowrap;">
|
| 318 |
+
<thead>
|
| 319 |
+
<tr>
|
| 320 |
+
<th style="text-align:center; padding:6px 14px; border:1px solid #ddd; background-color:#f5f5f5;">Model</th>
|
| 321 |
+
<th style="text-align:center; padding:6px 14px; border:1px solid #ddd; background-color:#f5f5f5;">ZH<br>APS↑ | DSD↑ | RP↑</th>
|
| 322 |
+
<th style="text-align:center; padding:6px 14px; border:1px solid #ddd; background-color:#f5f5f5;">EN<br>APS↑ | DSD↑ | RP↑</th>
|
| 323 |
+
</tr>
|
| 324 |
+
</thead>
|
| 325 |
+
<tbody>
|
| 326 |
+
<tr><td style="text-align:center; padding:6px 14px; border:1px solid #ddd;">MOSS-VoiceGenerator</td><td style="text-align:center; padding:6px 14px; border:1px solid #ddd;">71.6 | 72.5 | 61.3</td><td style="text-align:center; padding:6px 14px; border:1px solid #ddd;">58.8 | 71.8 | 61.6</td></tr>
|
| 327 |
+
<tr><td style="text-align:center; padding:6px 14px; border:1px solid #ddd;">VoiceSculptor-VD</td><td style="text-align:center; padding:6px 14px; border:1px solid #ddd;">74.6 | 63.5 | 62.0</td><td style="text-align:center; padding:6px 14px; border:1px solid #ddd;">– | – | –</td></tr>
|
| 328 |
+
<tr><td style="text-align:center; padding:6px 14px; border:1px solid #ddd;">Ming-Omni-TTS-16B-A3B</td><td style="text-align:center; padding:6px 14px; border:1px solid #ddd;">84.6 | 70.7 | 56.0</td><td style="text-align:center; padding:6px 14px; border:1px solid #ddd;">– | – | –</td></tr>
|
| 329 |
+
<tr><td style="text-align:center; padding:6px 14px; border:1px solid #ddd;">Qwen3-TTS-VD</td><td style="text-align:center; padding:6px 14px; border:1px solid #ddd;">83.7 | 81.7 | 65.8</td><td style="text-align:center; padding:6px 14px; border:1px solid #ddd;">76.4 | 81.4 | 64.2</td></tr>
|
| 330 |
+
<tr><td style="text-align:center; padding:6px 14px; border:1px solid #ddd;"><b>FireRedTTS3-Instruct</b></td><td style="text-align:center; padding:6px 14px; border:1px solid #ddd;"><b>85.8</b> | <b>82.0</b> | <b>69.7</b></td><td style="text-align:center; padding:6px 14px; border:1px solid #ddd;"><b>80.7</b> | <b>82.3</b> | <b>72.0</b></td></tr>
|
| 331 |
+
</tbody>
|
| 332 |
+
</table>
|
| 333 |
+
|
| 334 |
+
</div>
|
| 335 |
+
|
| 336 |
+
|
| 337 |
+
### Speech Editing
|
| 338 |
+
|
| 339 |
+
<details>
|
| 340 |
+
<summary><b>Semantic Editing (click to expand)</b></summary>
|
| 341 |
+
|
| 342 |
+
<div align="center">
|
| 343 |
+
|
| 344 |
+
<table style="border-collapse:collapse; margin:0 auto; text-align:center; white-space:nowrap;">
|
| 345 |
+
<thead>
|
| 346 |
+
<tr>
|
| 347 |
+
<th style="text-align:center; padding:6px 14px; border:1px solid #ddd; background-color:#f5f5f5;">Task</th>
|
| 348 |
+
<th style="text-align:center; padding:6px 14px; border:1px solid #ddd; background-color:#f5f5f5;">Setting</th>
|
| 349 |
+
<th style="text-align:center; padding:6px 14px; border:1px solid #ddd; background-color:#f5f5f5;">Metric</th>
|
| 350 |
+
<th style="text-align:center; padding:6px 14px; border:1px solid #ddd; background-color:#f5f5f5;">Ming-UniAudio-Edit<br>zh | en</th>
|
| 351 |
+
<th style="text-align:center; padding:6px 14px; border:1px solid #ddd; background-color:#f5f5f5;">FireRedTTS3-Instruct<br>zh | en</th>
|
| 352 |
+
</tr>
|
| 353 |
+
</thead>
|
| 354 |
+
<tbody>
|
| 355 |
+
<tr>
|
| 356 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;" rowspan="8"><b>Deletion</b></td>
|
| 357 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;" rowspan="4"><b>basic</b></td>
|
| 358 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">WER (%)↓</td>
|
| 359 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">11.89 | 14.85</td>
|
| 360 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>10.51</b> | <b>14.46</b></td>
|
| 361 |
+
</tr>
|
| 362 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">SIM↑</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>0.78</b> | 0.76</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>0.78</b> | <b>0.79</b></td></tr>
|
| 363 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">ACC (%)↑</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>100.00</b> | 82.22</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>100.00</b> | <b>97.78</b></td></tr>
|
| 364 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">no-edit WER (%)↓</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">11.49 | 24.26</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>10.30</b> | <b>23.97</b></td></tr>
|
| 365 |
+
<tr>
|
| 366 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;" rowspan="4"><b>open</b></td>
|
| 367 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">WER (%)↓</td>
|
| 368 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">22.92 | 27.60</td>
|
| 369 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>16.31</b> | <b>18.62</b></td>
|
| 370 |
+
</tr>
|
| 371 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">SIM↑</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>0.81</b> | 0.74</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>0.81</b> | <b>0.78</b></td></tr>
|
| 372 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">ACC (%)↑</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">82.92 | 85.00</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>89.32</b> | <b>89.50</b></td></tr>
|
| 373 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">no-edit WER (%)↓</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">17.50 | 35.21</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>11.69</b> | <b>27.08</b></td></tr>
|
| 374 |
+
<tr>
|
| 375 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;" rowspan="8"><b>Insertion</b></td>
|
| 376 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;" rowspan="4"><b>basic</b></td>
|
| 377 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">WER (%)↓</td>
|
| 378 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>3.42</b> | <b>6.63</b></td>
|
| 379 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">3.62 | 6.84</td>
|
| 380 |
+
</tr>
|
| 381 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">SIM↑</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>0.83</b> | 0.79</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>0.83</b> | <b>0.83</b></td></tr>
|
| 382 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">ACC (%)↑</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">80.00 | 71.43</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>81.18</b> | <b>76.40</b></td></tr>
|
| 383 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">no-edit WER (%)↓</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>3.52</b> | <b>17.70</b></td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">3.80 | 18.23</td></tr>
|
| 384 |
+
<tr>
|
| 385 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;" rowspan="4"><b>open</b></td>
|
| 386 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">WER (%)↓</td>
|
| 387 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>3.89</b> | <b>7.59</b></td>
|
| 388 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">4.79 | 9.05</td>
|
| 389 |
+
</tr>
|
| 390 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">SIM↑</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">0.83 | 0.79</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>0.84</b> | <b>0.83</b></td></tr>
|
| 391 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">ACC (%)↑</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>79.31</b> | 62.31</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>79.31</b> | <b>65.83</b></td></tr>
|
| 392 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">no-edit WER (%)↓</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>4.10</b> | <b>18.84</b></td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">5.22 | 20.22</td></tr>
|
| 393 |
+
<tr>
|
| 394 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;" rowspan="8"><b>Substitution</b></td>
|
| 395 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;" rowspan="4"><b>basic</b></td>
|
| 396 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">WER (%)↓</td>
|
| 397 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">4.52 | 8.99</td>
|
| 398 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>2.92</b> | <b>5.63</b></td>
|
| 399 |
+
</tr>
|
| 400 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">SIM↑</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">0.82 | 0.78</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>0.83</b> | <b>0.80</b></td></tr>
|
| 401 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">ACC (%)↑</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">78.62 | 59.78</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>87.42</b> | <b>75.42</b></td></tr>
|
| 402 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">no-edit WER (%)↓</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">4.63 | 19.28</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>3.19</b> | <b>17.05</b></td></tr>
|
| 403 |
+
<tr>
|
| 404 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;" rowspan="4"><b>open</b></td>
|
| 405 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">WER (%)↓</td>
|
| 406 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">4.56 | 7.64</td>
|
| 407 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>3.52</b> | <b>6.54</b></td>
|
| 408 |
+
</tr>
|
| 409 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">SIM↑</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>0.83</b> | 0.77</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>0.83</b> | <b>0.80</b></td></tr>
|
| 410 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">ACC (%)↑</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">76.62 | 65.62</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>86.15</b> | <b>71.48</b></td></tr>
|
| 411 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">no-edit WER (%)↓</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">4.75 | <b>18.39</b></td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>3.85</b> | 18.42</td></tr>
|
| 412 |
+
<tr>
|
| 413 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;" rowspan="4"><b>Average</b></td>
|
| 414 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;" rowspan="4"><b>basic+open</b></td>
|
| 415 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">WER (%)↓</td>
|
| 416 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">8.53 | 12.22</td>
|
| 417 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>6.97</b> | <b>10.22</b></td>
|
| 418 |
+
</tr>
|
| 419 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">SIM↑</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>0.82</b> | 0.77</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>0.82</b> | <b>0.80</b></td></tr>
|
| 420 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">ACC (%)↑</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">82.91 | 71.06</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>87.27</b> | <b>78.91</b></td></tr>
|
| 421 |
+
<tr><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">no-edit WER (%)↓</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">7.67 | 22.28</td><td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>6.49</b> | <b>20.90</b></td></tr>
|
| 422 |
+
</tbody>
|
| 423 |
+
</table>
|
| 424 |
+
|
| 425 |
+
</div>
|
| 426 |
+
|
| 427 |
+
</details>
|
| 428 |
+
|
| 429 |
+
<details>
|
| 430 |
+
<summary><b>Acoustic Editing (click to expand)</b></summary>
|
| 431 |
+
|
| 432 |
+
<div align="center">
|
| 433 |
+
|
| 434 |
+
<table style="border-collapse:collapse; margin:0 auto; text-align:center; white-space:nowrap;">
|
| 435 |
+
<thead>
|
| 436 |
+
<tr>
|
| 437 |
+
<th style="text-align:center; padding:6px 14px; border:1px solid #ddd; background-color:#f5f5f5;">Task</th>
|
| 438 |
+
<th style="text-align:center; padding:6px 14px; border:1px solid #ddd; background-color:#f5f5f5;">Metric</th>
|
| 439 |
+
<th style="text-align:center; padding:6px 14px; border:1px solid #ddd; background-color:#f5f5f5;">Ming-UniAudio-Edit<br>ZH | EN</th>
|
| 440 |
+
<th style="text-align:center; padding:6px 14px; border:1px solid #ddd; background-color:#f5f5f5;">FireRedTTS3-Instruct<br>ZH | EN</th>
|
| 441 |
+
</tr>
|
| 442 |
+
</thead>
|
| 443 |
+
<tbody>
|
| 444 |
+
<tr>
|
| 445 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;" rowspan="3"><b>Speed Alteration</b></td>
|
| 446 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">WER(%)↓</td>
|
| 447 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">5.88 | 17.53</td>
|
| 448 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>2.27</b> | <b>4.75</b></td>
|
| 449 |
+
</tr>
|
| 450 |
+
<tr>
|
| 451 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">SIM↑</td>
|
| 452 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">0.66 | 0.57</td>
|
| 453 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>0.80</b> | <b>0.71</b></td>
|
| 454 |
+
</tr>
|
| 455 |
+
<tr>
|
| 456 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">RDE(%)↓</td>
|
| 457 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">6.36 | 5.92</td>
|
| 458 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>4.35</b> | <b>4.29</b></td>
|
| 459 |
+
</tr>
|
| 460 |
+
<tr>
|
| 461 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;" rowspan="2"><b>Pitch Alteration</b></td>
|
| 462 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">WER(%)↓</td>
|
| 463 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">7.45 | 13.37</td>
|
| 464 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>2.34</b> | <b>2.94</b></td>
|
| 465 |
+
</tr>
|
| 466 |
+
<tr>
|
| 467 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">SIM↑</td>
|
| 468 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">0.36 | 0.24</td>
|
| 469 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>0.51</b> | <b>0.44</b></td>
|
| 470 |
+
</tr>
|
| 471 |
+
<tr>
|
| 472 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;" rowspan="3"><b>Volume Alteration</b></td>
|
| 473 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">WER(%)↓</td>
|
| 474 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">1.71 | 1.35</td>
|
| 475 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>1.69</b> | <b>1.26</b></td>
|
| 476 |
+
</tr>
|
| 477 |
+
<tr>
|
| 478 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">SIM↑</td>
|
| 479 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">0.86 | 0.80</td>
|
| 480 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>0.92</b> | <b>0.90</b></td>
|
| 481 |
+
</tr>
|
| 482 |
+
<tr>
|
| 483 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">RAE(%)↓</td>
|
| 484 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;">14.9 | 11.7</td>
|
| 485 |
+
<td style="text-align:center; padding:4px 12px; border:1px solid #ddd;"><b>3.58</b> | <b>4.44</b></td>
|
| 486 |
+
</tr>
|
| 487 |
+
</tbody>
|
| 488 |
+
</table>
|
| 489 |
+
|
| 490 |
+
</div>
|
| 491 |
+
|
| 492 |
+
</details>
|
| 493 |
+
|
| 494 |
+
## Usage Disclaimer
|
| 495 |
+
|
| 496 |
+
- The project incorporates zero-shot voice cloning functionality; Please note that this capability is intended **solely for academic research purposes**.
|
| 497 |
+
- **DO NOT** use this model for **ANY illegal activities**❗️❗️
|
| 498 |
+
- The developers assume no liability for any misuse of this model.
|
| 499 |
+
- If you identify any instances of **abuse**, **misuse**, or **fraudulent** activities related to this project, **please report them to our team immediately.**
|
| 500 |
+
|
| 501 |
+
|
| 502 |
+
## Citation
|
| 503 |
+
|
| 504 |
+
```bib
|
| 505 |
+
@article{fireredtts3,
|
| 506 |
+
title = {FireRedTTS3: Unified Speech Generation and Editing with Semantically Enriched Speech Representations},
|
| 507 |
+
author = {FireRed Team},
|
| 508 |
+
journal = {arXiv preprint},
|
| 509 |
+
year = {2026},
|
| 510 |
+
}
|
| 511 |
+
```
|
| 512 |
+
|
| 513 |
+
|
| 514 |
+
## Acknowledgements
|
| 515 |
+
|
| 516 |
+
- [Qwen3](https://github.com/QwenLM/Qwen3) and [Qwen2-Audio](https://github.com/QwenLM/Qwen2-Audio) for the language model and audio understanding foundations
|
| 517 |
+
- [DiTAR](https://arxiv.org/abs/2502.03930) for the patch-level diffusion autoregressive formulation
|
| 518 |
+
- [X-Codec](https://github.com/zhenye234/xcodec) for the discriminator design used in RedAE training
|
| 519 |
+
- [CAM++](https://modelscope.cn/models/iic/speech_campplus_sv_en_voxceleb_16k) for speaker embedding extraction
|
| 520 |
+
- [fastText](https://fasttext.cc/docs/en/language-identification.html) for automatic language identification
|
| 521 |
+
- [WeTextProcessing](https://github.com/wenet-e2e/WeTextProcessing) (wetext) for the Chinese / English text normalization front-end
|
| 522 |
+
|
| 523 |
+
|
| 524 |
+
## License
|
| 525 |
+
|
| 526 |
+
Released under the [Apache-2.0](LICENSE) license.
|