İngilizce .srt altyazıları çevrimdışı ve ücretsiz Türkçeye çevirir (opus-mt + CTranslate2) · Offline EN→TR subtitle translator
Dosyaya git
2026-10-17 17:35:16 +03:00
.gitignore altyazi-cevirici: İngilizce altyazıyı çevrimdışı Türkçeye çevirir (opus-mt + CTranslate2) 2026-10-17 17:35:16 +03:00
altyazi-cevir.py altyazi-cevirici: İngilizce altyazıyı çevrimdışı Türkçeye çevirir (opus-mt + CTranslate2) 2026-10-17 17:35:16 +03:00
altyazi-yz-etiket.py altyazi-cevirici: İngilizce altyazıyı çevrimdışı Türkçeye çevirir (opus-mt + CTranslate2) 2026-10-17 17:35:16 +03:00
LICENSE altyazi-cevirici: İngilizce altyazıyı çevrimdışı Türkçeye çevirir (opus-mt + CTranslate2) 2026-10-17 17:35:16 +03:00
README.md altyazi-cevirici: İngilizce altyazıyı çevrimdışı Türkçeye çevirir (opus-mt + CTranslate2) 2026-10-17 17:35:16 +03:00
requirements.txt altyazi-cevirici: İngilizce altyazıyı çevrimdışı Türkçeye çevirir (opus-mt + CTranslate2) 2026-10-17 17:35:16 +03:00

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.srt olarak 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 --etiketsiz kullanın.
  • Hangi altyazının makine çevirisi olduğunu manifest-makine-ceviri.tsv dosyası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).