คู่มือการแยกประเภทเสียง

รูปแบบคลื่นของเสียงนกวางซ้อนบนรูปภาพนกที่มีเสียงตรงกับรูปแบบคลื่น

งานตัวจัดหมวดหมู่เสียงของ MediaPipe ช่วยให้คุณจัดหมวดหมู่คลิปเสียงเป็นชุดหมวดหมู่ที่กําหนด เช่น เพลงกีตาร์ เสียงหวีดรถไฟ หรือเสียงร้องของนก หมวดหมู่จะกําหนดในระหว่างการฝึกโมเดล งานนี้จะดำเนินการกับข้อมูลเสียงด้วยโมเดลแมชชีนเลิร์นนิง (ML) เป็นคลิปเสียงอิสระหรือสตรีมต่อเนื่อง และแสดงรายการหมวดหมู่ที่เป็นไปได้โดยจัดอันดับตามคะแนนความน่าจะเป็นจากน้อยไปมาก

ลองใช้เลย

เริ่มต้นใช้งาน

เริ่มใช้แท็บงานนี้โดยทําตามคําแนะนําการใช้งานแพลตฟอร์มเป้าหมายข้อใดข้อหนึ่งต่อไปนี้ คำแนะนำเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำการใช้งานพื้นฐานของงานนี้ รวมถึงโมเดลที่แนะนำและตัวอย่างโค้ดพร้อมตัวเลือกการกำหนดค่าที่แนะนำ

คู่มือเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำการใช้งานพื้นฐานของงานนี้ รวมถึงรูปแบบที่แนะนําและตัวอย่างโค้ดที่มีตัวเลือกการกําหนดค่าที่แนะนํา

รายละเอียดงาน

ส่วนนี้จะอธิบายความสามารถ อินพุต เอาต์พุต และตัวเลือกการกำหนดค่าของงานนี้

ฟีเจอร์

  • การประมวลผลเสียงอินพุต - การประมวลผลประกอบด้วยการสุ่มตัวอย่างเสียงอีกครั้ง บัฟเฟอร์ การจัดเฟรม และการเปลี่ยนรูปแบบ Fourier
  • ภาษาของแผนที่ป้ายกำกับ - ตั้งค่าภาษาที่ใช้สำหรับชื่อที่แสดง
  • เกณฑ์คะแนน - กรองผลลัพธ์ตามคะแนนการคาดการณ์
  • การตรวจหา Top-k - กรองผลลัพธ์การตรวจหาตัวเลข
  • ติดป้ายกำกับรายการที่อนุญาตและรายการที่ปฏิเสธ - ระบุหมวดหมู่ที่ตรวจพบ
อินพุตงาน เอาต์พุตของงาน
อินพุตอาจเป็นประเภทข้อมูลอย่างใดอย่างหนึ่งต่อไปนี้
  • คลิปเสียง
  • สตรีมเสียง
ตัวแยกประเภทเสียงจะแสดงรายการหมวดหมู่ต่อไปนี้
  • ดัชนีหมวดหมู่: ดัชนีของหมวดหมู่ในเอาต์พุตของโมเดล
  • คะแนน: คะแนนความเชื่อมั่นของหมวดหมู่นี้ ซึ่งมักจะเป็นค่าความน่าจะเป็นในช่วง [0,1]
  • ชื่อหมวดหมู่ (ไม่บังคับ): ชื่อหมวดหมู่ตามที่ระบุไว้ในข้อมูลเมตาของโมเดล TFLite (หากมี)
  • ชื่อที่แสดงของหมวดหมู่ (ไม่บังคับ): ชื่อที่แสดงของหมวดหมู่ตามที่ระบุไว้ในข้อมูลเมตาของโมเดล TFLite ในภาษาที่ระบุผ่านตัวเลือกภาษาของชื่อที่แสดง หากมี

ตัวเลือกการกําหนดค่า

งานนี้มีตัวเลือกการกำหนดค่าต่อไปนี้

ชื่อตัวเลือก คำอธิบาย ช่วงของค่า ค่าเริ่มต้น
running_mode ตั้งค่าโหมดการทํางานสําหรับงาน ตัวจัดประเภทเสียงมี 2 โหมด ได้แก่

AUDIO_CLIPS: โหมดสําหรับเรียกใช้งานเสียงในคลิปเสียงอิสระ

