emreclskn commited on
Commit
a306647
·
verified ·
1 Parent(s): a7225f5

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +288 -3
README.md CHANGED
@@ -1,3 +1,288 @@
1
- ---
2
- license: apache-2.0
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**