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

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)

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 (4.76 MB, 114 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

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 ………………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin.


LỜI CẢM ƠN
Sau quá trình 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ị cho rất nhiều kiến thức và kỹ năng hữu ích. Đó chính là tiền đề để chúng em thực
hiện Khóa Luận Tốt Nghiệp của mình.
Để 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 vì đã tạo điều
kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các 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ư duy và cách làm việc khoa học. Đó là những góp ý hết sức q báu
khơng chỉ trong q trình thực hiện đề tài này mà còn là hành trang tiếp bước cho chúng

em trong quá trình học tập và lập nghiệp sau này.
Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cơ trong khoa, bạn
bè, tập thể lớp KTPM2018 là những người luôn sẵn sàng sẻ chia và giúp đỡ trong học
tập và cuộc sống. Mong rằng, chúng ta sẽ mãi mãi gắn bó với nhau.
Trong q trình làm đề này 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 q thầy cơ để đề tài được hồn thiện
hơn.
Chúng em xin chân thành cảm ơn. Xin chúc những điều tốt đẹp nhất sẽ luôn đồng hành
cùng mọi 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 1.

GIỚI THIỆU CHUNG ........................................................................ 1

1.1.

Thực trạng nhu cầu nghe nhạc hiện nay ........................................................ 1

1.2.

Lý do chọn đề tài ........................................................................................... 1


1.3.

Đối tượng nghiên cứu .................................................................................... 1

1.4.

Phạm vi nghiên cứu ....................................................................................... 2

1.5.

Phương pháp nghiên cứu ............................................................................... 2

Chương 2.
2.1.

KIẾN THỨC NỀN TẢNG ................................................................. 3

Tổng quan về mơ hình MVC ......................................................................... 3

2.1.1.

Khái niệm ................................................................................................ 3

2.1.2.

Cấu trúc mơ hình MVC .......................................................................... 3

2.1.3.

Mơ hình MVC trong ứng dụng Web ...................................................... 4


2.2.

Tổng quan về .NET ....................................................................................... 5

2.2.1.

Giới thiệu ................................................................................................ 5

2.2.2.

Tạo sao chọn .NET core để phát triển server.......................................... 6

2.3.

Angular .......................................................................................................... 7

2.3.1.

Giới thiệu ................................................................................................ 7

2.3.2.

Ưu điểm của Angular .............................................................................. 7

2.4.

Hệ quản trị cơ sở dữ liệu MongoDB ............................................................. 8

2.4.1.


Giới thiệu ................................................................................................ 8

2.4.2.

Ưu điểm của MongoDB .......................................................................... 9

2.5.

Flask ............................................................................................................... 9

2.5.1.

Giới thiệu về Flask .................................................................................. 9

2.5.2.

Tại sao sử dụng Flask ............................................................................. 9

2.6.

Keras .............................................................................................................. 9


2.6.1.

Giới thiệu về Keras ................................................................................. 9

2.6.2.


Tại sao sử dụng Keras ........................................................................... 10

Chương 3.
3.1.

PHÂN TÍCH ..................................................................................... 11

Tìm hiểu cơng nghệ ..................................................................................... 11

3.1.1.

Tổng quan về quá trình ......................................................................... 11

3.1.2.

Xử lý thu âm ......................................................................................... 11

3.1.3.

Time-Domain và 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.
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 năng Songs For You .................................................... 40


4.1.3.

Giao diện chức năng Genre Songs ........................................................ 41

4.2.

Giao diện Player .......................................................................................... 42

4.2.1.

Chức năng Lyric ................................................................................... 42

4.2.2.

Chức năng Karaoke .............................................................................. 43

4.3.

Giao diện trang admin ................................................................................. 44

4.3.1.
4.4.

Trang admin .......................................................................................... 44

Giao diện chức năng quản lý bài hát ........................................................... 45

4.4.1.

Danh sách bài hát .................................................................................. 45



4.4.2.

Thêm bài hát ......................................................................................... 46

4.4.3.

Chức năng Sửa Thông Tin Bài Hát ...................................................... 47

4.4.4.

Chức năng Chi tiết bài hát .................................................................... 48

4.5.

Giao diện chức năng Quản Lý Nghệ Sĩ ....................................................... 49

4.5.1.

Chức năng Danh sách Nghệ Sĩ ............................................................. 49

4.5.2.

Chức năng Chi Tiết Nghệ Sĩ ................................................................. 50

4.5.3.

Chức năng Thêm Nghệ Sĩ ..................................................................... 51


4.5.4.

Chức năng Sửa Thông Tin Nghệ Sĩ ...................................................... 52

4.6.

Chức năng đề xuất nhạc............................................................................... 53

4.6.1.

Chức năng Đề Xuất Nhạc Theo Bài Hát Hiện Tại ............................... 53

4.6.2.

Chức năng Đề Xuất Nhạc Cho Người Dùng ........................................ 54

4.6.3.

Chức năng Đề Xuất Nhạc Theo Thể Loại Yêu Thích Của Người Dùng
55

4.7.

Chức năng 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 năng Playlist ....................................................................................... 61

Chương 5.
5.1.

HIỆN THỰC HÓA CHỨC NĂNG NHẬN DIỆN ........................... 62

Quá trình thu thập dữ liệu ............................................................................ 62

5.1.1.

Xác định các API cần thiết: .................................................................. 63

5.1.2.

Cách tạo Signature cho request: ........................................................... 64

5.1.3.

Gọi API để crawl dữ liệu: ..................................................................... 65


5.2.

Kết quả thu được.......................................................................................... 66

5.3.

Xử lý lưu trữ và chuyển đổi âm thanh ......................................................... 67

5.3.1.

Tính chất của thanh âm ......................................................................... 67


5.3.2.
5.4.

Chuyển đổi và tìm kiếm bài hát ............................................................ 68

Hiện thực hóa cơng nghệ ............................................................................. 71

5.4.1.

Chuyển đổi và lưu trữ âm thanh ........................................................... 71

5.4.2.

Tìm kiếm bài hát ................................................................................... 73

5.4.3.


Kiểm thử độ chính xác .......................................................................... 73

Chương 6.

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 dữ liệu .................................................................................... 79

6.2.2.

Lọc dữ 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 bài hát dựa trên bài hát đang nghe của người dùng ................ 91

6.6.2.


Đề xuất dựa trên bài hát người dùng nghe nhiều .................................. 92

6.6.3.

Đề xuất dựa trên thể loại người dùng nghe nhiều................................. 93

Chương 7.

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 quả đạt được .......................................................................................... 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 ............................................................................................ 3
Hình 2.1.2 Mơ hình MVC trong ứng dụng Web ........................................................ 4
Hình 2.2.1 Net core và .Net framework ...................................................................... 5
Hình 2.3.1 Angular ....................................................................................................... 7
Hình 2.4.1 So sánh mức độ phổ biến của MongoDB ................................................. 8
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 và Digital Signal ....................................................................... 12
Hình 3.2.3.2.1 Kiến trúc hệ thống của 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ủ của 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 năng Genre Songs.......................................................... 41
Hình 4.2.1 Giao diện chức năng Lyric ...................................................................... 42
Hình 4.2.2 Giao diện chức năng Karaoke ................................................................ 43
Hình 4.3.1 Giao diện trang Admin ............................................................................ 44
Hình 4.4.1 Giao diện chức năng danh sách bài hát ................................................. 45
Hình 4.4.2 Giao diện chức năng Thêm Bài Hát ....................................................... 46
Hình 4.4.3 Giao diện chức năng Sửa Thông Tin Bài Hát ....................................... 47

Hình 4.4.4 Giao diện chức năng Chi Tiết Bài Hát ................................................... 48
Hình 4.5.1 Giao diện chức năng Danh sách Nghệ Sĩ ............................................... 49
Hình 4.5.2 Giao diện chức năng Chi Tiết Nghệ Sĩ ................................................... 50
Hình 4.5.3 Giao diện chức năng Thêm Nghệ Sĩ ....................................................... 51
Hình 4.5.4 Giao diện chức năng Sửa Thông Tin Nghệ Sĩ ....................................... 52
Hình 4.6.1 Giao diện chức năng Đề Xuất Theo Bài Hát Hiện Tại ......................... 53
Hình 4.6.2 Giao diện chức năng Đề Xuất Nhạc Cho Người Dùng ......................... 54
Hình 4.6.3 Giao diện chức năng Đề Xuất Nhạc Theo Thể Loại Yêu Thích .......... 55
Hình 4.7.1 Giao diện chức năng nhận diện .............................................................. 56


Hình 4.7.2 Giao diện chức năng Ghi Âm Bài Hát ................................................... 57
Hình 4.7.3 Giao diện chức năng Dừng Ghi Âm ....................................................... 58
Hình 4.7.4 Giao diện chức năng Preview bản Record............................................. 59
Hình 4.7.5 Giao diện trang Kết Quả ......................................................................... 60
Hình 4.8.1 Giao diện trang Playlist ........................................................................... 61
Hình 5.1.1 Tool để xác định API ............................................................................... 63
Hình 5.1.2 Minh họa bước để xác định API ............................................................. 64
Hình 5.1.3 Minh họa bước để crawl dữ liệu ............................................................. 65
Hình 5.2.1 Thống kê dữ liệu thu được ...................................................................... 66
Hình 5.2.2 Data thu được trên Google Drive ........................................................... 66
Hình 5.3.1 Minh họa tính chất của âm thanh .......................................................... 67
Hình 5.3.2 Spectrogram ............................................................................................. 68
Hình 5.3.3 Constellation Map .................................................................................... 69
Hình 5.3.4 Combinatorial Hash Generation ............................................................ 69
Hình 5.3.5 Time-Invariant Hashes ............................................................................ 70
Hình 5.3.6 Part of Time-Invariant Hashes ............................................................... 70
Hình 5.3.7 Minh hoạ cách tìm kiếm .......................................................................... 71
Hình 5.4.1 Quá trình chuyển đổi file Audio ............................................................. 72
Hình 5.4.2 Quá trình tìm kiếm 1 file nhạc ................................................................ 73

Hình 5.4.3 Kết quả kiểm thử bằng file ...................................................................... 74
Hình 5.4.4 Kết quả kiểm thử bằng thu âm ............................................................... 76
Hình 6.1.1 Các bước xây dựng hệ thống đề xuất dựa trên CNN ........................... 78
Hình 6.2.1 Thống kê các file wav ở các thể loại ....................................................... 80
Hình 6.2.2 Thống kê các file wav ở các thể loại sau khi lọc .................................... 81
Hình 6.2.3 Thống kê các file wav ở các thể loại sau khi lọc .................................... 82
Hình 6.2.4 Sử dụng thư viện Librosa để trích xuất đặc trưng của Audio ............. 83
Hình 6.2.5 Cấu trúc chung của Resnet50 ................................................................. 84
Hình 6.2.6 Cấu trúc từng layer của Resnet50 .......................................................... 84
Hình 6.2.7 Cấu trúc của Identity Block .................................................................... 85
Hình 6.2.8 Cấu trúc của Identity Block .................................................................... 85
Hình 6.4.1 Các định nghĩa trong đánh giá ............................................................... 87


Hình 6.4.2 Confusion Matrix của mô hình Resnet50 .............................................. 89
Hình 6.5.1 Minh họa Cosine Distance/Similarity .................................................... 90
Hình 6.6.1 Minh hoạ quá trình đề xuất bài hát tương ứng với bài hát hiện tại ... 91
Hình 6.6.2 Minh họa quá trình đề xuất bài hát tương ứng với bài hát hiện tại ... 92
Hình 6.6.3 Minh họa quá trình đề xuất thể loại tương ứng với lịch sử nghe nhạc
của người dùng.................................................................................................... 93


DANH MỤC BẢNG
Bảng 3.2.1 Đặc tả Usecase Đăng ký........................................................................... 17
Bảng 3.2.2 Đặc tả Usecase Đăng nhập ...................................................................... 18
Bảng 3.2.3 Đặc tả Usecase Đăng Xuất ...................................................................... 18
Bảng 3.2.4 Đặc tả Usecase Bảng xếp hạng................................................................ 19
Bảng 3.2.5 Đặc tả Usecase Nghe nhạc ....................................................................... 20
Bảng 3.2.6 Đặc tả Usecase Xem Lyrics ..................................................................... 20
Bảng 3.2.7 Đặc tả Usecase Karaoke .......................................................................... 21

Bảng 3.2.8 Đặc tả Usecase Tương tác với bài nhạc ................................................. 22
Bảng 3.2.9 Đặc tả Usecase Playlist cá nhân .............................................................. 22
Bảng 3.2.10 Đặc tả Usecase Gợi ý âm nhạc .............................................................. 23
Bảng 3.2.11 Đặc tả Usecase Tìm kiếm bài hát ......................................................... 24
Bảng 3.2.12 Đặc tả Usecase Nhận diện nhạc qua giai điệu ..................................... 24
Bảng 3.2.13 Đặc tả Usecase Quản lý Profile ............................................................. 25
Bảng 3.2.14 Đặc tả Usecase Thêm bài hát ................................................................ 26
Bảng 3.2.15 Đặc tả Usecase Sửa bài hát ................................................................... 26
Bảng 3.2.16 Đặc tả Usecase Xóa bài hát ................................................................... 27
Bảng 3.2.17 Đặc tả Usecase Thêm nghệ sĩ ................................................................ 28
Bảng 3.2.18 Đặc tả Usecase Sửa nghệ sĩ ................................................................... 28
Bảng 3.2.19 Đặc tả Usecase Xóa nghệ sĩ ................................................................... 29
Bảng 3.2.20 Đặc tả Usecase Thêm người dùng ........................................................ 30
Bảng 3.2.21 Đặc tả Usecase Sửa người dùng............................................................ 30
Bảng 3.2.22 Đặc tả Usecase Xóa người dùng ........................................................... 31
Bảng 3.3.1 Danh sách lớp hệ thống nhận diện ......................................................... 32
Bảng 3.3.2 Danh sách thuộc tính của Song .............................................................. 32
Bảng 3.3.3 Danh sách phương thức của Song .......................................................... 32
Bảng 3.3.4 Danh sách thuộc tính của Fingerprint ................................................... 33
Bảng 3.3.5 Danh sách phương thức của Fingerprint .............................................. 33
Bảng 3.3.6 Danh sách thuộc tính của TimeFrequency ............................................ 33
Bảng 3.3.7 Danh sách phương thức của TimeFrequency ....................................... 33
Bảng 3.3.8 Danh sách lớp Music Server ................................................................... 35


Bảng 3.3.9 Danh sách thuộc tính của Song .............................................................. 35
Bảng 3.3.10 Danh sách phương thức của Song ........................................................ 36
Bảng 3.3.11 Danh sách thuộc tính của Artist ........................................................... 36
Bảng 3.3.12 Danh sách phương thức của Artist ...................................................... 36
Bảng 3.3.13 Danh sách thuộc tính của Genre .......................................................... 37

Bảng 3.3.14 Danh sách phương thức của Genre...................................................... 37
Bảng 3.3.15 Danh sách thuộc tính của Playlist ........................................................ 37
Bảng 3.3.16 Danh sách phương thức của Playlist.................................................... 38
Bảng 3.3.17 Danh sách thuộc tính của User ............................................................. 38
Bảng 3.3.18 Danh sách phương thức của User ........................................................ 38
Bảng 4.1.1 Mô tả thành phần của Songs For You ................................................... 40
Bảng 4.1.2 Mô tả thành phần của Genre Songs ....................................................... 41
Bảng 4.2.1 Mô tả thành phần chức năng Lyric ....................................................... 42
Bảng 4.2.2 Mô tả thành phần chức năng Karaoke .................................................. 43
Bảng 4.3.1 Mô tả thành phần trang Admin ............................................................. 44
Bảng 4.4.1 Mô tả thành phần chức năng Danh sách bài hát .................................. 45
Bảng 4.4.2 Mô tả thành phần chức năng Thêm Bài Hát ........................................ 46
Bảng 4.4.3 Mô tả thành phần chức năng Sửa Thông Tin Bài Hát ......................... 47
Bảng 4.4.4 Mô tả thành phần chức năng Chi Tiết Bài Hát .................................... 48
Bảng 4.5.1 Mô tả thành phần chức năng Danh sách Nghệ Sĩ................................. 49
Bảng 4.5.2 Mô tả thành phần chức năng Chi Tiết Nghệ Sĩ .................................... 50
Bảng 4.5.3 Mô tả thành phần chức năng Thêm Nghệ Sĩ ........................................ 51
Bảng 4.5.4 Mô tả thành phần chức năng Sửa Thông Tin Nghệ Sĩ ......................... 52
Bảng 4.6.1 Mô tả thành phần chức năng Đề Xuất Theo Bài Hát Hiện Tại ........... 54
Bảng 4.6.2 Mô tả thành phần chức năng Đề Xuất Nhạc Cho Người Dùng ........... 54
Bảng 4.6.3 Mô tả thành phần chức năng Đề Xuất Nhạc Theo Thể Loại Yêu Thích
.............................................................................................................................. 55
Bảng 4.7.1 Giao diện chức năng nhận diện .............................................................. 56
Bảng 4.7.2 Mô tả thành phần chức năng Ghi Âm Bài Hát ..................................... 57
Bảng 4.7.3 Mô tả giao diện dừng ghi âm .................................................................. 58
Bảng 4.7.4 Mô tả giao diện Preview bản Record ..................................................... 59


Bảng 4.7.5 Mô tả giao diện trang kết quả................................................................. 60
Bảng 4.8.1 Mô tả giao diện trang Playlist ................................................................. 61



DANH MỤC TỪ VIẾT TẮT
Từ viết tắt

Từ đầy đủ

Giải thích

AI

Artifical Intelligence

Trí tuệ nhân tạo

API

Application Programming

Giao diện lập trình ứng dụng

Interface
CRUD

CSDL

Create, Read, Update And

4 tính năng quan trọng nhất để làm việc với


Delete

Database

Cơ sở dữ liệu

Cơ sở dữ liệu cho ứng dụng
Tất cả các hoạt động khiến một hệ thống phần

Deploy

mềm sẵn sàng cho sử dụng
DFT

Discrete Fourier

Phép biến đổi fourier rời rạc

Transform
FFT

Fast Fourier Transform

Phép biến đổi fourier nhanh
Các đoạn code đã được viết sẵn, cấu thành nên

Framework

một bộ khung và các thư viện lập trình được
đóng gói. Cung cấp các tính năng có sẵn như mơ

hình, API và các yếu tố khác để tối giản cho
việc phát triển các ứng dụng web
HTTP

HyperText Transfer Protocol

Giao thức truyền siêu văn bản

JSON

JavaScript Object Notation

Định dạng trao đổi dữ liệu

MFCC

Mel Frequency Celpse

Các hệ số mã hóa sóng âm dựa trên phương

Cofficients

trình biến đổi chuỗi Fourier Transformer

Model-View-Controller

Mơ hình lập trình

MVC



TÓM TẮT KHÓA LUẬN
Trong đề tài này, chúng em tập trung nghiên cứu các mơ hình nhận diện âm nhạc và các
loại mơ hình phân loại nhạc, từ đó áp dụng vào hệ thống tìm kiếm cho ứng dụng nghe
nhạc và đề xuất nhạc cho người dùng. Trong quá 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, Docker, các hệ quản trị
CSDL như MongoDB và SQL,..
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: Phân tích
Chương 4: Thiết kế giao diện
Chương 5: Hiện thức hóa chức năng nhận diện
Chương 6: Hiện thực hóa chức năng đề xuất nhạc
Chương 7: Kết luận và hướng phát triển
Tài Liệu Tham Khảo


Chương 1.
1.1.

GIỚI THIỆU CHUNG
Thực trạng nhu cầu nghe nhạc hiện nay

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 thống kê ở Việt Nam hằng ngày 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 khổng lồ ấy, thị trường âm nhạc ngày càng phát triển, liên tục ra
mắt nhiều bài hát đến với người dùng. Và từ đây phát sinh ra nhiều vấn đề như: Nếu

một ngày bạn nghe thấy một bản nhạc hay ở nhà hàng hoặc một nơi bất kỳ nào đó
hoặc bạn nhớ một bài hát tuổi thơ nhưng mãi không nhớ nỗi tên bài hát, bạn làm thế
nào để tìm kiếm bài hát đó? Làm thế nào để gợi ý sản phẩm âm nhạc sao cho phù
hợp với sở thích của từng người dùng ?
1.2.

Lý do chọn đề tài

Nhờ vào sự phát triển của công nghệ thông tin hiện nay, sự bùng nổ của Machine
Learning giúp cho việc giải bài toán trên ngày càng khả thi hơn. Nhằm áp dụng
những kiến thức đã được trang bị trong quá trình học tập, tìm hiều các công nghệ
hiện đại về xử lý âm thanh, Deep Learning và hiện thực hóa các cơng nghệ đó, áp
dụng các công nghệ để tạo ra các sản phẩm mang lại lợi ích cho cả người dùng và
nhà phát hành nhạc, chúng em quyết đị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 này hướng đến nghiên cứu các đối tượng sau:
− Các công nghệ:
● Front-end: Angular
● Back-end: .Net Core, Flask
● Database: MongoDB, SQL
● Music Fingerprinting
● Deep Learning
1



− Đố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.4.

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, Âu Mỹ và Hàn Quốc

-

Phạm vi công nghệ:
● Frontend: Angular
● Backend (Recognize): ASP .NET
● Backend (Music Service): ASP .NET
● Backend (Recommender System): Flask

1.5.


Phương pháp nghiên cứu

Nhóm đã sử dụng các phương pháp:
-

Phương pháp đọc tài liệu

-

Phân tích các app tương tự

-

Phương pháp thực nghiệm

2


Chương 2.
2.1.

KIẾN THỨC NỀN TẢNG
Tổng quan về mô hình MVC

2.1.1. Khái niệm
Mơ hình MVC (Model – View – Controller) là một trong những mơ hình kiến
trúc ứng dụng phổ biến nhất. Ban đầu mơ hình này được áp dụng chủ yếu ở các ứng
dụng desktop, nhưng sau này ý tưởng về mơ hình MVC được ứng dụng cho các nền
tảng khác như Web.


Hình 2.1.1 Mơ hình MVC

2.1.2. Cấu trúc mơ hình MVC
-

Tầng xử lý – Controller :
Xử lí logic của ứng dụng, là cầu nối giữa tầng View và Model. Hay nói một cách

cụ thể, Controller sẽ nhận yêu cầu được gửi từ View và thực hiện xử lí yêu cầu, truy
vấn hoặc thao tác dữ liệu lên tầng Model. Sau khi xử lý xong, kết quả sẽ được trả về lại
cho tầng View.
-

Tầng logic dữ liệu – Model:
3


Tầng Model là trung gian giữa ứng dụng và hệ quản trị cơ sở dữ liệu để cung
cấp và quản lí mơ hình và các thao tác lên dữ liệu. Thông thường, tầng Model sẽ kết nối
với một hoặc nhiều cơ sở dữ liệu để thực hiện các thao tác lên dữ liệu.
-

Tầng giao diện – View:
Thể hiện giao diện người dùng, là thành phần giao tiếp giữa người dùng (user)

và ứng dụng (application).
2.1.3. Mô hình MVC trong ứng dụng Web
Với sự phát triển của các công nghệ xây dựng web ở cả Frontend và Backend,
các nhà phát triển có thể xây dựng và phát triển ứng dụng web một cách độc lập nhưng
vẫn đảm bảo được tính kiến trúc của ứng dụng.


Hình 2.1.2 Mơ hình MVC trong ứng dụng Web

H

n
h
S
T
Y
L
E
R

4


− Tầng giao diện người dùng (View) sẽ được phát triển độc lập ở phía client sử dụng
các cơng nghệ Frontend như VueJS, ReactJS, AngularJS … Nói cách khác, client sẽ
được chạy trên 1 server độc lập và có thể tương tác với phía server của backend.
− Tầng xử lí (Controller) và logic dữ liệu (Model) sẽ được phát triển độc lập ở phía
server sử dụng các cơng nghệ Backend như ExpressJS, DotNetCore, Flank, …
− Sau khi hoàn thành việc phát triển, client sẽ cung cấp 1 bản build hoàn chỉnh để
thêm vào phía Server. Người dùng sẽ yêu cầu thành phần giao diện thông qua request
gửi đến Server.

2.2.

Tổng quan về .NET


2.2.1. Giới thiệu

Hình 2.2.1 Net core và .Net framework

ASP.NET Core là một framework web mã nguồn mở của Microsoft được ra mắt
năm 2016 và là người kế nhiệm của ASP.NET. Nó được thiết kế lại từ đầu để trở nên

5


nhanh chóng, linh hoạt và chạy trên được nhiều nền tảng khác nhau như Windows,
Linux, Mac.

Đặc trưng của NodeJS
Mỗi ứng dụng NodeJS chạy trên một process đơn và không tạo thêm luồng mới
cho mỗi request. Đây cũng là điểm khác biệt của NodeJS so với các môi trường thực
thi khác như DotNetCore, … . Thay vào đó, NodeJS sử dụng cơ chế bất đồng bộ I/O
(non-blocking I/O) để quản lí các request thay vì block chúng nhằm giảm thiểu việc
tốn tài nguyên xử lí. Nhờ vào cơ chế này, NodeJS có thể xử lý hàng ngàn kết nối đồng
thời với 1 server duy nhất mà không cần nhà phát triển phải bỏ cơng sức và thời gian
để quản lí các luồng.
2.2.2. Tạo sao chọn .NET core để phát triển server
− Hợp nhất việc xây dựng web UI và web APIs.
− Tích hợp những client-side frameworks hiện đại và những luồng phát triển
− Dependency injection được xây dựng sẵn.
− HTTP request được tối ưu nhẹ hơn.
− Có thể host trên IIS hoặc self-host trong process của riêng bạn.
− Được xây dựng trên .NET Core, hỗ trợ thực sự app versioning.
− Chuyển các thực thể, thành phần, module như những NuGet packages.
− Những cơng cụ mới để đơn giản hóa q trình phát triển web hiện đại.

− Xây dựng và chạy đa nền tảng (Windows, Mac và Linux).
− Mã nguồn mở và tập trung vào cộng đồng.

6


2.3.

Angular

2.3.1. Giới thiệu

Hình 2.3.1 Angular

2.3.2. Ưu điểm của Angular
− Dễ dàng tạo ra các Single Page Application.
− Mang lại cảm giác linh hoạt, thân thiện khi cung cấp khả năng data binding tới
HTML.
− Dễ dàng Unit test.
− Tái sử dụng component một cách dễ dàng.
− Tiết kiệm thời gian viết code và tích hợp nhiều chức năng hơn.
− Chạy được trên nhiều loại trình duyệt.

7


Hệ quản trị cơ sở dữ liệu MongoDB

2.4.


2.4.1. Giới thiệu

Hình 2.4.1 So sánh mức độ phổ biến của MongoDB

Hệ quản trị cơ sở dữ liệu MongoDB là một mã nguồn mở NoSQL. Thay vì sử
dụng các bảng và hàng như trong các cơ sở dữ liệu truyển thống, MongoDB sử dụng
collection và document.
Đặc điểm của MongoDB:
● Khác với SQL, MongoDB khơng cần định nghĩa sẵn các schema, các trường có
thể được thêm vào trực tiếp.
● Document:
o Mỗi document sẽ có dạng là các cặp key-value (tương tự như JSON). Các
document có thể có các key-value, kích thước, và nội dung khác nhau (Khơng
cố định như SQL)
Mỗi trường có thể lưu trữ nhiều loại kiểu dữ liệu từ đơn giản (như number, string) đến
phức tạp (Object, Array, …)
Collection: Mỗi collection sẽ chứa nhiều Document và các phương thức hỗ trợ thao tác
lên dữ liệu.

8


×