BookTranslator
BookTranslator

İki Dilli Altyazı Nasıl Yapılır: Tek Bir SRT veya VTT Dosyasında İki Dil

İnsanların okuyabileceği iki dilli bir SRT veya VTT dosyası oluşturun: zamanlamaya göre birleştirin, iki dili tek bir altyazıya sığdırın, hangisinin üstte olacağını seçin ve ücretsiz bir denetleyici çalıştırın.

BookTranslator

BookTranslator Team

10 dk okuma

İki dilli altyazı yapmak için, zamanlaması yapılmış bir altyazı dosyasına, aynı zamanlamayı koruyan bir çevirisine ve her an için her iki dili de içeren tek bir altyazı satırına ihtiyacınız var: önce orijinal satırlar, sonra çevrilmiş satırlar, tek bir zaman damgası altında. İki dilli dosya yazan herhangi bir çevirmen bunu sizin için yapar ve zaten iki dosyanız varsa bir birleştirme aracı bunu yapar. Düz SRT bunun için özel bir sözdizimine ihtiyaç duymaz.

Dosyayı oluşturmak işin kolay kısmı. Zor kısmı, zamanlamanın tek bir dil için yazılmış olması. İki satır İngilizceye sığan bir altyazı satırı, şimdi aynı birkaç saniye içinde, aynı görüntü üzerinde dört satırı barındırmak zorunda. Bu yüzden bu kılavuz zamanının çoğunu birleştirmeden sonra nelerin düzeltilmesi gerektiğine ayırıyor.

12 altyazılık bir test dosyası oluşturduk, İspanyolca, Çince ve Arapça sürümlerini ürettik ve ücretsiz bir denetleyici yazdık. Dosyalar, BookTranslator'ın kendi altyazı yazma kodundan yerel olarak çalıştırılarak elde edildi. Çevirileri bir model çağırmak yerine elle yazdık, böylece bu testler dosyaya ne olduğunu gösterir, çevirinin ne kadar iyi olduğunu değil. Ayrıntılar README dosyasında. Denetleyici Python 3 dışında hiçbir şeye ihtiyaç duymaz.

Kısa Yanıt: İki Dilli Bir Altyazı Satırı Nasıl Görünür

2
00:00:03,400 --> 00:00:06,600
There's another one at six,
but the station closes at midnight.
Hay otro a las seis,
pero la estación cierra a medianoche.

Bu geçerli bir SRT'dir. Her altyazı satırı numarasını ve zaman damgasını korur ve zaman damgasının altındaki her metin satırı ekranda birlikte görünür. WebVTT de aynı şekilde çalışır.

Önce Kurulumu Seçin

Şunu yapmak istiyorsunuzŞunu kullanınNeden
Neredeyse her oynatıcıda izlemek veya birine tek bir dosya göndermekBirleştirilmiş tek bir SRTBu, oynatıcı özelliği gerektirmeyen sıradan bir altyazı dosyasıdır
Kendi bilgisayarınızda her dili kontrol ederek izlemekİki kanal desteği olan bir oynatıcıda iki ayrı dosyaHer dil kendi zamanlamasını korur ve taşınabilir veya kapatılabilir
Dilleri bir web sayfasında farklı boyutlarda göstermekHer dil için bir sınıf içeren tek bir VTTWebVTT'de stil desteği vardır; SRT'de bunu yapmanın standart bir yolu yoktur
Her yerde aynı görünen bir video yayınlamakGörüntüye gömülü altyazılarMetin görüntünün bir parçası olur ve izleyiciler onu kapatamaz

İki kanal için mpv'nin --secondary-sid seçeneği vardır. Kılavuzuna göre ikinci kanal varsayılan olarak ekranın üst kısmında çizilir, bu da dilleri ayrı tutar. mpv'yi kendimiz test etmedik.

Yakma işlemi için FFmpeg'in subtitles filtresi libass ile derlenmiş bir sürüme ihtiyaç duyar. Bu test için kurduğumuz FFmpeg 9.0.1'de bu yoktu, bu yüzden plan yapmadan önce ffmpeg -filters | grep subtitles komutunu çalıştırın. Yakma işlemini test etmedik.

Adım 1: İki Dili Tek Bir Dosyaya Getirin

