1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng

69 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Ứng Dụng Web Nghe Và Chia Sẻ Nhạc Trực Tuyến Theo Tâm Trạng
Tác giả Phạm Ngọc Hoàng, Nguyễn Huy Cường
Người hướng dẫn ThS. Nguyễn Thị Thanh Trúc
Trường học Trường Đại Học Công Nghệ Thông Tin, Đại Học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Khoa Công Nghệ Phần Mềm
Thể loại Đồ án
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 69
Dung lượng 534 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1 TỔNG QUAN (0)
    • 1.1 Đặt vấn đề (0)
    • 1.2 Lý do chọn đề tài (10)
    • 1.3 Mục tiêu đề tài (10)
    • 1.4 Phạm vi đề tài (11)
    • 1.5 Đối tượng nghiên cứu (11)
    • 1.6 Công nghệ sử dụng (11)
    • 1.7 Phương pháp thực hiện (12)
  • CHƯƠNG 2 CƠ SỞ LÝ THUYẾT (13)
    • 2.1 Mô hình Layered Architecture...................................................................... 15 .1 Khái niệm..............................................................................................15 .2 Cấu trúc mô hình Layered Architecture................................................15 .3 Ưu điểm.................................................................................................16 .4 Nhược (13)
      • 2.6.1 Giới thiệu (21)
      • 2.6.2 Ưu điểm (21)
      • 2.6.3 Nhược điểm (21)
    • 2.7 Bootstrap (21)
      • 2.7.1 Giới thiệu (21)
      • 2.7.2 Ưu điểm (22)
      • 2.7.3 Nhược điểm (22)
    • 2.8 ScyllaDB (23)
      • 2.8.1 Giới thiệu (23)
      • 2.8.2 Ưu điểm (23)
      • 2.8.3 Nhược điểm (23)
    • 2.9 MinIO (24)
      • 2.9.1 Giới thiệu (24)
      • 2.9.2 Ưu điểm (24)
      • 2.9.3 Nhược điểm (24)
    • 2.10 Figma (25)
      • 2.10.1 Giới thiệu (25)
      • 2.10.2 Ưu điểm (26)
      • 2.10.3 Nhược điểm (26)
    • 2.11 WordNet (26)
      • 2.11.1 Giới thiệu (26)
      • 2.11.2 Cấu trúc của WordNet (27)
      • 2.11.3 Ưu điểm (28)
      • 2.11.4 Nhược điểm (29)
    • 2.12 Docker (29)
      • 2.12.1 Giới thiệu (29)
      • 2.12.2 Ưu điểm (30)
      • 2.12.3 Nhược điểm (30)
    • 2.13 Recommender system (31)
      • 2.13.1 Giới thiệu (31)
      • 2.13.2 Phương pháp dựa trên nội dung (32)
      • 2.13.3 Ưu điểm (33)
      • 2.13.4 Nhược điểm (34)
    • 3.1 Khảo sát hiện trạng (35)
    • 3.2 Xác định chức năng, yêu cầu (35)
      • 3.2.1 Yêu cầu chức năng:...............................................................................38 3.2 Phân tích thiết kế hệ thống............................................................................ 39 Kiến trúc hệ thống.................................................................................39 .1 Sơ đồ kiến trúc..............................................................................39 .2 Sơ đồ các lớp kiến trúc................................................................. 40 .3 Thiết kế Database......................................................................... 41 3.2.2 Sơ đồ Usecase....................................................................................... 42 3.2.2.1 Sơ đồ (35)
      • 4.2.3 Trang Search (59)
      • 4.2.5 Trang Profile (60)
      • 4.2.6 Trang Playlist (61)
      • 4.2.7 Trang Upload Song (62)
      • 4.2.8 Trang Create Playlist (64)
      • 4.2.9 Trang Song đã Upload (64)
    • 4.3 Triển khai hệ thống tìm kiếm/đề xuất nhạc theo cảm xúc (65)
  • CHƯƠNG 5 TỔNG KẾT (67)
    • 5.1 Thuận lợi........................................................................................................72 5.2 Khó khăn........................................................................................................72 5.3 Hướng phát triển (67)

Nội dung

Ngôn ngữ này co triển các ứng dụng chạy phía Client 18 2.3.2 Ưu điểm TypeScript hỗ trợ tiết kiệm thời gian cho quá tình tìm gian phải kiểm tra code mà không cần thông qua khâu trung gian

TỔNG QUAN

Lý do chọn đề tài

Trong thời kỳ công nghệ hiện đại ngày nay, xây dựng và quản lý trang web nghe nhạc trực tuyến có tiềm năng phát triển kinh doanh rất lớn Một website hỗ trợ nghe nhạc và đề xuất bài hát yêu thích không chỉ nâng cao trải nghiệm nghe nhạc của người dùng mà còn thúc đẩy sự tương tác và giữ chân khách hàng Việc tích hợp các chức năng khuyến nghị phù hợp giúp tối ưu hoá trải nghiệm nghe nhạc, nâng cao sự hài lòng và sự trung thành của người dùng.

Chúng tôi đã chọn đề tài “Xây dựng ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng” nhằm phát triển một nền tảng âm nhạc trực tuyến giúp cải thiện trải nghiệm người dùng Mục tiêu của dự án là tạo ra một website dễ sử dụng, cá nhân hóa theo tâm trạng người nghe để tăng khả năng giữ chân khách hàng Ứng dụng sẽ cung cấp các tính năng chia sẻ nhạc và thư viện phù hợp với sở thích cảm xúc, từ đó nâng cao sự hài lòng và gắn kết của người dùng Đây là giải pháp sáng tạo nhằm đáp ứng nhu cầu nghe nhạc theo trạng thái tâm lý ngày càng phổ biến hiện nay.

Mục tiêu đề tài

Tạo trải nghiệm nghe nhạc mượt mà: Ứng dụng tối ưu giao diện người dùng và trải nghiệm nghe nhạc để người dùng có thể dễ dàng tìm kiếm, xem thông tin bài hát một cách thuận tiện

Hệ thống đề xuất thông minh: RhythmRealm tự hào giới thiệu hệ thống khuyến nghị bản nhạc thông minh giúp bạn khám phá những giai điệu mới phù hợp với sở thích cá nhân.

Phạm vi đề tài

Đề tài tập trung xây dựng website với tăng tối đa trải nghiệm người dùng

○ Triển khai sản phẩm đề tài trên môi trường web.

○ Tính năng đăng ký, đăng nhập (Authentication).

○ Tính năng nghe nhạc (Yêu thích, thêm nhạc, tạo playlist).

○ Có các chức năng cơ bản của trình phát nhạc.

○ Đề xuất nhạc mới được đăng tải cho người dùng.

○ Artist - nghệ sĩ được phép thêm nhạc.

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

● Những người thích nghe nhạc, dùng âm nhạc để thư giãn

● Những người ít nghe nhạc.

● Những người dùng nhạc để tăng hiệu quả công việc

● Những người muốn chia sẻ sản phẩm âm nhạc của cá nhân.

Công nghệ sử dụng

Công cụ thiết kế UI/UX: Figma.

Xây dựng ứng dụng: Website.

● Thư viện sử dụng: ReactJS, NodeJS, Bootstrap.

● Ngôn ngữ sử dụng: Golang.

● Thư viện sử dụng: Nodejs, Echo, Docker.

Phương pháp thực hiện

● Làm việc nhóm 1 thành viên thông qua cả 2 phương thức online và offline dưới sự hướng dẫn của giảng viên hướng dẫn.

● Phân tích nhu cầu sử dụng của đối tượng người dùng.

● Nghiên cứu tài liệu các công nghệ liên quan.

● Tìm hiểu NodeJS, ReactJS và TypeScript.

● Tìm hiểu Golang, Echo, Docker.

● Xây dựng RESTful API để thao tác với dữ liệu.

● Xây dựng website và ứng dụng hỗ trợ tương tác giữa người dùng và hệ thống.

CƠ SỞ LÝ THUYẾT

Mô hình Layered Architecture 15 1 Khái niệm 15 2 Cấu trúc mô hình Layered Architecture 15 3 Ưu điểm .16 4 Nhược

Layered Architecture (Kiến trúc phân lớp) là một phương pháp thiết kế phần mềm phổ biến, giúp hệ thống chia thành nhiều lớp khác nhau, mỗi lớp đảm nhiệm một chức năng cụ thể Trong kiến trúc này, các lớp tương tác theo kiểu phân cấp, nơi lớp trên có thể gọi dịch vụ của lớp dưới, còn lớp dưới không thể truy cập vào lớp trên Thiết kế phân lớp giúp tăng tính modularity, dễ bảo trì và mở rộng hệ thống phần mềm.

2.1.2 Cấu trúc mô hình Layered Architecture

Hình 2.1 Cấu trúc mô hình Layered Architecture

Presentation Layer (Lớp giao diện):

● Chịu trách nhiệm về giao diện và tương tác người dùng.

● Nhận đầu vào từ người dùng và hiển thị kết quả từ các thao tác của ứng dụng.

● Ví dụ: Các trang web, ứng dụng di động,

Business Logic Layer (Lớp logic nghiệp vụ):

● Chứa các quy tắc nghiệp vụ cốt lõi và logic của ứng dụng.

● Thực hiện các thao tác và tính toán nghiệp vụ.

● Ví dụ: Tính toán chiết khấu, xử lý đơn hàng, quản lý tài khoản

Data Access Layer (Lớp truy cập dữ liệu):

● Chịu trách nhiệm về tương tác với các hệ thống lưu trữ dữ liệu như cơ sở dữ liệu, file hệ thống.

● Cung cấp các phương thức để truy xuất, lưu trữ và cập nhật dữ liệu ●

Ví dụ: Các DAO (Data Access Object), các lớp truy vấn cơ sở dữ liệu

Database Layer (Lớp cơ sở dữ liệu):

