Tại sao sử dụng Keras

Một phần của tài liệu Xây dựng website nghe nhạc kết hợp nhận diện nhạc qua giai điệu và đề xuất (khóa luận tốt nghiệp) (Trang 27 - 56)

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.

Ngoài ra. 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

11

Chương 3. PHÂN TÍCH

3.1. Tìm hiểu công nghệ

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

3.1.2. 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).

12 Để 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). Do đó, hầu hết các máy thu âm hiện nay sử dụng tần số 44,100 Hz.

3.1.3. Time-Domain và Frequency-Domain

Thứ chúng ta có được trong những mảng nhị phân này là Signal Recorded trong Time-Domain. Nó cho chúng ta thấy những thay đổi trong biên độ của tín hiệu qua thời

gian.

Hình 3.1.3-1 Analog và Digital Signal Hình 3.1.2 Xử lý thu âm

13 Với phát hiện vào những năm 1800, bất kỳ tín hiệu nào trong miền thời gian đều tương đương với tổng của một số ( có thể là vô hạn) các tín hiệu hình sin. Chuỗi sin kết hợp với nhau tạo thành Signal Time-Domain ban đầu của nó được gọi là chuỗi Fourier của nó.

Nói cách khác, có thể biểu diễn bất kỳ Time-Domain nào bằng cách thể hiện tập hợp tần số, biên độ và pha tương ứng của mỗi hình sin tạo nên tín hiệu. Sự thể hiện này được gọi là Frequency Domain. Có thể coi Frequency Domain là một fingerprint

hoặc một signature của Tín hiệu Time-Domain.

14 Chúng ta sử dụng Discrete Fourier Transform (DFT) để chuyển tín hiệu từ Time

Domain ra Frequency Domain. DFT là một lý thuyết toán học để biểu diễn Fourier

Analysis trên một mẫu tín hiệu rời rạc (Sample Signal).

Một trong những thuật toán nổi tiếng nhất cho việc tính toán của DFT là The Fast

Fourier transform (FFT).Cho đến nay, biến thể được sử dụng phổ biến nhất của FFT

là thuật toán Cooley – Tokey. Với việc sử dụng đệ quy thì thay vì tính toán với DFT đơn thuần với độ phức tạp là O(n2), ta chỉ mất O(n log n ).

Ngoài ra còn một số cách xử lý âm thanh như kích tín hiệu tần số, trượt window sau đó sử dụng DFT và FFT, mel filterbank.

Hình 3.1.3-3 Chuyển đổi từ TimeDomain sang FrequencyDomain

15

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

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

Hệ thống bao gồm các thành phần sau:

Web (client): thể hiện giao diện nơi người dùng tương tác với hệ thống. Client

giao tiếp với Server thông qua Request/Response để yêu cầu xử lý thông tin và nhận kết quả hiển thị lên cho người dùng. Web (client) được hiện thực hóa sử dụng Angular.

Hình 3.1.3-5 Công thức biến đổi cho hàm rời rạc

16

Server (.NET Core): Nhận và xử lý các request về tính năng nghe nhạc từ Client.

Có thể tương tác với Database để tương tác dữ liệu và trả kết quả về cho Client thông qua Response. Server được hiện thực hóa sử dụng .NET Core và Python

Database: Lưu trữ toàn bộ dữ liệu của hệ thống.

Storage: Lưu trữ các file BLOB quá nặng mà Database không thể lưu trữ tốt

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

17

3.2.2.1 Đặc tả Usecase Đăng ký

Tên chức năng Đăng ký

Tóm tắt Chức năng đăng ký vào hệ thống.

Dòng sự kiện chính 1. Hệ thống hiển thị biểu mẫu đăng ký.

2. Người dung nhập các trường thông tin đăng ký và nhấn “Đăng ký”.

3. Hệ thống kiểm tra thông tin đăng ký và thực hiện đăng ký

(Dòng sự kiện khác: Đăng ký không thành công). 4. Hệ thống hiển thị đăng ký thành công và chuyển qua trang đăng nhập.

Dòng sự kiện khác 1. Đăng ký không thành công:

Hệ thống hiển thị thông báo tài khoản đăng ký không hợp lệ hoặc lỗi.

Các yêu cầu đặc biệt Không có

Trạng thái hệ thống trước khi thực thiện

use case

Actor: Anonymous Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use

case

Không có

Điểm mở rộng Không có

Bảng 3.2.1 Đặc tả Usecase Đăng ký

