1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn tốt nghiệp Khoa học máy tính: Phát triển hệ thống nhận diện cảm xúc qua giọng nói

91 1 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

Nội dung

Trang 1

ĐẠI HỌC QUỐC GIA TP.HCMTRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

PHÁT TRIỂN HỆ THỐNG NHẬN DIỆN CẢMXÚC QUA GIỌNG NÓI

TP HỒ CHÍ MINH, 12/2022

Trang 2

ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM - Độc lập - Tự do - Hạnh phúc

TRƯỜNG ĐẠI HỌC BÁCH KHOA

BỘ MÔN:CNPM Chú ý: Sinh viên phải dán tờ này vào trang nhất của bản thuyết trình

HỌ VÀ TÊN: TRẦN ĐÌNH ĐỨC MSSV: 1811984HỌ VÀ TÊN: TRƯƠNG ĐÌNH ĐỨC MSSV: 1811989NGÀNH: KHOA HỌC MÁY TÍNH LỚP:

1 Đầu đề luận án:

Phát triển hệ thống nhận diện cảm xúc qua giọng nói

2 Nhiệm vụ (yêu cầu về nội dung và số liệu ban đầu):

- Tìm hiểu các phương pháp phổ biến trong phân loại cảm xúc qua giọng nói.

- Thực hiện các thực nghiệm với các nghiên cứu liên quan, phân tích ưu điểm và nhược điểm củacác phương pháp.

- Đề xuất phương pháp cải tiến và so sánh phương pháp đã cải tiến so với các phương pháp trướcđó.

- Thiết kế hệ thống áp dụng phát hiện và phân loại cảm xúc trong giọng nói, sau đó xây dựngmột website nghe nhạc trên hệ thống đã thiết kế Hệ thống có thể xác định được các đặc điểmcảm xúc trong giọng nói qua đó đưa ra kết quả phù hợp Tiến hành thực nghiệm và đánh giá hệthống.

3 Ngày giao nhiệm vụ luận án: 31/08/20224 Ngày hoàn thành nhiệm vụ: 11/12/2022

5 Họ tên giảng viên hướng dẫn:Phần hướng dẫn:

1) TS Quản Thành Thơ, 90%2) ThS Băng Ngọc Bảo Tâm, 10%Nội dung và yêu cầu LVTN đã được thông qua Bộ môn.

Ngày tháng năm

(Ký và ghi rõ họ tên)(Ký và ghi rõ họ tên)

PHẦN DÀNH CHO KHOA, BỘ MÔN:

Người duyệt (chấm sơ bộ):Đơn vị:

Ngày bảo vệ:Điểm tổng kết:Nơi lưu trữ luận án:

Trang 3

TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA KH & KT MÁY TÍNH Độc lập - Tự do - Hạnh phúc -

MSSV: 1811989 Ngành (chuyên ngành): Khoa học máy tính

2 Đề tài: Phát triển hệ thống nhận diện cảm xúc qua giọng nói

3 Họ tên người hướng dẫn: TS Quản Thành Thơ4 Tổng quát về bản thuyết minh:

Số trang: 78 Số chương: 5Số bảng số liệu: 18 Số hình vẽ: 50Số tài liệu tham khảo: 16 Phần mềm tính toán:Hiện vật (sản phẩm)

5 Tổng quát về các bản vẽ:

- Số bản vẽ: Bản A1: Bản A2: Khổ khác:- Số bản vẽ vẽ tay: Số bản vẽ trên máy tính:

6 Những ưu điểm chính của LVTN:

- Các sinh viên kết hợp giữa việc phát triển ứng dụng và giải thuật học máy cho một bài toán thựctế.

- Các sinh viên có tìm tòi nhiều hướng tiếp cận khác nhau cho bài toán của mình.- Hệ thống được thiết kế, hiện thực và đánh giá các tính năng hợp lý.

10 Đánh giá chung (bằng chữ: giỏi, khá, TB): Giỏi Điểm: 8 /10

Ký tên (ghi rõ họ tên)Quản Thành Thơ

Trang 4

TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA KH & KT MÁY TÍNH Độc lập - Tự do - Hạnh phúc -

MSSV: 1811989 Ngành (chuyên ngành): Khoa học máy tính

2 Đề tài: Phát triển hệ thống nhận diện cảm xúc qua giọng nói

3 Họ tên người phản biện: ThS Lê Đình Thuận4 Tổng quát về bản thuyết minh:

Số trang: 78 Số chương: 5Số bảng số liệu: 18 Số hình vẽ: 50Số tài liệu tham khảo: 16 Phần mềm tính toán:Hiện vật (sản phẩm)

5 Tổng quát về các bản vẽ:

- Số bản vẽ: Bản A1: Bản A2: Khổ khác:- Số bản vẽ vẽ tay: Số bản vẽ trên máy tính:

6 Những ưu điểm chính của LVTN:

- Đề tài xây dựng mô hình nhận diện cảm xúc của giọng nói bằng kỹ thuật học sâu Kết quả đạtđược của đề tài là mô hình phân loại các cảm xúc của giọng nói và một ứng dụng minh hoạ cho khảnăng áp dụng của đề tài.

- Để phát triển đề tài, SV có nghiên cứu các đặc trưng của âm thanh và giọng nói, các công trìnhnghiên cứu liên quan; tiến hành thử nghiệm và cải tiến mô hình.

- SV có đánh giá thử nghiệm của mô hình so với các hướng tiếp cận khác.7 Những thiếu sót chính của LVTN:

- Sinh viên chưa phân bổ báo cáo phù hợp với nội dung của đề tài Trong đó, phần báo cáo về huấnluyện mô hình được lược bỏ nhiều khiến nội dung và kết quả đạt được chưa được trình bày rõ ràngtrong báo cáo.

- Phần ứng dụng website nghe nhạc còn gượng ép so với khả năng ứng dụng của đề tài.

8 Đề nghị: Được bảo vệ x Bổ sung thêm để bảo vệ □ Không được bảo vệ □9 3 câu hỏi SV phải trả lời trước Hội đồng:

10 Đánh giá chung (bằng chữ: giỏi, khá, TB): Giỏi Điểm: 8.5/10Ký tên (ghi rõ họ tên)Lê Đình Thuận

Trang 5

Lời cam đoan

Chúng em cam đoan đây là thành quả nghiên cứu của bản thân dưới sự hướngdẫn của thầy Quản Thành Thơ và thầy Băng Ngọc Bảo Tâm Nội dung nghiên cứuvà các kết quả đạt được đều là mới và không phải là một sản phẩm sao chép từ bấtcứ công trình nghiên cứu nào trước đây Các nội dung có yếu tố tham khảo từ cáccông trình đi trước do chính bản thân chúng em thu thập và tìm hiểu đều được ghirõ với đầy đủ trích dẫn trong phần tài liệu tham khảo Nếu có phát sinh bất cứ mâuthuẫn nào về tác quyền, hay bất kỳ sự gian lận nào được phát hiện, chúng em xinchịu hoàn toàn trách nhiệm về nội dung luận văn của mình Trường Đại học BáchKhoa - Đại học Quốc Gia TP.HCM không liên quan và không cần chịu trách nhiệmvới bất kỳ vi phạm nào gây ra bởi nội dung luận văn này, nếu có.

Trang 6

Lời cảm ơn / Lời ngỏ

Lời đầu tiên, nhóm chúng em chân thành cám ơn quý thầy, cô trong khoa KhoaHọc Và Kỹ Thuật Máy Tính, trường đại học Bách Khoa thành phố Hồ Chí Minh đãtận tình truyền đạt kiến thức trong những năm chúng em học tập ở trường Với vốnkiến thức tích lũy được trong suốt quá trình học tập không chỉ là nền tảng cho quátrình nghiên cứu mà còn là hành trang để bước vào đời một cách tự tin.

Nhóm chúng em tỏ lòng biết ơn sâu sắc đến thầy Quản Thành Thơ và thầy BăngNgọc Bảo Tâm đã hướng dẫn tận tình trong suốt quá trình nghiên cứu Nhờ có nhữngchỉ dẫn, góp ý tận tình cùng nhiều kiến thức bổ ích, quý giá của thầy mà nhóm mớicó thể hoàn thành tốt được Luận văn tốt nghiệp này.

Nhóm cũng xin được cảm ơn thầy Nguyễn Đức Dũng và thầy Lê Đình Thuận, lầnlượt là giảng viên phản biện của đề tài trong quá trình Đề cương luận văn và Luậnvăn tốt nghiệp, với những góp ý đúng đắn và mang tính định hướng cao cho nhóm.

Cuối cùng, chúng em xin chúc quý thầy, cô dồi dào sức khỏe và thành công trongsự nghiệp cao quý của mình.

Trang 7

Nội dung chính của luận văn tốt nghiệp này là xây dựng một mô hình học máy có khả năngnhận diện được cảm xúc của con người qua giọng nói và thiết kế, xây dựng thiết một websiteâm nhạc có khả năng sử dụng yếu tố cảm xúc này để đề xuất những nội dung âm nhạc phù hợp,đa dạng hóa lựa chọn của người nghe, từ đó khiến cho việc nghe nhạc phát huy được những lợiích mà nó mang lại.

Trang 8

1.2 Mục tiêu của đề tài 1

1.3 Đối tượng và phạm vi nghiên cứu đề tài 1

1.4 Phương pháp nghiên cứu 1

1.5 Cấu trúc báo cáo luận văn 2

2 Các nghiên cứu liên quan32.1 Những nghiên cứu về mối liên kết giữa âm nhạc và cảm xúc con người 3

2.1.1 Nguồn gốc âm nhạc 3

2.1.2 Hoạt động của não người khi nghe nhạc 4

2.1.3 Mối liên hệ giữa âm nhạc và cảm xúc con người 5

