Máy tính cũng biết nghe và cảm nhận âm nhạc với AI

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á 😀

Nguồn: playbuzz.com

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.
Nguồn: laptrinhx.com

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

cảm nhận âm nhạc

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/

Related Post

8 Replies to “Máy tính cũng biết nghe và cảm nhận âm nhạc với AI”

  1. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *