“Toplantı 15.03.2026'da saat 14:30'da başlıyor.”
Anka TTS, F5-TTS mimarisi üzerinde Türkçe konuşma verisiyle eğitildi. 495 cümlelik testte WER %1,73 sonucunu veriyor.
pip install "anka-tts[tts]"
from anka import AnkaTTS
tts = AnkaTTS.from_pretrained("anka-tts/v0.1", device="cuda")
# varsayılan ses
wav = tts.synthesize("2026'da toplantı 14:30'da mı?")
tts.save_wav(wav, "cikti.wav")
# kendi sesiniz · isteğe bağlı
tts.add_voice("anlatici", "referans.wav",
"Bugün İstanbul'da hafif bir rüzgar var.")
wav = tts.synthesize("Merhaba!", voice="anlatici")
Ağırlıklar from_pretrained ile iniyor;
model CUDA, MPS ve CPU üzerinde aynı arayüzle çalışıyor. Çıktı her seferinde aynı
sözleşmeye uyuyor: 24 kHz, mono, yeniden üretilebilir.
| # | Sistem | Params | Referans ses | WER % | CER % | RTF |
|---|---|---|---|---|---|---|
| 1 | Anka TTS | 336M | Evet | 1,73 ± 0,05 | 0,41 ± 0,05 | 0,160 |
| 2 | Chatterbox MTL | 500M | Evet | 1,84 ± 0,20 | 0,41 ± 0,08 | 0,379 |
| 3 | Piper (tr, dfki) | 16M | Hayır | 3,22 | 0,71 | 0,065 |
| 4 | XTTS-v2 (base) | 470M | Evet | 3,34 ± 0,38 | 1,33 ± 0,20 | 0,140 |
| 5 | MMS-TTS (tr) | 36M | Hayır | 6,41 | 1,52 | 0,015 |
| 6 | Coqui GlowTTS (tr) | 28M | Hayır | 10,75 | 2,92 | 0,016 |
| 7 | FreyaTTS | 183M | Hayır | 12,02 | 4,95 | 0,119 |
| 8 | F5 base (Türkçe yok) | 336M | Evet | 77,84 ± 0,13 | 32,58 ± 0,54 | 0,146 |
Bir milyar parametre altındaki modeller. WER, CER ve RTF'de düşük olan iyi; addaki çubuk WER'i ölçekliyor, taralı olan ölçeğin dışında.
Her sistem üç kez koşuldu; ± aradaki standart sapma. ± taşımayan satırlar referans almayan, deterministik sistemler; tekrarı aynı sesi üretirdi, bir kez koşuldular.
Referans alan her sisteme aynı klip verildi: paketle gelen male sesi.
Ölçümler bütün modeller için speed=1.0 ile gerçekleştirildi. Paketin kendi varsayılanı speed=0.85 ve aynı sette WER %1,50 · CER %0,31 veriyor.
Anka ile Chatterbox sayısal olarak ayrışıyor ama güven aralıkları çakışıyor; bu test ikisini birbirinden ayırmıyor.
Ölçüm tekrarlanabilir: değerlendirme betiğini görüntüleyin ↗
“Toplantı 15.03.2026'da saat 14:30'da başlıyor.”
“Dr. Ayşe Yılmaz'ın raporuna göre üretim %12 arttı.”
Her iki çıktı da varsayılan ayarlarla üretildi; birden çok denemeden seçim yapılmadı.
Pakette hazır iki Türkçe ses geliyor, kadın ve erkek. Kendi kaydınızı bir adla kaydettiğinizde diske kopyalanıyor, sonraki oturumlarda da duruyor; ince ayar, LoRA ya da GPU saati gerekmiyor. Her çağrıda voice= ile kimin konuşacağını seçiyorsunuz, aynı metnin farklı bölümleri farklı seslerle okunabiliyor. Referansın birebir transkripti şart: model süreyi ondan kestiriyor.
Model tek geçişte sınırlı uzunlukta ses üretiyor ve o an hangi ses kullanılıyorsa onun referansı bu pencerenin bir kısmını kaplıyor. Kendi haline bırakılsa F5 bütçe dolduğunda en yakın noktalamadan bölüyor, bu da cümlenin ortasındaki bir virgül olabiliyor. Anka metni önce cümlelere ayırıp pencereye sığdığı kadarını grupluyor, böylece dikiş her zaman cümle sonuna düşüyor. Paragraf sınırı hiç aşılmıyor ve geçişte duraklama uzuyor; tek başına pencereye sığmayan cümle en az zarar veren yerden bölünüyor, bu da uyarıyla söyleniyor.
Metin modele ulaşmadan önce adım sırası sabit bir katmandan geçiyor: tarih, saat, para, yüzde, birim, Roma rakamı, sıra sayısı ve kısaltmalar okunuşa çevriliyor. Sıra sözleşmenin parçası, çünkü tarih adımı sayıdan önce çalışmazsa 15.03.2026 binlik ayraçlı bir sayı sanılıyor. Ek, yazılana göre değil okunuşa göre yeniden kuruluyor; ünlü uyumu buradan geliyor. Kısaltmanın harf harf mi yoksa kelime gibi mi okunacağına bir liste değil Türkçe hece yapısı karar veriyor. Noktalama olduğu gibi kalıyor, en çok da soru işareti: model tonlamayı oradan okuyor.
Klonlama sonucunu belirleyen şey referans kaydı; modelden de parametrelerden de daha çok. Uzun referans üretim penceresinden pay aldığı için geriye sentezlenecek daha az süre kalıyor. Kısa referansın sorunu ise farklı: model ses karakteristiğini yeterince alamıyor. 7-9 saniye ikisinin arasındaki bant.