Aku benerin bug lagi di alat dubbing open-source!
Kali ini masih soal OmniVoice. Langsung ke intinya aja: aku nemu bug yang bisa bikin seluruh aplikasinya macet total, aku benerin, dan perbaikannya masuk ke versi baru (v0.3.15) keesokan harinya. Lengkap sama nama GitHub-ku di catatan rilisnya. Cuma ya, jalan ke sananya nggak semulus itu.
Lagi dubbing ke bahasa Spanyol, eh yang keluar malah bahasa Korea
Aku lagi nge-dubbing video bahasa Korea ke bahasa Spanyol, tapi ada beberapa kalimat yang keluar mentah-mentah tanpa diterjemahkan. Di tengah-tengah suara Spanyol, tiba-tiba dia bacain kalimat Korea, jelas banget pula.
Aku telusuri penyebabnya bareng Claude. Jadi buat niru suara, aplikasi ini motong cuplikan audio pendek dari video aslinya, dan tiap cuplikan punya catatan teks yang isinya “di sini yang diomongin begini”. Ternyata dua-duanya kadang nggak sinkron: suaranya dipotong di titik ini, tapi teksnya nyeritain titik yang geser setengah ketukan. Kalau udah nggak nyambung gitu, modelnya bingung, terus malah bacain teks itu apa adanya, bukan terjemahannya.
Aku rangkum penyebabnya jadi sebuah issue, dan kode perbaikannya juga aku kirim bareng lewat PR. Isinya: tiap kali bikin cuplikan audio, cuplikan itu ditranskripsi ulang, biar suara dan teksnya dipaksa cocok.
PR pertamaku nggak jadi masuk, ditutup selisih beberapa jam aja
Si maintainer cuma sempat lihat issue-ku, terus dalam beberapa jam dia benerin sendiri dengan cara yang sama dan langsung masuk. PR yang udah kuunggah nggak keburu dia lihat. Jadi ya, PR-ku nggak kepakai.
Sedih juga sih. Solusinya udah kubikin sampai jadi kode, tapi ujung-ujungnya aku cuma tercatat sebagai orang yang lapor. Untungnya waktu nutup PR-ku, dia ninggalin komentar. Katanya laporanku termasuk yang paling jelas yang pernah masuk ke proyek ini, dan dia minta maaf juga: nggak ngecek PR yang lagi terbuka itu murni kesalahannya. Terus dia nambahin satu kalimat lagi: kalau suatu saat aku nemu bagian yang kodeku tangani lebih baik daripada kode yang udah masuk, kirim aja kapan pun, bakal dia lihat dengan serius.
Komentar saat menutup PR #1005
Baca ulang kode yang dipakai, eh nemu celah
Katanya sih kode dia fungsinya sama persis kayak punyaku. Aku penasaran, beneran sama nggak sih, apalagi aku baru aja diundang buat ngirim kalau nemu bedanya. Jadi kutaruh dua kode itu berdampingan, kubandingin baris demi baris. Ada satu titik yang beda.
Di aplikasi ini ada semacam “tukang catat” yang tugasnya ngubah suara jadi teks, dan dia punya penyakit lama: sesekali dia ngehang, diem aja tanpa respons. Makanya tiap kali dia disuruh nyatat, selalu dipasangin timer: kalau nggak ada jawaban sampai waktunya habis, ya udah, nyerah dan lanjut. Nah, di satu titik di kode yang baru masuk itu, timernya bolong. Kalau apesnya si tukang catat ngehang pas di situ, seluruh aplikasi bakal macet kayak mati. Kodeku ada timernya. Yang dipakai, nggak ada.
Kali ini masuk dalam sehari
Kali ini aku kirim PR yang isinya lengkap, semua yang dia perlu tahu kumasukin: di mana masalahnya, apa yang bakal kejadian kalau dibiarin, plus tes yang gagal sebelum diperbaiki dan lulus setelahnya.
Besoknya, PR-nya diterima apa adanya, nggak ada satu pun yang perlu diubah. Komentarnya bilang ini celah beneran, kodenya ngikutin gaya yang emang dipakai di file itu, tesnya rapi kayak contoh di buku pelajaran, dan dia juga udah ngecek sendiri. Dia juga bilang makasih karena undangannya yang kemarin kuanggap serius.
Komentar merge di PR #1031
Dan hari itu juga, namaku nongol di catatan rilis v0.3.15.
Bagian catatan rilis v0.3.15 yang menyebut nama GitHub-ku
Video yang kemarin bermasalah itu kucoba dubbing ulang pakai versi baru. Kali ini nggak ada bahasa Korea yang nyelip lagi.
Asli (bahasa Korea)
Versi yang masih bug: di tengahnya bahasa Korea keluar begitu saja
Versi yang sudah diperbaiki (v0.3.15): bahasa Inggris dari awal sampai akhir
Dubbing ini dari bahasa Korea ke Inggris. Bug-nya muncul apa pun bahasa tujuannya.
Yang aku pelajari
Dari benerin bug ini aku dapet satu pelajaran: PR yang ditutup bukan berarti tamat. Kode yang kepilih itu kubaca ulang pelan-pelan, ketemu bagian yang kelewat, terus kubawa balik baik-baik lengkap sama buktinya, dan sehari kemudian udah masuk ke versi resmi. Coba waktu itu aku nyerah gara-gara PR-ku nggak di-merge, aku nggak bakal nyentuh kodenya lagi. Dan nggak bakal ada apa-apa yang masuk ke versi resmi juga.
Ngoprek issue open-source gini terus ngajarin aku banyak hal. Banyak banget orang yang ikut kontribusi, bareng-bareng ngebangun alat kayak gini, dan sekarang aku salah satunya. Karena pakai sendiri aplikasinya, aku jadi tahu mana yang bug, dan itu bikin aku makin semangat ikutan. Makin sering kontribusi, makin sayang juga sama proyeknya. Semoga open source makin rame dan makin banyak yang ikut turun tangan.
Ada yang selain aku juga lagi kontribusi ke open source? Cerita dong pengalamanmu di komentar.
Buat yang penasaran sama kodenya: ini PR #1031 yang di-merge. Cerita sebelumnya ada di bagian pertama dan bagian kedua.
Dapatkan rangkuman dubbing AI mingguan
Rangkuman mingguan soal dubbing AI & berita terbaru, dalam bahasa pilihanmu. Tanpa spam, bisa berhenti kapan aja.
Komentar (0)
Belum ada komentar — jadi yang pertama, yuk.