Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XB4UY8fKk8xQZD2qkYArDp |
||
|---|---|---|
| .gitignore | ||
| altyazi-cevir.py | ||
| altyazi-yz-etiket.py | ||
| LICENSE | ||
| README.md | ||
| requirements.txt | ||
altyazi-cevirici
Türkçe altyazısı bulunmayan filmler için İngilizce .srt altyazıyı çevrimdışı ve ücretsiz olarak Türkçeye çevirir.
İnternete veri göndermez; çeviri bilgisayarınızda, ekran kartı varsa onunla (yoksa işlemciyle) yapılır.
Translates English .srt subtitles to Turkish offline with Helsinki-NLP opus-mt (CTranslate2). Built for a personal film archive.
Başlangıçta 1.500 filmlik bir arşivde 191 film için kullanıldı. GPU'da film başına yaklaşık yarım saniye sürer.
Ne yapar
- Film klasörlerini tarar. Zaten Türkçe altyazısı olan filmi atlar. İngilizce altyazısı olanı çevirip
Subs/<video adı>.tr.srtolarak kaydeder. - Hiçbir dosyanın üzerine yazmaz. Yarıda kalırsa kaldığı yerden devam eder.
- Çevirmeden önce bölünmüş cümleleri (en fazla 3 altyazı satırı) birleştirir, çevirdikten sonra süreye orantılı olarak geri dağıtır. Böylece cümle ortasından bölünen satırlar anlamsız çıkmaz.
- Diyalog satırlarını (
- Merhaba./- Efendim?), italikleri ve ekran konumunu ({\an8}) korur. Satırları en fazla 2 × 42 karaktere dengeli böler. - Her çevirinin başına 6 saniyelik bir not ekler: "Bu altyazı yapay zekâ ile çevrilmiştir". İstemezseniz
--etiketsizkullanın. - Hangi altyazının makine çevirisi olduğunu
manifest-makine-ceviri.tsvdosyasına yazar.
Klasör düzeni
Filmler/
├── Le Trou (1960)/
│ ├── Le.Trou.1960.1080p.mkv
│ └── Subs/
│ └── Le.Trou.1960.1080p.en.srt ← kaynak
└── Marty (1955)/
├── Marty.1955.mp4
└── Marty.1955.en.srt
Çıktı: Subs/Le.Trou.1960.1080p.tr.srt. Oynatıcılar (VLC, mpv, Kodi, Jellyfin, Plex) bu dosyayı Türkçe altyazı olarak otomatik bulur.
Kurulum
Python 3.10 veya üstü gerekir.
git clone https://github.com/boslukkk/altyazi-cevirici
cd altyazi-cevirici
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
Model (bir kez)
Çeviri modeli Helsinki-NLP/opus-mt-tc-big-en-tr dosyasıdır. CTranslate2 biçimine bir kez dönüştürülür. Dönüştürme için gereken torch ve transformers daha sonra silinebilir.
.venv/bin/pip install torch --index-url https://download.pytorch.org/whl/cpu
.venv/bin/pip install transformers sacremoses
.venv/bin/ct2-transformers-converter --model Helsinki-NLP/opus-mt-tc-big-en-tr \
--output_dir mt-model-en-tr --quantization float16 --copy_files source.spm target.spm
NVIDIA ekran kartı (isteğe bağlı): .venv/bin/pip install nvidia-cublas-cu12 komutunu çalıştırın. Program GPU'yu kendiliğinden kullanır, yoksa işlemciye geçer.
Kullanım
.venv/bin/python altyazi-cevir.py --klasor ~/Filmler --dry-run # ne yapacağını göster
.venv/bin/python altyazi-cevir.py --klasor ~/Filmler --pilot 3 # 3 filmle dene
.venv/bin/python altyazi-cevir.py --klasor ~/Filmler # hepsi
.venv/bin/python altyazi-cevir.py --klasor ~/Filmler --film "Marty (1955)"
| Seçenek | Açıklama |
|---|---|
--klasor |
Film klasörlerinin bulunduğu ana klasör (zorunlu) |
--model |
Model klasörü (varsayılan ./mt-model-en-tr, ya da ALTYAZI_MODEL ortam değişkeni) |
--etiketsiz |
Başa "yapay zekâ ile çevrilmiştir" notunu ekleme |
--pilot N |
Yalnız ilk N filmi işle |
--film |
Tek bir film klasörü |
--dry-run |
Hiçbir şey yazma, yalnız planı göster |
İşlem bilgileri altyazi-ceviri-durum.json dosyasında (kaldığı yer) ve loglar/ klasöründe tutulur.
Eski çevirilere not eklemek
Not özelliği eklenmeden önce çevrilmiş altyazılar için altyazi-yz-etiket.py kullanılır. Betik manifest-makine-ceviri.tsv listesindeki dosyalara notu ekler, önce yedeklerini alır. --geri-al yedekten geri yükler.
Sınırlar
- Makine çevirisidir. Akıcılık iyi olsa da deyimler, argo ve şarkı sözleri bazen tuhaf çıkar. Gerçek bir Türkçe altyazı bulunursa o tercih edilmelidir.
- Yalnız İngilizce → Türkçe çevirir. Diğer diller için başka bir opus-mt modeli dönüştürülebilir, ama aksan sadeleştirme gibi ayarlar İngilizceye göre yapılmıştır.
Lisans
Kod: MIT. Model: Helsinki-NLP opus-mt-tc-big-en-tr, CC-BY 4.0. Model bu depoda yoktur, kurulumda indirilir. Tiedemann & Thottingal, OPUS-MT — Building open translation services for the World (EAMT 2020).