Khóa Luận: Xây Dựng Website Nghe Nhạc Kết Hợp Nhận Diện & Đề Xuất

Xây dựng website nghe nhạc độc đáo: Nhận diện nhạc bằng giai điệu, gợi ý khóa luận tốt nghiệp hấp dẫn. Tìm hiểu ngay quy trình và ý tưởng!

Chuyên ngành

Kỹ thuật phần mềm

Người đăng

Ẩn danh

Thể loại

Khóa luận tốt nghiệp

2022

114
1
0

Phí lưu trữ

35 Point

Tóm tắt

I. Khóa luận website nghe nhạc Tổng quan nghiên cứu công nghệ

Nghiên cứu về xây dựng website nghe nhạc tích hợp các công nghệ thông minh đang là một hướng đi quan trọng trong lĩnh vực Công nghệ thông tin. Khóa luận "Xây dựng Website Nghe Nhạc Kết Hợp Nhận Diện Nhạc Qua Giai Điệu Và Đề Xuất" là một công trình tiêu biểu, giải quyết hai bài toán cốt lõi: nhận dạng bài hát tự động và xây dựng hệ thống đề xuất âm nhạc cá nhân hóa. Bối cảnh nghiên cứu xuất phát từ nhu cầu thực tiễn của người dùng, khi họ thường xuyên gặp phải các bản nhạc không rõ tên hoặc mong muốn khám phá những giai điệu mới phù hợp với sở thích. Đề tài này không chỉ dừng lại ở việc tạo ra một sản phẩm ứng dụng, mà còn đi sâu vào việc nghiên cứu và triển khai các thuật toán gợi ý nhạc phức tạp, ứng dụng học máy trong đề xuất nhạc và xử lý tín hiệu âm thanh. Cụ thể, nghiên cứu áp dụng các mô hình Deep Learning để phân loại nhạc và các kỹ thuật Music Fingerprinting để nhận diện giai điệu. Nền tảng công nghệ được lựa chọn một cách kỹ lưỡng, bao gồm Angular cho Frontend, .NET Core và Flask cho Backend, cùng với cơ sở dữ liệu MongoDB, tạo nên một kiến trúc hệ thống gợi ý linh hoạt và hiệu quả. Đây là một đề tài khóa luận tốt nghiệp CNTT điển hình, thể hiện sự kết hợp nhuần nhuyễn giữa lý thuyết học thuật và kỹ năng triển khai thực tế, mang lại giá trị thiết thực cho cả người dùng và ngành công nghiệp âm nhạc số.

1.1. Mục tiêu và phạm vi của khóa luận tốt nghiệp CNTT

Mục tiêu chính của khóa luận là thiết kế và xây dựng một website nghe nhạc hoàn chỉnh với hai tính năng đột phá: nhận diện nhạc qua giai điệu và đề xuất bài hát thông minh. Hệ thống hướng đến việc cá nhân hóa trải nghiệm người dùng, giúp họ dễ dàng tìm kiếm các bài hát chỉ bằng một đoạn giai điệu và khám phá âm nhạc mới một cách tự nhiên. Phạm vi nghiên cứu tập trung vào ba mảng chính: nhạc Việt, Âu Mỹ và Hàn Quốc. Về công nghệ, đề tài giới hạn việc sử dụng Angular cho giao diện người dùng, ASP.NET cho các dịch vụ chính về âm nhạc, và một backend riêng biệt viết bằng Flask để phục vụ cho music recommendation system. Cách tiếp cận này cho phép tối ưu hóa hiệu năng cho từng tác vụ chuyên biệt, đặc biệt là các tính năng yêu cầu tính toán nặng như xử lý AI.

1.2. Các công nghệ nền tảng được áp dụng trong dự án

Để hiện thực hóa hệ thống, một loạt công nghệ hiện đại đã được lựa chọn. Mô hình MVC (Model-View-Controller) được sử dụng làm kiến trúc tổng thể, giúp phân tách rõ ràng giữa giao diện, logic nghiệp vụ và dữ liệu. Phía server, ASP.NET Core được chọn vì hiệu năng cao, khả năng chạy đa nền tảng và hỗ trợ mạnh mẽ cho việc xây dựng API. Đối với hệ thống đề xuất, Flask được ưu tiên do sự gọn nhẹ, linh hoạt và tích hợp tốt với các thư viện machine learning for music recommendation như Keras. Về cơ sở dữ liệu, MongoDB, một hệ quản trị NoSQL, được sử dụng để lưu trữ dữ liệu linh hoạt, đặc biệt phù hợp với các cấu trúc dữ liệu đa dạng của bài hát và người dùng. Sự kết hợp này tạo ra một hệ thống vững chắc, có khả năng mở rộng và dễ dàng bảo trì.