Hệ quản trị cơ sở dữ liệu như MySQL, ScyllaDB và MongoDB cung cấp các thành phần quản lý dữ liệu hiệu quả, giúp lưu trữ và truy cập dữ liệu thực tế một cách dễ dàng Những hệ thống này cung cấp ưu điểm nổi bật như khả năng mở rộng linh hoạt, hiệu suất cao và độ tin cậy trong quản lý dữ liệu lớn Chính nhờ vào các thành phần này, doanh nghiệp có thể duy trì dữ liệu một cách an toàn và tối ưu, đáp ứng các yêu cầu đa dạng của cả hệ thống nhỏ và lớn.

Kiến trúc phân lớp dễ bảo trì và mở rộng nhờ vào việc mỗi lớp đảm nhận trách nhiệm rõ ràng, giúp việc sửa đổi và nâng cấp hệ thống trở nên đơn giản hơn mà không làm ảnh hưởng đến toàn bộ ứng dụng.

Lớp logic nghiệp vụ có khả năng tái sử dụng cao, giúp giảm thiểu công việc lập trình và tăng tính linh hoạt trong các dự án khác nhau Tính tái sử dụng của các lớp này cho phép chúng được áp dụng trong nhiều dự án và giao diện người dùng khác nhau, nâng cao hiệu quả phát triển phần mềm và tiết kiệm thời gian đáng kể.

Hiệu suất hệ thống có thể bị ảnh hưởng bởi giao tiếp giữa các lớp, gây ra độ trễ khi số lượng lớp tăng lên Đồng thời, việc quản lý và duy trì nhiều lớp phức tạp, đòi hỏi nhiều tài nguyên, làm tăng độ phức tạp trong quá trình phát triển và vận hành hệ thống.

React (hay ReactJS) là một thư viện Javascript do Facebook phát triển, giúp nhà phát triển web xây dựng giao diện người dùng một cách nhanh chóng và hiệu quả Phần View của ReactJS thường được thể hiện qua các component riêng biệt hoặc các thẻ HTML, giúp tối ưu hóa việc phát triển giao diện người dùng.

Một trong những đặc trưng duy nhất của Reactjs là việc render dữ liệu không những có thể thực hiện ở tầng server mà còn ở tầng client.

ReactJS cực kỳ hiệu quả nhờ vào khả năng tạo ra Virtual DOM, nơi các component thực sự tồn tại, giúp cải thiện hiệu suất ứng dụng Hệ thống của ReactJS tính toán chính xác những thay đổi cần cập nhật trên DOM và chỉ thực hiện các thao tác cần thiết, từ đó tối ưu hóa quá trình xử lý và giảm thiểu công việc không cần thiết trên DOM.

ReactJS giúp việc viết code Javascript trở nên dễ dàng hơn nhờ vào cú pháp đặc biệt JSX (Javascript mở rộng), cho phép kết hợp giữa mã HTML và Javascript một cách hiệu quả.

Javascript Ta có thể thêm vào các đoạn HTML vào trong hàm render mà không cần phải nối chuỗi.

ReactJS là thư viện chỉ phục vụ cho tầng View trong ứng dụng web Không giống như các framework MVC đầy đủ, React chỉ là một thư viện của Facebook giúp render giao diện người dùng một cách linh hoạt và hiệu quả Do đó, React không bao gồm các thành phần về Model hay Controller, tập trung vào việc xây dựng giao diện người dùng một cách tối ưu.

Controller, mà phải kết hợp với các thư viện khác.

Tích hợp Reactjs vào các framework MVC truyền thống yêu cầu cần phải cấu hình lại.

TypeScript (TS) là một dự án opensource (mã nguồn mở) đ

Microsoft đã tặng miễn phí cho người dùng một ngôn ngữ lập trình mới, có nhiều cải tiến vượt trội so với JavaScript nhờ tích hợp các tính năng hướng đối tượng mà JavaScript chưa hỗ trợ Ngôn ngữ này phát triển các ứng dụng chạy phía client, giúp nâng cao hiệu suất và khả năng mở rộng của các dự án web.

TypeScript giúp tiết kiệm thời gian trong quá trình kiểm tra mã nguồn bằng cách giảm thiểu các bước trung gian cần thiết Ngoài ra, TypeScript còn nâng cao độ chính xác của mã và giảm khả năng gặp lỗi do lỗi cú pháp hoặc kiểu dữ liệu sai, từ đó tăng hiệu quả làm việc và chất lượng dự án.

Ngôn ngữ lập trình TypeScript cho phép thao tác nhanh chóng, giúp tiết kiệm thời gian lập trình Đồng thời, TypeScript mang lại kết quả chất lượng bất ngờ, giảm thiểu lỗi và xây dựng cấu trúc mã rõ ràng, dễ bảo trì Điều này làm cho việc phát triển phần mềm trở nên hiệu quả và đáng tin cậy hơn.

Trong quá trình triển khai code, sẽ phát sinh các lỗi nhỏ cơ bản yêu cầu chỉnh sửa, và Visual Studio giúp thực hiện điều này nhanh chóng nhờ các lệnh như Rename Symbol và Find All Occurrences để xử lý hiệu quả các vấn đề về mã nguồn.

Bắt buộc sử dụng biên dịch: Người dùng không thể c đuôi ts mà phải biên dịch sang file js để chạy t

Thiết lập môi trường phát triển TypeScript có thể khá phức tạp, đòi hỏi server, các trình thử nghiệm và webpack phải tương thích với nhau Để tích hợp các thư viện phổ biến như Redux hoặc React, bạn cần thực hiện các bước cấu hình phù hợp để đảm bảo tính đồng bộ và hoạt động trơn tru của dự án Việc này giúp tối ưu hóa quy trình phát triển, nâng cao hiệu quả khi làm việc với các thư viện và Framework hiện đại.

Chỉ là ngôn ngữ hỗ trợ: TypeScript không thể sử dụn toàn bộ dự án, nó chỉ góp phần bổ trợ hiệu quả hơn v trò chủ đạo của Jav

Golang, còn gọi là Go, là ngôn ngữ lập trình mã nguồn mở phổ biến được phát triển bởi các nhân viên của Google Ngôn ngữ này hỗ trợ các lập trình viên xây dựng phần mềm hiệu quả, tối ưu hóa hiệu suất và dễ dàng mở rộng Với tính năng đơn giản, linh hoạt và khả năng xử lý đa luồng mạnh mẽ, Go trở thành lựa chọn hàng đầu cho các dự án phát triển phần mềm hiện đại.

Bootstrap

Bootstrap là nền tảng bao gồm các thư viện trình bày trang HTML, CSS và

Javascript giúp cho việc phát triển giao diện web trong nhiều môi trường đa nền tảng một cách nhanh chóng và dễ dàng hơn gọi là Responsive web.

Thiết kế Responsive web là phương pháp tạo ra website tự động điều chỉnh giao diện phù hợp với mọi thiết bị, từ máy tính để bàn đến điện thoại di động và máy tính bảng Việc này giúp tối ưu trải nghiệm người dùng trên các nền tảng khác nhau và tăng khả năng tiếp cận nội dung một cách thuận tiện Với thiết kế Responsive, website của bạn sẽ luôn đẹp mắt và dễ sử dụng, bất kể kích thước màn hình như thế nào Đây là yếu tố quan trọng để nâng cao hiệu quả kinh doanh và cải thiện thứ hạng SEO của trang web.

Với khả năng phát triển giao diện nhanh chóng, bạn có thể dễ dàng xây dựng website một cách hiệu quả và tiết kiệm thời gian Ngoài ra, hệ thống còn đảm bảo tính tương thích cao với nhiều trình duyệt khác nhau và thiết bị di động, giúp website của bạn phù hợp với mọi người dùng và nâng cao trải nghiệm người truy cập.

Bootstrap sở hữu giao diện đầy đủ, sang trọng với màu xám bạc giúp website của bạn trông chuyên nghiệp và thu hút Cấu trúc HTML rõ ràng của Bootstrap giúp bạn dễ dàng nắm bắt cách sử dụng và phát triển website một cách nhanh chóng Ngoài ra, Bootstrap còn tối ưu hóa khả năng hiển thị của website khi người dùng co dãn màn hình hoặc sử dụng các thiết bị khác nhau, đảm bảo trải nghiệm người dùng mượt mà và linh hoạt.

Bootstrap không phải là một ứng dụng web phổ biến, do đó, rất khó để tìm kiếm các tổ chức hoặc cá nhân thành thạo về Bootstrap để tích hợp cùng nền tảng lập trình web của bạn Việc này làm hạn chế khả năng sử dụng Bootstrap hiệu quả trong các dự án phát triển web.

Sản phẩm nặng và tốc độ tối ưu chưa cao khiến Bootstrap trở thành lựa chọn không phù hợp cho các dự án yêu cầu giao diện nhẹ nhàng, mượt mà Nếu bạn cần tối ưu tốc độ và trọng lượng cho website, sử dụng Bootstrap có thể gây ra gánh nặng đáng kể, ảnh hưởng đến trải nghiệm người dùng và hiệu suất chung của trang web.

ScyllaDB

ScyllaDB là kho lưu trữ dữ liệu cột rộng NoSQL phân phối mã nguồn mở, được thiết kế để tối ưu hóa hiệu suất và độ trễ thấp Nó hoàn toàn tương thích với Apache Cassandra nhưng vượt trội về thông lượng cao hơn đáng kể, phù hợp cho các ứng dụng yêu cầu xử lý dữ liệu lớn và nhanh chóng.

ScyllaDB tận dụng tối đa phần cứng hiện đại, bao gồm CPU đa nhân và bộ nhớ lớn, giúp xử lý hàng triệu yêu cầu mỗi giây với độ trễ thấp nhất có thể Nhờ kiến trúc tối ưu, ScyllaDB đảm bảo hiệu suất cao, mở rộng dễ dàng và khả năng xử lý dữ liệu lớn linh hoạt trên các hệ thống đám mây và on-premises Điều này giúp các doanh nghiệp nâng cao hiệu quả hoạt động, giảm thiểu thời gian phản hồi và tối ưu hóa trải nghiệm người dùng.