AUDIO_STREAM: โหมดสําหรับเรียกใช้งานเสียงในสตรีมเสียง เช่น จากไมโครโฟน ในโหมดนี้ คุณต้องเรียกใช้ resultListener เพื่อตั้งค่า Listener เพื่อรับผลการแยกประเภทแบบไม่เป็นแบบเรียลไทม์
{AUDIO_CLIPS, AUDIO_STREAM} AUDIO_CLIPS
display_names_locale ตั้งค่าภาษาของป้ายกำกับที่จะใช้สำหรับชื่อที่แสดงซึ่งระบุไว้ในข้อมูลเมตาของโมเดลของงาน (หากมี) ค่าเริ่มต้นคือ en สำหรับภาษาอังกฤษ คุณเพิ่มป้ายกำกับที่แปลแล้วลงในข้อมูลเมตาของโมเดลที่กำหนดเองได้โดยใช้ TensorFlow Lite Metadata Writer API รหัสภาษา en
max_results กําหนดจํานวนสูงสุดของผลการแยกประเภทที่มีคะแนนสูงสุดที่จะแสดง (ไม่บังคับ) หากมีค่าน้อยกว่า 0 ระบบจะแสดงผลลัพธ์ทั้งหมดที่มีอยู่ ตัวเลขบวกใดก็ได้ -1
score_threshold ตั้งค่าเกณฑ์คะแนนการคาดการณ์ที่จะลบล้างเกณฑ์ที่ระบุไว้ในข้อมูลเมตาของโมเดล (หากมี) ระบบจะปฏิเสธผลลัพธ์ที่ต่ำกว่าค่านี้ [0.0, 1.0] ไม่ได้ตั้งค่า
category_allowlist ตั้งค่ารายการชื่อหมวดหมู่ที่อนุญาต (ไม่บังคับ) หากไม่ว่าง ระบบจะกรองผลการจัดประเภทที่มีชื่อหมวดหมู่ไม่อยู่ในชุดนี้ออก ระบบจะไม่สนใจชื่อหมวดหมู่ที่ซ้ำกันหรือไม่รู้จัก ตัวเลือกนี้ใช้ร่วมกับ category_denylist ไม่ได้ และการใช้ทั้ง 2 ตัวเลือกจะทำให้เกิดข้อผิดพลาด สตริงใดก็ได้ ไม่ได้ตั้งค่า
category_denylist ตั้งค่ารายการชื่อหมวดหมู่ที่ไม่อนุญาต (ไม่บังคับ) หากไม่เป็นค่าว่าง ระบบจะกรองผลการจัดประเภทที่มีชื่อหมวดหมู่อยู่ในชุดนี้ออก ระบบจะไม่สนใจชื่อหมวดหมู่ที่ซ้ำกันหรือไม่รู้จัก ตัวเลือกนี้ใช้ร่วมกันกับ category_allowlist ไม่ได้ และการใช้ทั้ง 2 ตัวเลือกจะทำให้เกิดข้อผิดพลาด สตริงใดก็ได้ ไม่ได้ตั้งค่า
result_callback ตั้งค่าโปรแกรมรับฟังผลลัพธ์ให้รับผลการแยกประเภทแบบไม่พร้อมกันเมื่อตัวแยกประเภทเสียงอยู่ในโหมดสตรีมเสียง ใช้ได้เมื่อตั้งค่าโหมดการทํางานเป็น AUDIO_STREAM เท่านั้น ไม่มี ไม่ได้ตั้งค่า

โมเดล

ตัวจัดประเภทเสียงต้องดาวน์โหลดและจัดเก็บโมเดลการจัดประเภทเสียงไว้ในไดเรกทอรีโปรเจ็กต์ เริ่มต้นด้วยรูปแบบที่แนะนำโดยค่าเริ่มต้นสำหรับแพลตฟอร์มเป้าหมายเมื่อคุณเริ่มพัฒนาด้วยงานนี้ โมเดลอื่นๆ ที่มีให้ใช้งานมักจะมีการแลกเปลี่ยนระหว่างประสิทธิภาพ ความแม่นยำ ความละเอียด และข้อกำหนดด้านทรัพยากร และในบางกรณีอาจมีฟีเจอร์เพิ่มเติม

โมเดล Yamnet เป็นตัวแยกประเภทเหตุการณ์เสียงที่ผ่านการฝึกอบรมในชุดข้อมูล AudioSet เพื่อคาดการณ์เหตุการณ์เสียงที่กําหนดไว้ในข้อมูล AudioSet ดูข้อมูลเกี่ยวกับเหตุการณ์เสียงที่โมเดลนี้จดจำได้ที่รายการป้ายกำกับของโมเดล

ชื่อโมเดล รูปร่างอินพุต ประเภทการแปลงค่าเป็นจำนวนเต็ม เวอร์ชัน
YamNet 1 x 15600 ไม่มี (float32) ล่าสุด

การเปรียบเทียบงาน

ต่อไปนี้คือการเปรียบเทียบประสิทธิภาพของงานสำหรับทั้งไปป์ไลน์โดยอิงตามโมเดลที่ผ่านการฝึกล่วงหน้าข้างต้น ผลลัพธ์เวลาในการตอบสนองคือเวลาในการตอบสนองโดยเฉลี่ยใน Pixel 6 ที่ใช้ CPU / GPU

ชื่อแบบจำลอง เวลาในการตอบสนองของ CPU เวลาในการตอบสนองของ GPU
YamNet 12.29 มิลลิวินาที -