2.2 Các phương pháp nhận diện cảm xúc không sử dụng Deep learning 6

2.3 Các phương pháp nhận diện cảm xúc sử dụng Deep-learning 7

2.3.1 Phân loại cảm xúc dựa trên đặc điểm âm thanh 7

2.3.2 Phân loại cảm xúc kết hợp âm thanh và ngữ nghĩa 10

2.4 Tổng kết chương 2 16

3 Xây dựng hệ thống183.1 Xây dựng mô hình nhận diện cảm xúc qua giọng nói 18

Trang 9

3.4.5 Tương tác với mô hình nhận diện cảm xúc qua giọng nói 43

3.5 Các luồng hoạt động của hệ thống 44

3.5.1 Đăng nhập/ đăng ký 44

3.5.2 Phát nhạc (một bài hát hoặc một playlist) 45

3.5.3 Tải nhạc 46

3.5.4 Hát karaoke 47

3.5.5 Xem thông tin chi tiết của một bài hát, một playlist hoặc một nghệ sĩ 48

3.5.6 Yêu thích một bài hát, một playlist hoặc một nghệ sĩ 49

3.5.7 Tạo một playlist 50

3.5.8 Thêm/xóa một bài hát khỏi một playlist 51

3.5.9 Tìm kiếm 52

3.5.10 Nhận diện cảm xúc của người dùng qua giọng nói 53

3.6 Giao diện hoàn chỉnh (mockup) của hệ thống 54

3.6.1 Các trang chính của hệ thống 54

3.6.2 Các trang thông tin chi tiết của hệ thống 57

3.6.3 Các thành phần khác của hệ thống 59

3.7 Zing MP3 API 63

3.7.1 Cấu trúc request url của Zing MP3 API 63

3.7.2 Khai thác Zing MP3 API 64

4 Thực nghiệm và đánh giá664.1 Mô hình phân loại cảm xúc qua giọng nói 66

4.1.1 Tiêu chí và phương pháp đánh giá 66

5.2 Những hạn chế 76

5.3 Những khó khăn, thách thức trong quá trình làm luận văn 76

Trang 10

MỤC LỤC iii5.4 Hướng cải tiến và mở rộng trong tương lai 76

Trang 11

3.1 Các cảm xúc trong tập dữ liệu RAVDESS 18

3.2 Spotify - Website âm nhạc trực tuyến lớn nhất hiện nay 20

3.3 Zing MP3 - Website âm nhạc trực tuyến lớn nhất Việt Nam hiện nay 22

3.4 Cấu trúc cơ bản của CNN 23

3.5 Kiến trúc của hệ thống 27

3.6 Sơ đồ use case của hệ thống 29

3.7 Giao diện của hệ thống (wireframe) - Trang chủ, trang thư viện và các mẫuthông tin tương ứng 39

3.8 Giao diện của hệ thống (wireframe) - Các trang thông tin chi tiết về bài hát,nghệ sĩ, playlist, bảng xếp hạng, trang tìm kiếm và trang tổng hợp các playlist(từ trái sang phải, từ trên xuống dưới) 40

3.9 Tổng quát cấu trúc dữ liệu document của các collection và mối quan hệ giữa chúng 413.10 Quá trình lấy kết quả dự đoán cảm xúc từ dữ liệu giọng nói của người dùng 43

3.11 Sơ đồ activity - Đăng nhập/Đăng ký 44

3.12 Sơ đồ activity - Phát nhạc 45

3.13 Sơ đồ activity - Tải nhạc 46

3.14 Sơ đồ activity - Hát karaoke 47

3.15 Sơ đồ activity - Xem thông tin chi tiết của một bài hát, một playlist hoặc mộtnghệ sĩ 48

3.16 Sơ đồ activity - Yêu thích một bài hát, một playlist hoặc một nghệ sĩ 49

3.17 Sơ đồ activity - Tạo một playlist 50

3.18 Sơ đồ activity - Thêm/xóa một bài hát khỏi một playlist 51

3.19 Sơ đồ activity - Tìm kiếm 52

Trang 12

3.24 Categories (trang thể loại) 56

3.25 Library (trang thư viện) 56

3.26 Emotion (trang cảm xúc) 57

3.27 Trang tìm kiếm 57

3.28 Trang thông tin chi tiết của một bài hát 58

3.29 Trang thông tin chi tiết của một playlist 58

3.30 Trang thông tin chi tiết của một nghệ sĩ 59

3.31 Trang thông tin chi tiết của một thể loại âm nhạc 59

3.32 Mẫu đăng nhập 60

3.33 Mẫu đăng ký 60

3.34 Mẫu tạo playlist 61

3.35 Giao diện hát karaoke 61

3.36 Giao diện nhận diện cảm xúc qua giọng nói 62

3.37 Danh sách các bài hát được đề xuất 62

3.38 Thanh tìm kiếm 63

4.1 Thông số mô hình CNN-DNN chỉ sử dụng mel frequency 67

4.2 Kết quả mô hình phân loại cảm xúc qua âm thanh 67

4.3 Kết quả của mô hình qua 50 epoch đầu tiên 68

4.4 Thông số của mô hình CNN-DNN sử dụng 3 đặc trưng âm 69

4.5 Kết quả mô hình phân loại cải tiến 69

4.6 Kết quả mô hình cải tiến sau khi huấn luyện 80 epoch 70

Trang 13

Danh sách bảng

3.1 Mô tả use case Đăng nhập 30

3.2 Mô tả use case Đăng ký 31

3.3 Mô tả use case Phát một bài hát hoặc một playlist 31

3.4 Mô tả use case Tải nhạc 32

3.5 Mô tả use case Hát karaoke 33

3.6 Mô tả use case Xem thông tin chi tiết của một bài hát hoặc một playlist 34

3.7 Mô tả use case Xem thông tin chi tiết của một nghệ sĩ 35

3.8 Mô tả use case Tạo một playlist 35

3.9 Mô tả use case Chỉnh sửa một playlist 36

3.10 Mô tả use case Yêu thích/hủy yêu thích một bài hát hoặc một playlist hoặc mộtnghệ sĩ 37

3.11 Mô tả use case Tìm kiếm bài hát, playlist và nghệ sĩ 37

3.12 Mô tả use case Lấy thông tin về cảm xúc của hiện tại thông qua giọng nói 38

3.13 Cấu trúc dữ liệu document của collection users 41

3.14 Cấu trúc dữ liệu document của collection user_favorites 42

3.15 Cấu trúc dữ liệu document của collection playlists 42

3.16 Cấu trúc dữ liệu document của collection suggested_by_emotion 43

4.1 Bảng so sánh độ chính xác - accuracy của các mô hình 70

4.2 Bảng kiểm thử các chức năng của hệ thống 71

Trang 14

Chương 1Giới thiệu1.1 Tổng quan

1.2 Mục tiêu của đề tài

Mục tiêu của đề tài là nghiên cứu, hiện thực một website âm nhạc, sử dụng cảm xúc củangười dùng để đề xuất các nội dung âm nhạc phù hợp Yếu tố cảm xúc của người dùng sẽ đượckhai thác qua giọng nói của họ.

Một câu hỏi được đặt ra: tại sao lại là giọng nói mà không phải các yếu tố khác?

Cảm xúc của con người được thể hiện rõ nhất qua khuôn mặt nhưng việc giải tỏa cảm xúcđược thực hiện chủ yếu qua lời nói Việc thể hiện cảm xúc bằng lời nói có thể giúp người nóigiải tỏa một phần nào đó những cảm xúc tiêu cực và đôi khi cũng sẽ thúc đẩy những cảm xúctích cực Chính vì điều này, nhóm quyết định sử dụng yếu tố giọng nói để xác định cảm xúc củamột người, khuyến khích người nghe chia sẻ cảm xúc qua lời nói và sử dụng yếu tố cảm xúcđược xác định qua lời nói để đề xuất các nội dung âm nhạc phù hợp.

1.3 Đối tượng và phạm vi nghiên cứu đề tài

Đề tài sẽ xoay quanh việc nghiên cứu các phương pháp học sâu và học máy học máy trongphân loại cảm xúc qua giọng nói và sử dụng mô hình tương ứng trong hệ thống được đề xuất.Giai đoạn sau đó đề tài sẽ xoay quanh quá trình thiết kế hệ thống để tích hợp mô hình đã nghiêncứu vào trong các chức năng cụ thể.

1.4 Phương pháp nghiên cứu

Phương pháp phân tích và tổng hợp lý thuyết: người thực hiện đề tài sẽ phân tích các lýthuyết về cảm xúc, giọng nói và học máy Cụ thể là các phương pháp trích xuất các đặc tính liênquan đến cảm xúc trong giọng nói và sử dụng những đặc tính đó cho việc xác định cảm xúc để

Trang 15

thực hiện mô hình học máy có độ chính xác cao.

Phương pháp thiết kế ngược: từ các sản phẩm, công nghệ có sẵn trên thị trường, người thựchiện đề tài có thể phân tích và chọn lọc ưu điểm và áp dụng thiết kế sản phẩm.

Phương pháp phân tích tổng kết thí nghiệm: Áp dụng chủ yếu ở bước kiểm thử, người thựchiện đề tài sẽ thực hiện các kiểm nghiệm để đánh giá độ chính xác mô hình và chất lượng sảnphẩm, có thể sẽ áp dụng khảo sát với quy mô nhỏ hoặc vừa để đưa ra đánh giá khách quan nhất.

1.5 Cấu trúc báo cáo luận văn

Trong giai đoạn luận văn nhóm đã thực hiện một số công việc liên quan sẽ trình bày trongbáo cáo như sau:

• Chương 1: Giới thiệu

Giới thiệu tổng quan về đề tài, cũng là chương hiện hành Trong chương này sẽ đưa ra cáinhìn tổng quan về đề tài, cũng như mục tiêu và phạm vi ứng dụng của đề tài.

