ช่วยปกป้อง Great Barrier Reef กับ TensorFlow บน Kaggle เข้าร่วมท้าทาย

การจำแนกเสียง

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

ภาพต่อไปนี้แสดงผลลัพธ์ของรูปแบบการจำแนกประเภทเสียงบน Android

ภาพหน้าจอของตัวอย่าง Android

เริ่ม

หากคุณยังใหม่กับ TensorFlow Lite และกำลังทำงานกับ Android เราขอแนะนำให้สำรวจแอปพลิเคชันตัวอย่างต่อไปนี้ที่สามารถช่วยคุณในการเริ่มต้นได้

คุณสามารถใช้ประโยชน์จาก API แบบ สำเร็จรูป จาก ไลบรารีงาน TensorFlow Lite เพื่อรวมโมเดลการจำแนกประเภทเสียงไว้ในโค้ดเพียงไม่กี่บรรทัด คุณยังสามารถสร้างไปป์ไลน์การอนุมานที่กำหนดเองได้โดยใช้ TensorFlow Lite Support Library

ตัวอย่าง Android ด้านล่างแสดงให้เห็นถึงการใช้งานโดยใช้ TFLite Task Library

ดูตัวอย่าง Android

ดูตัวอย่าง iOS

หากคุณใช้แพลตฟอร์มอื่นที่ไม่ใช่ Android / iOS หรือหากคุณคุ้นเคยกับ TensorFlow Lite API แล้วให้ดาวน์โหลดโมเดลเริ่มต้นและไฟล์ที่รองรับ (ถ้ามี)

ดาวน์โหลดโมเดลเริ่มต้นจาก TensorFlow Hub

คำอธิบายแบบจำลอง

YAMNet คือลักษณนามเหตุการณ์เสียงที่ใช้รูปคลื่นเสียงเป็นอินพุตและทำการคาดคะเนอย่างอิสระสำหรับแต่ละเหตุการณ์เสียง 521 รายการจากออนโทโลยี AudioSet โมเดลนี้ใช้สถาปัตยกรรม MobileNet v1 และได้รับการฝึกฝนโดยใช้คลังข้อมูล AudioSet โมเดลนี้เริ่มต้นใน TensorFlow Model Garden ซึ่งเป็นซอร์สโค้ดของโมเดลจุดตรวจโมเดลดั้งเดิมและเอกสารรายละเอียดเพิ่มเติม

มันทำงานอย่างไร

มีสองเวอร์ชันของโมเดล YAMNet ที่แปลงเป็น TFLite:

  • YAMNet เป็นรูปแบบการจัดประเภทเสียงดั้งเดิมที่มีขนาดอินพุตแบบไดนามิกเหมาะสำหรับการใช้งาน Transfer Learning, Web และ Mobile นอกจากนี้ยังมีเอาต์พุตที่ซับซ้อนมากขึ้น

  • YAMNet / การจัดหมวดหมู่ เป็นเวอร์ชันเชิงปริมาณที่มีอินพุตเฟรมความยาวคงที่ที่ง่ายกว่า (15600 ตัวอย่าง) และส่งคืนเวกเตอร์เดียวของคะแนนสำหรับคลาสเหตุการณ์เสียง 521 คลาส

อินพุต

แบบจำลองยอมรับอาร์เรย์ 1-D float32 Tensor หรือ NumPy ที่มีความยาว 15600 ซึ่งมีรูปคลื่น 0.975 วินาทีที่แสดงเป็นตัวอย่างโมโน 16 kHz ในช่วง [-1.0, +1.0]

เอาท์พุต

แบบจำลองส่งคืน Tensor 2-D float32 Tensor ของรูปร่าง (1, 521) ที่มีคะแนนที่คาดการณ์สำหรับแต่ละคลาส 521 ในออนโทโลยี AudioSet ที่สนับสนุนโดย YAMNet ดัชนีคอลัมน์ (0-520) ของเทนเซอร์คะแนนถูกแมปกับชื่อคลาส AudioSet ที่เกี่ยวข้องโดยใช้ YAMNet Class Map ซึ่งมีให้เป็นไฟล์ที่เกี่ยวข้อง yamnet_label_list.txt บรรจุในไฟล์โมเดล ดูด้านล่างสำหรับการใช้งาน

การใช้งานที่เหมาะสม

