Update README.md
Browse files
README.md
CHANGED
|
@@ -1,3 +1,288 @@
|
|
| 1 |
-
---
|
| 2 |
-
|
| 3 |
-
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
language:
|
| 3 |
+
- tr
|
| 4 |
+
license: apache-2.0
|
| 5 |
+
library_name: transformers
|
| 6 |
+
tags:
|
| 7 |
+
- automatic-speech-recognition
|
| 8 |
+
- asr
|
| 9 |
+
- whisper
|
| 10 |
+
- turkish
|
| 11 |
+
- lora
|
| 12 |
+
- peft
|
| 13 |
+
- speech-recognition
|
| 14 |
+
- faster-whisper
|
| 15 |
+
datasets:
|
| 16 |
+
- ysdede/commonvoice_17_tr_fixed
|
| 17 |
+
- emre/Open_SLR108_Turkish_10_hours
|
| 18 |
+
metrics:
|
| 19 |
+
- wer
|
| 20 |
+
- cer
|
| 21 |
+
base_model: openai/whisper-base
|
| 22 |
+
pipeline_tag: automatic-speech-recognition
|
| 23 |
+
---
|
| 24 |
+
|
| 25 |
+
# Uran — Türkçe Otomatik Konuşma Tanıma Modeli
|
| 26 |
+
|
| 27 |
+
**Uran**, **Curiosity Technology** tarafından geliştirilen Türkçe odaklı bir otomatik konuşma tanıma modelidir.
|
| 28 |
+
|
| 29 |
+
Model, OpenAI’nin **Whisper-base** mimarisi üzerine **LoRA (Low-Rank Adaptation)** yöntemiyle fine-tune edilmiştir. Amacı; Türkçe konuşmaları hafif, hızlı ve pratik şekilde yazılı metne dönüştürmek için kullanılabilecek açık, geliştirilebilir ve production’a uygun bir temel sunmaktır.
|
| 30 |
+
|
| 31 |
+
Uran, Curiosity Technology’nin Türkçe yapay zekâ ekosisteminde, [MARS](https://huggingface.co/curiositytech/MARS) dil modeli ailesinin yanında konumlanan ilk konuşma tanıma modelidir.
|
| 32 |
+
|
| 33 |
+
---
|
| 34 |
+
|
| 35 |
+
## “Uran” İsminin Anlamı
|
| 36 |
+
|
| 37 |
+
**Uran**, Türkçe ve Türkî kültürel bağlamda **savaş narası, ortak çağrı, parola, şiar veya bir topluluğu aynı amaç etrafında birleştiren söz** anlamlarıyla ilişkilendirilen güçlü bir kelimedir.
|
| 38 |
+
|
| 39 |
+
Tarihsel bozkır kültüründe *uran*, yalnızca bir sesleniş değil; aynı zamanda aidiyet, yön, birlik ve harekete geçme çağrısıdır. Bu nedenle Türkçe konuşma tanıma modeli için oldukça anlamlı bir isimdir: **Uran, insan sesini — çağrıyı, komutu, cümleyi ve ifadeyi — yazılı dile dönüştürür.**
|
| 40 |
+
|
| 41 |
+
Curiosity Technology’nin Türkçe AI ekosisteminde Uran, ses odaklı ilk model olarak konumlanır. MARS ailesi dil ve akıl yürütme tarafını temsil ederken, Uran insan sesini anlayan ve onu makine tarafından işlenebilir metne dönüştüren katmanı temsil eder.
|
| 42 |
+
|
| 43 |
+
Kısaca:
|
| 44 |
+
|
| 45 |
+
> **Uran, sesin zekâya dönüşen çağrısıdır.**
|
| 46 |
+
|
| 47 |
+
---
|
| 48 |
+
|
| 49 |
+
## Model Özeti
|
| 50 |
+
|
| 51 |
+
| Alan | Değer |
|
| 52 |
+
|---|---|
|
| 53 |
+
| Model adı | Uran |
|
| 54 |
+
| Görev | Automatic Speech Recognition / Speech-to-Text |
|
| 55 |
+
| Dil | Türkçe |
|
| 56 |
+
| Base model | openai/whisper-base |
|
| 57 |
+
| Mimari | Whisper-base |
|
| 58 |
+
| Fine-tuning yöntemi | LoRA / PEFT |
|
| 59 |
+
| Base model parametre sayısı | 74M |
|
| 60 |
+
| Eğitim verisi | Yaklaşık 80 saat Türkçe konuşma |
|
| 61 |
+
| Çıktı formatları | PyTorch, LoRA adapter, CTranslate2 |
|
| 62 |
+
| Lisans | Apache 2.0 |
|
| 63 |
+
|
| 64 |
+
---
|
| 65 |
+
|
| 66 |
+
## Model Detayları
|
| 67 |
+
|
| 68 |
+
- **Base architecture:** Whisper-base
|
| 69 |
+
- **Fine-tuning:** LoRA
|
| 70 |
+
- **LoRA rank:** 32
|
| 71 |
+
- **LoRA alpha:** 64
|
| 72 |
+
- **Target modules:** attention projection katmanları ve MLP katmanları
|
| 73 |
+
- **Eğitim veri setleri:**
|
| 74 |
+
- Common Voice 17 Turkish
|
| 75 |
+
- OpenSLR-108 Turkish subset
|
| 76 |
+
- **Eğitim donanımı:** Google Colab Pro, NVIDIA L4 24GB
|
| 77 |
+
- **Eğitim süresi:** Yaklaşık 5 saat
|
| 78 |
+
- **Optimizer:** AdamW
|
| 79 |
+
- **Learning rate schedule:** Cosine schedule
|
| 80 |
+
- **Final model boyutları:**
|
| 81 |
+
- PyTorch model: yaklaşık 290MB
|
| 82 |
+
- CTranslate2 INT8 model: yaklaşık 75MB
|
| 83 |
+
|
| 84 |
+
---
|
| 85 |
+
|
| 86 |
+
## Performans
|
| 87 |
+
|
| 88 |
+
### Common Voice 17 Turkish Test Set
|
| 89 |
+
|
| 90 |
+
| Metrik | Değer |
|
| 91 |
+
|---|---:|
|
| 92 |
+
| WER | 38.5% |
|
| 93 |
+
| CER | 10.3% |
|
| 94 |
+
|
| 95 |
+
Değerlendirme konfigürasyonu:
|
| 96 |
+
|
| 97 |
+
- `beam_size=5`
|
| 98 |
+
- Türkçe dil zorlaması
|
| 99 |
+
- Transcription task
|
| 100 |
+
- Harici language model kullanılmadı
|
| 101 |
+
- Dataset’e özel ileri seviye text normalization uygulanmadı
|
| 102 |
+
|
| 103 |
+
> Common Voice test seti farklı konuşmacılar, kayıt koşulları ve değişken ses kalitesi içerir.
|
| 104 |
+
> CER metriği, modelin Türkçe karakter ve kelime yapısını belirli seviyede yakalayabildiğini gösterir. WER değeri ise daha büyük, temiz ve domain odaklı Türkçe konuşma verileriyle geliştirilebilir.
|
| 105 |
+
|
| 106 |
+
---
|
| 107 |
+
|
| 108 |
+
## Latency
|
| 109 |
+
|
| 110 |
+
### CTranslate2 INT8 — 5 saniyelik audio örneği
|
| 111 |
+
|
| 112 |
+
| Donanım | Latency | RTF |
|
| 113 |
+
|---|---:|---:|
|
| 114 |
+
| Intel i7 12th Gen CPU | ~250–400ms | ~0.06x |
|
| 115 |
+
| CUDA GPU | ~80–120ms | ~0.02x |
|
| 116 |
+
|
| 117 |
+
> Latency; CPU thread sayısı, audio uzunluğu, VAD ayarı, beam size ve kullanılan donanıma göre değişebilir.
|
| 118 |
+
|
| 119 |
+
---
|
| 120 |
+
|
| 121 |
+
## Kullanım
|
| 122 |
+
|
| 123 |
+
### Önerilen Kullanım: CTranslate2 / faster-whisper
|
| 124 |
+
|
| 125 |
+
Production senaryoları için CTranslate2 versiyonu önerilir. Daha küçük, daha hızlı ve CPU üzerinde daha verimli çalışır.
|
| 126 |
+
|
| 127 |
+
```python
|
| 128 |
+
from faster_whisper import WhisperModel
|
| 129 |
+
|
| 130 |
+
model = WhisperModel(
|
| 131 |
+
"curiositytech/uran-stt-base-ct2",
|
| 132 |
+
device="cpu", # GPU için "cuda"
|
| 133 |
+
compute_type="int8", # GPU için "int8_float16"
|
| 134 |
+
cpu_threads=4,
|
| 135 |
+
)
|
| 136 |
+
|
| 137 |
+
segments, info = model.transcribe(
|
| 138 |
+
"audio.wav",
|
| 139 |
+
language="tr",
|
| 140 |
+
beam_size=5,
|
| 141 |
+
vad_filter=True,
|
| 142 |
+
condition_on_previous_text=False,
|
| 143 |
+
)
|
| 144 |
+
|
| 145 |
+
text = " ".join(segment.text.strip() for segment in segments)
|
| 146 |
+
print(text)
|
| 147 |
+
```
|
| 148 |
+
|
| 149 |
+
---
|
| 150 |
+
|
| 151 |
+
### Transformers / PyTorch
|
| 152 |
+
|
| 153 |
+
```python
|
| 154 |
+
from transformers import WhisperForConditionalGeneration, WhisperProcessor
|
| 155 |
+
import torch
|
| 156 |
+
import librosa
|
| 157 |
+
|
| 158 |
+
model = WhisperForConditionalGeneration.from_pretrained("curiositytech/uran-stt-base")
|
| 159 |
+
processor = WhisperProcessor.from_pretrained("curiositytech/uran-stt-base")
|
| 160 |
+
|
| 161 |
+
audio, _ = librosa.load("audio.wav", sr=16000)
|
| 162 |
+
|
| 163 |
+
inputs = processor(
|
| 164 |
+
audio,
|
| 165 |
+
sampling_rate=16000,
|
| 166 |
+
return_tensors="pt"
|
| 167 |
+
)
|
| 168 |
+
|
| 169 |
+
with torch.no_grad():
|
| 170 |
+
generated_ids = model.generate(
|
| 171 |
+
inputs.input_features,
|
| 172 |
+
language="tr",
|
| 173 |
+
task="transcribe",
|
| 174 |
+
num_beams=5,
|
| 175 |
+
max_new_tokens=225,
|
| 176 |
+
)
|
| 177 |
+
|
| 178 |
+
text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
|
| 179 |
+
print(text)
|
| 180 |
+
```
|
| 181 |
+
|
| 182 |
+
---
|
| 183 |
+
|
| 184 |
+
### LoRA Adapter ile Custom Merge
|
| 185 |
+
|
| 186 |
+
```python
|
| 187 |
+
from transformers import WhisperForConditionalGeneration
|
| 188 |
+
from peft import PeftModel
|
| 189 |
+
|
| 190 |
+
base_model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-base")
|
| 191 |
+
|
| 192 |
+
adapter_model = PeftModel.from_pretrained(
|
| 193 |
+
base_model,
|
| 194 |
+
"curiositytech/uran-stt-base-lora"
|
| 195 |
+
)
|
| 196 |
+
|
| 197 |
+
merged_model = adapter_model.merge_and_unload()
|
| 198 |
+
```
|
| 199 |
+
|
| 200 |
+
---
|
| 201 |
+
|
| 202 |
+
## Eğitim Konfigürasyonu
|
| 203 |
+
|
| 204 |
+
| Parametre | Değer |
|
| 205 |
+
|---|---:|
|
| 206 |
+
| Base model | openai/whisper-base |
|
| 207 |
+
| LoRA rank | 32 |
|
| 208 |
+
| LoRA alpha | 64 |
|
| 209 |
+
| LoRA target modules | q_proj, k_proj, v_proj, out_proj, fc1, fc2 |
|
| 210 |
+
| Effective batch size | 32 |
|
| 211 |
+
| Learning rate | 1e-3 |
|
| 212 |
+
| Scheduler | Cosine |
|
| 213 |
+
| Warmup steps | 500 |
|
| 214 |
+
| Total steps | 8,000 |
|
| 215 |
+
| Gradient checkpointing | Enabled |
|
| 216 |
+
| Mixed precision | fp16 |
|
| 217 |
+
|
| 218 |
+
---
|
| 219 |
+
|
| 220 |
+
## Kullanım Alanları
|
| 221 |
+
|
| 222 |
+
Uran şu alanlarda kullanılmak üzere geliştirilmiştir:
|
| 223 |
+
|
| 224 |
+
- Türkçe speech-to-text uygulamaları
|
| 225 |
+
- Voice assistant prototipleri
|
| 226 |
+
- Çağrı merkezi transkripsiyon deneyleri
|
| 227 |
+
- Türkçe ASR araştırmaları
|
| 228 |
+
- Edge veya CPU dostu konuşma tanıma sistemleri
|
| 229 |
+
- Kiosk, asistan ve kurumsal sesli arayüz prototipleri
|
| 230 |
+
|
| 231 |
+
---
|
| 232 |
+
|
| 233 |
+
## Limitler
|
| 234 |
+
|
| 235 |
+
- Model, Whisper-base üzerine kurulduğu için daha büyük Whisper varyantlarına göre kapasitesi sınırlıdır.
|
| 236 |
+
- Gürültülü ortamlarda performans düşebilir.
|
| 237 |
+
- Havalimanı, AVM, sokak, kalabalık iç mekân gibi ortamlarda hata oranı artabilir.
|
| 238 |
+
- Güçlü aksan, lehçe, üst üste konuşma ve teknik terimler transkripsiyon kalitesini etkileyebilir.
|
| 239 |
+
- Model öncelikli olarak Türkçe için optimize edilmiştir.
|
| 240 |
+
- Whisper’ın çok dilli temeli korunsa da Türkçe dışındaki dillerde kalite garanti edilmez.
|
| 241 |
+
- WER değeri daha büyük, temiz ve domain odaklı Türkçe konuşma veri setleriyle geliştirilebilir.
|
| 242 |
+
|
| 243 |
+
---
|
| 244 |
+
|
| 245 |
+
## Roadmap
|
| 246 |
+
|
| 247 |
+
| Versiyon | Plan | Hedef |
|
| 248 |
+
|---|---|---|
|
| 249 |
+
| v2 | ISSAI Turkish Speech Corpus gibi daha büyük Türkçe veri kaynaklarının eklenmesi | Daha düşük WER |
|
| 250 |
+
| v3 | Pseudo-labeled Türkçe konuşma verileriyle robustness artırımı | Gürültülü ve gerçek dünya seslerinde daha iyi performans |
|
| 251 |
+
| v4 | Whisper-large-v3-turbo + LoRA fine-tuning | Kurumsal seviyede Türkçe ASR kalitesi |
|
| 252 |
+
|
| 253 |
+
---
|
| 254 |
+
|
| 255 |
+
## Model Ailesi
|
| 256 |
+
|
| 257 |
+
Uran için önerilen repo yapısı:
|
| 258 |
+
|
| 259 |
+
| Repo | Açıklama |
|
| 260 |
+
|---|---|
|
| 261 |
+
| `curiositytech/uran-stt-base` | Ana PyTorch model |
|
| 262 |
+
| `curiositytech/uran-stt-base-ct2` | CTranslate2 / faster-whisper için optimize edilmiş production modeli |
|
| 263 |
+
| `curiositytech/uran-stt-base-lora` | LoRA adapter modeli |
|
| 264 |
+
|
| 265 |
+
---
|
| 266 |
+
|
| 267 |
+
## Citation
|
| 268 |
+
|
| 269 |
+
```bibtex
|
| 270 |
+
@misc{uran-whisper-2026,
|
| 271 |
+
author = {Curiosity Technology},
|
| 272 |
+
title = {Uran: Turkish Whisper-base LoRA Fine-tuned ASR Model},
|
| 273 |
+
year = {2026},
|
| 274 |
+
publisher = {Hugging Face},
|
| 275 |
+
howpublished = {\url{https://huggingface.co/curiositytech/uran-stt-base}},
|
| 276 |
+
}
|
| 277 |
+
```
|
| 278 |
+
|
| 279 |
+
---
|
| 280 |
+
|
| 281 |
+
## Contact
|
| 282 |
+
|
| 283 |
+
[Curiosity Technology](https://www.curiosity.com.tr) — Istanbul, Türkiye
|
| 284 |
+
|
| 285 |
+
---
|
| 286 |
+
|
| 287 |
+
Curiosity Technology Turkish AI ecosystem:
|
| 288 |
+
[MARS](https://huggingface.co/curiositytech/MARS) · [MARS-v0.2](https://huggingface.co/curiositytech/MARS-v0.2) · **Uran**
|