11 คะแนน โดย GN⁺ 2026-03-19 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • แอปพลิเคชันโอเพนซอร์สที่ช่วย แปลงไฟล์เพลงส่วนตัวให้เป็นคาราโอเกะ พร้อมฟีเจอร์แยกเสียง ซิงก์เนื้อเพลง และให้คะแนนแบบเรียลไทม์
  • ใช้ โมเดล UVR Karaoke หรือ Demucs เพื่อแยกเสียงร้องและดนตรีประกอบ และใช้ WhisperX ถอดเนื้อเพลงอัตโนมัติในระดับคำ
  • มีฟีเจอร์ ให้คะแนนระดับเสียงจากอินพุตไมโครโฟน พร้อม การให้ดาวและบันทึกแยกตามเพลง เพื่อวัดฝีมือการร้องเหมือนเล่นเกม
  • รองรับการโต้ตอบหลากหลาย เช่น โปรไฟล์ผู้ใช้หลายคน, เล่นไฟล์วิดีโอเป็นพื้นหลัง, พื้นหลังแบบไดนามิกด้วย GPU shader, และ การควบคุมด้วยเกมแพด
  • ทำงานได้บน Linux, macOS, Windows และมาในรูปแบบ แพ็กเกจแบบพึ่งพาตนเอง ที่รันได้เป็นไฟล์เดียวโดยไม่ต้องติดตั้ง

ฟีเจอร์หลัก

  • ฟีเจอร์ แยกเสียงร้อง (Stem separation) ใช้ UVR Karaoke หรือ Demucs เพื่อแยกเสียงร้องออกจากดนตรีประกอบ
    • สามารถปรับระดับเสียงของไกด์โวคัลได้
  • ฟีเจอร์ เนื้อเพลงระดับคำ (Word-level lyrics) ใช้ WhisperX เพื่อจัดแนวแต่ละคำให้ตรงกับเสียง
    • หากมีเนื้อเพลงอยู่แล้วใน LRCLIB จะใช้ข้อมูลนั้นก่อน
  • ฟีเจอร์ ให้คะแนนระดับเสียง (Pitch scoring) จะคำนวณคะแนนแบบเรียลไทม์เมื่อร้องผ่านไมโครโฟน
    • ติดตามความคืบหน้าผ่านการให้ดาวและตารางคะแนนแยกตามเพลง

ผู้ใช้และอินเทอร์เฟซ

  • ฟีเจอร์ โปรไฟล์ผู้เล่น (Player profiles) ช่วยให้ผู้ใช้หลายคนเก็บสถิติคะแนนของตนเองได้
    • ไม่มีข้อมูลสูญหายแม้สลับผู้ร้อง
  • ฟีเจอร์ รองรับไฟล์วิดีโอ (Video file support) สามารถโหลดไฟล์ .mp4 หรือ .mkv แล้วเล่นวิดีโอต้นฉบับเป็นพื้นหลัง
    • แยกเสียงร้องจากเสียงอัตโนมัติ
  • ฟีเจอร์ พื้นหลังแบบไดนามิก (Dynamic backgrounds) ใช้เอฟเฟกต์ GPU shader (พลาสมา, แสงออโรรา, เนบิวลา ฯลฯ), วิดีโอลูปจาก Pixabay หรือวิดีโอต้นฉบับเป็นพื้นหลัง
  • รองรับ เกมแพด (Gamepad) สำหรับการนำทางเมนู เลือกเพลง และควบคุมการเล่นด้วยคอนโทรลเลอร์

วิธีการทำงาน

  • ในขั้นตอน Separate UVR Karaoke หรือ Demucs จะแยกแทร็กออกเป็นเสียงร้องและดนตรีประกอบ
    • ดึงเสียงออกจากไฟล์วิดีโอโดยอัตโนมัติ
  • ในขั้นตอน Transcribe ระบบจะค้นหาเนื้อเพลงที่ซิงก์ไว้จาก LRCLIB และหากไม่มีจะใช้ WhisperX เพื่อถอดเนื้อเพลงระดับคำ
  • ในขั้นตอน Play ระบบจะเล่นดนตรีประกอบพร้อมแสดงเนื้อเพลงที่ไฮไลต์ คะแนนระดับเสียง พื้นหลังแบบไดนามิก และอินพุตจากเกมแพด

แพลตฟอร์มและการแจกจ่าย

  • ใช้งานได้บน Linux(x86_64, aarch64), macOS(ARM, Intel), Windows(x86_64)
  • รองรับการเร่งความเร็วด้วย GPU ผ่าน CUDA หรือ Metal และจะทำงานบน CPU หากไม่รองรับ
  • ffmpeg, Python, PyTorch, โมเดล ML จะถูกบูตสแตรปอัตโนมัติเมื่อรันครั้งแรก ทำให้เป็น โครงสร้างไบนารีเดี่ยว ที่ไม่ต้องมีขั้นตอนติดตั้งแยก