Hoàn toàn tương thích với Apache Cassandra, giúp việc di chuyển từ

Cassandra sang ScyllaDB dễ dàng mà không cần thay đổi mã ứng dụng

2.8.3 Nhược điểm Để tận dụng tối đa hiệu suất của ScyllaDB, cần sử dụng phần cứng hiện đại và mạnh mẽ, điều này có thể tăng chi phí phần cứng.

Quản lý và tối ưu hóa ScyllaDB yêu cầu kiến thức và kỹ năng kỹ thuật cao, đặc biệt đối với người mới làm quen với cơ sở dữ liệu NoSQL Việc làm chủ các công cụ và kỹ thuật phù hợp sẽ giúp cải thiện hiệu suất và độ ổn định của hệ thống Đối với những người mới bắt đầu, việc học hỏi và nắm vững các nguyên tắc cơ bản của ScyllaDB là rất cần thiết để đảm bảo quản lý dữ liệu hiệu quả.

Dù có nhiều ưu điểm, ScyllaDB vẫn chưa phổ biến bằng Cassandra, có thể dẫn đến ít tài liệu hỗ trợ và cộng đồng người dùng nhỏ hơn.

MinIO

MinIO is an object storage server that implements public APIs similar to AWS S3, allowing seamless integration for applications to communicate with either MinIO or AWS S3 As a scalable object storage solution, MinIO is ideal for storing unstructured data such as images, videos, log files, backups, and container or VM images Its compatibility with S3 APIs makes it a versatile choice for managing large volumes of unstructured data in various cloud and on-premises environments.

MinIO được tối ưu hóa để cung cấp hiệu suất cao với tốc độ đọc/ghi nhanh chóng, giúp xử lý hàng triệu đối tượng một cách hiệu quả Với khả năng xử lý dữ liệu lớn và tốc độ truy cập nhanh, MinIO phù hợp cho các ứng dụng yêu cầu hiệu suất cao và khả năng mở rộng linh hoạt.

MinIO hoàn toàn tương thích với API của Amazon S3, giúp dễ dàng tích hợp và thay thế cho S3 trong nhiều ứng dụng mà không cần thay đổi mã nguồn

MinIO tương thích với API của Amazon S3 nhưng có thể không hỗ trợ đầy đủ các tính năng phức tạp như phân tích dữ liệu và dịch vụ AI tích hợp của AWS, gây hạn chế cho những nhu cầu sử dụng nâng cao Để đảm bảo hiệu suất và độ tin cậy của hệ thống lưu trữ, việc quản lý và bảo trì MinIO đòi hỏi kiến thức kỹ thuật chuyên sâu và kỹ năng quản lý hệ thống, đặc biệt khi triển khai ở quy mô lớn đòi hỏi sự can thiệp và giám sát chặt chẽ.

Figma

Figma là một công cụ thiết kế đồ họa vector dựa trên trình duyệt web, phổ biến trong việc thiết kế giao diện người dùng (UI) và tạo prototypes Công cụ này hỗ trợ toàn diện quá trình tổ chức thiết kế, từ việc brainstorm ý tưởng concept đến việc khởi tạo mã code từ các mẫu thiết kế Với khả năng cộng tác trực tuyến linh hoạt, Figma giúp các nhóm thiết kế làm việc hiệu quả và tiết kiệm thời gian.

Figma được xem như Google Docs dành cho thiết kế, cho phép nhiều người cùng cộng tác trực tuyến trên một bản thiết kế Tương tự như Google Docs hoặc Sheets, Figma hỗ trợ làm việc nhóm trong thời gian thực từ các địa điểm khác nhau mà không cần qua các bước gửi – nhận phức tạp Điều này giúp tối ưu hóa quy trình làm việc, nâng cao hiệu quả sáng tạo và tiết kiệm thời gian trong quá trình thiết kế.

Khả năng tương thích với nhiều hệ điều hành khác nhau như Windows, Linux, MacOS,

Figma là công cụ phù hợp để làm việc nhóm hiệu quả, giúp các thành viên dễ dàng tương tác và phối hợp Trong Figma, toàn bộ những người tham gia đều được hiển thị dưới dạng avatar, tạo điều kiện thuận lợi cho việc nhận diện và giao tiếp trong quá trình làm việc Nhờ vào tính năng này, các nhóm làm việc có thể dễ dàng theo dõi hoạt động của từng thành viên và phối hợp một cách nhịp nhàng, nâng cao hiệu quả công việc.

28 các thay đổi trong file cũng được cập nhật để bạn có thể sử theo dõi quá trình thiết kế một cách dễ dàng.

Toàn bộ thiết kế được lưu trữ trên hệ thống điện toán đám mây, giúp bảo vệ dữ liệu và đảm bảo khả năng truy cập mọi lúc mọi nơi Khi thiết kế bị gián đoạn do mất kết nối hoặc lỗi thiết bị, người dùng vẫn có thể dễ dàng khôi phục dữ liệu trên Figma chỉ với vài thao tác đơn giản Lưu trữ đám mây đảm bảo các thông tin chi tiết về thiết kế luôn an toàn và sẵn sàng phục vụ công việc, nâng cao hiệu quả và uy tín dự án.

Không thể làm việc offline hoặc khi server của Figma gặp sự cố

Chỉ chạy trên hệ thống có RAM 4GB trở lên

WordNet

WordNet là một cơ sở dữ liệu từ vựng lớn, đóng vai trò là nguồn tài nguyên quan trọng trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP) Được phát triển tại Đại học Princeton, WordNet giúp các hệ thống AI hiểu rõ hơn về mối quan hệ giữa các từ, từ đồng nghĩa, trái nghĩa và các khái niệm liên quan Nhờ vào khả năng tổ chức dữ liệu theo cấu trúc rõ ràng, WordNet hỗ trợ hiệu quả trong các ứng dụng như phân tích ngôn ngữ, dịch máy, và trí tuệ nhân tạo Đây là công cụ không thể thiếu để nâng cao chất lượng các dự án NLP hiện đại.

Princeton WordNet được thiết kế để mô phỏng cách con người tổ chức kiến thức về từ ngữ, giúp hiểu rõ mối quan hệ giữa các từ trong ngôn ngữ Thay vì dựa vào các định nghĩa từ điển truyền thống, WordNet nhóm các từ có nghĩa tương tự thành các tập hợp gọi là synsets, hay bộ nhóm đồng nghĩa Điều này giúp cải thiện khả năng xử lý ngôn ngữ tự nhiên và nâng cao hiệu quả các ứng dụng trí tuệ nhân tạo trong việc hiểu và phân tích từ vựng.

WordNet được xây dựng như một mạng lưới ngữ nghĩa phức hợp, liên kết các khái niệm và từ ngữ lại với nhau một cách chặt chẽ và rõ ràng Cấu trúc này giúp biểu diễn kiến thức từ vựng một cách linh hoạt và đa dạng, tạo nền tảng hỗ trợ hiệu quả cho các ứng dụng xử lý ngôn ngữ tự nhiên.

Các synset trong WordNet được liên kết với nhau qua một hệ thống các mối quan hệ ngữ nghĩa phong phú, thể hiện mối liên kết ý nghĩa giữa các khái niệm khác nhau Một số mối quan hệ quan trọng như quan hệ siêu hình, đồng nghĩa, trái nghĩa và quan hệ phạm trù giúp mô tả chính xác các mối liên hệ giữa các từ và ý tưởng Nhờ vào các mối quan hệ này, WordNet trở thành một công cụ mạnh mẽ trong xử lý ngôn ngữ tự nhiên, hỗ trợ trong việc phân tích và hiểu các mối liên hệ ý nghĩa giữa các từ vựng.

● Đồng nghĩa (Synonymy): Như đã đề cập, các từ trong cùng một synset là từ đồng nghĩa. ngược nhau, ví dụ {nóng} và {lạnh}.

Thượng vị (Hypernymy) và Hạ vị (Hyponymy) thể hiện mối quan hệ phân cấp giữa các khái niệm, giúp xác định mức độ tổng quát và cụ thể Trong đó, synset thượng vị đại diện cho khái niệm tổng quát hơn, ví dụ như {động vật} là thượng vị của {động vật có vú}, còn synset hạ vị là các khái niệm cụ thể hơn, như {chó} là hạ vị của {động vật có vú} Mối quan hệ này xây dựng hệ thống phân cấp khái niệm, hỗ trợ suy luận chính xác và tìm kiếm thông tin hiệu quả.

Trong ngữ cảnh ngữ nghĩa học, meronymy đề cập đến mối quan hệ giữa một phần và toàn thể, ví dụ như bánh xe là meronymy của xe hơi, nghĩa là bánh xe chỉ là một thành phần của xe hơi Ngược lại, holonymy mô tả mối quan hệ ngược lại, nơi xe hơi là holonymy của bánh xe, tượng trưng cho toàn bộ chứa các phần cấu thành Hiểu rõ các mối quan hệ này giúp cải thiện khả năng phân loại và truy vấn dữ liệu trong các hệ thống tìm kiếm và xử lý ngôn ngữ tự nhiên.

Trong ngữ nghĩa học, troponymy mô tả mối quan hệ giữa một động từ và cách thức thực hiện động từ đó Ví dụ, "đi bộ" là troponymy của "di chuyển", thể hiện rằng đi bộ là một phương thức cụ thể để thực hiện hành động di chuyển Hiểu rõ mối quan hệ này giúp làm rõ cách các động từ liên kết với nhau về mặt ý nghĩa trong ngôn ngữ Troponymy đóng vai trò quan trọng trong việc phân tích và diễn đạt ý nghĩa của các hành động trong ngôn ngữ hàng ngày.

