Freya Team
TL;DR: FreyaTTS is a 183.2M-parameter flow-matching Diffusion Transformer that turns raw Turkish characters into 48 kHz speech in 32 parallel ODE steps, with no phonemizer, no discrete tokens, and no autoregression. It is trained from scratch and released with code, weights, and a public benchmark under Apache-2.0.
We present FreyaTTS, an open, tokenizer-free Turkish speech model designed for reliable, efficient speech synthesis. FreyaTTS advances mid-resource TTS in three dimensions: (i) efficiency, packing competitive Turkish synthesis into a 183.2M-parameter model pretrained from scratch; (ii) Turkish-first, tokenizer-free design, driving generation from a 92-symbol character vocabulary with no phonemizer or discrete speech tokenizer, so that agglutinative morphology, vowel harmony, and in-context spoken-form numbers are learned end-to-end from audio; and (iii) non-autoregressive generation, via a conditional flow-matching Diffusion Transformer that predicts entire utterances in parallel inside the frozen continuous-latent space of AudioVAE2 (16 kHz encode, 48 kHz decode), with explicit cross-attention conditioning that aligns where E2/F5-style implicit alignment fails at this scale. On Freya-TR-Eval, a 495-sentence Turkish benchmark we release, FreyaTTS reaches 8.0% WER and 3.0% CER, and a 7-rater listening study places its naturalness above every same-class open system; on intelligibility it outperforms the larger open systems XTTS-v2 (~470M, 11.1%) and F5-TTS (~336M, 24.3%). Batched-ODE serving delivers 65.2 audio-seconds per second at batch 8 on one RTX 4090, 2.6 times the throughput of the 2B VoxCPM2 serving engine at a third of the memory, and the model runs at or faster than real time on a laptop CPU. We release the model weights, training and inference code, and the benchmark under the Apache-2.0 license.
Every clip is a raw 48 kHz model output, MP3-compressed for the web.
Kimlik doğrulaması için lütfen müşteri numaranızı ve telefon şifrenizi tuşlayınız.
For identity verification, please key in your customer number and phone PIN.
Otomatik ödeme talimatınız elektrik faturası için başarıyla tanımlanmıştır.
Your automatic payment order for the electricity bill has been set up successfully.
Bin dokuz yüz seksen dört yılında doğdum, kırk iki yaşındayım.
I was born in nineteen eighty-four; I am forty-two years old.
Yirmi dokuz Ekim Cumhuriyet Bayramı'nda tüm şubelerimiz kapalıdır.
All our branches are closed on October 29th, Republic Day.
İstinaf başvurusu yasal süresi içinde bölge adliye mahkemesine yapıldı.
The appeal was filed with the regional court of justice within the legal deadline.
WhatsApp üzerinden gönderdiğiniz belgeler tarafımıza ulaştı.
The documents you sent via WhatsApp have reached us.
Eyvah! Anahtarı içeride unuttum, şimdi ne yapacağız?
Oh no! I left the key inside; what do we do now?
Uyku vakti geldi minik kuzucuğum, yarın yine oynarız, tatlı rüyalar.
Bedtime, my little lamb; we'll play again tomorrow, sweet dreams.
Pretraining progression on two fixed prompts. Early checkpoints babble; intelligible Turkish emerges around step 20k. The pretrained prior draws a random voice per generation, which the voice-lock fine-tuning stage then fixes.
| Step 1,500 | Step 8,500 | Step 20,000 | Step 150,000 (final) | |
|---|---|---|---|---|
| “Hesabınıza bin iki yüz elli lira yatırılmıştır.” | ||||
| “Beş bin iki yüz kırk üç numaralı dosyanız onaylandı.” |
All seven open sub-1B systems are evaluated on the 495-sentence Freya-TR-Eval set under one protocol: WER and CER from Whisper-large-v3 with 8 kHz band-matching, and naturalness from a listening study with 7 native Turkish raters (760 ratings, 95% confidence intervals).
Intelligibility (WER ↓)
Whisper-large-v3, 8 kHz band-matched, % (axis clipped at 25)
Naturalness (MOS ↑)
7 native raters, 5-point scale, 95% CI whiskers
Figure 1. Freya-TR-Eval results for open sub-1B systems, ordered by size, FreyaTTS in blue. The compact phonemizer-driven Piper and MMS-TTS reach lower WER; FreyaTTS reaches the best naturalness of any sub-200M open system and lower WER than every larger open system tested (SpeechT5, at 83.4 WER, is clipped for scale; the top-4 MOS confidence intervals overlap).
Generation is one fixed 32-step solve with no KV-cache, so batching is nearly free: a batched-ODE server delivers 65.2 audio-seconds per wall-second at batch 8 on a single RTX 4090, 2.6 times the 2B VoxCPM2 serving engine at a third of the memory. The model also runs at or faster than real time on a laptop CPU.
Table 1. Single RTX 4090, batch size 1, end-to-end, median of 10 runs; TTFT on 22 to 28 word inputs. Best per column in bold. † Serving-style rows: continuous batching for VoxCPM2, a static-batching ODE server for FreyaTTS.
| System | Params | VRAM (GB) | TTFTlong (s) | RTFmed | RTFlong | Throughput (audio-s/s) |
|---|---|---|---|---|---|---|
| FreyaTTS (ours) | 183M | 1.5 | 0.52 | 0.11 | 0.10 | 9.4 (C=4) |
| F5-TTS (tr) | ~336M | 0.8 | 0.74 | 0.13 | 0.05 | 8.4 (C=2) |
| XTTS-v2 (multi) | ~470M | 2.2 | 0.30 | 0.33 | 0.33 | 3.4 (C=2) |
| Spark-TTS | ~0.5B | 5.4 | 14.0 | 1.08 | 1.04 | 1.4 (C=2) |
| VoxCPM2 | ~2B | 5.5 | 4.2 | 0.37 | 0.37 | 1.7 (C=1) |
| VoxCPM2 (serving engine)† | ~2B | 11.4 | 0.14 | 0.15 | 0.13 | 24.8 (C=16) |
| FreyaTTS (batched ODE)† | 183M | 3.8 | 0.54 | n/a | n/a | 65.2 (B=8) |
FreyaTTS reads raw Turkish characters (92 symbols, no phonemizer), predicts how many 25 Hz latent frames the sentence needs, and denoises Gaussian noise of that length into speech latents in 32 Euler steps. A Diffusion Transformer aligns text and audio through cross-attention, and the frozen AudioVAE2 decodes the latents to a 48 kHz waveform. A fixed noise seed keeps the voice deterministic.
Figure 2. Left: the non-autoregressive flow-matching pipeline. Right: one DiT block; each sub-layer (RoPE self-attention, cross-attention over character features, SwiGLU FFN) carries its own zero-initialized adaLN modulation driven by the timestep.
An interactive walkthrough renders the architecture as a navigable 3D scene, in English and Turkish: ten guided steps over the 92-symbol vocabulary, the ConvNeXt encoder, the duration MLP, one exploded DiT block, the 16-layer stack, and the 32-step Euler loop, with tensors at their true dimensions. Self-contained, no external requests, and a text fallback if WebGL is unavailable. Nothing loads until you press start.
The FreyaTTS architecture, step by step. Drag to orbit, scroll to zoom. Open fullscreen.
The model is pretrained from scratch on multi-speaker Turkish, then fine-tuned in two short stages on one consented professional voice: a voice-lock stage that collapses cross-generation pitch spread from 74.9 to 5.0 Hz, and a short-utterance stage over forced-aligned one and two word segments. The released model is the final stage.
Flow-matching loss
Voice lock
Long-horizon drift
Figure 3. Training dynamics. Left: pretraining flow-matching loss, 2.38 to 0.918 over 150k steps; the dashed line marks the single-speaker fine-tuning plateau. Middle: median pitch per generation before and after voice lock. Right: word error rate versus input length, pretraining versus the shipped model with clause chunking.
Freya-TR-Eval is 495 everyday conversational Turkish sentences with a fixed evaluation protocol: Whisper-large-v3 transcription with 8 kHz band-matching, Turkish-aware text normalization on both sides, and jiwer WER/CER. The benchmark and the evaluation code ship with the model under Apache-2.0: dataset at freyavoice/freya-tr-eval, harness at github.com/freyavoiceai/FreyaTTS.
@article{freyatts2026,
title = {FreyaTTS: A Compact Tokenizer-Free Non-Autoregressive
Flow-Matching Model for Turkish Speech Synthesis},
author = {Pamuk, Ahmet Erdem and Yent{\"u}r, {\"O}mer and
Bayrak, Ahmet Tunga and {\"O}zt{\"u}rk, Yavuz Alp Sencer
and Yavuz, Mustafa},
journal = {arXiv preprint arXiv:2607.09530},
year = {2026},
eprint = {2607.09530},
archivePrefix = {arXiv},
primaryClass = {cs.CL},
}