Chào cả nhà thích ăn Mì AI, hôm nay chúng ta sẽ cùng nhau build một model để giúp cho máy tính có thể nghe nhạc và cảm nhận được âm nhạc nhé. Chúng ta sẽ cho máy tính nghe một đoạn nhạc và nó sẽ nói cho chúng ta biết đây là thể loại nhạc nào nhá 😀
Phần 1 – Chuẩn bị nguyên vật liệu
Để nấu được Mì thì tất nhiên phải có nguyên vật liệu và bát mì rồi. Đầu tiên tạo một folder MiAI_Music_Classify để lưu nguyên vật liệu nào. Sau đó gõ lệnh git để lấy source về:
git clone https://github.com/thangnch/MiAI_Music_Classify .
Tiếp theo, để chạy được bài này chúng ta sẽ phải cài vài thư viện như: thử viện xử lý âm thanh, thư viện keras để làm việc với mode… Các bạn chạy lệnh:
pip install -r setup.txt
Sau đó ngồi đợi cho các thư viện tự động cài đặt là xong!
Bây giờ đến dữ liệu. Chúng ta dạy máy tính nghe nhạc thì tất nhiên phải có dữ liệu là âm nhạc rồi. Các bạn có thể tự collect và tự chuẩn bị dữ liệu cho mình. Tuy nhiên ở đây để tiết kiệm thời gian thì mình đã có bộ dữ liệu sẵn tại đây. Bộ dữ liệu gồm hơn 1000 bài hát chia thành 10 thể loại nhạc khác nhau là : [‘blues’, ‘classical’, ‘country’, ‘disco’, ‘hiphop’, ‘jazz’, ‘metal’, ‘pop’, ‘reggae’, ‘rock’].
Tải xong dữ liệu các bạn giải nén sẽ có thư mục genres, các bạn copy nguyên cả thư mục này và để vào thư mục data nhé! Vậy là xong, sang bước tiếp theo!
Phần 2 – Các bước thực hiện bài toán
Với bài này chúng ta làm theo các bước như sau:
- Bước 1: Chúng ta sẽ load dữ liệu là các file audio và trích xuất đặc trưng bằng MFCC. Muốn biết MFCC là gì các bạn đọc link này nhé.
- Bước 2: Chúng ta sẽ sử dụng các MFCC trích xuất được làm X_train và category của file nhạc làm y_train để train model. Và như vậy chúng ta quay về bài toán classify thông thường.
- Bước 3: Thiết lập model đơn giản bằng các lớp Fully Connect.
- Bước 4: Train model và tiến hành eval trên tập test.
Phần 3 – Mã nguồn chương trình
Bây giờ sau khi đã nắm được tư tưởng bài toán, các bạn mở file song_classify.py ra xem nhé. Mình đã comment từng dòng lệnh, từng thủ tục một cách đầy đủ nhé. File song_classify.py sẽ thực hiện train model, save ra file h5 và sau đó predict thử vài bài hát.
Phần 4 – Train và predict thử model cảm nhận âm nhạc
Bây giờ các bạn thực hiện gõ lệnh sau để chạy file nhé:
python song_classify.py
Sau khi gõ lệnh, máy sẽ lần lượt xử lý từng folder âm nhạc, trích xuất MFCC từng file nhạc làm đặc trưng trước khi train
Mình hiện đang để train 10 epochs để demo, các bạn có thể train thêm nhé.
Okie như vậy các bạn đã biết cách dạy cho máy tính cảm nhận âm nhạc. Bài này các bạn có thể thay bằng 1 mạng CNN để trích xuất đặc trưng nhé, bài trước Sound Classify mình đã làm cách đó rồi nên bài này mình sẽ làm khác tý nhé để các bạn nắm nhiều cách triển khai khác nhau.
Máy có thể nghe và phân biệt được thể loại của bài hát rồi. Mình xin dừng bài viết tại đây. Hẹn gặp lại các bạn trong các bài tiếp theo nhé!
Hãy join cùng cộng đồng Mì AI nhé!
Fanpage: http://facebook.com/miaiblog
Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup
Website: https://miai.vn
Youtube: http://bit.ly/miaiyoutube
Nguồn tham khảo: https://github.com/PacktPublishing/
Em không tìm thấy bộ dữ liệu mẫu của anh ạ.
Thanks bạn, mình đã thêm link trong bài rồi nhé!
#MìAI
Fanpage: http://facebook.com/miaiblog
Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup
Website: https://miai.vn
Youtube: http://bit.ly/miaiyoutube
Hay lắm! Thắng tiếp tục nhé.
Thanks anh động viên ah!
#MìAI
Fanpage: http://facebook.com/miaiblog
Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup
Website: https://miai.vn
Youtube: http://bit.ly/miaiyoutube
Anh cho em hỏi: bây giờ em muốn train mô hình xác định ngưỡng nghe của người thì sẽ cần xác định các bước làm như thế nào ạ? em cảm ơn.
Em post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup làm rõ ý tưởng nhé. Anh chưa rõ mô hình em nhận input là gì, output là gì?
Link file train hết hạn rồi AD
Yeah chắc lâu quá rồi. Bạn post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup trao đổi cho tiện nhé!