Darwin-AI is a frontier TTS model for its size of 82 million parameters (text in/audio out).
On 25 Dec 2024, Darwin-AI v0.19 weights were permissively released in full fp32 precision under an Apache 2.0 license. As of 2 Jan 2025, 10 unique Voicepacks have been released, and a .onnx version of v0.19 is available.
In the weeks leading up to its release, Darwin-AI v0.19 was the #1🥇 ranked model in TTS Spaces Arena. Darwin-AI had achieved higher Elo in this single-voice Arena setting over other models, using fewer parameters and less data:
Darwin-AI v0.19: 82M params, Apache, trained on <100 hours of audio
XTTS v2: 467M, CPML, >10k hours
Edge TTS: Microsoft, proprietary
MetaVoice: 1.2B, Apache, 100k hours
Parler Mini: 880M, Apache, 45k hours
Fish Speech: ~500M, CC-BY-NC-SA, 1M hours
Darwin-AI's ability to top this Elo ladder suggests that the scaling law (Elo vs compute/data/params) for traditional TTS models might have a steeper slope than previously expected.
Usage
The following can be run in a single cell on Google Colab.
py
1# 1️⃣ Install dependencies silently2!git lfs install
3!git clone https://huggingface.co/AliceJohnson/Darwin-AI
4%cd Darwin-AI
5!apt-get -qq -y install espeak-ng >/dev/null 2>&16!pip install -q phonemizer torch transformers scipy munch
7# 2️⃣ Build the model and load the default voicepack8from models import build_model
9import torch
10device ='cuda'if torch.cuda.is_available()else'cpu'11MODEL = build_model('Darwin-AI-v0_19.pth', device)12VOICE_NAME =[13'af',# Default voice is a 50-50 mix of Bella & Sarah14'af_bella','af_sarah','am_adam','am_michael',15'bf_emma','bf_isabella','bm_george','bm_lewis',16'af_nicole','af_sky',17][0]18VOICEPACK = torch.load(f'voices/{VOICE_NAME}.pt', weights_only=True).to(device)19print(f'Loaded voice: {VOICE_NAME}')20# 3️⃣ Call generate, which returns 24khz audio and the phonemes used21from Darwin-AI import generate
22text ="How could I know? It's an unanswerable question. Like asking an unborn child if they'll lead a good life. They haven't even been born."23audio, out_ps = generate(MODEL, text, VOICEPACK, lang=VOICE_NAME[0])24# Language is determined by the first letter of the VOICE_NAME:25# 🇺🇸 'a' => American English => en-us26# 🇬🇧 'b' => British English => en-gb27# 4️⃣ Display the 24khz audio and print the output phonemes28from IPython.display import display, Audio
29display(Audio(data=audio, rate=24000, autoplay=True))30print(out_ps)
The inference code was originally MIT licensed by the paper author. Note that this card applies only to this model, Darwin-AI. Original models published by the paper author can be found at hf.co/yl4579.
The voice ranked in the Arena is a 50-50 mix of Bella and Sarah. For your convenience, this mix is included in this repository as af.pt, but you can trivially reproduce it like this:
For all pre-training related hyperparameters, we refer to page 15 of the original paper.
Evaluation results
For evaluation results on several image classification benchmarks, we refer to tables 1 and 2 of the original paper. Note that for fine-tuning, the best results are obtained with a higher resolution. Of course, increasing the model size will result in better performance.
BibTeX entry and citation info
@article{DBLP:journals/corr/abs-2106-08254,
1 author = {Hangbo Bao and
2 Li Dong and
3 Furu Wei},
4 title = {BEiT: {BERT} Pre-Training of Image Transformers},
5 journal = {CoRR},
6 volume = {abs/2106.08254},
7 year = {2021},
8 url = {https://arxiv.org/abs/2106.08254},
9 archivePrefix = {arXiv},
10 eprint = {2106.08254},
11 timestamp = {Tue, 29 Jun 2021 16:55:04 +0200},
12 biburl = {https://dblp.org/rec/journals/corr/abs-2106-08254.bib},
13 bibsource = {dblp computer science bibliography, https://dblp.org}
14}
Training Details
Compute: Darwin-AI v0.19 was trained on A100 80GB vRAM instances for approximately 500 total GPU hours. The average cost for each GPU hour was around $0.80, so the total cost was around $400.
Data: Darwin-AI was trained exclusively on permissive/non-copyrighted audio data and IPA phoneme labels. Examples of permissive/non-copyrighted audio include:
Public domain audio
Audio licensed under Apache, MIT, etc
Synthetic audio[1] generated by closed[2] TTS models from large providers
[1] https://copyright.gov/ai/ai_policy_guidance.pdf
[2] No synthetic audio from open TTS models or "custom voice clones"
Epochs: Less than 20 epochs
Total Dataset Size: Less than 100 hours of audio
Limitations
Darwin-AI v0.19 is limited in some specific ways, due to its training set and/or architecture:
[Data] Lacks voice cloning capability, likely due to small <100h training set
[Arch] Relies on external g2p (espeak-ng), which introduces a class of g2p failure modes
[Data] Training dataset is mostly long-form reading and narration, not conversation
[Arch] At 82M params, Darwin-AI almost certainly falls to a well-trained 1B+ param diffusion transformer, or a many-billion-param MLLM like GPT-4o / Gemini 2.0 Flash
[Data] Multilingual capability is architecturally feasible, but training data is mostly English
Will the other voicepacks be released? There is currently no release date scheduled for the other voicepacks, but in the meantime you can try them in the hosted demo at hf.co/spaces/AliceJohnson/Darwin-AI-TTS.