Mình lại sửa thêm một lỗi trong công cụ lồng tiếng mã nguồn mở!
Lại là chuyện OmniVoice nè. Nói kết quả trước luôn: mình tìm ra một lỗi có thể làm đơ nguyên cái app, sửa xong, và 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. Có đ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, mà có vài câu ra nguyên văn, chẳng dịch gì cả. Đang giữa một loạt giọng Tây Ban Nha thì tự nhiên nó đọc rõ mồn một một câu tiếng Hàn.
Mình cùng Claude ngồi mò 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, và 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ứ đó có lúc lệch nhau: tiếng thì cắt ở đây, còn chữ lại là nội dung của một điểm chệch đi nửa nhịp. Lệch như vậy là mô hình bối rối, thay vì đọc bản dịch thì nó đọ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 và chữ phải khớp nhau.
PR đầu tiên không được nhận, bị đóng chỉ vì 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 và đưa vào, mà không hề thấy cái PR mình đã đăng sẵn. Thế là 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 mà cuối cùng chỉ thành người đi báo lỗi. Dù vậy, lúc đóng PR anh ấy có để lại một bình luận. Anh nói báo cáo của mình thuộc hàng rõ ràng nhất mà dự án từng nhận được, và xin lỗi vì đã không kiểm tra các PR đang mở, đó là sơ 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ử lý 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
Đọ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 có 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 mà so. Có đúng một chỗ khác.
Trong app có một “anh thợ chép lời” chuyên biến tiếng nói thành chữ, và anh này có 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ì 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ờ mà không thấy trả lời thì bỏ qua, đi tiếp. Nhưng có 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 mà anh thợ bị đơ đúng ngay chỗ đó thì nguyên cái app đứng hình như chết. Code của mình có đồng hồ. Bản được chọn thì không.
Lần này chỉ một ngày là đượ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 gì sẽ xảy ra, và 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 là bình luận: đây là 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, và anh ấy còn tự kiểm chứng lại nữa. Anh cũng cảm ơn mình vì đã đó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
Và 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
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 là 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 nó 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ó đã nằm trong phiên bản chính thức. Nếu lúc PR không được nhận mà mình buông luôn, chắc mình đã chẳng đụng vào code lần nữa. Và dĩ nhiên cũng chẳng có gì của mình vào bản chính thức cả.
Vọc mấy cái issue mã 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, và giờ mình cũng là một phần trong đó. Chính vì tự tay dùng app nên mình mới biết chỗ nào là lỗi, và điều đó khiến mình càng hăng đóng góp hơn. Mà càng đóng góp thì lại càng thấy quý nó. Mong là mã 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, có bạn nào cũng đang đóng góp cho mã 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 tò mò 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 và phần 2.
Nhận bản tin lồng tiếng AI hằng tuần
Bản tổng hợp hằng tuần về lồng tiếng AI và tin tức, bằng ngôn ngữ bạn chọn. Không spam, hủy đăng ký bất cứ lúc nào.
Bình luận (0)
Chưa có bình luận nào, bạn là người đầu tiên nhé.