• Chương 2: Các nghiên cứu liên quan

Tổng quan về các công trình nghiên cứu liên quan đến đề tài mà nhóm tìm hiểu được.• Chương 3: Xây dựng hệ thống

Chương này sẽ đi chi tiết vào quá trình thiết kế và xây dựng các mô hình học máy và hệthống sẽ được tích hợp mô hình này.

• Chương 4: Thực nghiệm và đánh giá

Trình bày về quá trình kiểm thử và đánh giá kết quả hiện thực.• Chương 5: Tổng kết

Tổng kết về những công việc mà nhóm đã làm, những khó khăn, thuận lợi và khó khăntrong quá trình thực hiện cùng việc đề xuất hướng cải tiến, mở rộng.

Trang 16

Chương 2

Các nghiên cứu liên quan

Nhận dạng cảm xúc trong giọng nói có nhiều ứng dụng thực tế quan trọng, đặc biệt tronglĩnh vực tương tác người - máy (Human machine interaction) Các ví dụ có thể kể đến như:

• Hệ thống nhận dạng cảm xúc trong giọng nói (SER) có thể giúp phát hiện các vấn đề củakhách hàng trong các cuộc gọi đến tổng đài Thông thường một khách hàng gặp rắc rối vềchất lượng dịch vụ sẽ tìm đến sự giúp đỡ của tổng đài để nhờ hỗ trợ [3], SER sẽ hỗ trợ vàtrích xuất thông tin giúp cải thiện dịch vụ đó.

• Trong tương tác người - robot (human robot interface), robot được dạy cách để tương tác vànhận dạng cảm xúc của con người Một robot cứu hộ không chỉ cần hiểu được mệnh lệnhtrong lời nói mà còn cần phải xác định được các thông tin khác như tình trạng sức khoẻ củangừoi ra mệnh lệnh để đưa ra quyết định của nó [6].

• Nghiên cứu tâm lý học cho thấy tâm lý của người học ảnh hưởng đến hiệu quả và chấtlượng của việc học SER giúp xác định trạng thái cảm xúc của người học, thông qua đógiúp người hướng dẫn đưa ra các giải pháp để truyền tải kiến thức nhằm tăng hiệu quả củaquá trình học tập [6].

2.1 Những nghiên cứu về mối liên kết giữa âm nhạc và cảmxúc con người

2.1.1 Nguồn gốc âm nhạc

Âm nhạc là một môn nghệ thuật âm thanh phản ánh mọi vấn đề xung quanh chúng ta bằngcác thành tố mang tính nhạc (cao độ, trường độ, nhip điệu, ) Nội dung thể hiện có thể là mộthiện tượng, là những cảm xúc (vui, buồn, thất vọng, hạnh phúc), là quan điểm sống hay thậmchí âm nhạc còn thể hiện hình tượng vĩ đại của tập thể, đất nước, nền văn hóa hay cả nhân loại.Bên cạnh đó, âm nhạc còn có mối liên kết chặt chẽ với các bộ môn toán học, thiên văn học, triếthọc, .

Thực tế, đã có rất nhiều lý giải cho vấn đề nguồn gốc âm nhạc Chẳng hạn như theo như

Trang 17

thời xưa cổ: âm nhạc xuất phát từ nhu cầu sinh lý của con người cũng như động vật muốn thuhút bạn tình – Charles Darwin ; âm nhạc là kết quả của sự dư thừa năng lượng, trong cơn xúccảm mạnh mẽ những âm điệu của con người sinh ra tính nhạc – Herbert Spencer; “tính tò mò”và “niềm vui” là nguồn gốc kích thích phát triển âm nhạc – Karl Stumpf; nguồn gốc âm nhạc làma thuật – Jule Combarieu hay nguồn gốc âm nhạc chính là lao động – Khoa thẩm mỹ học Mác– Lê Nin Thực tế để có câu trả lời hoàn toàn chính xác thì đây gần như là điều không tưởngbởi sự hạn chế của các bằng chứng lịch sử và khoảng cách thời gian giữa hiện tại và giai đoạnsơ khai của âm nhạc là quá lớn.

Tuy nhiên, với công nghê khoa học ngày càng phát triển, sự liên quan giữa âm nhạc và cácloại hình nghệ thuật khác cùng với mối quan hệ khắn khít giữa nguồn gốc âm nhạc và sự hìnhthành và phát triển loài người, chúng ta có thể tìm ra câu trả lời hợp lý và tiệm cận với sự chínhxác hơn rất nhiều Theo quá trình phát triển của loài người từ vượn hình người sang di chuyểnthành 2 chân, yếu tố khí hậu, địa lý, nhu cầu giao tiếp trong đó, lao động là yếu tố quan trọngnhất tác động đến sự phát triển ngôn ngữ và âm nhạc Ngoài ra địa lý khí hậu khác nhau dẫn đếncách tiếp cận tự nhiên khác nhau của con người thông qua lao động đã hình thành nên nhữngnền văn hóa khác nhau, từ đó quan điểm về âm nhạc, chất liệu âm nhạc và các thể loại âm nhạccũng khác nhau.

Tóm lại, từ những nhu cầu cơ bản nhất để tồn tại là ăn ở của tổ tiên của chúng ta (những sinhvật yếu ớt và nhỏ bé) điều kiện tự nhiên đã tác động buộc tổ tiên ta phải thích nghi, tư duy nhiềuhơn thông qua quá trình lao động Sau nhiều năm sinh sống ở những môi trường, điều kiện khácnhau, đặc tính lao động của mỗi vùng cũng khác nhau dẫn đến văn hóa mỗi vùng và đặc biệt lànghệ thuật, âm nhạc cũng khác nhau.

2.1.2 Hoạt động của não người khi nghe nhạc

Âm nhạc chính là những sóng âm thanh được truyền đến não, từ đó chạm vào các cung bậccảm xúc và khiến ta run rẩy Thế nhưng, mặc dù não bộ vẫn còn là điều bí ẩn đối với các nhàkhoa học.

Chúng ta đều biết rằng âm nhạc tác động đến một số vị trí bên trong não Và nhiều chứcnăng tại đây bắt đầu được kích hoạt khi tiếp xúc với âm nhạc Âm nhạc có thể khiến bạn vui,buồn hoặc chìm đắm trong thế giới của riêng mình.Hoạt động của não người khi nghe nhạc.

Đó là lý do vì sao các nhà nghiên cứu về bộ não con người rất quan tâm đến âm nhạc bởi họcó thể tìm hiểu được nhiều điều về các chức năng của não khi chúng tiếp xúc với âm nhạc

Chuyên gia hàng đầu thế giới về mối tương quan giữa “Âm Nhạc và Não Bộ” là nhà khoahọc (kiêm nhạc sĩ) Peter Vuust đến từ trung tâm nghiên cứu “Music in the Brain”, thuộc Đại họcAarhus, Đan Mạch Ông cho biết về mức độ ảnh hưởng của âm nhạc đối với con người thườngtheo 4 cách Chúng ta lĩnh hội âm nhạc, âm nhạc khiến ta hành động, chúng ta sử dụng nhạc cụđể thể hiện âm nhạc, và âm nhạc tác động đến cảm xúc của chúng ta.

Đó cũng là lý do vì sao các nhà nghiên cứu không ngừng theo đuổi bốn khía cạnh: Sự lĩnh

Trang 18

hội, hành động, học hỏi và cảm xúc “Điều tuyệt vời ở chỗ là chúng tôi không chỉ nghiên cứu vềmức độ tương tác giữa não và âm nhạc, mà còn có cơ hội được hiểu hơn về cách thức hoạt độngcủa bộ não nói chung” Peter Vuust cho biết âm nhạc có thể vượt qua mọi rào cản vị trí, ngônngữ, tuổi tác .

2.1.3 Mối liên hệ giữa âm nhạc và cảm xúc con người

Các nhà nghiên cứu gần đây có xu hướng định nghĩa ‘cảm xúc’ như một hiện tượng baogồm các sự tương tác giữa bộ não, tâm trí và cơ thể Bởi vậy, cảm xúc bao hàm không chỉ quátrình nhận thức mà còn thể hiện ở cả những thay đổi sinh lý và những hành động biểu cảm củacon người (Juslin, 2010) Cũng dùng ví dụ về con rắn ban nãy, não bộ người đó không chỉ đánhgiá nhận thức mà còn kích hoạt chất Adrenalin vào mạch máu, gây ra thay đổi sinh lý là tim đậpnhanh hơn Người đó, cảm nhận được nỗi sợ hãi, sẽ có thể hét lên và chạy đi (hành động biểucảm).

Cách nhìn nhận này giúp các nhà nghiên cứu có thể khảo sát những phản ứng của ngườinghe trước âm nhạc một cách khách quan hơn so với việc dựa vào những miêu tả chủ quan vềcảm xúc từ phía người nghe Các thí nghiệm đã chỉ ra rằng âm nhạc có thể tạo ra những phảnứng sinh lý tương tự như những phản ứng gây ra bởi các tác nhân kích thích cảm xúc khác, baogồm các thay đổi về nhịp tim, thân nhiệt, huyết áp, v.v Các bằng chứng khác như hành độngbiểu cảm, được xác định qua sự quan sát và đo đạc bằng điện cơ đồ các cử động cơ mặt (WitvlietVrana, 2007) cũng củng cố điều này.

Dựa vào những lý thuyết đi trước và những nghiên cứu gần đây về sự đa yếu tố trong việckích hoạt cảm xúc, Juslin và Vastjall (2008) đã xây dựng một thuyết đa cơ chế toàn diện hơn,xác định ra bảy cơ chế cốt yếu cùng chịu trách nhiệm trong việc khơi dậy cảm xúc trong conngười của âm nhạc.

