Communitygithub.com

redirhan/turkce-altyazi

Türkçe video veya ses dosyasına kelime zamanlı altyazı ekler – yerel whisper motoru ile transkript, doğru Türkçe büyük harf (İSTANBUL, ISTANBUL değil; IŞIK, İŞTE), sık ASR hatalarının düzeltilmesi, dolgu/duraklama kırpma önerileri, reels için satır bölme ve SRT + stilli ASS + altyazısı yakılmış MP4 çıktısı üretir.

turkce-altyazi 是什麼?

Bu araç, kullanıcı tarafından sağlanan video veya ses dosyasındaki Türkçe konuşmaları, kelime seviyesinde zamanlamalı altyazıya dönüştürür. Tamamen yerel olarak çalışır (faster-whisper veya whisper.cpp kullanarak), hiçbir bulut API'sine veya hesaba ihtiyaç duymaz. Çıktı olarak `.srt`, stilli `.ass` ve altyazısı yakılmış `.mp4` dosyaları üretir. Ayrıca, yaygın ASR hatalarını düzelten bir rapor, dolgu sözcükleri ve uzun duraklamalar için kırpma önerileri, ve reels/vertical videolar için güvenli alan içinde otomatik satır bölme sunar. Desteklenen üç ücretsiz stil (temiz, kalın-vurgu, karaoke) mevcuttur. Araç, kullanıcının bilgisayarında çalışan bir Python betiği (`altyazi.py`) ve gerekli bağımlılıklar (ffmpeg, Pillow, numpy) aracılığıyla çalışır. Kullanıcı komutları arasında `altyazı ekle`, `SRT yap`, `videoya yazı göm`, `reels altyazısı`, `karaoke altyazı`, `bozuk İ/ı düzelt`, `dolguları/duraklamaları bul` gibi ifadeler bulunur. Tüm işlemler kullanıcı onayı ile gerçekleşir ve kaynak dosyalar asla değiştirilmez.

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/redirhan/turkce-altyazi/tree/main

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Türkçe Altyazı Hattı

Video/ses girer → kelime zamanlı Türkçe altyazı çıkar: .srt + stilli .ass + altyazısı yakılmış .mp4

  • düzeltme raporu + kırpma önerileri. Her şey kullanıcının bilgisayarında çalışır.

Kurallar (değişmez)

  • Yerel kal. Hiçbir şeyi yayınlama, yükleme, hesaba girme; ücretli API çağırma. Model indirme (whisper modeli) yalnız kullanıcı onaylarsa.
  • Tarayıcı açma. Bu iş için tarayıcı gerekmez; Chrome/Chromium hiç başlatma.
  • Kaynağı ezme. Çıktılar ayrı klasöre gider (varsayılan altyazi_cikti/); kaynak video değişmez. trim --uygula da yeni dosya yazar.
  • Ekranda yalnız söylenen. Altyazı transkripttir; içerik uydurma, "düzeltme" bahanesiyle cümle değiştirme. Yalnız yazım/büyük harf/ASR hatası düzeltilir ve hepsi raporda listelenir.
  • Türkçe büyük harf her yerde tr_upper. Python str.upper(), JS toUpperCase() ya da CSS text-transform: uppercase (lang="tr" olmadan) Türkçeyi bozar: istanbul → ISTANBUL, ilk → ILK.
  • drawtext kullanma. Yakma, ffmpeg'in ass filtresiyle (libass) ya da yoksa PIL yedeğiyle yapılır.

Akış

