11 điểm bởi GN⁺ 2026-03-19 | 1 bình luận | Chia sẻ qua WhatsApp
  • Ứng dụng mã nguồn mở giúp chuyển các tệp nhạc cá nhân thành dạng karaoke, cung cấp các tính năng tách giọng hát, đồng bộ lời bài hát và chấm điểm theo thời gian thực
  • Sử dụng mô hình UVR Karaoke hoặc Demucs để tách giọng hát và phần đệm, đồng thời dùng WhisperX để tự động chép lời theo từng từ
  • Với chấm điểm cao độ dựa trên đầu vào micro cùng xếp hạng sao và lịch sử theo từng bài hát, ứng dụng đo khả năng ca hát theo kiểu game
  • Hỗ trợ nhiều tương tác như nhiều hồ sơ người dùng, phát tệp video làm nền, nền động dựa trên GPU shader, điều khiển bằng gamepad
  • Chạy trên Linux, macOS, Windows và có cấu trúc tự chứa hoạt động bằng một tệp thực thi duy nhất, không cần cài đặt

Tính năng chính

  • Tính năng tách giọng hát (Stem separation) sử dụng mô hình UVR Karaoke hoặc Demucs để tách giọng hát và phần đệm
    • Có thể điều chỉnh âm lượng của giọng hát hướng dẫn
  • Tính năng lời bài hát theo từng từ (Word-level lyrics) dùng WhisperX để căn chỉnh từng từ theo âm thanh
    • Nếu LRCLIB đã có sẵn lời bài hát thì sẽ ưu tiên sử dụng
  • Tính năng chấm điểm cao độ (Pitch scoring) tính điểm theo thời gian thực khi hát bằng micro
    • Theo dõi tiến độ bằng xếp hạng sao và bảng điểm theo từng bài hát

Người dùng và giao diện

  • Tính năng hồ sơ người chơi (Player profiles) cho phép nhiều người dùng lưu giữ lịch sử điểm số riêng
    • Không mất dữ liệu ngay cả khi đổi ca sĩ
  • Tính năng hỗ trợ tệp video (Video file support) cho phép tải các tệp .mp4 hoặc .mkv và phát video gốc làm nền
    • Tự động tách giọng hát từ âm thanh
  • Tính năng nền động (Dynamic backgrounds) sử dụng hiệu ứng GPU shader (plasma, cực quang, tinh vân, v.v.), video loop từ Pixabay hoặc video gốc làm nền
  • Hỗ trợ gamepad để điều hướng menu, chọn bài hát và điều khiển phát bằng tay cầm

Cách hoạt động

  • Ở bước Separate, UVR Karaoke hoặc Demucs tách bản nhạc thành giọng hát và phần đệm
    • Tự động trích xuất âm thanh từ tệp video
  • Ở bước Transcribe, ứng dụng tìm lời bài hát đã đồng bộ trên LRCLIB, nếu không có thì dùng WhisperX để chép lời theo từng từ
  • Ở bước Play, ứng dụng phát phần đệm đồng thời hiển thị lời bài hát được tô sáng, điểm cao độ, nền động và đầu vào gamepad

Nền tảng và phân phối

  • Có thể chạy trên Linux(x86_64, aarch64), macOS(ARM, Intel), Windows(x86_64)
  • Hỗ trợ tăng tốc GPU qua CUDA hoặc Metal, và sẽ chạy bằng CPU trong môi trường không hỗ trợ
  • ffmpeg, Python, PyTorch, các mô hình ML được bootstrap tự động ngay lần chạy đầu tiên, tạo thành cấu trúc nhị phân đơn không cần quy trình cài đặt riêng

Thông báo cập nhật

  • Có thể nhận email về bản phát hành mới và các tin cập nhật; nếu không muốn, bạn có thể hủy đăng ký bất cứ lúc nào

1 bình luận

 
GN⁺ 2026-03-19
Ý kiến Hacker News
  • Vừa tải mã nguồn về, build và chạy thử, nhưng ngay lần chạy đầu tiên ứng dụng đã bắt đầu tải binary từ Internet khiến tôi khá bất ngờ
    Dù FFMpeg và Python đã được cài sẵn, nó vẫn cố cài mới
    Ứng dụng tìm Python đã cài trong thư mục lib nên chạy thất bại. Thật ngạc nhiên khi một lỗi cơ bản như vậy lại có trong mã phát hành
    Ngoài ra, khi chạy script build của tarball thì nó lại định cài container Docker, càng làm tôi bối rối. Build một ứng dụng desktop mà lại dùng Docker, thật khó hiểu

    • Nhiều ứng dụng tự kèm theo Python runtime riêng. Blender, Houdini, Bitwig, Krita cũng vậy
      Krita dùng Python của hệ thống khi build, nhưng bản thành phẩm vẫn kèm Python riêng
      Tuy vậy, có lẽ ứng dụng này nên bundle sẵn thay vì tải xuống
      Về bảo mật thì npm hay pip cũng có rủi ro tương tự, nên trường hợp này cũng không hẳn là ngoại lệ hoàn toàn
    • Câu trả lời cho câu hỏi “Tại sao lại làm theo kiểu này?” có lẽ là “Trên máy tôi thì chạy tốt
    • Hệ sinh thái cài đặt Python vốn đã hỗn loạn. Mỗi OS có đường dẫn và cách cài khác nhau, lại còn trộn lẫn Conda với nhiều package manager khác nhau
      Vì vậy cũng có thể hiểu được vì sao tác giả muốn tạo ra một môi trường duy nhất để ứng dụng có thể phụ thuộc vào
    • Dạo này ngày càng nhiều ứng dụng cố tự ý cài đặt lên hệ thống theo kiểu này
      Gần đây tôi cũng chạy một ứng dụng Python và nó định cài Node/NPM làm tôi giật mình
      Máy tính là không gian làm việc của tôi, nên việc ứng dụng tự tiện cài đặt là rủi ro tấn công chuỗi cung ứng và cũng là hành vi thiếu tôn trọng người dùng
    • Cuối cùng thì đây có thể chỉ là mở đầu cho một cuộc tranh cãi bất tận kiểu liên kết tĩnh vs liên kết động, vim vs emacs
  • Nightingale do tôi tạo ra là một ứng dụng: bạn chỉ định thư mục nhạc và nó sẽ tự động chuyển các bài hát thành track karaoke
    Nó cung cấp tách giọng hát, đồng bộ lời, chấm điểm cao độ, hỗ trợ gamepad, tăng tốc GPU, v.v.
    Mọi xử lý đều diễn ra cục bộ, không có tài khoản, đăng ký hay telemetry
    Ở lần chạy đầu tiên, nó tự động thiết lập mô hình ML và môi trường Python cần thiết
    Ứng dụng được viết bằng Rust và engine Bevy, và là một dự án mã nguồn mở hoàn chỉnh

    • Trước đây tôi từng học xử lý tín hiệu, và ngày xưa việc tách track rất khó
      Giờ thấy người ta giải quyết bằng mạng nơ-ron như Demucs nên khá thú vị
      Tôi cũng tò mò liệu cách tiếp cận thuần toán học còn có thể cạnh tranh được không
    • Tôi đã test với B.E.D - Walk Away, nhưng sau mốc 30 giây thì đồng bộ lời bị lệch
      Cần có chức năng tua tới/lùi trong lúc phát, và sẽ tốt hơn nếu có xử lý dấu câu cùng khả năng chỉnh sửa kết quả
      Dù sao cũng cảm ơn vì đã phát hành dưới dạng FOSS
    • Dự án này thật sự rất tuyệt. Phía FOSS gần như không có ứng dụng karaoke nào, nên đây là một bước tiến lớn
      Tôi muốn biết yêu cầu tối thiểu của CUDA là gì và có kế hoạch hỗ trợ tăng tốc iGPU của AMD/Intel hay không
      Tôi đang rất mong gia đình mình được thử nó
    • Tôi tò mò không biết nó khác gì với UltraSinger. Có ai từng so sánh chất lượng giữa hai bên chưa?
    • Tôi muốn biết WhisperX có xử lý tốt lời bài hát tiếng Trung (chữ Hán) hay không
    • Tôi đã thử các bài hát tiếng Nhật nhưng việc căn chỉnh lời hoàn toàn không hoạt động
      Trong mã nguồn, nó tách từ bằng line_text.split(), nhưng tiếng Nhật không có khoảng trắng nên không thể hoạt động được
      Có lẽ cần dùng bộ phân tích hình thái như fugashi
  • Nó làm tôi nhớ đến trình phát media Nightingale ngày xưa dựa trên Firefox
    Nó từng được phát triển như một lựa chọn thay thế iTunes/Winamp, nhưng đã hơn 10 năm không còn hoạt động
    Vẫn có thể thấy dấu vết cũ tại getnightingale.com

    • Tôi nhớ đó là dự án nối tiếp của Songbird
  • Trước đây tôi từng làm một dự án theo dõi cao độ tương tự
    Tôi tò mò liệu đường pitch hiện tại của ứng dụng có phải là tính năng hiển thị nốt tiếp theo hay không

    • Hiện tại mới chỉ có tính năng chấm điểm cao độ đơn giản, còn dự đoán cao độ của nốt tiếp theo thì vẫn chưa được triển khai
      Tôi sẽ xem đây là một đề xuất tính năng hay
  • Chạy cục bộ, mã nguồn mở, lại là một dự án làm bằng đam mê nên thật sự rất cảm động
    Những tin như thế này giúp khôi phục niềm tin vào con người

  • Nhìn lịch sử commit thì tốc độ phát triển rất nhanh
    Có lẽ tác giả đã tận dụng phát triển có AI hỗ trợ
    Trái với câu nói “AI sẽ thay thế lập trình viên”, tôi nghĩ AI đã nâng cao tính khả thi của các dự án quy mô nhỏ

    • Phần mềm tương tự đã tồn tại từ thời Windows 95 rồi. Pentium 2 cũng chạy được
  • Ban đầu tôi không hiểu chính xác ứng dụng làm gì, tôi cứ tưởng nó sẽ loại bỏ lời hát
    Tôi đã thử nhiều bài nhưng vẫn nghe rõ giọng hát. Tôi không biết phải điều chỉnh loại bỏ vocal như thế nào

  • Dự án thật sự rất tuyệt.
    Tôi muốn biết liệu có thể xử lý bài hát trên một thiết bị rồi phát trên thiết bị khác hay không, hoặc nó có thể chạy theo chế độ server/client hay không

    • Câu trả lời liên quan nằm trong issue #7
  • Với tư cách là nhạc công, tôi luôn nghĩ sẽ rất tuyệt nếu có một ứng dụng hiển thị lời theo nhịp khi đang chơi cùng ban nhạc
    Hiện giờ tôi phải gắn điện thoại lên chân micro, nhưng nó nhanh chóng bị lệch vị trí

    • Đúng vậy, kiểu đồng bộ thời gian thực này thì ngay cả Spotify cũng hay làm sai