II. Thách thức trong nhận dạng cá nhân hóa trải nghiệm người dùng

Việc xây dựng một website nghe nhạc hiện đại đối mặt với hai thách thức lớn. Thứ nhất là vấn đề nhận dạng bài hát từ một đoạn âm thanh ngắn, thường bị nhiễu và không đầy đủ. Điều này đòi hỏi các thuật toán phải có khả năng trích xuất đặc trưng âm thanh một cách chính xác và hiệu quả. Các phương pháp truyền thống có thể không đủ mạnh để xử lý các biến thể trong giai điệu, nhịp điệu hoặc tiếng ồn từ môi trường. Thách thức thứ hai là làm thế nào để gợi ý sản phẩm âm nhạc phù hợp với sở thích đa dạng và thay đổi liên tục của mỗi cá nhân. Một hệ thống đề xuất âm nhạc hiệu quả không chỉ dựa vào lịch sử nghe nhạc mà còn phải hiểu được các thuộc tính tiềm ẩn của bài hát và sở thích của người dùng. Việc xây dựng một ma trận người dùng-vật phẩm (user-item matrix) đầy đủ và xử lý vấn đề dữ liệu thưa (sparsity) là một bài toán phức tạp. Hơn nữa, việc cân bằng giữa việc đề xuất các bài hát quen thuộc (exploitation) và giới thiệu các bài hát mới lạ (exploration) để tránh sự nhàm chán là một yếu tố quan trọng trong việc cá nhân hóa trải nghiệm người dùng.

2.1. Vấn đề nhận diện bài hát từ giai điệu trong thực tế

Bài toán nhận dạng bài hát tự động từ một đoạn ghi âm không phải là điều đơn giản. Tín hiệu âm thanh thu được từ môi trường thực tế thường chứa nhiều tạp âm, có thể bị biến dạng hoặc chỉ là một đoạn giai điệu ngắn. Để giải quyết, hệ thống cần một cơ chế "vân tay âm thanh" (Audio Fingerprinting) mạnh mẽ. Quá trình này bao gồm việc phân tích tín hiệu âm thanh, chuyển đổi từ miền thời gian (Time-Domain) sang miền tần số (Frequency-Domain) bằng các thuật toán như Fast Fourier Transform (FFT), sau đó trích xuất đặc trưng âm thanh để tạo ra một mã hash duy nhất. Mã hash này phải bất biến với tiếng ồn và sự thay đổi về âm lượng, đảm bảo khả năng so khớp chính xác với cơ sở dữ liệu.

2.2. Khó khăn trong việc xây dựng hệ thống gợi ý âm nhạc

Xây dựng một thuật toán gợi ý nhạc hiệu quả là một thách thức lớn. Vấn đề "khởi đầu lạnh" (cold start) xảy ra khi một người dùng mới hoặc một bài hát mới được thêm vào hệ thống mà không có dữ liệu tương tác. Các phương pháp như lọc cộng tác (collaborative filtering) sẽ gặp khó khăn trong trường hợp này. Ngoài ra, sở thích của người dùng có thể thay đổi theo thời gian và ngữ cảnh. Một hệ thống chỉ dựa trên lịch sử nghe có thể không nắm bắt được những thay đổi này. Do đó, việc tích hợp nhiều phương pháp khác nhau, chẳng hạn như lọc dựa trên nội dung (content-based filtering)phân cụm người dùng, là cần thiết để tạo ra một hệ thống lai (hybrid model) toàn diện hơn.

III. Phương pháp nhận dạng nhạc qua giai điệu và fingerprinting

