Mô tả hệ thống
Chức năng của hệ thống
- Cập nhật và bổ sung thông tin bài hát, nghệ sĩ, album cho người dùng
- Cung cấp nền tảng tìm kiếm và nghe nhạc miễn phí cho người dùng
- Thống kê và báo cáo số lượng người nghe nhạc.
- Xếp hạng bài hát theo lượt nghe và đề xuất cho người dùng
- Đề xuất bài hát theo sở thích của người dùng
Cơ cấu tổ chức
Bảng 1.1 Bảng cơ cấu tổ chức
STT Tên bộ phận Nhiệm vụ
1 Bộ phận quản lý nhạc
- Lập danh sách bài hát mới
- Thêm, sửa, xóa bài hát mới
- Thêm, sửa, xóa nghệ sĩ, album
- Phân loại bài hát theo thể loại
- Tạo playlist theo sở thích
2 Bộ phận quản lý người dùng
- Cung cấp mẫu biểu đăng ký cho người dùng
- Xác thực thông tin người dùng
- Thu thập sở thích nghe nhạc
- Thêm người dùng vào hệ thống
- Thống kê lượt truy cập
Quy trình xử lý và quy tắc quản lý
Bảng 1.2 Bảng quy trình xử lý và quy tắc quản lý
STT Mã quy trình Tên quy trình
1 QT1 Quy trình đăng ký người dùng
2 QT2 Quy trình tạo playlist cá nhân
3 QT3 Quy trình bổ sung nhạc
4 QT4 Quy trình kiểm duyệt bình luận
5 QT5 Quy trình phát nhạc
● Quy trình đăng ký người dùng (QT1):
○ Người dùng có nhu cầu sử dụng các dịch vụ của ứng dụng và muốn bình luận hoặc có playlist cá nhân cần phải đăng ký tài khoản
○ Hệ thống sẽ cung cấp mẫu biểu đăng ký cho người dùng
○ Người dùng điền đầy đủ thông tin và bộ phận quản lý người dùng sẽ xác thực thông tin người dùng hợp lệ và phân loại người dùng
○ Sau đó bộ phận quản lý người dùng thêm mới người dùng vào hệ thống và thông báo cho người dùng
○ Người dùng có thể đăng nhập để tiếp tục sử dụng dịch vụ nghe nhạc
● Quy trình tạo playlist cá nhân (QT2):
○ Người dùng có nhu cầu tạo cho mình 1 playlist nhạc theo sở thích sẽ đăng ký playlist
○ Người dùng có thể để hệ thống tự động thêm 10 bài hát theo sở thích nghe của bản thân
○ Người dùng có thể tìm kiếm, chọn, bỏ bài nhạc mình yêu thích và lưu vào playlist
○ Người dùng cũng có thể xóa playlist
○ Bộ phận quản lý nhạc sẽ thêm, sửa, xóa playlist trong hệ thống theo nhu cầu người dùng
● Quy trình bổ sung nhạc (QT3): bài hát vào hệ thống
○ Bộ phận quản lý nhạc tiến hành lập danh sách các bài hát mới
○ Dựa trên danh sách bài hát cần bổ sung, người quản trị sẽ thêm các bài hát mới vào hệ thống
○ Nếu bài hát mới nằm trong 1 album mới hoặc của nghệ sĩ mới thì bộ phận quản lý nhạc sẽ thêm thông tin của album và nghệ sĩ mới vào hệ thống
○ Sau khi có đầy đủ thông tin bài hát thì bộ phận quản lý nhạc sẽ tiến hành phân loại bài hát theo thể loại nhạc
● Quy trình kiểm duyệt bình luận (QT4):
○ Người dùng có nhu cầu bình luận về một bài hát, nghệ sỹ hoặc tương tác người dùng khác mà có thể bình luận trên hệ thống
○ Bộ phận quản lý nhạc sẽ kiểm duyệt nội dung bình luận của người dùng
○ Nếu tìm thấy vi phạm nội dung bình luận không phù hợp, bộ phận quản lý nhạc sẽ gửi nội dung kiểm duyệt đến bộ phận quản lý người dùng
○ Bộ phận quản lý người dùng sẽ quyết định xử phạt người dùng có nội dung bình luận vi phạm tiêu chuẩn cộng đồng
Quy trình phát nhạc (QT5): o Người dùng muốn nghe nhạc có thể tìm kiếm bài hát muốn nghe trên thanh tìm kiếm o Thông tin tìm kiếm là tên bài hát hoặc tên của nghệ sĩ o Hệ thống dựa vào đó sẽ đưa ra các bài hát phù hợp nhất với người dùng o Người dùng chọn bài hát muốn nghe và hệ thống sẽ cung cấp bài hát vào danh sách phát cho người dùng o Khi nghe xong hệ thống sẽ thống kê lượt nghe của bài hát đó và thu thập sở thích của người dùng.
Mô hình hóa hệ thống
Mô hình tiến trình nghiệp vụ
Dùng ký hiệu hình chữ nhật để mô tả bộ phận của hệ thống, tên của chức năng ghi bên trong
Ví dụ: Bộ phận quản lý người dùng
Dùng mũi tên chỉ hướng của luồng dữ liệu, tên luồng dữ liệu ghi trên mũi tên
Dùng ký hiệu hình elip để miêu tả tác nhân bên ngoài của hệ thống, tên tác nhân
Ví dụ: Người dùng b) Vẽ mô hình tiến trình nghiệp vụ
Hình 1.1 Mô hình tiến trình nghiệp vụ
Biểu đồ hoạt động
Dùng bảng để mô tả đường bơi, ô trên là tên của bộ phận hoặc tác nhân, ô dưới mô tả các hoạt động bộ phận đó.
Dùng hình tròn trắng có mũi tên chỉ từ hình tròn xuống dưới để mô tả điểm bắt đầu
Dùng hình tròn có chấm đen ở giữa cùng mũi tên chỉ từ trên xuống hình tròn để mô tả điểm kết thúc
Dùng hình chữ nhật để mô tả Công việc nghiệp vụ
Dùng hình thoi để mô tả Điều kiện lựa chọn
Dùng hình thoi để mô tả Kho dữ liệu
Dùng hình document để miêu tả Mẫu biểu
Dùng mũi tên liền để miêu tả Luồng công việc
Dùng mũi tên đứt đoạn để miêu tả Luồng dữ liệu b) Vẽ sơ đồ hoạt động
Quy trình đăng ký người dùng (QT1)
Hình 1.2 Quy trình đăng ký người dùng
Quy trình tạo playlist cá nhân (QT2):
Hình 1.3 Quy trình tạo playlist cá nhân
Quy trình bổ sung nhạc (QT3):
Hình 1.4 Quy trình bổ sung nhạc
Quy trình kiểm duyệt bình luận (QT4)
Hình 1.5 Quy trình kiểm duyệt bình luận
Quy trình phát nhạc (QT5):
Hình 1.6 Quy trình phát nhạc
Phân tích chức năng nghiệp vụ
Mô hình hóa chức năng nghiệp vụ
Xác đinh chức năng chi tiết
- Cung cấp mẫu biểu đăng kí
- Xác thực thông tin đăng kí
- Thống kê lượt truy cập
- Thu thập sở thích nghe nhạc
- Cập nhật bài hát, nghệ sĩ mới
- Cung cấp và phát bài hát
- Taọ playlist cá nhân theo sở thích
Bảng 2.1 Bảng gom nhóm chức năng
Quản lý nhạc trực tuyến
1.Tìm kiếm bài hát 2.Đăng kí
3.Cung cấp mẫu biểu đăng kí 4.Xác thực thông tin đăng kí 5.Phân loại người dùng 6.Đăng nhập
7.Thống kê lượt truy cập 8.Thu thập sở thích nghe nhạc 9.Kiểm duyệt bình luận
10.Xử phạt người dùng Quản lý nhạc 11.Cập nhật bài hát, nghệ sĩ mới
13.Thống kê lượt nghe 14.Tạo playlist cá nhân theo sở thích
Sơ đồ phân rã chức năng: o Giải thích ký hiệu
Chức năng ( công việc tổ chức cần làm )
Phân cấp ( mỗi chức năng phân ra nhiều chức năng con )
Sơ đồ phân rã chức năng:
Hình 2.1 Biểu đồ phân cấp chức năng
Mô hình hóa tiến trình nghiệp vụ
- Tiến trình: Là một hoạt động có liên quan đến sự biến đổi hoặc tác động của thông tin được biểu diễn bằng hình oval, bên trong có tên của chức năng đó
- Luồng dữ liệu: Luồng thông tin vào hoặc ra khỏi tiến trình, được biểu diễn bằng mũi tên có ghi thông tin di chuyển
- Kho dữ liệu: Biểu diễn thông tin cần cất giữ, tên kho chỉ dữ liệu trong kho
- Tác nhân ngoài: là nhóm hoặc người nằm ngoài hệ thống nhưng có tác động lên hệ thống Biểu diễn là hình chữ nhật
- Tác nhân trong: là 1 tiến trình của hệ thống đang xét nhưng được trình bày ở một trang khác của biểu đồ.
Sơ đồ luồng dữ liệu (DFD) mức khung cảnh
Hình 2.2 Sơ đồ DFD mức khung cảnh
Hình 2.3 Sơ đồ DFD mức đỉnh
DFD mức 2 tiến trình “Quản lý nhạc”
Hình 2.4 Sơ đồ DFD mức dưới đỉnh chức năng quản lý nhạc
DFD mức 2 tiến trình “Quản lý người dùng”
Hình 2.5 Sơ đồ DFD mức dưới đỉnh chức năng quản lý người dùng
Đặc tả tiến trình nghiệp vụ
- Đầu vào: có thể là giọng nói hoặc văn bản
- Đầu ra: danh sách bài hát phù hợp
Kiểm tra xem nội dung tìm kiếm bao gồm bài hát và nghệ sĩ nào
Đến khi có bài hát hoặc nghệ sĩ phù hợp nhất
Đưa bài hát và nghệ sĩ đó vào danh sách và hiện thị cho người dùng
- Đầu vào: thông tin người dùng
- Đầu ra: tài khoản đăng nhập
Lấy thông tin khách hàng
Đến khi đầy đủ thông tin
Kiểm tra tài khoản có thể đã tồn tại chưa
Xác thực thông tin đăng ký, lưu thông tin và thông báo cho người dùng
Cung cấp mẫu biểu đăng ký
- Đầu vào: thông tin người dùng
- Đầu ra: mẫu biểu đăng ký
Cung cấp mẫu biểu mỗi khi người dùng tiến hành đăng ký
- Đầu vào: tài khoản đăng ký
- Đầu ra: chức vụ người dùng
- Nội dung xử lý: Người quản trị sẽ là người quyết định phân quyền Người quản trị nếu cần thêm nhân lực để quản lý hệ thống có thể thêm các tài khoản là ADMIN, còn lại đều là người dùng bình thường
- Đầu vào: tên tài khoản và mật khẩu
- Đầu ra: đăng nhập thành công
Kiểm tra tên tài khoản trong database:
Đến khi: có tài khoản khớp thì kiểm tra mật khẩu đã chính xác chưa
Thống kê lượt truy cập
- Đầu vào: mã tài khoản
- Đầu ra: lượt truy cập vào hệ thống
Người dùng truy cập vào hệ thống để nghe nhạc thì tăng lượt truy cập
Đến khi: người dùng tắt ứng dụng thì giảm lượt truy cập
Thu thập sở thích nghe nhạc
- Đầu vào: tìm kiếm bài hát, bài hát yêu thích
- Đầu ra: thể loại nhạc, nghệ sĩ yêu thích
- Nội dung xử lý: Người dùng tìm kiếm bài hát, nghe và yêu thích bài hát nào đó thì các thể loại bài hát, nghệ sĩ yêu thích sẽ được thu thập
- Đầu vào: người dung vi phạm
- Đầu ra: quyết định khóa tài khoản và thông báo
- Nội dung xử lý: Khi người dùng có những bình luận vi phạm tiêu chuẩn cộng đồng sẽ bị cảnh cáo khóa tài khoản Nếu người dùng vẫn tiếp tục sẽ được gửi thông tin đó về quản trị viên Quản trị sẽ là ngời quyết định khóa tài khoản.
- Đầu vào: bình luận của người dùng
- Đầu ra: bình luận đã được loại bỏ các từ phản cảm
Người dùng bình luận thì hệ thống sẽ lọc qua nội dung:
Đến khi: phát hiện các từ ngữ phản cảm thì sẽ ẩn đi từ đấy
Thông báo đến người dùng về vi phạm
Cập nhật bài hát, nghệ sĩ mới
- Đầu vào: thông tin bài hát mới
- Đầu ra: bài hát mới
Lấy thông tin bài hát mới vừa mới cập nhật
Tìm nghệ sĩ của bài hát đã tồn tại chưa, nếu chưa thì thêm mới nghệ sĩ vào hệ thống
Cung cấp và phát bài hát
- Đầu vào: mã bài hát
Tìm kiếm bài hát có mã tương ứng
Đến khi có bài hát khớp với mã trên
Phát bài hát cho người dùng
- Đầu vào: mã bài hát
- Đầu ra: lượt nghe bài hát
+, Lặp: thống kê lượt nghe của bài hát
Đến khi: bài hát được phát 80% thì sẽ tăng lượt nghe bài hát lên
Tạo playlist cá nhân theo sở thích
- Đầu vào: mã người dùng
- Đầu ra: playlist cá nhân
Tạo playlist cá nhân cho người dùng
Đến khi: người dùng xác nhận
Người dùng có thể để hệ thống tự thêm danh sách bài hát theo sở thích
Hoặc có thể tự thêm các bài hát mình yêu thích vào trong playlist
Phân tích dữ liệu nghiệp vụ
Mô hình hóa dữ liệu ban đầu
a) Xác định kiểu thực thể
- Từ nguồn tài nguyên: o Bài hát o Người dùng o Bình luận o Album o Nghệ sĩ o Playlist o Nhà sáng tác b) Xác định kiểu thuộc tính
- Bài hát(Mã bài hát, Tiêu đề, Độ dài, Trạng thái, Ảnh nền, Đường dẫn,
Thẻ tìm kiếm, Số lượt nghe, Số lượt thích, Thể loại)
- Bình luận(Mã bình luận, Nội dung, Người tạo, Thời gian tạo)
- Nghệ sĩ(Mã nghệ sĩ, Tên nghệ sĩ, Tuổi, Giới tính, Ảnh nền, Lượt theo dõi)
- Nhà sáng tác(Mã nhà sáng tác, Tên nhà sáng tác, tuổi, ảnh nền, Lượt theo dõi)
- Album(Mã album, Miêu tả, Ảnh nền)
- Người dùng(Mã người dùng, Tên người dùng, Mật khẩu, Email, Ảnh nền, Giới tính, Chức vụ, Bài hát yêu thích)
- Playlist(Mã playlist, Tên, Trạng thái) c) Xác định kiểu liên kết:
Bảng 2.2 Bảng xác định kiểu liên kết thực thể
THỰC THỂ KIỂU QUAN HỆ TÊN QUAN HỆ THỰC THỂ
BÀI HÁT 1-n Có BÌNH LUẬN
BÀI HÁT n-n Có NGHỆ SĨ
BÀI HÁT n-1 Có NHÀ SÁNG TÁC
NGƯỜI DÙNG 1-n Có BÌNH LUẬN
NGƯỜI DÙNG n-n Có CHỨC VỤ
NGƯỜI DÙNG n-n Theo dõi NGHỆ SĨ
NGƯỜI DÙNG n-n Theo dõi NHÀ SÁNG TÁC
NGƯỜI DÙNG n-n Thích BÌNH LUẬN d) Mô hình thực thể liên kết
Giải thích kí hiệu: o Kiểu thực thể và kiểu thuộc tính o Kiểu liên kết: o Biểu diễn lực lượng tham gia vào liên kết
Hình 2.6 Mô hình thực thể liên kết
Chuẩn hóa dữ liệu
a) Chuyển từ ERD mở rộng về ERD kinh điển
Xác định khóa chính cho kiểu thực thể:
Bảng 2.3 Bảng khóa chính cho thực thể
STT Tên kiểu thực thể Khóa
1 BÀI HÁT Mã bài hát
2 NGHỆ SĨ Mã nghệ sĩ
4 NGƯỜI DÙNG Mã người dùng
5 BÌNH LUẬN Mà bình luận
7 NHÀ SÁNG TÁC Mã nhà sáng tác
8 CHỨC VỤ Mã chức vụ
9 THẺ TÌM KIẾM Mã thẻ
10 THỂ LOẠI Mã người dùng, Mã bài hát
11 BÀI HÁT YÊU THÍCH Mã bài hát yêu thích
Mô hình ERD kinh điển:
Hình 2.7 Mô hình ERD kinh điển b) Chuyển đổi ERD kinh điển về ERD hạn chế
Các bước chuyển từ ERD kinh điển về ERD hạn chế:
Xử lý kiểu liên kết 1-1: không có
Xử lý liên kết 2 ngôi nhiều-nhiều:
Bảng 2.4 Bảng thuộc tính kết nối giữa thực thể
T Đầu 1 Đầu nhiều Thuộc tính kết nối Ghi chú
1 BÀI HÁT BÌNH LUẬN Mã bài hát Chuyển sang
2 NGƯỜI DÙNG BÌNH LUẬN Mã người dùng Chuyển sang
3 NGƯỜI DÙNG PLAYLIST Mã người dùng Chuyển sang
4 NGƯỜI DÙNG BÀI HÁT YÊU
Mã người dùng Chuyển sang
5 NGƯỜI DÙNG ND_NS Mã người dùng Chuyển sang
6 NGƯỜI DÙNG ND_NST Mã người dùng Chuyển sang
7 NGƯỜI DÙNG CHỨC VỤ NGƯỜI
Mã người dùng Chuyển sang
8 NGƯỜI DÙNG THÍCH BÌNH LUẬN Mã người dùng Chuyển sang
9 CHỨC VỤ CHỨC VỤ NGƯỜI
DÙNG Mã chức vụ Chuyển sang
10 BÌNH LUẬN THÍCH BÌNH LUẬN Mã bình luận Chuyển sang
11 BÀI HÁT BÀI HÁT YÊU
THÍCH Mã bài hát Chuyển sang
12 BÀI HÁT CT_PLAYLIST Mã bài hát Chuyển sang
13 BÀI HÁT NGHỆ SĨ THAM GIA Mã bài hát Chuyển sang
14 BÀI HÁT CT_THETIMKIEM Mã bài hát Chuyển sang
15 THỂ LOẠI BÀI HÁT Mã thể loại Chuyển sang
16 BÀI HÁT BAIHAT_ALBUM Mã bài hát Chuyển sang
17 ALBUM BAIHAT_ALBUM Mã album Chuyển sang
19 THẺ TÌM KIẾM CT_THETIMKIEM Mã thẻ Chuyển sang
TÁC BÀI HÁT Mã nhà sáng tác Chuyển sang
Xác định khóa chính, khóa ngoại
Bảng 2.5 Bảng tổng hợp khóa chính, khóa ngoại
Kiểu thực thể Khóa chính Khóa ngoại
NGƯỜI DÙNG Mã người dùng
BÀI HÁT Mã bài hát Mã nhà sáng tác, mã thể loại
NGHỆ SĨ Mã nghệ sĩ
NHÀ SÁNG TÁC Mã nhà sáng tác
CHỨC VỤ Mã chức vụ
PLAYLIST Mã playlist Mã người dùng
THẺ TÌM KIẾM Mã thẻ
THỂ LOẠI Mã thể loại
BÌNH LUẬN Mã bình luận Mã người dùng, Mã bài hát CHỨC VỤ NGƯỜI
Mã chức vụ, Mã người dùng
ND_NS Mã người dùng, Mã nghệ sĩ
ND_NST Mã người dùng, Mã nhà sáng tác
THÍCH BÌNH LUẬN Mã bình luận, Mã người dùng BÀI HÁT YÊU
THÍCH Mã người dùng, Mã bài hát
CT_PLAYLIST Mã playlist, Mã bài hát
NGHỆ SĨ THAM GIA Mã nghệ sĩ, Mã bài hát
CT_THETIMKIEM Mã thẻ, Mã bài hát
I Mã nghệ sĩ, Mã album
BAIHAT_ALBUM Mã bài hát, Mã album
Hình 2.8 Mô hình ERD hạn chế c) Chuyển đổi từ ERD hạn chế về mô hình quan hệ
Chuyển kiểu thực thể thành bảng quan hệ
Bảng 2.6 Bảng chuyển thực thể thành quan hệ
STT Kiểu thực thể Quan hệ
11 CHỨC VỤ NGƯỜI DÙNG CVNGUOIDUNG
15 BÀI HÁT YÊU THÍCH BAIHATYEUTHICH
17 NGHỆ SĨ THAM GIA NGHESITHAMGIA
19 CT_ALBUM_NGHESI CT_ALBUM_NGHESI
Mô hình: o Giải thích kí hiệu: o Mô hình:
Đặc tả bảng dữ liệu
Bảng 2.7 Bảng đặc tả dữ liệu người dùng
Tên trường Kiểu dữ liệu Diễn giải
1 x MAND INT Mã người dùng
2 TENND VARCHAR(50) Tên người dùng
Bảng 2.8 Bảng đặc tả dữ liệu bài hát
Tên trường Kiểu dữ liệu Diễn giải
1 x MABAIHAT INT Mã bài hát
7 SOLUOTNGHE BIGINT Số lượt nghe
8 SOLUOTTHICH BIGINT Số lượt thích
9 x MANST INT Mã nhà sáng tác
10 x MATHELOAI INT Mã thể loại
Bảng 2.9 Bảng đặc tả dữ liệu nghệ sĩ
Tên trường Kiểu dữ liệu Diễn giải
1 x MANS INT Mã nghệ sĩ
2 TENNS VARCHAR(50) Tên nghệ sĩ
Bảng 2.10 Bảng đặc tả dữ liệu nhà sáng tác
Tên trường Kiểu dữ liệu Diễn giải
1 x MANST INT Mã nhà sáng tác
2 TENNST VARCHAR(50) Tên nhà sáng tác
5 LUOTTHEODOI BIGINT Lượt theo dõi
Bảng 2.11 Bảng đặc tả dữ liệu chức vụ
Tên trường Kiểu dữ liệu Diễn giải
1 x MACV INT Mã chức vụ
Bảng 2.12 Bảng đặc tả dữ liệu playlist
Tên trường Kiểu dữ liệu Diễn giải
5 x MAND INT Mã người dùng
Bảng 2.13 Bảng đặc tả dữ liệu thẻ tìm kiếm
Tên trường Kiểu dữ liệu Diễn giải
Bảng 2.14 Bảng đặc tả dữ liệu thể loại
Tên trường Kiểu dữ liệu Diễn giải
1 x MATHELOAI INT Mã thể loại
Bảng 2.15 Bảng đặc tả dữ liệu album
Tên trường Kiểu dữ liệu Diễn giải
Bảng 2.16 Bảng đặc tả dữ liệu bình luận
STT Khóa Khóa Tên trường Kiểu dữ liệu Diễn giải
1 x MABL INT Mã bình luận
3 THOIGIANTAO DATETIME Thời gian tạo
4 x MAND INT Mã người dùng
5 x MABAIHAT INT Mã bài hát
Bảng 2.17 Bảng đặc tả dữ liệu người dùng
Tên trường Kiểu dữ liệu Diễn giải
1 x MAND INT Mã người dùng
2 x MACV INT Mã chức vụ
Bảng 2.18 Bảng đặc tả dữ liệu nghệ sĩ người dùng
Tên trường Kiểu dữ liệu Diễn giải
1 x MAND INT Mã người dùng
2 x MANS INT Mã nghệ sĩ
Bảng 2.19 Bảng đặc tả dữ liệu thích bình luận
Tên trường Kiểu dữ liệu Diễn giải
1 x MAND INT Mã người dùng
2 x MABL INT Mã bình luận
Bảng 2.20 Bảng đặc tả dữ liệu bài yêu thích
Tên trường Kiểu dữ liệu Diễn giải
1 x MAND INT Mã người dùng
2 x MABAIHAT INT Mã bài hát
Bảng 2.21 Bảng đặc tả dữ liệu chi tiết playlist
STT Khóa Khóa Tên trường Kiểu dữ liệu Diễn giải
2 x MABAIHAT INT Mã bài hát
Bảng 2.22 Bảng đặc tả dữ liệu nghệ sĩ tham gia
Tên trường Kiểu dữ liệu Diễn giải
1 x MANS INT Mã nghệ sĩ
2 x MABAIHAT INT Mã bài hát
Bảng 2.23 Bảng đặc tả dữ liệu chi tiết thẻ tìm kiếm
Tên trường Kiểu dữ liệu Diễn giải
2 x MABAIHAT INT Mã bài hát
Bảng 2.24 Bảng đặc tả dữ liệu chi tiết album nghệ sĩ
Tên trường Kiểu dữ liệu Diễn giải
2 x MANS INT Mã nghệ sĩ
Bảng 2.25 Bảng đặc tả dữ liệu bài hát, album
Tên trường Kiểu dữ liệu Diễn giải
1 x MABAIHAT INT Mã bài hát
Thiết kế tổng thể
Xác định tiến trình hệ thống
Bảng 3.1 Tiến trình hệ thống
Tiến trinh nghiệp vụ Tiến trình hệ thống Đăng ký
Vào trang đăng kí Nhập dữ liệu người dùng Đăng kí người dùng mới Đăng nhập
Vào trang đăng nhập Nhập dữ liệu người dùng Đăng nhập vào hệ thống Tìm kiếm bài hát Nhập tên bài hát, nghệ sĩ hoặc album cần tìm kiếm Tìm kiếm bài hát, nghệ sĩ, album Phát bài hát, album, playlist của nghệ sĩ
Cung cấp mẫu biểu đăng ký Vào trang đăng kí
Cung cấp form đăng kí cho người dùng Xác thực thông tin đăng ký Cung cấp thông tin đăng kí
Xác thực thông tin đăng ký là hợp lệ Phân loại người dùng Phân loại người dùng
Thống kê lượt truy cập Thống kê lượt
Thu thập sở thích nghe nhạc
Thu thập sở thích dựa vào thông tin bài hát yêu thích của người dùng Thu thập thông tin bài hát người dùng nghe gần đây nhất
Kiểm duyệt bình luận người dùng Cảnh báo với nội dung bình luận không phù hợp Cấm người dùng tham gia bình luận Kiểm duyệt bình luận
Nhận bình luận của người dùng Ẩn đi những từ ngữ phản cảm, không phù hợp Cảnh báo người dùng vi phạm Cập nhật bài hát, nghệ sĩ mới Thêm bài hát mới
Cập nhật nghệ sĩ của bài hát mới Cung cấp và phát bài hát
Tìm kiếm bài hát muốn nghe Cung cấp và phát bài hát đó Tăng lượt nghe của bài hát Thống kê lượt nghe
Tăng lượt nghe bài hát Thống kê top bài hát được nghe nhiều nhất hằng giờ
Tạo playlist cá nhân theo sở thích
Thu thập sở thích nghe nhạc của người dùng khi sử dụng ứng dụngTạo thử playlist theo sở thích cá nhânTạo playlist đó nếu phù hợp
Bảng tổng hợp kho dữ liệu hệ thống
Bảng 3.2 Bảng tổng hợp kho dữ liệu hệ thống
Kho dữ liệu Lược đồ quan hệ tương ứng
Tên kho Tên lược đồ Tiến trình hệ thống
Bài hát BAIHAT Thêm, sửa, xóa bài hát
Tìm kiếm nhà sáng tác Thêm, sửa, xóa nhà sáng tác
Nghệ sĩ NGHESI Tìm kiếm nghệ sĩ
Thêm, sửa, xóa nghệ sĩ
Chỉnh sửa thông tin người dùng Lưu thông tin chỉnh sửa Thu thập sở thích nghe nhạc
Tạo, xóa playlist theo yêu cầu Thêm, xóa bài hát vào playlist Tạo playlist theo sở thích người dùng
Tìm kiếm albumPhát nhạc trong albumThêm, sửa, xóa bài hát trong album
DFD hệ thống
Thiết kế kiểm soát
Xác định nhóm người dùng
- Hệ thống bao gồm 2 nhóm người dùng là:
Phân tích quyền hạn nhóm người dùng
a) Phân định quyền hạn về dữ liệu
Ký hiệu C E R D Ý nghĩa Create Edit Read Delete
- Bảng phân định quyền hạn dữ liệu:
Bảng 3.3 Bảng quyền hạn dữ liệu
STT Bảng Nhóm người dùng
H R R, E b) Phân định quyền hạn về tiến trình
Bảng 3.4 Bảng quyền hạn tiến trình
Tiến trình hệ thống Nhóm người dùng
Vào trang đăng kí nA A
Nhập dữ liệu người dùng nA A Đăng kí người dùng mới nA A
Vào trang đăng nhập A A Đăng nhập vào hệ thống A A
Nhập tên bài hát, nghệ sĩ hoặc album cần tìm kiếm nA A
Tìm kiếm bài hát, nghệ sĩ, album nA A
Phát bài hát, album, playlist của nghệ sĩ A A
Bình luận bài hát nA A
Cung cấp form đăng kí cho người dùng nA A
Cung cấp thông tin đăng kí nA A
Xác thực thông tin đăng ký là hợp lệ nA A
Phân loại người dùng A nA
Thu thập sở thích dựa vào thông tin bài hát yêu thích của người dùng nA A
Thu thập thông tin bài hát người dùng nghe gần đây nhất nA A
Kiểm duyệt bình luận người dùng nA A
Cảnh báo với nội dung bình luận không phù hợp nA A
Cấm người dùng tham gia bình luận nA A
Nhận bình luận của người dùng A nA Ẩn đi những từ ngữ phản cảm, không phù hợp nA A
Cảnh báo người dùng vi phạm nA A
Thêm bài hát mới A nA
Cập nhật nghệ sĩ của bài hát mới A nA
Tìm kiếm bài hát muốn nghe nA A
Cung cấp và phát bài hát đó A A
Tăng lượt nghe của bài hát nA A
Thống kê top bài hát được nghe nhiều nhất hằng giờ
Thu thập sở thích nghe nhạc của người dùng khi sử dụng ứng dụng nA A
Tạo thử playlist theo sở thích cá nhân nA A
Tạo playlist đó nếu phù hợp nA A
Chương 4XÂY DỰNG HỆ THỐNG
Công nghệ sử dụng
Giới thiệu MySQL
MySQL là một hệ quản trị cơ sở dữ liệu phổ biến và mạnh mẽ MySQL được phát triển bởi một công ty tên là MySQL AB vào những năm đầu của thế kỷ 21 Năm 2008, công ty này đã được mua lại bởi Sun Microsystems, và sau đó Sun Microsystems cũng được mua lại bởi Oracle Corporation vào năm 2010. Tuy nhiên, MySQL vẫn tiếp tục phát triển và trở thành một công cụ quản lý cơ sở dữ liệu được sử dụng rộng rãi trên toàn thế giới.
MySQL có nhiều tính năng hấp dẫn, bao gồm khả năng lưu trữ các loại dữ liệu khác nhau, hỗ trợ các ngôn ngữ lập trình phổ biến, tích hợp tốt với các công cụ phát triển và hỗ trợ khả năng mở rộng Nó cũng có khả năng chạy trên nhiều nền tảng khác nhau, bao gồm Windows, Linux và macOS Điều này giúpMySQL trở thành một công cụ phù hợp cho nhiều ứng dụng khác nhau, từ các ứng dụng web đơn giản đến các hệ thống doanh nghiệp lớn.
MySQL cũng được xem là một trong những hệ quản trị cơ sở dữ liệu phổ biến nhất trên thế giới Nó được sử dụng bởi nhiều công ty lớn, bao gồm các công ty công nghệ như Google, Facebook và Twitter MySQL cũng được sử dụng rộng rãi trong các ngành công nghiệp khác nhau, bao gồm các ngành sản xuất, bán lẻ, tài chính và y tế.
MySQL có một số tính năng quan trọng, bao gồm:
1 Hỗ trợ các loại dữ liệu khác nhau: MySQL hỗ trợ nhiều loại dữ liệu khác nhau, bao gồm các kiểu dữ liệu số, chuỗi và ngày tháng Nó cũng hỗ trợ các kiểu dữ liệu đặc biệt như các kiểu dữ liệu hình ảnh, âm thanh và video.
2 Hỗ trợ các ngôn ngữ lập trình phổ biến: MySQL được tích hợp với các ngôn ngữ lập trình phổ biến như PHP, Python, Ruby, Java và NET Điều này giúp các nhà phát triển dễ dàng tạo và quản lý cơ sở dữ liệu cho ứng dụng web của họ.
3 Tích hợp tốt với các công cụ phát triển: MySQL có khả năng tích hợp tốt với các công cụ phát triển như MySQL Workbench, phpMyAdmin và MySQL Connector/J MySQL Workbench là một công cụ quản lý cơ sở dữ liệu miễn phí, có khả năng tạo và quản lý các cơ sở dữ liệu MySQL phpMyAdmin là một ứng dụng web miễn phí để quản lý các cơ sở dữ liệu MySQL MySQL Connector/J là một JDBC driver cho Java, cho phép các nhà phát triển Java truy cập cơ sở dữ liệu MySQL từ ứng dụng của mình.
4 Hỗ trợ khả năng mở rộng: MySQL có khả năng mở rộng, cho phép các nhà phát triển mở rộng cơ sở dữ liệu của họ một cách dễ dàng MySQL có khả năng phân phối dữ liệu và cân bằng tải tự động, giúp tối ưu hóa hiệu suất và khả năng mở rộng.
5 Độ ổn định và độ bảo mật cao: MySQL có độ ổn định và độ bảo mật cao,làm cho nó trở thành một công cụ quản lý cơ sở dữ liệu an toàn và đáng tin cậy MySQL hỗ trợ nhiều tính năng bảo mật, bao gồm mã hóa dữ liệu, kiểm soát truy cập và quản lý người dùng.
Một số ứng dụng của MySQL bao gồm:
1 Ứng dụng web: MySQL được sử dụng rộng rãi trong các ứng dụng web, bao gồm các trang web thương mại điện tử, các trang web tin tức và các trang web chia sẻ video.
2 Hệ thống doanh nghiệp: MySQL được sử dụng trong các hệ thống doanh nghiệp lớn, bao gồm các hệ thống quản lý kho, quản lý khách hàng và quản lý sản xuất.
3 Các ứng dụng di động: MySQL cũng được sử dụng trong các ứng dụng di động, bao gồm các ứng dụng cho Android và iOS.
4 Hệ thống nhúng: MySQL cũng được sử dụng trong các hệ thống nhúng, bao gồm các thiết bị IoT (Internet of Things) và các thiết bị điều khiển thông minh.
Với những tính năng và ứng dụng đa dạng, MySQL là một trong những công cụ quản lý cơ sở dữ liệu được sử dụng rộng rãi nhất trên thế giới Nó cung cấp cho người dùng các tính năng hấp dẫn và hiệu quả, đồng thời đảm bảo độ bảo mật và ổn định MySQL được sử dụng bởi các công ty lớn trên toàn thế giới, bao gồm Facebook, Twitter, YouTube và Google.
MySQL cũng có một cộng đồng phát triển mạnh mẽ, cung cấp các công cụ hỗ trợ phát triển, tài liệu và các giải pháp về cơ sở dữ liệu Cộng đồng này cung cấp cho người dùng các tài nguyên miễn phí để giúp họ phát triển các ứng dụng và giải quyết các vấn đề kỹ thuật liên quan đến MySQL.
Mặc dù MySQL có rất nhiều ưu điểm, nhưng cũng có một số hạn chế Một số hạn chế của MySQL bao gồm:
Hạn chế về quản lý tài nguyên: MySQL có thể gặp khó khăn trong việc quản lý các tài nguyên trên các hệ thống lớn hoặc khi có nhiều người truy cập vào cùng lúc.
Khả năng mở rộng giới hạn: Mặc dù MySQL có khả năng mở rộng, nhưng giới hạn mở rộng của nó có thể gặp hạn chế khi hệ thống càng lớn và có nhiều người truy cập.
Hạn chế về tính năng: MySQL có thể thiếu một số tính năng so với các công cụ quản lý cơ sở dữ liệu khác.
Độ phức tạp của các câu lệnh: Các câu lệnh trong MySQL có thể phức tạp và khó hiểu đối với người mới bắt đầu.
SPRINGBOOT
Java SpringBoot là một trong những framework Java được sử dụng rộng rãi trong việc phát triển các ứng dụng web và dịch vụ Nó được xây dựng trên nền tảng của Spring Framework, một trong những framework phổ biến nhất trong lập trình Java SpringBoot cung cấp cho người phát triển các tính năng và khả năng tối ưu hóa cho việc phát triển ứng dụng web nhanh chóng và dễ dàng.
Với SpringBoot, người phát triển không cần phải tốn nhiều thời gian và công sức để cấu hình và triển khai ứng dụng web Framework này cung cấp một cách tiếp cận đơn giản và hiệu quả để phát triển ứng dụng web, giảm thiểu số lượng cấu hình cần thiết để triển khai ứng dụng.
SpringBoot còn có nhiều tính năng hữu ích, giúp người phát triển tạo ra các ứng dụng web chất lượng cao và dễ dàng quản lý Với SpringBoot, người phát triển có thể sử dụng các công nghệ tiên tiến nhất và tối ưu hóa hiệu suất của ứng dụng web.
Các tính năng quan trọng của SpringBoot được sử dụng trong chương trình bao gồm:
SpringBoot Nó cung cấp cho người phát triển các tính năng và khả năng để phát triển ứng dụng web nhanh chóng và hiệu quả Các tính năng của Spring Starter bao gồm xử lý yêu cầu HTTP, xử lý lỗi, quản lý session và nhiều tính năng khác.
● Spring Security: Spring Security là một trong những tính năng quan trọng nhất của SpringBoot, cung cấp cho người phát triển các tính năng để bảo mật ứng dụng web Spring Security cung cấp các tính năng để xác thực người dùng, kiểm tra quyền truy cập và quản lý phiên làm việc của người dùng.
● Spring WebSocket: Spring WebSocket là một tính năng mạnh mẽ của SpringBoot Nó cho phép các ứng dụng web tương tác trực tiếp với các yêu cầu của người dùng và cập nhật trạng thái ứng dụng trực tiếp Với Spring WebSocket, người phát triển có thể tạo ra các kết nối hai chiều giữa máy khách và máy chủ, cho phép các ứng dụng web tương tác trực tiếp với nhau mà không cần phải thực hiện các yêu cầu HTTP mới.
● Spring Data JPA: Spring Data JPA là một trong những tính năng quan trọng của SpringBoot, cung cấp cho người phát triển các tính năng để tương tác với cơ sở dữ liệu quan hệ Nó giúp người phát triển tạo ra các lớp đại diện cho các bảng trong cơ sở dữ liệu và các đối tượng đại diện cho các bản ghi trong bảng đó Với Spring Data JPA, người phát triển có thể thực hiện các thao tác CRUD (Create, Read, Update, Delete) một cách dễ dàng.
● Spring Cache: Spring Cache là một tính năng quan trọng của SpringBoot, cung cấp cho người phát triển các tính năng để tăng tốc độ truy cập dữ liệu bằng cách lưu trữ dữ liệu tạm thời trong bộ nhớ đệm Spring Cache cung cấp các tính năng để xử lý việc lưu trữ dữ liệu trong bộ nhớ đệm, giúp người phát triển tăng tốc độ truy cập dữ liệu và giảm thiểu thời gian phản hồi của ứng dụng web.
Ngoài các tính năng trên, SpringBoot còn cung cấp cho người phát triển các tính năng khác như: Spring Cloud, Spring Batch, Spring Integration, Spring
AMQP, Spring Mobile, Spring Social, Spring Test, và nhiều tính năng khác Tất cả các tính năng này đều hỗ trợ cho người phát triển tạo ra các ứng dụng web chất lượng cao và dễ dàng quản lý.
Tóm lại, SpringBoot là một framework mạnh mẽ và tiên tiến, giúp người phát triển tạo ra các ứng dụng web chất lượng cao và dễ dàng quản lý Nó cung cấp cho người phát triển các tính năng và khả năng tối ưu hóa cho việc phát triển ứng dụng web nhanh chóng và hiệu quả, đồng thời cũng cung cấp cho người phát triển các tính năng để tăng tốc độ truy cập dữ liệu và bảo mật ứng dụng web Các tính năng như Spring Starter, Spring Security, Spring WebSocket,Spring Data JPA, và Spring Cache là những tính năng quan trọng và được sử dụng rộng rãi trong việc phát triển các ứng dụng web.
REACT
React là một thư viện JavaScript mã nguồn mở được phát triển bởi Facebook Thư viện này được sử dụng để xây dựng các giao diện người dùng động trong các ứng dụng web và di động React được phát triển để giải quyết các vấn đề về hiệu suất và tương tác người dùng trong các ứng dụng web lớn.
React sử dụng một kiểu lập trình gọi là "component-based programming" để xây dựng các giao diện người dùng Mỗi component là một đơn vị độc lập của giao diện, có thể được tái sử dụng và kết hợp với nhau để tạo thành một giao diện hoàn chỉnh Components trong React được viết bằng JavaScript và có thể kết hợp các phần HTML, CSS và JavaScript để tạo thành một thành phần hoàn chỉnh.
React sử dụng một ngôn ngữ gọi là JSX để mô tả giao diện người dùng.JSX là một phần mở rộng của JavaScript, cho phép viết HTML trong JavaScript.JSX giúp đơn giản hóa việc tạo ra các components và tăng khả năng tái sử dụng của chúng. thành phần React bằng các phiên bản JavaScript mới nhất và biên dịch chúng thành JavaScript cổ điển được hỗ trợ bởi tất cả các trình duyệt web hiện nay.
React cung cấp một API mạnh mẽ cho việc quản lý trạng thái (state) của ứng dụng State là các dữ liệu được sử dụng để thay đổi giao diện người dùng và React cung cấp các phương thức để quản lý state này React cũng cung cấp một số tính năng khác như các lifecycle methods cho phép quản lý vòng đời của các components và các hooks giúp quản lý state và side effects của ứng dụng.
React cũng có khả năng tăng tốc hiệu suất của ứng dụng bằng cách cập nhật chỉ các phần của trang mà cần được cập nhật, thay vì phải tải lại toàn bộ trang web Điều này giúp giảm thời gian tải trang và tạo trải nghiệm người dùng tốt hơn.
Ngoài ra, React có thể được sử dụng với các thư viện khác để xây dựng các tính năng phức tạp trong các ứng dụng web, chẳng hạn như Redux để quản lý trạng thái toàn cục của ứng dụng hoặc React Router để quản lý các đường dẫn và chuyển đổi giữa các trang.
React cũng hỗ trợ server-side rendering (SSR), cho phép tạo ra các ứng dụng web tĩnh với hiệu suất tốt hơn Với SSR, các component được xây dựng trên server và trả về một trang HTML đầy đủ cho trình duyệt Khi trình duyệt nhận được trang HTML, nó chỉ cần kết nối với React để quản lý các thao tác tương tác người dùng.
React cũng hỗ trợ phát triển các ứng dụng di động bằng React Native. React Native cho phép xây dựng các ứng dụng di động cho cả iOS và Android bằng việc sử dụng các components của React Các ứng dụng React Native có thể chạy nhanh và có trải nghiệm tương tự như các ứng dụng được viết bằng các ngôn ngữ lập trình đặc biệt cho di động.
React có một cộng đồng lớn và tích cực phát triển Cộng đồng này cung cấp rất nhiều tài liệu và hỗ trợ cho các lập trình viên sử dụng React, bao gồm cả
57 các công cụ và thư viện bổ sung để tăng tốc phát triển và nâng cao hiệu suất của ứng dụng.
Tóm lại, React là một thư viện JavaScript mạnh mẽ và đa dụng cho phép xây dựng các giao diện người dùng động và ứng dụng web và di động phức tạp. React có khả năng tăng tốc hiệu suất của ứng dụng, hỗ trợ quản lý trạng thái của ứng dụng, và có một cộng đồng lớn và nhiều tài liệu hỗ trợ. Để xây dựng một dự án React, việc sử dụng các công nghệ hỗ trợ là rất quan trọng để tăng tốc độ phát triển và cải thiện hiệu suất của ứng dụng Trong dự án này, các công nghệ bao gồm Tailwind CSS, Redux, React Router, React Query và Axios…. a) Tailwind CSS:
Tailwind CSS là một thư viện CSS được thiết kế để giúp dễ dàng tạo ra giao diện người dùng (UI) cho các ứng dụng web Thay vì viết CSS tùy chỉnh cho từng phần tử UI, Tailwind cho phép sử dụng các lớp CSS được định nghĩa sẵn để thiết kế các phần tử UI như nút, bảng, biểu đồ và các phần tử khác.
Một trong những ưu điểm của Tailwind CSS là nó giúp tạo ra các giao diện UI nhanh chóng và dễ dàng Thay vì phải định nghĩa các lớp CSS tùy chỉnh cho từng phần tử UI, có thể sử dụng các lớp CSS được định nghĩa sẵn để tạo ra các phần tử UI đẹp và chuyên nghiệp.
Ngoài ra, Tailwind CSS cũng cho phép tùy chỉnh các lớp CSS để phù hợp với yêu cầu của ứng dụng Điều này cho phép tạo ra các giao diện UI tùy chỉnh, phù hợp với yêu cầu và phong cách của ứng dụng yêu cầu. b) Redux:
Redux là một thư viện quản lý trạng thái cho các ứng dụng React Nó được sử dụng để lưu trữ và quản lý trạng thái của ứng dụng, đồng bộ hóa dữ liệu nhau của ứng dụng.
Một trong những ưu điểm của Redux là nó giúp giữ cho trạng thái của ứng dụng được quản lý một cách chặt chẽ Thay vì lưu trữ trạng thái ở nhiều thành phần khác nhau, Redux cho phép lưu trữ trạng thái của ứng dụng ở một nơi duy nhất Điều này giúp dễ dàng theo dõi trạng thái của ứng dụng và quản lý các hoạt động khác nhau của ứng dụng.
CONTENT BASE FILTERING
Content-based filtering là một phương pháp lọc thông tin được sử dụng trong lĩnh vực học máy và khai phá dữ liệu Nó sử dụng nội dung của các mục để đề xuất các mục khác cho người dùng.
Content-based filtering hoạt động dựa trên việc xác định các đặc tính của một mục, ví dụ như thể loại, tác giả, diễn viên, từ khóa, v.v Sau đó, nó so sánh giữa các đặc tính đó
Ví dụ, nếu một người dùng thường nghe các bài nhạc ballad với ca sĩ là Hoàng Dũng thì hệ thống sẽ đề xuất các bài hát ballad khác khác có sự tham gia của ca sĩ này.
Một ưu điểm của content-based filtering là nó không cần thông tin về người dùng khác để đưa ra đề xuất Nó cũng khá dễ triển khai và có thể được áp dụng trong nhiều lĩnh vực, từ giải trí đến thương mại điện tử. b) Ứng dụng:
Content-based filtering là một trong những phương pháp lọc thông tin được ứng dụng rộng rãi trong lĩnh vực âm nhạc, đặc biệt là trong việc gợi ý bài hát cho người dùng Với sự phát triển của các nền tảng âm nhạc trực tuyến, hệ thống gợi ý bài hát dựa trên content-based filtering đã trở thành một công cụ hữu ích giúp người dùng tìm kiếm và khám phá các bài hát mới dựa trên sở thích cá nhân.
Với content-based filtering, các đặc tính của một bài hát như thể loại, ca sĩ, nhạc sĩ, giai điệu, v.v được sử dụng để đưa ra các đề xuất cho người dùng. Nếu người dùng thường nghe các bài hát của một ca sĩ nổi tiếng, hệ thống sẽ đề xuất các bài hát khác của ca sĩ đó hoặc các bài hát có cùng thể loại hoặc phong cách với những bài hát mà người dùng đã thích trước đó. Điều này giúp cho người dùng có thể dễ dàng tìm kiếm và khám phá các bài hát mới dựa trên sở thích của mình mà không cần phải tìm kiếm từng bài hát một Ngoài ra, hệ thống gợi ý bài hát cũng có khả năng cải thiện trải nghiệm nghe nhạc của người dùng bằng cách giới thiệu các bài hát mới và thú vị hơn, giúp họ khám phá thêm nhiều loại nhạc khác nhau.
Trong ứng dụng, chúng tôi có tích hợp mục này vào việc tạo ra 1 playlist gồm 10 bài hát có độ tương quan gần nhất với những bài hát mà người dùng yêu thích và vừa mới nghe gần đây Người dùng có thể đồng ý tạo playlist này nếu
61 cảm thấy nó phù hợp với nhu cầu nghe nhạc Trong bài, chúng tôi sử dụng nghệ sĩ và thể loại bài hát để làm đặc trưng cho bài hát.
Tóm lại, content-based filtering là một công nghệ tiên tiến và hữu ích trong việc gợi ý bài hát dựa trên sở thích cá nhân của người dùng Việc áp dụng content-based filtering giúp cho hệ thống gợi ý bài hát trở nên chính xác hơn, tăng cường trải nghiệm nghe nhạc của người dùng và tạo ra những trải nghiệm âm nhạc đa dạng và phong phú.
SPEECH TO TEXT
Speech to text là một công nghệ cho phép chuyển đổi giọng nói thành văn bản viết Công nghệ này sử dụng các thuật toán và phần mềm để phân tích và chuyển đổi âm thanh của giọng nói thành các đoạn văn bản được viết Speech to text đã trở nên rất phổ biến và được sử dụng trong nhiều lĩnh vực, từ ghi chú hội nghị đến phát hiện tội phạm.
Một trong những ứng dụng quan trọng của speech to text là cho phép người dùng nhập liệu một cách nhanh chóng và dễ dàng hơn Thay vì phải gõ văn bản trên bàn phím, người dùng có thể nói ra văn bản và cho phần mềm chuyển đổi giọng nói thành văn bản Điều này giúp tiết kiệm thời gian và nâng cao năng suất làm việc.
Ngoài ra, speech to text còn được sử dụng trong nhiều lĩnh vực khác như trong lĩnh vực y tế để chuyển đổi giọng nói của bác sĩ thành văn bản y tế, trong lĩnh vực giáo dục để tạo ra các bài giảng và tài liệu học tập, và trong lĩnh vực pháp luật để chuyển đổi các bài phát biểu và các bằng chứng thành văn bản.
Các công nghệ speech to text ngày càng được phát triển và trở nên chính xác hơn Tuy nhiên, vẫn còn một số thách thức như sự khác biệt trong giọng nói của con người và khó khăn trong việc phân biệt các âm thanh và từ ngữ trong ngôn ngữ tự nhiên Nhưng với sự phát triển của trí tuệ nhân tạo và các công càng mạnh mẽ và có thể được áp dụng trong nhiều lĩnh vực khác nhau. b) Ứng dụng:
Google Speech to Text là một dịch vụ của Google cung cấp khả năng chuyển đổi giọng nói thành văn bản viết Google Speech to Text sử dụng các công nghệ tiên tiến như mạng nơ-ron, học sâu và học máy để giúp chuyển đổi giọng nói thành văn bản với độ chính xác cao.
Google Speech to Text có khả năng hỗ trợ nhiều loại ngôn ngữ và âm thanh, bao gồm tiếng Anh, tiếng Tây Ban Nha, tiếng Pháp, tiếng Đức, tiếng Nhật và nhiều loại ngôn ngữ khác Nó cũng có thể xử lý các âm thanh có độ dài và chất lượng khác nhau, từ các tệp âm thanh ngắn đến các bản ghi âm dài và chất lượng thấp.
Google Speech to Text cũng cung cấp một tập hợp các tính năng mạnh mẽ cho phép tùy chỉnh các thông số xử lý như tốc độ, độ nhạy và độ chính xác. Ngoài ra, nó cũng có thể chuyển đổi tiếng nói từ các tệp video hoặc phát trực tiếp từ các cuộc hội thoại trực tuyến.
Trong ứng dụng của chúng tôi có tích hợp tìm kiếm bài hát, nghệ sĩ, album bằng giọng nói Sử dụng dịch vụ có sẵn của google để có thể chuyển đổi âm thành thành văn bản và đưa ra kết quả tìm kiếm cho người dùng.
Google Speech to Text đã được sử dụng rộng rãi trong nhiều lĩnh vực, từ ghi âm hội nghị đến tạo ra các bài giảng và tài liệu học tập, và cả trong lĩnh vực y tế để chuyển đổi giọng nói của bác sĩ thành văn bản y tế Với các tính năng mạnh mẽ và khả năng xử lý nhanh chóng, Google Speech to Text là một công cụ quan trọng để giúp nâng cao năng suất và tiết kiệm thời gian cho người dùng.
CHROMAPRINT
Chromaprint là một thư viện mã nguồn mở được phát triển bởi Acoustid, được sử dụng để xác định vết nhạc từ một tập tin âm thanh bất kỳ Chromaprint dựa trên phương pháp so khớp điểm âm thanh (audio fingerprinting) để tạo ra một bản vân tay (fingerprint) của bản ghi âm.
Khi tạo ra một bản vân tay của một bản ghi âm, Chromaprint sử dụng một số kỹ thuật xử lý tín hiệu như Fast Fourier Transform (FFT) để chuyển đổi tín hiệu âm thanh thành một chuỗi các giá trị tần số Sau đó, Chromaprint sử dụng các thuật toán đặc biệt để tạo ra một bản vân tay duy nhất cho mỗi bản ghi âm. Bản vân tay này có thể được sử dụng để so sánh và xác định các bản ghi âm khác.
Chromaprint được sử dụng rộng rãi trong các dịch vụ âm nhạc trực tuyến như Spotify, YouTube và MusicBrainz để tìm kiếm các thông tin về bản ghi âm và xây dựng các bộ dữ liệu âm nhạc Điều này giúp cho các dịch vụ này có khả năng tìm kiếm và cung cấp thông tin về các bản ghi âm một cách nhanh chóng và chính xác hơn, giúp cho người dùng tìm kiếm và khám phá những bài hát mới và thú vị hơn.
Tóm lại, Chromaprint là một thư viện mã nguồn mở rất hữu ích trong việc tạo ra các bản vân tay âm nhạc và xác định các bản ghi âm Sử dụng Chromaprint giúp các dịch vụ âm nhạc trực tuyến có thể cung cấp thông tin về bản ghi âm một cách chính xác và nhanh chóng hơn, tạo ra trải nghiệm nghe nhạc tốt hơn cho người dùng. b) Ứng dụng:
Arcloud là một công ty cung cấp các dịch vụ âm nhạc và âm thanh trực tuyến, và music recognition API của Arcloud là một trong những dịch vụ được cung cấp để giúp các nhà phát triển ứng dụng có thể nhận dạng và phân loại các bản ghi âm âm nhạc một cách dễ dàng và nhanh chóng.
Music recognition API của Arcloud sử dụng nhiều công nghệ tiên tiến để nhận dạng các bản ghi âm âm nhạc Cụ thể, họ sử dụng Chromaprint và bản vân tay âm thanh và so khớp chúng với cơ sở dữ liệu của họ Điều này giúp cho nhận dạng các bản ghi âm âm nhạc của Arcloud có độ chính xác cao và có thể nhận dạng các bài hát từ nhiều nguồn âm thanh khác nhau. Ứng dụng của chúng tôi có sử dụng dịch vụ nhận diện bài hát của Arcloud để tìm ra tên bài hát bằng 1 đoạn nhạc bất kỳ được lưu bằng file hoặc lấy trực tiếp qua mic Kết quả cho thấy dịch vụ chính xác với file âm thanh và tương đối đối với đoạn nhạc được thu qua mic Chúng tôi nghĩ điều kiện thu âm qua mic phải đảm bảo yên tĩnh, không có tạp âm thì kết quả mới thực sự tốt.
Ngoài ra, music recognition API của Arcloud còn tích hợp nhiều tính năng như tìm kiếm lời bài hát, phân tích thể loại nhạc và cung cấp thông tin chi tiết về bài hát, nghệ sĩ và album Các tính năng này giúp cho nhà phát triển ứng dụng có thể xây dựng các ứng dụng liên quan đến âm nhạc và âm thanh như ứng dụng tìm kiếm bài hát, ứng dụng phân loại thể loại nhạc và ứng dụng cung cấp thông tin về các nghệ sĩ và album.
Tóm lại, music recognition API của Arcloud là một dịch vụ rất hữu ích cho các nhà phát triển ứng dụng liên quan đến âm nhạc và âm thanh Với sự tích hợp của Chromaprint và AcoustID, music recognition API của Arcloud có khả năng nhận dạng và phân loại các bản ghi âm âm nhạc một cách chính xác và nhanh chóng, giúp cho các ứng dụng liên quan đến âm nhạc có thể cung cấp trải nghiệm tốt hơn cho người dùng.
Các giao diện
Trang chủ
Hình 4.1 Giao diện trang chủ
- Mục đích: Giới thiệu tổng quan các album và 1 số bài hát nổi bật, mới phát hành.
Tìm kiếm bài hát, nghệ sĩ, album
Điều khiển các bài hát: phát/dừng, chuyển bài, lặp bài, âm lượng.
Trang cá nhân
Hình 4.2 Giao diện trang cá nhân
Tạo các playlist cá nhân
Phát danh sách bài hát yêu thích
Trang bảng xếp hạng
Hình 4.3 Hình ảnh giao diện bảng xếp hạng
Thống kê và xem top bài hát được nghe nhiều nhất trong ngày
Xem top bài hát nổi có nhiều lượt nghe và thích nhất
Trang nghệ sĩ, nhà sáng tác
Hình 4.4 Giao diện trang nghệ sĩ và nhà sáng tác
Hình 4.4 Giao diện chi tiết trang nghệ sĩ
Xem danh sách nghệ sĩ và nhà sáng tác và các ca khúc của họ mà người dùng có thể yêu thích
Trang tìm kiếm bài hát bằng âm thanh
Hình 4.5 Giao diện tìm kiếm nhạc bằng AI
Tìm kiếm tên bài hát giựa vào 1 đoạn nhạc bị mất lời
Tìm kiếm tên bài hát giựa vào đoạn nhạc thu vào từ mic
Trang tạo playlist theo sở thích
Hình 4.6 Giao diện trang tạo playlist bằng AI
Tạo thử 1 playlist gồm 10 bài giựa vào sở thích nghe nhạc của người dùng
Người dùng nếu thấy playlist phù hợp thì có thể tạo playlist này
Trang đăng nhập, đăng kí
Hình 4.7 Giao diện trang đăng nhập
Hình 4.8 Giao diện trang đăng kí
Đăng kí tài khoản người dùng
Đăng nhập để sử dụng bình luận và yêu thích bài hát
Trang thông tin người dùng
Hình 4.9 Giao diện trang thông tin người dùng
Xem và chỉnh sửa thông tin người dùng
Trang bình luận bài hát
Hình 4.10 Giao diện chi tiết bài hát
Xem thông tin bài hát
Bình luận đánh giá bài hát
Trang tìm kiếm bài hát, album, nghệ sĩ
Hình 4.11 Giao diện trang kết quả tìm kiếm
Tìm kiếm bằng giọng nói, file âm thanh và âm thanh.
Tìm kiếm danh sách bài hát, nghệ sĩ và album có liên quan
Hình 4.12 Giao diện trang quản trị
Thống kê bài hát có nhiều lượt nghe nhất trong tuần
Quản lý người dùng, bài hát, nghệ sĩ, album, các thể loại nhạc
Quản lý người dùng
Hình 4.13 Giao diện trang quản lý người dùng
Liệt kê thông tin người dùng
Trang quản lý bài hát
Hình 4.14 Giao diện trang quản lý bài hát
Hình 4.15 Giao diện trang thêm bài hát
Thêm, sửa, xóa bài hát
Trang quản lý nghệ sĩ
Hình 4.16 Giao diện trang quản lý nghệ sĩ
Hình 4.17 Giao diện trang thêm nghệ sĩ mới
Thêm, sửa, xóa nghệ sĩ
Trang quản lý album
Hình 4.18 Giao diện trang quản lý album
Hình 4.19 Giao diện trang thêm album