Sinkronkan subtitle ke audio
Proses pertama mengunduh mesin video — sekitar 31 MB, disajikan oleh situs ini dan di-cache peramban setelahnya. Mesin itu hanya dipakai untuk membaca track audio; subtitle dicocokkan dengan suaranya sendiri, tanpa model ucapan dan tanpa apa pun yang diunggah.
Opsi
Seberapa jauh subtitle mungkin menyimpang dari tempat yang seharusnya, ke kedua arah. Ini pengaturan biaya dan risiko, bukan pengaturan akurasi: jendela yang lebih lebar menemukan pergeseran yang lebih besar tetapi juga memberi pencarian lebih banyak peluang untuk berhenti pada kecocokan kebetulan yang skornya tinggi. Perbedaan di atas sekitar satu menit biasanya bukan berasal dari pemotongan atau logo — sebesar itu biasanya berarti versi potongan film yang berbeda, atau ketidakcocokan frame rate, yang diselesaikan halaman ini secara terpisah. Pilih jendela terkecil yang mencakup perkiraan Anda.
Halaman ini memperbaiki subtitle yang urutannya benar tetapi waktunya salah. Anda memberinya dua hal — file subtitle dan video atau audio tempat file itu seharusnya menempel — lalu halaman ini menghitung seberapa jauh teksnya melenceng, kemudian menulis ulang file dengan setiap cue digeser. Pergeseran beberapa detik berasal dari pemotongan dan logo; pergeseran yang membesar sepanjang film berasal dari ketidakcocokan frame rate, tempat master 23,976 fps dipasangkan dengan subtitle yang di-timing untuk 25 fps dan galatnya sudah mencapai satu setengah menit pada akhir jam pertama.
Pengukurannya dibuat dari audionya sendiri. Halaman ini mengekstrak track mono, melipatnya menjadi frame kenyaringan dua puluh milidetik, dan menandai frame mana yang berisi ucapan. Lalu ia mengajukan satu pertanyaan berulang-ulang: untuk geseran ini dan perubahan laju ini, berapa banyak teks subtitle yang mendarat di ucapan alih-alih di keheningan? Jawabannya dinilai per cue lalu dirata-ratakan, dan pasangan yang menang itulah yang diterapkan. Tidak ada pengenalan ucapan yang terlibat, dan itulah sebabnya prosesnya berjalan dalam beberapa detik serta bekerja ketika subtitle berbahasa yang tidak Anda punya modelnya.
Karena skornya adalah pengukuran, bukan jaminan, halaman ini dirancang untuk tidak melakukan apa pun ketika pengukurannya lemah. Lima cue atau kurang, track audio tanpa ucapan yang bisa dideteksi, skor terbaik yang tetap sebagian besar mendarat di keheningan, atau dua penyelarasan yang sangat berbeda tetapi skornya hampir sama — masing-masing berakhir dengan laporan dan tanpa file subtitle yang ditulis ulang. Kegagalan yang tenang jauh lebih baik di sini daripada kegagalan yang percaya diri: subtitle yang bergeser lima detik terlihat tidak rapi, tetapi subtitle yang bergeser lima detik oleh alat yang mengaku berhasil sulit disadari dan sulit dijelaskan.
Ketika penyelarasannya bagus Anda mendapat dua file, karena keduanya menjawab pertanyaan berbeda. Subtitle yang dikoreksi mempertahankan format asalnya, dinamai film.synced.srt atau ekstensi apa pun yang tadinya dipakai, siap diputar. Laporannya adalah file teks kecil dengan geseran dalam milidetik, rasio yang benar-benar diterapkan, skor, keyakinan, dan satu baris yang menyatakan apakah file itu disentuh atau tidak; dalam praktiknya laporan itu keluar sebagai .sync.txt. Keduanya dihasilkan dari satu kali proses, sehingga batch episode menghasilkan sepasang file yang cocok untuk masing-masing episode.
Pekerjaannya lokal. Audio didekode oleh ffmpeg yang dikompilasi ke WebAssembly, diunduh sekali dari situs ini dan di-cache sesudahnya; subtitle di-parse di dalam tab. Tidak ada apa pun tentang film atau subtitle Anda yang dikirim ke mana pun — tidak ada langkah unggah yang bisa dilewati, dan itu penting untuk materi yang tidak boleh keluar dari mesin.
Pertanyaan yang sering diajukan
Apa bedanya geseran yang diukur halaman resync ini dengan offset tetap yang saya ketik di halaman shift?
Halaman shift menerapkan angka yang sudah Anda ketahui, jadi hasilnya tetap benar entah audionya setuju atau tidak. Halaman ini mulai dari ujung sebaliknya: ia mengandaikan Anda tidak tahu angkanya, membaca aktivitas ucapan dari audio, dan mencari geseran serta perubahan laju secara bersamaan. Itulah juga sebabnya halaman ini bisa memperbaiki masalah frame rate, yang tidak bisa dinyatakan oleh satu offset tunggal — pada 25 terhadap 23,976 galatnya nol di awal dan tumbuh sekitar 3,6 detik per jam, jadi geseran yang membetulkan awalan membuat akhiran lebih buruk.
Mengapa halaman resync subtitle ini kadang menolak menulis file subtitle baru sama sekali?
Karena koreksi yang salah lebih sulit dideteksi daripada koreksi yang tidak ada. Pencarian melaporkan empat hal: berapa cue yang bisa dipakai, apakah audio mengandung ucapan, berapa bagian waktu subtitle yang mendarat di ucapan, dan seberapa jauh pemenangnya lebih baik daripada alternatif yang benar-benar berbeda. Bila salah satunya lemah, proses hanya menghasilkan laporan, yang baris keadaannya menyebut not-found beserta alasannya. Anda tidak kehilangan apa pun — file asli tidak tersentuh — dan Anda mendapat angka yang bisa diperiksa sebelum melakukan apa pun dengan tangan.
Apa arti rasio di laporan resync untuk ketidakcocokan 23,976 ke 25 fps?
Waktu cue dikalikan rasio lalu digeser oleh offset, jadi rasio 1,0427 berarti subtitle di-timing untuk basis frame yang lebih cepat dan setiap cue harus direntangkan ke belakang. Halaman ini mencoba kedua arah dari setiap pasangan umum, karena arah pembacaannya bergantung pada file mana yang kebetulan Anda pegang: 1,0427 dan 0,9590 adalah ketidakcocokan yang sama dilihat dari kedua ujung. Bila rasio yang dilaporkan 1,000000 dan offsetnya di bawah satu frame, file sudah sejajar dan dibiarkan apa adanya.
Apakah file hasil resync mempertahankan pemformatan saya, atau hanya timing-nya?
Timing-nya berubah dan tidak ada yang lain. Subtitle di-parse ke representasi internal yang sama dengan halaman lain di situs ini, waktu mulai dan akhir setiap cue ditulis ulang, lalu diserialisasi kembali ke format asalnya. Pemformatan ASS, penempatan, dan tag inline tetap bertahan; struktur file itu sendiri juga, dan itulah sebabnya .ass masuk menghasilkan .ass keluar alih-alih .srt yang diratakan. Satu pengecualian yang terlihat adalah cue yang terjepit di bawah satu milidetik karena rasio besar, yang ditahan pada satu milidetik dan dihitung di daftar kehilangan.
Apakah resync berbasis audio ini bekerja ketika subtitle berbahasa berbeda dari audionya?
Bekerja, dan itulah inti mengukur kenyaringan alih-alih mengenali kata. Aktivitas ucapan adalah sebuah bentuk — satu kalimat adalah ledakan energi yang diikuti jeda — dan bentuk itu sama entah suaranya berbahasa Jerman atau Spanyol. Dub Jerman di bawah subtitle Spanyol selaras sebaik pasangan yang bahasanya cocok. Yang tidak bisa dilakukannya adalah membedakan baris dub dari baris asli, jadi bila dub menyisipkan dialog tambahan, penyelarasan tetap menemukan kecocokan keseluruhan tetapi cue individual di bagian sisipan bisa duduk di baris yang salah.