Trong tiếng Việt, thuật ngữ "Entailment" mô tả mối quan hệ giữa hai động từ, trong đó một động từ bao gồm hoặc ngụ ý hành động của động từ kia Ví dụ, hành động "{mua}" entailment "{trả tiền}" nghĩa là khi bạn mua hàng, bạn cũng đồng thời phải trả tiền cho món hàng đó Hiểu rõ mối quan hệ này giúp cải thiện khả năng sử dụng ngôn ngữ một cách chính xác trong giao tiếp và viết lách hàng ngày Entailment đóng vai trò quan trọng trong phân tích ngôn ngữ tự nhiên, giúp xác định các mối liên hệ logic giữa các từ và hành động trong câu.

WordNet tổ chức theo các loại từ như danh từ, động từ, tính từ và trạng từ, mỗi loại từ có mạng lưới ngữ nghĩa riêng biệt Điều này giúp phân biệt rõ nghĩa của từ dựa trên loại từ của nó, như ví dụ về từ "bay" có thể mang nghĩa là danh từ (chuyến bay) hoặc động từ (hành động bay).

WordNet-Affect giúp chuyển đổi các thẻ mô tả tâm trạng thành các giá trị số trong không gian V-A-D, từ đó định lượng cảm xúc liên quan đến âm nhạc một cách chính xác Công cụ này rất quan trọng trong việc phân tích và so sánh cảm xúc giữa các bài hát, hỗ trợ các nghiên cứu về tâm lý và cảm xúc âm nhạc Định lượng cảm xúc không chỉ giúp hiểu rõ hơn về tác động của âm nhạc đến người nghe mà còn mở ra nhiều cơ hội ứng dụng trong lĩnh vực phân tích âm nhạc và trí tuệ nhân tạo.

WordNet-Affect là một hệ thống phân loại cảm xúc có cấu trúc rõ ràng, giúp tổ chức và phân tích dữ liệu cảm xúc một cách hiệu quả Hệ thống này cung cấp cách tiếp cận hệ thống hóa cảm xúc, hỗ trợ các nghiên cứu và ứng dụng trong lĩnh vực xử lý ngôn ngữ tự nhiên Nhờ đó, các hệ thống AI có thể hiểu và phản hồi theo cảm xúc của người dùng một cách chính xác hơn.

WordNet-Affect mở rộng phạm vi phân tích cảm xúc nhờ vào mối liên hệ với WordNet, cho phép khai thác các mối quan hệ ngữ nghĩa giữa các từ để nâng cao khả năng phân tích cảm xúc một cách chính xác và toàn diện hơn Việc này giúp nắm bắt các sắc thái tinh tế trong cảm xúc, từ đó cải thiện hiệu quả trong các ứng dụng xử lý ngôn ngữ tự nhiên liên quan đến cảm xúc.

Sử dụng WordNet-Affect giúp tự động hóa quá trình gán nhãn cảm xúc cho bài hát, từ đó tiết kiệm thời gian và công sức so với phương pháp gán nhãn thủ công.

WordNet-Affect có độ phủ hạn chế khi không thể bao quát hết tất cả các từ ngữ, đặc biệt là các thuật ngữ tiếng lóng hoặc từ hiếm gặp trong lĩnh vực âm nhạc Điều này gây ra khả năng bỏ sót một số khía cạnh cảm xúc của bài hát, ảnh hưởng đến độ chính xác trong phân tích cảm xúc âm nhạc.

Việc gán nhãn cảm xúc trong WordNet-Affect, dù do các chuyên gia thực hiện, vẫn mang tính chủ quan và có thể ảnh hưởng đến độ chính xác của phân tích cảm xúc Chủ quan trong quá trình gán nhãn có thể làm giảm độ tin cậy của dữ liệu, đặt ra thách thức trong việc xây dựng các hệ thống phân tích cảm xúc chính xác và nhất quán Do đó, cần có các phương pháp chuẩn hóa và kiểm định để giảm thiểu ảnh hưởng của yếu tố chủ quan trong quá trình này.

Docker

Docker là nền tảng mở giúp lập trình viên và quản trị hệ thống xây dựng, vận chuyển và chạy ứng dụng phân tán một cách dễ dàng Nền tảng này đóng gói phần mềm vào các container tiêu chuẩn hóa, tối ưu hóa quá trình triển khai và quản lý ứng dụng Ban đầu, Docker được phát triển bằng Python, nhưng hiện tại đã chuyển sang sử dụng ngôn ngữ Golang để nâng cao hiệu suất và khả năng mở rộng.

Docker provides tools and services that enable developers and system administrators to easily develop, deploy, and run applications using containers As a platform, Docker simplifies the process of building, deploying, and running applications across different environments, embodying the "build once, run anywhere" philosophy through virtualization technology.

Khi chúng ta muốn chạy app thì chúng ta phải thiết lập môi trường chạy cho nó Thay vì chúng ta sẽ đi cài môi trường chạy cho nó thì chúng ta sẽ chạy docker.

Docker giúp các ứng dụng có khả năng chạy trên bất kỳ máy nào có Docker, bất kể sự khác biệt về môi trường hệ điều hành hoặc cấu hình Nhờ đó, việc triển khai và quản lý ứng dụng trở nên dễ dàng hơn, giảm thiểu các vấn đề liên quan đến sự không tương thích Điều này đảm bảo tính nhất quán và độ tin cậy cao trong quá trình vận hành phần mềm trên nhiều nền tảng khác nhau.

Containers sử dụng tài nguyên hệ thống ít hơn so với máy ảo (VM) vì chúng chia sẻ nhân hệ điều hành với máy chủ, giảm thiểu overhead.

Docker Hub là một kho lưu trữ công cộng cho các container Docker, cho phép bạn sử dụng lại và chia sẻ các container đã tạo.

Quản lý một số lượng lớn containers, đặc biệt trong môi trường sản xuất quy mô lớn, có thể trở nên phức tạp và đòi hỏi các công cụ và kỹ năng quản lý phù hợp như Kubernetes để tối ưu hóa hiệu quả vận hành và đảm bảo an toàn hệ thống.

Containers chia sẻ nhân hệ điều hành với máy chủ, vì vậy bất kỳ lỗ hổng bảo mật nào ở cấp độ nhân đều có thể ảnh hưởng đến tất cả các container Điều này khiến việc bảo vệ an ninh cho hệ thống trở nên cực kỳ quan trọng trong môi trường container Docker là một nền tảng phổ biến để triển khai container, nhưng cũng cần được cấu hình và quản lý cẩn thận để giảm thiểu các rủi ro bảo mật.

33 yêu cầu quyền root để hoạt động, có thể gây ra các vấn đề bảo mật nếu không được quản lý cẩn thận.

Recommender system

Hệ thống gợi ý là thành phần quan trọng trong hệ thống hỗ trợ quyết định, giúp cá nhân hóa trải nghiệm người dùng bằng cách đề xuất các lựa chọn phù hợp mà không cần quá trình tìm kiếm phức tạp Nó phân tích hành vi và sở thích của người dùng để lựa chọn những sản phẩm tối ưu từ hàng loạt danh mục đa dạng, dựa trên kiến thức chuyên môn, thông tin sản phẩm và dữ liệu thu thập từ hành vi người dùng Ứng dụng phổ biến của hệ thống gợi ý xuất hiện trên các nền tảng thương mại điện tử như sách, phim, nhạc, tin tức, giúp người dùng dễ dàng tìm kiếm và lựa chọn sản phẩm phù hợp Các đề xuất được đưa ra dựa trên các yếu tố như xu hướng mua sắm, thông tin cá nhân và lịch sử tương tác, nhằm dự đoán hành vi mua sắm trong tương lai Các hình thức gợi ý đa dạng bao gồm đề xuất sản phẩm và cung cấp thông tin chi tiết về sản phẩm để nâng cao trải nghiệm người dùng.

Dịch vụ được cá nhân hóa, tích hợp các đánh giá cộng đồng, chia sẻ và bình luận từ người dùng khác nhằm tạo ra trải nghiệm phù hợp với nhu cầu và mục tiêu riêng của từng cá nhân.

2.13.2 Phương pháp dựa trên nội dung

Khác với phương pháp lọc cộng tác (collaborative filtering) dựa trên lịch sử tương tác của người dùng, hệ thống này sử dụng phương pháp lọc dựa trên nội dung (content-based filtering) kết hợp với các yếu tố cảm xúc (emotion-based filtering). Thay vì phân tích hành vi của người dùng, hệ thống sẽ phân tích nội dung của các bài hát để tìm ra những bài hát phù hợp nhất với yêu cầu của người dùng.

Cụ thể, hệ thống sẽ thực hiện các bước sau để đưa ra các gợi ý:

Hệ thống phân tích tag và thể loại giúp xác định chính xác các nhãn và thể loại của bài hát, từ đó đề xuất những bài hát phù hợp với yêu cầu của người dùng Các tag có thể phản ánh thể loại nhạc như rock, pop, jazz hoặc các chủ đề liên quan như buồn, vui, sôi động, đảm bảo trải nghiệm nghe nhạc đa dạng và cá nhân hóa Việc phân tích này tối ưu hóa khả năng tìm kiếm và đề xuất nội dung phù hợp, nâng cao sự hài lòng của người dùng.

Hệ thống phân tích cảm xúc của bài hát dựa trên các yếu tố VAD (valence, arousal, dominance), trong đó valence đề cập đến mức độ tích cực hoặc tiêu cực của cảm xúc mà bài hát truyền tải Việc đánh giá valence giúp xác định bài hát mang lại cảm xúc tích cực hay tiêu cực, từ đó nâng cao trải nghiệm người nghe và tối ưu hóa nội dung theo tiêu chuẩn SEO.

○ Arousal (sự kích thích): Thể hiện mức độ kích thích hoặc bình tĩnh của cảm xúc.

○ Dominance (sự kiểm soát): Thể hiện mức độ kiểm soát hoặc thụ động của cảm xúc.

● Kết hợp tag, thể loại và cảm xúc: Dựa trên các giá trị đã phân tích, hệ thống sẽ kết hợp thông tin tag, thể loại và các giá trị VAD để tính toán một điểm số phù hợp cho từng bài hát.

○ Nếu người dùng cung cấp tag, hệ thống sẽ ưu tiên các bài hát có tag phù hợp.

○ Nếu người dùng cung cấp giá trị VAD, hệ thống sẽ tìm các bài hát có giá trị VAD tương đồng.

○ Nếu người dùng cung cấp cả tag và VAD, hệ thống sẽ kết hợp cả hai yếu tố để tối ưu hóa độ chính xác.

Hệ thống có khả năng hiểu và xử lý các "emotion word" (từ biểu thị cảm xúc) mà người dùng nhập vào, như "happy", "sad" hoặc "calm" Nó利用 WordNet, một từ điển đồng nghĩa, cùng với một lexicon riêng để chuyển đổi các cảm xúc này thành các giá trị VAD phù hợp Các giá trị VAD này sau đó được sử dụng để đề xuất các phản hồi phù hợp và chính xác hơn với trạng thái cảm xúc của người dùng.

Hệ thống hoạt động hiệu quả mà không cần dựa vào dữ liệu lịch sử tương tác của người dùng, đảm bảo tính riêng tư và bảo mật thông tin cá nhân Điều này giúp hệ thống vận hành ổn định ngay cả khi có người dùng mới hoặc chưa có lịch sử tương tác trước đó.

Hệ thống có khả năng xử lý "cold-start" hiệu quả bằng cách đề xuất các nội dung mới mà không cần dữ liệu tương tác trước đó, giúp nâng cao trải nghiệm người dùng Khả năng này đặc biệt quan trọng trong các tình huống thêm bài hát hoặc nội dung mới vào hệ thống, đảm bảo người dùng luôn nhận được những đề xuất phù hợp ngay khi nội dung mới ra mắt Việc xử lý "cold-start" tốt giúp hệ thống duy trì tính cập nhật và tăng khả năng tương tác của người dùng với nền tảng.

Hệ thống tận dụng thông tin metadata của các bài hát như tag, thể loại và giá trị VAD để nâng cao độ chính xác của các đề xuất Nhờ phân tích dữ liệu metadata, hệ thống hiểu rõ nội dung sâu hơn, từ đó đưa ra những gợi ý phù hợp nhất cho người dùng Việc sử dụng metadata giúp cải thiện trải nghiệm nghe nhạc bằng cách đề xuất các bài hát phù hợp với sở thích và nội dung của từng người dùng.

Hệ thống nổi bật với khả năng linh hoạt trong việc kết hợp nhiều yếu tố như tag, thể loại và giá trị VAD, từ đó tạo ra các trải nghiệm gợi ý phong phú và đa dạng hơn cho người dùng.

36 word", giúp người dùng dễ dàng tìm kiếm nội dung phù hợp với tâm trạng của mình.

● Tính linh hoạt: Hệ thống có thể được điều chỉnh dễ dàng để phù hợp với nhiều loại nội dung và yêu cầu khác nhau.

Để hệ thống hoạt động hiệu quả, yêu cầu metadata của các bài hát phải chính xác và đầy đủ, bao gồm các thông tin như tag, thể loại và giá trị VAD Metadata chính xác giúp cải thiện chất lượng gợi ý và đảm bảo các đề xuất phù hợp với nội dung của bài hát Nếu thông tin metadata không chính xác, hệ thống sẽ không thể đưa ra các gợi ý phù hợp, ảnh hưởng đến trải nghiệm người dùng Do đó, việc cập nhật và kiểm tra metadata thường xuyên là rất cần thiết để duy trì hiệu quả hoạt động của hệ thống đề xuất âm nhạc.

● Có thể bỏ lỡ các gợi ý "bất ngờ": Hệ thống không có khả năng khám phá các nội dung mới mà người dùng có thể thích nhưng chưa từng biết đến Các thuật toán lọc cộng tác thường làm tốt hơn trong việc này vì chúng dựa trên các tương tác của người dùng khác.

Hệ thống gợi ý có xu hướng tập trung đề xuất những nội dung tương tự với sở thích trước đó của người dùng, dẫn đến khả năng "tính lọc" cao Tính năng này có thể hạn chế người dùng trong việc khám phá các nội dung mới và đa dạng, làm giảm trải nghiệm mở rộng kiến thức hoặc khám phá các lĩnh vực chưa từng tiếp xúc Để nâng cao hiệu quả, các nhà phát triển cần cân nhắc cân bằng giữa đề xuất dựa trên sở thích và khuyến khích khám phá nội dung mới.

Độ chính xác của giá trị VAD trong việc mô tả cảm xúc của bài hát có giới hạn do tính chất chủ quan của các giá trị này, có thể không phản ánh chính xác cảm xúc của người nghe Quá trình chuyển đổi từ từ cảm xúc sang giá trị VAD cũng có thể gặp phải độ chính xác không cao, từ đó ảnh hưởng đến chất lượng các gợi ý dựa trên cảm xúc.

Khảo sát hiện trạng

Thị trường nghe nhạc trực tuyến tại Việt Nam đang bùng nổ với sự xuất hiện của các ứng dụng hàng đầu như Spotify, Apple Music, Zing MP3 và NhacCuaTui Các nền tảng này cung cấp kho nhạc khổng lồ đa dạng thể loại, đáp ứng nhu cầu thưởng thức âm nhạc của người dùng Ngoài ra, từng ứng dụng còn sở hữu những tính năng hấp dẫn riêng như đề xuất bài hát cá nhân hóa, chế độ offline và trải nghiệm nghe nhạc chất lượng cao Sự cạnh tranh gay gắt từ các ứng dụng này giúp người dùng có nhiều lựa chọn phù hợp, thúc đẩy thị trường âm nhạc trực tuyến phát triển mạnh mẽ tại Việt Nam.

Mặc dù có nhiều ưu điểm, các hệ thống này vẫn gặp phải một số hạn chế như giao diện phức tạp và chứa nhiều chức năng không cần thiết, gây khó khăn cho người dùng, đặc biệt là người cao tuổi hoặc ít tiếp xúc với công nghệ.

Việc cải tiến và tối ưu hóa giao diện người dùng là yếu tố quan trọng nhằm tạo ra các trải nghiệm đơn giản, thân thiện và dễ sử dụng hơn cho mọi đối tượng người dùng Các thiết kế tối ưu giúp nâng cao trải nghiệm người dùng, từ đó thu hút nhiều người dùng mới và giữ chân khách hàng cũ Hướng đến sự trực quan và dễ tiếp cận không chỉ cải thiện khả năng sử dụng mà còn tăng tính cạnh tranh của sản phẩm trên thị trường.

Xác định chức năng, yêu cầu

○ Quản lý thông tin cá nhân

○ Hiển thị danh sách bài hát theo tiêu chí

○ Cho phép tìm kiếm bài hát

○ Hiển thị thông tin bài hát: Tên bài hát, Nghệ sĩ, Album, Thời lượng, Lượt nghe.

● Quản lý danh sách phát

○ Cho phép người dùng tạo, chỉnh sửa, xóa danh sách phát.

○ Thêm/xóa bài hát vào danh sách phát.

○ Chia sẻ: Cho phép người dùng chia sẻ bài hát, danh sách phát lên mạng xã hội.

○ Gợi ý: Gợi ý bài hát, nghệ sĩ, thể loại dựa trên lịch sử nghe nhạc của người dùng. mới, sự kiện âm nhạc.

3.2 Phân tích thiết kế hệ thống

Hình 3.1 Sơ đồ kiến trúc hệ thống

3.2.1.2Sơ đồ các lớp kiến trúc

Hình 3.2 Sơ đồ lớp kiến trúc

3.2.2.1 Sơ đồ Usecase tổng quát

STT Tên Actor Mô tả

1 User Người sử dụng website

2 Artist Người đóng góp nhạc lên website

3 Admin Người quản lý hệ thống

ID Tên Usecase Actor Mô tả

UC01 Đăng nhập User Cho phép người dùng đăng nhập vào ứng dụng để sử dụng dịch vụ từ ứng dụng.

UC03 Tìm kiếm bài hát UC04 Nghe nhạc

Cho phép người dùng đăng ký tài khoản để truy cập vào ứng dụng.

Cho phép người dùng tìm kiếm bài hát bằng thông tin bài hát

Cho phép người dùng nghe bài hát được chọn

Cho phép người dùng tạo một playlist.

UC06 Thêm bài hát vào playlist User Cho phép người dùng chọn bài hát để thêm vào playlist yêu thích.

UC07 Xóa bài hát trong playlist User Cho phép người dùng chọn bài hát để xóa khỏi playlist.

UC08 Xóa playlist User Cho phép người dùng xóa đi playlist của bản thân.

UC09 Điều chỉnh bài hát User Cho phép người dùng có thể tùy chỉnh chức năng nghe nhạc khi nhạc đang được phát.

Cho phép người dùng có thể thích bài hát.

Cho phép người dùng theo dõi ca sĩ yêu thích

UC12 Quản lý bài hát cá nhân Artist Cho phép người dùng được quản lý các bài hát của chính mình.

UC13 Quản lý hệ thống Admin Cho phép quản lý kiểm soát được hệ thống website

3.2.3.1 Đặc tả use case UC01

Tên Use Case Đăng nhập

Mô tả Cho phép người dùng đăng nhập vào ứng dụng để sử dụng dịch vụ từ ứng dụng.

Trigger Người dùng muốn đăng nhập vào ứng dụng.

Tiền điều kiện Hậu điều kiện

- Người dùng đã có tài khoản trong ứng dụng.

- Thiết bị có kết nối internet.

- Nếu thành công, người dùng có thể đăng nhập vào ứng dụng và sử dụng dịch vụ.

- Nếu thất bại, thông báo đến người dùng và tiến hành đăng nhập lại.

Diễn biến chính 1 Người dùng truy cập vào ứng dụng.

2 Người dùng nhập đầy đủ thông tin gồm Email và mật khẩu.

3 Người dùng chọn đăng nhập.

4 Hệ thống xác thực thông tin đăng nhập thành công 5

Hệ thống cho phép người dùng truy cập ứng dụng và sử dụng dịch vụ.

6 Hệ thống ghi nhận hoạt động đăng nhập thành công.

Diễn biến phụ 2a Người dùng chọn phương thức đăng nhập bằng tài khoản Google.

1 Hệ thống chuyển sang màn hình đăng nhập bằng tài khoản Google.

2 Người dùng nhập tài khoản Google.

4a Google xác thực thông tin đăng nhập thành công.

Ngoại lệ 4c Hệ thống xác thực thông tin đăng nhập không thành công và hiển thị thông báo.

1 Người dùng nhập lại thông tin tài khoản.

Bảng 3.3 Đặc tả usecase UC01

3.2.3.2 Đặc tả use case UC02

Tên Use Case Đăng ký

Mô tả Cho phép người dùng đăng ký tài khoản để truy cập vào ứng dụng.

Trigger Người dùng muốn đăng ký tài khoản.

Tiền điều kiện Thiết bị có kết nối internet.

Hậu điều kiện - Nếu thành công, người dùng có thể đăng nhập vào ứng dụng và sử dụng dịch vụ.

- Nếu thất bại, thông báo đến người dùng và tiến hành đăng ký lại.

Diễn biến chính 1 Người dùng truy cập vào ứng dụng.

2 Người dùng nhập đầy đủ thông tin gồm Email, số điện thoại và mật khẩu.

3 Người dùng chọn đăng ký.

4 Hệ thống xác thực thông tin đăng ký thành công.

5 Hệ thống cho phép người dùng đăng nhập và truy cập vào ứng dụng.

6 Hệ thống ghi nhận hoạt động đăng ký thành công.

2a Người dùng chọn phương thức đăng ký bằng tài khoản Google.

Diễn biến phụ Ngoại lệ

1 Hệ thống chuyển sang màn hình đăng ký bằng tài khoản Google.

2 Người dùng nhập tài khoản Google. 4a Google xác thực thông tin đăng ký thành công 4b Hệ thống xác thực thông tin đăng ký không thành công và hiển thị thông báo.

1 Người dùng nhập lại thông tin đăng ký.

Bảng 3.4 Đặc tả usecase UC02

3.2.3.3 Đặc tả use case UC03

Tên Use Case Tìm kiếm bài hát

Mô tả Cho phép người dùng tìm kiếm bài hát bằng thông tin bài hát

Trigger Người dùng muốn tìm kiếm bài hát

Tiền điều kiện- Người dùng đã đăng nhập vào hệ thống - Thiết bị có kết nối internet.

Hậu điều kiện Không có

Diễn biến chính1 Người dùng truy cập vào ứng dụng.

2 Người dùng nhấn vào thanh tìm kiếm

3 Người dùng nhập tên bài hát cần tìm

4 Hệ thống trả về danh sách các bài hát phù hợp

Diễn biến phụ Không có

Ngoại lệ 4a Hệ thống không tìm được các bài hát phù hợp

Bảng 3.5 Đặc tả usecase UC03

3.2.3.4 Đặc tả use case UC04

Tên Use Case Nghe nhạc.

Mô tả Cho phép người dùng nghe bài hát được chọn

Trigger Người dùng muốn nghe nhạc.

Tiền điều kiện Hậu điều kiện

- Người dùng đã đăng nhập vào hệ thống.

- Người dùng đang ở giao diện danh sách bài hát - Nếu thành công, bài hát sẽ được stream đến người dùng

Diễn biến phụ Ngoại lệ

1 Người dùng nhấn chọn một bài hát từ danh sách 2

Hệ thống stream nhạc theo từng chunk tới người dùng

3 Người dùng có thể nghe, skip, pause, nhạc Không có

Bảng 3.6 Đặc tả usecase UC04

3.2.3.5 Đặc tả use case UC05

Tên Use Case Tạo playlist

Mô tả Cho phép người dùng tạo danh sách các bài hát

Trigger Người dùng muốn lưu nhiều bài hát theo danh sách

Tiền điều kiện - Người dùng đã đăng nhập vào hệ thống.

- Thiết bị có kết nối internet.

Hậu điều kiện - Danh sách mới được tạo.

Diễn biến chính Diễn biến phụ

1 Người dùng nhấn vào nút "Tạo playlist" (hoặc tương tự) 2 Người dùng nhập tên playlist.

3 Người dùng có thể (không bắt buộc):

● (Optional) Nhập mô tả cho Playlist

● (Optional) Thêm ảnh cho Playlist

4 Người dùng nhấn nút "Lưu" (hoặc tương tự) để tạo playlist.

5 Hệ thống xác nhận playlist đã được tạo thành công 1 Tại bất kì bước nào, người dùng có thể dừng tạo playlist

2 Hệ thống huỷ thao tác Playlist, quay về trang trước

Bảng 3.7 Đặc tả usecase UC05

3.2.3.6 Đặc tả use case UC06

Tên Use Case Thêm bài hát vào playlist

Mô tả Cho phép người dùng chọn bài hát để thêm vào playlist yêu thích.

Trigger Người dùng muốn thêm bài hát vào playlist đã chọn.

Tiền điều kiện - Người dùng đã đăng nhập vào dịch vụ nghe nhạc -

Người dùng đang xem một bài hát, album hoặc playlist - Playlist mà người dùng muốn thêm bài hát vào đã tồn tại.

Hậu điều kiện Diễn biến chính

- Nếu thành công, bài hát được thêm vào playlist đã chọn

Khi người dùng thêm bài hát vào playlist, hệ thống cần hiển thị thông báo lỗi rõ ràng nếu quá trình thất bại để thông báo cho người dùng biết Để thêm bài hát vào playlist, người dùng chỉ cần chọn bài hát mong muốn, sau đó chọn tùy chọn "Thêm vào playlist", thường là biểu tượng dấu ba chấm hoặc các biểu tượng tương tự để thực hiện thao tác nhanh chóng và dễ dàng.

3 Hệ thống hiển thị danh sách các playlist mà người dùng sở hữu.

4 Người dùng chọn playlist muốn thêm bài hát vào 5 Hệ thống thêm bài hát vào playlist đã chọn.

6 Hệ thống hiển thị thông báo xác nhận bài hát đã được thêm vào playlist.

Diễn biến phụ 3a Người dùng chọn "Tạo playlist mới".

1 Hệ thống hiển thị giao diện tạo playlist mới.

2 Người dùng nhập tên playlist mới.

4 Hệ thống tạo playlist mới và thêm bài hát vào playlist đó.

Ngoại lệ 5a Bài hát đã tồn tại trong playlist đã chọn.

Hệ thống hiển thị thông báo cho biết bài hát đã tồn tại trong playlist.

5b Xảy ra lỗi khi thêm bài hát vào playlist (lỗi kết nối, lỗi server ).

Hệ thống hiển thị thông báo lỗi và yêu cầu người dùng thử lại sau.

Bảng 3.8 Đặc tả usecase UC06

3.2.3.7 Đặc tả use case UC07

Tên Use Case Xóa bài hát trong playlist

Mô tả Cho phép người dùng chọn bài hát để xóa khỏi playlist.

Trigger Người dùng muốn xóa bài hát trong playlist.

Tiền điều - Người dùng đã đăng nhập vào dịch vụ nghe nhạc -

Người dùng đang xem một bài hát, album hoặc playlist - Playlist mà người dùng muốn thêm bài hát vào đã tồn tại. kiện Hậu điều kiện

- Nếu thành công, bài hát được thêm vào playlist đã chọn.

- Nếu thất bại, hiển thị thông báo lỗi cho người dùng.

Diễn biến chính 1 Người dùng chọn playlist muốn xóa bài hát.

2 Người dùng tìm và chọn bài hát muốn xoá.

3 Người dùng chọn tùy chọn "Xóa khỏi playlist" (có thể là biểu tượng dấu ba chấm hoặc tương tự).

4 Hệ thống hiển thị thông báo xác nhận yêu cầu xóa bài hát.

5 Người dùng xác nhận xóa bài hát.

6 Hệ thống xóa bài hát khỏi playlist đã chọn.

7 Hệ thống cập nhật giao diện playlist.

Diễn biến phụ 3a Người dùng chọn "Xoá nhiều".

1 Người dùng chọn tất cả bài hát muốn xoá.

2 Người dùng chọn "Xoá" để xác nhận.

3 Hệ thống xoá các bài hát đã chọn khỏi playlist 4 Quay lại bước 7.

