ชื่อสรุป: หลักการของเทคโนโลยีการรู้จำเพลงของ Shazam
Shazam คืออะไร?
- Shazam เป็นแอปที่ใช้ระบุเพลงที่กำลังเปิดอยู่รอบตัว
- เปิดแอปแล้วบันทึกเสียงไม่กี่วินาทีขณะเพลงกำลังเล่น จากนั้นจึงค้นหาในฐานข้อมูล
- ในอดีตเคยให้บริการผ่านหมายเลขโทรศัพท์ และด้วยข้อจำกัดของคุณภาพการโทร การรู้จำเพลงจึงเป็นงานที่ยาก
ทำไมการรู้จำเพลงจึงยาก
- สำหรับคนที่ไม่คุ้นเคยกับการประมวลผลสัญญาณ การรู้จำเพลงเป็นปัญหาที่ยากเพราะสัญญาณเสียงมีความซับซ้อน
- วิธีแบบ brute force ที่พยายามหา部分หนึ่งของเพลงในแทร็กทั้งหมดนั้นช้ามาก และรูปแบบของสัญญาณอาจเปลี่ยนไปมากจากเสียงรบกวนพื้นหลังและผลกระทบด้านความถี่
ภาพรวมของระบบ
- Shazam แบ่งเป็นสองกระบวนการคือการลงทะเบียนเพลงและการรู้จำเพลง โดยทั้งสองกระบวนการมีขั้นตอนร่วมกัน เช่น การคำนวณสเปกโตรแกรม การหา peak ในสเปกโตรแกรม และการแฮช peak
- กระบวนการลงทะเบียนจะเก็บแฮชไว้ในฐานข้อมูล ส่วนกระบวนการรู้จำจะเปรียบเทียบกับแฮชในฐานข้อมูลเพื่อระบุเพลงที่กำลังเล่นอยู่
การคำนวณสเปกโตรแกรม
- เพื่อให้ได้สเปกโตรแกรมของเสียง จำเป็นต้องเข้าใจ Fourier transform
- Fourier transform บอกได้ว่ามีความถี่ใดอยู่ในเสียง และใช้สร้างสเปกโตรแกรมที่แสดงการเปลี่ยนแปลงของความถี่ตามเวลา
สเปกโตรแกรม
- สเปกโตรแกรมแบ่งเพลงออกเป็นช่วงเล็ก ๆ แล้วใช้ Fourier transform เพื่อแสดงความถี่ที่เปลี่ยนไปตามเวลาได้ดีขึ้น
- สเปกโตรแกรมเป็นกราฟ 3 มิติที่มีเวลา (แกน X), ความถี่ (แกน Y) และความเข้ม (แกน Z/สี)
การสร้างลายนิ้วมือ
- ค้นหา peak ที่แสดงความถี่ที่เด่นที่สุดในสเปกโตรแกรมเพื่อดึงลายนิ้วมือเฉพาะของเสียงออกมา
- peak เหล่านี้ทนต่อเสียงรบกวนหรือความบิดเบือนอื่น ๆ ได้ จึงเหมาะสำหรับการสร้างลายนิ้วมือ
การหา peak
- peak ในสเปกโตรแกรมแสดงถึงความถี่ที่แรงที่สุดในสัญญาณ และควรกระจายอย่างสม่ำเสมอเพื่อนำไปใช้ในลายนิ้วมือเสียง
- ใช้เทคนิค maximum filter เพื่อเน้น peak ในสเปกโตรแกรมและหาตำแหน่งของมัน
การแฮช
- สร้างแฮชจากการจับคู่ peak ในสเปกโตรแกรมเพื่อเพิ่มความเป็นเอกลักษณ์
- แฮชจะรวมความถี่ของ peak สองจุดและผลต่างของเวลา แล้วเก็บไว้ในฐานข้อมูล
การจับคู่
- อธิบายกระบวนการค้นหาลายนิ้วมือที่ตรงกับตัวอย่างเสียงที่กำหนดจากคอลเล็กชันลายนิ้วมือในฐานข้อมูล
- ค้นหาแฮช จัดกลุ่มตามเพลง แล้วตรวจสอบว่าแฮชตรงกันหรือไม่ เพื่อเลือกแทร็กที่ตรงกันมากที่สุด
บทสรุป
- Shazam ใช้กระบวนการอย่างการคำนวณสเปกโตรแกรม การดึง peak การสร้างคู่แฮช และการจัดเก็บลายนิ้วมือ เพื่อใช้ลงทะเบียนและรู้จำเพลง
ความเห็นของ GN⁺
- สิ่งสำคัญที่สุดของบทความนี้คือการอธิบายกระบวนการอันซับซ้อนที่ Shazam ใช้ในการรู้จำเพลงให้เข้าใจได้ง่าย
- น่าสนใจและดึงดูดตรงที่มีการแยกรายละเอียดทางเทคนิคออกเป็นลำดับขั้น ทำให้แม้แต่วิศวกรซอฟต์แวร์ระดับเริ่มต้นก็สามารถเข้าใจได้
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
แนวทางแบบใช้แฮชที่มีประสิทธิภาพของ Shazam
เสน่ห์แบบเวทมนตร์ที่ยังคงอยู่ของ Shazam
วิดีโอของ Wall Street Journal ที่อธิบายหลักการทำงานของ Shazam
คำอธิบายเกี่ยวกับ Chromaprint และ AcoustID
บทความน่าสนใจเกี่ยวกับ Shazam และการประมวลผลสัญญาณดิจิทัล
อัลกอริทึมลักษณะคล้ายกันที่ใช้ได้กับสื่อประเภทอื่นด้วย
ความสำคัญของเว็บไซต์ Every Noise At Once
ความเป็นธรรมชาติของกระบวนการรู้จำเพลง
การแปลงฟูเรียร์ที่ใช้ในการรู้จำเพลง