3.2.2.2 Đặc tả Usecase Đăng nhập

Tên chức năng Đăng nhập

Tóm tắt Chức năng đăng nhập vào hệ thống.

Dòng sự kiện chính 1. Hệ thống hiển thị biểu mẫu đăng nhập.

2. Người dùng nhập tên và tài khoản (cả 2 trường này đều bắt buộc nhập) và nhấn “Đăng nhập”.

18

(Dòng sự kiện khác: Thông tin đăng nhập sai). 4. Hệ thống hiển thị form chính.

Dòng sự kiện khác 1. Thông tin đăng nhập sai:

Hệ thống hiển thị thông báo tài khoản đăng nhập không hợp lệ.

Các yêu cầu đặc biệt Không có

Trạng thái hệ thống trước khi thực thiện

use case

Actor: Admin Điều kiện: không có

Trạng thái hệ thống sau khi thực hiện use

case

Không có

Điểm mở rộng Không có

Bảng 3.2.2 Đặc tả Usecase Đăng nhập

3.2.2.3 Đặc tả Usecase Đăng Xuất

Tên chức năng Đăng xuất

Tóm tắt Chức năng đăng xuất ra hệ thống.

Dòng sự kiện chính 1. Người dùng nhấn vào Đăng xuất

2. Hệ thống đăng xuất và trở về màn hình chính

Dòng sự kiện khác Không có

Các yêu cầu đặc biệt Không có

Trạng thái hệ thống trước khi thực hiện use

case

Actor: Admin

Điều kiện: người dùng đã đăng nhập hệ thống

Trạng thái hệ thống sau khi thực hiện use

case

Không có

Điểm mở rộng Không có

19

3.2.2.4 Đặc tả Usecase Bảng xếp hạng

Tên chức năng Bảng xếp hạng

Tóm tắt Người dùng xem bảng xếp hạng các nghệ sĩ và bài hát

dựa trên lượt nghe, thích

Dòng sự kiện chính 1. Người dùng truy cập vào trang chủ

2. Hệ thống hiển thị bảng xếp hạng

Dòng sự kiện khác Không có

Các yêu cầu đặc biệt Không có

Trạng thái hệ thống trước khi thực thiện

use case

Actor: Anonymous Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use

case

Không có

Điểm mở rộng Không có

Bảng 3.2.4 Đặc tả Usecase Bảng xếp hạng

3.2.2.5 Đặc tả Usecase Nghe nhạc

Tên chức năng Nghe nhạc

Tóm tắt Người dùng lựa chọn và phát bài nhạc mong muốn

Dòng sự kiện chính 1. Người dùng truy cập vào trang chủ

2. Người dùng nhấn vào nút Play trên bài nhạc 3. Hệ thống phát nhạc

Dòng sự kiện khác Không có

Các yêu cầu đặc biệt Không có

Trạng thái hệ thống trước khi thực thiện

use case

Actor: Anonymous Điều kiện: Không có

20

Trạng thái hệ thống sau khi thực hiện use

case

Không có

Điểm mở rộng Xem lyrics

Bảng 3.2.5 Đặc tả Usecase Nghe nhạc

3.2.2.6 Đặc tả Usecase Xem Lyrics

Tên chức năng Xem Lyrics

Tóm tắt Người dùng lựa chọn bài nhạc và xem lời bài hát

Dòng sự kiện chính 1. Người dùng truy cập vào trang chủ

2. Người dùng nhấn vào nút Play trên bài nhạc 3. Hệ thống phát nhạc

4. Người dùng chọn nút Player trên thang Sidenav để chuyển đến giao diện phát nhạc lớn

5. Hệ thống hiển thị lời bài hát khớp với thời gian

Dòng sự kiện khác Không có

Các yêu cầu đặc biệt Không có

Trạng thái hệ thống trước khi thực thiện

use case

Actor: Anonymous Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use

case

Không có

Điểm mở rộng Không có

Bảng 3.2.6 Đặc tả Usecase Xem Lyrics

3.2.2.7 Đặc tả Usecase Karaoke

Tên chức năng Karaoke

21

Dòng sự kiện chính 1. Người dùng truy cập vào trang chủ

2. Người dùng nhấn vào nút Play trên bài nhạc 3. Hệ thống phát nhạc

4. Người dùng chọn nút Player trên thang Sidenav để chuyển đến giao diện phát nhạc lớn

5. Hệ thống hiển thị lời bài hát khớp với thời gian