Để giải quyết bài toán nhận dạng, khóa luận đã áp dụng phương pháp Music Fingerprinting, một kỹ thuật hiệu quả để tạo ra "dấu vân tay" số cho mỗi bài hát. Quy trình bắt đầu bằng việc xử lý tín hiệu âm thanh thô. Âm thanh, vốn là tín hiệu analog, được số hóa thông qua quá trình lấy mẫu (sampling) ở tần số 44,100 Hz, đảm bảo bao phủ toàn bộ dải tần số tai người nghe được. Sau đó, tín hiệu trong miền thời gian được chuyển đổi sang miền tần số sử dụng thuật toán Fast Fourier Transform (FFT). Quá trình này giúp phân tích các thành phần tần số của âm thanh tại mỗi thời điểm. Từ phổ tần số, hệ thống tiến hành trích xuất đặc trưng âm thanh bằng cách xác định các điểm cực đại (peaks) – những tần số có biên độ nổi bật nhất. Các cặp điểm cực đại này sau đó được mã hóa thành các mã hash (combinatorial hashes), tạo thành một fingerprint duy nhất cho bài hát. Các mã hash này được lưu trữ trong cơ sở dữ liệu cùng với mã bài hát và dấu thời gian. Khi người dùng ghi âm một đoạn nhạc, hệ thống sẽ thực hiện quy trình tương tự để tạo fingerprint cho đoạn ghi âm đó và tìm kiếm sự trùng khớp trong cơ sở dữ liệu, từ đó thực hiện nhận dạng bài hát tự động.

3.1. Kỹ thuật xử lý tín hiệu âm thanh và audio feature extraction

Nền tảng của hệ thống nhận dạng là khả năng audio feature extraction (trích xuất đặc trưng âm thanh) một cách hiệu quả. Thay vì làm việc trực tiếp với sóng âm, tín hiệu được chia thành các khung (frames) nhỏ và chồng chéo. Đối với mỗi khung, biến đổi Fourier được áp dụng để tạo ra một biểu đồ spectrogram, thể hiện cường độ của các tần số theo thời gian. Từ spectrogram, các điểm đỉnh (peaks) được xác định. Một điểm đỉnh là một điểm trong biểu đồ có cường độ lớn hơn tất cả các điểm lân cận. Việc chọn ra các điểm nổi bật này giúp giảm thiểu ảnh hưởng của nhiễu và tập trung vào những đặc điểm cốt lõi của giai điệu. Các đặc trưng này sau đó được sử dụng để tạo ra fingerprint.

3.2. Xây dựng cơ sở dữ liệu vân tay âm thanh fingerprint

Sau khi trích xuất, các đặc trưng cần được lưu trữ một cách hiệu quả để phục vụ việc tra cứu nhanh. Hệ thống không lưu trữ toàn bộ spectrogram mà chỉ lưu các cặp điểm đỉnh được mã hóa. Mỗi mã hash được tạo ra từ tần số của hai điểm đỉnh và khoảng thời gian chênh lệch giữa chúng. Cấu trúc dữ liệu này được thiết kế để tối ưu hóa tốc độ tìm kiếm. Khi một đoạn nhạc mẫu được đưa vào, hệ thống sẽ tạo ra một loạt các mã hash tương ứng và truy vấn cơ sở dữ liệu để tìm các bài hát có số lượng hash trùng khớp nhiều nhất trong một khoảng thời gian nhất quán. Cách tiếp cận này giúp hệ thống có khả năng nhận diện nhanh chóng ngay cả với một cơ sở dữ liệu lớn.

IV. Bí quyết xây dựng hệ thống đề xuất âm nhạc với học máy

Trọng tâm của tính năng đề xuất là việc ứng dụng học máy trong đề xuất nhạc. Khóa luận này đã xây dựng một hệ thống lai (hybrid model), kết hợp ưu điểm của nhiều phương pháp khác nhau để đưa ra gợi ý chính xác nhất. Hướng tiếp cận chính là lọc dựa trên nội dung (content-based filtering), trong đó mô hình mạng nơ-ron tích chập (CNN), cụ thể là kiến trúc ResNet50, được huấn luyện để tự động phân loại thể loại nhạc trực tiếp từ file audio. Bằng cách trích xuất các đặc trưng từ spectrogram của bài hát, mô hình có thể "hiểu" được nội dung âm nhạc. Điều này giúp giải quyết vấn đề "khởi đầu lạnh" cho các bài hát mới. Bên cạnh đó, các yếu tố của lọc cộng tác (collaborative filtering) cũng được tích hợp. Hệ thống theo dõi lịch sử nghe, lượt thích của người dùng để xây dựng hồ sơ sở thích. Dựa trên hồ sơ này, thuật toán tìm kiếm những người dùng có sở thích tương tự (phân cụm người dùng) để đưa ra gợi ý. Cuối cùng, các chiến lược đề xuất được cá nhân hóa: đề xuất bài hát tương tự bài đang nghe (dựa trên độ tương đồng cosine của các đặc trưng âm thanh), đề xuất dựa trên các bài hát người dùng nghe nhiều nhất, và đề xuất theo thể loại yêu thích. Sự kết hợp này tạo ra một music recommendation system toàn diện và linh hoạt.