Tek bir dosyanız varsa, onu çift dosya yazan bir araçla çevirin. BookTranslator bunu her SRT ve VTT işi için yapar: aynı zaman damgalarına sahip çevrilmiş bir dosya ve iki dilli bir dosya alırsınız ve altyazı çevirmeni sayfasından başlayabilirsiniz. Önce bir araç seçmeniz gerekiyorsa, altyazı yazılımı karşılaştırmamıza bakın.

İki dosyanız varsa, onları cue numarasına göre değil, zamana göre eşleştirin. Birleştirme işte burada yanlış gider, çünkü aynı videonun iki parçası nadiren satırlarını aynı şekilde böler. İkinci İspanyolca parçamız iki uzun cue'yu ikiye böler ve ses efektini, yılı ve müziği dışarıda bırakır.

python3 check_bilingual_subs.py merge sample-source.srt sample-es-own-timing.srt -o merged.srt

Cue numarasına göre eşleştirme (betiğin --index seçeneği) 12 cue'nun 10'unu yanlış eşleştirdi; 2. cue'dan başlayarak İspanyolcanın yarısı kayboldu. 3. cue'da çeviri farklı bir satıra aitti:

3
00:00:06,800 --> 00:00:08,000
So where do we wait?
pero la estación cierra a medianoche.

Zamana göre eşleştirme doğru çeviriyi 9 cue'nun altına yerleştirdi, İspanyolca içermeyen 3 cue'yu olduğu gibi bıraktı ve hiçbir şeyle eşleşmeyen tek İspanyolca satırı bildirdi, böylece onu elle yerleştirebilirsiniz. Betik, ikinci parçadaki bir cue'yu, uzunluğunun en az yarısını kapsadığı sürece en çok çakıştığı birinci parça cue'suna atar. submerger gibi araçlar da dosyaları birleştirir; biz onları test etmedik. Ne kullanırsanız kullanın, ilk bölünmeden sonraki cue'ları gözden geçirin.

Adım 2: Dosyayı Kontrol Edin

python3 check_bilingual_subs.py check sample-source.srt sample-es-bilingual.srt --max-target-cps 17

İki dilli dosyayı kaynakla karşılaştırır ve orijinal satırların önce geldiğini varsayar, bu yüzden sırayı değiştirmeden önce çalıştırın. Üst satırlar kaynakla eşleşmezse sizi uyarır. İspanyolca dosyada bulduğu şeyler şunlardı:

CueSaniyeSatırlarOrijinal karakter/saniyeİspanyolca karakter/saniyeSorun
23.2419.417.8Dört satır, İspanyolca çok hızlı
52.726.77.0Metinde '
71.024.04.0Aynı metin iki kez
81.821.71.7Aynı metin iki kez
91.2420.822.5Dört satır, her iki dil de çok hızlı
103.6218.319.4Her iki satır 42 karakteri aşıyor, İspanyolca çok hızlı

6. ve 12. cue'lar da dört satırla geri döndü. Diğer dört cue sorunsuzdu.

Hız ve satır uzunluğu sınırları Netflix'ten gelir, çünkü sayıları kamuya açık ve belirgindir ve dile göre değişir. İngilizce kılavuzu yetişkin programları için satır başına 42 karakter, iki satır ve saniyede en fazla 20 karaktere izin verir. Latin Amerika İspanyolcası kılavuzu çevrilmiş altyazılar için saniyede 17 karaktere izin verir ve Basitleştirilmiş Çince kılavuzu satır başına 16 karakter ve saniyede 9 karaktere izin verir. Yani Çince için --max-target-line 16 --max-target-cps 9 kullanın. Bu kılavuzlar aynı anda tek bir dili kapsar, en fazla iki satırla. Tek bir cue'da iki dil için eşdeğer bir standart bilmiyoruz, bu yüzden denetleyicinin ekranda üç satır varsayılanı ve bir sonraki bölümdeki her şey bizim yargımızdır.

Denetleyici ayrıca birleşik bir sayı yazdırır; bu sayı 9. cue'da saniyede 43,3 karaktere ulaştı. Bu sayıyı düzeltmeye çalışmayın. Kimse her iki dilin her karakterini tam dikkatle okumaz. Bunu, izlemeye değer cue'lara işaret eden bir gösterge olarak görün.

Adım 3: Dört Satırlı Cue'ları Düzeltin

