Tải bản đầy đủ (.pdf) (128 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 (5.31 MB, 128 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
THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP............................ 1
LỜI CẢM ƠN ............................................................................................................. 2
DANH MỤC HÌNH.................................................................................................... 8
DANH MỤC BẢNG ................................................................................................ 11
DANH MỤC TỪ VIẾT TẮT ................................................................................... 14
TÓM TẮT KHÓA LUẬN ........................................................................................ 15
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 ....................................................................................... 6

2.2.1.

Giới thiệu ................................................................................................ 6

2.2.2.

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

2.3.

Angular .......................................................................................................... 8

2.3.1.

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

2.3.2.

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


2.4.

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

2.4.1.

Giới thiệu ................................................................................................ 9


2.4.2.
2.5.

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

Flask ............................................................................................................. 10

2.5.1.

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

2.5.2.

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

2.6.

Keras ............................................................................................................ 10

2.6.1.


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

2.6.2.

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

Chương 3.
3.1.

PHÂN TÍCH ..................................................................................... 12

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

3.1.1.

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

3.1.2.

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

3.1.3.

Time-Domain và Frequency-Domain ................................................... 14

3.2.

Xây dựng hệ thống....................................................................................... 17


3.2.1.

Xây dựng kiến trúc hệ thống................................................................. 17

3.2.2.

Thiết kế hệ thống .................................................................................. 18

3.3.

Phân tích ...................................................................................................... 33

3.3.1.

Recognizer Server ................................................................................. 33

3.3.2.

Music Server ......................................................................................... 36

Chương 4.
4.1.

THIẾT KẾ GIAO DIỆN ................................................................... 42

Giao diện trang chủ...................................................................................... 42

4.1.1.

Giao diện trang chủ ............................................................................... 42


4.1.2.

Giao diện chức năng Songs For You .................................................... 43

4.1.3.

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

4.2.

Giao diện Player .......................................................................................... 45

4.2.1.

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


4.2.2.
4.3.

Giao diện trang admin ................................................................................. 47

4.3.1.
4.4.

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

Trang admin .......................................................................................... 47


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

4.4.1.

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

4.4.2.

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

4.4.3.

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

4.4.4.

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

4.5.

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

4.5.1.

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

4.5.2.

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


4.5.3.

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

4.5.4.

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

4.6.

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

4.6.1.

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

4.6.2.

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

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
58

4.7.

Chức năng Nhận Diện Bài Hát .................................................................... 59

4.7.1.


Giao diện trang nhận diện ..................................................................... 59

4.7.2.

Giao diện trang ghi âm.......................................................................... 60

4.7.3.

Giao diện trang Kết Quả Nhận Diện..................................................... 63

4.8.

Chức năng Playlist ....................................................................................... 64

4.8.1.

Giao diện trang Danh sách Playlist ....................................................... 64

4.8.2.

Giao diện trang tạo Playlist................................................................... 65

4.8.3.

Giao diện trang Chi Tiết Playlist .......................................................... 66


4.8.4.
4.9.


Giao diện trang Đăng Nhập ......................................................................... 68

4.9.1.
Chương 5.
5.1.

Giao diện Chỉnh Sửa Thông Tin Playlist .............................................. 67

Giao diện trang Đăng Nhập .................................................................. 68
HIỆN THỰC HÓA CHỨC NĂNG NHẬN DIỆN ........................... 70

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

5.1.1.

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

5.1.2.

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

5.1.3.

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

5.2.

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


5.3.

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

5.3.1.

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

5.3.2.

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

5.4.

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

5.4.1.

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

5.4.2.

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

5.4.3.

Xử lý đa luồng ...................................................................................... 87

5.4.4.


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

Chương 6.

HIỆN THỰC HĨA CHỨC NĂNG ĐỀ XUẤT NHẠC ................... 92

6.1.

Xây dựng hệ thống đề xuất .......................................................................... 92

6.2.

Hệ thống phân loại ....................................................................................... 93

6.2.1.

Thu thập dữ liệu .................................................................................... 93

6.2.2.

Lọc dữ liệu ............................................................................................ 93

6.2.3.

Audio Preprocessing ............................................................................. 96

6.2.4.

Mơ hình mạng ....................................................................................... 97


6.3.

Huấn luyện mơ hình .................................................................................. 100


6.4.

Đánh giá mơ hình ...................................................................................... 100

6.4.1.

Các thơng số để đánh giá mơ hình CNN ............................................ 100

6.4.2.

Mơ hình Resnet50 ............................................................................... 102

6.5.

Hệ thống Đề Xuất ...................................................................................... 104

6.6.

Xây dựng API cho hệ thống đề xuất.......................................................... 105

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 .............. 105

6.6.2.


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

6.6.3.

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

Chương 7.

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ...................................... 108

7.1.

Ưu điểm ..................................................................................................... 108

7.2.

Nhược điểm ............................................................................................... 108

7.3.

Kết quả đạt được ........................................................................................ 108

7.3.1.

Về mặt nghiên cứu: ............................................................................. 108

7.3.2.

Về mặt sản phẩm: ............................................................................... 109


7.4.

Hướng phát triển ........................................................................................ 109

TÀI LIỆU THAM KHẢO ...................................................................................... 110


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 ...................................................................... 6
Hình 2.3.1 Angular ....................................................................................................... 8
Hình 2.4.1 So sánh mức độ phổ biến của MongoDB ................................................. 9
Hình 3.1.1 Mô tả Processing Pipeline ....................................................................... 12
Hình 3.1.2 Xử lý thu âm ............................................................................................. 13
Hình 3.1.3-1 Analog và Digital Signal ....................................................................... 14
Hình 3.2.1 Kiến trúc hệ thống của Website.............................................................. 17
Hình 3.2.2 Sơ đồ Usecase............................................................................................ 18
Hình 3.3.1 Sơ đồ lớp hệ thống nhận diện ................................................................. 33
Hình 3.3.2 Sơ đồ lớp Music Server ........................................................................... 37
Hình 4.1.1 Giao diện trang chủ của Trang Web ...................................................... 42
Hình 4.1.2 Giao diện chức năng Songs For You ...................................................... 43
Hình 4.1.3 Giao diện chức năng Genre Songs.......................................................... 44
Hình 4.2.1 Giao diện chức năng Lyric ...................................................................... 45
Hình 4.2.2 Giao diện chức năng Karaoke ................................................................ 46
Hình 4.3.1 Giao diện trang Admin ............................................................................ 47
Hình 4.4.1 Giao diện chức năng danh sách bài hát ................................................. 48
Hình 4.4.2 Giao diện chức năng Thêm Bài Hát ....................................................... 49
Hình 4.4.3 Giao diện chức năng Sửa Thông Tin Bài Hát ....................................... 50

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


Hình 4.7.2 Giao diện chức năng Ghi Âm Bài Hát ................................................... 60
Hình 4.7.3 Giao diện chức năng Dừng Ghi Âm ....................................................... 61
Hình 4.7.4 Giao diện chức năng Preview bản Record............................................. 62
Hình 4.7.5 Giao diện trang Kết Quả ......................................................................... 63
Hình 4.8.1 Giao diện trang Playlist ........................................................................... 64
Hình 4.8.2 Giao diện trang tạo Playlist..................................................................... 65
Hình 4.8.3 Giao diện trang Chi Tiết Playlist ............................................................ 66
Hình 4.8.4 Giao diện trang Chi Tiết Playlist ............................................................ 66
Hình 4.8.5 Giao diện Chỉnh Sửa Thông Tin Playlist ............................................... 67
Hình 4.9.1 Giao diện trang Đăng Nhập .................................................................... 68
Hình 5.1.1 Tool để xác định API ............................................................................... 71
Hình 5.1.2 Minh họa bước để xác định API ............................................................. 72
Hình 5.1.3 Minh họa bước để crawl dữ liệu ............................................................. 73
Hình 5.2.1 Thống kê dữ liệu thu được ...................................................................... 74
Hình 5.2.2 Data thu được trên Google Drive ........................................................... 74
Hình 5.3.1 Minh họa tính chất của âm thanh .......................................................... 75
Hình 5.3.2 Spectrogram ............................................................................................. 76
Hình 5.3.3 Constellation Map .................................................................................... 77
Hình 5.3.4 Combinatorial Hash Generation ............................................................ 77

Hình 5.3.5 Time-Invariant Hashes ............................................................................ 78
Hình 5.3.6 Part of Time-Invariant Hashes ............................................................... 78
Hình 5.3.7 Minh hoạ cách tìm kiếm .......................................................................... 79
Hình 5.3.8 Minh họa bài hát và đoạn ghi âm sau khi chuyển đổi .......................... 79
Hình 5.3.9 Tiến hành so trùng ................................................................................... 80
Hình 5.3.10 Tìm kiếm được kết quả ......................................................................... 81
Hình 5.3.11 Minh họa Flatten bài hát và đoạn ghi âm ............................................ 82
Hình 5.3.12 Minh họa TargetZone ............................................................................ 82
Hình 5.3.13 Minh họa Address .................................................................................. 83
Hình 5.3.14 Minh họa 2 kết quả vượt qua quá trình lọc......................................... 84
Hình 5.4.1 Quá trình chuyển đổi file Audio ............................................................. 86
Hình 5.4.2 Quá trình tìm kiếm 1 file nhạc ................................................................ 87


Hình 6.1.1 Các bước xây dựng hệ thống đề xuất dựa trên CNN ........................... 92
Hình 6.2.1 Thống kê các file wav ở các thể loại ....................................................... 94
Hình 6.2.2 Thống kê các file wav ở các thể loại sau khi lọc .................................... 95
Hình 6.2.3 Thống kê các file wav ở các thể loại sau khi lọc .................................... 96
Hình 6.2.4 Sử dụng thư viện Librosa để trích xuất đặc trưng của Audio ............. 97
Hình 6.2.5 Cấu trúc chung của Resnet50 ................................................................. 98
Hình 6.2.6 Cấu trúc từng layer của Resnet50 .......................................................... 98
Hình 6.2.7 Cấu trúc của Identity Block .................................................................... 99
Hình 6.2.8 Cấu trúc của Convolution Block ............................................................ 99
Hình 6.4.1 Các định nghĩa trong đánh giá ............................................................. 100
Hình 6.4.2 Confusion Matrix của mô hình Resnet50 ............................................ 103
Hình 6.5.1 Minh họa Cosine Distance/Similarity .................................................. 104
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 . 105
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 . 106
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.................................................................................................. 107



DANH MỤC BẢNG
Bảng 3.2.1 Đặc tả Usecase Đăng ký........................................................................... 19
Bảng 3.2.2 Đặc tả Usecase Đăng nhập ...................................................................... 20
Bảng 3.2.3 Đặc tả Usecase Đăng Xuất ...................................................................... 20
Bảng 3.2.4 Đặc tả Usecase Bảng xếp hạng................................................................ 21
Bảng 3.2.5 Đặc tả Usecase Nghe nhạc ....................................................................... 22
Bảng 3.2.6 Đặc tả Usecase Xem Lyrics ..................................................................... 22
Bảng 3.2.7 Đặc tả Usecase Karaoke .......................................................................... 23
Bảng 3.2.8 Đặc tả Usecase Tương tác với bài nhạc ................................................. 24
Bảng 3.2.9 Đặc tả Usecase Playlist cá nhân .............................................................. 24
Bảng 3.2.10 Đặc tả Usecase Gợi ý âm nhạc .............................................................. 25
Bảng 3.2.11 Đặc tả Usecase Tìm kiếm bài hát ......................................................... 25
Bảng 3.2.12 Đặc tả Usecase Nhận diện nhạc qua giai điệu ..................................... 26
Bảng 3.2.13 Đặc tả Usecase Quản lý Profile ............................................................. 27
Bảng 3.2.14 Đặc tả Usecase Thêm bài hát ................................................................ 28
Bảng 3.2.15 Đặc tả Usecase Sửa bài hát ................................................................... 28
Bảng 3.2.16 Đặc tả Usecase Xóa bài hát ................................................................... 29
Bảng 3.2.17 Đặc tả Usecase Thêm nghệ sĩ ................................................................ 30
Bảng 3.2.18 Đặc tả Usecase Sửa nghệ sĩ ................................................................... 30
Bảng 3.2.19 Đặc tả Usecase Xóa nghệ sĩ ................................................................... 31
Bảng 3.2.20 Đặc tả Usecase Thêm người dùng ........................................................ 32
Bảng 3.2.21 Đặc tả Usecase Sửa người dùng............................................................ 32
Bảng 3.2.22 Đặc tả Usecase Xóa người dùng ........................................................... 33
Bảng 3.3.1 Danh sách lớp hệ thống nhận diện ......................................................... 34
Bảng 3.3.2 Danh sách thuộc tính của Song .............................................................. 34
Bảng 3.3.3 Danh sách phương thức của Song .......................................................... 34
Bảng 3.3.4 Danh sách thuộc tính của Fingerprint ................................................... 35
Bảng 3.3.5 Danh sách phương thức của Fingerprint .............................................. 35

Bảng 3.3.6 Danh sách thuộc tính của TimeFrequency ............................................ 35
Bảng 3.3.7 Danh sách phương thức của TimeFrequency ....................................... 35
Bảng 3.3.8 Danh sách lớp Music Server ................................................................... 38


Bảng 3.3.9 Danh sách thuộc tính của Song .............................................................. 39
Bảng 3.3.10 Danh sách phương thức của Song ........................................................ 39
Bảng 3.3.11 Danh sách thuộc tính của Artist ........................................................... 39
Bảng 3.3.12 Danh sách phương thức của Artist ...................................................... 39
Bảng 3.3.13 Danh sách thuộc tính của Genre .......................................................... 40
Bảng 3.3.14 Danh sách phương thức của Genre...................................................... 40
Bảng 3.3.15 Danh sách thuộc tính của Playlist ........................................................ 40
Bảng 3.3.16 Danh sách phương thức của Playlist.................................................... 41
Bảng 3.3.17 Danh sách thuộc tính của User ............................................................. 41
Bảng 3.3.18 Danh sách phương thức của User ........................................................ 41
Bảng 4.1.1 Mô tả thành phần của chức năng Songs For You ................................ 43
Bảng 4.1.2 Mô tả thành phần của chức năng Genre Songs .................................... 44
Bảng 4.2.1 Mô tả thành phần chức năng Lyric ....................................................... 45
Bảng 4.2.2 Mô tả thành phần chức năng Karaoke .................................................. 46
Bảng 4.3.1 Mô tả thành phần trang Admin ............................................................. 47
Bảng 4.4.1 Mô tả thành phần chức năng Danh sách bài hát .................................. 48
Bảng 4.4.2 Mô tả thành phần chức năng Thêm Bài Hát ........................................ 49
Bảng 4.4.3 Mô tả thành phần chức năng Sửa Thông Tin Bài Hát ......................... 50
Bảng 4.4.4 Mô tả thành phần chức năng Chi Tiết Bài Hát .................................... 51
Bảng 4.5.1 Mô tả thành phần chức năng Danh sách Nghệ Sĩ................................. 52
Bảng 4.5.2 Mô tả thành phần chức năng Chi Tiết Nghệ Sĩ .................................... 53
Bảng 4.5.3 Mô tả thành phần chức năng Thêm Nghệ Sĩ ........................................ 54
Bảng 4.5.4 Mô tả thành phần chức năng Sửa Thông Tin Nghệ Sĩ ......................... 55
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 ........... 57
Bảng 4.6.2 Mô tả thành phần chức năng Đề Xuất Nhạc Cho Người Dùng........... 57

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
.............................................................................................................................. 58
Bảng 4.7.1 Giao diện chức năng nhận diện .............................................................. 59
Bảng 4.7.2 Mô tả thành phần chức năng Ghi Âm Bài Hát ..................................... 60
Bảng 4.7.3 Mô tả giao diện dừng ghi âm .................................................................. 61
Bảng 4.7.4 Mô tả giao diện Preview bản Record ..................................................... 62


Bảng 4.7.5 Mô tả giao diện trang kết quả................................................................. 63
Bảng 4.8.1 Mô tả giao diện trang Playlist ................................................................. 64
Bảng 4.8.2 Mô tả trang tạo Playlist ........................................................................... 65
Bảng 4.8.3 Mô tả trang Chi Tiết Playlist .................................................................. 67
Bảng 4.8.4 Mô tả chi tiết trang Chỉnh Sửa Thông Tin Playlist .............................. 68
Bảng 4.9.1 Mô tả trang Đăng Nhập .......................................................................... 69


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

− 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,
4


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 hồn chỉnh để
thêm vào phía Server. Người dùng sẽ u cầu thành phần giao diện thông qua
request gửi đến Server.


5


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

6


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 quá 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.

7


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.
8



×