การแจ้งเตือนอัปเดต

  • สามารถรับอีเมลแจ้งข่าวรีลีสใหม่และการอัปเดตได้ และยกเลิกการสมัครได้ทุกเมื่อ

1 ความคิดเห็น

 
GN⁺ 2026-03-19
ความคิดเห็นจาก Hacker News
  • เมื่อกี้ลองดึงซอร์สมาคอมไพล์และรันดู พอเปิดครั้งแรกก็เริ่ม ดาวน์โหลดไบนารี จากอินเทอร์เน็ตทันที ทำเอาตกใจ
    ทั้งที่ติดตั้ง FFMpeg และ Python ไว้อยู่แล้ว ก็ยังพยายามติดตั้งใหม่
    แอปไปหา Python ที่ติดตั้งไว้ในโฟลเดอร์ lib เลยทำให้รันไม่สำเร็จ น่าแปลกใจที่ข้อผิดพลาดพื้นฐานแบบนี้ยังอยู่ในโค้ดที่ปล่อยจริง
    พอลองรันสคริปต์ build ของ tarball ก็ยังพยายามติดตั้ง Docker container อีก เลยยิ่งงง สร้างเดสก์ท็อปแอปทำไมต้องใช้ Docker

    • หลายแอปก็พก Python runtime ของตัวเองมาด้วย เช่น Blender, Houdini, Bitwig, Krita
      Krita ใช้ system Python ตอน build แต่ในผลลัพธ์สุดท้ายก็ยัง bundle Python ของตัวเองไปด้วย
      แต่สำหรับแอปนี้ น่าจะ bundle มาเลยจะดีกว่าการดาวน์โหลด
      เรื่องความปลอดภัยก็ไม่ถึงกับเป็นข้อยกเว้น เพราะ npm หรือ pip ก็มีความเสี่ยงคล้ายกัน
    • คำตอบของคำถามว่า “ทำไมถึงทำแบบนี้?” น่าจะเป็น “บนเครื่องฉันมันใช้ได้
    • ecosystem การติดตั้ง Python นั้น สับสนวุ่นวาย มาก ตำแหน่งและวิธีติดตั้งต่างกันไปตามแต่ละ OS แถมยังมี Conda และ package manager หลายแบบปนกันอยู่
      เพราะงั้นก็พอเข้าใจได้ว่าผู้พัฒนาอยากสร้างสภาพแวดล้อมเดียวที่แอปจะพึ่งพาได้
    • ช่วงนี้มีแอปที่พยายาม ติดตั้งอะไรลงระบบโดยพลการ แบบนี้เพิ่มขึ้นเรื่อย ๆ
      ไม่นานมานี้ฉันยังเจอแอป Python ที่พอรันแล้วพยายามติดตั้ง Node/NPM จนตกใจ
      คอมพิวเตอร์ของฉันคือพื้นที่ทำงานของฉัน การที่แอปติดตั้งอะไรเองตามใจถือเป็นทั้ง ความเสี่ยงด้าน supply chain attack และเป็นการไม่ให้เกียรติผู้ใช้
    • สุดท้ายแล้วนี่อาจเป็นจุดเริ่มของการถกเถียงไม่รู้จบแบบ static linking vs dynamic linking, vim vs emacs ก็ได้
  • Nightingale ที่ฉันทำขึ้นเป็นแอปที่เมื่อระบุโฟลเดอร์เพลงแล้ว จะ แปลงเพลงเป็นแทร็กคาราโอเกะ ให้อัตโนมัติ
    มีการแยกเสียงร้อง, ซิงก์เนื้อเพลง, ให้คะแนน pitch, รองรับ gamepad และ GPU acceleration
    ทุกอย่างประมวลผลในเครื่องทั้งหมด ไม่มีบัญชีผู้ใช้, ไม่มีค่าสมัครสมาชิก, ไม่มี telemetry
    ตอนเปิดครั้งแรกจะตั้งค่า โมเดล ML และสภาพแวดล้อม Python ที่จำเป็นให้อัตโนมัติ
    เขียนด้วย Rust และเอนจิน Bevy และเป็นโปรเจกต์โอเพนซอร์สเต็มรูปแบบ

    • ฉันเคยเรียน signal processing มาก่อน สมัยก่อนการแยกแทร็กเป็นเรื่องยาก
      ตอนนี้เห็นว่าใช้โครงข่ายประสาทเทียมอย่าง Demucs มาแก้ปัญหาได้ก็น่าสนใจดี
      เลยสงสัยว่าแนวทางเชิงคณิตศาสตร์ล้วน ๆ จะยังพอแข่งขันได้ไหม
    • ฉันทดสอบกับ B.E.D - Walk Away แล้วพบว่าหลัง 30 วินาที ซิงก์เนื้อเพลงเริ่มเพี้ยน
      ระหว่างเล่นน่าจะต้องมีฟังก์ชัน ข้ามไปข้างหน้า/ย้อนกลับ และถ้ามีการจัดการเครื่องหมายวรรคตอนกับความสามารถในการแก้ไขผลลัพธ์ก็น่าจะดี
      ถึงอย่างนั้นก็ขอบคุณที่ปล่อยเป็น FOSS
    • เป็นโปรเจกต์ที่เจ๋งมาก ฝั่ง FOSS แทบไม่มี แอปคาราโอเกะ เลย นี่ถือเป็นก้าวใหญ่
      อยากรู้ว่าขั้นต่ำของ CUDA คืออะไร และมีแผนรองรับการเร่งความเร็วด้วย iGPU ของ AMD/Intel ไหม
      ตั้งตารอให้คนในครอบครัวได้ลองใช้
    • อยากรู้ว่าต่างจาก UltraSinger อย่างไร มีใครเปรียบเทียบคุณภาพไว้บ้างไหม
    • อยากรู้ว่า WhisperX จัดการเนื้อเพลง ภาษาจีน (อักษรจีน) ได้ดีไหม
    • ฉันทดสอบเพลงภาษาญี่ปุ่นแล้วพบว่าการจัดแนวเนื้อเพลงใช้ไม่ได้เลย
      ในโค้ดใช้ line_text.split() เพื่อแยกคำ แต่ภาษาญี่ปุ่นไม่มีการเว้นวรรค เลยใช้งานไม่ได้
      น่าจะต้องใช้ ตัววิเคราะห์หน่วยคำ อย่าง fugashi
  • ทำให้นึกถึง Nightingale media player ตัวเก่าที่เคยอิงกับ Firefox
    มันถูกพัฒนาเป็นทางเลือกแทน iTunes/Winamp แต่ไม่มีความเคลื่อนไหวมาเกิน 10 ปีแล้ว
    ยังเห็นร่องรอยเก่า ๆ ได้ที่ getnightingale.com

    • จำได้ว่านั่นน่าจะเป็นโปรเจกต์ภาคต่อของ Songbird
  • เมื่อก่อนฉันเคยทำโปรเจกต์ pitch tracking ที่คล้ายกัน
    เลยสงสัยว่าเส้น pitch ในแอปตอนนี้เป็นฟีเจอร์ที่แสดงระดับเสียงโน้ตถัดไปด้วยหรือเปล่า

    • ตอนนี้ยังมีแค่ ฟีเจอร์ให้คะแนน pitch แบบพื้นฐานเท่านั้น ยังไม่ได้ทำการคาดเดาระดับเสียงโน้ตถัดไป
      ถือว่าเป็นข้อเสนอฟีเจอร์ที่ดี
  • การรันในเครื่อง, โอเพนซอร์ส, และเป็นโปรเจกต์ที่ขับเคลื่อนด้วยความหลงใหล ทำให้รู้สึกประทับใจมาก
    ข่าวแบบนี้ช่วย ฟื้นศรัทธาในมนุษยชาติ ได้จริง ๆ

  • ดูจากประวัติ commit แล้ว ความเร็วในการพัฒนาสูงมาก
    น่าจะใช้ การพัฒนาแบบมี AI ช่วย
    แทนที่จะเป็นอย่างที่พูดกันว่า “AI จะมาแทนนักพัฒนา” ฉันกลับคิดว่า AI ช่วย เพิ่มความเป็นไปได้ให้โปรเจกต์ขนาดเล็กเกิดขึ้นจริง มากกว่า

    • ซอฟต์แวร์คล้าย ๆ กันนี้มีมาตั้งแต่ยุค Windows 95 แล้ว ใช้ได้แม้แต่บน Pentium 2
  • ตอนแรกฉันไม่เข้าใจว่าแอปนี้ทำอะไรแน่ นึกว่ามันลบเนื้อร้องออก
    ลองหลายเพลงแล้วก็ยังได้ยินเสียงร้องอยู่ ไม่รู้ว่าต้องปรับ การลบเสียงร้อง ตรงไหน

  • เป็นโปรเจกต์ที่เจ๋งมากจริง ๆ
    อยากรู้ว่าสามารถประมวลผลเพลงบนอุปกรณ์หนึ่งแล้วไปเล่นบนอีกอุปกรณ์หนึ่งได้ไหม หรือทำงานแบบ server/client mode ได้หรือเปล่า

    • คำตอบเกี่ยวกับเรื่องนี้อยู่ใน issue #7
  • ในฐานะนักดนตรี ฉันเคยคิดว่าอยากได้แอปที่ แสดงเนื้อเพลงตามไปขณะเล่นสดกับวง
    ตอนนี้ฉันเอามือถือหนีบไว้กับขาตั้งไมค์ แต่เดี๋ยวก็หลุดตำแหน่ง

    • ใช่เลย แม้แต่ Spotify เองก็ยังพลาดเรื่อง ซิงก์แบบเรียลไทม์ บ่อย ๆ