4.1. Ứng dụng mô hình CNN để phân loại nội dung âm nhạc

Mô hình ResNet50 được chọn để phân loại thể loại nhạc. Đầu vào của mô hình là hình ảnh spectrogram được tạo ra từ file âm thanh. Thư viện Librosa được sử dụng để thực hiện việc trích xuất đặc trưng âm thanh và tạo spectrogram. Mô hình được huấn luyện trên một tập dữ liệu lớn gồm các bài hát đã được gán nhãn thể loại. Quá trình huấn luyện giúp mạng nơ-ron học cách nhận biết các mẫu đặc trưng của từng thể loại, chẳng hạn như nhịp điệu, hòa âm, và các đặc tính tần số. Sau khi huấn luyện, mô hình có khả năng dự đoán thể loại cho một bài hát bất kỳ với độ chính xác cao, được đánh giá qua các chỉ số như confusion matrix. Đây là nền tảng cho phương pháp lọc dựa trên nội dung (content-based filtering).

4.2. Kỹ thuật lọc cộng tác và xây dựng ma trận người dùng vật phẩm

Phương pháp lọc cộng tác (collaborative filtering) được triển khai bằng cách phân tích hành vi của người dùng. Hệ thống xây dựng một ma trận người dùng-vật phẩm (user-item matrix), trong đó các hàng đại diện cho người dùng, các cột đại diện cho bài hát, và giá trị ô là mức độ tương tác (ví dụ: số lần nghe, lượt thích). Mặc dù không trực tiếp sử dụng các thuật toán phân rã ma trận như thuật toán SVD trong khóa luận này, ý tưởng cốt lõi vẫn được áp dụng. Hệ thống tìm ra những người dùng có vector hành vi tương tự nhau và đề xuất các bài hát mà người dùng tương tự đã thích nhưng người dùng hiện tại chưa nghe. Cách tiếp cận này giúp khám phá các sở thích tiềm ẩn mà phương pháp dựa trên nội dung có thể bỏ qua.

V. Hướng dẫn triển khai kiến trúc hệ thống gợi ý và kết quả

Việc xây dựng website nghe nhạc không chỉ là về thuật toán mà còn là về kiến trúc hệ thống gợi ý. Hệ thống được thiết kế theo kiến trúc microservices, phân tách rõ ràng các thành phần chức năng. Một server chính sử dụng .NET Core xử lý các tác vụ thông thường như quản lý người dùng, bài hát và streaming. Một server riêng biệt sử dụng Flask được dành riêng cho hệ thống nhận dạng và đề xuất. Client được xây dựng bằng Angular, giao tiếp với các server backend thông qua API. Cách phân tách này giúp hệ thống dễ dàng mở rộng và bảo trì. Ví dụ, khi cần nâng cấp thuật toán gợi ý nhạc, chỉ cần cập nhật service Flask mà không ảnh hưởng đến phần còn lại của hệ thống. Kết quả nghiên cứu cho thấy các mô hình được xây dựng đạt hiệu quả cao. Mô hình nhận dạng có khả năng tìm thấy bài hát chính xác từ các đoạn ghi âm ngắn. Hệ thống đề xuất âm nhạc cho ra những gợi ý phù hợp, được minh họa qua các ví dụ về đề xuất dựa trên bài hát hiện tại và lịch sử người dùng. Việc đánh giá hệ thống đề xuất được thực hiện thông qua các chỉ số định tính và phân tích Confusion Matrix của mô hình phân loại ResNet50, cho thấy độ chính xác đáng kể trong việc xác định thể loại nhạc.

5.1. Thiết kế kiến trúc hệ thống và luồng dữ liệu

