- แอปพลิเคชันโอเพนซอร์สที่ช่วย แปลงไฟล์เพลงส่วนตัวให้เป็นคาราโอเกะ พร้อมฟีเจอร์แยกเสียง ซิงก์เนื้อเพลง และให้คะแนนแบบเรียลไทม์
- ใช้ โมเดล 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 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เมื่อกี้ลองดึงซอร์สมาคอมไพล์และรันดู พอเปิดครั้งแรกก็เริ่ม ดาวน์โหลดไบนารี จากอินเทอร์เน็ตทันที ทำเอาตกใจ
ทั้งที่ติดตั้ง FFMpeg และ Python ไว้อยู่แล้ว ก็ยังพยายามติดตั้งใหม่
แอปไปหา Python ที่ติดตั้งไว้ในโฟลเดอร์
libเลยทำให้รันไม่สำเร็จ น่าแปลกใจที่ข้อผิดพลาดพื้นฐานแบบนี้ยังอยู่ในโค้ดที่ปล่อยจริงพอลองรันสคริปต์ build ของ tarball ก็ยังพยายามติดตั้ง Docker container อีก เลยยิ่งงง สร้างเดสก์ท็อปแอปทำไมต้องใช้ Docker
Krita ใช้ system Python ตอน build แต่ในผลลัพธ์สุดท้ายก็ยัง bundle Python ของตัวเองไปด้วย
แต่สำหรับแอปนี้ น่าจะ bundle มาเลยจะดีกว่าการดาวน์โหลด
เรื่องความปลอดภัยก็ไม่ถึงกับเป็นข้อยกเว้น เพราะ npm หรือ pip ก็มีความเสี่ยงคล้ายกัน
เพราะงั้นก็พอเข้าใจได้ว่าผู้พัฒนาอยากสร้างสภาพแวดล้อมเดียวที่แอปจะพึ่งพาได้
ไม่นานมานี้ฉันยังเจอแอป Python ที่พอรันแล้วพยายามติดตั้ง Node/NPM จนตกใจ
คอมพิวเตอร์ของฉันคือพื้นที่ทำงานของฉัน การที่แอปติดตั้งอะไรเองตามใจถือเป็นทั้ง ความเสี่ยงด้าน supply chain attack และเป็นการไม่ให้เกียรติผู้ใช้
Nightingale ที่ฉันทำขึ้นเป็นแอปที่เมื่อระบุโฟลเดอร์เพลงแล้ว จะ แปลงเพลงเป็นแทร็กคาราโอเกะ ให้อัตโนมัติ
มีการแยกเสียงร้อง, ซิงก์เนื้อเพลง, ให้คะแนน pitch, รองรับ gamepad และ GPU acceleration
ทุกอย่างประมวลผลในเครื่องทั้งหมด ไม่มีบัญชีผู้ใช้, ไม่มีค่าสมัครสมาชิก, ไม่มี telemetry
ตอนเปิดครั้งแรกจะตั้งค่า โมเดล ML และสภาพแวดล้อม Python ที่จำเป็นให้อัตโนมัติ
เขียนด้วย Rust และเอนจิน Bevy และเป็นโปรเจกต์โอเพนซอร์สเต็มรูปแบบ
ตอนนี้เห็นว่าใช้โครงข่ายประสาทเทียมอย่าง Demucs มาแก้ปัญหาได้ก็น่าสนใจดี
เลยสงสัยว่าแนวทางเชิงคณิตศาสตร์ล้วน ๆ จะยังพอแข่งขันได้ไหม
ระหว่างเล่นน่าจะต้องมีฟังก์ชัน ข้ามไปข้างหน้า/ย้อนกลับ และถ้ามีการจัดการเครื่องหมายวรรคตอนกับความสามารถในการแก้ไขผลลัพธ์ก็น่าจะดี
ถึงอย่างนั้นก็ขอบคุณที่ปล่อยเป็น FOSS
อยากรู้ว่าขั้นต่ำของ CUDA คืออะไร และมีแผนรองรับการเร่งความเร็วด้วย iGPU ของ AMD/Intel ไหม
ตั้งตารอให้คนในครอบครัวได้ลองใช้
ในโค้ดใช้
line_text.split()เพื่อแยกคำ แต่ภาษาญี่ปุ่นไม่มีการเว้นวรรค เลยใช้งานไม่ได้น่าจะต้องใช้ ตัววิเคราะห์หน่วยคำ อย่าง fugashi
ทำให้นึกถึง Nightingale media player ตัวเก่าที่เคยอิงกับ Firefox
มันถูกพัฒนาเป็นทางเลือกแทน iTunes/Winamp แต่ไม่มีความเคลื่อนไหวมาเกิน 10 ปีแล้ว
ยังเห็นร่องรอยเก่า ๆ ได้ที่ getnightingale.com
เมื่อก่อนฉันเคยทำโปรเจกต์ pitch tracking ที่คล้ายกัน
เลยสงสัยว่าเส้น pitch ในแอปตอนนี้เป็นฟีเจอร์ที่แสดงระดับเสียงโน้ตถัดไปด้วยหรือเปล่า
ถือว่าเป็นข้อเสนอฟีเจอร์ที่ดี
การรันในเครื่อง, โอเพนซอร์ส, และเป็นโปรเจกต์ที่ขับเคลื่อนด้วยความหลงใหล ทำให้รู้สึกประทับใจมาก
ข่าวแบบนี้ช่วย ฟื้นศรัทธาในมนุษยชาติ ได้จริง ๆ
ดูจากประวัติ commit แล้ว ความเร็วในการพัฒนาสูงมาก
น่าจะใช้ การพัฒนาแบบมี AI ช่วย
แทนที่จะเป็นอย่างที่พูดกันว่า “AI จะมาแทนนักพัฒนา” ฉันกลับคิดว่า AI ช่วย เพิ่มความเป็นไปได้ให้โปรเจกต์ขนาดเล็กเกิดขึ้นจริง มากกว่า
ตอนแรกฉันไม่เข้าใจว่าแอปนี้ทำอะไรแน่ นึกว่ามันลบเนื้อร้องออก
ลองหลายเพลงแล้วก็ยังได้ยินเสียงร้องอยู่ ไม่รู้ว่าต้องปรับ การลบเสียงร้อง ตรงไหน
ดู คู่มือคอนโทรล
เป็นโปรเจกต์ที่เจ๋งมากจริง ๆ
อยากรู้ว่าสามารถประมวลผลเพลงบนอุปกรณ์หนึ่งแล้วไปเล่นบนอีกอุปกรณ์หนึ่งได้ไหม หรือทำงานแบบ server/client mode ได้หรือเปล่า
ในฐานะนักดนตรี ฉันเคยคิดว่าอยากได้แอปที่ แสดงเนื้อเพลงตามไปขณะเล่นสดกับวง
ตอนนี้ฉันเอามือถือหนีบไว้กับขาตั้งไมค์ แต่เดี๋ยวก็หลุดตำแหน่ง