Meomeogalaxy/bird-sound-classification
🦅 Hệ thống Nhận diện Tiếng chim từ Âm thanh Môi trường - AI Bird Classifier
Đồ án tốt nghiệp Đại học ngành Công nghệ Thông tin - Chuyên ngành Khoa học Dữ liệu / Trí tuệ Nhân tạo tại Trường Đại học Khoa học Tự nhiên - ĐHQG TP.HCM (HCMUS).
Hệ thống kết hợp xử lý tín hiệu số âm thanh (Digital Signal Processing - DSP) và Deep Learning để phân loại 264 loài chim khác nhau dựa trên tiếng hót.
🌟 Tính năng của Ứng dụng Web
- Đăng tải âm thanh trực quan: Hỗ trợ các định dạng âm thanh phổ biến
.wav,.mp3,.ogg. - Phát nhạc trực tiếp: Trình phát nhạc tích hợp để nghe thử tệp vừa đăng tải.
- Trích xuất Mel-Spectrogram: Tự động chuyển đổi sóng âm (Waveform) sang dạng ảnh phổ tần số Mel-Spectrogram dựa trên các tham số cấu hình trích xuất chuẩn trong đồ án.
- Dự đoán thời gian thực: Nhận diện loài chim kèm độ tin cậy (%) và chỉ số F1-Score tương ứng của lớp đó trong báo cáo.
🏗️ Kiến trúc Mô hình AI (Hybrid EfficientNet-B7 + LSTM)
- Tiền xử lý tín hiệu (DSP):
- Tần số lấy mẫu (Sample Rate):
32,000 Hz - Kích thước ảnh phổ đầu vào:
128 x 256(1 kênh màu xám) - Sử dụng thư viện
Librosachuyển đổi vớin_fft = 2048vàhop_length = 619. - Trích xuất đặc trưng hình ảnh: Mạng CNN tiên tiến
EfficientNet-B7kết hợp cơ chế Attention CBAM (Channel and Spatial Attention Module). - Phân tích chuỗi thời gian: Mạng hồi quy tuần hoàn
LSTM(Bidirectional LSTM) để học các đặc trưng thời gian của tiếng chim hót.
💻 Hướng dẫn chạy ứng dụng ở máy cá nhân (Local)
1. Cài đặt các thư viện cần thiết
Mở Terminal/Cmd tại thư mục dự án và chạy lệnh:
pip install -r requirements.txt2. Khởi chạy Web App bằng Streamlit
Chạy lệnh sau:
streamlit run streamlit_app.pyHệ thống sẽ tự động mở trình duyệt web tại địa chỉ mặc định: http://localhost:8501.
Lưu ý về bộ nhớ RAM: Kiến trúc EfficientNet-B7 rất lớn (file model ~640MB) nên Windows có thể gặp lỗi phân bổ bộ nhớ (VirtualAlloc Limit) khi chạy local nếu máy ít RAM. Ứng dụng đã được tích hợp cơ chế Fallback thông minh (Chế độ giả lập Demo khi thiếu RAM) để bạn có thể test thử giao diện và luồng xử lý trên máy cá nhân một cách mượt mà.
🚀 Hướng dẫn deploy lên trực tuyến (Hugging Face Spaces)
Bạn có thể đưa ứng dụng này lên chạy online hoàn toàn miễn phí trên Hugging Face Spaces để tích hợp vào CV/Portfolio:
- Đăng ký tài khoản trên Hugging Face.
- Tạo một Space mới:
- Chọn SDK: Streamlit.
- Chọn cấu hình phần cứng miễn phí (CPU Basic).
- Upload toàn bộ mã nguồn bao gồm:
- Thư mục
Zip/(chứa weights.h5và file mapping.csv). - File
streamlit_app.py. - File
requirements.txt. - Hugging Face sẽ tự động tải các gói thư viện và kích hoạt ứng dụng của bạn trực tuyến!