Phản xạ cuống não (brain stem reflex): khi những thuộc tính âm thanh của âm nhạc được

cuống não tiếp nhận như một sự báo hiệu, ví dụ như những âm thanh to, đột ngột, khôngthuận tai hoặc thay đổi nhịp điệu liên tục trong âm nhạc Cơ chế này diễn ra vô thức và chỉcó thể gợi lên sự kích thích chứ không gây ra cảm xúc cụ thể.

Sự đồng bộ hóa tiết tấu cơ thể với tiết tấu âm nhạc (rhythmic entrainment): âm nhạc

với những nhịp điệu mạnh (như nhạc techno) hay đều đều (như nhạc cúng bái) có thể ảnhhưởng đến một nhịp điệu của cơ thể, điển hình là nhịp tim, và tạo cho người nghe cảm giácđược kích thích hoặc bị thôi miên.

Phản ứng có điều kiện từ việc đánh giá và liên hệ (evaluative conditioning): theo cơ

chế này, một khúc nhạc, bài hát liên tục gắn với một sự việc tích cực hay tiêu cực cụ thể sẽcó khả năng gợi ra trong chúng ta những cảm xúc vui hay buồn kể cả trong một tình huốngmới Đây là một quá trình vô thức, không chủ đích và không cần cố gắng.

Sự lây cảm xúc (emotional contagion): khi nhận biết được một diễn đạt cảm xúc nào đó

trong âm nhạc, chúng ta tự mình “bắt chước” nó Cơ chế này do Juslin và Vastjall đưa ra có

Trang 19

vẻ gần với giả thuyết của Kivy Điểm khác nhau là họ cho rằng không phải chúng ta “nhậnnhầm” cảm xúc đó cho mình, mà chúng ta thực sự bị lây cảm xúc đó Tuy nhiên cơ chế“lây” cũng chưa được họ làm rõ.

Hình ảnh thị giác (visual imagery): khi âm nhạc khiến người nghe tưởng tượng ra những

hình ảnh (như overture Hebrides của Mendelssohn thường gợi lên hình ảnh kì vỹ của cáchang động trên biển) Những hình ảnh này có khả năng tác động đến con người như các tácnhân kích thích cảm xúc trong đời sống hằng ngày Ví dụ một giai điệu chuyển động hướnglên cao trào có thể gợi trong người nghe hình ảnh mình đang được bay lên cao, dẫn đếncảm giác hưng phấn.

Kí ức tự truyện (episodic memory): âm nhạc khơi dậy trong người nghe cảm xúc về một

kỉ niệm bởi nó gắn với sự kiện đó Thậm chí cả những phản ứng sinh lý của cảm xúc trongtình huống cũ cũng có thể được lưu lại trong trí nhớ và được khúc nhạc khơi dậy lại Có lẽrất nhiều người trong chúng ta từng trải nghiệm cảm xúc kiểu này với âm nhạc Cơ chế nàycũng diễn giải vì sao âm nhạc hay làm người ta cảm thấy hoài cổ và nghĩ về quá khứ.• Sự mong đợi (expectancy): cảm xúc được khơi dậy khi một nét nào đó của khúc nhạc

phá vỡ, trì hoãn hoặc củng cố những trông đợi của người nghe về diễn biến tiếp theo củakhúc nhạc Cơ chế này phụ thuộc vào những trải nghiệm sẵn có của người nghe về cácphong cách âm nhạc quen thuộc với họ Ví dụ như những người quen với nhạc âm nguyên(diatonic) sẽ có xu hướng trông đợi đoạn nhạc kết thúc ở âm chủ (tonic) bởi nó đem lại cảmgiác thỏa mãn, và ngược lại sẽ cảm thấy bất ổn không yên nếu nó không kết thúc như vậy.Những chứng minh, lý giải trên[11] đã phần nào khẳng định âm nhạc có thể ảnh hưởng đếncảm xúc - một trong những phạm trù khó hiểu và nhạy cảm nhất của con người Âm nhạc cókhả năng gợi ra trong con người một số cảm xúc giống như trong đời thực thông qua một loạtcác cơ chế khác nhau Tuy vậy, vẫn còn rất nhiều câu hỏi cần làm rõ Ví dụ như giới hạn nhữngcảm xúc mà âm nhạc có thể khơi dậy là gì (chúng ta có thể cảm thấy căm ghét bởi âm nhạckhông); khả năng bị tác động bởi âm nhạc của mỗi người khác nhau như thế nào; liệu còn cónhững cơ chế tác động khác chưa được tìm ra không Những câu hỏi này không chỉ thúc đẩycác nhà khoa học tiếp tục đào sâu nghiên cứu mà còn quyến rũ cả những người nghe nhạc bìnhthường như chúng ta, khiến chúng ta tò mò và có ý thức hơn trong những trải nghiệm âm nhạccủa mình.

2.2 Các phương pháp nhận diện cảm xúc không sử dụngDeep learning

Nhận diện cảm xúc trong giọng nói (SER) nằm trong chủ đề phân loại âm thanh không cònmới mẻ và đã được quan tâm trong rất nhiều nghiên cứu Các nghiên cứu đã đưa ra các cách tiếpcận khác nhau, cũng từ đó cho ra nhiều kết quả khác nhau

• T Iliou và các đồng sự [5] đã phân tách 133 đặc trưng âm thanh (sound features) từ cao

Trang 20

độ, tần số mel và năng lượng Các thông số trên tạo ra một bộ đặc điểm đủ để phân biệtgiữa bảy cảm xúc trong lời nói được diễn xuất, phương pháp thống kê được sử dụng để lựachọn 26 feature từ 133 feature trên Các bộ phân lớp sử dụng phương pháp Support VectorMachine (SVM) hoặc mạng neural xác suất (PNN) sẽ sử dụng 26 feature này để cho ra 7nhãn cảm xúc: tức giận, hạnh phúc, lo lắng/sợ hãi, buồn bã, buồn chán, ghê tởm và trungtính Kết quả cho thấy bộ PNN đạt độ chính xác rất cao là 94% trong trường hợp phân loạicảm xúc phụ thuộc người nói, còn ở trường hợp âm thanh không phụ thuộc lời nói, bộ SVMđạt độ chính xác cao nhất là 80

• H Aouani và các đồng sự đã thiết kế một bộ phân tích tín hiệu lời nói hai bước, bao gồmmột bộ phân tách feature (feature extraction) và một bộ phân loại (classification engine).Đầu tiên tín hiệu lời nói sẽ được phân tách thành vector 42 chiều, bao gồm 39 hệ số Mel(MFCC), kết hợp với các thông số như Zero Crossing Rate (ZCR), Noise Rate, TeagerEnergy Operator (TEO) Bộ phân loại sử dụng phương pháp Auto-encoder, tái tạo lại cácđặc trưng âm thanh vừa tách ra sau đó sử dụng SVM để tiến hành phân loại Kết quả thuđược tỉ lệ nhận dạng cảm xúc là 74,07% khi sử dụng Auto Encoder thông thường và 72,83%khi sử dụng bộ stack Auto encoder.

2.3 Các phương pháp nhận diện cảm xúc sử dụng learning

Deep-Trong những năm gần đây, học máy và học sâu đã có những bước phát triển rõ rệt Nhữngkhó khăn trong việc áp dụng các mô hình đã được giải quyết thông qua các kỹ thuật về khoahọc và công nghệ Cùng với đó là việc áp dụng mô hình học máy vào giải quyết bài toán phânloại âm thanh nói chung cũng như nhận diện cảm xúc trong lời nói.

2.3.1 Phân loại cảm xúc dựa trên đặc điểm âm thanh

Các nghiên cứu tập trung chủ yếu vào sử dụng đặc trưng khác nhau đã được đề xuất trướcđây như hệ số cepstral tần số mel (MFCC), hệ số cepstral dự đoán tuyến tính (LPCC), và hệ sốdự đoán tuyến tính tri giác (PLP) để đạt được kết quả tốt hơn trong việc nhận biết cảm xúc củacon người Gần đây, đã có sự chú ý trong việc sử dụng các thuộc tính phụ được tính toán từ thờigian quang phổ âm dài hạn bằng cách sử dụng một dải lọc phân giải giọng nói.

Bộ phân loại sử dụng PCA và DDN

PCA (Principal Component Analysis) sử dụng các phương pháp nhằm giảm thiểu overfit dữliệu thông qua loại bỏ các đặc điểm có độ tương quan cao Để xác định cảm xúc của một lờinói nhất định, chúng ta cần xác định và trích xuất một hoặc nhiều đặc điểm có ý nghĩa Tậpdữ liệu âm thanh được hiển thị phù hợp bằng cách trích xuất các đặc điểm phù hợp từ tín hiệu

Trang 21

thoại Trong cách tiếp cận này, sự kết hợp của MFCC, Log Mel- Spectrogram, Chroma, Spectralcentroid và Spectral rolloff đã được trích xuất Thư viện librosa đã được sử dụng để trích xuấtđặc điểm trực tiếp từ tín hiệu âm thanh Sau khi trích xuất, các đặc điểm của từng tệp âm thanhcùng với các nhãn đã được chuyển đổi thành vectơ đặc trưng 2 chiều.

Mô hình được xây dựng với các lớp dense xen kẽ các lớp dropout gồm tổng cộng 13 lớp(7 lớpdense và 6 lớp dropout) Đối với các lớp dense, lớp đầu vào gồm 1024 unit và 512, 256,128, 64, 32 unit cho lần lượt các lớp còn lại Do có 8 loại cảm xúc cần được phân loại nên lớpđầu ra gồm 8 unit Hàm kích hoạt ’relu’ được sử dụng cho lớp đầu vào và các lớp hidden; hàmkích hoạt ’softmax’ được sử dụng cho lớp đầu ra Sau lớp đầu vào và mỗi lớp hidden là một lớpdropout với tỉ lệ 0.2.

