opendub.ai
#ai-dubbing#omnivoice#open-source#bug-fix

Mình lại sửa thêm một lỗi trong công cụ lồng tiếng mã nguồn mở!

opendub · 2026-07-14 · 4 phút đọc

Lại chuyện OmniVoice nè. Nói kết quả trước luôn: mình tìm ra một lỗi thể làm đơ nguyên cái app, sửa xong, ngay hôm sau bản sửa đã vào phiên bản mới (v0.3.15), kèm tên GitHub của mình trong ghi chú phát hành. điều, đường đi đến đó không suôn sẻ chút nào.

Đang lồng tiếng Tây Ban Nha thì tiếng Hàn bật ra

Mình lồng một video tiếng Hàn sang tiếng Tây Ban Nha, vài câu ra nguyên văn, chẳng dịch cả. Đang giữa một loạt giọng Tây Ban Nha thì tự nhiên đọc mồn một một câu tiếng Hàn.

Mình cùng Claude ngồi nguyên nhân. Để bắt chước giọng, app cắt những đoạn âm thanh ngắn từ video gốc, mỗi đoạn đi kèm một mẩu ghi chú kiểu “chỗ này đang nói câu này”. Hóa ra hai thứ đó lúc lệch nhau: tiếng thì cắt đây, còn chữ lại nội dung của một điểm chệch đi nửa nhịp. Lệch như vậy hình bối rối, thay đọc bản dịch thì đọc luôn cái mẩu ghi chú đó.

Mình tóm tắt nguyên nhân rồi đăng issue, kèm luôn một PR chứa code mình đã sửa: mỗi lần app tạo một đoạn âm thanh thì chép lời lại đoạn đó lần nữa, ép tiếng chữ phải khớp nhau.

PR đầu tiên không được nhận, bị đóng chỉ chậm vài tiếng

Người làm ra app chỉ đọc issue của mình, rồi trong vài tiếng tự tay sửa y chang đưa vào, không hề thấy cái PR mình đã đăng sẵn. Thế PR của mình không vào được.

Tiếc thật đấy. Mình mang cả lời giải viết sẵn thành code đến nơi, vậy cuối cùng chỉ thành người đi báo lỗi. vậy, lúc đóng PR anh ấy để lại một bình luận. Anh nói báo cáo của mình thuộc hàng ràng nhất dự án từng nhận được, xin lỗi đã không kiểm tra các PR đang mở, đó suất của anh. Rồi anh thêm một câu: nếu mình thấy chỗ nào code của mình xử tốt hơn bản đã đưa vào, cứ gửi lên bất cứ lúc nào, anh sẽ xem một cách nghiêm túc.

Bình luận để lại khi đóng PR #1005

Bình luận để lại khi đóng PR #1005

Đọc lại đoạn code được chọn, mình phát hiện một kẽ hở

Anh ấy bảo code của anh làm y hệt code của mình. Mình muốn biết thật vậy không, với lại mình vừa được mời gửi lên nếu tìm ra chỗ khác biệt mà. Nên mình đặt hai bản cạnh nhau so. đúng một chỗ khác.

Trong app một “anh thợ chép lời” chuyên biến tiếng nói thành chữ, anh này cái tật kinh niên: lâu lâu tự nhiên bị đơ, gọi mãi không trả lời. vậy mỗi lần nhờ chép lời, app luôn cài kèm một cái đồng hồ hẹn giờ: quá giờ không thấy trả lời thì bỏ qua, đi tiếp. Nhưng một chỗ trong đoạn code mới đưa vào lại thiếu mất cái đồng hồ đó. Xui xẻo anh thợ bị đơ đúng ngay chỗ đó thì nguyên cái app đứng hình như chết. Code của mình đồng hồ. Bản được chọn thì không.

Lần này chỉ một ngày được nhận

Lần này mình gửi một cái PR nhét đủ mọi thứ cần thiết: vấn đề nằm đâu, để nguyên thì chuyện sẽ xảy ra, cả một bài kiểm tra trước khi sửa thì trượt, sửa xong thì đậu.

Hôm sau PR được nhận nguyên xi, không phải chỉnh một chữ nào. Kèm theo bình luận: đây một kẽ hở thật, code viết đúng theo cách file đó vẫn làm xưa nay, bài kiểm tra thì chuẩn sách giáo khoa, anh ấy còn tự kiểm chứng lại nữa. Anh cũng cảm ơn mình đã đón nhận lời mời lần trước một cách nghiêm túc.

Bình luận merge của PR #1031

Bình luận merge của PR #1031

cũng trong ngày hôm đó, tên mình lên ghi chú phát hành của v0.3.15.

Phần ghi chú phát hành v0.3.15 nhắc đến tên GitHub của mình

Phần ghi chú phát hành v0.3.15 nhắc đến tên GitHub của mình

Mình đem cái video gây chuyện lúc đầu lồng tiếng lại bằng phiên bản mới. Lần này không còn câu tiếng Hàn nào bật ra nữa.

Bản gốc (tiếng Hàn)

Bản còn lỗi: giữa chừng tiếng Hàn vang lên nguyên xi

Bản đã sửa (v0.3.15): tiếng Anh từ đầu đến cuối

Bản lồng tiếng này là từ tiếng Hàn sang tiếng Anh. Lỗi này xuất hiện bất kể lồng sang ngôn ngữ nào.

Điều mình học được

Sửa lỗi lần này, mình rút ra một điều: PR bị đóng không phải hết chuyện. Bình tĩnh ngồi đọc lại đoạn code đã được chọn, mình thấy ra chỗ bị bỏ sót, rồi mang quay lại một cách lịch sự, kèm bằng chứng hẳn hoi. Một ngày sau đã nằm trong phiên bản chính thức. Nếu lúc PR không được nhận mình buông luôn, chắc mình đã chẳng đụng vào code lần nữa. nhiên cũng chẳng của mình vào bản chính thức cả.

Vọc mấy cái issue nguồn mở cứ dạy mình thêm bao nhiêu thứ. Rất nhiều người đang cùng đóng góp, cùng xây những công cụ này, giờ mình cũng một phần trong đó. Chính tự tay dùng app nên mình mới biết chỗ nào lỗi, điều đó khiến mình càng hăng đóng góp hơn. càng đóng góp thì lại càng thấy quý nó. Mong nguồn mở ngày càng sôi động, càng nhiều người chung tay hơn nữa.

Ngoài mình ra, bạn nào cũng đang đóng góp cho nguồn mở không? Kể mình nghe trải nghiệm của bạn phần bình luận nhé.

Bạn nào về code thì đây: PR #1031 đã được gộp. Còn chuyện những lần trước thì nằm phần 1 phần 2.

bình luận

Bình luận (0)

Chưa có bình luận nào, bạn là người đầu tiên nhé.