6a Xảy ra lỗi khi thêm bài hát vào playlist (lỗi kết nối, lỗi

Hệ thống hiển thị thông báo lỗi và yêu cầu người dùng thử lại sau.

Bảng 3.9 Đặc tả usecase UC07

3.2.3.8 Đặc tả use case UC08

Mô tả Cho phép người dùng xóa đi playlist của bản thân.

Trigger Người dùng muốn xóa playlist đã tạo.

Tiền điều kiện- Người dùng đã đăng nhập

- Người dùng đang xem chi tiết một playlist.

1 Người dùng truy cập vào mục "Danh sách phát" hoặc tương tự.

2 Người dùng chọn playlist muốn xoá.

3 Người dùng chọn tùy chọn "Xóa playlist" (có thể là biểu tượng dấu ba chấm hoặc tương tự).

4 Hệ thống hiển thị thông báo xác nhận yêu cầu xóa playlist, cảnh báo người dùng về việc xóa vĩnh viễn 5 Người dùng xác nhận xóa playlist.

6 Hệ thống xóa playlist khỏi tài khoản người dùng 7 Hệ thống cập nhật giao diện danh sách playlist.

Diễn biến phụ Không có

Ngoại lệ 6a Xảy ra lỗi khi xóa playlist (lỗi kết nối, lỗi server ) Hệ thống hiển thị thông báo lỗi và yêu cầu người dùng thử lại sau.

Bảng 3.10 Đặc tả usecase UC08

3.2.3.9 Đặc tả use case UC09

Tên Use Case Điều chỉnh bài hát

Mô tả Cho phép người dùng có thể tùy chỉnh chức năng nghe nhạc khi nhạc đang được phát.

Tiền điều kiện Hậu điều kiện

Người dùng muốn thay đổi cách thức phát nhạc khi bài hát đang được phát.

- Người dùng đã đăng nhập

- Có một bài hát đang phát

- Hệ thống áp dụng các thay đổi mà người dùng đã thực hiện đối với chức năng nghe nhạc.

1 Người dùng truy cập vào giao diện điều khiển phát

Diễn biến chính 53 nhạc (có thể là màn hình hiện tại hoặc một cửa sổ pop-up).

2 Người dùng thực hiện một hoặc nhiều hành động điều chỉnh sau:

● Tua bài hát đến vị trí mong muốn.

● Chuyển đến bài hát tiếp theo hoặc quay lại bài hát trước đó.

● Chọn chế độ phát (lặp lại bài hát, lặp lại danh sách, phát ngẫu nhiên).

Ngoại lệ lỗi thiết bị ).

Hệ thống hiển thị thông báo lỗi cho người dùng Bảng 3.11 Đặc tả usecase UC09

3.2.3.10 Đặc tả use case UC10

Tên Use Case Thích bài bát

Mô tả Cho phép người dùng có thể thích bài hát.

Trigger Người dùng muốn yêu thích bài hát

Tiền điều kiện- Người dùng đã đăng nhập

- Người dùng chọn một bài hát trên hệ thống.

Hậu điều kiện - Nếu thành công, bài hát được thêm vào danh sách bài hát yêu thích của người dùng.

- Nếu thất bại, hiển thị thông báo lỗi cho người dùng

Diễn biến chính 1 Người dùng mở giao diện hiển thị thông tin bài hát

2 Người dùng chọn biểu tượng "Thích" (hình trái tim) hiển thị trên giao diện.

3 Hệ thống thêm bài hát vào danh sách bài hát yêu thích của người dùng.

4 Hệ thống cập nhật giao diện để hiển thị trạng thái "Đã thích" cho bài hát.

Diễn biến phụ Không có

Ngoại lệ 3a Xảy ra lỗi khi thêm bài hát vào danh sách yêu thích

(lỗi kết nối, lỗi server ).

Hệ thống hiển thị thông báo lỗi và yêu cầu người dùng thử lại sau.

3b Bài hát đã tồn tại trong danh sách yêu thích.

Hệ thống có thể giữ nguyên trạng thái hoặc bỏ thích bài hát theo yêu cầu từ người dùng.

Bảng 3.12 Đặc tả usecase UC10

3.2.3.11 Đặc tả use case UC11

Tên Use Case Theo dõi nghệ sĩ

Cho phép người dùng theo dõi ca sĩ yêu thích User

Trigger Người dùng muốn theo dõi ca sĩ yêu thích của mình để được thông báo bài hát mới.

Tiền điều kiện - Người dùng đã đăng nhập vào web

- Người dùng đang xem trang thông tin của nghệ sĩ.

Hậu điều kiện Diễn biến chính

- Nếu thành công, nghệ sĩ được thêm vào danh sách theo dõi của người dùng.

- Người dùng sẽ nhận được thông báo về các hoạt động của nghệ sĩ trong tương lai (tuỳ thuộc vào cài đặt thông báo)

Khi xảy ra lỗi, hệ thống sẽ hiển thị thông báo lỗi rõ ràng cho người dùng Đầu tiên, người dùng cần truy cập vào trang thông tin của nghệ sĩ để xem các thông tin chi tiết Sau đó, họ chỉ cần nhấn nút "Theo dõi" (hoặc nút tương tự) để bắt đầu theo dõi nghệ sĩ đó trên trang.

3 Hệ thống thêm nghệ sĩ vào danh sách theo dõi của người dùng.

4 Hệ thống cập nhật giao diện để hiển thị trạng thái

"Đang theo dõi" (hoặc tương tự).

Diễn biến phụ Không có

Ngoại lệ 3a Xảy ra lỗi khi thêm nghệ sĩ vào danh sách theo dõi

(lỗi kết nối, lỗi server ).

Hệ thống hiển thị thông báo lỗi và yêu cầu người dùng thử lại sau.

3b Người dùng đã theo dõi nghệ sĩ này.

Hệ thống có thể giữ nguyên trạng thái hoặc cung cấp tùy chọn "Bỏ theo dõi".

Bảng 3.13 Đặc tả usecase UC11

3.2.3.12 Đặc tả use case UC12

Tên Use Case Quản lý bài hát cá nhân

Mô tả Cho phép người dùng được quản lý các bài hát của chính mình.

Tiền điều kiện Hậu điều kiện

Người dùng muốn sắp xếp hoặc tương tác với bộ sưu tập bài hát cá nhân của họ.

- Người dùng đã đăng nhập

Người dùng đã nâng quyền thành Artist, cho phép họ xem, sắp xếp, chỉnh sửa và tương tác với bộ sưu tập bài hát cá nhân theo mong muốn Việc nâng cấp quyền hạn này giúp người dùng quản lý hiệu quả các tác phẩm âm nhạc của riêng mình, nâng cao trải nghiệm và tối ưu hóa khả năng sáng tạo trên nền tảng.

Diễn biến chính 1 Người dùng truy cập vào mục "Nhạc của tôi" hoặc tương tự.

2 Người dùng chọn danh mục "Bài hát" hoặc "Thư viện nhạc" hiển thị danh sách bài hát cá nhân.

3 Người dùng thực hiện một hoặc nhiều hành động sau: 4 Xem thông tin bài hát (tên bài hát, nghệ sĩ, album, ) 5 Phát bài hát.

6 Thêm bài hát vào playlist.

7 Tải xuống bài hát (nếu được hỗ trợ).

8 Sắp xếp bài hát theo các tiêu chí (tên, nghệ sĩ, album, ngày tháng ).

9 Đổi tên bài hát hoặc thông tin liên quan (nếu được hỗ trợ).

10.Xóa bài hát khỏi thư viện cá nhân.

Diễn biến phụ Không có

Ngoại lệ 3a Xảy ra lỗi khi thực hiện yêu cầu (lỗi kết nối, lỗi server, không đủ quyền, ).

Hệ thống hiển thị thông báo lỗi và yêu cầu người dùng thử lại sau.

Bảng 3.14 Đặc tả usecase UC12

3.2.3.13 Đặc tả use case UC13

Tên Use Case Quản lý hệ thống

Mô tả Cho phép quản lý kiểm soát được hệ thống website

Trigger Admin quản lý tình trạng, số lượng bài hát, số lượng người dùng của hệ thống.

Tiền điều kiện Hậu điều kiện Diễn biến chính

Không có Không có Không có Không có

Bảng 3.15 Đặc tả usecase UC13

CHƯƠNG 4 XÂY DỰNG ỨNG DỤNG

STT Tên giao diện Mô tả giao diện

Trang Home cung cấp tổng quan toàn diện về website, bao gồm danh sách các bài hát đã upload, các playlist đa dạng và bài hát theo thể loại được cập nhật theo thứ tự thời gian sớm nhất.

2 Trang Login Đăng nhập vào website thông qua tài khoản google.

3 Trang Search Hiển thị kết quả khi tìm kiếm bài hát

4 Trang Profile Hiển thị thông tin người dùng bao gồm: danh sách bài hát đã thích, playlist, nghệ sĩ mà người dùng follow.

5 Trang Playlist Hiển thị thông tin playlist

Playlist Trang Song đã Upload

Cho phép người dùng nhập thông tin bài hát mình muốn đăng lên hệ thống

Cho phép người dùng tạo một playlist mới theo sở thích.

Hiển thị các bài hát được người dùng đăng tải lên.

Bảng 4.1 Danh sách giao diện

4.2 Mô tả chi tiết giao diện

4.2.1 Trang Home Đây là giao diện chính của website RhythmRealm Bất kỳ lúc nào người dùng muốn quay lại trang chủ chỉ cần ấn vào logo góc trên bên trái màn hình.

Hình 4.1 Giao diện trang Home (chưa Login)

- Khi truy cập vào website, hệ thống sẽ điều hướng người dùng ra trang chính này để thuận tiện thao tác

Trang web hiển thị danh sách các bài hát mới nhất theo thể loại, giúp người dùng dễ dàng khám phá âm nhạc đa dạng Người dùng có thể sử dụng tính năng tìm kiếm để dễ dàng tìm kiếm bài hát mong muốn phù hợp với sở thích cá nhân Ngoài ra, hệ thống còn cho phép người dùng đăng nhập để truy cập các chức năng mở rộng và cá nhân hóa trải nghiệm nghe nhạc.

- Khi người dùng bấm nút “Create Playlist” thì hệ thống yêu cầu đăng nhập.

Hì nh 4.2 Giao diện trang Home (đã Login)

- Tương tự như khi chưa đăng nhập nhưng bên cạnh đó sẽ thêm một vài giao diện của hệ thống.

- Hiện danh sách bài hát mà người dùng đã upload lên.

- Cho phép tạo một playlist.

- Hệ thống đề xuất các nghệ sĩ cho người dùng theo dõi (đang tiến hành)

4.2.2 Trang Login Đây là giao diện đăng nhập của website RhythmRealm Cho phép người dùng đăng nhập tài khoản để dùng website.

