Xây dựng website nghe nhạc kết hợp nhận diện nhạc qua giai điệu và đề xuất (khóa luận tốt nghiệp)

114 19 0
Xây dựng website nghe nhạc kết hợp nhận diện nhạc qua giai điệu và đề xuất (khóa luận tốt nghiệp)

Đ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

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM TRẦN DUY KHÁNH NGUYỄN HỮU TRÍ KHĨA LUẬN TỐT NGHIỆP Xây dựng Website Nghe Nhạc Kết Hợp Nhận Diện Nhạc Qua Giai Điệu Và Đề Xuất Music Website With Music Recognition by Melody And Recommendation KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM TP HỒ CHÍ MINH, 2022 ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM TRẦN DUY KHÁNH - 18520075 NGUYỄN HỮU TRÍ - 18521528 KHĨA LUẬN TỐT NGHIỆP Xây dựng Website Nghe Nhạc Kết Hợp Nhận Diện Nhạc Qua Giai Điệu Và Đề Xuất Music Website With Music Recognition by Melody And Recommendation KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN Ths Trần Anh Dũng TP HỒ CHÍ MINH, 2022 THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số…………………… ngày ………………… Hiệu trưởng Trường Đại học Công nghệ Thông tin LỜI CẢM ƠN Sau trình học tập rèn luyện khoa Công Nghệ Phần Mềm, trường Đại Học Công Nghệ Thông Tin – ĐHQG TP.HCM, chúng em thầy cô nhà trường trang bị cho nhiều kiến thức kỹ hữu ích Đó tiền đề để chúng em thực Khóa Luận Tốt Nghiệp Để hồn thành đề tài này, chúng em xin gửi lời cảm ơn chân thành đến: Ban Giám hiệu trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM tạo điều kiện sở vật chất với hệ thống thư viện đại, đa dạng loại sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thơng tin Chúng em xin gửi lời cảm ơn chân thành đến thầy Trần Anh Dũng tận tình giúp đỡ, định hướng cách tư cách làm việc khoa học Đó góp ý q báu khơng q trình thực đề tài mà cịn hành trang tiếp bước cho chúng em trình học tập lập nghiệp sau Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất thầy cô khoa, bạn bè, tập thể lớp KTPM2018 người sẵn sàng sẻ chia giúp đỡ học tập sống Mong rằng, mãi gắn bó với Trong q trình làm đề này chúng em khơng tránh khỏi sai sót, chúng em kính mong nhận dẫn góp ý quý thầy để đề tài hồn thiện Chúng em xin chân thành cảm ơn Xin chúc điều tốt đẹp đồng hành người Thành phố Hồ Chí Minh, … tháng … năm 2022 Sinh viên TRẦN DUY KHÁNH NGUYỄN HỮU TRÍ MỤC LỤC Chương GIỚI THIỆU CHUNG 1.1 Thực trạng nhu cầu nghe nhạc 1.2 Lý chọn đề tài 1.3 Đối tượng nghiên cứu 1.4 Phạm vi nghiên cứu 1.5 Phương pháp nghiên cứu Chương 2.1 KIẾN THỨC NỀN TẢNG Tổng quan mô hình MVC 2.1.1 Khái niệm 2.1.2 Cấu trúc mơ hình MVC 2.1.3 Mơ hình MVC ứng dụng Web 2.2 Tổng quan NET 2.2.1 Giới thiệu 2.2.2 Tạo chọn NET core để phát triển server 2.3 Angular 2.3.1 Giới thiệu 2.3.2 Ưu điểm Angular 2.4 Hệ quản trị sở liệu MongoDB 2.4.1 Giới thiệu 2.4.2 Ưu điểm MongoDB 2.5 Flask 2.5.1 Giới thiệu Flask 2.5.2 Tại sử dụng Flask 2.6 Keras 2.6.1 Giới thiệu Keras 2.6.2 Tại sử dụng Keras 10 Chương 3.1 PHÂN TÍCH 11 Tìm hiểu cơng nghệ 11 3.1.1 Tổng quan trình 11 3.1.2 Xử lý thu âm 11 3.1.3 Time-Domain Frequency-Domain 12 3.2 Xây dựng hệ thống 15 3.2.1 Xây dựng kiến trúc hệ thống 15 3.2.2 Thiết kế hệ thống 16 3.3 Phân tích 31 3.3.1 Recognizer Server 31 3.3.2 Music Server 34 Chương 4.1 THIẾT KẾ GIAO DIỆN 39 Giao diện trang chủ 39 4.1.1 Giao diện trang chủ 39 4.1.2 Giao diện chức Songs For You 40 4.1.3 Giao diện chức Genre Songs 41 4.2 Giao diện Player 42 4.2.1 Chức Lyric 42 4.2.2 Chức Karaoke 43 4.3 Giao diện trang admin 44 4.3.1 4.4 Trang admin 44 Giao diện chức quản lý hát 45 4.4.1 Danh sách hát 45 4.4.2 Thêm hát 46 4.4.3 Chức Sửa Thông Tin Bài Hát 47 4.4.4 Chức Chi tiết hát 48 4.5 Giao diện chức Quản Lý Nghệ Sĩ 49 4.5.1 Chức Danh sách Nghệ Sĩ 49 4.5.2 Chức Chi Tiết Nghệ Sĩ 50 4.5.3 Chức Thêm Nghệ Sĩ 51 4.5.4 Chức Sửa Thông Tin Nghệ Sĩ 52 4.6 Chức đề xuất nhạc 53 4.6.1 Chức Đề Xuất Nhạc Theo Bài Hát Hiện Tại 53 4.6.2 Chức Đề Xuất Nhạc Cho Người Dùng 54 4.6.3 Chức Đề Xuất Nhạc Theo Thể Loại Yêu Thích Của Người Dùng 55 4.7 Chức Nhận Diện Bài Hát 56 4.7.1 Giao diện trang nhận diện 56 4.7.2 Giao diện trang ghi âm 57 4.7.3 Giao diện trang Kết Quả Nhận Diện 60 4.8 Chức Playlist 61 Chương 5.1 HIỆN THỰC HÓA CHỨC NĂNG NHẬN DIỆN 62 Quá trình thu thập liệu 62 5.1.1 Xác định API cần thiết: 63 5.1.2 Cách tạo Signature cho request: 64 5.1.3 Gọi API để crawl liệu: 65 5.2 Kết thu 66 5.3 Xử lý lưu trữ chuyển đổi âm 67 5.3.1 Tính chất âm 67 5.3.2 5.4 Chuyển đổi tìm kiếm hát 68 Hiện thực hóa cơng nghệ 71 5.4.1 Chuyển đổi lưu trữ âm 71 5.4.2 Tìm kiếm hát 73 5.4.3 Kiểm thử độ xác 73 Chương HIỆN THỰC HÓA CHỨC NĂNG ĐỀ XUẤT NHẠC 78 6.1 Xây dựng hệ thống đề xuất 78 6.2 Hệ thống phân loại 79 6.2.1 Thu thập liệu 79 6.2.2 Lọc liệu 79 6.2.3 Audio Preprocessing 82 6.2.4 Mơ hình mạng 83 6.3 Huấn luyện mơ hình 86 6.4 Đánh giá mơ hình 87 6.4.1 Các thơng số để đánh giá mơ hình CNN 87 6.4.2 Mơ hình Resnet50 88 6.5 Hệ thống Đề Xuất 90 6.6 Xây dựng API cho hệ thống đề xuất 91 6.6.1 Đề xuất hát dựa hát nghe người dùng 91 6.6.2 Đề xuất dựa hát người dùng nghe nhiều 92 6.6.3 Đề xuất dựa thể loại người dùng nghe nhiều 93 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 94 7.1 Ưu điểm 94 7.2 Nhược điểm 94 7.3 Kết đạt 94 7.3.1 Về mặt nghiên cứu: 94 7.3.2 Về mặt sản phẩm: 95 7.4 Hướng phát triển 95 TÀI LIỆU THAM KHẢO 96 DANH MỤC HÌNH Hình 2.1.1 Mơ hình MVC Hình 2.1.2 Mơ hình MVC ứng dụng Web Hình 2.2.1 Net core Net framework Hình 2.3.1 Angular Hình 2.4.1 So sánh mức độ phổ biến MongoDB Hình 3.1.1 Mô tả Processing Pipeline 11 Hình 3.1.2 Xử lý thu âm 12 Hình 3.1.3-1 Analog Digital Signal 12 Hình 3.2.3.2.1 Kiến trúc hệ thống website 15 Hình 3.2.2 Sơ đồ Usecase 16 Hình 3.3.1 Sơ đồ lớp hệ thống nhận diện 31 Hình 3.3.2 Sơ đồ lớp Music Server 34 Hình 4.1.1 Giao diện trang chủ Trang Web 39 Hình 4.1.2 Giao diện Songs For You 40 Hình 4.1.3 Giao diện chức Genre Songs 41 Hình 4.2.1 Giao diện chức Lyric 42 Hình 4.2.2 Giao diện chức Karaoke 43 Hình 4.3.1 Giao diện trang Admin 44 Hình 4.4.1 Giao diện chức danh sách hát 45 Hình 4.4.2 Giao diện chức Thêm Bài Hát 46 Hình 4.4.3 Giao diện chức Sửa Thông Tin Bài Hát 47 Hình 4.4.4 Giao diện chức Chi Tiết Bài Hát 48 Hình 4.5.1 Giao diện chức Danh sách Nghệ Sĩ 49 Hình 4.5.2 Giao diện chức Chi Tiết Nghệ Sĩ 50 Hình 4.5.3 Giao diện chức Thêm Nghệ Sĩ 51 Hình 4.5.4 Giao diện chức Sửa Thông Tin Nghệ Sĩ 52 Hình 4.6.1 Giao diện chức Đề Xuất Theo Bài Hát Hiện Tại 53 Hình 4.6.2 Giao diện chức Đề Xuất Nhạc Cho Người Dùng 54 Hình 4.6.3 Giao diện chức Đề Xuất Nhạc Theo Thể Loại Yêu Thích 55 Hình 4.7.1 Giao diện chức nhận diện 56 Hình 6.2.4 Sử dụng thư viện Librosa để trích xuất đặc trưng Audio Kết trình ta rút trích đặc trưng từ file wav để làm input cho Model phục vụ cho q trình training 6.2.4 Mơ hình mạng Để thực phân loại thể loại nhạc, nhóm sử dụng mơ hình mạng Resnet50 số mơ hình khác để thực đề tài 6.2.4.1 Thơng tin mơ hình mạng: 6.2.4.1.a Resnet50 ⎼ Mơ hình mạng ResNet50 bao gồm stage stage có Convolution Block Identity Block ⎼ Mỗi Convolution Block có Convolution Layer Identity Block có Convolution Layer ⎼ Và tổng thể ResNet-50 có 23 triệu params train Mạng ResNet sinh để giải vấn đề tượng Vanishing Gradient dẫn tới trình học tập khơng tốt 83 Hình 6.2.5 Cấu trúc chung Resnet50 Hình 6.2.6 Cấu trúc layer Resnet50 84 o Identity Block Identity Block lớp chuẩn sử dụng ResNets tương ứng với trường hợp Input có số chiều với Output Hình 6.2.7 Cấu trúc Identity Block ● Convolution Block Convolution Block sử dụng trường hợp ngược lại Input Output không đồng Sự khác biệt nằm lớp CONV2D shortcut path Hình 6.2.8 Cấu trúc Identity Block 85 ● Hạn chế sử dụng mô hình Mơ hình nhóm tham khảo Kaggle thay sử dụng mạng built-in Keras Input Shape MFCC 130x13 mạng build-in Keras yêu cầu tối thiểu 224x224 Vì mạng lớn so với lượng data nhóm có 6.3 Huấn luyện mô hình Đầu tiên, chia liệu sau qua trình tiền xử lý thành tập training, validation test 0.55 : 0.2 : 0.25 Batch size 32 epochs 30 Batch size không lớn gây tràn Ram q trình training Ban đầu nhóm sử dụng GPU NVIDIA Geforce GTX 1050 với dung lượng VRam 2.3GB CPU AMD Ryzen 3750H, trình training gặp nhiều khó khăn Sau nhóm định training Google Colab có hỗ trợ GPU Tesla 15 GB Ram 3.3 GB Ram 86 6.4 Đánh giá mô hình 6.4.1 Các thông số để đánh giá mô hình CNN Hình 6.4.1 Các định nghĩa đánh giá Các số TP, FP, TN FN có ý nghĩa là: ● TP (True Positive): Tổng số trường hợp dự báo khớp với Positive ● TN (True Negative): Tổng số trường hợp dự báo khớp với Negative ● FP (False Positive): Tổng số trường hợp dự báo quan sát thuộc nhãn dán Negative thành Positive ● FN (False Negative): Tổng số trường hợp dự báo quan sát thuộc nhãn Positive thành Negative 6.4.1.1 Độ xác (Accuracy) Khi xây dựng mơ hình phân loại muốn biết cách khái quát tỷ lệ trường hợp dự báo tổng số trường hợp Tỷ lệ 87 gọi độ xác Độ xác giúp ta đánh giá hiệu dự báo mơ hình liệu Accuracy = 6.4.1.2 𝑇𝑃+𝑇𝑁 𝑇𝑜𝑡𝑎𝑙 𝑆𝑎𝑚𝑝𝑙𝑒 Precision Precision trả lời cho câu hỏi trường hợp dự báo Positive có trường hợp ? Và Precision cao mơ hình tốt việc phân loại hồ sơ BAD 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 6.4.1.3 𝑇𝑃 𝑇𝑜𝑡𝑎𝑙 𝐴𝑐𝑡𝑢𝑎𝑙 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒 = 𝑇𝑃 𝑇𝑃+𝐹𝑃 Recall Recall đo lường tỉ lệ dự báo xác trường hợp Positive tồn mẫu thuộc nhóm Positive 𝑇𝑃 𝑇𝑃 𝑅𝑒𝑐𝑎𝑙𝑙 = = 𝑇𝑜𝑡𝑎𝑙 𝐴𝑐𝑡𝑢𝑎𝑙 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒 𝑇𝑃 + 𝐹𝑁 6.4.1.4 F1 Score F1 Score trung bình điều hịa Precision Recall Do đại diện việc đánh giá độ xác đồng thời Precision Recall 𝐹1 = 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛−1 + 𝑟𝑒𝑐𝑎𝑙𝑙 −1 6.4.2 Mô hình Resnet50 6.4.2.1 - Độ xác (Accuracy) Với Acc 0.79 mơ hình đánh xác 88 6.4.2.2 - Các thông số khác Với 82,7 % trường hợp đốn Positive nhãn Positive ( Precision Score) - 73% trường hợp đoán Positive tổng số nhãn Positive 6.4.2.3 Confusion Matrix Confusion Matrix kĩ thuật để khái quát performance thuật tốn phân loại Việc tính tốn Confusion Matrix giúp cải thiện mơ hình phân loại nhờ vào việc tìm kiếm lỗi trình train liệu Hình 6.4.2 Confusion Matrix mơ hình Resnet50 89 ⮚ Nhận xét: ● Dựa vào Matrix ta thấy Nhạc Phim Việt có tỉ lệ đốn cao, theo sau nhạc Pop, V-Pop, Electron-Dance, R-B Soul ● Ở thể loại Kpop hay Nhạc Trữ Tình dễ bị đốn sai ● Tập liệu test không trải thể loại 6.5 Hệ thống Đề Xuất Hình 6.5.1 Minh họa Cosine Distance/Similarity Hệ thống đề xuất xây dựng dựa việc tính tốn Cosine Similarity dựa kết Predict Mơ hình phân loại Bởi kết dạng Vector nên tính tốn Distance chúng Đầu tiên, chọn tập nhạc cho thể loại để đề xuất Tiếp theo kết dự đốn nhạc tính tốn dựa mạng Neural Network Để tính tốn tương đương nhạc với kết Prediction x = [x1, x2,… xn] y = [y1, y2, …yn], sử dụng : 90 Giá trị nhận hàm nằm -1 Chúng ta xếp giá trị từ lớn tới nhỏ chọn số nhạc từ mảng xếp Với hệ thống , nhóm chọn từ mảng Distance 6.6 Xây dựng API cho hệ thống đề xuất Xây dựng hệ thống đề xuất dựa Flask STT Method URL Chú thích GET {{BACKEND_URL}}/recommend?name_file= Đề xuất dựa hát GET {{BACKEND_URL}}/models Lấy danh sách Model hệ thống GET {{BACKEND_URL}}/currentModel Lấy thông tin Model GET {{BACKEND_URL}}/userRecommend?userId Lấy đề xuất dựa = hát yêu thích người dùng GET {{BACKEND_URL}}/genre?userId= Lấy đề xuất dựa thể loại yêu thích người dùng 6.6.1 Đề xuất hát dựa hát nghe người dùng Hình 6.6.1 Minh hoạ trình đề xuất hát tương ứng với hát 91 Khi người dùng nghe nhạc Client gửi thơng tin hát cho hệ thống đề xuất Hệ thống thực tính tốn phân loại cho kết mảng vector Chúng ta thực tính tốn Distance Array với hát có hệ thống để đưa đề xuất Top hát gần giống sát với hát gửi cho phía Client 6.6.2 Đề xuất dựa hát người dùng nghe nhiều Hình 6.6.2 Minh họa trình đề xuất hát tương ứng với hát Hệ thống vào lịch sử người dùng nghe nhạc để lấy Top hát người dùng nghe nhiều ( Cơ sở liệu lưu số lần nghe tổng thời gian mà người dùng nghe hát) đưa đề xuất tương tự với trình đề xuất hát mục 92 6.6.3 Đề xuất dựa thể loại người dùng nghe nhiều Hình 6.6.3 Minh họa trình đề xuất thể loại tương ứng với lịch sử nghe nhạc người dùng Hệ thống vào lịch sử người dùng nghe nhạc để lấy Top hát người dùng nghe nhiều ( Cơ sở liệu lưu số lần nghe tổng thời gian mà người dùng nghe hát) tiến hành Predict đưa thể loại mà người dùng nghe nhiều sau chọn hát nhiều lượt nghe nhiều lượt thích để đề xuất cho người dùng 93 Chương 7.1 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Ưu điểm ⎼ Giao diện Website trực quan, dễ sử dụng đầy đủ thông tin cần thiết ⎼ Hỗ trợ đầy đủ chức cho quản trị viên ⎼ Các tính nhận diện đề xuất có độ xác cao ⎼ Tối ưu hóa trải nghiệm người dùng với thiết kế giao diện linh hoạt cho điện thoại, máy tính bảng, máy tính ⎼ Trang web gọn nhẹ khơng chiếm q nhiều tài nguyên phía Client 7.2 Nhược điểm ⎼ Thời gian nhận diện chậm đưa lên Cloud độ trễ truyền file ⎼ Hệ thống nhận diện phụ thuộc nhiều vào chất lượng thu âm người dùng phần cứng Server, dẫn tới tốn nhiều chi phí mở rộng theo chiều ngang dọc ⎼ Đề tài hỗ trợ web browser, chưa có Mobile App ⎼ Hệ thống nhận diện phụ thuộc nhiều vào chất lượng thu âm người dùng phần cứng Server, dẫn tới tốn nhiều chi phí mở rộng theo chiều ngang dọc ⎼ Đề tài hỗ trợ web browser, chưa có Mobile App 7.3 Kết đạt 7.3.1 Về mặt nghiên cứu: ⎼ Nhóm có hội tìm hiểu nghiên cứu thuật tốn mà cơng ty Shazam, sử dụng ⎼ Hiểu áp dụng vào việc xử lý file âm thanh, vấn đề FFT (Fourier Transform) 94 ⎼ Tìm hiểu áp dụng công nghệ Web phương pháp xây dựng Project phù hợp ⎼ Hiểu áp dụng Deep Learning vào hệ thống đề xuất ⎼ Xây dựng hệ thống đầy đủ liên kết từ nhiều thành phần 7.3.2 Về mặt sản phẩm: ⎼ Giao diện trực quan dễ nhìn ⎼ Chức dễ sử dụng ⎼ Kết nhận diện đề xuất có độ xác cao 7.4 Hướng phát triển ⎼ Tìm hiểu phát triển yếu tố phát quyền nhạc ⎼ Hỗ trợ đa tảng ⎼ Nâng cấp hệ sở quản trị liệu phân tán 95 TÀI LIỆU THAM KHẢO Tài Liệu Tiếng Anh [1] V V – T S o AI, "Deep Learning (for Audio) with Python," [Online] Available: https://youtu.be/fMqL5vckiU0 [2] A A S G D S Adiyansjaha, "Music Recommender System based on Genre using Convolutional Neural Networks" [3] NAudio [Online] Available: https://github.com/naudio/NAudio [4] MogoDB [Online] Available: https://mongodb.com/ [5] Keras [Online] Available: https://keras.io/api/models/ [6] Angular [Online] Available: https://angular.io/ 96 Tài liệu Tiếng Việt [1] “Viblo,” [Trực tuyến] Available: https://viblo.asia/p/zing-mp3-toi-da-khai-thacapi-nhu-the-nao-L4x5xvdaZBM [2] "Machine Learning Cơ Bản," [Online] Available: https://machinelearningcoban.com/2017/05/17/contentbasedrecommendersys/ 97 ... hành nhạc, chúng em định lựa chọn ? ?Xây dựng Website Nghe Nhạc Kết Hợp Nhận Diện Nhạc Qua Giai Điệu Và Đề Xuất? ?? làm đề tài nghiên cứu cho khóa luận tốt nghiệp 1.3 Đối tượng nghiên cứu Khoá luận. .. KHÁNH - 18520075 NGUYỄN HỮU TRÍ - 18521528 KHÓA LUẬN TỐT NGHIỆP Xây dựng Website Nghe Nhạc Kết Hợp Nhận Diện Nhạc Qua Giai Điệu Và Đề Xuất Music Website With Music Recognition by Melody And Recommendation... Hệ thống Đề Xuất 90 6.6 Xây dựng API cho hệ thống đề xuất 91 6.6.1 Đề xuất hát dựa hát nghe người dùng 91 6.6.2 Đề xuất dựa hát người dùng nghe nhiều 92 6.6.3 Đề xuất dựa

Ngày đăng: 16/06/2022, 21:08

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

Tài liệu liên quan