BookTranslator
BookTranslator

Cara Membuat Subtitle Bilingual: Dua Bahasa dalam Satu File SRT atau VTT

Buat file SRT atau VTT dua bahasa yang mudah dibaca: gabungkan berdasarkan waktu, muat dua bahasa dalam satu cue, tentukan mana yang di atas, dan jalankan pemeriksa gratis.

BookTranslator

BookTranslator Team

11 menit baca

Untuk membuat subtitle bilingual, Anda memerlukan satu file subtitle bertiming, terjemahannya yang mempertahankan timing yang sama, dan satu cue untuk setiap momen yang memuat kedua bahasa: baris asli lebih dulu, lalu baris terjemahan, di bawah satu timestamp. Penerjemah mana pun yang menulis file ganda akan melakukannya untuk Anda, dan alat penggabung melakukannya jika Anda sudah memiliki dua file. SRT biasa tidak memerlukan sintaks khusus untuk ini.

Membuat file adalah bagian yang mudah. Bagian yang lebih sulit adalah timing ditulis untuk satu bahasa. Cue yang muat dua baris bahasa Inggris kini harus memuat empat baris, dalam beberapa detik yang sama, di atas gambar yang sama. Jadi panduan ini menghabiskan sebagian besar waktunya untuk apa yang harus diperbaiki setelah penggabungan.

Kami menulis file uji 12 cue, menghasilkan versi Spanyol, Tionghoa, dan Arab, serta menulis pemeriksa gratis. File-file tersebut berasal dari kode penulisan subtitle BookTranslator sendiri, dijalankan secara lokal. Kami menulis terjemahannya secara manual alih-alih memanggil model, jadi uji ini menunjukkan apa yang terjadi pada file, bukan seberapa bagus terjemahannya. README berisi detailnya. Pemeriksa hanya membutuhkan Python 3 dan tidak ada yang lain.

Jawaban Singkat: Seperti Apa Cue Bilingual Itu

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.

Itu SRT yang valid. Setiap cue mempertahankan nomor dan timestamp-nya, dan setiap baris teks di bawah timestamp muncul di layar bersamaan. WebVTT bekerja dengan cara yang sama.

Pilih Pengaturan Terlebih Dahulu

Anda inginGunakanAlasan
Menonton di hampir semua pemutar, atau mengirim satu file ke seseorangSatu SRT yang digabungIni adalah satu file subtitle biasa, tanpa perlu fitur pemutar
Menonton di komputer sendiri dengan kendali atas setiap bahasaDua file terpisah di pemutar yang mendukung dua trekSetiap bahasa mempertahankan timing-nya sendiri dan dapat dipindah atau dimatikan
Menampilkan bahasa dalam ukuran berbeda di halaman webSatu VTT dengan kelas untuk setiap bahasaWebVTT memiliki styling; SRT tidak memiliki cara standar untuk melakukannya
Menerbitkan video yang tampil sama di mana punSubtitle yang dibakarTeks menjadi bagian dari gambar, dan penonton tidak dapat mematikannya

Untuk dua trek, mpv memiliki opsi --secondary-sid. Manualnya menyatakan trek kedua digambar di bagian atas layar secara default, yang menjaga bahasa tetap terpisah. Kami tidak menguji mpv sendiri.

Untuk membakar subtitle, filter subtitles FFmpeg memerlukan build dengan libass. FFmpeg 9.0.1 yang kami pasang untuk pengujian ini tidak memilikinya, jadi jalankan ffmpeg -filters | grep subtitles sebelum Anda merencanakannya. Kami tidak menguji burn-in.

Langkah 1: Gabungkan Dua Bahasa ke Dalam Satu File

Jika Anda memiliki satu file, terjemahkan dengan alat yang menghasilkan file ganda. BookTranslator melakukan ini untuk setiap pekerjaan SRT dan VTT: Anda mendapatkan file terjemahan dan file bilingual dengan timestamp yang sama, dan Anda dapat memulai di penerjemah subtitle. Jika Anda perlu memilih alat terlebih dahulu, lihat perbandingan perangkat lunak subtitle kami.

Jika Anda memiliki dua file, pasangkan berdasarkan waktu, bukan berdasarkan nomor cue. Di sinilah penggabungan sering salah, karena dua trek dari video yang sama jarang membagi baris dengan cara yang sama. Trek Spanyol kedua kami membagi dua cue panjang menjadi dua dan menghilangkan efek suara, tahun, dan musik.

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

Pemasangan berdasarkan nomor cue (opsi --index skrip) membuat 10 dari 12 cue salah, mulai dari cue 2, di mana separuh teks Spanyol hilang. Pada cue 3, terjemahan sudah menjadi milik baris yang berbeda:

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

Pemasangan berdasarkan waktu menghasilkan terjemahan yang benar di bawah 9 cue, membiarkan 3 cue tanpa teks Spanyol, dan melaporkan satu baris Spanyol yang tidak cocok dengan apa pun, sehingga Anda dapat menempatkannya secara manual. Skrip memberikan cue trek kedua ke cue trek pertama yang paling banyak tumpang tindih, asalkan mencakup setidaknya setengah panjangnya. Alat seperti submerger juga menggabungkan file; kami tidak mengujinya. Apa pun yang Anda gunakan, periksa ulang cue setelah pemisahan pertama.

Langkah 2: Periksa File

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

Ini membandingkan file bilingual dengan sumber dan mengasumsikan baris asli berada di atas, jadi jalankan sebelum Anda menukar urutannya. Ini akan memperingatkan Anda jika baris atas tidak cocok dengan sumber. Inilah yang ditemukannya di file Spanyol:

CueDetikBarisKarakter/detik asliKarakter/detik SpanyolMasalah
23.2419.417.8Empat baris, Spanyol terlalu cepat
52.726.77.0' dalam teks
71.024.04.0Teks sama dua kali
81.821.71.7Teks sama dua kali
91.2420.822.5Empat baris, kedua bahasa terlalu cepat
103.6218.319.4Kedua baris lebih dari 42 karakter, Spanyol terlalu cepat

Cue 6 dan 12 juga kembali dengan empat baris. Empat cue lainnya baik-baik saja.

Batas kecepatan dan panjang baris berasal dari Netflix, karena angkanya publik dan spesifik, dan berbeda per bahasa. Panduan bahasa Inggris mereka mengizinkan 42 karakter per baris, dua baris, dan hingga 20 karakter per detik untuk program dewasa. Panduan bahasa Spanyol Amerika Latin mereka mengizinkan 17 karakter per detik untuk subtitle terjemahan, dan panduan bahasa Mandarin Sederhana mereka mengizinkan 16 karakter per baris dan 9 per detik. Jadi gunakan --max-target-line 16 --max-target-cps 9 untuk bahasa Mandarin. Panduan tersebut mencakup satu bahasa pada satu waktu, dengan paling banyak dua baris. Kami tidak mengetahui standar setara untuk dua bahasa dalam satu cue, jadi default pemeriksa yaitu tiga baris di layar, dan semua yang ada di bagian berikutnya, adalah penilaian kami.

Pemeriksa juga mencetak angka gabungan, yang mencapai 43,3 karakter per detik pada cue 9. Jangan mencoba memperbaiki angka itu. Tidak ada yang membaca setiap karakter dari kedua bahasa dengan perhatian penuh. Anggap saja sebagai penunjuk cue yang perlu diperhatikan.

Langkah 3: Perbaiki Cue Empat Baris

Inilah harga dari empat baris. Dalam tampilan subtitle bawaan Chromium pada 1280x720, teks Inggris dua baris memakan 10,6% dari tinggi bingkai, dan teks yang sama dengan tambahan bahasa Spanyol memakan 21,9%.

Teks Inggris dua baris di bagian bawah bingkai uji 1280 kali 720 polos, dalam gaya subtitle bawaan Chromium.

Teks yang sama dengan tambahan dua baris bahasa Spanyol, menutupi sekitar seperlima tinggi bingkai.

Periksa teks yang ditandai dalam urutan ini:

  1. Pertahankan bahasa audio kata per kata. Jika orang mendengarkan bahasa asli dan mengikuti teksnya, bahasa asli yang dipersingkat tidak lagi cocok dengan yang mereka dengar.
  2. Pangkas bahasa lainnya menjadi satu baris. Teks 2 kita berubah dari 17,8 karakter per detik menjadi 13,1 saat bahasa Spanyol menjadi A las seis hay otro; cierran a medianoche. Itu berarti tiga baris di layar, bukan empat, dan tetap mempertahankan kedua fakta.
  3. Tambahkan waktu hanya jika ada jeda. Periksa waktu mulai teks berikutnya sebelum menggeser waktu selesai. Teks 2 memiliki sisa 0,2 detik, yang tidak sepadan dengan usahanya.
  4. Lalu biarkan sisanya. Teks 9 adalah You knew? / Since March. dalam 1,2 detik. Ini melanggar batas kecepatan dan jumlah baris, tetapi kami akan membiarkannya: jeda 0,2 detik setelahnya terlalu kecil untuk membantu, dan penonton kemungkinan dapat menangkap dua balasan singkat itu sekilas. Tidak setiap tanda adalah kesalahan.

Untuk baris tunggal yang panjang seperti teks 10, pecah setiap bahasa menjadi dua baris hanya jika teks memiliki cukup waktu. Jika tidak, persingkat terjemahannya.

Jika Anda mengontrol tampilan, Anda juga dapat membuat salah satu bahasa lebih mudah dikenali. Jalankan to-vtt untuk memberi setiap bahasa kelasnya sendiri. File yang dihasilkan dirender di Chromium dengan bahasa Inggris berukuran 80% dan berwarna abu-abu terang. Ini hampir tidak menghemat ruang (21,1% dari tinggi bingkai, bukan 21,9%), jadi ini bukan pengganti untuk memangkas satu baris. Kami tidak menguji apakah ini membantu orang membaca.

Teks empat baris dengan baris bahasa Inggris lebih kecil dan lebih abu-abu daripada baris bahasa Spanyol.

Ini menggunakan kelas teks WebVTT dan selektor ::cue(). Ini ditujukan untuk peramban. Pemutar lain mungkin mengabaikan gaya atau file VTT tersebut.

Langkah 4: Tentukan Bahasa Mana yang di Atas

Ada beberapa penelitian tentang ini. Dalam studi pelacakan mata tahun 2026 terhadap 42 penutur asli bahasa Spanyol dengan bahasa Inggris sebagai bahasa kedua, penonton menghabiskan lebih banyak waktu pada baris atas, apa pun bahasanya, dan mereka menghabiskan lebih banyak waktu pada baris yang cocok dengan audio. Skor pemahaman lebih tinggi ketika bahasa Spanyol, bahasa pertama mereka, berada di atas. Studi sebelumnya terhadap 112 pembelajar bahasa Inggris berbahasa Mandarin menemukan bahwa subtitle bilingual membantu pemahaman sebanyak subtitle dalam bahasa pertama mereka saja, dan keduanya mengalahkan takarir bahasa Inggris atau tanpa subtitle.

Ini adalah studi tunggal terhadap kelompok penonton tertentu, jadi anggap sebagai titik awal:

  • Mengikuti film atau kuliah untuk kontennya: letakkan bahasa yang paling Anda kuasai di atas.
  • Berlatih bahasa yang sedang Anda pelajari: letakkan bahasa itu di atas dan terima bahwa Anda mungkin memahami lebih sedikit. Pemahaman adalah yang diukur dalam studi 2026, bukan pembelajaran, jadi ini adalah penilaian kami.
  • Meninjau terjemahan: urutannya tidak terlalu penting, jadi biarkan saja.