Dört satırın maliyeti budur. Chromium'un 1280x720'deki yerleşik altyazı görünümünde, iki satırlık İngilizce altyazı çerçeve yüksekliğinin %10,6'sını kaplarken, aynı altyazıya İspanyolca eklendiğinde %21,9'unu kapladı.

Düz 1280 x 720 test çerçevesinin alt kısmında, Chromium'un varsayılan altyazı stilindeki iki satırlık İngilizce altyazı.

Aynı altyazıya iki İspanyolca satır eklendiğinde, çerçeve yüksekliğinin yaklaşık beşte birini kaplıyor.

İşaretlenen altyazıları şu sırayla ele alın:

  1. Ses dilini kelimesi kelimesine koruyun. İnsanlar orijinali dinleyip metinden takip ediyorsa, kısaltılmış orijinal artık duyduklarıyla eşleşmez.
  2. Diğer dili tek satıra indirin. 2. altyazımız, İspanyolca A las seis hay otro; cierran a medianoche. olduğunda saniyede 17,8 karakterden 13,1'e düşüyor. Bu, ekranda dört satır yerine üç satır demek ve her iki bilgiyi de koruyor.
  3. Yalnızca boşluk varsa süre ekleyin. Bitiş zamanını kaydırmadan önce bir sonraki altyazının başlangıcını kontrol edin. 2. altyazının 0,2 saniye boşluğu var, bu çabaya değmez.
  4. Sonra geri kalanına dokunmayın. 9. altyazı 1,2 saniyede You knew? / Since March. şeklinde. Hız ve satır sınırlarını ihlal ediyor, ama bırakırdık: ardından gelen 0,2 saniyelik boşluk yardımcı olamayacak kadar küçük ve izleyici büyük ihtimalle iki kısa yanıtı bir bakışta algılayabilir. Her işaret bir hata değildir.

10. altyazı gibi uzun tek satırlar için, her dili iki satıra ancak altyazının buna zamanı varsa bölün. Aksi halde çeviriyi kısaltın.

Görünümü siz kontrol ediyorsanız, bir dili ayırt etmeyi kolaylaştırabilirsiniz. Her dile kendi sınıfını vermek için to-vtt komutunu çalıştırın. Ortaya çıkan dosya Chromium'da İngilizce %80 boyutta ve açık gri olarak işlendi. Bu neredeyse hiç yer kazandırmıyor (çerçeve yüksekliğinin %21,9'u yerine %21,1'i), yani bir satırı kesmenin yerini tutmaz. İnsanların okumasına yardımcı olup olmadığını test etmedik.

İngilizce satırların İspanyolca satırlardan daha küçük ve daha gri olduğu dört satırlık altyazı.

Bu, WebVTT altyazı sınıflarını ve ::cue() seçicisini kullanır. Tarayıcılar için tasarlanmıştır. Diğer oynatıcılar stilleri veya VTT dosyasını yok sayabilir.

4. Adım: Hangi Dilin Üstte Olacağına Karar Verin

Bu konuda bazı araştırmalar var. İngilizceyi ikinci dil olarak konuşan 42 anadil İspanyolca konuşucusuyla yapılan bir 2026 göz izleme çalışmasında, izleyiciler hangi dilde olursa olsun üst satırda daha fazla zaman geçirdi ve sesle eşleşen satırda daha fazla zaman geçirdi. Anlama puanları, ana dilleri olan İspanyolca üstte olduğunda daha yüksekti. 112 Çinli İngilizce öğrencisiyle yapılan daha önceki bir çalışma, iki dilli altyazıların anlamaya yalnızca ana dillerindeki altyazılar kadar yardımcı olduğunu ve her ikisinin de İngilizce altyazılardan veya altyazı olmamasından daha iyi olduğunu buldu.

Bunlar belirli izleyici gruplarıyla yapılmış tek çalışmalar, bu yüzden bunları bir başlangıç noktası olarak alın:

  • Bir filmi veya dersi içeriği için takip etmek: en iyi okuduğunuz dili üste koyun.
  • Öğrendiğiniz bir dili pratik yapmak: o dili üste koyun ve biraz daha az anlayabileceğinizi kabul edin. 2026 çalışmasının ölçtüğü şey anlama, öğrenme değil, bu yüzden bu bizim yargımız.
  • Bir çeviriyi gözden geçirmek: sıra pek önemli değil, olduğu gibi bırakın.