Bộ phân loại sử dụng VGG16

Một cách tiếp cận tương đồng khác (alternative approach) đó là sử dụng bộ phân loại dựatrên VGG16 Bộ phân loại này sẽ nhận đầu vào là quang phổ mel của âm VGG16 là một môhình CNN được đề xuất bởi Karen Simonyan và Andrew Zisserman VGGNet-16 hỗ trợ 16 lớpbao gồm 13 lớp tích chập và 3 lớp full-connected VGG16 có thể phân loại hình ảnh thành 1000loại đối tượng Ngoài ra, mô hình này có kích thước đầu vào hình ảnh là 224x224 Với mỗi tệpâm thanh, sử dụng thư viện librosa để trích xuất Log Mel-Spectrogram như hình ảnh và lưuchúng vào các lớp cảm xúc tương ứng Kết quả là tổng cộng 1440 và 2800 hình ảnh đã đượctrích xuất tương ứng với các tập dữ liệu RAVDESS và TESS.

Bộ phân loại sử dụng CNN-LSTM

Jack Parry và đồng sự[12] sử dụng kiến trúc CNN trong đào tạo đa ngữ liệu và nhận dạngcảm xúc giọng nói trong “tự nhiên” Một mô hình CNN-LSTM lấy đầu vào là quang phổ âm

(spectrogram) Trong nhận dạng giọng nói, quang phổ mel-scaled loại bỏ một phần thông tin

cao độ(pitch) [14] trong khi ở phía ngược lại cảm xúc lại được thể hiện mạnh mẽ thông quathông tin cao độ Do đó, hệ thống sử dụng CNN-LSTM sẽ sử dụng quang phổ tuyến tính (quangphổ tuyến tính biểu thị tốt cấu trúc điều hòa (harmonics structure) của giọng nói).

Phương pháp CNN-LSTM cải thiện tính tổng quát của mô hình DL cho các tác vụ SERbằng cách sử dụng mạng nơ-ron autoencoder-based được huấn luyện trước đó Dựa vào cấu trúcmạng Mạng nơ-ron tích chập (CNN) và mạng Bộ nhớ dài-ngắn hạn (LSTM) xây dựng một bộmã autoencoder phân tán (sparse autoencoder) trên kho ngữ liệu tích hợp.

Các mô hình SER được đào tạo trên một kho dữ liệu duy nhất có xu hướng over-fit, dẫn đếnhiệu suất trở nên kém đi khi sử dụng trên dữ liệu thực[15] Một số giải pháp kỹ thuật được đềxuất bao gồm:

Tăng cường dữ liệu (Data augmentation): Tạo các mẫu đào tạo bổ sung bằng cách sao

chép và thường sửa đổi nhóm đào tạo gốc, sử dụng các kỹ thuật như nhiễu loạn độ dàiđường âm thanh, biến đổi nhịp độ và độ to của tiếng ồn

Trang 22

Học tập đa nhiệm (multi-task learning): Giao thêm các nhiệm vụ mới cho mô hình như

xác định giới tính của người nói trong giọng nói,

Sử dụng đa mô hình: Sử dụng thêm mô hình ví dụ như mô hình nhận dạng cảm xúc dựa

trên hình ảnh để cải thiện SER.

Hình 2.1: CNN-LSTM

Cuối cùng, cross-corpus SER(huấn luyện mô hình trên đa dữ liệu) đã được nghiên cứu đểcải thiện khả năng tổng quát hóa cho mô hình Kết quả cho thấy các mô hình được đào tạo cảithiện về hiệu suất, nhưng dẫn đến tình trạng bị overfitting trên tập dữ liệu đào tạo.

Cách tiếp cận này dường như cải thiện tính tổng quát hóa bằng cách sử dụng các tính năngcấp thấp, tuy nhiên vẫn chưa rõ liệu các mô hình mạng thần kinh sử dụng các tính năng cấp caonhư filterbank có thể được hưởng lợi từ các kỹ thuật này hay không.

Bộ phân loại sử dụng Attention network

M.Xu và các đồng sự[16] phát triển mô hình attention-based multimodal, bao gồm một môhình CNN kết hợp với một mô hình self-attention trong đó mô hình attention được tinh chỉnhnhằm tăng độ chính xác cho mô hình Mô hình nhận đầu vào là Mel-scale Frequency CepstralCoefficients (MFCCs) Dưới đây là minh họa về cấu trúc của mô hình CNN:

Trang 23

Hình 2.2: Mô hình phân loại chứa 5 lớp tích chập

Lớp chập đầu tiên được kết hợp với hai lớp chập song song để trích xuất các kết cấu từ trụcngang (trục thời gian) và dọc (trục MFCC) tương ứng Mỗi tệp âm thanh sẽ được phân giải vàtính toán thuộc tính MFCC rồi đưa vào mạng CNN như một hình ảnh.

Sau khi đệm, đầu ra gồm 8 kênh của mỗi lớp chập được nối với 16 kênh Sau đó, bốn lớptích chập được áp dụng để tạo ra biểu diễn 80 kênh và được gửi đến lớp self-attention Sau mỗilớp chập, một lớp Chuẩn hóa Hàng loạt (BN) và hàm kích hoạt Relu được sử dụng Các lớp tíchchập 2 và 3 được sử dụng kèm với kernel có kích thước 2 làm giảm kích cỡ dữ liệu.

Giá trị đầu ra Head Fusion là một trong những công đoạn chính trong mạng neural trên,Query, key, và value là những giá trị thường dùng để tính toán các thông số của mạng như Q,Kvà V thông qua W.

Q= api_,K = Wk∗ key,V = Wv∗ valueAttention(Q, K,V ) = so f tmax(QK√ T

Trong self-attention, các giá trị query, key và value cùng đến từ một đầu vào X Bằng cách tínhtoán self-attention, mô hình có thể tập trung vào sự kết nối giữa các phần khác nhau của đầuvào.

Kết quả từ mạng tích chập mang các đặc điểm tương đồng về số chiều cũng như kích cỡ củama trận, lần lượt sẽ được đưa vào ba vị trí query, key và value để tiến hành huấn luyện mạngself-attention.

2.3.2 Phân loại cảm xúc kết hợp âm thanh và ngữ nghĩa

Tín hiệu lời nói có thể được sử dụng để trích xuất cảm xúc Tuy nhiên, cần lưu ý rằng sựthay đổi trong tín hiệu lời nói có thể khiến việc trích xuất cảm xúc trở thành một nhiệm vụ đầy

Trang 24

thách thức Cụ thể, các đặc điểm ngữ điệu/thời gian và ngôn ngữ của bài phát biểu không cungcấp kết quả với độ chính xác đầy đủ Chúng ta cũng có thể tìm ra cảm xúc từ các đặc điểm ngônngữ nếu xác định được nội dung.

Multimodal Fine-Grained Learning

Hang Li và các đồng sự[7] tiến hành phân tích cảm xúc trong giọng nói thông qua mô hìnhmultimodal Mô hình multimodal là một phương pháp sử dụng nhiều module và kết hợp cácmodule qua các phép toán căn chỉnh và ghép tích hợp chéo.

Trang 25

Quá trình tính toán bao gồm các bước như sau:

1 Với mỗi câu nói, chuyển thành n frames với độ dài 25ms, mỗi frame cách nhau 10ms Trênmỗi frame sẽ tiến hành phân tách các thuộc tính cấp thấp (ký hiệu Xa= [xa1, , xan]) Xasẽđược đưa vào một mạng CNN 1d nhiều lớp nhằm trích xuất ra ˆXa= [ˆxa1, ,ˆxan].

Tiếp đến, mô hình tiến hành nhận dạng chi tiết bằng cách trích xuất biểu diễn âm thanh cấpđộ từ cơ bản sử dụngtemporal alignment mean-max pooling để tổng hợp biểu diễn âm

thanh mức khung(frame level) Xa Temporal alignment mean-max pooling sử dụng ma

trận điều chỉnh được cấp trước đó để lựa chọn các đặc điểm âm thanh của khung(tương ứngvới mỗi từ) có giá trị cao nhất Kết quả của các phép tính sử dụng toán tử là Za= [za1, , zan]với mỗi za

j ( j ∈ (1, , n))gồm:

ˆzaj = meanpool({a, j⊙ ˆza

j| i = 1 N})˜zaj= maxpool({a, j⊙ ˆza

j | i = 1 N})zaj = [ˆzaj,˜zaj].

Trong đó {a, j đại diện cho hàng thứ j của ma trận điều chỉnh, za

j đại diện cho đặc tính âmhọc của khung thứ j, ⊙ biểu thị phép toán element-wise.

2 Song song với quá trình trích xuất âm thanh, mỗi câu sẽ được chuyển thành dạng văn bảnvới bộ nhận dạng ASR để tiến hành trích xuất đặc trưng ngôn ngữ Kết quả được trích xuấtXs sau khi thông qua mô hình ngôn ngữ đã được đào tạo trước đó (vd BeRT, word2vec, ).Xs sẽ được đưa vào phép chuyển đối tuyến tính nhằm tinh chỉnh để tạo ra Zs(= WsXs)sửdụng cho hệ thống nhận dạng cảm xúc ngay sau đó.

3 Hai kết quả thu được Za, Zs được đưa vào một hệ thống gọi là Cross Modality tion(CME) Thực chất hệ thống này chỉ có nhiệm vụ tính toán và áp dụng hàm sigmoid lên

Excita-kết quả tổng hợp có thể biểu diễn toán học như sau:

Ea= δ (WaZs), Es= δ (WsZa)¯

Za= Ea⊙ Za, ¯Zs= Es⊙ Zs

Trong đó δ (.) là các hàm sigmoid, Wa, Wslà các toán tử ánh xạ biểu diễn tuyến tính tươngứng cho mô hình âm thanh và ngữ nghĩa văn bản, Ea, Eslà các ma trận kích thích (excitationmatrixs) hay có nghĩa tương đương là các trọng số đã được tinh chỉnh để phù hợp với cácthuộc tính âm-từ tương ứng.

4 ˆZa= [ˆza1, ,ˆzan]và ˆZs= [ˆzs1, ,ˆzsn]là các đặc trưng trung gian tương ứng với kết quả tổnghợp thu được lúc này, với mỗi ˆzitương ứng với từ thứ i xuất hiện trong câu Các đặc trưngnày được đưa vào một mạng LSTM trên đỉnh để thu về các mô hình tuần tự(sequentialpatterns) ở cấp độ từ của mỗi từ Sau đó, một lớp max-pooling được áp dụng để tổng hợpthông tin tuần tự cho tất cả các trạng thái ẩn của nó trong chuỗi phát âm.

5 Cuối cùng, sử dụng mạng chuyển tiếp nguồn cấp dữ liệu được kết nối đầy đủ hai lớp (FullyConnected-NN) để tiến hành các dự đoán cuối cùng pi= so f tmax(FCN(h∗i) trong đó pilàvectơ xác suất cho biết xác suất phân lớp cuối cùng của từ thứ i trong câu.

Kết quả mà Hang Li và các đồng sự thu được trên tập dữ liệu IEMOCAP và RAVDESS cho

Trang 26

thấy mỗi thành phần của mô hình đóng một vai trò quan trọng trong việc cải thiện hiệu suất củamô hình trên cả hai tập dữ liệu Trong trường hợp cụ thể khi sử dụng mô hình kết hợp mà âmhoặc nghĩa không chứa cảm xúc excitement(chỉ sử dụng một nhân tố) sẽ cho hiệu suất cao hơnso với mô hình hoàn toàn không chứa cảm xúc excitement và sẽ đạt hiệu suất cực đại khi cả hainhân tố được sử dụng.

High-level Speech and Text Feature

Makiuchi (2021)[10] đưa ra đề xuất một mô hình thực hiện tác vụ SER nhận đầu vào là cácthuộc tính wav2vec, đi kèm với mô hình này là một mô hình Current Text Emotion Recogni-tion(TER) nhận đầu vào là các features được trích xuất ra từ văn bản trong lời nói.

Hệ thống SER của Makiuchi bao gồm hai thành phần có hai chức năng riêng biệt, bao gồmnửa đầu gọi là một encoder nhận đầu vào bao gồm mel-frequency và wav2vec, kết quả thu đượctừ bộ phận encoder có thể sử dụng cho một bộ decoder khác có phone encoder Ngoài ra kết quảnày có thể được dùng gộp với TER thông qua kết hợp điểm số(score function) để thu được xácsuất của các lớp cảm xúc.

Các đặc điểm nhận dạng của người nói được trích xuất với Resairszer, được đào tạo trướctrên LibriSpeech, VoxCeleb1 và VoxCeleb2 Đối với mỗi lời phát biểu, một bản nhúng 256chiều thu được để thể hiện danh tính của người nói Đối với mỗi người nói, tiến hành trích xuấtcác đặc điểm nhận dạng của người nói từ 100 câu nói được lựa chọn ngẫu nhiên, lấy mức trungbình các giá trị làm đặc điểm nhận dạng cuối cùng để đại diện cho người nói.

Với mô hình TER, thuộc tính được trích xuất biểu diễn văn bản dướih dạng [N, L] cho mỗicâu nói bằng các mô hình dựa trên Transformer đã được đào tạo trước, trong đó N là số lượngtoken trong câu nói không bao gồm token đặc biệt và L là kích thước của từng thuộc tính củatừng token Phần biểu diễn văn bản bị xóa đi để đầu vào cho mô hình TER có kích thước [N0,L], trong đó N0là số lượng token tối đa được tìm thấy trong các phát biểu của tập dữ liệu Cácđặc trưng văn bản này được xử lý với mô hình TER được minh họa dưới đây, mô hình này đượcđào tạo dựa với hàm thất thoát cross-entropy được xác định như sau:

Le(z, c) = −log( exp(z[c])∑jexp(zj))

Cũng như SER, hàm softmax được áp dụng cho mô hình TER để thu được xác suất của lớp cảmxúc Tuy nhiên, khác với mô hình SER, đầu ra từ mô hình TER đại diện cho kết quả phân loạicảm xúc ở cấp độ lời nói.

Trang 27

(a) SER(b) TERHình 2.4: Kiến trúc hai mô hình

Hình 2.5: Score Fusion

Bộ phân loại sử dụng Hierarchical Multimodal

Mạng nơ-ron kết hợp phân cấp (Hierarchical Multimodal) được Rozgic và các đồng sự[1]thiết kế sẽ sử dụng:

• Mô hình biểu diễn âm thanh bắt nguồn từ các frame chia tách từ dữ liệu âm.

Trang 28

• Mô hình biểu diễn ngữ cảnh có nhấn mạnh những phần quan trọng nhất trong một phátbiểu(lời nói).

• Một cơ chế ưu tiên sử dụng phương thức nào ở mức từ(cơ chế sẽ lựa chọn sử dụng modal hay sound-only).

multi-Mục đích của Modality-based attention xác độ ưu tiên của các phương thức tại mức độ từ(sosánh về mặt ý nghĩa của mô hình âm và mô hình văn bản) Do đó cả hai mô hình cần phải đượcsử dụng và tổng hợp kết quả theo phương trình như sau:

ha= tanh(Waxa+ ba)hl= tanh(W | xl| +bl)

z= σ (Wz[xa, xl] + bz)h= z ∗ ha+ (1 − z) ∗ hl

trong đó xa, xl là các vectơ đầu vào âm thanh và từ vựng tương ứng Các đầu vào này được nốivới nhau ([xa, xl]) và sau đó nhân với Wzđể có thể đưa về một không gian gồm các vectơ ẩn havà hl Cuối cùng z nhân với vec tơ âm thanh hatrong khi (1 − z) sẽ được nhân với vectơ từ vựngẩn hl z sẽ quyết định xem mô hình nào sẽ được ưu tiên hơn.

Nếu z = 1, mô hình sẽ chỉ sử dụng âm thanh để tiến hành phân tích đưa ra kết quả và ngượclại Điểm đặc biệt của mô hình này là sử dụng attention như một nhân tố chính, có thể cho phépý nghĩa của từ vựng trong lời nói chiếm tỉ trọng cao trong một số trường hợp.

Cơ chế này giúp đánh giá được từ nào trong câu đang nắm nhiều giá trị cảm xúc nhất, quađó tính toán được giá trị cảm xúc ở trong câu đang nói:

hei= υTtanh(Whhi+ bh)ai= exp(ei)

∑Nj=1exp(ej), where ∑N

i=1ai= 1z= ∑Ni=1aihi

Trong đó Whvà bhlà những tham số và vectơ v đều có thể huấn luyện được davà dhlần lượt làchiều của attention layer và hidden state(chứa các thông số ẩn) Cuối cùng tương tự sau khi tínhtoán xong, z sẽ được đưa vào một soft-max layer.

Hình 2.6: Minh họa cho multimodal attention

Trang 29

Một trong những thách thức khi tiến hành phân tích cảm xúc trong thực tế khi sử dụngmultimodal là xảy ra vấn đề trong trích xuất thông tin từ vựng (từ vựng không có sẵn, từ vựngkhông có nghĩa ) Trong trường hợp này, mô hình multiview kết nối hai mạng thông qua mộtcơ chế sử dụng hàm mất mát đánh giá lẫn nhau:

Có Va và Vm lần lượt là acoustic view và multi view Kiến trúc của các view được sắp xếpnhư sau :

Hình 2.7: MultiView model

Bên trái là acoustic view có kiến trúc giống với kiến trúc của attention network được pháttriển bởi Xu[16], khác biệt ở chỗ sử dụng các layer LSTM hai chiều và nhận đầu vào là cácvectơ được tính toán trực tiếp trực tiếp từ các frame âm thanh Bên phải là mô hình multiviewVm nhận các vectơ trên các từ ngữ làm đầu vào Mỗi view sẽ lần lượt đưa ra các kết quả là havà hm Vì các vectơ này đều cùng xuất phát từ một nguồn, các kết quả cảm xúc của chúng phảigiống nhau nên chúng ta có thể so sánh hai kết quả havà hmvừa thu được Để tính toán loss, tácgiả đã sử dụng công thức:

Lc=2N1 ∑Ni max 0, m + dis hai, h+mi − dis hai, h−mi +1

2N∑Ni max 0, m + dis hmi, h+ai − dis hmi, h−ai

Trong đó + và - đại diện cho positive và negative vectơ m là khoảng cách (margin) để phân biệtgiữa pos-vectơ và neg-vectơ đã nói ở trên Hàm khoảng cách dis(u,v) = 1 − cos(u,v) Trongquá trình huấn luyện cần chú ý đến một số biểu hiện như nếu thêm các mẫu dữ liệu negative sẽảnh hưởng lên hiệu suất của mô hình, thuộc tính của âm thanh (valence, arousal, dominance) códấu hiệu trùng lặp trong vài cảm xúc.

2.4 Tổng kết chương 2

Chương 2 đã trình bày các giải pháp cơ bản về phân loại cảm xúc trong lời nói, đồng thờiđi sâu vào tìm hiểu các mô hình cũng như tiêu chí và mục đích từng giải pháp và rút ra kếtluận mỗi mô hình đều có cho mình đều có những đặc điểm ưu và nhược riêng Nhận thấymodel deep learning chỉ sử dụng đặc điểm âm thanh có kết quả tốt và phần lớn giải quyếtđược bài tóan phân loại cảm xúc trong âm thanh, tuy nhiên về các đặc trưng cảm xúc trongngôn ngữ cũng như nghĩa của câu vẫn chưa được khai thác Các mô hình âm thanh kết hợp ngữ

Trang 30

nghĩa có thể cho kết quả tốt nhất, tuy nhiên phải qua nhiều trạng thái căn chỉnh hiệu số gây nhiễu.Vì giới hạn thời gian kinh phí và dữ liệu, hiện nay nhóm chưa thể nghiên cứu sâu về các môhình multimodal.

Trang 31

Chương 3

Xây dựng hệ thống

3.1 Xây dựng mô hình nhận diện cảm xúc qua giọng nói3.1.1 Tập dữ liệu

Ryerson Audio-Visual Database of Emotional Speech and Song[9]

Ryerson Audio-Visual Database of Emotional Speech and Song (RAVDESS) chứa 7356 clip(Audio Video dataset) và 1000+ records (Audio- only dataset) với tổng dung lượng là 24.8 GB ,gồm giọng nói của 24 diễn viên lồng tiếng (12 nam, 12 nữ), lồng tiếng các câu-từ vựng đối xứngnhau với chất giọng tiếng Anh Bắc Mỹ Tập dữ liệu giọng nói bao gồm các nhãn calm, happy,sad, angry, fearful, surprise, disgust và neutral Các file Audio (Audio-only dataset) có thông số16 bit - 48kHz, lưu dươi đinh dạng wav Tất cả các diễn viên đều tạo ra 104 giọng khác nhau,bao gồm 60 giọng nói và 44 giọng hát Mỗi trong số 104 giọng nói được xuất ra để tạo ra badạng riêng biệt: âm thanh-video (khuôn mặt và giọng nói), chỉ video (khuôn mặt nhưng khôngcó giọng nói) và chỉ âm thanh (giọng nói nhưng không có khuôn mặt) Điều này tạo ra 312 tệpcho mỗi diễn viên (104 × 3) Bộ này bao gồm 4320 bản ghi âm lời nói và 3036 bản ghi âm bàihát.

Hình 3.1: Các cảm xúc trong tập dữ liệu RAVDESS

doi.org

Trang 32

Ravdess validate method[9]

Bao gồm 247 tình nguyện viên tham gia đánh giá (raters) Người đánh giá được bố trí quansát trên một máy tính và lần lượt đưa ra kết quả cho 298 mẫu được lựa chọn ngẫu nhiên (baogồm 174 đoạn giọng nói và 124 bài hát) Sau khi được nghe/nhìn đoạn hội thoại, tình nguyệnviên sẽ đưa ra ba đánh giá bao gồm: loại cảm xúc của đoạn thông tin, cường độ của cảm xúc vàtính chân thực của cảm xúc Tình nguyên viên sẽ đưa ra câu trả lời theo phương pháp forced-choice, các lựa chọn được đưa ra bao gồm: neutral, calm, happy, sad, angry, fearful, disgust, andsurprise Tình nguyện viên sẽ đưa ra giá trị của cường độ cảm xúc dựa trên thang Likert từ mứcyếu nhất (very weak - 1) đến mạnh nhất (very strong - 5), tương tự với tính chân thực của cảmxúc từ mức không chân thực (not genuine - 1) đến cực kỳ chân thưc (very genuine - 5)

Two Base-line emotions[9]

RAVDESS chứa 2 nhãn cảm xúc đó là neutral và calm Nhiều nghiên cứu cho thấy cảm xúcneutral được tạo ra nhiều kết quả tri giác kết hợp, một vài trường hợp neutral biểu hiện cảm xúctrị giác tiêu cực Các nhà nghiên cứu cho rằng kết quả này bị ảnh hưởng do sự không chắc chắn(không xác định chính xác) của người thực hiện các bài kiểm tra đối với cảm xúc neutral Để bùlại cho sự thiếu sót trên, tập dữ liệu RAVDESS được thêm nhãn cảm xúc calm, vừa tạo ra nhiềukết quả tri giác kết hợp và có thể biểu hiện cảm xúc trị giác ngược lại với neutral (tích cực).

for dir in ravdess_directory_list:

actor = os.listdir(Ravdess + dir)for file in actor:

part = file.split('.')[0]

part = part.split('-')

# Phần thứ ba trong tên thể hiện cảm xúc trong đoạn thoại.

file_path.append(Ravdess + dir + '/' + file)

# dataframe cho cảm xúc của dữ liệu

emotion_df = pd.DataFrame(file_emotion, columns=['Emotions'])

# dataframe cho đường dẫn của dữ liệu.

path_df = pd.DataFrame(file_path, columns=['Path'])

Trang 33

Ravdess_df = pd.concat([emotion_df, path_df], axis=1)

# Chuyển đổi giá trị interger sang nhãn cảm xúc.

#Ở đây có 2 nhãn là thông thường và bình tĩnh, vì vậy tôi đã gộp chúnglại làm 1.

Ravdess_df.Emotions.replace({1:'neutral', 2 'neutral', 3 'happy',

4 'sad', 5 'angry', 6 'fear', 7:'disgust', 8 'surprise'}

Hình 3.2: Spotify - Website âm nhạc trực tuyến lớn nhất hiện nay

Spotify đã thay đổi việc nghe nhạc khi ra mắt vào năm 2008 Khám phá, quản lý và chia sẻmiễn phí hơn 80 triệu bản nhạc, bao gồm 4,7 triệu podcast hoặc nâng cấp lên Spotify Premiumđể truy cập các tính năng dành riêng cho âm nhạc bao gồm chất lượng âm thanh được cải thiện

Trang 34

và theo yêu cầu, ngoại tuyến và trải nghiệm nghe nhạc không có quảng cáo Ngày nay, Spotifylà dịch vụ đăng ký phát trực tuyến âm nhạc phổ biến nhất thế giới với 456 triệu người dùng, baogồm 195 triệu người đăng ký, trên 183 thị trường.

3.2.2 Zing MP3

Zing MP3 là một dịch vụ âm nhạc kỹ thuật số thuộc hệ thống Zing được quản lý và vận hànhbởi VNG Ra mắt lần đầu từ năm 2007, đến nay Zing MP3 được coi là một trong những trangweb âm nhạc trực tuyến lớn nhất Việt Nam.

Lịch sử

Zing MP3 chính thức phát hành lần đầu vào tháng 11 năm 2007 với tư cách là sản phẩm đầutiên trong hệ thống Zing của VNG Đến tháng 3 năm 2011, ứng dụng Zing MP3 ra mắt và hỗtrợ trên các hệ điều hành di động iOS, Android và Windows Phone cũng như dòng Internet TiviSony vào tháng 9 cùng năm.

Tính năng

Các tính năng của Zing MP3 hiện nay bao gồm nghe nhạc miễn phí chất lượng cao 320Kbps, hát karaoke, phòng nhạc, theo dõi trang cá nhân của nghệ sĩ, hệ thống tự động tìm kiếm,truy xuất nhạc bằng trí tuệ nhân tạo, cập nhật danh sách những bài hát, ca sĩ mới, video âm nhạctheo nhu cầu người nghe, cho phép tải, nhúng liên kết bài hát vào các trang web khác nhau haygửi cho bạn bè những bài hát mình yêu thích Ngoài ra, Zing MP3 cũng là nơi sở hữu kho nhạcViệt lớn nhất với hơn 85% bản quyền nhạc Việt, trong đó khoảng 80% là các bản ghi phát hànhđộc quyền[5] và thường xuyên ký kết hợp tác với nhiều nghệ sĩ cùng công ty âm nhạc khác nhauđể phát hành nhạc độc quyền trên nền tảng.

Ảnh hưởng

Zing MP3 được xem là một trong những trang web âm nhạc trực tuyến lớn nhất Việt Nam.Tại thời điểm ra mắt, Zing MP3 đã mở ra một xu hướng nghe nhạc mới và nhanh chóng trởthành website số một về âm nhạc tại thời điểm khi lọt vào danh sách 1.000 website được truycập nhiều nhất trên thế giới và 50 website được truy cập nhiều nhất tại Việt Nam chỉ sau 45ngày ra mắt theo Alexa Cũng trong một thống kê vào năm 2012, dịch vụ đã có 10 triệu ngườidùng, với trung bình mỗi ngày có 7.1 triệu bài hát, 1.95 triệu video, 1.85 triệu album được nghevà xem Ứng dụng Zing MP3 sau khi được phát hành cũng thường xuyên lọt top 3 các ứng dụngđược cài nhiều nhất tại nhiều cửa hàng ứng dụng khác nhau.

Trang 35

Hình 3.3: Zing MP3 - Website âm nhạc trực tuyến lớn nhất Việt Nam hiện nay

Ngoài ra, còn các website, ứng dụng âm nhạc phổ biến khác như SoundCloud, NhacCuaTui,

Trang 36

Cấu trúc Một mạng nơ-ron tích chập có nhiều lớp ẩn giúp trích xuất thông tin từ một hình

ảnh Bốn lớp quan trọng trong CNN là:

Convolution Layer: đây là bước đầu tiên trong quá trình trích xuất các tính năng có giá trị

từ một hình ảnh (feature map) Một lớp tích chập có một số bộ lọc thực hiện phép toán tíchchập Mọi hình ảnh được coi là một ma trận các giá trị pixel.

ReLU Layer: ReLU là viết tắt của Rectified linear unit Sau khi các feature map được trích

xuất, bước tiếp theo là chuyển chúng sang một lớp ReLU ReLU đặt tất cả các pixel âm

thành 0 Nó đưa vào mạng không tuyến tính và đầu ra được tạo là một rectified feature

Pooling Layer: Pooling là một hoạt động down-sampling để giảm kích thước của feature

map Rectified feature map sẽ đi qua một pooling layer để tạo ra một pooled feature map.

Fully-Connected Layer: Trước khi đi vào lớp cuối cùng, pooled feature map phải trải qua

bước flattening để được biến đổi từ mảng 2 chiều thành một vector tuyến tính liên tục Sau

đó,lớp này thực hiện nhiệm vụ phân loại dựa trên các đặc trưng được trích xuất qua các lớptrước đó và các bộ lọc khác nhau của chúng Trong khi các lớp tích hợp và tổng hợp có xuhướng sử dụng các hàm ReLu, các lớp Fully-Connected Layer thường sử dụng hàm kích

hoạt softmax để phân loại đầu vào một cách thích hợp, tạo ra xác suất từ 0 đến 1.

Hình 3.4: Cấu trúc cơ bản của CNN

Nguyên lý hoạt động

Các pixel từ hình ảnh được đưa vào convolutional layer để thực hiện phép toán tích chập.Kết quả của nó là một convolved mapp.

Sử dụng hàm ReLU cho convolved mapp để tạo một rectified feature map.

Hình ảnh được xử lý qua nhiều convolutional layer và ReLu layer để trích xuất các đặc

Các convolutional layer khác nhau với các bộ lọc khác nhau được sử dụng để xác định các

phần cụ thể của hình ảnh.

Trang 37

• Pooled feature mapđược làm phẳng (flattening) và được đưa vào fully-connected layer để

có được kết quả cuối cùng.

Librosa là mộtPython library sử dụng trong việc phân tích âm nhạc và âm thanh Librosa

cung cấp triển khai nhiều chức năng phổ biến được sử dụng trong lĩnh vực truy xuất thông tinâm nhạc.

Keras là một Deep Learning API được viết bằng Python, chạy trên nền tảng Machine ing TensorFlow Nó được phát triển với trọng tâm là cho phép thử nghiệm nhanh Có thể đi từ ýtưởng đến kết quả càng nhanh càng tốt là chìa khóa để thực hiện tốt việc nghiên cứu.

Learn-Những đặc điểm của Keras:

• Đơn giản - nhưng không đơn giản Keras giảm tải nhận thức của nhà phát triển để giảiphóng bạn tập trung vào các phần của vấn đề thực sự quan trọng.

• Linh hoạt - Keras áp dụng nguyên tắc bộc lộ dần độ phức tạp: quy trình công việc đơn giảnphải nhanh chóng và dễ dàng, trong khi quy trình công việc nâng cao tùy ý có thể thực hiệnđược thông qua một con đường rõ ràng dựa trên những gì bạn đã học.

• Mạnh mẽ - Keras cung cấp khả năng mở rộng và hiệu suất toàn ngành: nó được các tổ chứcvà công ty bao gồm NASA, YouTube hoặc Waymo sử dụng.

3.3.2 FrontendReactJS

ReactJS là một thư viện giao diện người dùng JavaScript dựa trên thành phần đơn giản, giàutính năng Nó có thể được sử dụng để phát triển các ứng dụng nhỏ cũng như các ứng dụng lớn,phức tạp ReactJS cung cấp bộ tính năng tối ưu và chắc chắn để xây dựng một ứng dụng web.React được phát triển và phát hành bởi Facebook Facebook đang liên tục làm việc trên thư việnReact và nâng cao nó bằng cách sửa lỗi và giới thiệu các tính năng mới.

Có thể nói, hầu hết các tính năng hay sức mạnh của ReactJS thường bắt đầu từ việc tập trungvào các phần riêng lẻ Do đó thay vì làm việc trên toàn bộ ứng dụng của website thì ReactJS lạicho phép các Developer chia nhỏ giao diện phức tạp của người dùng thành các thành phần nhỏhơn và đơn giản hơn.

Về cơ bản, JSX là phần mở rộng cú pháp của JavaScript thông thường và được sử dụng đểtạo các React component Các component này sau đó được render vào React DOM JSX đượcđánh giá là sử dụng đơn giản hơn JavaScript và cho phép trích dẫn HTML cũng như việc sử

Trang 38

dụng các cú pháp thẻ HTML để render các component nhỏ JSX tối ưu hóa các dòng lệnh khibiên soạn, vì vậy nó chạy nhanh hơn so với các dòng lệnh JavaScript tương đương.

Virtual DOM

React sử dụng Virtual DOM tồn tại giống như một bản sao nhẹ của DOM thực (một đại diệnảo của DOM) Vì vậy, đối với mọi đối tượng tồn tại trong DOM ban đầu, sẽ có một đối tượngtương ứng trong React Virtual DOM Nó hoàn toàn giống nhau, nhưng nó không có khả năngthay đổi trực tiếp bố cục của tài liệu Thao tác với DOM thì chậm, nhưng thao tác với VirtualDOM thì nhanh vì không có gì được thể hiện trên màn hình Vì vậy, mỗi khi có thay đổi về trạngthái ứng dụng, Virtual DOM sẽ được cập nhật trước thay vì DOM thực.

Redux là một khuôn mẫu và thư viện để quản lý và cập nhật trạng thái ứng dụng, sử dụngcác sự kiện được gọi là "action" Redux cung cấp một kho lưu trữ tập trung cho trạng thái cầnđược sử dụng trên toàn bộ ứng dụng của bạn, với các quy tắc đảm bảo rằng trạng thái chỉ có thểđược cập nhật theo cách có thể dự đoán được.

Redux Saga là một thư viện middleware được sử dụng để cho phép kho lưu trữ Redux tươngtác không đồng bộ với các tài nguyên bên ngoài chính nó Điều này bao gồm tạo các yêu cầuHTTP cho các dịch vụ bên ngoài, truy cập bộ nhớ của trình duyệt và thực hiện các hoạt độngI/O Các hoạt động này còn được gọi là các side effect Redux Saga giúp tổ chức các side effectnày theo cách dễ quản lý hơn.

Ant Design

Ant Design là thư viện React UI chứa các thành phần dễ sử dụng hữu ích để xây dựng giaodiện người dùng tương tác Ant design rất dễ sử dụng cũng như tích hợp Đây là một trongnhững lựa chọn thông minh để thiết kế ứng dụng web bằng react Nó cung cấp các high-qualitycomponent có thể được sử dụng một cách dễ dàng.

Các đặc điểm của Ant Design:

• Giao diện người dùng cấp doanh nghiệp được thiết kế cho các ứng dụng web.• Một bộ các thành phần React chất lượng cao sẵn có.

• Được viết bằng TypeScript với các kiểu tĩnh có thể dự đoán được.• Toàn bộ gói tài nguyên thiết kế và công cụ phát triển.

• Hỗ trợ quốc tế hóa cho hàng chục ngôn ngữ.• Tùy chỉnh chủ đề mạnh mẽ đến từng chi tiết.

Trang 39

3.3.3 BackendMongoDB

MongoDB, cơ sở dữ liệu NoSQL phổ biến nhất, là cơ sở dữ liệu document-oriented mãnguồn mở được viết bằng ngôn ngữ C++ Thuật ngữ ’NoSQL’ có nghĩa là ’không quan hệ’.Điều đó có nghĩa là MongoDB không dựa trên cấu trúc cơ sở dữ liệu quan hệ giống như bảngmà cung cấp một cơ chế hoàn toàn khác để lưu trữ và truy xuất dữ liệu Định dạng lưu trữ nàyđược gọi là BSON (tương tự như định dạng JSON).

Các tính năng của MongoDB

• Sử dụng các truy vấn Ad-hoc để tối ưu hóa tìm kiếm• Lập chỉ mục thích hợp để thực hiện truy vấn tốt hơn

• Sao chép dữ liệu để có đảm bảo tính sẵn sàng và ổn định hơn của dữ liệu

• Phân chia các tập dữ liệu lớn thành nhiều tập dữ liệu nhỏ hơn giúp cơ sở dữ liệu phân phốivà thực thi tốt hơn những truy vấn phức tạp và rắc rối (sharding)

• Cân bằng tải nhờ cơ chế sao chép và phân chia dữ liệu, giúp cải thiện hiệu suất truy vấn củangười dùng

Mongoose là thư viện Mô hình hóa dữ liệu đối tượng (ODM) dựa trên Node.js cho goDB Nó gần giống như một Object Relational Mapper (ORM), chẳng hạn như SQLAlchemycho cơ sở dữ liệu SQL truyền thống Vấn đề mà Mongoose muốn giải quyết là cho phép các nhàphát triển thực thi một lược đồ cụ thể ở lớp ứng dụng Ngoài việc thực thi lược đồ, Mongoosecòn cung cấp nhiều hook, xác thực mô hình và các tính năng khác nhằm giúp làm việc vớiMongoDB dễ dàng hơn.

Express là một framework tối thiểu và linh hoạt cho ứng dụng web Node.js, cung cấp mộtbộ tính năng mạnh mẽ cho các ứng dụng web và di động, bao gồm:

Trang 40

• Viết các trình xử lý cho các yêu cầu với các HTTP khác nhau tại các đường dẫn URL (route)khác nhau.

• Tích hợp với các công cụ kết xuất "xem" để tạo phản hồi bằng cách chèn dữ liệu vào cácmẫu.

• Đặt các cài đặt ứng dụng web phổ biến như cổng sẽ sử dụng để kết nối và vị trí của cácmẫu được sử dụng để hiển thị phản hồi.

• Thêm "phần mềm trung gian" xử lý yêu cầu bổ sung tại bất kỳ điểm nào trong quy trình xửlý yêu cầu.

3.4 Thiết kế hệ thống3.4.1 Kiến trúc của hệ thống

Ngày đăng: 30/07/2024, 17:38

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

TÀI LIỆU LIÊN QUAN

w