Hình 4.3 Giao diện trang Login

- Hệ thống đề xuất người dùng tài khoản google để tạo tài khoản khi đăng nhập vào RhythRealm.

4.2.3 Trang Search Đây là giao diện về chức năng tìm kiếm bài hát trong hệ thống.

Hình 4.4 Giao diện Search (trang Home)

- Khi nhập thông tin bài hát vào thanh tìm kiếm Hệ thống sẽ lọc từ từ theo chữ cái để đưa ra kết quả tìm kiếm.

Hình 4.5 Giao diện Search (trang Search)

- Khi xác nhận tên bài hát hệ thống sẽ đưa ra kết quả tìm kiếm dựa trên từ khóa gần nhất.

- Các bài hát được thể hiện các thông tin cơ bản của bài hát: tên, hình ảnh, thời lượng bài hát, ngày đăng, thể loại và số lượng nghe.

- Khi bấm nút “ >” bài hát được đưa vào play control cho phép người dùng thưởng thức bài hát.

4.2.5 Trang Profile Đây là giao diện hiển thị thông tin của người dùng.

Hình 4.6 Giao diện trang Profile (tab Playlists)

Hình 4.7 Giao diện trang Profile (tab Likes)

Hình 4.8 Giao diện trang Profile (tab Following)

- Hệ thống hiện thông tin tài khoản của người dùng.

Tab Playlists hiển thị tất cả các danh sách nhạc do người dùng tạo trên hệ thống, giúp người dùng dễ dàng quản lý và truy cập các playlist yêu thích Trong khi đó, Tab Likes cung cấp thông tin về các bài hát mà người dùng đã thích, tạo điều kiện thuận tiện để nghe lại các ca khúc yêu thích một cách nhanh chóng.

Following để hiện thông tin các nghệ sĩ mà người dùng đã theo dõi trên hệ thống.

4.2.6 Trang Playlist Đây là giao diện hiển thị thông tin của playlist mà người dùng chọn.

Hình 4.9 Giao diện trang Playlist

Hệ thống hiển thị thông tin của playlist người dùng đã chọn, bao gồm tên playlist và mô tả ngắn gọn để người nghe dễ dàng hiểu nội dung Nó còn cung cấp danh sách các bài hát trong playlist, giúp người dùng dễ dàng lựa chọn và phát nhạc phù hợp Thêm vào đó, hệ thống còn cung cấp các thông tin cơ bản về từng bài hát, như tên bài hát và nghệ sĩ thể hiện, đảm bảo trải nghiệm nghe nhạc thuận tiện và đầy đủ hơn.

- Cho phép người dùng chỉnh sửa hoặc xóa đi playlist đó.

Hình 4.10 Giao diện trang Edit Playlist

- Hệ thống hiển thị thông tin của playlist.

- Người dùng có thể chọn update thông tin playlist như tên, mô tả hoặc có thể loại bỏ bớt đi các bài hát trong đó.

4.2.7 Trang Upload Song Đây là giao diện trang Upload Song khi người dùng muốn đăng tải bài hát lên hệ thống.

Hình 4.11 Giao diện trang Upload Song (trống)

Hình 4.12 Giao diện trang Upload Song (hoàn thành)

- Hệ thống hiển thị các ô input cho người dùng nhập thông tin bài hát - Người dùng được chọn thể loại nhạc đã có sẵn trong hệ thống.

4.2.8 Trang Create Playlist Đây là giao diện trang Create Playlist khi người dùng muốn tạo playlist lên hệ thống.

Hình 4.13 Giao diện trang Create Playlist

- Hệ thống hiển thị các ô input cho người dùng nhập thông tin playlist -

Người dùng xác nhận mà bấm tạo playlist.

4.2.9 Trang Song đã Upload Đây là giao diện trang Song đã upload lên hệ thống của người dùng.

Hình 4.14 Giao diện trang Song đã Upload

Hệ thống hiển thị tất cả các bài hát đã được người dùng đăng tải, giúp quản lý dễ dàng và thuận tiện Người dùng có thể xóa các bài hát đã đăng bất cứ lúc nào bằng cách nhấn vào icon xóa trên mỗi mục trong danh sách Điều này đảm bảo người dùng kiểm soát tốt các nội dung của mình và duy trì danh sách bài hát một cách sạch sẽ, gọn gàng.

Triển khai hệ thống tìm kiếm/đề xuất nhạc theo cảm xúc

Quy trình sử dụng WordNet trong VADPredictor:

○ Hàm get_vad_values nhận một word (string) làm input.

○ word được chuyển về chữ thường và loại bỏ khoảng trắng thừa

○ Hệ thống kiểm tra xem word có tồn tại trực tiếp trong self.vad_lexicon không.

○ Nếu có, giá trị VAD tương ứng sẽ được trả về ngay lập tức.

Trong trường hợp từ không xuất hiện trong từ điển, chúng ta sẽ sử dụng WordNet để tra cứu Hàm wn.synsets(word, pos=wn.ADJ) được sử dụng để tìm các tập hợp các từ đồng nghĩa (synset) của từ, đặc biệt ưu tiên các tính từ (ADJ) Nếu không tìm thấy synset nào cho tính từ, quá trình sẽ tiếp tục tìm kiếm cho các loại từ khác để đảm bảo việc xác định nghĩa chính xác của từ.

○ Synset chứa các từ có ý nghĩa tương tự nhau.

● Trích xuất lemmas từ synsets:

○ Nếu tìm thấy synsets, hệ thống sẽ lấy lemmas (tên gốc của từ) từ synset đầu tiên.

○ Ví dụ, với từ "happy", lemmas có thể là ['happy', 'glad'].

● Kiểm tra lexicon với lemmas:

○ Hệ thống sẽ kiểm tra xem các lemmas này có tồn tại trong self.vad_lexicon không.

○ Nếu có, giá trị VAD tương ứng sẽ được trả về ngay lập tức.

● Tìm kiếm tương đồng với lemmas:

○ Nếu không tìm thấy lemmas trực tiếp trong lexicon, hệ thống sẽ tìm kiếm các từ tương đồng hoặc có chứa lemmas.

○ Ví dụ, nếu lexicon chứa từ "joyful" và lemma là "joy", hệ thống sẽ lấy VAD của "joyful".

● Tìm kiếm trong tất cả synsets:

○ Nếu không tìm thấy VAD trong synset đầu tiên, hệ thống sẽ duyệt qua tất cả các synset tìm thấy cho word.

○ Trích xuất tất cả lemmas từ tất cả các synset tìm được.

● Kiểm tra lexicon với các lemmas của tất cả synsets:

○ Hệ thống sẽ kiểm tra xem các lemmas này có tồn tại trong self.vad_lexicon không.

○ Nếu có, giá trị VAD tương ứng sẽ được trả về ngay lập tức.

● Tìm kiếm tương đồng với lemmas của tất cả synsets:

○ Nếu không tìm thấy lemmas trực tiếp trong lexicon, hệ thống sẽ tìm kiếm các từ tương đồng hoặc có chứa các lemmas trong lexicon ● Tìm kiếm tương đồng:

○ Nếu không tìm thấy từ hoặc lemmas trực tiếp hoặc tương đồng trong lexicon, hệ thống sẽ tìm kiếm trong lexicon các từ chứa emotion word hoặc ngược lại

○ Ví dụ: nếu emotion word là "happening" và lexicon có từ "happy", hệ thống sẽ trả về VAD của từ "happy"

● Trả về giá trị mặc định:

○ Nếu không tìm thấy bất kỳ giá trị VAD nào, hệ thống sẽ trả về giá trị mặc định (0.5, 0.5, 0.5) (trung tính).

Công thức: emotion_score = (1 - |normalized_valence - valence_input|) * 0.4 + (1 - | normalized_arousal - arousal_input|) * 0.4 + (1 - |normalized_dominance - dominance_input|) * 0.2

TỔNG KẾT

Ngày đăng: 12/07/2025, 14:59

HÌNH ẢNH LIÊN QUAN

Hình 2.1 Cấu trúc mô hình Layered Architecture - Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng
Hình 2.1 Cấu trúc mô hình Layered Architecture (Trang 13)
Hình 2.2 ReactJS - Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng
Hình 2.2 ReactJS (Trang 15)
Hình 2.3 Typescript - Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng
Hình 2.3 Typescript (Trang 16)
Hình 2.4 Golang - Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng
Hình 2.4 Golang (Trang 18)
Hình 2.7 Bootstrap - Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng
Hình 2.7 Bootstrap (Trang 22)
Hình 2.10 Figma - Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng
Hình 2.10 Figma (Trang 25)
Hình 2.11 Docker - Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng
Hình 2.11 Docker (Trang 30)
Bảng 3.2 Danh sách usecase - Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng
Bảng 3.2 Danh sách usecase (Trang 41)
Bảng 3.4 Đặc tả usecase UC02 - Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng
Bảng 3.4 Đặc tả usecase UC02 (Trang 44)
Bảng 3.5 Đặc tả usecase UC03 - Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng
Bảng 3.5 Đặc tả usecase UC03 (Trang 45)
Bảng 3.7 Đặc tả usecase UC05 - Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng
Bảng 3.7 Đặc tả usecase UC05 (Trang 46)
Bảng 3.9 Đặc tả usecase UC07 - Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng
Bảng 3.9 Đặc tả usecase UC07 (Trang 49)
Bảng 3.10 Đặc tả usecase UC08 - Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng
Bảng 3.10 Đặc tả usecase UC08 (Trang 51)
Bảng 3.13 Đặc tả usecase UC11 - Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng
Bảng 3.13 Đặc tả usecase UC11 (Trang 54)
Bảng 3.15 Đặc tả usecase UC13 - Xây dựng Ứng dụng web nghe và chia sẻ nhạc trực tuyến theo tâm trạng
Bảng 3.15 Đặc tả usecase UC13 (Trang 56)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w