6. Người dùng chọn nút Karaoke để chuyển qua Karaoke Mode

7. Hệ thống thu âm lại đoạn Karaoke

Dòng sự kiện khác Không có

Các yêu cầu đặc biệt Không có

Trạng thái hệ thống trước khi thực thiện use

case

Actor: Anonymous Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Không có

Điểm mở rộng Thu âm

Bảng 3.2.7 Đặc tả Usecase Karaoke

3.2.2.8 Đặc tả Usecase Tương tác với bài nhạc

Tên chức năng Tương tác với bài nhạc

Tóm tắt Người dùng lựa chọn bài nhạc và tương tác với bài hát

Dòng sự kiện chính 1. Người dùng truy cập vào trang chủ

2. Người dùng nhấn vào nút Like/Download trên bài nhạc

3. Hệ thống ghi nhận các hoạt động của người dùng

Dòng sự kiện khác Không có

22

Trạng thái hệ thống trước khi thực thiện

use case

Actor: Anonymous Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use

case

Hệ thống ghi nhận các hoạt động của người dùng

Điểm mở rộng Không có

Bảng 3.2.8 Đặc tả Usecase Tương tác với bài nhạc

3.2.2.9 Đặc tả Usecase Playlist cá nhân

Tên chức năng Playlist cá nhân

Tóm tắt Người dùng lựa chọn bài nhạc và thêm vào playlist

Dòng sự kiện chính 1. Người dùng truy cập vào trang chủ

2. Người dùng nhấn vào nút Add to playlist trên bài nhạc 3. Hệ thống hiển thị danh sách Playlist

4. Người dùng thêm bài nhạc vào Playlist

Dòng sự kiện khác Không có

Các yêu cầu đặc biệt Không có

Trạng thái hệ thống trước khi thực thiện

use case

Actor: Anonymous Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use

case

Không có

Điểm mở rộng Không có

Bảng 3.2.9 Đặc tả Usecase Playlist cá nhân

3.2.2.10 Đặc tả Usecase Gợi ý âm nhạc

23

Tóm tắt Người dùng được gợi ý các bài hát phù hợp với bản thân

Dòng sự kiện chính 1. Người dùng truy cập vào trang chủ

2. Người dùng nhấn vào nút Play trên bài nhạc 3. Hệ thống phát nhạc

4. Người dùng chọn nút Player trên thang Sidenav để chuyển đến giao diện phát nhạc lớn

5. Hệ thống hiển thị lời bài hát khớp với thời gian

Dòng sự kiện khác Không có

Các yêu cầu đặc biệt Không có

Trạng thái hệ thống trước khi thực thiện

use case

Actor: Anonymous Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use

case

Không có

Điểm mở rộng Không có

Bảng 3.2.10 Đặc tả Usecase Gợi ý âm nhạc

3.2.2.11 Đặc tả Usecase Tìm kiếm bài hát

Tên chức năng Tìm kiếm bài hát

Tóm tắt Người dùng tìm kiếm bài hát mong muốn

Dòng sự kiện chính 1. Người dùng truy cập vào trang chủ

2. Người dùng nhấn vào nút Search trên Side Nav 3. Hệ thống hiển thị ra khung search

4. Người dùng nhập nội dung tìm kiếm

5. Hệ thống hiển thị danh sách kết quả tìm kiếm

Dòng sự kiện khác Không có

24

Trạng thái hệ thống trước khi thực thiện

use case

Actor: Anonymous Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use

case

Hệ thống hiển thị danh sách kết quả tìm kiếm

Điểm mở rộng Nhận diện nhạc qua giai điệu

Bảng 3.2.11 Đặc tả Usecase Tìm kiếm bài hát

3.2.2.12 Đặc tả Usecase Nhận diện nhạc qua giai điệu

Tên chức năng Nhận diện nhạc qua giai điệu

Tóm tắt Nhận diện một đoạn nhạc cần tìm kiếm

Dòng sự kiện chính 1. Người dùng truy cập vào trang chủ

2. Người dùng nhấn vào nút Search trên Sidenav 3. Hệ thống hiển thị ra khung search

4. Người dùng nhấn vào nút Micro

5. Hệ thống hiển thị trang tìm kiếm qua giai điệu 6. Người dùng lựa chọn thu âm hoặc tải lên đoạn nhạc cần tìm kiếm

7. Hệ thống trả về kết quả tìm kiếm dựa trên độ chính xác

Dòng sự kiện khác Không có

