This is the whole FreyaTTS network: a 183.2M-parameter conditional flow-matching Diffusion Transformer that turns raw Turkish characters into 48 kHz speech. (A thin inference wrapper around it handles chunking, a duration floor, and rare retries.)
Bu, FreyaTTS ağının tamamı: ham Türkçe karakterleri 48 kHz konuşmaya çeviren 183.2M parametreli koşullu flow-matching Diffusion Transformer. (Etrafındaki ince bir çıkarım sarmalayıcısı parçalama, süre tabanı ve nadir yeniden denemeleri üstlenir.)
Data flows bottom to top. Characters enter at the base, a 16-layer DiT in the middle refines noise into AudioVAE2 latents, and the frozen decoder at the top emits the waveform. Drag to orbit, scroll to zoom, Next to walk the model.
Veri aşağıdan yukarı akar. Karakterler tabandan girer, ortadaki 16 katmanlı DiT gürültüyü AudioVAE2 latentlerine dönüştürür, tepedeki donuk decoder dalga formunu üretir. Sürükleyerek döndürün, kaydırarak yakınlaşın, modeli gezmek için İleri.
The input is plain text: "merhaba dünya". Each character is an index into a 92-symbol vocabulary: the 29-letter Turkish alphabet (ç, ğ, ı, ö, ş, ü included), digits, punctuation, whitespace.
Girdi düz metin: "merhaba dünya". Her karakter 92 sembollük bir sözlükteki bir indekstir: 29 harfli Türk alfabesi (ç, ğ, ı, ö, ş, ü dahil), rakamlar, noktalama, boşluk.
There is no BPE, no phonemizer, no grapheme-to-phoneme frontend. Digits are expanded to spoken form before this point, everything else enters raw.
BPE yok, phonemizer yok, grapheme-to-phoneme ön ucu yok. Rakamlar bu noktadan önce okunuşlarına açılır, geri kalan her şey ham girer.
Each index selects one row of the character embedding table. Then four ConvNeXt-1d blocks refine the embedded sequence into character features c, mixing local context along the text axis.
Her indeks, karakter embedding tablosundan bir satır seçer. Ardından dört ConvNeXt-1d bloğu, diziyi metin ekseni boyunca yerel bağlamla harmanlayarak karakter özellikleri c'ye rafine eder.
c is what the transformer conditions on later: it is the model's entire view of the text.
c, transformer'ın daha sonra koşullanacağı şeydir: modelin metne dair tüm görüşü budur.
How long should the speech be? The character features are mask-averaged into one mean vector, and a small MLP predicts log T̂, the log of the latent sequence length.
Konuşma ne kadar sürmeli? Karakter özellikleri maske ortalamasıyla tek bir vektöre indirgenir ve küçük bir MLP, latent dizi uzunluğunun logaritması olan log T̂'yi tahmin eder.
That fixes T, the number of 40 ms latent frames (25 per second). Because denoising runs fully in parallel, the length has to be known up front, so one global prediction is made before anything else.
Bu, T'yi, yani 40 ms'lik latent karelerin sayısını (saniyede 25) sabitler. Gürültü giderme tamamen paralel çalıştığı için uzunluğun baştan bilinmesi gerekir, bu yüzden her şeyden önce tek bir küresel tahmin yapılır.
Generation starts from nothing: x0 ~ N(0, I), a T×64 grid of Gaussian noise in AudioVAE2's continuous latent space. No discrete codes anywhere.
Üretim hiçlikten başlar: x0 ~ N(0, I), AudioVAE2'nin sürekli latent uzayında T×64'lük bir Gauss gürültüsü ızgarası. Hiçbir yerde ayrık kod yok.
Training taught the model a straight-line path xt = (1-t)·x0 + t·x1 between this noise and real speech latents, with padding frames masked out of the loss.
Eğitim, modele bu gürültüyle gerçek konuşma latentleri arasında düz çizgi bir yol öğretti: xt = (1-t)·x0 + t·x1, dolgu kareleri kayıptan maskelenmiş halde.
Three residual sub-layers: self-attention over the frame axis with RoPE (10 heads, hidden size 640), cross-attention where frame queries read the character features c, and a SwiGLU feed-forward expanding 640 to 2048 and back.
Üç artıklı alt katman: kare ekseni üzerinde RoPE'lu self-attention (10 başlık, gizli boyut 640), kare sorgularının karakter özellikleri c'yi okuduğu cross-attention ve 640'ı 2048'e açıp geri kapatan SwiGLU feed-forward.
The ODE time t enters through adaLN-zero: a 9-way modulation, a shift, a scale, and a gate for each of the three sub-layers, initialized so every block starts as the identity.
ODE zamanı t, adaLN-zero üzerinden girer: üç alt katmanın her biri için bir kaydırma, bir ölçek ve bir kapı olmak üzere 9 yollu bir modülasyon, her blok birim dönüşüm olarak başlayacak şekilde ilklendirilir.
Sixteen of these blocks, stacked, hidden size 640 throughout. Together with the text encoder and duration head they add up to 183.2M trainable parameters (the AudioVAE2 stays frozen).
Bu bloklardan on altı tanesi üst üste, gizli boyut baştan sona 640. Metin kodlayıcı ve süre başlığıyla birlikte 183.2M eğitilebilir parametre ederler (AudioVAE2 donuk kalır).
Watch the residual stream climb: one pass through all 16 layers produces a single velocity estimate, the direction the latent frames should move in this ODE step.
Artık akışının tırmanışını izleyin: 16 katmandan tek bir geçiş, tek bir hız kestirimi üretir, latent karelerin bu ODE adımında hareket edeceği yön.
Inference integrates the learned velocity field with a plain 32-step deterministic Euler ODE: x advances by v·Δt while t ticks 0 to 1 in 1/32 increments, the whole T×64 canvas passing through the stack once per step.
Çıkarım, öğrenilmiş hız alanını düz bir 32 adımlı deterministik Euler ODE ile entegre eder: t 0'dan 1'e 1/32'lik artışlarla ilerlerken x, v·Δt kadar yol alır ve T×64'lük tuval her adımda yığından bir kez geçer.
No classifier-free guidance, no sway sampling. 32 deterministic steps are sufficient, with a thin wrapper re-drawing x0 only on the rare voicing-check failure.
Classifier-free guidance yok, sway sampling yok. 32 deterministik adım yeterli, ince bir sarmalayıcı yalnızca nadir seslilik kontrolü hatasında x0'ı yeniden çeker.
The finished latents never become tokens. AudioVAE2's decoder, frozen throughout training, maps the T×64 grid straight to a 48 kHz waveform (its encoder side reads 16 kHz).
Bitmiş latentler asla token olmaz. Eğitim boyunca donuk kalan AudioVAE2 decoder'ı, T×64 ızgarayı doğrudan 48 kHz dalga formuna çevirir (kodlayıcı tarafı 16 kHz okur).
One honest caveat from the paper: the 48 kHz output fixes the sample rate, not the bandwidth. The shipped voice keeps a telephony-band fidelity ceiling inherited from its 16 kHz training audio.
Makaleden dürüst bir not: 48 kHz çıkış örnekleme hızını sabitler, bant genişliğini değil. Yayınlanan ses, 16 kHz eğitim verisinden miras kalan telefon bandı kalite tavanını korur.
92-symbol characters, 4 ConvNeXt blocks, one duration MLP, 16 DiT layers at d = 640, 32 Euler steps, one frozen decoder.
92 sembollük karakterler, 4 ConvNeXt bloğu, bir süre MLP'si, d = 640'ta 16 DiT katmanı, 32 Euler adımı, bir donuk decoder.
Continue with the pipeline explainer or the paper: arXiv:2607.09530.
İşleme hattı sayfasıyla devam edin ya da makale: arXiv:2607.09530.