Kiến trúc hệ thống bao gồm ba thành phần chính: Client (Angular), Music Server (.NET Core), và AI Server (Flask). Người dùng tương tác với giao diện trên Client. Các yêu cầu thông thường như nghe nhạc, quản lý playlist sẽ được gửi đến Music Server. Khi người dùng sử dụng tính năng nhận dạng hoặc yêu cầu gợi ý, Client sẽ gọi đến AI Server. AI Server xử lý yêu cầu bằng các mô hình học máy trong đề xuất nhạc đã được huấn luyện và trả kết quả về. Dữ liệu được lưu trữ trong MongoDB và một hệ thống file storage cho các file âm thanh. Luồng dữ liệu được thiết kế rõ ràng, đảm bảo tính nhất quán và hiệu suất cao cho toàn bộ hệ thống.

5.2. Đánh giá hệ thống đề xuất và độ chính xác của mô hình

Việc đánh giá hệ thống đề xuất là một bước quan trọng. Đối với mô hình phân loại thể loại nhạc ResNet50, khóa luận đã sử dụng Confusion Matrix để trực quan hóa hiệu suất. Kết quả cho thấy mô hình có khả năng phân biệt tốt giữa các thể loại khác nhau, mặc dù có một số nhầm lẫn nhỏ giữa các thể loại có đặc tính âm nhạc tương tự. Đối với chức năng nhận dạng, độ chính xác được kiểm thử bằng cả file âm thanh gốc và các đoạn ghi âm thực tế, kết quả cho thấy khả năng nhận dạng mạnh mẽ. Các đề xuất được tạo ra từ hệ thống lai (hybrid model) cũng được đánh giá là phù hợp và đa dạng, giúp nâng cao trải nghiệm khám phá âm nhạc của người dùng.

VI. Kết luận khóa luận và định hướng phát triển trong tương lai

Khóa luận "Xây dựng Website Nghe Nhạc Kết Hợp Nhận Diện Nhạc Qua Giai Điệu Và Đề Xuất" đã hoàn thành xuất sắc các mục tiêu đề ra. Về mặt sản phẩm, một website nghe nhạc đầy đủ chức năng đã được xây dựng, tích hợp thành công hai tính năng cốt lõi là nhận dạng và đề xuất. Về mặt nghiên cứu, đề tài đã áp dụng và kiểm chứng hiệu quả của các kỹ thuật xử lý âm thanh, Music Fingerprinting và các mô hình học máy hiện đại như CNN trong lĩnh vực âm nhạc. Đây là một công trình khóa luận tốt nghiệp CNTT có giá trị thực tiễn cao, minh chứng cho khả năng ứng dụng các kiến thức học thuật vào giải quyết các bài toán trong thế giới thực. Tuy nhiên, hệ thống vẫn còn một số hạn chế như tập dữ liệu huấn luyện còn giới hạn và các thuật toán đề xuất có thể được cải tiến hơn nữa. Hướng phát triển trong tương lai có thể bao gồm việc mở rộng cơ sở dữ liệu bài hát, sử dụng các kiến trúc Deep Learning phức tạp hơn như Transformer cho việc phân tích âm nhạc, hoặc tích hợp xử lý ngôn ngữ tự nhiên (NLP) để phân tích lời bài hát và cảm xúc, từ đó tạo ra một music recommendation system thông minh và tinh vi hơn. Việc sử dụng các công cụ như Spotify API để làm giàu dữ liệu cũng là một hướng đi tiềm năng.

6.1. Tổng kết các kết quả nghiên cứu và sản phẩm đạt được

Kết quả chính của khóa luận là một sản phẩm website hoạt động ổn định và hai hệ thống con mạnh mẽ. Hệ thống nhận dạng âm thanh chứng tỏ độ chính xác cao trong các điều kiện thử nghiệm khác nhau. Hệ thống đề xuất âm nhạc đã triển khai thành công mô hình lai, kết hợp cả phương pháp dựa trên nội dung và hành vi người dùng, mang lại các gợi ý đa dạng và phù hợp. Quá trình nghiên cứu đã giúp làm sâu sắc thêm hiểu biết về các lĩnh vực như xử lý tín hiệu số, machine learning for music recommendation, và kiến trúc phần mềm hiện đại.

6.2. Các hướng phát triển tiềm năng cho hệ thống trong tương lai

Để hoàn thiện hệ thống, nhiều hướng phát triển có thể được xem xét. Đầu tiên, có thể cải tiến thuật toán gợi ý nhạc bằng cách áp dụng các mô hình học sâu tiên tiến hơn, có khả năng nắm bắt các mối quan hệ phức tạp trong dữ liệu. Thứ hai, tích hợp xử lý ngôn ngữ tự nhiên (NLP) để phân tích lời bài hát, bình luận của người dùng có thể bổ sung một chiều dữ liệu mới cho việc đề xuất. Thứ ba, có thể xây dựng một hệ thống đề xuất theo ngữ cảnh (context-aware), gợi ý nhạc dựa trên thời gian trong ngày, tâm trạng hoặc hoạt động của người dùng. Cuối cùng, việc mở rộng quy mô hệ thống và tối ưu hóa hiệu năng để phục vụ lượng người dùng lớn là một bước đi cần thiết để đưa sản phẩm ra thực tế.

27/09/2025

Trích đoạn nội dung tài liệu

Chương 1. GIỚI THIỆU CHUNG 1. Thực trạng nhu cầu nghe nhạc hiện nay Hiện nay, dưới sự phát triển của xã hội, nhu cầu giải trí của con người ngày càng tăng mạnh. Theo thống kê ở Việt Nam hằng ngày có 68.17 triệu người dùng Internet và mỗi người dành khoảng 1 giờ 1 phút mỗi ngày để nghe nhạc.

Dưới nhu cầu khổng lồ ấy, thị trường âm nhạc ngày càng phát triển, liên tục ra mắt nhiều bài hát đến với người dùng. Và từ đây phát sinh ra nhiều vấn đề như: Nếu một ngày bạn nghe thấy một bản nhạc hay ở nhà hàng hoặc một nơi bất kỳ nào đó hoặc bạn nhớ một bài hát tuổi thơ nhưng mãi không nhớ nỗi tên bài hát, bạn làm thế nào để tìm kiếm bài hát đó? Làm thế nào để gợi ý sản phẩm âm nhạc sao cho phù hợp với sở thích của từng người dùng ? 1. Lý do chọn đề tài Nhờ vào sự phát triển của công nghệ thông tin hiện nay, sự bùng nổ của Machine Learning giúp cho việc giải bài toán trên ngày càng khả thi hơn. Nhằm áp dụng những kiến thức đã được trang bị trong quá trình học tập, tìm hiều các công nghệ hiện đại về xử lý âm thanh, Deep Learning và hiện thực hóa các công nghệ đó, áp dụng các công nghệ để tạo ra các sản phẩm mang lại lợi ích cho cả người dùng và nhà phát hành nhạc, chúng em quyết định lựa chọn “Xây dựng Website Nghe Nhạc Kết Hợp Nhận Diện Nhạc Qua Giai Điệu Và Đề Xuất” làm đề tài nghiên cứu cho khóa luận tốt nghiệp.

Đối tượng nghiên cứu Khoá luận này hướng đến nghiên cứu các đối tượng sau: − Các công nghệ: ● Front-end: Angular ● Back-end: .Net Core, Flask ● Database: MongoDB, SQL ● Music Fingerprinting ● Deep Learning 1 − Đối tượng trong phạm vi đề tài hướng đến: ● Người dùng nghe nhạc ● Cá nhân, tổ chức phát hành bài hát ● Các công ty trong lĩnh vực nghe nhạc trực tuyến 1. Phạm vi nghiên cứu - Phạm vi địa lý: Trong lãnh thổ Việt Nam - Phạm vi người sử dụng: Người Việt Nam - Phạm vi nội dung bài hát: Nhạc Việt, Âu Mỹ và Hàn Quốc - Phạm vi công nghệ: ● Frontend: Angular ● Backend (Recognize): ASP .NET ● Backend (Music Service): ASP .NET ● Backend (Recommender System): Flask 1. Phương pháp nghiên cứu Nhóm đã sử dụng các phương pháp: - Phương pháp đọc tài liệu - Phân tích các app tương tự - Phương pháp thực nghiệm 2 Chương 2. KIẾN THỨC NỀN TẢNG 2.

Tổng quan về mô hình MVC 2. Khái niệm Mô hình MVC (Model – View – Controller) là một trong những mô hình kiến trúc ứng dụng phổ biến nhất. Ban đầu mô hình này được áp dụng chủ yếu ở các ứng dụng desktop, nhưng sau này ý tưởng về mô hình MVC được ứng dụng cho các nền tảng khác như Web.1 Mô hình MVC 2. Cấu trúc mô hình MVC - Tầng xử lý – Controller : Xử lí logic của ứng dụng, là cầu nối giữa tầng View và Model.

