ทำงานยังไง?

ทำไมถึงชื่อ "Search" ทั้งที่ไม่ได้ค้นเว็บ

เพราะมันตลกดี — เว็บนี้ไม่ได้ค้นอะไรจากอินเทอร์เน็ตเลย ไม่มีเสิร์ชเอนจิน ไม่มีฐานข้อมูลบนเซิร์ฟเวอร์ มีแค่เพลงตัวอย่าง 12 เพลงที่ผู้เขียนถอดทำนองใส่ไว้ในไฟล์เดียว แล้วเทียบทำนองที่คุณผิวปากกับ 12 เพลงนั้นในเครื่องคุณเอง เรียกว่า "Search" เพราะมันทำตัวเหมือนการค้นหา (ใส่คำถาม ได้ผลลัพธ์จัดอันดับ) แต่จริงๆ แล้วมันคือการเทียบทำนอง แบบง่ายๆ ล้วนๆ

ฟังเสียงยังไง

ตอนกดปุ่ม "เริ่มผิวปาก" เบราว์เซอร์จะขอสิทธิ์ใช้ไมโครโฟน (ผ่าน getUserMedia) แล้วอ่านคลื่นเสียงดิบด้วย AnalyserNode ทีละเฟรมเล็กๆ (ประมาณ 46 มิลลิวินาทีต่อเฟรม) วนอ่านด้วย requestAnimationFrame — ไม่มีการอัดไฟล์เสียง เก็บไว้เลย ข้อมูลเสียงอยู่ในหน่วยความจำแค่ชั่วครู่แล้วก็หายไป

หาระดับเสียงยังไง (pitch detection)

แต่ละเฟรมจะถูกวิเคราะห์ด้วยเทคนิค autocorrelation: เอาคลื่นเสียงไปเทียบกับตัวมันเองที่เลื่อนเวลา (lag) ไปเรื่อยๆ ถ้าคลื่นมีความถี่ชัดเจน (แบบเสียงผิวปาก ซึ่งใกล้เคียงคลื่นไซน์บริสุทธิ์มาก) ค่าที่ lag เท่ากับ 1 คาบเสียงพอดีจะสูงที่สุด แปลง lag นั้นกลับเป็นความถี่ (Hz) ก็จะได้ระดับเสียง ระบบจำกัดช่วงค้นหาไว้ที่ 500-3000Hz (ช่วงเสียงผิวปากทั่วไป) และมี noise gate ตัดเฟรมที่เบาเกินไปทิ้ง กันเสียงรบกวนมั่ว

ทายเพลงยังไง (Parsons code + edit distance)

ระบบไม่ได้จำระดับเสียงที่แน่นอน (คุณผิวปากคีย์ไหนก็ได้ ไม่ต้องตรงคีย์เพลงต้นฉบับ) แต่จะดูแค่ รูปทรงทำนอง: แต่ละโน้ตเทียบกับโน้ตก่อนหน้า ขึ้น (U) ลง (D) หรือซ้ำ (R) พร้อมขนาดของช่วงเสียง แบบหยาบๆ (ขั้นเล็ก/ขั้นกลาง/กระโดดใหญ่) — เทคนิคนี้เรียกว่า Parsons code เอาลำดับนี้ไปเทียบกับ ทำนองทั้ง 12 เพลงในคลังด้วยวิธี edit distance (นับว่าต้องแก้กี่ขั้นตอนถึงจะเปลี่ยนทำนองหนึ่งเป็น อีกทำนองหนึ่ง) ยิ่งแก้น้อย ยิ่งมั่นใจสูง แล้วเรียงเอาอันดับ 1-3 มาโชว์พร้อมเปอร์เซ็นต์ความมั่นใจ

โหมด Theremin คืออะไร

แค่ของเล่น: เอาระดับเสียงที่ผิวปากตรวจจับได้แบบสดๆ ไปคุม oscillator สังเคราะห์เสียงต่ออีกที เสียงจะไล่ตามระดับเสียง ผิวปากคุณเป๊ะๆ เหมือนเล่นเครื่องดนตรี theremin ไม่มีการทายเพลงใดๆ ในโหมดนี้

ไม่มีไมค์ล่ะ?

กดปุ่ม "ลองโหมดสาธิต" ได้ — ระบบจะเล่นทำนองตัวอย่าง (Twinkle Twinkle) ผ่าน pipeline เดียวกันเป๊ะ (ตัดต่อทำนอง → Parsons code → เทียบทำนอง) ให้ดูว่าระบบทำงานยังไง โดยไม่ต้องพึ่งไมโครโฟนเลย

เพลงในคลังมีอะไรบ้าง (12 เพลง)

ทุกเพลงเป็นเพลงพื้นบ้าน/สาธารณสมบัติเท่านั้น ถอดทำนองเองด้วยมือ ไม่มีเพลงลิขสิทธิ์ปัจจุบัน: