Mục đích của đề tài ● Nghiên cứu thuật toán Audio Fingerprinting cũng như công nghệ liênquan đến nhận diện âm thanh một cách tối ưu để áp dụng trong côngviệc xét bản quyền nhạc của các s
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
Nguyễn Đắc Thiên Ngân - 18520109
ĐỒ ÁN 2 ỨNG DỤNG CÔNG NGHỆ NHẬN DIỆN ÂM THANH VÀO
NỀN TẢNG VIDEO TRỰC TUYẾN ONLINE VIDEO-SHARING PLATFORM INTEGRATED WITH
MUSIC RECOGNITION
GIẢNG VIÊN HƯỚNG DẪN Thạc sĩ: Trần Anh Dũng
TP HỒ CHÍ MINH, 2021
Trang 2THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
……… ngày ……… của Hiệu trưởng Trường Đại học Côngnghệ Thông tin
2 ……… – Chủ tịch
2 ……… – Thư ký
2 ……… – Ủy viên
2 ……… – Ủy viên
Trang 3ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập - Tự Do - Hạnh Phúc
TP HCM, ngày tháng năm 2021
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ HƯỚNG DẪN) Tên khóa luận:
Ứng dụng công nghệ nhận diện âm thanh vào nền tảng video trực tuyến
Nhóm sinh viên thực hiện: Cán bộ hướng dẫn:
NGUYỄN ĐẮC
THIÊN NGÂN
18520109 ThS Trần Anh Dũng
Đánh giá Khóa luận:
1 Về cuốn báo cáo:
Số bảng số liệu Số hình vẽ
Số tài liệu tham khảo Sản phẩm
Một số nhận xét về hình thức cuốn báo cáo:
2 Về nội dung nghiên cứu:
3 Về chương trình ứng dụng:
4 Về thái độ làm việc của sinh viên:
Trang 4Đánh giá chung:
Điểm từng sinh viên:
NGUYỄN ĐẮC THIÊN NGÂN: ……… /10
Người nhận xét
(Ký và ghi rõ họ tên)
Trần Anh Dũng
Trang 5ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập – Tự Do – Hạnh Phúc
TP HCM, ngày tháng năm 2021
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ PHẢN BIỆN)
Tên khóa luận:
Ứng dụng công nghệ nhận diện âm thanh vào nền tảng video trực tuyến
Nhóm sinh viên thực hiện: Cán bộ phản biện:
NGUYỄN ĐẮC THIÊN
NGÂN
18520109 ThS Trần Anh Dũng
Đánh giá Khóa luận:
1 Về cuốn báo cáo:
Số bảng số liệu Số hình vẽ
Số tài liệu tham khảo Sản phẩm
Một số nhận xét về hình thức cuốn báo cáo:
5 Về nội dung nghiên cứu:
6 Về chương trình ứng dụng:
7 Về thái độ làm việc của sinh viên:
Trang 6Đánh giá chung:
Điểm từng sinh viên:
NGUYỄN ĐẮC THIÊN NGÂN: ……… /10
Người nhận xét
(Ký và ghi rõ họ tên)
Trang 7LỜI CẢM ƠN
Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại họcCông nghệ Thông tin – ĐHQG TP.HCM chúng em đã được trang bị các kiến thức
cơ bản, các kỹ năng thực tế để có thể hoàn thành Khóa luận tốt nghiệp của mình
Để hoàn thành khóa luận này, chúng em xin gửi lời cảm ơn chân thành đến:
Ban Giám hiệu trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM vì đã tạođiều kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tàiliệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin
Chúng em xin gửi lời cảm ơn chân thành đến thầy Trần Anh Dũng đã tận tình giúp
đỡ, định hướng cách tư duy và cách làm việc khoa học Đó là những góp ý hết sứcquý báu không chỉ trong quá trình thực hiện luận văn này mà còn là hành trang tiếpbước cho chúng em trong quá trình học tập và lập nghiệp sau này
Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cô trong khoa,bạn bè, tập thể lớp PMCL2018 là những người luôn sẵn sàng sẻ chia và giúp đỡtrong học tập và cuộc sống Mong rằng, chúng ta sẽ mãi mãi gắn bó với nhau
Trong quá trình làm khóa luận này chúng em không tránh khỏi được những sai sót,chúng em kính mong nhận được sự chỉ dẫn và góp ý của quý thầy cô để khóa luậnđược hoàn thiện hơn
Chúng em xin chân thành cảm ơn Xin chúc những điều tốt đẹp nhất sẽ luôn đồnghành cùng mọi người
Thành phố Hồ Chí Minh, … tháng … năm 2021
Sinh viên
NGUYỄN ĐẮC THIÊN NGÂN
Trang 8ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập - Tự Do - Hạnh Phúc
TP HCM, ngày… tháng … năm 2021
ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Ứng dụng ông nghệ nhận diện âm thanh vào nền tảng video trực
tuyến
TÊN ĐỀ TÀI (TIẾNG ANH): Online video-sharing platform integrated with
music recognition
Cán bộ hướng dẫn: ThS Trần Anh Dũng Thời gian thực hiện: Từ ngày 20/09/2021 đến ngày 20/12/2020 Sinh viên thực hiện: Nguyễn Đắc Thiên Ngân– 18520109 Nội dung đề tài
1 Mục tiêu của đề tài 1.1 Bối cảnh chọn đề tài
Trong những năm gần đây, mạng xã hội đã không còn là một khái niệm xa
lạ với bất kể người già hay trẻ, người bận rộn hay người nhàn rỗi Khingười sử dụng điện thoại càng gia tăng, nhiều ứng dụng giải trí trên điệnthoại cũng ngày được ra mắt rộng rãi Việc giải trí như xem video đang dần
là một thói quen không thể thiếu của giới trẻ, hay bất kể ai thích cầm điệnthoại lướt mạng xã hội Video đang chiếm phần lớn nội dung mà chúng ta
Trang 9có thể tìm thấy trên mạng xã hội Hơn nữa, với tốc độ gia tăng này, nhu cầu
có thể sẽ tăng hơn nữa
Ai cũng có có thể sáng tạo video với những sự hỗ trợ tiện ích của các ứngdụng chỉnh sửa video Nhưng việc cho phép bất kỳ ai đăng tải video lênmạng xã hội, vấn đề vi phạm bản quyền âm nhạc ngày một nghiêm trọng
Do đó em đã lựa chọn đề tài này để hướng đến việc giải quyết vấn đề này
1.2 Mục đích của đề tài
● Nghiên cứu thuật toán Audio Fingerprinting cũng như công nghệ liênquan đến nhận diện âm thanh một cách tối ưu để áp dụng trong côngviệc xét bản quyền nhạc của các sản phẩm video được đăng tải
● Xây dựng và phát triển ứng dụng web có tính thực tiễn cao giúp thỏamãn những người có nhu cầu chia sẻ video
1.3 Ý nghĩa của đề tài
Về ý nghĩa đối với người dùng:
● Giúp việc đăng tải, chia sẻ video trở nên dễ dàng hơn
● Giúp hạn chế việc sáng tạo nội dung video khi chưa có sự cho phép sửdụng bản quyền âm nhạc
Về ý nghĩa đối với cá nhân nhóm em:
● Đề tài này tạo động lực giúp em tìm hiểu và trau dồi những kiến thứcmới liên quan đến nhận diện âm thanh và được ứng dụng kiến thứcđược học vào việc xây dựng một trang web chia sẻ video
● Việc xây dựng ứng dụng với các công nghệ VueJS, NodeJS giúp tíchlũy thêm kinh nghiệm trong công việc sau này của em
Trang 101.4 Nhiệm vụ của đề tài
Website chia sẻ video trực tuyến WatchOut:
● Đăng tải video (Có kiểm duyệt nhạc trong video)
● Tương tác: Thích / Không thích, Bình luận, Chia sẻ
● Quản lý video
● Tìm kiếm video
● Đăng ký / Đăng nhập / Đăng xuất
● Chỉnh sửa thông tin cá nhân
3 Đối tượng nghiên cứu
● Các công nghệ xây dựng trang web:
● VueJS
● NodeJS
● Sqlite3
● Các công nghệ nhận diện âm thanh:
● Phương pháp fingerprint phân tách âm thanh
● Thư viện ACRCloud hỗ trợ việc nhận diện âm thanh từ bản ghiâm
● Đối tượng người dùng:
● Người sáng tạo nội dung
Trang 11● Người thưởng thức nội dung
4 Phương pháp nghiên cứu
Nhóm đã sử dụng các phương pháp nghiên cứu:
- Phương pháp đọc tài liệu
- Phương pháp phân tích các ứng dụng chia sẻ video hiện có
- Phương pháp thực nghiệm
5 Kết quả dự kiến
Sau khi xác định đề tài và nghiên cứu, tìm hiểu thực tế, nhóm đã xâydựng ý tưởng thiết kế ứng dụng thương mại điện tử cần đạt được những mụctiêu sau:
5.1 Đối với người dùng
● Người dùng có thể tìm kiếm và xem video mà không cần tài khoảnđăng nhập
● Sau khi đăng nhập, người dùng có thể:
● Tương tác video như thích, bình luận, chia sẻ video
● Lựa chọn video từ thiết bị và đăng tải video đã chọn
● Video đã đăng tải sẽ được duyệt bản quyền, nếu không đượcduyệt sẽ có thông báo đến người dùng
5.2 Hệ thống nhận diện âm thanh
● Việc xử lý tách âm thanh từ video cũng như phải được xử lý nhanhchóng và đạt hiệu quả
● Việc nhận diện âm thanh bản quyền phải có kết quả đánh giá và so sánh
về kết quả đạt được có hoàn thiện hay chưa
5.3 Các tiêu chí khác
Trang 128 Hướng phát triển của đề tài:
Nếu tiến độ công việc đạt được như mong đợi, sẽ mở rộng thêm các tínhnăng đặc biệt như:
● Hỗ trợ thêm tính năng Video Editing như thêm filter, text, stickers,
● Cung cấp thêm tính năng CC tự động và cho phép custom phụ đề, hỗtrợ hiệu ứng đặc sắc hơn các nền tảng khác
● Tìm kiếm video bằng giọng nói
Ngoài ra nếu web đã hoàn thiện thì sẽ mở rộng thêm trên ứng dụng diđộng, sử dụng React Native hỗ trợ cross-platform thu hút thêm cả ngườidùng Android và IOS
9 Kế hoạch làm việc:
Thời gian thực hiện từ 20/09/2021 tới 20/12/2021
Nhóm chia thành 2 giai đoạn cụ thể:
Giai đoạn 1: Xây dựng hệ thống Back-end và tìm hiểu công nghệ nhận diện âm
thanh
Giai đoạn này gồm 5 sprint (Thời gian: 20/9/2021 – 8/11)
Trang 13Sprint Công việc
Tìm hiểu NodeJS và thư viện ACRCloud
Tìm hiểu cách tích hợp ACRCloud vào NodeJS3
(5/10 - 17/10)
Tìm hiểu ffmpeg để xử lý videoTìm hiểu AWS, S3 (Simple Storage Service)Tìm hiểu tích hợp AWS S3 khi sử dụng NodeJSThiết kế cơ sở dữ liệu
4
(18/10 - 26/10)
Thiết kế codebase, cấu trúc thư mụcXây dựng API cho các tính năng:
● Đăng tải video
● Tách âm thanh từ video
● Xử lý nhận diện âm thanh5
● Thêm / Xóa / Sửa video
Giai đoạn 2: Hoàn thiện giao diện website WatchOut
Giai đoạn này gồm 3 sprint:
Trang 14Sprint Công việc
(27/11-1/12)
Gọi api cho các giao diện như:
● Hiển thị video
● Tương tác videoLazy loading cho việc trang chủ giúp tối ưu việc hiển thịvideo
Fix một số bug khi upload video và nhận diện âm thanh8
(1/12 - 10/12)
Xây dựng giao diện cho các tính năng:
● Thông tin cá nhân
● Quản lý video (Đăng tải / Xóa / Sửa video)9
(10/12 - 20/12)
Kiểm thử và sửa lỗi
Hoàn thiện và báo cáo
Xác nhận của CBHD
(Ký tên và ghi rõ họ tên)
TP HCM, ngày 25 tháng 12 năm2021
Trang 15MỤC LỤC
Tầng logic dữ liệu – Model 16
Mô hình MVC trong ứng dụng Web 16
Tạo sao chọn Nodejs để phát triển server 18
Hệ quản trị cơ sở dữ liệu MongoDB 19
Amazon Simple Storage Service 20
Vòng đời của VueJS (Vuejs Lifecycle) 26
TÌM HIỂU VÀ LỰA CHỌN CÔNG NGHỆ NHẬN DIỆN ÂM THANH 30
Trang 16Cách não bộ xử lý âm thanh 30Giới thiệu tổng quan về âm thanh 30
Thuật toán Audio Fingerprinting 32
Usecase Chỉnh sửa thông tin cá nhân 55
Trang 17Giao diện chỉnh sửa thông tin video 74
Giao diện đăng tải video 76Giao diện chọn video từ máy tính 76Giao diện điền thông tin video 77Giao diện quản lý người dùng 79Giao diện cấm người dùng 80
Trang 18TÀI LIỆU THAM KHẢO 83
Trang 19Chương 1 GIỚI THIỆU CHUNG
1.1 Lý do chọn đề tài
Những năm gần đây Internet đã góp phần ảnh hưởng không nhỏ đến đời sống củamỗi người Trong đại dịch Covid-19, việc kết nối giữa người với người trực tiếpngày càng trở nên hạn chế do đó nhu cầu sử dụng mạng xã hội trực tuyến ngày cànggia tăng Không dừng ở đó, các ứng dụng giải trí cũng được rất nhiều người dùngyêu thích bởi sự giải tỏa áp lực căng thẳng khỏi những khó khăn tồn đọng trongmùa dịch Trên thị trường ứng dụng ngày nay, các ứng dụng chia sẻ video trựctuyến ngày một nhiều và có chỗ đứng không nhỏ khi tính năng ngày càng đa dạngphong phú Do đó, nhóm chúng em lựa chọn việc xây dựng trang web chia sẻ videotrực tuyến kết hợp với việc có ứng dụng nhận diện âm thanh ở tính năng check bảnquyền âm nhạc trong video
1.2 Tính năng mới/ khác biệt
Sau khi tham khảo một số ứng dụng chia sẻ video hiện nay nhóm nhận thấy cácvấn đề sau:
- Nhận diện bản quyền âm nhạc
Hiện nay vấn nạn ăn cắp bản quyền đang trở nên ngày càng nghiêm trọng hơn Mộtphần nguyên nhân bắt nguồn từ việc âm nhạc được tải xuống quá dễ dàng, điều này
dễ dẫn đến tổn thất rất lớn đến người sở hữu bản quyền âm nhạc đó
Do đó ứng dụng của em mong muốn có thể nhận diện bản quyền âm nhạc từ videongười dùng đăng tải Từ đó ứng dụng sẽ tiếp nhận việc cho phép đăng tải video bảnquyền hay không, và nếu có thì vẫn giúp người xem nhận biết được bài hát được sửdụng trong video bắt nguồn từ đâu
Trang 20- Trải nghiệm người dùng
Các ứng dụng tương tự trên thị trường hiện nay thường sẽ nhắm đến thị trường trênđiện thoại là chính, chưa tối ưu hóa trải nghiệm trên web (trừ một số trang web nhưYoutube) Đồ án em sẽ hướng đến việc cải thiện điều này
Từ đó nhóm quyết định thực hiện ứng dụng chia sẻ video trực tuyến với đầy đủchức năng cơ bản như đăng tải, thích, bình luận video,
Về phần giao diện: Nhóm kết hợp cách thiết kế layout của Youtube và Tiktok giúpngười dùng cảm thấy thân quen về dễ sử dụng Tối giản những thao tác phức tạpđem lại trải nghiệm người dùng tốt hơn
Về phần chức năng: Kết hợp và tối ưu việc xử lý video khi đăng tải cũng như nhậndiện bản quyền một cách hoàn thiện hơn
1.3 Đối tượng nghiên cứu
Khóa luận này hướng đến nghiên cứu các đối tượng sau:
- Các công nghệ:
+ Front-end: VueJS
+ Back-end: Node.js
+ Database: MongoDB
+ Thuật toán Audio Fingerprinting và api ACR Cloud
+ IDE: Visual Studio Code
- Đối tượng trong phạm vi đề tài hướng đến:
+ Người sáng tạo nội dung video
+ Người xem video, thích học hỏi từ các nội dung video
Trang 21− 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ương pháp nghiên cứu:
− 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
− Phương pháp thực nghiệm
Phương pháp công nghệ:
− Tìm hiểu Audio Fingerprinting và api ACR Cloud
− Xây dựng RESTful API để thao tác với dữ liệu
− Xây dựng website hỗ trợ tương tác giữa người dùng và hệ thống
Trang 23Tầng logic dữ liệu – Model
Tầng Model là trung gian giữa ứng dụng và hệ quản trị cơ sở dữ liệu đểcung cấp và quản lí mô hình và các thao tác lên dữ liệu Thông thường, tầng Model
sẽ kết nối với một hoặc nhiều cơ sở dữ liệu để thực hiện các thao tác lên dữ liệu
Tầng giao diện – View
Thể hiện giao diện người dùng, là thành phần giao tiếp giữa người dùng(user) và ứng dụng (application)
2.1.3 Mô hình MVC trong ứng dụng Web
Với sự phát triển của các công nghệ xây dựng web ở cả Frontend vàBackend, các nhà phát triển có thể xây dựng và phát triển ứng dụng web một cáchđộc lập nhưng vẫn đảm bảo được tính kiến trúc của ứng dụng
Trang 24- 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, … 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 servercủ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 quarequest gửi đến Server
2.2 Tổng quan về Nodejs
2.2.1 Giới thiệu
Trang 25NodeJS là một môi trường thực thi mã nguồn mở của Javascript Hiện nay NodeJS rất phổ biến và được sử dụng trong rất nhiều project có quy mô lớn và nhỏkhác nhau.
-Đặ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ồngmớ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ànkế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ôngsức và thời gian để quản lý các luồng
2.2.2 Tạo sao chọn Nodejs để phát triển server
- Nodejs giúp các ứng dụng có tốc độ xử lý nhanh
- Nodejs có cơ chế non-blocking I/O làm ứng dụng nhẹ nhưng hiệu quả
- NodeJS có thể hoạt động đa nền tảng do đó rất tiện lợi cho việc phát triểnứng dụng nói chung
- NodeJS sử dụng Javascript, ngôn ngữ lập trình được hàng triệu nhà phát triển
sử dụng Có nhiều thư viện và framework mã nguồn mở hỗ trợ mạnh mẽ choviệc phát triển
Trang 262.3 Hệ quản trị cơ sở dữ liệu MongoDB
2.3.1 Giới thiệu
Hình 2.3.1-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:
+ Mỗi document sẽ có dạng là các cặp key-value (tương tự như JSON) Cácdocument 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
Trang 272.3.2 Ư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 trongMongoDB 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.
2.4 Amazon Simple Storage Service
2.4.1 Giới thiệu AWS
Vào năm 2006, Amazon Web Services (AWS) bắt đầu cung cấp các dịch vụ
cơ sở hạ tầng CNTT cho các doanh nghiệp dưới hình thức dịch vụ web - nay thườngđược gọi là điện toán đám mây Một trong những lợi ích chính của điện toán đámmây là cơ hội thay thế chi phí cơ sở hạ tầng trả trước bằng các khoản phí không cốđịnh ở mức thấp có khả năng thay đổi quy mô theo hoạt động kinh doanh của bạn.Với Đám mây, doanh nghiệp không còn cần phải lên kế hoạch và mua máy chủcũng như các cơ sở hạ tầng CNTT khác trước nhiều tuần hay nhiều tháng Thay vào
đó, họ có thể ngay lập tức đăng ký hàng trăm hoặc hàng nghìn máy chủ chỉ trongvài phút và mang lại kết quả nhanh hơn
Một trong những lợi ích chính của điện toán đám mây là giảm thiểu chi phí
cơ sở hạ tầng trả trước bằng các khoản phí không cố định ở mức thấp, có khả năngthay đổi theo quy mô hoạt động kinh doanh Doanh nghiệp không còn cần phải lên
kế hoạch và mua máy chủ cũng như các cơ sở hạ tầng CNTT khác trước nhiều tuầnhay nhiều tháng Thay vào đó, họ có thể ngay lập tức đăng ký hàng trăm hoặc hàngnghìn máy chủ chỉ trong vài phút và mang lại kết quả nhanh hơn
Để giảm thiểu việc bị mất điện đột ngột và đảm bảo tính mạnh mẽ của hệthống, AWS đa dạng về địa lý theo khu vực Các khu vực này có trung tâm ở Hoa
Kỳ, châu Âu, Brazil, Singapore, Nhật Bản và Úc Mỗi khu vực bao gồm nhiều khuvực địa lý nhỏ hơn
Trang 28AWS cung cấp 3 cách để tạo và quản lý tài nguyên:
- AWS Management Console
- AWS CLI
- AWS SDKs
Tất cả đều tham chiếu đến API AWS
- Dễ dàng triển khai và mở rộng giải pháp công nghệ phần mềm
2.4.2 Giới thiệu S3
Amazon S3 (Amazon Simple Storage Service) là dịch vụ lưu trữ đối tượngđược xây dựng để lưu trữ và truy xuất dữ liệu với khối lượng bất kỳ từ bất cứ nơinào trên Internet Đây là dịch vụ lưu trữ đơn giản có độ bền, độ sẵn có, hiệu suất,tính bảo mật, và khả năng thay đổi quy mô gần như không giới hạn với chi phí cực
kỳ thấp Điều này cho phép các tổ chức tránh mua phần cứng và thanh toán cho các
Trang 29lưu trữ các trang web lưu lượng truy cập cao, hoặc sao lưu dữ liệu trang web theonhững khoảng thời gian đều đặn.
Ví dụ: Nếu bạn muốn lưu trữ cho một trang web cho doanh nghiệp của mình bạn cóthể lưu trữ các tập tin và assets tại Amazon S3 để thu hồi nhanh hơn và chi phí lưutrữ thấp hơn Nó cũng cho phép bạn có thể ghi lại các thay đổi và có thể rollbackđến một phiên bản trước đó bất cứ khi nào cần Amazon S3 rất dễ sử dụng và cungcấp nhiều cách khác nhau để được truy cập và quản lý Nó cung cấp các API dịch
vụ web REST và SOAP để lưu trữ, truy xuất và quản lý dữ liệu
2.4.3 Mục đích sử dụng
- Tính ổn định:
Nó được thiết kế để chịu được các hỏng hóc và phục hồi hệ thống rất nhanh với thờigian tối thiểu Amazon cung cấp một thỏa thuận cấp dịch vụ (service-levelagreement – SLA) để duy trì tính sẵn sàng ở mức 99.99 phần trăm
- Đơn giản:
Dễ dùng S3 được xây dựng trên các khái niệm đơn giản và cung cấp tính mềm dẻocao cho việc phát triển các ứng dụng của bạn Bạn có thể xây dựng các lược đồ lưutrữ phức tạp hơn, nếu cần, bằng cách thêm các hàm vào các thành phần của S3
- Tính mở rộng:
Thiết kế của S3 cung cấp một cấp độ cao về tính mở rộng và cho phép sự điều chỉnh
dễ dàng trong dịch vụ khi lượng truy cập vào ứng dụng web của bạn tăng đột biếnvới lưu lượng khổng lồ
- Chi phí rẻ
Chi phí sử dụng S3 rất cạnh tranh với các giải pháp của công ty và cá nhân kháctrên thị trường (Chỉ từ 0,021 – 0,023 USD/GB/Tháng)
Trang 302.4.4 Các khái niệm cần biết
Để hiểu về Amazon S3, bạn cần nắm 1 số khái niệm cơ bản Amazon S3 lưu trữ dữliệu như các object trong các bucket
Object
Một object bao gồm key, version ID, value, metadata và sub resources (tuỳ chọn)
- Key: Tên mà bạn gán cho một object Bạn sử dụng key để truy xuất đốitượng
- Version ID: Trong một bucket, key và version ID để xác định duy nhất mộtobject Version ID là một chuỗi mà Amazon S3 tạo ra khi bạn thêm mộtobject vào một bucket
- Value: Nội dung mà bạn đang lưu trữ Giá trị đối tượng có thể là bất kỳ chuỗibyte nào Các đối tượng có thể có kích thước từ 0 đến 5 TB
- Metadata: Một tập hợp các cặp name-value mà bạn có thể lưu trữ thông tin
về object Bạn có thể gán metadata, được gọi là user-defined metadata, chocác đối tượng của mình trong Amazon S3 Amazon S3 cũng chỉ địnhsystem-metadata hệ thống cho các đối tượng mà nó sử dụng để quản lý cácđối tượng này
- Sub resources: Amazon S3 sử dụng cơ chế sub-resource để lưu trữ thông tin
bổ sung về đối tượng cụ thể Bởi vì sub-resource là cấp dưới của các object,chúng luôn được liên kết với một số thực thể khác như một object hoặc mộtbucket
Trang 31Mỗi một tài khoản chỉ tạo được tối đa là 100 buckets, và Bucket có tên làduy nhất và đặt tên nó nên tuân theo luật sau:
- Bucket có thể chứa các ký tự như chữ cái, hoặc số, dấu gạch dưới ( _ ), dấuchấm, dấu phẩy hoặc dấu gạch trên (-)
Trang 322.5 VueJS
2.5.1 Giới thiệu
VueJS là một frontend framework linh động hỗ trợ xây dựng giao diện ngườidùng Khác với các framework khác, VueJS được thiết kế với khả năng phát triểnliên tục Thư viện chính của VueJS chỉ tập trung vào tầng view, do đó VueJS rất dễhọc và có khả năng tích hợp cao với các thư viện khác
VueJS được tạo ra bởi Evan You vào tháng 2/2014 Tới thời điểm hiện tại,
VueJS đã qua 3 phiên bản Phiên bản mới nhất (Vue3) được ra mắt vào 18/9/2020 với khả năng tối ưu hóa và scale cao so với Vue2.
VueJS giới thiệu khác niệm Single File Component Mỗi file (có đuôi là vue) sẽ
bao hàm toàn bộ đặc điểm của component bao gồm kết cấu giao diện, logic và style
Trang 332.5.2 Vòng đời của VueJS (Vuejs Lifecycle)
Mỗi component của Vue sẽ có 1 vòng đời bao gồm các giai đoạn khác nhau(khởi tạo, render, cập nhật, hủy, …) Tại mỗi giai đoạn của vòng đời sẽ có các hook
mà nhà phát triển có thể can thiệp để tối ưu hóa component
Trang 362.5.3 Ưu nhược điểm của VueJS
Ưu điểm
- Kích thước nhỏ: VueJS có kích thước rất nhỏ so với các framework khác.Qua đó giảm thiểu kích cỡ download của client và tăng hiệu suất của ứngdụng
- Virtual DOM Renderding: VueJS cung cấp 1 cây DOM (Document ObjectModel) ảo hỗ trợ cập nhật và render các phần tử HTML một cách hiệu quảhơn
- Two-way data binding: VueJS hỗ trợ binding dữ liệu 2 chiều (tương tự nhưAngular), qua đó giúp quản lý và theo dõi sự thay đổi của dữ liệu và khảnăng cập nhật tự động của component
- Single File Component
Trang 37Chương 3 TÌM HIỂU VÀ LỰA CHỌN CÔNG NGHỆ NHẬN DIỆN
ÂM THANH
3.1 Giới thiệu về âm thanh
3.1.1 Cách não bộ xử lý âm thanh
Não bộ chúng ta đã phát triển việc phân loại và truy cập những data trongquá khứ một cách vô cùng hiệu quả Nếu suy nghĩ theo một cách ngây ngô nhất, đểnhận diện âm thanh não bộ chúng ta sẽ lấy âm thanh nghe được và so sánh với từng
âm thanh đã từng nghe trước đó
Nhưng không, não bộ đã xử lý bằng cách kết hợp đặc biệt của những hợp âm
đã nghe được để kích hoạt một số neurons thần kinh giúp mở khóa những dữ liệu đãnghe trong quá khứ (hay còn gọi là historical data)
3.1.2 Giới thiệu tổng quan về âm thanh
Như vậy làm sao máy tính ta có thể nhận diện âm thanh được như não bộ?
Đó là khi ta cần tìm hiểu việc lưu trữ dữ liệu âm thanh như thế nào trên máy tính
Âm thanh là tín hiệu liên tục, là một dạng dữ liệu phi cấu trúc trong khi đómáy tính chỉ làm việc với các con số rời rạc Hai đặc trưng cơ bản của âm thanh là
độ lớn và tần số Độ lớn biểu thị cho năng lượng của âm thanh phát ra còn tần sốcàng lớn thì cao độ càng cao hay tỉ lệ rung càng cao
Có một điểm đặc biệt khi não bộ nhận diện âm thanh, đó là dù cho âm thanh
đó có được sử dụng bằng nhạc cụ khác như guitar hay piano thì ta vẫn nhận diệnđược bài hát đấy Mỗi một nhạc cụ có sự kết hợp riêng biệt và sự biến tấu của
những âm bội này tạo ra những âm thanh riêng biệt Vậy nên chúng ta có thể dễdàng phân biệt bài hát được thực hiện bởi piano hay guitar
Trang 38Để ghi lại tín hiệu âm thanh thì không thể lưu hết các tần số theo trục thờigian mà thay vào đó trong khoảng thời gian t người ta sẽ ghi lại tín hiệu âm thanhmột lần Kỹ thuật đó gọi là lấy mẫu âm thanh - sampling of audio data và tần sốthực hiện lấy mẫu gọi là sample rate.
Tuy nhiên việc biểu diễn âm thanh theo miền thời gian rất khó trích xuất cácthông tin đặc trưng cho âm thanh đó Vậy nên cần biểu diễn theo miền tần số để biếttrong khoảng thời gian có những tần số nào và giao động như thế nào Và để làmđược điều đó người ta sử dụng Fourier Transform (biến đổi Fourier) Để đẩy nhanhtốc độ tính toán người ta cũng hay sử dụng FFT (Fast Fourier Transform)
Kết quả ta thu được 1 phổ năng lượng âm thanh với trục y là tần số, dài màu
là mức năng lượng cho tần số đó Hay còn gọi là spectrogram
3.2 Spectrogram
Spectrogram là một cách trực quan để biểu thị cường độ tín hiệu, hoặc độlớn, của tín hiệu theo thời gian ở các tần số khác nhau hiện diện trong một dạng
Trang 39sóng cụ thể Nói cách khác, đây là sự thể hiện của âm thanh dưới dạng biểu đồ 3Dvới thời gian (Ox), tần số (Oy), độ lớn (Oz)
Bất kỳ âm thanh nào cũng có thể chuyển thành một spectrogram cả Đây làthứ mà một máy tính có thể chắc chắn hiểu được và có thể lưu trữ dưới dạng dữ liệuđược
Nhưng có một lượng lớn dữ liệu bên trong một spectrogram như vậy và khinhiều dữ liệu thì càng tốn thêm nhiều thời gian tính toán để tìm ra kết quả phù hợp.Vậy nên đầu tiên chúng ta phải làm sao giảm thời gian tính toán đi, đồng nghĩa vớiviệc giảm lượng data cần thiết
3.3 Thuật toán Audio Fingerprinting
Vào năm 2003, Shazam - một ứng dụng miễn phí có thể giúp bạn nhận diệngiai điệu của một bài hát bất kỳ - đã tiết lộ thuật toán nhận diện âm thanh của họ
Vốn dĩ fingerprint - vân tay được sử dụng cho các công nghệ sinh trắc họcnhận dạng vân tay Bạn sẽ không khó để bắt gặp các thiết bị sử dụng công nghệ nàynhư máy chấm công vân tay Khóa cửa vân tay, khóa két vân tay, hệ thống kiểm soát
ra vào bằng vân tay Điện thoại di động thông minh đơn giản bởi vì công nghệ này
có rất nhiều ưu điểm so với các công nghệ nhận dạng khác
Tính bảo mật cao là ưu điểm nổi trội của công nghệ nhận dạng vân tay Nóđược sử dụng rất nhiều trong các hệ thống đảm bảo an ninh Mỗi dấu vân tay gầnnhư là duy nhất (tỷ lệ trùng dấu vân tay là 1/64 tỷ dấu vân tay) Và với đặc tính này
nó cho thấy khả năng bảo mật bằng dấu vân tay Của công nghệ này cao đến mứcnào
Quay lại với Audio fingerprinting, họ cũng tuân theo nguyên lý tương tự.Audio fingerprint chính là một bản tóm tắt cô đọng dưới dạng âm thanh của âmthanh mà có thể xác định âm thanh tương tự trong cơ sở dữ liệu một cách nhanhchóng
Trang 40Đầu tiên, họ chuyển spectrogram trở thành một biểu đồ nhìn như một bản đồngôi sao Mỗi một chấm (ngôi sao) chính là những tần số cao nhất tại một thời điểmnhất định Bằng cách này, chúng ta không chỉ giảm từ đồ thị 3D xuống 2D mà tacòn giảm đáng kể những data points trên đồ thị Đây là phần quan trọng đầu tiêntrong công nghệ của Shazam Mỗi một bài hát trong Shazam database được lưu trữdưới dạng fingerprint như vầy.
Khi bạn mở đt và nhấn nút Shazam, ứng dụng truy cập vào micro của bạn vàbắt đầu tạo ra fingerprint của sóng âm nó nhận được Phương pháp này giúp appShazam có thể lọc ra tiếng ồn bởi vì nó chỉ tạo data points cho các tần số riêng biệt(stand-out frequencies) Sau khi app đã tạo ra fingerprint cho audio của bạn, nó sẽgửi về server xử lý việc nhận diện
Việc so sánh từng đoạn fingerprint nhận được với tất cả các fingerprint cótrong database không hiệu quả, rất tốn thời gian và tài nguyên
Nên Shazam đã nghĩ ra cách đó chính là không chỉ so sánh 1 note mà so sánh nhiềunote trong một thời gian cụ thể (như cách não bộ chúng ta vậy)
Họ xây dựng danh mục fingerprint của họ dưới dạng bảng băm (hash table)trong đó khóa là tần số Nhưng khóa đó không là một tần số mà là một hash củanhiều tần số Việc này càng giúp giảm việc đụng độ (trùng khóa) và cải thiện đáng
kể hiệu năng trong bảng băm