Hay nói một cách cụ thể, Controller sẽ nhận yêu cầu được gửi từ View và thực hiện xử lí yêu cầu, truy vấn hoặc thao tác dữ liệu lên tầng Model. Sau khi xử lý xong, kết quả sẽ được trả về lại cho tầng View. - Tầng logic dữ liệu – Model: 3 Tầng Model là trung gian giữa ứng dụng và hệ quản trị cơ sở dữ liệu để cung cấp và quản lí mô hình và các thao tác lên dữ liệu. Thông thường, tầng Model sẽ kết nối với một hoặc nhiều cơ sở dữ liệu để thực hiện các thao tác lên dữ liệu.

- Tầng giao diện – View: Thể hiện giao diện người dùng, là thành phần giao tiếp giữa người dùng (user) và ứng dụng (application). Mô hình MVC trong ứng dụng Web Với sự phát triển của các công nghệ xây dựng web ở cả Frontend và Backend, các nhà phát triển có thể xây dựng và phát triển ứng dụng web một cách độc lập nhưng vẫn đảm bảo được tính kiến trúc của ứng dụng.2 Mô hình MVC trong ứng dụng Web H ì n h S T Y 4 L E R − Tầng giao diện người dùng (View) sẽ được phát triển độc lập ở phía client sử dụng các công nghệ Frontend như VueJS, ReactJS, AngularJS … Nói cách khác, client sẽ được chạy trên 1 server độc lập và có thể tương tác với phía server của backend. − Tầng xử lí (Controller) và logic dữ liệu (Model) sẽ được phát triển độc lập ở phía server sử dụng các công nghệ Backend như ExpressJS, DotNetCore, Flank, … − Sau khi hoàn thành việc phát triển, client sẽ cung cấp 1 bản build hoàn chỉnh để thêm vào phía Server. Người dùng sẽ yêu cầu thành phần giao diện thông qua request gửi đến Server.

Tổng quan về. Giới thiệu Hình 2.1 Net core và .Net framework ASP.NET Core là một framework web mã nguồn mở của Microsoft được ra mắt năm 2016 và là người kế nhiệm của ASP. Nó được thiết kế lại từ đầu để trở nên 5 nhanh chóng, linh hoạt và chạy trên được nhiều nền tảng khác nhau như Windows, Linux, Mac. Đặc trưng của NodeJS Mỗi ứng dụng NodeJS chạy trên một process đơn và không tạo thêm luồng mới cho mỗi request.

Đây cũng là điểm khác biệt của NodeJS so với các môi trường thực thi khác như DotNetCore, …. Thay vào đó, NodeJS sử dụng cơ chế bất đồng bộ I/O (non-blocking I/O) để quản lí các request thay vì block chúng nhằm giảm thiểu việc tốn tài nguyên xử lí. Nhờ vào cơ chế này, NodeJS có thể xử lý hàng ngàn kết nối đồng thời với 1 server duy nhất mà không cần nhà phát triển phải bỏ công sức và thời gian để quản lí các luồng. Tạo sao chọn .NET core để phát triển server − Hợp nhất việc xây dựng web UI và web APIs.

− Tích hợp những client-side frameworks hiện đại và những luồng phát triển − Dependency injection được xây dựng sẵn. − HTTP request được tối ưu nhẹ hơn. − Có thể host trên IIS hoặc self-host trong process của riêng bạn. − Được xây dựng trên .NET Core, hỗ trợ thực sự app versioning.

− Chuyển các thực thể, thành phần, module như những NuGet packages. − Những công cụ mới để đơn giản hóa quá trình phát triển web hiện đại. − Xây dựng và chạy đa nền tảng (Windows, Mac và Linux). − Mã nguồn mở và tập trung vào cộng đồng.

Giới thiệu Hình 2. Ưu điểm của Angular − Dễ dàng tạo ra các Single Page Application. − Mang lại cảm giác linh hoạt, thân thiện khi cung cấp khả năng data binding tới HTML. − Dễ dàng Unit test.

− Tái sử dụng component một cách dễ dàng. − Tiết kiệm thời gian viết code và tích hợp nhiều chức năng hơn. − Chạy được trên nhiều loại trình duyệt. Hệ quản trị cơ sở dữ liệu MongoDB 2.

