งานตัวจัดหมวดหมู่เสียงของ MediaPipe ช่วยให้คุณจัดหมวดหมู่คลิปเสียงเป็นชุดหมวดหมู่ที่กําหนด เช่น เพลงกีตาร์ เสียงหวีดรถไฟ หรือเสียงร้องของนก หมวดหมู่จะกําหนดในระหว่างการฝึกโมเดล งานนี้จะดำเนินการกับข้อมูลเสียงด้วยโมเดลแมชชีนเลิร์นนิง (ML) เป็นคลิปเสียงอิสระหรือสตรีมต่อเนื่อง และแสดงรายการหมวดหมู่ที่เป็นไปได้โดยจัดอันดับตามคะแนนความน่าจะเป็นจากน้อยไปมาก
เริ่มต้นใช้งาน
เริ่มใช้แท็บงานนี้โดยทําตามคําแนะนําการใช้งานแพลตฟอร์มเป้าหมายข้อใดข้อหนึ่งต่อไปนี้ คำแนะนำเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำการใช้งานพื้นฐานของงานนี้ รวมถึงโมเดลที่แนะนำและตัวอย่างโค้ดพร้อมตัวเลือกการกำหนดค่าที่แนะนำ
- Android - ตัวอย่างโค้ด - คำแนะนำ
- Python - คำแนะนำตัวอย่างโค้ด
- เว็บ - ตัวอย่างโค้ด - คำแนะนำ
คู่มือเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำการใช้งานพื้นฐานของงานนี้ รวมถึงรูปแบบที่แนะนําและตัวอย่างโค้ดที่มีตัวเลือกการกําหนดค่าที่แนะนํา
รายละเอียดงาน
ส่วนนี้จะอธิบายความสามารถ อินพุต เอาต์พุต และตัวเลือกการกำหนดค่าของงานนี้
ฟีเจอร์
- การประมวลผลเสียงอินพุต - การประมวลผลประกอบด้วยการสุ่มตัวอย่างเสียงอีกครั้ง บัฟเฟอร์ การจัดเฟรม และการเปลี่ยนรูปแบบ Fourier
- ภาษาของแผนที่ป้ายกำกับ - ตั้งค่าภาษาที่ใช้สำหรับชื่อที่แสดง
- เกณฑ์คะแนน - กรองผลลัพธ์ตามคะแนนการคาดการณ์
- การตรวจหา Top-k - กรองผลลัพธ์การตรวจหาตัวเลข
- ติดป้ายกำกับรายการที่อนุญาตและรายการที่ปฏิเสธ - ระบุหมวดหมู่ที่ตรวจพบ
อินพุตงาน | เอาต์พุตของงาน |
---|---|
อินพุตอาจเป็นประเภทข้อมูลอย่างใดอย่างหนึ่งต่อไปนี้
|
ตัวแยกประเภทเสียงจะแสดงรายการหมวดหมู่ต่อไปนี้
|
ตัวเลือกการกําหนดค่า
งานนี้มีตัวเลือกการกำหนดค่าต่อไปนี้
ชื่อตัวเลือก | คำอธิบาย | ช่วงของค่า | ค่าเริ่มต้น |
---|---|---|---|
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 (แนะนำ)
โมเดล Yamnet เป็นตัวแยกประเภทเหตุการณ์เสียงที่ผ่านการฝึกอบรมในชุดข้อมูล AudioSet เพื่อคาดการณ์เหตุการณ์เสียงที่กําหนดไว้ในข้อมูล AudioSet ดูข้อมูลเกี่ยวกับเหตุการณ์เสียงที่โมเดลนี้จดจำได้ที่รายการป้ายกำกับของโมเดล
ชื่อโมเดล | รูปร่างอินพุต | ประเภทการแปลงค่าเป็นจำนวนเต็ม | เวอร์ชัน |
---|---|---|---|
YamNet | 1 x 15600 | ไม่มี (float32) | ล่าสุด |
การเปรียบเทียบงาน
ต่อไปนี้คือการเปรียบเทียบประสิทธิภาพของงานสำหรับทั้งไปป์ไลน์โดยอิงตามโมเดลที่ผ่านการฝึกล่วงหน้าข้างต้น ผลลัพธ์เวลาในการตอบสนองคือเวลาในการตอบสนองโดยเฉลี่ยใน Pixel 6 ที่ใช้ CPU / GPU
ชื่อแบบจำลอง | เวลาในการตอบสนองของ CPU | เวลาในการตอบสนองของ GPU |
---|---|---|
YamNet | 12.29 มิลลิวินาที | - |