S=~/.claude/skills/turkce-altyazi/scripts ve Pillow+numpy kurulu bir Python (PY, README'deki venv).

  1. Kontrol: $PY $S/altyazi.py doctor → eksik varsa kullanıcıya tek satırla söyle (ffmpeg, Pillow, transkript motoru). Transkript motoru yoksa kullanıcı SRT verebilir (--srt).
  2. Hepsi bir arada:
    $PY $S/altyazi.py run VIDEO.mp4 --stil kalin-vurgu --cikti altyazi_cikti/
    # --stil temiz | kalin-vurgu | karaoke | hepsi
    # --vurgu "İstanbul,%50"      kalın-vurgu stilinde sarı yapılacak kelimeler (yoksa sayılar + özel adlar)
    # --oneriler-uygula           "öneri" düzeyindeki düzeltmeleri de uygula (ör. Şeyh -> Şey)
    # --srt elimdeki.srt          transkript yerine hazır SRT
    # --kelimeler x.words.json    önceki transkripti yeniden kullan (hızlı yeniden stil)
    # --yakma-yok                 yalnız SRT/ASS/JSON
    # --motor pil|ass             yakma motorunu zorla (varsayılan: libass varsa ass)
    # --y 0.67                    altyazı yüksekliği (9:16'da 0,67 = çene altı, güvenli alan içinde)
    
  3. Raporu oku ve kullanıcıya özetle (<ad>.rapor.txt): kaç düzeltme yapıldı, hangi öneriler onay bekliyor, kırpma önerileri (dolgu "şey/yani/ııı", tekrar, 0,6 s üstü duraklama), kontrol bulguları (güvenli alan, hızlı okuma, çakışma, Türkçe büyük harf).
  4. Gözle bak. <ad>.<stil>.onizleme.jpg (çıktıdan 3 kare) dosyasını aç ve kontrol et: Türkçe harfler doğru mu, altyazı yüzü/özneyi kapatıyor mu, alt açıklama satırına ya da sağdaki ikonlara giriyor mu. Konuşan kafada altyazı yüzü kapatıyorsa --y ile aşağı al (en fazla ~0,74).
  5. Kırpma isterse: $PY $S/altyazi.py trim VIDEO.mp4 --kelimeler <ad>.words.json --uygula (--guven orta ile söylem dolguları da kesilir) → <ad>.kirpilmis.mp4 + kaydırılmış kelime zamanları; sonra run <ad>.kirpilmis.mp4 --kelimeler <ad>.kirpilmis.words.json.

Alt komutlar

Komutİş
doctorkurulum + Türkçe glif + tr_upper testi
transcribe INwords.json (faster-whisper ya da whisper.cpp, kelime zamanı onarımlı)
fix WORDSTürkçe büyük harf + ASR düzeltmeleri, rapor
trim IN --kelimeler Wdolgu/duraklama önerileri; --uygula ile kes
build WORDS --stil SSRT + ASS + JSON (HyperFrames/Remotion için konumlu)
burn IN --kelimeler Wyakılmış MP4
run INhepsi
still --kelimeler W --zaman 3.2tek kare önizleme PNG
demoörnek videoyu üretip altyazılar

Türkçe kurallar (kodda uygulananlar)

  • tr_upper / tr_lower / tr_title: i↔İ, ı↔I; başlıkta "ve, ile, de/da, ki, mi" küçük; TL, YouTube, iPhone gibi yazılışlar korunur (data/koru.txt).
  • ASR onarımı: Istanbul → İstanbul, ISKELESIYDI → İSKELESİYDİ (ünlü uyumuyla, emin değilse dokunmaz), Işık/Irak/Isparta korunur (data/noktasiz_i.txt), ayrık ek birleşir (İzmir + 'e), 50% → %50, cümle ortasında yanlış büyük harf (Sabah → sabah), küçük yazılmış il/ülke adı (izmir → İzmir), yazım (data/asr_duzeltme.tsv: herşey, birşey, tabi ki, malesef, yada...), whisper uydurmaları ("Altyazı M.K.", "İzlediğiniz için teşekkürler", "Abone olmayı unutmayın") silinir.
  • Satır bölme: en fazla 2 satır, genişlik güvenli alanda; "ve/ile/bir/yüzde" satır ya da hücre sonunda kalmaz; "de/da, ki, mi, gibi, kadar, için" satır başına düşmez; sayı ile birimi ayrılmaz; alt satır üstten kısa olmaz.
  • Zamanlama: hücre kelime zamanıyla açılır; 0,3 s duraklamada/cümle sonunda yeni hücre; 0,35 s'den kısa hücre yanıp sönmez; 0,25 s'ye kadar boşlukta ekranda kalır; saniyede 20 karakter üstü uyarı.

Stiller

temiz (cümle düzeni, 2 satır, yumuşak gölge) · kalin-vurgu (büyük harf, 1-3 kelime, sayı ve özel ad sarı, küçük "pop") · karaoke (satır ekranda, söylenen kelime yeşil, sıradakiler soluk). Fontlar: Montserrat (OFL, pakette). Daha fazla stil içeren bir Pro paketi ileride ayrıca gelebilir; bu üç stil ücretsiz ve MIT lisanslı kalır.

Sorun giderme

  • doctor "libass yok" diyorsa sorun değil: PIL motoru aynı düzeni çizer.
  • Kelime zamanları kaymışsa: whisper.cpp cümle başlarını erken koyabilir; hat bunu sesteki konuşma bölgelerine göre onarır. Yine kötü ise --asr faster-whisper --model medium dene.
  • Altyazı yanlış yerdeyse --y; yazı çok büyük/küçükse stilin size değeri scripts/styles.py.

相關技能