File bilingual BookTranslator selalu menempatkan bahasa asli di atas. Untuk menukarnya:

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

Apa yang Kembali Salah, dan Cara Memperbaikinya

Ini berasal dari menjalankan kode subtitle BookTranslator pada file uji kami, dan pemeriksa menandai dua yang pertama.

  • Teks yang tidak perlu diterjemahkan muncul dua kali. 1984 dan ♪ ♪ dilewati karena tidak ada kata untuk diterjemahkan, sehingga file bilingual mencetak masing-masing dua kali. Hapus satu baris secara manual.
  • &apos; dapat muncul dalam teks. Per November 2026, teks dengan tag pemformatan dan apostrof dapat kembali dengan apostrof yang di-escape. Baris asli kami menjadi <i>Don&apos;t answer that.</i> dalam file bilingual, dan dalam uji VTT terpisah, terjemahan bahasa Prancis menjadi <i>Je n&apos;attendrai pas.</i> juga dalam file terjemahan. Chromium mendekodenya dalam VTT dan menampilkan apostrof normal. Tetapi ketika kami mengonversi SRT dengan FFmpeg, &apos; tetap ada dalam teks keluaran, jadi anggap beberapa pemutar akan menampilkannya secara literal. Ganti &apos; dengan ' sebelum menggunakan file. Kami telah melaporkan ini kepada tim engineer kami.
  • Pengaturan teks VTT dihapus. Pengaturan posisi seperti line:0 align:start position:10% dan blok NOTE hilang dari keluaran uji VTT kami, dan label pembicara muncul di kedua baris. Jika VTT Anda bergantung pada penempatan, tambahkan kembali setelah menerjemahkan.
  • Teks kanan-ke-kiri ditandai baris demi baris. Baris bahasa Arab kembali terbungkus dalam tanda arah Unicode. Kami hanya memeriksa satu cue, dalam salinan VTT file tersebut di Chromium, dan tampilannya sudah kanan ke kiri. Baris yang mencampur bahasa Arab dengan angka, seperti cue 10 kami, adalah kasus yang lebih sulit dan tidak kami lihat, jadi ujilah di pemutar Anda sendiri. SRT tidak punya cara lain untuk mengatur arah. Panduan kanan-ke-kiri kami membahas masalah yang lebih luas untuk buku.

Jika sumber Anda adalah ASS atau SSA, keluaran bilingual BookTranslator menambahkan baris terjemahan sebagai event kedua dengan gaya dan waktu yang sama, yang merupakan struktur berbeda. Panduan subtitle ASS kami menjelaskan bagaimana file-file tersebut disusun. Jika karakter beraksen terlihat rusak dalam salah satu bahasa, masalahnya biasanya ada pada encoding file, yang dibahas di panduan encoding subtitle kami.

Sebelum Membagikan File

  1. Jalankan pemeriksa dan telusuri setiap cue yang ditandai.
  2. Temukan &apos;, &amp;, dan &quot; lalu ganti.
  3. Hapus baris duplikat pada efek suara, angka, dan musik.
  4. Tonton beberapa menit tersibuk di pemutar yang akan digunakan penonton Anda, pada ukuran layar yang akan mereka gunakan.
  5. Periksa apakah baris bawah tidak menutupi teks di layar video.
  6. Baca terjemahan dalam konteks. Alur kerja subtitle AI kami membahas cara meninjaunya.

Sudah punya SRT atau VTT? Unggah ke penerjemah subtitle dan lihat harganya sebelum membayar. Setelah selesai, unduh file bilingual beserta file terjemahannya. Lalu jalankan pemeriksa pada file tersebut, karena jumlah baris dalam pekerjaan nyata bergantung pada bagaimana model memecah setiap cue yang diterjemahkan.

Artikel Terkait

Cara Membuat Subtitle Bilingual: Dua Bahasa dalam Satu File SRT atau VTT