Giới thiệu Hình 2.1 So sánh mức độ phổ biến của MongoDB Hệ quản trị cơ sở dữ liệu MongoDB là một mã nguồn mở NoSQL. Thay vì sử dụng các bảng và hàng như trong các cơ sở dữ liệu truyển thống, MongoDB sử dụng collection và document. Đặc điểm của MongoDB: ● Khác với SQL, MongoDB không cần định nghĩa sẵn các schema, các trường có thể được thêm vào trực tiếp. ● Document: o Mỗi document sẽ có dạng là các cặp key-value (tương tự như JSON).

Các document có thể có các key-value, kích thước, và nội dung khác nhau (Không cố định như SQL) Mỗi trường có thể lưu trữ nhiều loại kiểu dữ liệu từ đơn giản (như number, string) đến phức tạp (Object, Array, …) Collection: Mỗi collection sẽ chứa nhiều Document và các phương thức hỗ trợ thao tác lên dữ liệu. Ưu điểm của MongoDB − MongoDB lưu trữ dữ liệu dễ dàng, linh hoạt và dễ dàng mở rộng vì dữ liệu trong MongoDB không có sự ràng buộc lẫn nhau. − MongoDB có tốc độ truy vấn nhanh hơn so với các cơ sở dữ liệu quan hệ − MongoDB có khả năng mở rộng tốt thông qua các cluster. Giới thiệu về Flask Bên cạnh Dijango thì Flask là một Web Framework cực kỳ phổ biến, nhẹ và dễ dàng sử dụng cho người mới bắt đầu hoặc những Data Scientist,.

muốn xây dựng API để hỗ trợ xây dựng mô hình máy hình máy học. Tại sao sử dụng Flask Flask rất dễ dàng sử dụng với syntax đơn giản. Flask giảm thời gian bỏ ra để xây dựng hệ thống Backend của hệ thống và cho phép lập trình viên xây dựng nhanh hơn và thông minh hơn. Với một cộng đồng hỗ trợ tương đối rộng.

Bên cạnh đó Flask cung cấp nhiều tài liệu từ cài đặt đến thực hiện và triển khai. Giới thiệu về Keras Keras là một open source cho Neural Network được viết bằng Python. Keras được dựa trên cấu trúc tối thiểu cho phép người dùng tạo ra model Deep Learning với nhiều tính năng như: ● API đơn giản và dễ dàng mở rộng ● Hỗ trợ nhiều nền tảng và backends ● Là một framework thân thiện với người dùng có thể chạy trên cả CPU và GPU 9 2. Tại sao sử dụng Keras Keras có một cộng đồng hỗ trợ lớn và hỗ trợ tài liệu chi tiết dễ dàng cho việc nghiên cứu.

Keras hỗ trợ sẵn các model giúp cho việc xây dựng mô hình máy học đơn giản hơn chỉ qua các bước như: ● Chuẩn bị data cho việc training model ● Thực hiện Data Preprocessing ● Xây dựng mô hình máy học ● Train mô hình dựa trên phương thức fit() của Keras ● Đánh giá mô hình dựa trên dữ liệu test. Chúng ta có thể tăng tốc tốc độ huấn luyện mô hình bằng cách sử dụng nhiều GPU. Tìm hiểu công nghệ 3. Tổng quan về quá trình Hình 3.1 Mô tả Processing Pipeline 3.

Xử lý thu âm Âm thanh trong thực tế là một dao động lan truyền như một sóng cơ học qua môi trường như không khí hoặc nước. Để ghi lại được âm thanh thì các thiết bị thu âm mô phỏng khá sát với quá trình mà con người chúng ta nhận biết được âm thanh. Sử dụng áp suất của sóng chuyển thành tín hiệu điện ( Tức chuyển từ Analog thành Digital). Tín hiệu điện sau khi được xử lý từ micro có tính liên tục.

Tín hiệu liên tục này không quá hữu ích trong thế giới kĩ thuật số, vì vậy trước hết phải dịch nó thành một tín hiệu có tín rời rạc để được lưu trữ dưới dạng kỹ thuật số (Digital). Việc chuyển đổi có thể xuất hiện lỗi. Do đó, thay vì chỉ chuyển một lần duy nhất, bộ chuyển đổi này thực hiện nhiều lần chuyển đổi, quá trình này được gọi là Lấy Mẫu (Sampling).2 Xử lý thu âm Để thu được hết tất cả các âm thì chúng ta sẽ âm với tần số gấp đôi dải tần mà con người có thể có nghe được ( 20Hz – 20,000Hz).

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