Instructions to use iatagun/DizgeBERT-G2PTTS with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use iatagun/DizgeBERT-G2PTTS with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("token-classification", model="iatagun/DizgeBERT-G2PTTS", trust_remote_code=True)# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("iatagun/DizgeBERT-G2PTTS", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
DizgeBERT-G2PTTS (deneysel, v1)
Türkçe TTS için tam ön uç: ham metinden sözcük başına üç şey üretir ve bunları TTS'e hazır tek bir sesbirim dizisinde birleştirir:
- Sesbirim (v1'de yeni): kural tabanlı
dizge+ söyleyiş sözlüğü (Arapça/Farsça/Batı alıntıları, şapka) + uzun ünlü (ğ/y) kuralları. - Vurgu: vurgulu seslem (sondan sıra) ya da vurgusuz.
- Sınır: sözcükten sonra duraklama var mı, hangi düzeyde (
0/ip/IP, cümle sonucümle).
Deneysel araştırma sürümüdür. Üretim için tasarlanmadı, sınırları aşağıda açıkça yazılı. Beklenmedik çıktılar için lütfen sözlükleri (
resources/) düzeltip geri bildirim verin.
Bu bir HİBRİT hattır — yalnız ağırlıklar yetmez
| Parça | Ne yapar | Nerede |
|---|---|---|
| Kural modülü | Kök sözlüğü (düzensiz vurgulu kökler + ağırlık kuralı), clitic'ler, ünlüsüz sözcükler, sıfat sözlüğüne kapılı pekiştirme (kıpkırmızı) ve -CIk sıfat |
stress_rules.py + resources/*.tsv|txt |
| ELECTRA başlıkları | Kural "varsayılan son seslem" derse: damıtılmış biçimbilim (koşaç, kişi eki, olumsuzluk, -dIr...) ve tüm sınır tahmini |
model.safetensors |
Vurgu kararı sözlük öncelikli: kural belirleyici bir sonuç veriyorsa o; değilse model. Model başlığı tek başına vurgu için yetersizdir (aşağıda). Bu yüzden AutoModel ile yüklerken resources/ klasörü de indirilir ve kullanılır. Sözlükler düz metindir, düzeltme önerilerini bekleriz.
Kullanım
from transformers import AutoModel
m = AutoModel.from_pretrained("iatagun/DizgeBERT-G2PTTS", trust_remote_code=True).eval()
out = m.tag("Yarın İstanbul'a gideceğim, ama havanın nasıl olacağını bilmiyorum.")
print(out["phonemes"]) # TTS'e hazır: sözcük arası boşluk, ˈ vurgu, noktalamasız sınıra | (ip) / ‖ (IP)
for w in out["words"]:
print(w["word"], "".join(w["phones"]), w["stress_from_end"], w["stress_src"], w["boundary"], w["p_break"])
Sesbirim için pip install dizge==0.1.6 gerekir. Söyleyiş seçenekleri config'te: register="özenli" (varsayılan) ya da "gündelik" (iddaa, kılinik, kaat), pron_exceptions, length_rules; yalnız vurgu + sınır için phonemes=False:
m = AutoModel.from_pretrained("iatagun/DizgeBERT-G2PTTS", trust_remote_code=True, register="gündelik")
stress_from_end: vurgulu seslemin sondan sırası (0= son seslem),None= vurgusuz.stress_src:kural:<etiket>(kök, clitic, ünlüsüz, pekiştirme...) ya damodel.boundary:0sınır yok,iporta,IPbüyük,cümlecümlenin son sözcüğü. Noktalama ile birleştirilir (,→ en azip,;→ en azIP).- Girdi
normalize()ile hazırlanır (sayı, kısaltma, tarih açılır; noktalama ayrılır). Uzun metin cümle sınırlarında 254 alt-sözcüklük parçalara bölünür. phones: sözcüğün sesbirim atomları;stress_phone: vurgulu ünlününphonesiçindeki indeksi.
Sesbirim (v1)
Sesbirimi ağırlıklar değil kurallar üretir (DizgeTTS'in eğitim ön ucuyla birebir aynı kod; gidiş-dönüş testi 263 cümlede birebir):
| Katman | Ne düzeltir | Örnek |
|---|---|---|
dizge==0.1.6 |
temel harf-ses dönüşümü, ünlü uyumuna bağlı k/g/l, ünsüz öbeği türemesi | spor → sɨpɔɾ |
Söyleyiş sözlüğü (resources/pronunciation_exceptions.tsv) |
kök + ek zinciriyle: uzun ünlüler, ʕ/ʔ izi, ince l, ön a/œ/ü benzeri ünlüler | saat → saːt, hal → xaːl, kontrol → kʰɔntɾœl, kâğıdı → cʰaɨdɨ |
Son hecesi ince alıntı kökleri (resources/loan_roots.tsv) |
ekleri ince alan 70+ kök (ek uyumu kanıtıyla derlemden çıkarıldı): son ünlü önlenir, l/k incelir | normalde → nɔɾmaldɛ, dikkatli → dIccatlI, itaat → Itaːt |
| Şapka (â, î) | sözlükte olmayan sözcüklerde: k/g/l + â → ince ünsüz + ön a; â → uzun; nispet î → uzun | dergâh → deɾɟax, resmî → resmiː |
| Uzun ünlü kuralları | dizge'nin ː'sini gerçek uzamaya indirger (ğ + ünsüz), yan ünlü ve ünlüler arası ğ'de düşürür |
ağır → ɑɨɾ, dağ → dɑː |
| Ünlü/ünsüz gösterimi | sıradan ö/ü ø/y (œ/Y yalnız alıntıların oe / ü benzeri sesi), y her zaman j, sözcük sonu r ɾ (dizge ɣ) |
döndü → døndy, hayata → xɑjɑtɑ, rol → rœl |
Söyleyiş kararları anadili Türkçe bir dilbilimcinin tarifleridir (özenli kayıt; gündelik varyantlar ayrı). Kapsam sözlükle sınırlıdır: sözlükte olmayan alıntılar dizge'nin okumasını alır.
Eğitim
- Gövde:
iatagun/DizgeBERT-Dep(sabit revizyon; ELECTRAdbmdz/electra-base-turkish-cased-discriminatortemelli), gömme + alt 6 katman dondurulmuş, iki doğrusal başlık. - Vurgu etiketleri: UD Türkçe treebank'lerinde (BOUN, IMST, Kenet) ve Antalia cümlelerinde kural modülünden damıtıldı (UD'de altın UPOS/FEATS, Antalia'da DizgeBERT-Morph çıktısı). İnsan etiketi değildir.
- Sınır etiketleri: yalnız Antalia (CC-BY-4.0, tek konuşmacı, ~4,2 saat okuma) kayıtlarında sözcükler arası ölçülen sessizlik:
< 60 ms→ 0,60–250 ms→ ip,≥ 250 ms→ IP. - 4 epoch, öğrenme oranı 3e-5 (başlıklar 1e-3), Antalia x2 tekrarlı. Epoch seçimi: sınır F1'i en iyiye 0,02 yakın epoch'lar içinden UD son-dışı vurgu uyumu en yüksek olan (epoch 2). Eşik
tau=0,25doğrulama kümesinden.
Sonuçlar (dürüst okuma)
Vurgu — KÖR test (97 sözcük, kural yazılırken bakılmadı)
Rastgele seçilmiş sözcükler, tek başına (cümle bağlamı yok), tek etiketleyici (proje sahibi). Hibrit hat:
| Sistem | Doğruluk |
|---|---|
| DizgeBERT-G2PTTS (hibrit) | 90/97 = %92,8 (%95 GA: %87,6–97,9) |
| Her zaman son seslem | 81/97 = %83,5 |
espeak-ng (tr) |
71/97 = %73,2 |
| Kural + DizgeBERT-Morph hattı (M1b) | %94,8 (fark anlamsız; bu model o hattı Morph'suz, tek modelde damıtır) |
- Geliştirme setinde (kuralların yazıldığı 250 rastgele sözcük) %86,0. İlk 35'lik gold listesinde 33/35, ama bu liste kuralların yazıldığı örnekleri içerir; bağımsız ölçüm değildir.
- Model başlığı tek başına (kuralsız, ilk 35'lik gold): 18/35. Kök sözlüğü ve istisnaları öğrenememiştir. Vurgunun büyük kısmını kural modülü ve sözlükler taşır.
- Model başlığının kural etiketleriyle uyumu (test): UD %96,6 (son-dışı %89,4), Antalia %98,3 (son-dışı %95,3).
Sınır (test: 82 Antalia klibi, 2276 sözcük sınırı; noktalamasız sınırlar)
| Sistem | F1 | P | R |
|---|---|---|---|
DizgeBERT-G2PTTS (tau=0,25) |
0,496 | 0,414 | 0,620 |
| Bağımlılık öbeği kuralı (DizgeBERT-Dep, K=2) | 0,347 |
Fark +0,096…+0,201 (klip bootstrap %95 GA). Baseline'ı anlamlı geçiyor, ama mutlak değer mütevazı: önerilen sınırların yarısından fazlası ölçülen duraklamayla örtüşmüyor.
Sınırlar ve bilinen zaaflar
- Küçük ve tek etiketleyicili değerlendirme. Vurgu kör testi 97 sözcük, tek kişi; ikinci etiketleyici uyumu ölçülmedi. Bağımsız bir değerlendirme yok.
- Sınır tek konuşmacıdan. Antalia okuma sesi; spontan konuşma, haber okuma gibi tarzlarda davranış bilinmiyor. Etiket "≥60 ms sessizlik"tir, dilbilimsel öbek sınırı değildir.
- Vurgu tek başına sözcük üzerinde ölçüldü; cümle içi vurgusuzlaşma (işlev sözcükleri vb.) modellenmiyor.
- Kural kapsamı bilinçli dardır: seslenme, küçültme, ikileme, bileşikler için tam sözlük yok.
- Yer adı ayrımı büyük harfe bağlı (
Ordu/ordu). - Sıfat kapılı kurallar sözlüğe bağlı (UD ADJ lemmalarından türetildi); sözlük dışı sıfatlar kaçar.
- Sesbirim: bağımsız kör sette (120 rastgele + riskli sözcük, tek dilbilimci etiketi) %96,7 doğru (GA ≈ %92-99); ilk sette düzeltmeler öncesi %83,3. Tek etiketleyici; çıktı gösterilerek yargılandı (çapalama olası). Şapkasız eşyazımlılar (hala/hâlâ, kar/kâr) Türkçe okumayla okunur.
- Bu okunuş iyileşmesinin TTS sesine geçişi HENÜZ gösterilemedi: aynı TTS tarifinin (Matcha-TTS, tek konuşmacı Antalia) v1 sesbirimleriyle yeniden eğitimi kör AB'de önceki sürüme karşı 12 / 8 / 10 (fark yok) çıktı (p = 0,50). Olası neden: kayıttaki konuşmacı bu ayrımların bir kısmını (ör. ğ uzunluğu) kendisi yapmıyor.
Lisans ve atıf
Kod/ağırlıklar cc-by-sa-4.0 ile paylaşılıyor. Eğitim verisi: UD Türkçe treebank'leri (BOUN, IMST, Kenet; her birinin kendi lisansına tabidir), Antalia (CC-BY-4.0; atıf: "Antalia (Patientdesk.ai)"), gövde iatagun/DizgeBERT-Dep / dbmdz/electra-base-turkish-cased-discriminator. Bu paketi kullanırken ilgili veri ve gövde lisanslarını da gözetin.
Bu model ses üretmez ve ses kullanmaz; Antalia'dan yalnız sözcükler arası ölçülen sessizlik süreleri (etiket) kullanıldı. Yine de veri sahibinin etik notu geçerlidir: konuşmacıyı taklit etmek, sentetik sesi gerçek kayıt diye sunmak, dolandırıcılık/siyasi robocall için kullanmayın.
Kaynak
Eğitim, kural modülü, değerlendirme ve kör test setleri: iatagun/lemma-rule-based, dal dizgetts-v2 (dizgetts/).
- Downloads last month
- 84
Model tree for iatagun/DizgeBERT-G2PTTS
Base model
iatagun/DizgeBERT-Dep