Các yêu cầu đặc biệt Không có

Trạng thái hệ thống trước khi thực thiện

use case

Actor: Anonymous Điều kiện:

Trạng thái hệ thống sau khi thực hiện use

case

Hệ thống nhận diện và trả kết quả cho người dung.

Điểm mở rộng Không có

25

3.2.2.13 Đặc tả Usecase Quản lý profile

Tên chức năng Quản lý profile

Tóm tắt Người dùng quản lý profile cá nhân

Dòng sự kiện chính 1. Người dùng truy cập vào trang chủ

2. Người dùng nhấn vào nút Profile trên Side Nav 3. Hệ thống hiển thị ra form Profile

4. Người dùng nhập nội dung chỉnh sửa 5. Hệ thống lưu lại kết quả chỉnh sửa

Dòng sự kiện khác Không có

Các yêu cầu đặc biệt Không có

Trạng thái hệ thống trước khi thực thiện

use case

Actor: Anonymous Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use

case

Hệ thống lưu lại kết quả chỉnh sửa

Điểm mở rộng Không có

Bảng 3.2.13 Đặc tả Usecase Quản lý Profile

3.2.2.14 Đặc tả Usecase Thêm bài hát

Tên chức năng Thêm bài hát

Tóm tắt Thêm bài hát vào cơ sở dữ liệu của hệ thống

Dòng sự kiện chính 1. Người dùng đăng nhập vào trang quản trị

2. Người dùng chọn trang quản trị bài hát 3. Người dùng chọn Thêm bài hát

4. Người dùng nhập điền đầy đủ thông tin bài hát 5. Người dùng nhấn “Thêm”

6. Hệ thống Thêm bài hát

Dòng sự kiện khác Không thể thêm bài hát

26

Trạng thái hệ thống trước khi thực thiện

use case

Actor: Admin

Điều kiện: Người dùng đã đăng nhập hệ thống

Trạng thái hệ thống sau khi thực hiện use

case

Hệ thống thêm bài hát vào cơ sở dữ liệu

Điểm mở rộng Không có

Bảng 3.2.14 Đặc tả Usecase Thêm bài hát

3.2.2.15 Đặc tả Usecase Sửa bài hát

Tên chức năng Sửa bài hát

Tóm tắt Sửa bài hát vào cơ sở dữ liệu của hệ thống

Dòng sự kiện chính 1. Người dùng đăng nhập vào trang quản trị

2. Người dùng chọn trang quản trị bài hát 3. Người dùng chọn Sửa bài hát

4. Người dùng nhập điền đầy đủ thông tin cần sửa 5. Người dùng nhấn “Sửa”

6. Hệ thống Sửa bài hát

Dòng sự kiện khác Không thể sửa bài hát

Các yêu cầu đặc biệt Không có

Trạng thái hệ thống trước khi thực thiện

use case

Actor: Admin

Điều kiện: Người dùng đã đăng nhập hệ thống

Trạng thái hệ thống sau khi thực hiện use

case

Hệ thống sửa bài hát trong cơ sở dữ liệu

Điểm mở rộng Không có

27

3.2.2.16 Đặc tả Usecase Xóa bài hát

Tên chức năng Xóa bài hát

Tóm tắt Xóa bài hát vào cơ sở dữ liệu của hệ thống

Dòng sự kiện chính 1. Người dùng đăng nhập vào trang quản trị

2. Người dùng chọn trang quản trị bài hát 3. Người dùng chọn Xóa bài hát

4. Hệ thống hiện hộp thoại “Xác nhận xóa” 5. Người dùng nhấn “Xác nhận”

6. Hệ thống Xóa bài hát

Dòng sự kiện khác Không thể xóa bài hát

Các yêu cầu đặc biệt Không có

Trạng thái hệ thống trước khi thực thiện

use case

Actor: Admin

Điều kiện: Người dùng đã đăng nhập hệ thống

Trạng thái hệ thống sau khi thực hiện use

case

Hệ thống xóa bài hát trong cơ sở dữ liệu

Điểm mở rộng Không có

Bảng 3.2.16 Đặc tả Usecase Xóa bài hát

3.2.2.17 Đặc tả Usecase Thêm nghệ sĩ

Tên chức năng Thêm nghệ sĩ

Một phần của tài liệu Xây dựng website nghe nhạc kết hợp nhận diện nhạc qua giai điệu và đề xuất (khóa luận tốt nghiệp) (Trang 27 - 56)