Overtone: Công cụ mã nguồn mở tự động tạo phụ đề chuẩn cho mọi tỷ lệ khung hình
Overtone là dự án mã nguồn mở của Lont giúp phiên âm, sửa lỗi và cắt phụ đề thành nhiều phiên bản phù hợp với từng tỷ lệ màn hình như 16:9 hay 9:16. Công cụ kết hợp nhiều mô hình nhận dạng giọng nói cùng LLM để giảm tỷ lệ lỗi từ, đồng thời áp dụng bộ quy tắc ngắt dòng thông minh để phụ đề dễ đọc hơn.

Overtone: Công cụ mã nguồn mở tự động tạo phụ đề chuẩn cho mọi tỷ lệ khung hình
Trạng thái CI
Overtone là dự án mã nguồn mở vừa được nhóm phát triển Lont giới thiệu trên Hacker News, giải quyết một nỗi đau quen thuộc của những ai làm video: phụ đề thường chỉ được cắt một lần cho một kích thước màn hình, rồi bị lỗi khi hiển thị ở tỷ lệ khác. Công cụ này lưu mỗi từ nói một lần duy nhất, sau đó tự động tạo các phiên bản cắt phụ đề riêng cho từng tỷ lệ khung hình như 16:9, 9:16 hay bất kỳ tỷ lệ tùy chỉnh nào.
Vấn đề cốt lõi: phụ đề "một cỡ cho mọi màn hình"
Theo chia sẻ của Ruud, đồng sáng lập Lont, đội ngũ của anh từng tốn công gấp đôi cho phụ đề video: lần đầu để sửa các từ bị nghe sai, lần thứ hai để sửa bố cục — chẳng hạn như những dòng kết thúc bằng "the" hay "of", hoặc hai người nói khác nhau lại nằm chung một phụ đề.
Cách làm phổ biến hiện nay là cắt phụ đề một lần rồi nhồi đầy dòng đến giới hạn ký tự. Hệ quả là bản cắt 16:9 quá rộng khi đưa lên video dọc 9:16 trên điện thoại, gây khó đọc và làm giảm trải nghiệm người xem.
Overtone giải quyết vấn đề này bằng cách lưu trữ mỗi từ một lần duy nhất, kèm thời gian và người nói. Từ dữ liệu gốc đó, công cụ tạo ra nhiều bản cắt khác nhau, mỗi bản tuân theo các quy tắc đọc hiểu:
- Dòng không kết thúc bằng các từ yếu như "the", "of", "and"
- Tên riêng và con số không bị tách rời giữa hai dòng
- Mỗi người nói có phụ đề riêng
- Khoảng lặng được chuyển thành chỗ ngắt dòng hoặc ngắt phụ đề, giúp người khiếm thính cảm nhận được nhịp ngập ngừng
Kết hợp nhiều mô hình AI để giảm lỗi phiên âm
Điểm đáng chú ý của Overtone là quy trình xử lý nhiều tầng. Công cụ cho nhiều mô hình cùng "nghe" đoạn audio: gpt-transcribe lo phần nhận diện từ ngữ, Azure AI Speech cung cấp mốc thời gian từng từ và thông tin người nói, còn ElevenLabs Scribe (nếu có API key) đóng vai trò tai nghe thứ hai.
Khi các mô hình trả về kết quả mâu thuẫn, Overtone gửi lại các đoạn clip nhỏ cho mô hình và để một LLM quyết định từ nào thực sự được nói ra. Theo nhóm phát triển, LLM ở đây đóng vai trò như con người kiểm tra lại một cách hợp lý — dựa vào ngữ cảnh và kiến thức nền để nhận ra từ đúng, chẳng hạn tự sửa "Telecom Cell" thành "Telkomsel" mà không cần được chỉ dẫn.
Nhờ vậy, tỷ lệ lỗi từ (WER) trên nhiều tệp kiểm thử thấp hơn so với chỉ dùng một mô hình đơn lẻ. Kết quả công bố cho thấy trên 5 clip mà mọi mô hình đều trả về văn bản, WER của Overtone là 5,3%, so với 6,2% của gpt-transcribe và 7,7% của Azure Speech khi chạy riêng.
Đánh đổi là chi phí cao hơn, vì phải dùng tới ba mô hình nhận dạng giọng nói cộng thêm một LLM. Theo nhóm Lont, mức giá dao động khoảng 0,023–0,025 USD mỗi phút audio, hoặc 0,029 USD nếu bật ElevenLabs Scribe. Với những trường hợp khối lượng cực lớn, con số này có thể là rào cản.
Định dạng .overtone.json và hệ sinh thái công cụ
Thay vì dùng WebVTT hay TTML — vốn chỉ lưu các cue phụ đề đã hoàn chỉnh, khiến trình phát chỉ có thể ngắt dòng lại — Overtone định nghĩa định dạng riêng .overtone.json. Định dạng này lưu từng từ một lần, kèm bất kỳ số lượng bản cắt nào trỏ tới các từ đó. Khi cần tệp chuẩn, người dùng có thể xuất ra WebVTT hoặc SRT theo từng bản cắt.
Bộ công cụ gồm ba gói chính:
- overtone-captions: CLI với các lệnh transcribe, recut, burn, export, validate, init, languages và providers
- videojs-overtone: plugin cho video.js 8.5 trở lên, kèm năm gói giao diện là clean, social, minimal, high-contrast và lumora
- overtone-format: định nghĩa kiểu dữ liệu, JSON Schema, trình kiểm tra hợp lệ và các bộ xuất WebVTT, SRT, văn bản thuần — không phụ thuộc thư viện chạy
Ảnh minh họa giao diện Overtone
Người dùng có thể dùng ngay plugin video.js để phụ đề hiển thị động, không cần "burn" cứng vào video. Plugin cho phép chuyển đổi giữa phụ đề có định dạng, phụ đề đơn giản và tắt hẳn. Trường hợp cần nhúng hẳn vào tệp MP4 thì dùng lệnh overtone burn.
Dùng thử nhanh chỉ với một câu lệnh
Với những ai đã có sẵn phụ đề, có thể cắt lại ngay mà không cần API key, không cần ffmpeg, chỉ cần Node.js 22.12 trở lên:
npx overtone-captions recut yoursub.srt
Kết quả trả về gồm tệp .overtone.json, các tệp .vtt và .srt cho bản ngang lẫn bản dọc, cùng một bản phiên âm đầy đủ.
Với video chưa có phụ đề, công cụ hỗ trợ phiên âm trực tiếp từ audio bằng ffmpeg và API key của các nhà cung cấp. Đáng chú ý là tùy chọn --dry-run sẽ hiển thị ước tính chi phí trước khi gửi dữ liệu đi, còn --local cho phép chạy hoàn toàn ngoại tuyến với whisper.cpp và Ollama.
Phiên bản trên npm
Hiệu quả thực tế và giới hạn cần biết
Trong bài kiểm thử trên ba clip tiếng Anh dài 20,8 phút ở tỷ lệ 16:9, chỉ 0,3% số chỗ ngắt dòng của Overtone kết thúc bằng các từ yếu như "the", "of" hay "and" mà không có khoảng lặng phía sau. Con số này ở cách nhồi đầy dòng là 28,8%, còn bản xuất SRT của ElevenLabs là 16,1%. Overtone cũng hiển thị đủ 47 khoảng lặng 0,5–1,5 giây của người nói thành chỗ ngắt, trong khi hai phương án kia chỉ đạt 28% và 72%.
Tuy vậy, công cụ vẫn có những giới hạn nhất định. Bộ quy tắc ngắt dòng và xử lý số đầy đủ hiện chỉ có cho tiếng Anh và tiếng Hà Lan; tiếng Đức, Pháp, Tây Ban Nha, Ý và Bồ Đào Nha mới có nhận diện ngôn ngữ, các ngôn ngữ khác dùng quy tắc trung tính. Với các ngôn ngữ không dùng dấu cách như tiếng Trung, tiếng Nhật hay tiếng Thái, một "từ" được hiểu là cả cụm từ. Ngoài ra, công cụ chưa hỗ trợ dịch thuật, chưa có thẻ âm thanh kiểu [music], chưa có trình chỉnh sửa giao diện đồ họa, và giới hạn media tối đa 2 giờ.
Giấy phép MIT
Ý nghĩa với cộng đồng làm nội dung tại Việt Nam
Với các nhà sáng tạo nội dung Việt Nam thường xuyên phải đăng tải video đa nền tảng — từ YouTube ngang đến TikTok, Reels hay Shorts dọc — Overtone mở ra một hướng tiếp cận thực tế: chỉ cần một tệp phụ đề gốc, có thể xuất ra nhiều phiên bản bố cục khác nhau mà vẫn giữ nguyên nội dung và thời gian.
Dự án được phát hành theo giấy phép MIT, mã nguồn mở hoàn toàn, kèm sẵn tài liệu hướng dẫn CLI, tài liệu định dạng và cả "Agent Skill" dành cho Claude Code hay Codex. Nhóm phát triển cũng kêu gọi cộng đồng đóng góp thêm gói ngôn ngữ, gói giao diện và nhà cung cấp mô hình mới — một cơ hội để cộng đồng lập trình viên Việt Nam bổ sung bộ quy tắc ngắt dòng chuẩn cho tiếng Việt trong tương lai.
Bạn có thể xem bản demo tại overtone.lont.ai và mã nguồn cùng kết quả benchmark tại github.com/lonthq/overtone-captions.


