Open release
Antalia 1 — an open Turkish text-to-speech model.
Development discontinued; released in full. One professional voice, about 300 million parameters, rectified-flow acoustic model at 24 kHz. This page lets you listen to what it does well and where it falls short, with the numbers behind each sample.
- 304.6M parameters
- 24 kHz output
- 67.55 h Common Voice + FLEURS foundation data
- 5.0 h of the released voice
- Turkish only, grapheme input
Listen
Two samples per category, raw and selected
Twenty prompts from the 120-prompt turkish-v2 evaluation suite, two per category. Each card plays the same sentence twice: the first random seed as generated, and the best of eight seeds chosen by an automatic score (WavLM speaker similarity minus Whisper character error rate, minus small F0-envelope and timbre penalties). CER is Whisper-large-v3 character error rate against the prompt; Sim is WavLM x-vector cosine similarity to the voice actor’s recordings. Selection costs 8× compute.
Where it fails
Numbers, normalization and foreign terms
These are the prompts with the highest error rates in the suite: six were the worst single-seed results, three the worst results after selection. Some fail on one seed and are recovered by best-of-8 selection; others are not recovered by any seed within the selection score. The note under each sentence shows the CER range across all eight candidates.
Long inputs
One duration for the whole input
The model predicts a single total frame count for each input from the pooled text encoding; there are no per-token durations and no aligner. On long text that prediction under-budgets: the same 370-character passage renders as 9.1 s of rushed, mumbled speech when fed in one pass, and as 34.8 s when the inference stack splits it at clause boundaries (≤120 characters, 160 ms pauses, a floor of 0.085 s per non-space character). Chunking cut long-form WER from 36.6 % to 10.7 % on a single seed.
Foundation model, unconditioned
Antalia 1 Foundation is the speaker-agnostic base (299.6M parameters, 100,000 updates on 67.55 h of Common Voice 26 and FLEURS Turkish). With speaker id 0 it produces an averaged voice that belongs to nobody. Single-seed CER on the suite is 0.18; these two samples are what the fine-tuning stages start from.
16 steps instead of 32
Halving the Euler steps reduced generation time by 45.1 %. Mean speaker similarity stayed within 0.0006 of the 32-step recipe; the 10th-percentile similarity was lower. The release recipe uses 32 steps.
Assessment
What works, what does not
What works
- Short conversational Turkish is intelligible. Single-seed CER 0.053 across the suite (p90 0.135); best-of-8 CER 0.030 (p90 0.101).
- Grapheme input with a deterministic normalizer. Numbers, dates, currency and abbreviations are spelled out in code before synthesis; no phoneme dictionary is needed.
- Clause chunking makes long inputs usable. Long-form WER 36.6 % → 10.7 % with ≤120-character chunks.
- A frozen, transparent vocoder. BigVGAN v2 24 kHz measures within ±0.4 dB on real-mel reconstruction, so errors you hear come from the acoustic model.
- The release is complete. Both checkpoints, the training, selection and evaluation code, the 120-prompt suite, the listening protocol and its raw results are public. The voice actor’s recordings are not.
What does not
- Voice similarity. Automated similarity reads 0.93–0.94, but a native listener who knows the voice rated 0 of 12 synthesized-vs-real pairs as the same person. The gap is a timbre bias in the presence band (+4.0 dB at 4.7–6.8 kHz). This is the biggest limitation.
- Long inputs. The total-duration head under-budgets; without clause chunking (≤120 characters) and a per-character frame floor, long sentences rush and mumble.
- Numbers, normalization-heavy text, foreign names and abbreviations have the highest CER. Best-of-8 partially recovers them; some prompts fail on all eight seeds.
- Single-seed variance is large. Per-prompt CER spreads up to 0.00–0.17 across seeds. The headline numbers depend on best-of-8 selection with Whisper and WavLM scorers, which costs 8× compute.
- One fixed voice. No zero-shot cloning, Turkish only, 24 kHz, grapheme input.
- No multi-listener MOS, no memorization audit, no watermark.
- Latency. On an A100 with 32 steps and a resident model, a 5 s utterance takes about 2.1–2.3 s after warm-up; the first request about 6 s. On the cancelled Cloud Run L4 staging, time-to-first-audio was p50 5.0 s / p95 9.2 s at low load.
Human listening
One listener, twenty-seven trials, one verdict
A comparative MOS session was run on 2026-08-09 with a single native listener, the project owner, who knows the voice actor’s voice. 27 non-catch trials; the 3 catch trials were rated correctly. Pooled CMOS was −0.667 ± 0.653 toward the candidate. The gated serving recipe scored +0.267 ± 0.728 against the plain recipe (n = 15). Against the real recordings, synthesized speech scored −1.833 ± 0.757 (n = 12) and the listener judged 0 of 12 pairs to be the same person.
Per category: emotion +2.0, general +2.0, questions +0.2, acknowledgement 0.0, long −0.5, names and places −1.0, voice agent −1.0, foreign −1.14, numeric −2.0, normalization −2.5.
The session rated the v5 predecessor checkpoint. The timbre penalty in selection and the adapter stage that became Antalia 1 were the response to it; they lowered the measured penalty from 2.585 to 1.997, still outside the real-voice range of 0.47–0.98. A ≥3-listener protocol was designed and never run. No multi-listener MOS exists for this model, and automated speaker similarity should not be read as evidence of identity.
- Same person
- 0 / 12anchored synth vs real
- CMOS vs real
- −1.83± 0.76, n = 12
- Pooled CMOS
- −0.67± 0.65, n = 27
- Listeners
- 1native, informed
Architecture
Characters in, mel frames out
An independent implementation of a CrossFlow-style rectified-flow model. Graphemes are encoded once; the acoustic decoder denoises 100-band log-mel frames conditioned on them through cross-attention. It does not use or depend on F5-TTS or FreyaTTS weights, code, audio or data.
| System | CER mean | CER p90 | WER mean | Sim mean | Sim p10 |
|---|---|---|---|---|---|
| Foundation v3 @100k, unconditioned, single seed | 0.1835 | 0.4049 | 0.3952 | 0.8162* | 0.625* |
| v5 consistency @6000, single seed | 0.0840 | 0.2325 | 0.1870 | 0.9315 | 0.8913 |
| v5 best-of-8 (timbre-gated, w = 0.05) | 0.0375 | 0.1127 | 0.1059 | 0.9423 | 0.9113 |
| Antalia 1 (adapter v2 @1400), single seed | 0.0528 | 0.1348 | 0.1297 | 0.9331 | 0.9054 |
| Antalia 1 best-of-8 (timbre-gated) | 0.0298 | 0.1007 | 0.0934 | 0.9445 | 0.9170 |
* Foundation similarity is measured against the released voice, which the foundation never saw; it is reported only as the verifier’s floor. Similarity numbers above 0.93 did not correspond to human identity judgements (see Human listening).
Run it locally
Synthesize a sentence
Nothing is hosted. The loader pulls the checkpoint from Hugging Face and the vocoder from nvidia/bigvgan_v2_24khz_100band_256x. A GPU is recommended; the numbers on this page were measured on an A100.
-
Clone the repository and install the package.
git clone https://github.com/0daycloud/antalia cd antalia uv sync # or: pip install -e . -
Set up the BigVGAN source tree. The vocoder is not redistributed: the repository pins commit
7d2b4545and ships a one-linehuggingface_hubcompatibility patch. Follow the “Vocoder” section of the README.# BigVGAN source tree (pinned commit + one-line hub patch), see README "Vocoder" -
Synthesize.
python scripts/synthesize-crossflow.py \ --checkpoint cloud0day3/antalia-1 \ --vocoder nvidia/bigvgan_v2_24khz_100band_256x \ --speaker voicedata-candidate-b \ --text "Merhaba" \ --output merhaba.wav
--checkpoint accepts a Hub repo id, a local release directory or a training .pt file. For best-of-8 selection, generate seed candidates with --seed-candidates 8 and run scripts/select-best-of-n.py with timbre-profile.json and envelope-stats.json from the weights repository.