BookTranslator'ın iki dilli dosyası her zaman orijinali üste koyar. Değiştirmek için:

python3 check_bilingual_subs.py flip sample-source.srt sample-es-bilingual.srt -o translation-on-top.srt

Neler Yanlış Geliyor ve Nasıl Düzeltilir

Bunlar, BookTranslator'ın altyazı kodunu test dosyalarımızda çalıştırmaktan çıktı ve denetleyici ilk ikisini işaretliyor.

  • Çeviri gerektirmeyen metin iki kez görünür. 1984 ve ♪ ♪ çevrilecek kelime içermediği için atlanır, bu yüzden iki dilli dosya her birini iki kez yazdırır. Bir satırı elle silin.
  • Metinde &apos; görünebilir. Kasım 2026 itibarıyla, biçimlendirme etiketleri ve kesme işareti içeren bir altyazı, kesme işareti kaçış dizisiyle geri gelebilir. Orijinal satırımız iki dilli dosyada <i>Don&apos;t answer that.</i> haline geldi ve ayrı bir VTT testinde bir Fransızca çeviri, çevrilmiş dosyada da <i>Je n&apos;attendrai pas.</i> oldu. Chromium bunu VTT'de çözümledi ve normal bir kesme işareti gösterdi. Ancak SRT'yi FFmpeg ile dönüştürdüğümüzde &apos; çıktı metninde kaldı, bu yüzden bazı oynatıcıların bunu olduğu gibi göstereceğini varsayın. Dosyayı kullanmadan önce &apos; yerine ' koyun. Bunu mühendislerimize bildirdik.
  • VTT altyazı ayarları kaldırılır. line:0 align:start position:10% gibi konum ayarları ve NOTE blokları VTT test çıktımızdan kayboldu ve konuşmacı etiketleri her iki satırda da göründü. VTT'niz yerleşime dayanıyorsa, çevirdikten sonra tekrar ekleyin.
  • Sağdan sola metin satır satır işaretlenir. Arapça satırlar Unicode yön işaretleriyle sarılmış olarak geldi. Dosyanın Chromium'daki bir VTT kopyasında yalnızca bir altyazıya baktık ve sağdan sola görüntülendi. Arapçayı sayılarla karıştıran satırlar, 10. altyazımız gibi, daha zor durumdur ve bunları görüntülemedik, bu yüzden gerçek oynatıcınızda test edin. SRT'de yönü ayarlamanın başka bir yolu yok. Sağdan sola kılavuzumuz kitaplar için daha geniş sorunları ele alıyor.

Kaynağınız ASS veya SSA ise, BookTranslator'ın iki dilli çıktısı çevrilmiş satırı aynı stil ve zamanlamayla ikinci bir olay olarak ekler, bu farklı bir yapıdır. ASS altyazı kılavuzumuz bu dosyaların nasıl oluşturulduğunu açıklar. Vurgulu karakterler her iki dilde de bozuk görünüyorsa, sorun genellikle dosyanın kodlamasıdır ve altyazı kodlama kılavuzumuz bunu ele alır.

Dosyayı Paylaşmadan Önce

  1. Denetleyiciyi çalıştırın ve işaretlenen her altyazıdan geçin.
  2. &apos;, &amp; ve &quot; bulun ve değiştirin.
  3. Ses efektleri, sayılar ve müzik üzerindeki yinelenen satırları silin.
  4. İzleyicilerinizin kullanacağı oynatıcıda, kullanacakları ekran boyutunda en yoğun birkaç dakikayı izleyin.
  5. Alt satırların videodaki ekran metnini kapatmadığını kontrol edin.
  6. Çeviriyi bağlam içinde okuyun. Yapay zeka altyazı iş akışımız nasıl gözden geçirileceğini ele alır.

Hazır bir SRT veya VTT'niz var mı? Altyazı çevirmenine yükleyin ve ödeme yapmadan önce fiyatı görün. İşlem bittiğinde, iki dilli dosyayı çevrilmiş olanla birlikte indirin. Ardından denetleyiciyi çalıştırın, çünkü gerçek bir işteki satır sayıları modelin her çevrilmiş altyazıyı nasıl böldüğüne bağlıdır.

İlgili Yazılar