กลับไปหน้ารวมไฟล์
automatic-song-classification-tinyml.md

การประมวลผลเสียงด้วย TinyML: การจำแนกเพลงอัตโนมัติ

โปรเจกต์ การจำแนกเพลงอัตโนมัติ นี้ผลักดันไมโครคอนโทรลเลอร์เข้าสู่ขอบเขตของปัญญาประดิษฐ์ ต่างจาก spectrum analyzer ทั่วไปที่วัดแค่เสียงเบส ระบบนี้ใช้ Neural Network (TinyML) ที่ผ่านการฝึกฝนล่วงหน้ามาแล้ว เพื่อระบุรูปแบบในเสียง แยกความแตกต่างระหว่างดนตรีคลาสสิกกับ heavy metal

dfplayer_mp3_wiring_1772681985958.png

การรวบรวมข้อมูลเสียง (Dataset)

คุณไม่สามารถเขียนตรรกะ if/else แบบมาตรฐานเพื่อระบุประเภทเพลงได้ คุณต้องทำการฝึกฝนโมเดล

  1. ฮาร์ดแวร์: คุณต้องใช้ I2S digital microphone ที่มีความไวสูง (เช่น INMP441) ที่เชื่อมต่อกับ ESP32 หรือ Arduino Nano 33 BLE Sense
  2. การสุ่มตัวอย่าง: คุณเปิดเพลง Heavy Metal 5 นาที และ Classical Music 5 นาที ไปยัง microphone
  3. ไมโครคอนโทรลเลอร์จะแปลง raw acoustic waveforms ให้เป็น Mel-Frequency Cepstral Coefficients (MFCCs) – ซึ่งเป็นการแสดงผลเชิงภาพ (spectrogram) ของความถี่ในช่วงเวลา

การฝึกฝนด้วย Edge Impulse

คุณอัปโหลด spectrograms หลายร้อยรายการเหล่านี้ไปยังแพลตฟอร์ม Machine Learning บนคลาวด์ที่ชื่อว่า Edge Impulse

  • บนคลาวด์, neural network จะ "ดู" รูปภาพของคลื่นเสียง heavy metal และคลื่นเสียงคลาสสิก มันจะเรียนรู้ความแตกต่างทางภาพ (เช่น Metal มีความถี่เบสที่หนาแน่นและวุ่นวาย; Classical มี harmonic lines ที่ชัดเจนและไม่หนาแน่น)
  • เมื่อฝึกฝนเสร็จแล้ว, Edge Impulse จะมอบ compiled C++ <Neural_Network.h> library ที่ปรับแต่งมาโดยเฉพาะสำหรับ 32-bit Arduino ของคุณ!

การอนุมานแบบ Real-Time

  • สมอง: คุณอัปโหลด C++ library ไปยัง Arduino Nano 33 BLE
  • เมื่อคุณเปิดเพลงสุ่มในห้อง, microphone จะบันทึกเสียงส่วนหนึ่งที่มีความยาว 1 วินาที
  • Neural Network บนบอร์ดจะดำเนินการคำนวณในเครื่อง (ไม่จำเป็นต้องใช้อินเทอร์เน็ต) และแสดงผลบน Serial Monitor: [Metal: 85%, Classical: 15%]. Arduino ได้จำแนกเพลงด้วยการคำนวณแล้ว!

ข้อกำหนด

  • ESP32 หรือ Arduino Nano 33 BLE Sense (Arduino Uno ไม่มี RAM เพียงพอที่จะรัน neural network)
  • I2S Digital Microphone
  • บัญชี Edge Impulse Studio

ข้อมูล Frontmatter ดั้งเดิม

title: "How To Do Automatic Song classification"
description: "AI meets audio! Build a machine learning classifier on a powerful microcontroller capable of distinguishing genres of music by analyzing physical sound waves in real time."
category: "Audio & Sound"
difficulty: "Advanced"