สามารถใช้ YAMNet ได้

  • เป็นตัวจำแนกเหตุการณ์เสียงแบบสแตนด์อะโลนที่ให้พื้นฐานที่เหมาะสมสำหรับเหตุการณ์เสียงที่หลากหลาย
  • ในฐานะตัวแยกคุณสมบัติระดับสูง: เอาต์พุตการฝัง 1024-D ของ YAMNet สามารถใช้เป็นคุณสมบัติอินพุตของรุ่นอื่นซึ่งสามารถฝึกกับข้อมูลจำนวนเล็กน้อยสำหรับงานเฉพาะได้ สิ่งนี้ช่วยให้สร้างตัวแยกประเภทเสียงเฉพาะได้อย่างรวดเร็วโดยไม่ต้องใช้ข้อมูลที่มีป้ายกำกับจำนวนมากและไม่ต้องฝึกอบรมแบบ end-to-end รุ่นใหญ่
  • เป็นการเริ่มต้นอย่างอบอุ่น: พารามิเตอร์โมเดล YAMNet สามารถใช้เพื่อเริ่มต้นส่วนหนึ่งของโมเดลที่มีขนาดใหญ่ขึ้นซึ่งช่วยให้สามารถปรับแต่งและสำรวจโมเดลได้เร็วขึ้น

ข้อ จำกัด

  • เอาท์พุตลักษณนามของ YAMNet ไม่ได้รับการปรับเทียบระหว่างคลาสดังนั้นคุณจึงไม่สามารถถือว่าเอาต์พุตเป็นความน่าจะเป็นได้โดยตรง สำหรับงานใด ๆ คุณมีแนวโน้มที่จะต้องทำการสอบเทียบด้วยข้อมูลเฉพาะงานซึ่งช่วยให้คุณสามารถกำหนดเกณฑ์คะแนนและมาตราส่วนคะแนนต่อชั้นเรียนได้อย่างเหมาะสม
  • YAMNet ได้รับการฝึกอบรมเกี่ยวกับวิดีโอ YouTube หลายล้านรายการและแม้ว่าวิดีโอเหล่านี้จะมีความหลากหลายมาก แต่ก็ยังมีโดเมนที่ไม่ตรงกันระหว่างวิดีโอ YouTube โดยเฉลี่ยและอินพุตเสียงที่คาดไว้สำหรับงานใด ๆ ก็ตาม คุณควรคาดหวังว่าจะทำการปรับแต่งและปรับเทียบจำนวนหนึ่งเพื่อให้ YAMNet ใช้งานได้ในระบบใด ๆ ที่คุณสร้างขึ้น

การปรับแต่งโมเดล

โมเดลที่ได้รับการฝึกฝนมาก่อนได้รับการฝึกฝนเพื่อตรวจจับคลาสเสียงที่แตกต่างกัน 521 คลาส สำหรับรายการคลาสทั้งหมดโปรดดูที่ไฟล์เลเบลในที่ เก็บโมเดล

คุณสามารถใช้เทคนิคที่เรียกว่าการถ่ายโอนการเรียนรู้เพื่อฝึกโมเดลซ้ำเพื่อจดจำชั้นเรียนที่ไม่ได้อยู่ในชุดเดิม ตัวอย่างเช่นคุณสามารถฝึกโมเดลใหม่เพื่อตรวจจับเพลงนกหลาย ๆ ในการดำเนินการนี้คุณจะต้องมีชุดไฟล์เสียงการฝึกอบรมสำหรับป้ายกำกับใหม่แต่ละรายการที่คุณต้องการฝึกอบรม วิธีที่แนะนำคือการใช้ ไลบรารี TensorFlow Lite Model Maker ซึ่งจะทำให้ขั้นตอนการฝึกโมเดล TensorFlow Lite ง่ายขึ้นโดยใช้ชุดข้อมูลที่กำหนดเองในโค้ดไม่กี่บรรทัด ใช้การถ่ายโอนการเรียนรู้เพื่อลดจำนวนข้อมูลและเวลาในการฝึกอบรมที่จำเป็น คุณยังสามารถเรียนรู้จาก Transfer learning สำหรับการจดจำเสียง เพื่อเป็นตัวอย่างการเรียนรู้แบบ Transfer

อ่านเพิ่มเติมและแหล่งข้อมูล

ใช้แหล่งข้อมูลต่อไปนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับแนวคิดที่เกี่ยวข้องกับการจัดประเภทเสียง: