Tải bản đầy đủ (.pdf) (145 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.02 MB, 145 trang )

ĐẠ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


×