ĐẠ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
NGUYỄN ANH TẤN
LỘC ĐỨC THẮNG
KHÓA LUẬN TỐT NGHIỆP
NHẬN DẠNG THỂ LOẠI ÂM NHẠC ĐỂ XÂY DỰNG
CHỨC NĂNG KHUYẾN NGHỊ TRONG ỨNG DỤNG
NGHE NHẠC
Music genre recognition for recommendation in music application
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
TP. HỒ CHÍ MINH, 2021
ĐẠ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
NGUYỄN ANH TẤN –17521013
LỘC ĐỨC THẮNG - 17521039
KHÓA LUẬN TỐT NGHIỆP
NHẬN DẠNG THỂ LOẠI ÂM NHẠC ĐỂ XÂY DỰNG
CHỨC NĂNG KHUYẾN NGHỊ TRONG ỨNG DỤNG
NGHE NHẠC
Music genre recognition for recommendation in music application
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN
ThS. Mai Trọng Khang
TP. HỒ CHÍ MINH, 2021
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 ………………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
1.
........................................................- Chủ tịch.
2.
..........................................................- Thư ký.
3.
.........................................................- Ủy viên.
4.
.........................................................- Ủy viên.
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC
Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày…..tháng…..năm……..
NHẬN XÉT KHĨA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ HƯỚNG DẪN)
Tên khóa luận:
NHẬN DẠNG THỂ LOẠI ÂM NHẠC ĐỂ XÂY DỰNG CHỨC NĂNG KHUYẾN NGHỊ
TRONG ỨNG DỤNG NGHE NHẠC
Music genre recognition for recommendation in music application
Nhóm SV thực hiện:
Cán bộ hướng dẫn:
Nguyễn Anh Tấn
17521013
Lộc Đức Thắng
17521039
Ths. Mai Trọng Khang
Đánh giá Khóa luận
1. Về cuốn báo cáo:
Số trang
Số bảng số liệu
Số tài liệu tham khảo
________
________
________
Số chương
Số hình vẽ
Sản phẩm
_______
_______
_______
Một số nhận xét về hình thức cuốn báo cáo:
……................................…………………………………………………………………………
……................................…………………………………………………………………………
……................................…………………………………………………………………………
2. Về nội dung nghiên cứu:
……................................…………………………………………………………………………
……................................…………………………………………………………………………
……................................…………………………………………………………………………
3. Về chương trình ứng dụng:
……................................…………………………………………………………………………
……................................…………………………………………………………………………
……................................…………………………………………………………………………
4. Về thái độ làm việc của sinh viên:
……................................…………………………………………………………………………
……................................…………………………………………………………………………
……................................…………………………………………………………………………
Đánh giá chung:
Điểm từng sinh viên:
Nguyễn Anh Tấn:………../10
Lộc Đức Thắng:………../10
Người nhận xét
(Ký tên và ghi rõ họ tên)
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC
Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày…..tháng…..năm……..
NHẬN XÉT KHĨA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ PHẢN BIỆN)
Tên khóa luận:
NHẬN DẠNG THỂ LOẠI ÂM NHẠC ĐỂ XÂY DỰNG CHỨC NĂNG KHUYẾN NGHỊ
TRONG ỨNG DỤNG NGHE NHẠC
Music genre recognition for recommendation in music application
Nhóm SV thực hiện:
Cán bộ phản biện:
Nguyễn Anh Tấn
17521013
Lộc Đức Thắng
17521039
Đánh giá Khóa luận
1. Về cuốn báo cáo:
Số trang
Số bảng số liệu
Số tài liệu tham khảo
_______
_______
_______
Số chương
Số hình vẽ
Sản phẩm
________
________
________
Một số nhận xét về hình thức cuốn báo cáo:
……................................…………………………………………………………………………
……................................…………………………………………………………………………
……................................…………………………………………………………………………
2. Về nội dung nghiên cứu:
……................................…………………………………………………………………………
……................................…………………………………………………………………………
……................................…………………………………………………………………………
3. Về chương trình ứng dụng:
……................................…………………………………………………………………………
……................................…………………………………………………………………………
……................................…………………………………………………………………………
4. Về thái độ làm việc của sinh viên:
……................................…………………………………………………………………………
……................................…………………………………………………………………………
……................................…………………………………………………………………………
Đánh giá chung:
Điểm từng sinh viên:
Nguyễn Anh Tấn:………../10
Lộc Đức Thắng:………../10
Người nhận xét
(Ký tên và ghi rõ họ tên)
LỜI CẢM ƠN
Sau khoảng thời gian học tập và rèn luyện tại 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 đã được thầy cô và nhà
trường trang bị rất nhiều kiến thức, kỹ năng hữu ích. Đó chính là tiền đề để chúng em
có thể hồn thành Khóa luận tốt nghiệp của mình.
Lời đầu tiên, chúng em xin gửi lời cảm ơn chân thành đến với Ban Giám hiệu nhà
trường cùng quý thầy cô đã dạy dỗ, hỗ trợ, đồng hành cùng chúng em suốt chặng
đường đại học. Những lời giảng của quý thầy cô đã giúp cho chúng em ngày càng mở
mang tri thức, tiếp cận với nền công nghệ thời 4.0 và vươn tầm hội nhập với quốc tế.
Chúng em xin gửi lời cảm ơn chân thành và sâu sắc nhất đến thầy Mai Trọng Khang
đã giúp đỡ, định hướng rất nhiều cho chúng em từ lúc bắt đầu thực hiện đến khi nhóm
hồn thành được đề tài. Những đóng góp của thầy góp phần to lớn khơng chỉ với
phạm vi một đồ án tốt nghiệp mà đó cịn là một hành trang quý báu để chúng em có
thể mang đi trong suốt quãng đường tương lai phía trước.
Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, q thầy cơ trong khoa, cơ
Huỳnh Hồ Thị Mộng Trinh cố vấn học tập và bạn bè, tập thể lớp KTPM2017 đã luôn
sẵn sàng giúp đỡ, giải đáp những thắc mắc, cùng nhau chia sẻ kiến thức học tập cũng
như rèn luyện bản thân. Mong rằng chúng ta sẽ ln là một tập thể gắn bó, đồn kết
với nhau mãi mãi.
Trong q trình làm khóa luận này chúng em khơng tránh khỏi được những sai sót,
chúng em kính mong nhận được sự chỉ dẫn và góp ý của quý thầy cơ để khóa luận
được hồn thiện hơn.
Chúng em xin chân thành cảm ơn và xin chúc mọi người luôn luôn gặp những điều
tốt đẹp nhất.
Trân trọng.
MỤC LỤC
Chương 1. GIỚI THIỆU CHUNG
2
1.1. Lý do chọn đề tài
2
1.2. Đối tượng nghiên cứu
2
1.3. Phạm vi nghiên cứu
3
1.4. Phương pháp nghiên cứu
3
Chương 2. KIẾN THỨC NỀN TẢNG
5
2.1. Tổng quan về ASP.Net core
5
2.1.1.
Giới thiệu ASP.Net core
5
2.1.2.
Ưu điểm của ASP.Net core
6
2.1.3.
Xây dựng Web UI và Web API sử dụng ASP.Net core
6
2.2. Tổng quan về Angular
7
2.2.1.
Giới thiệu Angular
7
2.2.2.
Các đặc trưng cơ bản của Angular
7
2.2.3.
Ưu điểm nổi bật của Angular
7
2.2.4.
Các tính năng cơ bản của Angular
8
2.3. Tổng quan về Xamarin Form và MVVM
9
2.3.1.
Giới thiệu Xamarin Form
9
2.3.2.
Lý do chọn Xamarin Form để phát triển ứng dụng mobile
9
2.3.3.
Mơ hình MVVM
2.4. Tổng quan về Flask
11
12
2.4.1.
Giới thiệu Flask
12
2.4.2.
Tại sao nên sử dụng Flask
12
2.5. Tổng quan về Keras
13
2.6. Tổng quan về PostgreSQL
14
2.6.1.
Giới thiệu PostgreSQL
14
2.6.2.
Ưu điểm nổi bật của PostgreSQL
14
2.7. Tổng quan về Redis
15
2.7.1.
Giới thiệu Redis
15
2.7.2.
Các kiểu dữ liệu trong Redis
15
2.7.3.
Lý do nên sử dụng Redis
16
2.8. Tổng quan về Elasticsearch và Kibana
16
2.8.1.
Giới thiệu Elasticsearch
16
2.8.2.
Giới thiệu Kibana
18
2.9. Tổng quan về Docker
20
2.9.1.
Docker là gì
20
2.9.2.
Các khái niệm trong docker
20
2.9.3.
Quy trình thực thi của một hệ thống sử dụng Docker
21
Chương 3. PHÂN TÍCH HỆ THỐNG
23
3.1. Xây dựng kiến trúc hệ thống
23
3.2. Phân tích thiết kế hệ thống
25
3.2.1.
Sơ đồ use case
25
3.2.1.1. Đặc tả use case Đăng nhập
26
3.2.1.2. Đặc tả use case Tìm kiếm
27
3.2.1.3. Đặc tả use case Tạo bài hát
28
3.2.1.4. Đặc tả use case Nghe nhạc
29
3.2.1.5. Đặc tả use case Xem lyric
30
3.2.1.6. Đặc tả use case Bình luận
31
3.2.1.7. Đặc tả use case Like bài hát
32
3.2.1.8. Đặc tả use case Download
33
3.2.1.9. Đặc tả use case Điều khiển bài hát
34
3.2.1.10. Đặc tả use case Nâng cấp tài khoản
35
3.2.1.11. Đặc tả use case Thống kê cá nhân
36
3.2.1.12. Đặc tả use case Quản lý playlist
37
3.2.1.13. Đặc tả use case Quản lý thông tin cá nhân
38
3.2.1.14. Đặc tả use case Quản lý bài hát
39
3.2.1.15. Đặc tả use case Quản lý thể loại
40
3.2.1.16. Đặc tả use case Quản lý người dùng
41
3.2.1.17. Đặc tả use case Gợi ý âm nhạc
42
3.2.1.18. Đặc tả use case Thử nghiệm mơ hình máy học
43
3.2.2.
Sơ đồ lớp
45
3.2.3.
Phân tích thiết kế CSDL
46
3.2.3.1. Mô tả bảng Users
47
3.2.3.2. Mô tả bảng Songs
48
3.2.3.3. Mô tả bảng Playlists
49
3.2.3.4. Mô tả bảng Types
50
3.2.3.5. Mô tả bảng Tags
50
3.2.3.6. Mô tả bảng Items
51
3.2.3.7. Mô tả bảng Orders
52
3.2.3.8. Mô tả bảng InfoVipUsers
53
3.2.3.9. Mô tả bảng Histories
53
3.2.3.10. Mô tả bảng Roles
54
3.2.3.11. Mô tả bảng Followers
54
3.2.3.12. Mô tả bảng AppConfigs
54
3.2.3.13. Mô tả bảng UserRoles
55
3.2.3.14. Mô tả bảng UserTokens
55
3.2.3.15. Mô tả bảng User_Feedback
55
3.2.3.16. Mô tả bảng User_Like_Song
56
3.2.3.17. Mô tả bảng User_Cmt_Song
56
3.2.3.18. Mô tả bảng User_Like_Playlist
56
3.2.3.19. Mô tả bảng User_Cmt_Playlist
57
3.2.3.20. Mô tả bảng Song_Playlists
57
3.2.3.21. Mô tả bảng Song_Types
57
3.2.3.22. Mô tả bảng Song_Tags
58
3.2.3.23. Mô tả bảng Song_Singers
58
3.2.3.24. Mô tả bảng Song_Composers
58
3.2.3.25. Mô tả bảng Song_Owners
59
3.3. Thiết kế giao diện
3.3.1.
Giao diện mobile
60
60
3.3.1.1. Trang chủ
60
3.3.1.2. Danh sách cho bạn
61
3.3.1.3. Danh sách phát
62
3.3.1.4. Danh sách thể loại
63
3.3.1.5. Chi tiết bài hát
64
3.3.1.6. Tìm kiếm
65
3.3.1.7. Phát nhạc
66
3.3.1.8. Trang cá nhân
67
3.3.1.9. Danh sách Playlist
68
3.3.1.10. Danh sách bài hát
69
3.3.1.11. Tải lên bài hát
70
3.3.1.12. Đăng nhập
71
3.3.1.13. Đăng ký
72
3.3.2.
Giao diện Admin
73
3.3.2.1. Dashboard
73
3.3.2.2. Trang User
73
3.3.2.3. Trang Thử nghiệm mơ hình
74
3.3.2.4. Trang quản lý bài hát
74
3.3.2.5. Trang tạo bài hát
75
3.3.2.6. Trang danh sách Playlist
75
3.3.2.7. Trang tạo Playlist
76
3.3.2.8. Trang quản lý thể loại nhạc
76
3.3.2.9. Trang quản lý người dùng
77
3.3.3.
Giao diện user
78
3.3.3.1. Trang xem thông tin cá nhân
78
3.3.3.2. Trang User Dashboard
78
3.3.3.3. Trang quản lý bài hát
79
3.3.3.4. Trang tạo bài hát
79
3.3.3.5. Trang nâng cấp VIP
80
3.3.3.6. Trang thanh tốn
80
3.3.3.7. Trang hóa đơn
81
Chương 4. MÔ TẢ CHỨC NĂNG PHÂN LOẠI BÀI HÁT
82
4.1. Mở đầu
82
4.2. Tổng quan bài toán phân loại âm nhạc
83
4.3. Quá trình thu thập dữ liệu
84
4.3.1.
Capture request để xác định API
85
4.3.2.
Tạo Signature cho API
86
4.3.3.
Vét cạn các thông tin từ id bài hát
87
4.3.4.
Tải nhạc các bài hát và lưu lại Google Drive
88
4.4. Tiền xử lí dữ liệu và trích xuất đặc trưng
89
4.4.1.
Lí thuyết cơ bản về âm thanh
89
4.4.2.
Biến đổi Fourier
91
4.4.3.
Rút trích đặc trưng về dạng MFCC:
92
4.4.4.
Thực hiện
97
4.5. Xây dựng mơ hình máy học
98
4.5.1.
Tổng quan về CNN
98
4.5.1.1. Giới thiệu về CNN(Convolutional Neural Network)
98
4.5.1.2. Một số khái niệm trong CNN
99
4.6. Huấn luyện mô hình và đánh giá
104
4.6.1.
Chọn mơ hình để huấn luyện
104
4.6.2.
Huấn luyện mơ hình
107
4.6.3.
Kết quả và đánh giá
108
4.7. Tích hợp vào hệ thống backend
113
4.8. Kết luận
114
Chương 5. MÔ TẢ CHỨC NĂNG GỢI Ý BÀI HÁT
115
5.1. Tổng quan bài toán gợi ý âm nhạc
115
5.2. Phương pháp thực hiện
116
5.2.1.
Khuyến nghị bài hát theo thể loại yêu thích
116
5.2.2.
Khuyến nghị bài hát mới cho người dùng
118
Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
120
6.1. Kết quả đạt được
120
6.2. Ưu điểm
121
6.3. Nhược điểm
121
6.4. Hướng phát triển
121
DANH MỤC HÌNH
Hình 2.1: .Net core và .Net framework
5
Hình 2.2: Mơ hình MVVM pattern
11
Hình 2.3: Cách Flask Framework hoạt động
12
Hình 2.4 Keras backend
14
Hình 2.5: ElasticSearch cluster
18
Hình 2.6: . Biểu đồ trong Kibana
19
Hình 2.7: Kibana Dev Tools
20
Hình 2.8: Kiến trúc Docker
21
Hình 2.9: Quy trình thực thi của hệ thống sử dụng Docker
22
Hình 3.1: Kiến trúc cho hệ thống
23
Hình 3.2 Sơ đồ use case
25
Hình 3.3: Sơ đồ lớp hệ thống
45
Hình 3.4: Sơ đồ CSDL
46
Hình 3.5 Giao diện Trang chủ
60
Hình 3.6 Giao diện danh sách dành cho bạn
61
Hình 3.7 Giao diện danh sách phát
62
Hình 3.8 Giao diện danh sách thể loại nhạc
63
Hình 3.9 Chi tiết bài hát
64
Hình 3.10 Giao diện tìm kiếm
65
Hình 3.11 Giao diện trang phát nhạc
66
Hình 3.12 Giao diện trang cá nhân
67
Hình 3.13 Giao diện danh sách playlists
68
Hình 3.14 Giao diện danh sách bài hát
69
Hình 3.15 Giao diện tải lên bài hát
70
Hình 3.16 Giao diện đăng nhập
71
Hình 3.17 Giao diện đăng ký
72
Hình 3.18: Giao diện Dashboard
73
Hình 3.19: Giao diện User
73
Hình 3.20: Giao diện thử nghiệm mơ hình
74
Hình 3.21: Giao diện trang quản lý bài hát
74
Hình 3.22: Giao diện trang tạo bài bát
75
Hình 3.23: Giao diện quản lý playlist
75
Hình 3.24: Giao diện trang tạo Playlist
76
Hình 3.25: Giao diện trang quản lý thể loại nhạc
76
Hình 3.26: Giao diện quản lý người dùng
77
Hình 3.27: Giao diện xem thơng tin cá nhân
78
Hình 3.28: Giao diện Dashboard cho user
78
Hình 3.29: Giao diện quản lý bài hát cho user
79
Hình 3.30: Giao diện tải lên bài hát cho user
79
Hình 3.31: Giao diện nâng cấp VIP
80
Hình 3.32: Giao diện thanh tốn cho user
80
Hình 3.33: Giao diện hóa đơn cho user
81
Hình 4.1: Các bước xây dựng hệ thống phân loại âm nhạc
84
Hình 4.2: Minh họa việc xác định API
86
Hình 4.3: Kết quả các bài hát nhóm đã thu thập được
89
Hình 4.4: Minh họa tín hiệu âm thanh
90
Hình 4.5: Minh họa cách biểu diễn âm thanh
91
Hình 4.6: Cơng thức biến đổi Fourier cho hàm liên tục
91
Hình 4.7: Cơng thức biến đổi Fourier cho hàm rời rạc
91
Hình 4.8: Minh họa độ liên quan giữa N và độ chính xác
92
Hình 4.9: Kích tín hiệu tần số
93
Hình 4.10: Trượt window
93
Hình 4.11: FFT
94
Hình 4.12: Mel filterbank
95
Hình 4.13: Cơng thức tính Energy
96
Hình 4.14: Cơng thức tính delta
96
Hình 4.15: Mơ hình CNN
98
Hình 4.16: Lớp tích chập
99
Hình 4.17: Bước nhảy
101
Hình 4.18: Padding
101
Hình 4.19: ReLU layer
102
Hình 4.20: Pooling layer
102
Hình 4.21: Fully connected layer
103
Hình 4.22: Mơ hình CNN nhóm đã thử nghiệm
104
Hình 4.23: Mơ hình ResNet18 nhóm đã thử nghiệm
105
Hình 4.24: Mơ hình ResNet50 nhóm đã thử nghiệm
105
Hình 4.25: Minh họa vấn đề vanishing gradient
106
Hình 4.26: Một residual block
107
Hình 4.27: Phân loại nhị phân
109
Hình 4.28: Confusion matrix Resnet18
111
Hình 4.29: Confusion matrix Resnet50
112
Hình 4.30: Tích hợp mơ hình vào hệ thống backend
113
DANH MỤC BẢNG
Bảng 3.1: Đặc tả use case đăng nhập
26
Bảng 3.2: Đặc tả use case Tìm kiếm
27
Bảng 3.3: Đặc tả use case Tạo bài hát
28
Bảng 3.4: Đặc tả use case Nghe nhạc
29
Bảng 3.5: Đặc tả use case Xem lyric
30
Bảng 3.6: Đặc tả use case Bình luận
31
Bảng 3.7: Đặc tả use case Like bài hát
32
Bảng 3.8: Đặc tả use case Download
33
Bảng 3.9: Đặc tả use case điều khiển bài hát
34
Bảng 3.10: Đặc tả use case nâng cấp tài khoản
35
Bảng 3.11: Đặc tả use case Thống kê cá nhân
36
Bảng 3.12: Đặc tả use case Quản lý playlist
38
Bảng 3.13: Đặc tả use case Quản lý thông tin cá nhân
39
Bảng 3.14: Đặc tả use case Quản lý bài hát
40
Bảng 3.15: Đặc tả use case Quản lý thể loại
41
Bảng 3.16: Đặc tả use case Quản lý người dùng
42
Bảng 3.17: Đặc tả use case Gợi ý âm nhạc
43
Bảng 3.18: Đặc tả use case Thử nghiệm mô hình máy học
44
Bảng 3.19: Mơ tả bảng Users
47
Bảng 3.20: Mơ tả bảng Songs
49
Bảng 3.21: Mô tả bảng Playlists
49
Bảng 3.22: Mô tả bảng Types
50
Bảng 3.23: Mô tả bảng Tags
50
Bảng 3.24: Mô tả bảng Items
51
Bảng 3.25: Mô tả bảng Orders
52
Bảng 3.26: Mô tả bảng InfoVipUsers
53
Bảng 3.27: Mô tả bảng Histories
53
Bảng 3.28: Mô tả bảng Roles
54
Bảng 3.29: Mô tả bảng Followers
54
Bảng 3.30: Mô tả bảng AppConfigs
54
Bảng 3.31: Mô tả bảng UserRoles
55
Bảng 3.32: Mô tả bảng UserTokens
55
Bảng 3.33: Mô tả bảng User_Feedback
55
Bảng 3.34: Mô tả bảng User_Like_Song
56
Bảng 3.35: Mô tả bảng User_Cmt_Song
56
Bảng 3.36: Mô tả bảng User_Like_Playlist
56
Bảng 3.37: Mô tả bảng User_Cmt_Playlist
57
Bảng 3.38: Mô tả bảng Song_Playlists
57
Bảng 3.39: Mô tả bảng Song_Types
57
Bảng 3.40: Mô tả bảng Song_Tags
58
Bảng 3.41: Mô tả bảng Song_Singers
58
Bảng 3.42: Mô tả bảng Song_Composers
58
Bảng 3.43: Mô tả bảng Song_Owners
59
Bảng 4.1: Kết quả huấn luyện mơ hình
108
DANH MỤC TỪ VIẾT TẮT
STT
1
Từ viết tắt
Tên đầy đủ
Diễn giải
Application
Giao diện lập trình ứng dụng.
Programming
Sử dụng để truy cập 1 số
phương thức của hệ thống, từ
API
Interface
đó có thể trao đổi dữ liệu từ các
ứng dụng
2
CNN
3
DFT
4
FFT
5
MFCC
Convolutional Neural
Mạng nơ ron tích chập
Network
Discrete Fourier
Phép biến đổi fourier rời rạc
Transform
Fast Fourier Transform
Phép biến đổi fourier nhanh
Mel Frequency Celpse
Các hệ số giúp mã hố sóng âm
Coefficients
dựa trên phương trình biến đổi
chuỗi Fourier Transformer
TĨM TẮT KHĨA LUẬN
Trong khóa luận này, chúng em tập trung nghiên cứu các mơ hình phân loại âm nhạc,
từ đó áp dụng vào hệ thống gợi ý cho ứng dụng nghe nhạc. Trong q trình xây dựng
hệ thống, nhóm được tìm hiểu và sử dụng các cơng nghệ như ASP.Net core, Angular,
Xamarin Form, Flask, Keras, Docker, các hệ quản trị CSDL như PostgreSQL, Redis,
ElasticSearch và Kibana. Hệ thống âm nhạc này có thể giải quyết được yêu cầu gợi
ý các bài hát phù hợp đến với người dùng, đặc biệt là những bài hát mới chưa có lượt
tương tác dựa nền tảng cơ sở là hệ thống nhận dạng và phân loại bài hát.
Bố cục của khóa luận:
Chương 1: Giới thiệu về đề tài, đưa ra các vấn đề gặp phải và hướng giải quyết cho
những vấn đề này.
Chương 2: Trình bày các kiến thức, cơng nghệ nền tảng để xây dựng nên hệ thống.
Chương 3: Trình bày quá trình phân tích, thiết kế, xây dựng hệ thống và giao diện.
Chương 4: Trình bày về hệ thống phân loại bài hát, các bước thực hiện và kết quả
đạt được
Chương 5: Trình bày về cách thức hoạt động của hệ thống gợi ý bài hát.
Chương 6: Trình bày kết quả đạt được, ưu nhược điểm của hệ thống và hướng phát
triển trong tương lai.
1
Chương 1. GIỚI THIỆU CHUNG
1.1.
Lý do chọn đề tài
Hiện nay, dưới sự phát triển của xã hội, nhu cầu giải trí của con người ngày càng tăng
mạnh. Theo báo cáo Việt Nam DIGITAL 2020 do We Are Social và Hootsuite thống
kê, tính đến tháng 1 năm 2020, Việt Nam có 68.17 triệu người dùng internet, và mỗi
người dành khoảng 1 giờ 1 phút mỗi ngày để nghe nhạc.
Dưới nhu cầu giải trí khổng lồ ấy, thị trường âm nhạc Việt ngày càng phát triển, liên
tục ra mắt nhiều bài hát với nhiều thể loại khác nhau đến với người dùng. Và từ đây
phát sinh ra các vấn đề như: Làm thế nào để gợi ý sản phẩm âm nhạc phù hợp với sở
thích của từng người dùng? Làm thế nào để một sản phẩm âm nhạc vừa mới ra mắt,
chưa có lượt nghe nào có thể tiếp cận đến với đúng đối tượng có sở thích âm nhạc
phù hợp?
May mắn thay, trong thời kỳ cách mạng công nghiệp 4.0, sự phát triển bùng nổ của
các công nghệ nổi bật đặc biệt là Machine learning giúp cho việc giải quyết bài toán
gợi ý các sản phẩm âm nhạc đến đúng người, đúng thời điểm ngày càng khả thi, mang
lại nhiều lợi ích cho người dùng và nhà sản xuất. Đó chính là lý do nhóm em chọn đề
tài “Nhận dạng thể loại âm nhạc để xây dựng chức năng khuyến nghị trong ứng dụng
nghe nhạc”.
1.2.
Đối tượng nghiên cứu
Hệ thống machine learning giúp phân loại, gán nhãn cho bài hát.
Hệ thống giúp gợi ý bài hát phù hợp với sở thích người dùng.
Các công nghệ:
-
Mobile: Xamarin Form
-
Backend: .Net core, Flask
-
Frontend: Angular
-
Database: PostgreSQL, Redis, Elasticsearch
2
-
Machine learning: Keras
-
Công nghệ khác: Docker, Kibana
Đối tượng trong phạm vi đề tài hướng đến:
-
Người dùng nghe nhạc.
-
Cá nhân, tổ chức phát hành bài hát.
-
Các công ty trong lĩnh vực nghe nhạc trực tuyến.
1.3.
Phạm vi nghiên cứu
Phạm vi địa lý: Trong lãnh thổ Việt Nam
Phạm vi người sử dụng: Người Việt Nam
Phạm vi nội dung bài hát: Nhạc Việt và Âu Mỹ
Phạm vi công nghệ:
-
Backend API (Quản lý): .Net core
-
Backend API (Nhận dạng, gợi ý): Flask
-
Frontend (Trang quản trị): Angular
-
Mobile (Android): Xamarin Form
-
Cơ sở dữ liệu: PostgreSQL, Redis, Elasticsearch
Triển khai, đánh giá độ chính xác mơ hình nhận dạng âm nhạc dựa trên dữ liệu thử
nghiệm, áp dụng hệ thống gợi ý vào sản phẩm BBBMusic để gợi ý âm nhạc cho người
dùng.
1.4.
Phương pháp nghiên cứu
Nhóm đã sử dụng các phương pháp nghiên cứu:
-
Phương pháp đọc tài liệu.
-
Phương pháp phân tích các app nghe nhạc hiện có.
-
Phương pháp thực nghiệm.
3
Để giải quyết bài toán phân loại và gợi ý âm nhạc, nhóm đã thu thập data về các bài
hát và gắn thẻ thể loại. Sử dụng các mơ hình máy học khác nhau để training và chọn
mơ hình tốt nhất cho hệ thống gợi ý.
4