SỬ DỤNG FRAMEWORK KERAS và MILLIONS SONG DATASET để xây DỰNG ỨNG DỤNG NHẬN DIỆN THỂ LOẠI âm NHẠC

15 37 0
SỬ DỤNG FRAMEWORK KERAS và MILLIONS SONG DATASET để xây DỰNG ỨNG DỤNG NHẬN DIỆN THỂ LOẠI âm NHẠC

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN – ĐHQG TPHCM KHOA CÔNG NGHỆ PHẦN MỀM  BÁO CÁO ĐỒ ÁN ĐỀ TÀI SỬ DỤNG FRAMEWORK KERAS VÀ MILLIONS SONG DATASET ĐỂ XÂY DỰNG ỨNG DỤNG NHẬN DIỆN THỂ LOẠI ÂM NHẠC Thực hiện: Nguyễn Tấn Phát 17520879 Dương Thị Thu Thủy 17521119 Giáo viên hướng dẫn: Mai Trọng Khang Lớp : SE122.L11 TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN – ĐHQG TPHCM KHOA CÔNG NGHỆ PHẦN MỀM  -Hồ Chí Minh, ngày 04 tháng 01 năm 2021 BÁO CÁO ĐỒ ÁN 2 ĐỀ TÀI SỬ DỤNG FRAMEWORK KERAS VÀ MILLIONS SONG DATASET ĐỂ XÂY DỰNG ỨNG DỤNG NHẬN DIỆN THỂ LOẠI ÂM NHẠC Thực hiện: Nguyễn Tấn Phát 17520879 Dương Thị Thu Thủy 17521119 Giáo viên hướng dẫn: Mai Trọng Khang Lớp : SE122.L11 MỤC LỤC Hồ Chí Minh, ngày 04 tháng 01 năm 2021 DANH SÁCH HÌNH ẢNH Đồ án SE122.L11 LỜI NĨI ĐẦU Nhóm em xin trình bày việc nghiên cứu thuật toán phân loại thể loại âm nhạc dựa nội dung hát cách sử dụng mạng nơ-ron tích hợp hồn tồn (FCN) với sử dụng hai dataset phổ biến Million song dataset Gtzan dataset với đầu vào mel-spectrogram trích xuất từ âm nhạc, nhóm tích cực nghiên cứu, áp dụng mơ hình mạng Convolutional Neural Network (CNN) để cải thiện, nâng cao hiệu suất dự đoán mơ hình Trong q trình tìm hiểu xây dựng ứng dụng, nhóm em khơng thể tránh khỏi nhiều điều thiếu sót nên mong nhận đóng góp ý kiến nhận xét từ phía thầy bạn để đề tài hồn thiện Nhóm em xin chân thành cảm ơn thầy Mai Trọng Khang hướng dẫn chúng em tận tình trình thực đề tài này! Hồ Chí Minh, 04/01/2021 Đồ án SE122.L11 NHẬN XÉT CỦA GIÁO VIÊN ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… Đồ án SE122.L11 ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… PHẦN 1: TỔNG QUAN 1.1 Giới thiệu Thể loại âm nhạc tập hợp từ khóa mơ tả đặc trưng cho hát, cảm xúc (buồn, tức giận, hạnh phúc), thể loại (jazz, cổ điển, pop…) nhạc cụ (hịa tấu, guitar, vocal,…) Vì thể loại âm nhạc cung cấp thông tin đặc trưng từ quan điểm người nghe nên chúng sử dụng cho ứng dụng khám phá đề xuất âm nhạc Phân loại thể loại âm nhạc nhiệm vụ nhằm dự đoán thể loại nhạc việc sử dụng tín hiệu âm Việc tự động nhận diện thể loại âm nhạc cho phép tạo nhiều nội dung thú vị cho người dùng ví dụ khám phá âm nhạc sáng tạo danh sách phát, đồng thời cung cấp cho nhà phát triển nội dung xếp gắn nhãn âm nhạc Tuy nhiên, điều gặp nhiều khó khăn việc chồng chéo nhiều thể loại hát hát có thời lượng khác dẫn đến dự đốn có độ xác khơng cao Đồ án SE122.L11 Vì thế, việc xây dựng hệ thống u cầu cơng cụ trích xuất tính âm cơng cụ ước tính tốt thể loại mà quan tâm, theo sau phân loại đơn nhiều thể loại số trường hợp Thơng thường trích xuất tính dựa vào giao diện người dùng xử lí tính hiệu để tính tốn tính liên quan đến biểu diễn âm (miền thời gian, tần số) Các tính sau sử dụng làm đầu vào cho giai đoạn học máy Tuy nhiên khó để biết tính phù hợp để thực tác vụ Một cách tiếp cận gần hợp việc trích xuất tính với học máy phép tính liên quan học tự động Cách tiếp cận gọi học tập tính yêu cầu Mạng thần kinh sâu (DNN) Do đó, bên cạnh việc hệ thống học để phân loại thể loại cho phép tìm hiểu tính liên quan cho nhiệm vụ DNN gần sử dụng rộng rãi phân tích âm thanh, sau thành cơng chúng thị giác máy tính, nhận dạng giọng nói tự động gắn thẻ Từ góc độ kĩ thuật, DNN bỏ qua vấn đề tạo tìm tính âm liên quan nhiệm vụ Cấu trúc chung bao gồm nhiều lớp ẩn với đơn vị ẩn huấn luyện để đại diện cho số cấu trúc liệu Một số thuật toán liên quan đến DNN đề xuất để gắn thể loại âm nhạc tự động 1.2 Mục tiêu - Tiếp cận machine learning, biết sử dụng framework Keras thuật toán Convolutional Neural Network (CNN) - Tìm hiểu liệu triệu hát Milions song dataset - Áp dụng framework Keras Milions song dataset để xây dựng ứng dụng nhận diện thể loại hát PHẦN 2: CNN VÀ CRNN CHO NHẬN DIỆN THỂ LOẠI ÂM NHẠC 2.1 Convolutional Neural Network (CNN) 2.1.1 Kiến trúc CNN - Trong mạng Neural, mạng Neural tích chập (CNN) thuật tốn việc nhận diện phân loại đối tượng Đồ án SE122.L11 - Về kỹ thuật, mơ hình CNN thực train test Mỗi đầu vào chuyển qua loạt lớp tích chập với lọc (filter) – (kernel), sau đến Pooling, lớp kết nối hoàn chỉnh (FC – Fully Connected layers) sau áp dụng hàm softmax để phân loại đối tượng có giá trị xác suất Hình Kiến trúc CNNs Input image  Convolutional layer (Conv) + Pooling layer (Pool)  Fully connected layer (FC)  Output * Convolution Layer: - Là lớp trích xuất tính từ hình ảnh đầu vào Convolution trì ràng buộc pixel cách học đặc tính hình ảnh với ngun tắc học sử dụng ô vuông nhỏ liệu đầu vào Đây hành động tốn học có đầu vào ma trận hình ảnh ma trận filter kernel Đồ án SE122.L11 Hình Cấu trúc Convolution Layer - Mỗi lớp tích chập có kích thước H x W x D học D tính H x W, H W chiều cao chiều rộng kernel học Chọn đối số, áp dụng lọc với bước nhảy, padding cần Thực tích chập cho hình ảnh áp dụng hàm kích hoạt ReLU cho ma trận hình ảnh Có thể sử dụng số hàm phi tuyến khác tanh, sigmoid (thường dùng ReLU cho hiệu suất tốt) * Pooling Layer - Pooling layer thường dùng convolutional layer, để giảm kích thước liệu giữ thuộc tính quan trọng Kích thước liệu giảm giúp giảm việc tính tốn model - Gọi pooling size kích thước K x K Input pooling layer có kích thước H x W x D, ta tách làm D ma trận kích thước H x W Với ma trận, vùng kích thước K x K ma trận ta tìm maximum average liệu viết vào ma trận kết Quy tắc stride padding áp dụng phép tính convolution ảnh - Max pooling lấy phần tử lớn từ ma trận đối tượng, lấy tổng trung bình Tổng tất phần tử map gọi sum pooling * Fully Connected Layer Đồ án SE122.L11 - Max pooling lấy phần tử lớn từ ma trận đối tượng, lấy tổng trung bình Tổng tất phần tử map gọi sum pooling Sau ta dùng fully connected layer để kết hợp đặc điểm ảnh để output model 2.1.2 CNN nhận diện thể loại âm nhạc - Một số lí cho việc sử dụng CNN nhận diện thể loại âm nhạc: + Các thể loại âm nhạc thường coi tính high – level thể thông tin cấp hát tính cấp trung gian thay đổi theo thời gian tần số hợp âm, nhịp, âm sắc Hệ thống phân cấp phù hợp với CNN thiết kế để tìm hiểu tính phân cấp cấu trúc nhiều lớp + Các thuộc tính CNN translation, distortion tính bất biến hữu ích để tìm hiểu tính âm nhạc mục tiêu kiện có liên quan đến thẻ xuất lúc dải tần số Hình CNNs cho nhận diện thể loại âm nhạc 2.2 CRNN - Gần đây, CNN kết hợp với nơ-ron tái phát mạng (RNN) thường sử dụng để lập mơ hình liệu tín hiệu âm chuỗi từ Lai mơ hình gọi mạng nơ-ron tuần hồn tích tụ (CRNN) CRNN mô tả CNN sửa đổi cách thay lớp chập cuối RNN Đồ án SE122.L11 10 Hình CRNNs cho nhận diện thể loại âm nhạc - Recurrent Neural Network (RNNs – Mạng nơ-ron hồi quy) mô hình Deep Learning cơng nghệ trí tuệ nhân tạo RNN đời với ý tưởng sử dụng nhớ để lưu lại thông tin từ từ bước tính tốn xử lý trước để dựa vào đưa dự đốn xác cho bước dự đốn Cơ mạng neural hồi quy mạng neural chứa vịng lặp bên - CRNN thích hợp với nhiệm vụ phân loại thể loại âm nhạc RNNs linh hoạt việc chọn cách tóm tắt đặc trưng CNNs sử dụng trọng số trung bình lấy mẫu PHẦN 3: ỨNG DỤNG KERAS FRAMWORK ĐỂ NHẬN DIỆN THỂ LOẠI ÂM NHẠC 3.1 Chuẩn bị dataset 3.1.1 Million Song Dataset (MSD) * Ý tưởng: Sử dụng subset 10000 hát gắn nhãn thể loại dựa theo 50 tag phổ biến cung cấp last.fm bao gồm thể loại (rock, pop, jazz, funk), thời đại (thập niên 60 – 00) tâm trạng (buồn, vui, hạnh phúc) Sau có liệu 10000 hát gắn nhãn, vấn đề cần phải có file audio Nhận thấy hát từ tập liệu MSD chứa Id từ nhà cung cấp có tên 7Digital 7Digital nhà cung cấp ứng dụng nghe nhạc, cho phép bạn phát nhạc trực tuyến kiếm tiền Đồ án SE122.L11 11 7Digital cho phép người dùng xem trước 30 giây ngẫu nhiên hát, việc tải xuống hát tập liệu MSD xem trước 30 giây Nhưng điều khơng may 7Digital khơng cịn cung cấp API cho phép lấy liệu nên nhóm định tìm tập liệu khác phù hợp để thay 3.1.2 Gtzan Dataset Gtzan tập liệu tạo Tzanetakis cộng Nó tổng hợp 1000 trích đoan âm nhạc với thời lượng 30 giây bao gồm 100 hát cho thể loại khác (tổng 10 thể loại: Blues, Classical, Country, Disco, Hip Hop, Jazz, Metal, Popular, Reggae Rock) tất file âm 22050Hz Mono 16-bit định dạng au Tuy nhiên, có hạn chế lớn trường hợp nhận diện thể loại âm nhạc đa khung (multiframe) thời lượng trích đoạn âm nhạc có 30 giây nên trích xuất khung hình (frame) cho hát 3.2 Xây dựng Model trainning Dựa theo báo khoa học AUTOMATIC TAGGING USING DEEP CONVOLUTIONAL NEURAL NETWORKS, Keunwoo Choi, George Fazekas, Mark Sandler (2016), nhóm em áp dụng mơ hình FCN – sau: Đồ án SE122.L11 12 Hình The configuration of FCN – FCN – bao gồm lớp chập (convolutional layer) lớp gộp tối đa (max pooling layer) Mạng lấy biểu đồ phổ mel-spectrogram kích thước 96 x 1366 làm đầu vào dự đốn vector label 10 chiều Đơn vị tuyến tính chỉnh lưu ReLU sử dụng hàm kích hoạt convolution layer, sử dụng sigmoid để ép đầu khoảng đến Chuẩn hóa hàng loạt thêm vào sau convolution layer trước kích hoạt Dropout thêm vào sau max pooling layer để làm tăng tốc độ hội tụ Các nhân tích chập 2D (3 x 3) đồng sử dụng convolutional layer, ngoại trừ convolutional layer cuối (1 x 1) Các 2D kernel sử dụng để khuyến khích hệ thống học cấu trúc quang phổ cục PHẦN 4: CÀI ĐẶT VÀ THỬ NGHIỆM 4.1 Môi trường appdirs==1.4.3 Đồ án SE122.L11 13 audioread==2.1.4 cycler==0.10.0 Cython==0.25.2 decorator==4.0.11 functools32==3.2.3.post2 h5py==2.7.0 joblib==0.11 Keras==1.1.0 librosa==0.5.0 matplotlib==2.0.0 numpy==1.12.1 packaging==16.8 pyparsing==2.2.0 python-dateutil==2.6.0 pytz==2017.2 PyYAML==3.12 resampy==0.1.5 scikit-learn==0.18.1 scipy==0.19.0 six==1.10.0 subprocess32==3.2.7 Theano==0.9.0 4.2 Thử nghiệm Đồ án SE122.L11 14 - Trích xuất feature với Gtzan - Nhận diện thể loại âm nhạc với model weights sẵn có PHẦN 5: NHẬN XÉT VÀ KẾT LUẬN 5.1 Thuận lợi:  Tinh thần học tập tốt làm việc tích cực thành viên nhóm  Thường xuyên họp nhóm làm việc chung để giải vấn đề phức tạp  Giáo viên hướng dẫn tận tình 5.2 Khó khăn:  7Digital API khơng public  Tập liệu Million song dataset chưa thực rõ ràng 5.3 Kết đạt được:  Tìm hiểu framework Keras  Tìm hiểu Million song dataset, gtzan dataset  Sử dụng Keras framework, gtzan, mạng neural CNN, CRNN PHẦN 6: HƯỚNG PHÁT TRIỂN  Tìm cách sử dụng tập liệu Million song kết hợp với mạng CNNs  Xây dựng ứng dụng đề xuất thể loại âm nhạc Đồ án SE122.L11 15 TÀI LIỆU THAM KHẢO [1] AUTOMATIC TAGGING USING DEEP CONVOLUTIONAL NEURAL NETWORKS, Keunwoo Choi, George Fazekas, Mark Sandler (2016) [2] https://github.com/keunwoochoi/music-auto_tagging-keras [2] https://github.com/mlachmish/MusicGenreClassification [2] https://github.com/jsalbert/Music-Genre-Classification-with-Deep-Learning Đồ án SE122.L11 ... nghe nên chúng sử dụng cho ứng dụng khám phá đề xuất âm nhạc Phân loại thể loại âm nhạc nhiệm vụ nhằm dự đoán thể loại nhạc việc sử dụng tín hiệu âm Việc tự động nhận diện thể loại âm nhạc cho phép... để kết hợp đặc điểm ảnh để output model 2.1.2 CNN nhận diện thể loại âm nhạc - Một số lí cho việc sử dụng CNN nhận diện thể loại âm nhạc: + Các thể loại âm nhạc thường coi tính high – level thể. ..2 ĐỀ TÀI SỬ DỤNG FRAMEWORK KERAS VÀ MILLIONS SONG DATASET ĐỂ XÂY DỰNG ỨNG DỤNG NHẬN DIỆN THỂ LOẠI ÂM NHẠC Thực hiện: Nguyễn Tấn Phát 17520879 Dương Thị

Ngày đăng: 05/09/2021, 20:48

Từ khóa liên quan

Mục lục

  • 1.1 Giới thiệu

  • 1.2 Mục tiêu

  • 2.1 Convolutional Neural Network (CNN)

    • 2.1.1 Kiến trúc của CNN

      • Hình 1. Kiến trúc CNNs

      • Hình 2. Cấu trúc Convolution Layer

      • 2.1.2 CNN trong nhận diện thể loại âm nhạc

        • Hình 3. CNNs cho nhận diện thể loại âm nhạc

        • 2.2 CRNN

          • Hình 4. CRNNs cho nhận diện thể loại âm nhạc

          • 3.1 Chuẩn bị dataset

            • 3.1.1 Million Song Dataset (MSD)

            • 3.1.2 Gtzan Dataset

            • 3.2 Xây dựng Model và trainning

              • Hình 5. The configuration of FCN – 4

              • 4.1 Môi trường

              • 4.2 Thử nghiệm

              • 5.1 Thuận lợi:

              • 5.2 Khó khăn:

              • 5.3 Kết quả đạt được:

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan