AiSrt: Terjemahkan, Ekstrak, dan Transkripsikan Subtitle Anda dengan Kecerdasan Buatan
Alat gratis untuk membuat video dapat diakses dalam 29 bahasa, bagi tunarungu, penyandang gangguan pendengaran, dan semua penggemar konten multibahasa
Apakah Anda memiliki video dengan subtitle berbahasa Inggris dan ingin menerjemahkannya ke bahasa Prancis, Spanyol, Arab, atau Jepang? Atau film tanpa subtitle sama sekali, yang ingin Anda buatkan .srt? Itulah alasan saya menulis AiSrt.
AiSrt adalah alat baris perintah yang memanfaatkan AI untuk menerjemahkan file subtitle .srt Anda, mengekstrak trek yang sudah tertanam dalam file video, dan mentranskripsikan audio video langsung menjadi subtitle. Ketiganya dalam satu biner yang sama.
Untuk penerjemahan, Anda dapat memilih antara lima mesin. API dari OpenAI, Anthropic (Claude), Google (Gemini), dan xAI (Grok) hanya membutuhkan biaya beberapa sen per film. Atau gunakan server Ollama yang berjalan di komputer Anda sendiri: gratis, offline, tanpa kunci, tanpa akun. Subtitle Anda tidak meninggalkan hard disk.
Jika video tidak mengandung subtitle apa pun, AiSrt menggunakan Whisper, model pengenalan suara dari OpenAI, yang secara otomatis mengubah trek audio menjadi .srt. Sejujurnya, pertama kali saya melihat sebuah konferensi berdurasi satu jam selesai dengan subtitle tanpa mengetik satu baris pun, rasanya sungguh luar biasa.
Hal baru dalam versi ini: subtitle Blu-ray, yang bukan berupa teks melainkan gambar, kini juga dapat dibaca. AiSrt mendekode gambar tersebut, mengirimkannya ke mesin pengenalan karakter, lalu meminta AI memeriksa kembali hasilnya. Saya akan membahasnya lagi di bawah; inilah bagian yang paling saya banggakan.
Mengapa AiSrt?
- Aksesibilitas adalah yang utama. Penyandang tunarungu dan gangguan pendengaran berhak mendapatkan akses yang mudah ke konten video. Membuat dan menerjemahkan subtitle seharusnya hanya membutuhkan beberapa menit, bukan semalaman.
- 29 bahasa. Arab, Jerman, Inggris, Mandarin, Korea, Denmark, Spanyol, Finlandia, Prancis, Yunani, Hindi, Ibrani, Hungaria, Indonesia, Italia, Jepang, Melayu, Belanda, Norwegia, Polandia, Portugis, Rumania, Rusia, Swedia, Ceko, Thai, Turki, Ukraina, dan Vietnam.
- Terjemahan yang memahami konteks. Inilah perbedaan utama dibandingkan penerjemah kata demi kata: ungkapan idiomatik, humor, dan permainan kata dapat diterjemahkan jauh lebih baik.
- Tiga fungsi dalam satu alat: penerjemahan, ekstraksi, transkripsi.
- Bahkan subtitle yang berupa gambar. Trek PGS dari Blu-ray dibaca menggunakan pengenalan karakter, lalu diperiksa kembali oleh AI untuk memperbaiki kesalahan OCR.
- Lima mesin penerjemahan untuk dipilih. OpenAI, Claude, Gemini, Grok, atau Ollama, dengan kunci Anda sendiri yang dapat diganti melalui satu opsi.
- Gratis dan offline jika Anda mau. Dengan Ollama terpasang di komputer Anda, penerjemahan tidak memerlukan biaya, tidak membutuhkan kunci apa pun, dan tidak mengirimkan data ke mana pun. Praktis untuk konten yang tidak ingin Anda kirimkan melalui layanan pihak ketiga.
- Tidak ada yang perlu dipasang secara terpisah. Biner ini bersifat mandiri, tidak ada runtime .NET yang perlu diunduh, semuanya sudah tersedia di dalamnya. ffmpeg dan whisper.cpp juga diunduh secara otomatis di Windows dan Linux saat diperlukan.
- Akselerasi NVIDIA di Windows. Jika AiSrt mendeteksi kartu grafis Anda, AiSrt akan beralih ke versi CUDA dari whisper sehingga transkripsi berjalan jauh lebih cepat.
Instalasi
Prasyarat
Sebenarnya, tidak ada yang wajib. Ekstraksi dan transkripsi dapat berjalan tanpa kunci, tanpa akun, dan tanpa mengirimkan apa pun ke mana pun.
Untuk penerjemahan, Anda memerlukan kunci dari salah satu dari empat layanan berbayar (OpenAI, Anthropic, Google, atau xAI), atau Ollama yang terpasang di komputer Anda, yang gratis dan offline. Dua bagian berikut menjelaskan keduanya; pilih yang paling sesuai bagi Anda.
Hanya satu kasus yang memerlukan alat tambahan: subtitle yang berupa gambar. Dalam hal ini, Anda memerlukan Tesseract, yang harus Anda instal sendiri. Satu perintah, dan semuanya beres untuk selamanya.
Tidak ada runtime yang perlu dipasang: setiap arsip berisi executable mandiri untuk sistem Anda.
- Unduh di bawah arsip yang sesuai dengan mesin Anda: Windows x64, Linux x64, atau macOS (Apple Silicon M1 hingga M4, atau Intel x64).
- Ekstrak ke folder pilihan Anda.
- Opsional: tambahkan folder ini ke variabel lingkungan
PATHagar dapat memanggilaisrtdari terminal mana pun.
Di macOS, jika sistem menolak menjalankan biner tersebut, buka Terminal di dalam folder dan jalankan chmod +x aisrt, lalu xattr -cr aisrt. Build macOS telah ditandatangani dan dinotarisasi, jadi pada prinsipnya Anda tidak perlu melakukan ini.
Kunci API, dari layanan pilihan Anda
Sekali lagi: ini hanya untuk penerjemahan.
- Buka platform.openai.com dan buat akun, atau masuk.
- Buka API Keys dari menu profil Anda, di kanan atas.
- Klik Create new secret key.
- Beri nama, misalnya AiSrt, lalu konfirmasi.
- Segera salin kuncinya, karena kunci tersebut tidak akan pernah ditampilkan lagi.
- Tempelkan ke
appsettings.json, menggantikan"OPENAI_KEY":
{
"OpenAI": {
"ApiKey": "sk-votre-cle-api-ici",
"Model": "gpt-5-mini",
"Temperature": 1
}
}File ini berada di samping file yang dapat dieksekusi. Setelah AiSrt diinstal, file tersebut dibaca dari %LOCALAPPDATA%\AiSrt\appsettings.json di Windows, dan dari ~/.config/aisrt/appsettings.json di Linux dan macOS.
Tips: Anda juga dapat menyimpan kunci tersebut di file .env terpisah. Masukkan "UseSecretEnvFile": true ke dalam appsettings.json, tentukan lokasi file tersebut, lalu tulis baris OPENAI_KEY=sk-votre-cle-api-ici di dalamnya. Inilah yang saya lakukan sendiri, agar kunci tidak ikut terbawa dalam file konfigurasi yang kita bagikan tanpa berpikir panjang.
Biaya: OpenAI mengenakan biaya berdasarkan penggunaan, dan satu subtitle mengonsumsi sangat sedikit. Siapkan beberapa sen untuk satu film penuh dengan gpt-5-mini.
Bagaimana jika Anda lebih memilih Claude, Gemini, atau Grok
Sejak versi ini, OpenAI bukan lagi satu-satunya layanan berbayar. Tiga layanan lainnya melakukan pekerjaan yang sama persis, dengan kunci Anda sendiri: Anthropic untuk Claude, Google AI Studio untuk Gemini, dan xAI untuk Grok. Caranya sama di semua layanan: Anda membuat akun, membuat kunci, lalu menempelkannya ke appsettings.json.
Setiap layanan memiliki bagiannya sendiri, dengan model bawaannya yang sudah diisi:
{
"Translation": { "Provider": "anthropic" },
"Anthropic": { "ApiKey": "sk-ant-votre-cle", "Model": "claude-haiku-4-5" },
"Gemini": { "ApiKey": "votre-cle", "Model": "gemini-3.6-flash" },
"Xai": { "ApiKey": "xai-votre-cle", "Model": "grok-4.5" }
}Dan jika ingin mencoba layanan tanpa menyentuh berkas tersebut, tersedia opsi --provider:
aisrt "film.srt" -t fr --provider anthropic
aisrt "film.srt" -t fr --provider gemini
aisrt "film.srt" -t fr --provider grokNama-nama yang umum digunakan juga diterima, jadi claude, google, grok dan gpt berfungsi sama baiknya dengan nama resminya. Saya menambahkannya karena saya sendiri sering keliru.
Satu detail yang membuat saya kehilangan waktu semalaman: setiap layanan menerima dua nama variabel lingkungan untuk kuncinya, misalnya ANTHROPIC_API_KEY atau CLAUDE_API_KEY. Saya mengisi berkas .env dengan nama model, bukan nama perusahaannya, dan AiSrt dengan sopan menjelaskan bahwa kunci saya tidak ditemukan. Kuncinya ada, tetapi menggunakan nama yang tidak diperiksa olehnya.
Hal terakhir, dan ini berlaku untuk keempat layanan: jika kuncinya salah, akun tidak memiliki saldo, atau modelnya tidak ada, AiSrt akan memberi tahu sebelum memulai, dengan menyebutkan baris berkas konfigurasi yang harus diperbaiki. Tidak ada lagi kegagalan di tengah film yang baru diterjemahkan sebagian.
Atau: menerjemahkan secara gratis, di komputer Anda sendiri, dengan Ollama
Tidak ingin membuat akun OpenAI, atau tidak ingin berkas Anda dikirim ke pihak ketiga? Instal Ollama, yang menjalankan model bahasa langsung di komputer Anda. Gratis, tanpa batas, dan dapat digunakan tanpa koneksi internet setelah model diunduh.
Tiga langkah:
# 1. Installer Ollama depuis ollama.com, puis demarrer le serveur
ollama serve
# 2. Telecharger le modele livre par defaut
ollama pull gpt-oss:20b
# 3. Traduire, en local
aisrt "film.srt" -t fr --provider ollamaOpsi --provider berlaku untuk perintah yang sedang dijalankan. Jika Anda ingin Ollama menjadi mesin default, masukkan "Provider": "ollama" di bagian Translation pada appsettings.json, dan Anda tidak perlu memikirkannya lagi.
Model mana yang harus dipilih? Saya telah menguji beberapa model dan jawabannya mengejutkan saya. Model lokal harus mematuhi format keluaran yang sangat ketat: satu blok terjemahan untuk setiap blok yang dikirim, dalam urutan yang sama, tanpa komentar. Beberapa model sama sekali tidak mampu melakukannya: qwen2.5 menyelipkan komentar dalam bahasa Mandarin di tengah-tengah subtitle, tiga kali dari tiga percobaan, bahkan setelah dibatasi semaksimal mungkin. Model itu tidak dapat digunakan. llama3.1:8b bekerja dengan sangat baik dan sekitar sepuluh kali lebih cepat. gpt-oss:20b adalah model yang saya sertakan sebagai default, karena tidak pernah kehilangan satu blok pun selama pengujian saya, tetapi model ini jauh lebih berat (sekitar 14 GB) dan lebih lambat.
Jujur saja tentang komprominya: secara lokal, ini gratis tetapi lambat, dan kualitasnya masih di bawah hasil dari gpt-5-mini. Untuk film yang ingin Anda tonton malam ini, API OpenAI seharga tiga sen lebih nyaman. Untuk memproses satu musim penuh tanpa memantau penghitung biaya, atau untuk konten sensitif, Ollama menjadi pilihan yang menarik.
Ada satu hal yang membuat saya membuang waktu dan ingin saya hindarkan dari Anda: AiSrt berkomunikasi dengan Ollama melalui API aslinya dan menetapkan jendela konteks yang memadai. Jika menggunakan lapisan kompatibilitas OpenAI milik Ollama, pengaturan ini diabaikan, model memotong jawabannya tanpa memberi tahu, dan Anda akan mendapatkan blok yang hilang dalam berkas akhir. Semua ini ditangani untuk Anda, tetapi hal tersebut menjelaskan mengapa kumpulan data lebih kecil secara lokal (10 blok, bukan 40).
Yang terjadi sebelum proses dimulai
Dua pemeriksaan berjalan saat startup, dan keduanya telah menyelamatkan saya dari cukup banyak frustrasi.
Yang pertama memeriksa file yang Anda berikan. Jika Anda mengetik aisrt film.mkv tanpa menyertakan opsi tersebut, AiSrt akan memberi tahu bahwa file itu adalah video dan menyarankan --extract atau --transcribe. Sebelumnya, program ini membaca file biner sebagai teks dan mengirimkannya apa adanya ke AI, yang kemudian merespons dengan kesalahan yang tidak dapat dipahami terkait ukuran permintaan. Selain itu, jika Anda memberinya subtitle yang bukan berformat .srt (misalnya .ass, .vtt, atau .sub), program ini akan mengonversinya sendiri menggunakan ffmpeg lalu melanjutkan ke proses penerjemahan.
Yang kedua memeriksa apakah mesin penerjemahan merespons sebelum mengirimkan apa pun. Kunci tidak valid, akun tanpa kredit, server Ollama belum dijalankan, model belum diunduh: setiap kasus memiliki pesannya sendiri dan perintah untuk memperbaikinya. Tidak ada yang lebih buruk daripada memulai ekstraksi enam trek, pergi minum kopi, lalu mendapati enam kesalahan yang sama saat kembali.
Panduan penggunaan
Sintaks umum
aisrt [<fichier>] [options]Semua opsi
| Opsi | Deskripsi | Nilai default |
|---|---|---|
<file> | Jalur ke file .srt yang akan diterjemahkan, atau file video dengan --extract dan --transcribe | tidak ada |
-t, --target <code> | Kode bahasa target | fr |
-s, --source <code> | Kode bahasa sumber | en |
--languages | Menampilkan 29 bahasa beserta kodenya | tidak ada |
--streams | Menampilkan daftar trek subtitle video, tanpa mengekstrak apa pun | tidak ada |
--extract | Mengekstrak trek subtitle dari video melalui pilihan interaktif. Trek gambar dibaca dengan OCR | tidak ada |
--transcribe | Mentranskripsikan audio video ke dalam .srt dengan whisper.cpp | tidak ada |
-p, --provider <nom> | Mesin penerjemahan: openai, anthropic, gemini, xai atau ollama | yang ada di appsettings.json |
--stream <n|all> | Dengan --extract: trek yang akan diekstrak, tanpa melalui menu | tidak ada |
-tt, --translate-to <code> | Dengan --extract atau --transcribe: menerjemahkan hasil tanpa menanyakan apa pun | tidak ada |
-m, --model <nom> | Dengan --transcribe: model whisper, tanpa melalui menu | tidak ada |
-al, --audio-language <code> | Dengan --transcribe: bahasa yang digunakan dalam video | terdeteksi oleh whisper |
-ni, --non-interactive | Tidak mengajukan pertanyaan apa pun, menerapkan nilai default | tidak ada |
--version | Menampilkan versi | tidak ada |
-h, --help | Menampilkan bantuan | tidak ada |
Perhatikan agar tidak tertukar antara --streams dalam bentuk jamak, yang hanya mencantumkan trek, dan --stream dalam bentuk tunggal, yang memilih salah satunya untuk diekstrak. Hanya berbeda satu huruf, tetapi efeknya sangat berbeda. Saya sempat ingin mengganti namanya, tetapi akhirnya tidak: kedua nama tersebut memang muncul secara alami.
1. Menerjemahkan subtitle
Fungsi utama, dan yang paling sering saya gunakan:
# Traduire de l'anglais vers le français (comportement par défaut)
aisrt "film.srt"
# Traduire de l'anglais vers l'espagnol
aisrt "film.srt" -s en -t es
# Traduire du français vers le japonais
aisrt "film.fr.srt" -s fr -t jaFile hasil terjemahan menyertakan kode bahasa target dalam namanya: film.fr.srt, film.es.srt, dan seterusnya. File output sebelumnya, jika sudah ada, disalin menjadi .bak.srt sebelum ditulis ulang.
Terjemahan dilakukan dalam kelompok yang masing-masing terdiri dari 40 blok, dan setiap kelompok ditulis ke disk segera setelah selesai diproses. Beginilah hasilnya pada film lengkap di komputer saya:
598 blok dibagi menjadi 15 kelompok, dan Anda dapat melihat waktunya terus bertambah di sebelah kanan: sekitar satu menit per kelompok, sedikit kurang dari lima belas menit untuk seluruh film. Jika proses terhenti pada kelompok ke-13, menjalankan kembali perintah yang sama akan melanjutkan dari kelompok ke-13.
2. Mencantumkan trek dalam video
Sebelum mengekstrak, kita dapat melihat isi file tersebut:
aisrt --streams "film.mkv"Anda akan mendapatkan tabel yang berisi nomor aliran, bahasa, codec, dan jenis setiap trek, baik teks maupun bitmap.
3. Mengekstrak subtitle dari video
Banyak MKV dan MP4 sudah menyertakan subtitle. Lebih baik mengambilnya daripada membuatnya kembali:
aisrt --extract "film.mkv"Sebuah menu memungkinkan Anda memilih satu trek, atau mengekstrak semuanya sekaligus. Format teks didukung (SRT, ASS, SSA, WebVTT, mov_text). Trek PGS, yaitu trek dari Blu-ray, berupa gambar: kini trek tersebut dibaca menggunakan pengenalan karakter, dan bagian berikutnya membahasnya secara khusus. Trek dari DVD dan TNT belum dapat didekode, tetapi AiSrt akan memberi tahu Anda dengan jelas alih-alih melewatinya secara diam-diam. Setelah ekstraksi selesai, AiSrt menawarkan untuk langsung menerjemahkan setiap trek, dengan bahasa trek tersebut sebagai bahasa sumber.
Catatan: ffmpeg diunduh secara otomatis di Windows dan Linux jika belum tersedia di komputer Anda. Di macOS, instal dengan brew install ffmpeg.
4. Mentranskripsikan audio menjadi subtitle
Tidak ada subtitle sama sekali dalam video? Kita buat subtitle tersebut dengan whisper.cpp:
aisrt --transcribe "film.mkv"Pada peluncuran pertama, AiSrt akan menanyakan model pengenalan suara yang ingin digunakan:
- base.en, sekitar 150 MB: cepat, cukup baik untuk bahasa Inggris yang diucapkan dengan jelas
- small.en, sekitar 500 MB: kompromi yang tepat
- medium.en, sekitar 1,5 GB: lebih akurat, lebih lambat
- base, small, medium: ukuran yang sama, tetapi multibahasa
- large-v3, sekitar 3 GB: paling akurat, multibahasa, dan paling lambat
Anda dapat melewati menu ini dengan --model jika Anda sudah tahu yang ingin digunakan.
Mentranskripsikan bahasa selain bahasa Inggris
Dulu, AiSrt menganggap Anda memberinya bahasa Inggris. Itu adalah ide yang sangat buruk: ucapan dalam bahasa Prancis akan menghasilkan subtitle bahasa Inggris yang tidak akurat, tanpa peringatan apa pun, dan jika Anda melanjutkannya dengan terjemahan, Anda akan mendapatkan bahasa Prancis yang diterjemahkan ulang dari bahasa Inggris tersebut. Seperti permainan telepon rusak dengan video Anda sendiri.
Sekarang, whisper mendeteksi bahasa yang digunakan dan AiSrt membaca hasilnya secara langsung. Anda tidak perlu menentukan apa pun, dan file yang dihasilkan memiliki kode bahasa yang benar. Anda tetap dapat memaksakannya jika tahu apa yang Anda lakukan, dengan model multibahasa:
aisrt --transcribe "film.mkv" --audio-language fr --model baseFile yang dihasilkan kemudian bernama film.fr.srt, dan jika Anda melanjutkannya dengan terjemahan, AiSrt mengetahui bahwa titik awalnya adalah bahasa Prancis.
Ada satu jebakan yang sempat saya telusuri: model yang namanya diakhiri dengan .en dilatih hanya dengan bahasa Inggris. Berikan audio bahasa Prancis kepada model tersebut dan model tidak akan memprotes; model akan menghasilkan fonetik bahasa Inggris dengan penuh keyakinan. Hasil semacam ini biasanya baru terlihat saat file dibaca. Karena itu, AiSrt menolak kombinasi tersebut sebelum menjalankan apa pun dan menampilkan daftar model yang sesuai.
Di Windows dan Linux, AiSrt mengunduh whisper secara otomatis. Di Windows, AiSrt juga mendeteksi kartu NVIDIA dan menggunakan versi CUDA, yang jauh lebih cepat.
Di macOS, Anda perlu melakukan satu langkah tambahan. Proyek whisper.cpp tidak menyediakan executable baris perintah untuk macOS, melainkan hanya framework yang ditujukan bagi pengembang Apple: jadi tidak ada yang dapat diunduh secara otomatis. Solusinya cukup dengan satu perintah:
brew install whisper-cpp ffmpegAiSrt kemudian akan mencari alat yang terpasang di sistem Anda dan menggunakannya apa adanya. Saya tidak memiliki Mac untuk mencoba skenario ini dari awal hingga akhir, jadi jika Anda menggunakan macOS dan mengalami kendala, hubungi saya; saya tertarik untuk mengetahuinya.
Subtitle yang berupa gambar
Ekstrak satu trek subtitle dari Blu-ray dan Anda tidak akan mendapatkan teks. Anda akan mendapatkan gambar, satu untuk setiap dialog, dalam format bernama PGS. Disk tersebut tidak menyimpan kata-katanya, melainkan foto dari kata-kata tersebut. Ini praktis untuk mempertahankan font dan penempatan persis seperti di bioskop, tetapi menjadi bencana begitu ingin menerjemahkannya: tidak ada yang bisa diterjemahkan, hanya ada piksel.
Sampai sekarang, AiSrt hanya akan memberi tahu Anda dengan sopan bahwa ia tidak bisa melakukannya. Sekarang ia bisa.
Apa yang terjadi saat Anda menjalankan perintah
Tidak ada yang baru untuk diketik, perintahnya sama seperti sebelumnya:
aisrt --extract "film.mkv"Jika Anda memilih trek gambar, AiSrt menjalankan tiga tahap. AiSrt mengeluarkan trek mentah dari kontainer dengan ffmpeg. AiSrt mendekode gambar sendiri, satu per subtitle, sekaligus mengambil waktu tampil seperti yang ditulis oleh cakram. Kemudian semuanya diteruskan ke Tesseract, sebuah mesin pengenalan karakter (perangkat lunak yang membaca ulang teks pada gambar), sekaligus untuk seluruh trek.
File bahasa Tesseract diunduh secara otomatis, dalam bahasa yang dinyatakan oleh trek tersebut. Trek berbahasa Prancis mendapatkan bahasa Prancis, trek berbahasa Jepang mendapatkan bahasa Jepang. Anda tidak perlu memilih apa pun.
Tesseract harus diinstal sendiri
Ini satu-satunya dependensi yang tidak akan dicari AiSrt untuk Anda, dan itu memang disengaja. ffmpeg dan whisper menerbitkan executable mandiri yang dapat saya unduh dengan rapi. Tesseract tidak demikian: Tesseract berupa installer sistem yang berbeda di setiap platform. Cukup satu perintah:
# Windows
winget install tesseract-ocr.tesseract
# Linux
sudo apt install tesseract-ocr
# macOS
brew install tesseractSedikit cerita yang membuat saya kehilangan waktu setengah jam: di Windows, installer ini tidak menambahkan Tesseract ke PATH. Jadi AiSrt memberi tahu saya bahwa alat tersebut tidak ditemukan, lalu menyarankan saya menjalankan perintah yang baru saja saya jalankan. Sebuah putaran tanpa jalan keluar. Kini AiSrt akan memeriksa folder tempat installer benar-benar menaruh biner tersebut.
AI membaca ulang apa yang telah dibaca OCR
Mesin pengenalan karakter selalu membuat kesalahan yang sama. Garis vertikal menggantikan huruf I kapital. Huruf r yang diikuti n berubah menjadi m. Aksen tertelan. Dalam satu film penuh, hal itu akhirnya terlihat.
Jadi AiSrt mengirimkan teks yang dikenali ke layanan terjemahan Anda, dengan instruksi yang jelas: perbaiki kesalahan pembacaan, jangan menerjemahkan apa pun, jangan merumuskan ulang apa pun, jangan mempersingkat apa pun. Ini adalah pembacaan ulang, bukan penulisan ulang. Dari 100 subtitle dalam cuplikan film yang saya uji, 14 dikoreksi, 86 sudah benar, dan tidak satu pun dipindahkan atau dibuat-buat.
Pengaman lebih penting daripada fiturnya, jadi saya akan menjelaskannya secara terperinci. Koreksi hanya diterima jika tetap dekat dengan apa yang dibaca: model yang memutuskan untuk menerjemahkan sebuah dialog akan ditolak. Dan jika respons tidak berisi jumlah teks yang persis sama dengan yang dikirimkan, seluruh kelompok dibatalkan dan teks mentah dipertahankan. Saya lebih memilih subtitle dengan kesalahan ketik yang terlihat daripada subtitle sempurna yang ditempelkan pada dialog yang salah.
Pembacaan ulang ini aktif secara default dan menggunakan layanan yang sudah menerjemahkan. Anda dapat menonaktifkannya, atau menyerahkannya kepada layanan lain, di appsettings.json. Dan jika tidak ada kunci yang dikonfigurasi, tidak terjadi sesuatu yang dramatis: teks OCR ditulis apa adanya, AiSrt memberi tahu Anda, dan ekstraksi selesai secara normal.
Bug yang tidak akan pernah saya temukan tanpa mencarinya
Banyak cakram menampilkan dan menghilangkan subtitle secara perlahan. Untuk itu, cakram tidak mengirimkan gambar baru: cakram menggunakan kembali gambar yang sama dengan hanya mengubah transparansinya. AiSrt menganggap perubahan ini sebagai akhir subtitle.
Hasilnya: subtitle yang ditampilkan selama empat detik muncul sebagai tiga bagian. Bagian pertama berlangsung satu detik, sementara dua bagian lainnya terlalu pucat untuk dibaca ulang sehingga dibuang. Tidak satu pun file pengujian saya menggunakan efek fade, jadi saya sengaja membuat kasus tersebut untuk melihatnya. Sebelumnya tiga bagian, setelahnya satu subtitle dengan durasi yang tepat.
kini AiSrt mempertahankan, di antara render berturut-turut, hasil yang teksnya paling mudah dibaca. Efek fade dimulai dan berakhir dalam keadaan transparan: baik yang pertama maupun yang terakhir bukan pilihan yang tepat.
Yang masih belum berfungsi
Subtitle gambar dari DVD dan TNT belum didekode. Berbeda dengan PGS, yang setiap gambarnya berdiri sendiri, format-format ini dibaca berdasarkan informasi yang disimpan di tempat lain dalam file. Ini adalah pekerjaan lain, bukan perluasan dari pekerjaan ini. Untuk sementara, AiSrt mendeteksinya dan memberi tahu Anda, alih-alih mengabaikannya secara diam-diam.
Rangkaian lengkap, dari video mentah hingga subtitle yang diterjemahkan
# Étape 1 : transcrire l'audio anglais
aisrt --transcribe "conference.mp4"
# donne conference.en.srt
# Étape 2 : traduire en français
aisrt "conference.en.srt" -s en -t fr
# donne conference.fr.srt
# Étape 3 : et en espagnol tant qu'à faire
aisrt "conference.en.srt" -s en -t es
# donne conference.es.srtTiga perintah, dan video tanpa subtitle menjadi dapat diakses dalam tiga bahasa.
Detail kecil yang penting jika Anda membuat skrip untuk semua ini: AiSrt mengembalikan 0 jika semuanya berjalan lancar, 1 jika terjadi kegagalan, dan 2 jika Anda sendiri yang membatalkannya. Apa pun yang sudah ditulis ke disk tetap ada, dan penerjemahan akan dilanjutkan saat dijalankan berikutnya.
Mengotomatiskan semuanya, tanpa satu pertanyaan pun
Tiga perintah di atas mengajukan beberapa pertanyaan: trek mana yang harus diekstrak, model apa yang harus digunakan, dan apakah perlu menerjemahkan setelahnya. Praktis saat Anda berada di depan layar, tetapi jauh kurang praktis jika Anda ingin memproses satu musim penuh sepanjang malam.
Empat opsi menggantikannya, dan seluruh rangkaian tersebut kini cukup ditulis dalam satu baris:
# Extraire la piste 2, la traduire en francais, sans jamais rien demander
aisrt --extract "episode.mkv" --stream 2 --translate-to fr --non-interactiveAtau untuk satu folder penuh, di Windows:
Get-ChildItem *.mkv | ForEach-Object {
aisrt --extract $_.FullName --stream 1 --translate-to fr --non-interactive
}--non-interactive tidak menebak apa pun: setiap pertanyaan menggunakan nilai defaultnya, dan memberi tahu Anda nilai yang dipilih serta opsi yang memungkinkan Anda memilih nilai lain. Sebaliknya, nilai yang Anda berikan secara eksplisit tidak pernah diabaikan secara diam-diam. Jika Anda meminta trek 7 dari file yang hanya memiliki dua trek, proses akan berhenti dan menampilkan daftar trek yang tersedia, alih-alih mengekstrak semuanya seolah-olah tidak terjadi apa-apa. Untuk sebuah skrip, kesalahan yang jelas lebih baik daripada hasil yang tidak terduga.
Dan jika Anda menekan Ctrl+C dalam mode ini, proses akan langsung berhenti tanpa meminta konfirmasi. Tidak akan ada siapa pun yang menjawab, dan pertanyaan tanpa jawaban akan memblokir skrip sepenuhnya.
Bahasa yang didukung
| Kode | Bahasa | Kode | Bahasa | Kode | Bahasa |
|---|---|---|---|---|---|
ar | Arab | cs | Ceko | da | Denmark |
de | Jerman | el | Yunani | en | Inggris |
es | Spanyol | fi | Finlandia | fr | Prancis |
he | Ibrani | hi | Hindi | hu | Hongaria |
id | Indonesia | it | Italia | ja | Jepang |
ko | Korea | ms | Melayu | nl | Belanda |
no | Norwegia | pl | Polandia | pt | Portugis |
ro | Rumania | ru | Rusia | sv | Swedia |
th | Thailand | tr | Turki | uk | Ukraina |
vi | Vietnam | zh | Tionghoa |
Ketik aisrt --languages untuk menemukan kembali daftar ini kapan saja.
Konfigurasi lanjutan
Semua pengaturan dilakukan di appsettings.json :
- Model, dengan kunci
Model, jika Anda lebih memilih model OpenAI lain selaingpt-5-mini. - Ukuran batch, dengan
BatchSize: jumlah blok yang dikirim per permintaan, 40 secara default. - Panjang baris, dengan
MaxLineLength: di atas 50 karakter, AiSrt memotong baris agar tetap mudah dibaca di layar. - Batas waktu jaringan, dengan
RequestTimeoutMinutes: 10 menit secara default. Jika Anda banyak meningkatkanBatchSize, tingkatkan juga nilai ini. - Instruksi yang diberikan kepada AI, dengan
SystemPromptdanUserInstructionPrompt. Di sinilah hal ini menjadi menarik: Anda dapat menyesuaikan terjemahan dengan konteks hukum, medis, keagamaan, atau teknis dengan menulis ulang kedua teks tersebut. Saya sengaja memisahkannya dari kode untuk tujuan itu. - Suhu, antara 0.3 untuk terjemahan yang sangat harfiah dan 1.5 untuk terjemahan yang lebih bebas. Nilai default-nya adalah 1.
- Mesin terjemahan, dengan
Providerdi bagianTranslation:openai,anthropic,gemini,xaiatauollama. Pengaturan ini berlaku untuk semua perintah Anda, sedangkan--providerhanya berlaku untuk perintah yang sedang dijalankan. - Pengaturan Ollama, di bagian tersendiri: alamat server dengan
BaseUrl, model denganModel, ukuran batch denganBatchSize, dan ukuran jendela konteks denganNumCtx. Jika Anda meningkatkan yang pertama, ingatlah untuk meningkatkan yang kedua. - Pengenalan karakter, di bagian
Ocr: bahasa cadangan denganDefaultLanguage, mode segmentasi tesseract denganPageSegMode, dan pembesaran gambar sebelum pembacaan denganUpscaleFactor. Dua pengaturan terakhir memiliki batas: nilai yang tidak wajar akan ditandai dan diganti, alih-alih menyebabkan pembacaan gambar satu per satu gagal. - Pemeriksaan ulang teks OCR, dalam
Ocr:Proofread:Enableduntuk menonaktifkannya,Provideruntuk menyerahkannya kepada layanan lain selain yang menerjemahkan, danBatchSizeuntuk ukuran batch. Kedua prompt-nya dapat ditulis ulang seperti prompt terjemahan.
Untuk siapa?
- Orang tuli dan yang memiliki gangguan pendengaran, yang membutuhkan subtitle untuk mengakses video sehari-hari.
- Pembuat konten yang ingin menjangkau audiens di luar bahasa mereka.
- Pengajar dan pelatih yang kursus daringnya layak mendapatkan lebih dari sekadar subtitle otomatis yang kurang akurat.
- Penerjemah profesional, untuk membuat draf awal dalam beberapa menit.
- Pecinta film dan penggemar serial, tentu saja.
- Asosiasi dan LSM yang menyebarkan video secara internasional.
AiSrt gratis dan siap digunakan.
Unduh, coba, dan buat video Anda dapat diakses oleh semua orang.

Join the conversation
You need an account to comment on this article. Creating one is free and takes under a minute.
No comments yet.