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

Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế mô hình GAN-LSTM cho tạo sinh âm nhạc

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

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

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

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM

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

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM Cán bộ hướng dẫn khoa học : PGS TS Hoàng Trang

Cán bộ chấm nhận xét 1 : TS Huỳnh Hữu Thuận

Cán bộ chấm nhận xét 2 : TS Nguyễn Minh Sơn

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 10 tháng 1 năm 2023

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ) 1 Chủ tịch hội đồng: PGS TS Trương Quang Vinh

2 Phản biện 1: TS Huỳnh Hữu Thuận 3 Phản biện 2: TS Nguyễn Minh Sơn 4 Ủy viên: TS Trần Hoàng Linh

5 Thư ký: TS Nguyễn Lý Thiên Trường

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)

Trang 3

ĐẠI HỌC QUỐC GIA TP.HCM

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

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: ĐỖ QUANG THỊNH MSHV:1970431

Ngày, tháng, năm sinh: 25/03/1997 Nơi sinh: Lâm Đồng

Chuyên ngành: Kĩ thuật Điện tử Mã số : 8520203

I TÊN ĐỀ TÀI: Thiết kế mô hình GAN-LSTM cho tạo sinh âm nhạc LSTM model: A design for Music Generation)

II NHIỆM VỤ VÀ NỘI DUNG: Xây dựng mô hình trí tuệ nhân tạo cho ứng dụng tạo sinh âm nhạc có tên gọi GAN-LSTM trên cả phần mềm lẫn phần cứng, qua đó đưa ra những đánh giá, nhận xét cụ thể nhằm làm rõ đóng góp của nghiên cứu và mở ra những hướng phát triển trong tương lai

III NGÀY GIAO NHIỆM VỤ: 06/09/2021

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 22/05/2022

V CÁN BỘ HƯỚNG DẪN: PGS TS Hoàng Trang

Trang 4

Lời cám ơn

Không có ai tự thân một mình mà thành công, quá trình học tập và nghiên cứu của tôi không thể tiến triển nếu không có sự giúp đỡ đến từ phía các thầy cô cũng như đồng bạn từ trường Đại học Bách khoa, Đại học Quốc gia TPHCM; trong đó chính yếu và quan trọng nhất là sự tận tâm chỉ bảo đến từ thầy PGS TS Hoàng Trang, người trực tiếp hướng dẫn tôi thực hiện luận văn này

Chẳng thể biết được tương lai sẽ ra sao, nhưng quá trình nghiên cứu và thực hiện luận văn này chắc chắn mang lại cho tôi rất nhiều kiến thức cũng như những kinh nghiệm bổ ích để tôi sử dụng trong những bước tiến phía trước

Một lần nữa, xin chân thành cảm ơn.

Trang 5

Tóm tắt luận văn thạc sĩ

Trí tuệ nhân tạo ngày càng được sử dụng rộng rãi trong tất cả các lĩnh vực đời sống, và hiện đang được sử dụng như một nguồn tạo ra các dữ liệu thay thế cho con người, với âm nhạc là một loại dữ liệu nổi bật Các mô hình hiện tại dùng trong tạo ra âm nhạc, GAN cùng LSTM, có những ưu điểm cũng như tồn tại nhiều hạn chế riêng Cụ thể, mô hình GAN có khả năng tập trung vào những đạc trưng toàn thể của dữ liệu, nhưng có những yêu cầu hạn chế về mặt kích thước dữ liệu Ở chiều ngược lại, LSTM có khả năng liên kết các nốt theo chuỗi, nhưng liên kết đó sẽ suy yếu khi kích thước dữ liệu tăng dần lên

Trên cơ sở các nghiên cứu và nhận định trước đó, luận văn tập trung vào ba công việc chính: a) Kết hợp hai mô hình AI phổ biến nhất là GAN và LSTM để cấu thành mô hình GAN-LSTM có khả năng tận dụng ưu điểm của chúng ; b) Thực thi mô hình GAN-LSTM trên phần mềm và phần cứng nhằm đưa ra những nhận định và khả năng liên quan ; và c) sử dụng mô hình GAN-LSTM cho xây dựng dữ liệu dưới dạng bài hát gồm nhiều phần, giữa các phần có sự chuyển điệu hợp lý Để thực hiện các công việc này, nhiều phương pháp đã được đưa ra, bao gồm các phương pháp thu thập dữ liệu, phương pháp xây dựng và tiền xử lý dữ liệu, phương pháp xây dựng và mô phỏng mô hình, và các phương pháp đánh giá định lượng và định tính cũng được đưa ra, qua đó cung cấp cho người đọc những góc nhìn khác nhau về khả năng của mô hình GAN-LSTM

Những kết quả thu được trong quá trình thực hiện luận văn đã chứng minh được tính khả thi của nghiên cứu này cùng những ưu điểm của mô hình trong nghiên cứu, Đồng thời, những kết quả này cũng đưa ra những hạn chế cần khắc phục, cũng như nhiều hướng phát triển cho tương lai

Trang 6

Thesis Abstract

Artificial Intelligence is becoming widely used in every aspects of human life, and is currently implemented as a source of generating data in place of human, which includes the notable music data Music generation models recently, including GAN and LSTM, have their own benefits and drawbacks To be specific, GAN models are able to look into global characteristics of data, while imposing some restrictions on the data sizes On the opposite, LSTM model can create a chain of notes with mutual bonds, although these links may be weakened when the data created becomes larger and larger

Based on the researches conducted in the past and some considerations, this thesis concentrated on three tasks: a) Task for combining two most popular AI music models of GAN and LSTM to form GAN-LSTM model where the advantages of each component model are gained; b) Task for implementing that GAN-LSTM model on both software and hardware to discuss some thoughts and related probabilities; and c) Task for using GAN-LSTM model to create data in form of a song with several parts, between which the transitions are made to be smooth To tackle these task, various methods were adopted, including data collecting methods, data preparation and pre-processing methods, constructing and simulating methods of the models, as well as quantitative and qualitative methods for evaluation, so that readers may look at different aspects of the abilities of GAN-LSTM model

Results collected in the process of conducting this thesis have proved the viability of the research, as well as the beneficial effects of the associated AI model Also, those results make some crucial points of the remaining detrimental effects that are in need of discussion, and promote some gradual developments of the model that can take place in the near future

Trang 7

Lời cam đoan của tác giả

Tôi xin cam đoan luận văn về đề tài “ THIẾT KẾ MÔ HÌNH GAN-LSTM CHO TẠO SINH ÂM NHẠC” là công trình nghiên cứu cá nhân của tôi trong thời gian qua Mọi số liệu sử dụng phân tích trong luận văn và kết quả nghiên cứu là do tôi tự tìm hiểu, phân tích một cách khách quan, trung thực, có nguồn gốc rõ ràng và chưa được công bố dưới bất kỳ hình thức nào Tôi xin chịu hoàn toàn trách nhiệm nếu có sự không trung thực trong thông tin sử dụng trong công trình nghiên cứu này

Trang 8

Mục lục

CHƯƠNG 1: MỞ ĐẦU 1

1.1Lý do chọn đề tài 1

1.2Mục đích, đối tượng và phạm vi nghiên cứu 2

1.3Ý nghĩa khoa học và thực tiễn của đề tài nghiên cứu 3

1.4Bố cục luận văn 3

CHƯƠNG 2: TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU 5

2.1Tình hình nghiên cứu trong và ngoài nước 5

2.2Mục tiêu và nhiệm vụ nghiên cứu 6

CHƯƠNG 3: CƠ SỞ LÝ LUẬN VÀ GIẢ THUYẾT KHOA HỌC 7

3.1Mạng đối nghịch tạo sinh GAN (Generative Adversarial Network) 7

3.1.1Giới thiệu 7

3.1.2Các thành phần 11

3.1.3GAN có điều kiện (Conditioning GAN) 16

3.2Ứng dụng Machine Learning trong âm nhạc 17

3.2.1Cơ bản về âm nhạc 17

3.2.2Tệp MIDI và cách thức lưu trữ âm nhạc trong máy tính 20

3.2.3Long-Short Term Memory (LSTM) 22

3.2.4Cấu trúc bài hát và các mối liên hệ với Machine Learning 27

3.3Mô hình mạng GAN-LSTM cho âm nhạc 27

3.3.1Những vấn đề tồn đọng cụ thể 27

3.3.2Phương pháp 29

CHƯƠNG 4: PHƯƠNG PHÁP NGHIÊN CỨU 34

4.1Phương pháp xây dựng dữ liệu 34

4.2Phương pháp thu thập và tiền xử lý dữ liệu 36

4.3Phương pháp xây dựng mô hình GAN-LSTM 37

4.3.1Xây dựng mô hình học máy trên Python 37

4.3.2Xây dựng mô hình thực thi trên Verilog 42

4.4Phương pháp mô phỏng 46

4.4.1Mô phỏng kiểm chứng khả năng học hỏi của mô hình trên Python 46

4.4.2Mô phỏng chức năng trên phần cứng và synthesis (tổng hợp) 46

Trang 9

4.5Phương pháp đánh giá kết quả 47

4.5.1Đánh giá định lượng 47

4.5.2Đánh giá định tính 49

CHƯƠNG 5: KẾT QUẢ NGHIÊN CỨU VÀ CÁC PHÂN TÍCH LIÊN QUAN 54

5.1Phân tích kết quả theo các đánh giá định lượng 54

5.1.1Phân tích theo tập dữ liệu gốc 54

5.1.2Phân tích theo quá trình huấn luyện 57

5.1.3Phân tích các quãng chuyển Verse-Chorus và điểm kết Chorus 59

5.2Phân tích phiên bản thực thi phần cứng của mô hình 62

5.2.1Phân tích kết quả mô phỏng 62

5.2.2Phân tích về mặt thời gian (Timing) 63

5.3Phân tích kết quả theo các đánh giá định tính 68

5.3.1Khảo sát về mức độ chân thực của âm nhạc 69

5.3.2Khảo sát về tác động cảm xúc của âm nhạc 70

5.3.3Khảo sát về nhận diện các quãng chuyển Verse-Chorus 71

CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 73

6.1Kết luận đề tài 73

6.2Hướng phát triển 73

Danh mục các công trình khoa học 75

Danh mục tài liệu tham khảo 76

Trang 10

Danh mục hình ảnh

Hình 1 Mô hình mạng nơ-ron cơ bản 7

Hình 2 Cấu trúc mạng nơ-ron cơ bản 8

Hình 3 Các loại mạng nơ-ron 9

Hình 4 Quá trình huấn luyện của GAN 10

Hình 5 Cấu trúc lớp dense 11

Hình 6 Đồ thị hàm sigmoid và ReLU 12

Hình 7 Ví dụ về lan truyền ngược của lớp dense 14

Hình 8 Quy trình thực hiện chuẩn hóa batch 16

Hình 9 Mô hình GAN với condition 17

Hình 10 Trường độ các nốt trong âm nhạc 18

Hình 11 Khoảng cách cung và nửa cung giữa các nốt chuẩn 19

Hình 12 Tần số của các nốt nhạc trong âm nhạc 20

Hình 13 Cấu trúc của một mạng LSTM 23

Hình 14 Cấu trúc và hoạt động của LSTM 24

Hình 15 Cơ chế có chú ý và hoạt động với LSTM 26

Hình 16 Cấu trúc mô hình GAN-LSTM 31

Hình 17 Cách thức mô hình nhiều phần của bài hát được tạo nên thông qua khối chuyển điệu 33

Hình 18 Xây dựng chuỗi dữ liệu theo cao độ và tính liên tục 35

Hình 19 Ví dụ về phần Verse của ca khúc Crazy Little Thing Called Love trên hooktheory.com 36

Hình 20 Mô hình GAN tổng hợp 3 quá trình: Verse, kết nối Verse-Chorus và Chorus 38

Hình 21 Thông số các mạng LSTM 39

Hình 22 Thông số mạng nơ-ron cho các generator 40

Hình 23 Thông số mạng nơ-ron cho các discriminator 41

Hình 24 Phương thức chuyển đổi cách tiếp cận trong sử dụng mô hình GAN-LSTM thông qua phần cứng 44

Hình 25 Bảng khảo sát tính chân thực của âm nhạc 50

Hình 26 Bảng khảo sát đánh giá cảm xúc 51

Hình 27 Bảng khảo sát nhận diện quãng chuyển 52

Hình 28 So sánh ma trận chuyển đổi cao độ nốt của tập dữ liệu gốc và tập dữ liệu do LSTM tạo ra 55

Hình 29 So sánh ma trận chuyển đổi trường độ nốt của tập dữ liệu gốc và tập dữ liệu do LSTM tạo ra 56

GAN-Hình 30 Biểu đồ phân bố nốt theo trường độ của tập dữ liệu do GAN-LSTM tạo ra 57

Hình 31Ma trận chuyển đổi cao độ của nốt trong quãng chuyển Verse-Chorus 60

Hình 32 Báo cáo về điều kiện thời gian hold của mô hình phần cứng 65

Hình 33 Báo cáo về điều kiện thời gian setup của mô hình phần cứng 66

Trang 11

Danh mục bảng số liệu

Bảng 1 Bảng so sánh các thông số về API của tập dữ liệu gốc và tập tạo bởi mô hình

GAN-LSTM 54

Bảng 2 Xu hướng thay đổi API trong quá trình huấn luyện 58

Bảng 3 Xu hướng thay đổi của PE trong quá trình huấn luyện 58

Bảng 4 Xu hướng thay đổi của NR trong quá trình huấn luyện 59

Bảng 5 Thông số NR trung bình của các đoạn Verse, Chorus và quãng chuyển Verse-Chorus 60

Bảng 6 Tần suất giá trị của NR trong các mẫu dữ liệu 61

Bảng 7 Đánh giá thông số các nốt cuối cùng của đoạn Chorus 61

Bảng 8 Bảng tính sai số của hai mô hình GAN-LSTM trên phần cứng và trên phần mềm 63

Bảng 9 Bảng so sánh các thông số định lượng của kết quả chọn lọc trên phần cứng so với phần mềm của mô hình GAN-LSTM 63

Bảng 10 Thống kê đối tượng khảo sát theo độ tuổi và nghề nghiệp 68

Bảng 11 Kết quả khảo sát về mức độ chân thực của âm nhạc theo độ tuổi 69

Bảng 12 Kết quả khảo sát về mức độ chân thực của âm nhạc theo nghề nghiệp 70

Bảng 13 Kết quả khảo sát về mức độ tác động cảm xúc của dữ liệu do GAN-LSTM tạo ra 71

Bảng 14 Kết quả khảo sát về nhận diện quãng chuyển Verse-Chorus 71

Trang 12

CHƯƠNG 1: MỞ ĐẦU 1.1 Lý do chọn đề tài

Trí tuệ nhân tạo (gọi tắt là AI) là một trong những chủ đề quan trọng hiện nay trong việc ứng dụng khoa học kĩ thuật vào đời sống Mục đích của trí tuệ nhân tạo là những máy móc có thể tự động hóa với các hành vi thông minh như con người, có khả năng thay thế con người trong một số trường hợp cụ thể

Điểm nổi bật của những máy móc này là khả năng học hỏi và cải thiện dần theo thời gian được huấn luyện Nói cách khác, máy móc được rèn luyện càng nhiều thì khả năng thực hiện hiệu quả công việc được giao cho nó càng cao Từ kết quả đó, chúng sẽ được đưa vào các ứng dụng trong những công việc cụ thể mà không làm giảm hiệu suất

Một trong những ứng dụng đầu tiên và đã được phổ biến rộng rãi của AI đó là khả năng nhận diện và dự đoán Với một tập dữ liệu cụ thể (hình ảnh, âm thanh, …), máy sẽ có khả năng phân loại hay dự đoán xu hướng của những kiểu dữ liệu này Các máy AI với những ứng dụng này thường sẽ dễ kiểm soát độ chính xác bởi đầu ra thường đã được chuẩn hóa (chỉ có đúng hoặc sai, tăng hoặc giảm)

Tuy nhiên, trong những năm gần đây, AI còn được ứng dụng trong việc tạo ra dữ liệu Một máy AI dạng này có thể chuyển tranh vẽ thành ảnh, hay thay đổi các đặc trưng của dữ liệu ảnh Điều đặc biệt của chúng là những dữ liệu mà chúng tạo ra là không có thật trên thực tế, nhưng đem đến cảm giác cho con người chúng ta rằng những dữ liệu này là được con người tạo ra (được người chụp, người vẽ…)

Trên cơ sở những nghiên cứu và phân tích trước đó của tác giả về lĩnh vực này của AI, nghiên cứu trong luận văn này sẽ tập trung vào việc xây dựng một mô hình máy AI, mang tên gọi GAN-LSTM với khả năng tự viết nhạc, trong đó mục tiêu của nó không chỉ là tạo ra những giai điệu phù hợp với cảm âm của con người, mà còn là tạo ra những âm nốt tựa như được sáng tác bởi người thật

Trang 13

1.2 Mục đích, đối tượng và phạm vi nghiên cứu

Mục đích nghiên cứu của luận văn này, như đã đề cập ở trên, hướng đến việc xây dựng một mô hình máy AI tạo sinh âm nhạc được hiện thực hóa dưới dạng phần cứng, trong đó phải đảm bảo được tính chân thực và tính sáng tạo của sản phẩm âm nhạc mà nó tạo ra Qua đó, mô hình trên sẽ cung cấp cho người dùng một phương tiện để rút ngắn khoảng cách về mặt thời gian đưa một sản phẩm âm nhạc từ bước ý tưởng đến bước phát hành sản phẩm thực tế, đồng thời giảm thiểu những ràng buộc về khả năng sáng tác của người nhạc sĩ khi mô hình có thể đưa ra những giá trị mới về mặt giai điệu và tiết tấu

Đối tượng nghiên cứu trong luận văn này, là các bản nhạc được xây dựng từ những nốt nhạc, được thực thi, được sáng tác thông qua một mô hình AI Trong đó, cao độ, trường độ cùng thứ tự sắp xếp các nốt nhạc sẽ được xác định rõ bởi mô hình AI trên Và để hiện thực được điều đó, luận văn này sẽ nghiên cứu các giải thuật liên quan nhằm tập trung vào những khía cạnh khác nhau trong một bản nhạc, qua đó xây dựng mô hình AI một cách hợp lý nhất

Phạm vi nghiên cứu của luận văn này sẽ chịu ràng buộc bởi các đặc trưng của âm nhạc và các giới hạn hiệu hữu của trí tuệ nhân tạo Cụ thể:

- Về loại hình âm nhạc, luận văn này sẽ tập trung vào hai loại hình là pop và soft rock

- Về các đặc tính âm nhạc, luận văn sẽ tập trung vào cao độ, trường độ và liên kết giữa các nốt nhạc trong một bản nhạc

- Về đặc trưng bài hát, luận văn sẽ làm rõ về các phần Verse và Chorus của một bài hát

- Về kết cấu mô hình AI, luận văn sẽ tập trung vào các phương pháp chính là GAN và LSTM, cùng một số giải thuật bổ trợ

- Về xây dựng phần cứng, luận văn sẽ tập trung vào cách thức thực thi, chức năng của mô hình phần cứng và các ràng buộc về mặt timing

Trang 14

1.3 Ý nghĩa khoa học và thực tiễn của đề tài nghiên cứu

Luận văn này mang lại những ý nghĩa khoa học sau:

- Làm sáng tỏ khả năng vận dụng, kết hợp các mô hình AI hiện có trong việc sáng tác âm nhạc, cụ thể là GAN và LSTM, trong đó những khuyết điểm cố hữu của chúng được những ưu điểm bổ khuyết cho nhau

- Chỉ ra những hạn chế, thuận lợi của các mô hình AI trước đó cũng như của chính mô hình trong luận văn, qua đó phân tích các giải pháp cụ thể

- Đưa ra những gợi ý, những hướng phát triển trong tương lai cho các nghiên cứu phía sau, bao gồm việc mở rộng, đào sâu phạm vi nghiên cứu, cũng như việc quan sát, phân tích những khía cạnh khác nhau của âm nhạc

Về mặt thực tiễn, luận văn này mang lại những ý nghĩa sau:

- Mô hình AI tồn tại như một giải pháp cho việc tăng tốc độ sáng tác âm nhạc, khi mà tốc độ sáng tác của nó nhanh hơn con người rất nhiều Phần việc còn lại của người làm nhạc là hiệu chỉnh, thêm phần lời và các hình thức phối khí Việc rút ngắn thời gian đưa ra sản phẩm giúp cho người làm nhạc tăng lượng sản phẩm đưa ra cho công chúng, qua đó giảm thiểu khả năng bị trùng ý tưởng, trùng giai điệu với những sản phẩm cạnh tranh

- Mô hình AI cung cấp các sản phẩm âm nhạc với chất lượng như do con người tạo ra, do đó góp phần làm đa dạng hóa, sáng tạo những nội dung âm nhạc trên thị trường, vốn rất nặng tính cạnh tranh Dù vậy, mô hình này không đòi hỏi chi phí cao, cũng như chất xám của người sử dụng, qua đó giải quyết được những hạn chế về mặt kinh tế, tạo điều kiện cho người sử dụng tập trung vào những mặt khác của quá trình sản xuất âm nhạc

1.4 Bố cục luận văn

Các phần còn lại của bài luận văn này sẽ được trình bày theo bố cục các chương như sau:

Trang 15

- Tổng quan tình hình nghiên cứu: Chương này sẽ trình bày những bối cảnh cùng các nghiên cứu liên quan đến đề tài luận văn, qua đó chỉ ra được lý do, mục tiêu và nhiệm vụ của việc thực hiện nghiên cứu

- Cơ sở lý luận và giả thuyết khoa học: Chương này sẽ giải trình những khái niệm lý thuyết nền tảng liên quan trực tiếp đến nghiên cứu, qua đó cụ thể hóa những vấn đề còn tồn đọng của các công trình nghiên cứu trước đó, nhằm đưa ra phương pháp giải quyết phù hợp

- Phương pháp nghiên cứu: Nội dung chương này tập trung làm rõ các phương pháp liên quan đến nghiên cứu, bao gồm các phương pháp chuẩn bị dữ liệu, xây dựng nghiên cứu cũng như cách thức đánh giá, phân tích kết quả sau khi thực hiện nghiên cứu

- Kết quả nghiên cứu và các phân tích liên quan: Chương này cụ thể các kết quả đo đạc, mô phỏng cùng số liệu của các quá trình nổi bật được thực hiện trong khi nghiên cứu, qua đó có những phân tích, so sánh liên quan nhằm làm nổi bật lên những thành quả có được

- Kết luận và hướng phát triển: Chương cuối có mục đích tóm tắt, đưa ra những kết luận chung nhất của quá trình thực hiện nghiên cứu, làm cơ sở cho việc thực hiện những nghiên cứu trong tương lai

Trang 16

CHƯƠNG 2: TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU

Chương này sẽ trình bày những bối cảnh cùng các nghiên cứu liên quan đến đề tài luận văn, qua đó chỉ ra được các khe hở nghiên cứu, qua đó làm rõ lý do thực hiện nghiên cứu, từ đó đề ra mục tiêu và nhiệm vụ của việc thực hiện nghiên cứu

2.1 Tình hình nghiên cứu trong và ngoài nước

Các máy AI nhằm mục đích tạo ra dữ liệu mới như trình bày ở mục trước thường được gọi rộng rãi là GAN (Generative Adversarial Network), theo tiếng Việt gọi là mạng đối nghịch tạo sinh Thuật ngữ này lần đầu xuất hiện trong buổi hội thảo NIPS tại Barcelona, và được đề xuất bởi Ian Goodfellow của Google Brain [1] Ở đó, GAN được mô tả bằng cấu trúc, cách huấn luyện, đặt nền móng cho các nghiên cứu phía sau

Từ sự kiện này, nhiều nghiên cứu đã được công bố trong việc sử dụng GAN cho nhiều ứng dụng khác nhau[2-5] Ví dụ, P Isola và các cộng sự đã thực hiện một GAN cho việc biến đổi hình ảnh (Image2Image Transalation) với độ chính xác được tối ưu bằng hàm mất mát của riêng họ [6] Tương tự, nhóm của T Wang cũng dùng GAN trong việc tự tạo ra những bộ các câu hỏi và câu trả lời thông qua đọc một đoạn văn bản cho trước [7]

Tuy đã có nhiều nghiên cứu ứng dụng GAN trên thực tế, phần lớn các nghiên cứu tập trung vào dữ liệu hình ảnh [8][9] Ở chiều ngược lại, dữ liệu như văn bản hay âm thanh có tỉ lệ nghiên cứu thấp hơn, do chúng có đặc điểm riêng biệt so với hình ảnh và khó kiểm soát hơn[10] Dù vậy, âm nhạc, một bộ phận của âm thanh, vẫn thu hút được các nhà nghiên cứu với những kết quả đáng nể Chẳng hạn, H Dong đã xây dựng một GAN gọi là MuseGAN với khả năng chơi nhiều nhạc cụ cùng một lúc mà không làm mất đi sự hài hòa [11]

Bên cạnh GAN, Long-Short Term Memory (LSTM) cũng là một loại hình AI được ứng dụng nhiều trong sáng tác âm nhạc [12-14] Trong đó, đặc tính về chuỗi nốt,

Trang 17

cũng như liên kết giữa các nốt là mối quan tâm chính Ví dụ, dự án Magenta của Google cũng đã xây dựng được một Melody RNN với khả năng tạo nhạc theo chuỗi mang phong cách của những nghệ sĩ nổi tiếng [9->15]

Theo hiểu biết của tác giả, các nghiên cứu hiện tại chưa làm rõ được những vấn đề sau Thứ nhất, chưa có nghiên cứu nào đi vào việc kết hợp hai mô hình GAN và LSTM nhằm tận dụng các ưu điểm của chúng và giảm thiểu các bất lợi tương ứng Thứ hai, tồn tại rất ít các nghiên cứu tập trung vào cấu trúc, thành phần của một bài hát, đặc biệt là giai đoạn chuyển điệu giữa các phần trong cùng một bài hát Nhận thấy khe hở này, luận văn này sẽ xây dựng một mô hình AI giải quyết các vấn đề trên

2.2 Mục tiêu và nhiệm vụ nghiên cứu

Đề tài luận văn này sẽ hướng đến những mục tiêu sau:

- Xây dựng và hoàn thiện một mô hình AI kết hợp giữa GAN và LSTM cho việc sáng tạo âm nhạc, trong đó sản phẩm được định hình bởi số lượng các nốt, cùng các cao độ và trường độ tương ứng

- Mô hình được kiểm định về khả năng học trên phần mềm thông qua ngôn ngữ Python Cụ thể, các đánh giá về thời gian huấn luyện và kết quả huấn luyện được tập trung làm rõ

- Bên cạnh đó, mô hình AI sẽ được xây dựng và kiểm định trên phần cứng sử dụng ngôn ngữ mô tả phần cứng (Verilog), mô phỏng bằng phần mềm chuyên dụng (VCS/Questa) Cụ thể, các kiểm định về mặt chức năng và tốc độ của mô hình sẽ được quan tâm

- Âm nhạc do máy tạo ra hướng đến những bài hát với nhiều phần, cụ thể là một Verse và một Chorus, trong đó khoảnh khắc chuyển đổi giữa các phần sẽ được làm cho mượt mà, đồng thời các phần phải thể hiện được âm sắc phù hợp cho người nghe

Trang 18

CHƯƠNG 3: CƠ SỞ LÝ LUẬN VÀ GIẢ THUYẾT KHOA HỌC

Chương này sẽ giải trình những khái niệm lý thuyết nền tảng liên quan trực tiếp đến nghiên cứu, trong đó mô tả hai dạng mô hình chính trong tạo sinh âm nhạc là GAN và LSTM, qua đó cụ thể những vấn đề còn tồn đọng của hai dạng mô hình, qua đó đưa ra phương pháp giải quyết phù hợp

3.1 Mạng đối nghịch tạo sinh GAN (Generative Adversarial Network)

3.1.1 Giới thiệu

Để hiểu rõ GAN, trước hết ta cần làm rõ một mô hình mạng nơ-ron cơ bản Một mạng nơ-ron thường gồm nhiều lớp, mỗi lớp gồm nhiều nút, với các kết nối giữa những nút ở lớp trước với lớp sau [16] như trong hình 1 Mô hình mạng này chính là mô phỏng của não người với các kết nối phúc tạp giữa các nơ-ron, điều giúp thực hiện được các suy nghĩ hay hành động tinh vi

Hình 1 Mô hình mạng nơ-ron cơ bản

Các kết nối giữa các nút trong mạng nơ-ron thường được thông số hóa bởi các weight Nói cách khác, từ một dữ liệu đưa vào mạng nơ-ron, nó sẽ được tính toán bởi

Trang 19

một hàm số (đại diện cho mạng nơ-ron) thông qua các weight, và đưa ra kết quả là dữ liệu ra Điều này được thể hiện trong hình 2, trong đó các weight đóng vai trò quan trọng trong việc định hình dữ liệu đầu ra dựa trên dữ liệu đầu vào Thông qua cập nhật và điều chỉnh các hệ số trên, máy sẽ hướng đến việc tạo dữ liệu ra phù hợp với dữ liệu vào

Hình 2 Cấu trúc mạng nơ-ron cơ bản Cụ thể hơn, máy sẽ trải qua hai quá trình sau:

- Rèn luyện (Training): máy tính sẽ được cung cấp một tập dữ liệu vào có dữ liệu ra đã biết trước (tập này gọi là training set) Dựa vào đầu vào và đầu ra từ training set, máy tính sẽ tự điều chỉnh các weight của chính nó sao cho dữ liệu ra của nó sai lệch so với đầu ra đã biết trước của training set ít nhất có thể Sau quá trình này, máy được coi là đã “học”

- Kiểm tra (Test): máy tính được cung cấp ngõ vào là một tập dữ liệu mới khác với training set(gọi là test set), sau đó tự tính toán ra ngõ ra tương ứng Ngõ ra này sẽ được so sánh, đánh giá với ngõ ra thực tế của test set Nếu kết quả đánh giá không tốt, nghĩa là máy chưa đủ đáp ứng về độ chính xác, cần điều chỉnh lại hoặc cần “học” nhiều hơn; ngược lại, nếu kết quả đánh giá tốt, máy có thể đưa vào ứng dụng

Mạng nơ-ron không giới hạn kích thước hay số chiều của cả dữ liệu vào lẫn dữ liệu ra Một mạng nơ-ron với kích thước dữ liệu vào lớn trong khi dữ liệu ra nhỏ thường là các mạng nơ-ron dùng trong nhận định hay phân loại, ở đó, từ dữ liệu vào, các đặc trưng đáng chú ý được trích xuất ra và chỉ giữ lại những gì quan trọng nhất (dữ liệu ra) để sử dụng Ở chiều ngược lại, mạng nơ-ron có kích thước dữ liệu ra vượt trội

Trang 20

so với dữ liệu vào thường là những mạng nơ-ron cho việc hồi phục hay tạo dữ liệu mới, trong đó, dữ liệu vào thường là các đặc điểm, các yêu cầu vể dữ liệu ra, sau đó chúng sẽ được sử dụng bởi mạng nơ-ron để tạo ra dữ liệu mới Hai loại mạng nơ-ron này được mô tả trong hình 3

Hình 3 Các loại mạng nơ-ron

GAN là mô hình sử dụng cả hai loại mạng ron nêu trên Trong đó, mạng ron có dữ liệu vào lớn được gọi là discriminator, với nhiệm vụ nhận định dữ liệu vào mà nó nhận được là thật hay giả Discriminator trong luận văn này sẽ có nhiệm vụ phán đoán âm thanh mà nó nhận được có hợp lý, có đúng là nhạc thật hay không Ở phía ngược lại sẽ là mạng nơ-ron được gọi là generator, với mục đích tạo ra dữ liệu mới dựa trên những dữ liệu vào ít ỏi Trong luận văn này, generator sẽ tạo ra nhạc chỉ từ các nhiễu (dữ liệu random)

nơ-GAN được mô tả là mô hình dựng nên dựa trên một “cuộc chiến” giữa generator và discriminator Generator sẽ cố gắng tạo ra dữ liệu “như thật” nhằm qua mặt

discriminator và discriminator thì phải cố gắng đoán chính xác rằng dữ liệu nó nhận được là thật hay giả Ở khởi điểm của việc huấn luyện GAN, tất nhiên generator chỉ tạo ra những dữ liệu đầy nhiễu cũng như discriminator chỉ dự đoán một cách ngẫu nhiên

Trang 21

Để tận dụng khả năng học hỏi của cả hai, cần có một quá trình huấn luyện phù hợp, như được thể hiện trong hình 4

Hình 4 Quá trình huấn luyện của GAN Quá trình trên được mô tả như sau:

- Bước 1: Huấn luyện cho discriminator

o Dữ liệu từ generator (dữ liệu máy tạo) được đưa cho discriminator nhận định với nhãn 0 (giả) Sai số giữa dự đoán và thực tế sẽ dùng để cập nhật weight của discriminator

o Dữ liệu thật từ tập dữ liệu (thu thập trước đó) được đưa cho discriminator nhận định với nhãn 1 (thật) Sai số giữa dự đoán và thực tế sẽ dùng để cập nhật weight của discriminator

- Bước 2: Huấn luyện cho generator

o Dữ liệu từ generator (dữ liệu máy tạo) được đưa cho discriminator nhận định với nhãn 1 (thật) Sai số giữa dự đoán và thực tế sẽ dùng để cập nhật

Trang 22

weight của generator Khi này, các weight của discriminator sẽ được giữ cố định, sai số sẽ chỉ được dùng cho cập nhật weight của generator

3.1.2 Các thành phần

3.1.2.1 Lớp dense (Dense layer)

Đây là lớp cơ bản nhất trong một mạng nơ-ron Các kết nối giữa các nút sẽ mang theo một giá trị weight Từng nút sẽ lấy tổng các tích giữa dữ liệu từ lớp trước cùng với weight tương ứng Kết quả tổng sẽ được đưa qua một hàm kích hoạt (sẽ được mô tả ở phần sau) và có thể đưa đến lớp tiếp theo Ví dụ về lớp dense được thể hiện trong hình 5

Hình 5 Cấu trúc lớp dense

Bằng cách thu thập dữ liệu từ tất cả các nút thuộc lớp trước, mỗi nút thuộc lớp sau có thể lấy được thông tin hữu ích từ lớp trước Số nút của hai lớp kế cận có thể khác nhau Trường hợp số nút của lớp sau nhiều hơn lớp trước thường được dùng trong generator (tạo ra dữ liệu lớn hơn) trong khi trường hợp ngược lại thường được dùng trong discrmininator

3.1.2.2 Hàm kích hoạt (Activation function)

Các phép toán như ta đã thấy trong các nút đều là các phép toán tuyến tính Do đó, hàm kích hoạt được thêm vào như một nhân tố phi tuyến Trên thực tế, dữ liệu rất

Trang 23

hiếm khi phân bố tuyến tính, do đó hàm kích hoạt đối với mạng nơ-ron có tác dụng “uốn cong” những “suy nghĩ” tuyến tính, một chiều, làm tăng khả năng học hỏi và thích nghi của mạng nơ-ron

Trong các máy AI thường gặp, hai hàm số sau đây được dùng nhiều nhất cho hàm kích hoạt: hàm sigmoid và hàm ReLU [17] Mô tả của các hàm này được thể hiện trong hình 6 Trong đó:

𝑠𝑖𝑔𝑚𝑜𝑖𝑑(𝑥) = 𝑒

𝑒𝑥+ 1𝑅𝑒𝐿𝑈(𝑥) = {1 𝑖𝑓 𝑥 > 0

0 𝑖𝑓 𝑥 ≤ 0

Hình 6 Đồ thị hàm sigmoid và ReLU

Trong khi hàm sigmoid cố định ngõ ra của nó trong khoảng [0;1] thì hàm ReLU không có giới hạn chặn trên Tuy nhiên, hàm ReLU dễ tính toán hơn rất nhiều so với hàm sigmoid Trong từng trường hợp cụ thể, người ta sẽ lựa chọn loại hàm kích hoạt phù hợp [18]

3.1.2.3 Hàm mất mát (Loss function) và gradient descent

Để đánh giá sai số của mạng nơ-ron, người ta sử dụng nhiều hàm mất mát để đánh giá độ sai lệch giữa ngõ ra thực tế của mạng với ngõ ra mong muốn Có 3 loại hàm mất mát phổ biến: sai số trung bình bình phương (mean squared error), cross-entropy phân loại (categorical cross-entropy) và cross-entropy nhị phân (binary cross-entropy) Trong khi sai số trung bình bình phương dùng nhiều trong các bài toán nhấn

Trang 24

mạnh chênh lệch, các hàm sai số cross-entropy dùng nhiều trong các bài toán phân loại [19] Công thức của các hàm này như sau, với 𝑛 là tổng số đơn vị ngõ ra, 𝑦𝑖 và 𝑝𝑖 là ngõ ra do mạng nơ-ron tương ứng với đơn vị ngõ ra thứ 𝑖:

𝑀𝑒𝑎𝑛 𝑆𝑞𝑢𝑎𝑟𝑒𝑑 𝐸𝑟𝑟𝑜𝑟 = 1

𝑛∑(𝑦𝑖 − 𝑝𝑖)

Gradient descent dựa trên một đặc điểm tự nhiên của hàm số về dấu của đạo hàm Ở đó, dấu của đạo hàm tại một điểm bên phải điểm cực trị sẽ có dấu dương và ngược lại Giải thuật gradient descent dựa vào điều này để tiến dần về điểm cực trị của hàm mất mát, thông qua từng bước nhảy (learning rate) Như vậy, gradient descent thành công hay không phụ thuộc nhiều vào learning rate và điểm khởi tạo Learning rate thấp và điểm khởi tạo ở xa cực tiểu sẽ khiến cho giài thuật lâu hội tụ Ngược lại, learning rate cao có thể dẫn đến trường hợp điểm cần chọn chạy qua chạy lại hai bên của điểm cực tiểu mà không hội tụ được [20]

Quay lại với mạng nơ-ron, dựa trên gradient descent, các weight sẽ như trên được điều chỉnh tăng giảm một lượng phụ thuộc vào tốc độ học và đạo hàm của hàm mất mát theo weight tương ứng:

𝑤 = 𝑤 − 𝜂𝜕𝐿𝑜𝑠𝑠𝜕𝑤

3.1.2.4 Lan truyền ngược (Back-propagation)

Trang 25

Để tính được đạo hàm của hàm mất mát theo từng weight, một quá trình lan truyền ngược đạo hàm từ ngõ ra trở về trước sẽ được thực hiện (back-propagation) Ở đó, đạo hàm của hàm mất mát theo weight của một lớp sẽ phụ thuộc và tính toán được dựa trên các giá trị đạo hàm của lớp phía sau nó Quá trình này có thể được mô tả ví dụ trong hình 7

Hình 7 Ví dụ về lan truyền ngược của lớp dense

Như vậy, quá trình huấn luyện mạng nơ-ron sẽ gồm hai quá trình có chiều ngược nhau Dữ liệu vào được đưa vào mạng nơ-ron để lấy dữ liệu ra, đó là chiều thuận Sai số từ hàm mất mát sẽ được lan truyền đạo hàm theo chiều ngược lại để cập nhật lại giá trị các weight Điều này có nghĩa là nếu cùng dữ liệu vào cũ sẽ cho ra kết quả có sai số thấp hơn, theo nguyên lý của gradient descent

Quá trình lan truyền ngược tính toán dựa nhiều trên đạo hàm, do đó hàm mất mát và hàm kích hoạt cần thuận tiện cho tính đạo hàm Các hàm như đã trình bày ở trên đều có thể dễ dàng tính được đạo hàm, giúp cho quá trình lan truyền ngược diễn ra dễ dàng hơn

3.1.2.5 Chuẩn hóa batch (Batch normalization)

Trong quá trình huấn luyện, ngoài tốc độ học, còn có 2 thông số đáng chú ý khác là batch và epoch Quá trình cập nhật trọng số không nhất thiết phải thực hiện sau mỗi lần xử lý một dữ liệu vào và có thể chờ sau một lượng nhất định mới cập nhật một lần Lượng này được gọi là batch Batch lớn đồng nghĩa với máy phải cập nhật ít hơn,

Trang 26

giảm thời gian huấn luyện, nhưng cũng có thể dẫn đến kết quả kém chính xác hơn do học “quá nhiều một lúc”

Trong khi đó, epoch là số lần máy học qua cùng một tập dữ liệu vào Tăng epoch là một cách để giúp máy học kĩ hơn, tuy nhiên cũng có thể dẫn đến tình trạng máy hiệu chỉnh thông số quá sát với tập dữ liệu trên và thất bại với tập dữ liệu khác (tình trạng này gọi là overfitting) Lựa chọn batch và epoch phù hợp là một quá trình cần hết sức cẩn thận trong quá trình huấn luyện

Ngoài ra, một tình trạng có thể xảy đến với mạng nơ-ron trong quá trình huấn luyện đó là các hệ số trở nên quá lớn (do điều chỉnh quá mức) Hiện tượng này được gọi là exploding gradient Điều này có thể không xảy ra ngay tại đầu quá trình huấn luyện mà có thể xảy ra sau nhiều giờ huấn luyện thành công Quá trình cập nhật weight phụ thuộc vào các lớp kế cận, do đó một bùng nổ đến từ một weight duy nhất cũng có thể làm sụp đổ cả hệ thống

Để tránh trường hợp trên, người ta thường chuẩn hóa khoảng của dữ liệu vào, tuy nhiên, giá trị khởi điểm không tốt của các weight vẫn có thể dẫn đến tình trạng explode gradient Trước nguy cơ đó, chuẩn hóa batch (batch normalization) là một các để khắc phục [21]

Các lớp chuẩn hóa batch thường được đặt ngay sau các lớp dense để chuẩn hóa các ngõ ra của chúng Gọi là chuẩn hóa batch là do quá trình chuẩn hóa sẽ dựa trên dữ liệu nằm trong cùng 1 batch Quá trình chuẩn hóa batch được thể hiện trong hình 8

Trang 27

Hình 8 Quy trình thực hiện chuẩn hóa batch (Nguồn: [22])

Về nguyên lý, mục đích của việc chuẩn hóa batch ngoài nhằm giới hạn khoảng của dữ liệu thì còn đưa chúng về phân phối chuẩn thông qua các giá trị trung bình và phương sai như thể hiện trong hình 8

3.1.3 GAN có điều kiện (Conditioning GAN)

Đôi khi, generator không chỉ mong muốn tạo ra dữ liệu mới chỉ từ nhiễu mà có thể là thông tin đã được định sẵn Thông tin này có thể là yêu cầu của người sử dụng về dữ liệu sẽ được tạo ra, hay là những thông tin từ những lần học trước được lưu giữ lại và coi như thông tin bổ trợ cho lần học tiếp theo Các thông tin này, nếu coi như đầu vào bổ trợ của GAN, được gọi là condition [23]

Conditioning là quá trình thêm condition vào mô hình GAN đã có, sao cho condition có ảnh hưởng đến dữ liệu được tạo ra Quá trình conditioning được mô tả

Trang 28

trong hình 9 Trong đó, condition sẽ được thêm vào ở cả generator và discriminator Nói một cách đơn giản, những condition này (bất kể kích thước) sẽ được trải qua các lớp dense nhằm chuẩn hóa kích thước cho phù hợp với generator hay discriminator, sau đó sẽ được nối liền với các ma trận dữ liệu trong tiến trình xử lý của generator hay discriminator như một thông tin bổ trợ Điều này dẫn đến việc phải sắp xếp, chỉnh sửa lại cấu trúc của generator và discriminator ở các lớp dense nhằm thêm các kết nối mới cho những thông tin này

Hình 9 Mô hình GAN với condition

(Nguồn: network-from-scratch/)

https://machinelearningmastery.com/how-to-develop-a-conditional-generative-adversarial-3.2 Ứng dụng Machine Learning trong âm nhạc

3.2.1 Cơ bản về âm nhạc

Âm nhạc là một bộ môn nghệ thuật sử dụng chất giọng, âm thanh để diễn đạt các cung bậc cảm xúc của con người Trong đó ca từ hay thanh nhạc thể hiện trực tiếp

Trang 29

ý tưởng, cảm xúc, còn âm thanh từ nhạc cụ hay khí nhạc thì trừu tượng hơn, nhưng tác động đến cảm xúc và liên tưởng của thính giả rất mạnh

Trong khi ngôn ngữ là một phạm trù phức tạp ngay cả đối với con người, khí nhạc thường dễ cho các GAN có thể thực thi hơn GAN trong trường hợp này sẽ tạo ra các chuỗi nốt có cao độ và trường độ thích hợp Cái khó là làm cho những nốt này luân chuyển êm ái, chuyển đổi nốt không mang đến khó chịu

Trong âm nhạc, các nốt có thể có độ dài vang lên khác nhau, trong đó người ta quy ước các nốt như trong hình 10 [24]

Hình 10 Trường độ các nốt trong âm nhạc

(Nguồn: 1/gia-tri-truong-do-am-thanh/)

https://fidgetcube.vn/mot-kien-thuc-nhac-ly-can-ban-ap-dung-vao-kalimba-phan-Thực tế không có quy ước về việc một nốt có thể kéo dài chính xác bao lâu (đến từng giây) Tuy nhiên hệ thống quy ước như trên giúp người ta căn chỉnh cho các nốt

Trang 30

diễn ra đồng điệu Dùng nhiều thời gian hơn cho một nốt chuẩn có thể làm bài hát chậm rãi, da diết hơn Điều này tùy thuộc vào người biểu diễn

Bên cạnh trường độ, cao độ được dùng để mô tả độ trầm hay bổng của nốt tương ứng Trong đó 7 nốt chuẩn Đô, Rê, Mi, Fa, Sol, La, Si (C, D, E, F, G, A, B) tạo thành một quãng tám Trong âm nhạc thường thức người ta hay dùng 7 quãng tám trong khoảng 32.7 Hz đến 3951.07Hz như trong hình 13 [25]

Trong 7 tên nốt, khoảng cách cao độ của chúng không đồng đều nhau, có thể là khoảng cách nửa cung hay một cung tròn như trong hình 11 Mỗi cung có thể chia làm hai nửa cung, trong đó các nốt ở giữa này thường được gọi là nốt thăng ♯ (của nốt nửa cung phía trước) hay nốt giáng ♭ (của nốt nửa cung phía sau) Tần số tương ứng của các nốt này được thể hiện trong hình 12

Hình 11 Khoảng cách cung và nửa cung giữa các nốt chuẩn

(Nguồn: https://quizlet.com/510616560/bai-5-cung-va-nua-cung-flash-cards/)

Trang 31

Hình 12 Tần số của các nốt nhạc trong âm nhạc (Nguồn: https://en.wikipedia.org/wiki/Pitch_(music))

3.2.2 Tệp MIDI và cách thức lưu trữ âm nhạc trong máy tính

MIDI (Musical Instrument Digital Interface) là chuẩn công nghiệp về nghi thức giao thông điện tử trong đó xác định rõ các nốt âm nhạc nhằm giúp cho nhạc cụ điện tử và máy tính trao đổi dữ liệu với nhau [26] Một tệp MIDI là một tập tin lưu trữ tiêu chuẩn mà ở đó sẽ bao gồm đầy đủ thông tin về cao độ, trường độ, hợp âm,… của một bản nhạc Do đó, các tệp MIDI thường được dùng để lưu trữ lượng lớn thông tin âm nhạc và dùng cho huấn luyện các mạng nơ-ron về âm nhạc

Một tệp MIDI sẽ gồm hai thành phần cơ bản: Header chunk và Track chunk Trong đó một tệp MIDI chỉ bao gồm một Header chunk duy nhất trong khi có thể bao gồm nhiều Track chunk

Header chunk xuất hiện ở đầu file và có định dạng như sau (dưới dạng mã hex): 4D 54 68 64 00 00 00 06 ff ff nn nn dd dd

Trang 32

Bốn byte đầu tiên là quy định tiêu chuẩn của tệp MIDI, bốn byte kế tiếp thể hiện độ dài của Header chunk và luôn là 6 Hai byte kế tiếp (ff ff) là định dạng của file, bao gồm 3 định dạng sau:

- 0 – Track đơn

- 1 – Nhiều track, đồng bộ - 2 – Nhiều track, bất đồng bộ

Track đơn chỉ bao gồm một track (một loại nhạc cu duy nhất) Định dạng nhiều track có thể bao gồm nhiều track khác nhau (nhiều loại nhạc cụ) Nếu chúng là đồng bộ, các track sẽ bắt đầu cùng lúc, và ngược lại trong trường hợp bất đồng bộ

Hai byte kế tiếp (nn nn) trong Header chunk là số track trong tệp MIDI Hai byte (dd dd) là số lượng của một tick delta-time ứng với mỗi một nốt đen Delta-time là thời gian chờ trước khi một MIDI event được bắt đầu (trong Track chunk)

Ở phía sau của Header chunk là các Track chunk Một Track chunk sẽ có định dạng như sau:

4D 54 72 6B xx xx xx xx Data1 Data2 …

Bốn byte đầu tiên là tiêu chuẩn của Track chunk trong tệp MIDI Bốn byte kế tiếp (xx xx xx xx) là độ dài của track (không bao gồm 8 byte đầu của Track chunk) tính theo byte Phía sau 8 byte này là các MIDI data MIDI data sẽ bao gồm delta-time và MIDI event Mỗi MIDI event trước khi bắt đầu sẽ phải chờ một khoảng delta-time, mà thời gian mỗi tick của delta-time được định nghĩa trong Header chunk Delta-time có mục đích nhằm giảm lãng phí các dữ liệu toàn 0 để chờ giữa các MIDI event Không có ranh giới rõ ràng giữa MIDI event và delta time, thay vì đó người ta sẽ đọc dần từng byte theo thứ tự từ trái sang phải, cho đến khi gặp được một byte có bit đầu tiên (MSB) bằng 0 thì đó là kết thúc của delta-time 7 bit còn lại trong những byte đã đọc nối lại sẽ cho ta delta-time của MIDI event kế tiếp

Trang 33

Các MIDI event có nhiều định dạng khác nhau, với nhiều mã lệnh riêng biệt, từ định nghĩa văn bản, bản quyền, tên nhạc cụ, lời nhạc, khóa nhạc, các nốt,… Do đó, phần này sẽ không tiện trình bày trong luận văn

3.2.3 Long-Short Term Memory (LSTM)

3.2.3.1 Cấu trúc và vận hành

Dữ liệu trong âm nhạc (các nốt) mang nặng tính tuần tự Đặc điểm của nốt phía sau không thể quá chênh lệch với nốt phía trước, về cả cao độ và trường độ Mô hình các mạng nơ-ron mô tả ở phần trước tỏ ra hiệu quả với các dữ liệu mang thông tin không gian như hình ảnh và ngược lại với văn bản hay âm nhạc Do đó, Long Short-Term Memory (LSTM) được đề xuất là một mô hình mạng nơ-ron chuyên dụng cho xử lý thông tin có tính tuần tự [27]

Một mô hình LSTM cơ bản sẽ có cấu trúc như được mô tả ở hình 13 Ở đó, dữ liệu vào được đưa vào mạng LSTM tuần tự theo chuỗi, mỗi lần chỉ có một dữ liệu được xử lý (một timestep) Lớp Embedding là một bảng tra mà ở đó với từng loại dữ liệu vào sẽ được map qua một vector tương ứng trong bảng (Vector này cũng được coi là các weight) Vector trên sẽ được đưa vào LSTM Cell LSTM Cell có thể hiểu như một phần tử ghi nhớ Nó sẽ học những điều mới của dữ liệu đang nhận đồng thời giữ lại những gì hữu ích từ những dữ liệu trước đó Bằng cách đó, LSTM Cell có thể phán đoán đặc điểm của dữ liệu kế tiếp thông qua những dữ liệu đã học hỏi được

Trang 34

Hình 13 Cấu trúc của một mạng LSTM

Cấu trúc của LSTM Cell được thể hiện trong hình 14 Trong đó h được gọi là trang thái ẩn (hidden state) và sẽ là output của LSTM Cell sau từng timestep Bên cạnh đó, LSTM Cell còn bao gồm C là trạng thái cell, có thể được hiểu là niềm tin của LSTM Cell về trạng thái hiện tại của nó Hai loại trạng thái này (C và h) sẽ được thể hiện dưới dạng hai vector cùng kích thước (kích thước này gọi là số unit của LSTM Cell) Trong LSTM Cell sẽ bao gồm các gate (thực chất là các lớp Dense) nhằm trích xuất những thông tin cần giữ trong quá trình luân chuyển dữ liệu

Trang 35

Hình 14 Cấu trúc và hoạt động của LSTM Hoạt động của LSTM Cell được mô tả theo 6 bước:

- Bước 1: Trạng thái ẩn ht-1 của timestep trước đó sẽ được nối với dữ liệu từ lớp embedding layer xt, trở thành vector [ht-1, xt] Vector này sẽ được đưa qua cổng quên (forget), với bản chất là một lớp dense có vector weight là Wf cùng hàm kích hoạt là hàm sigmoid Kết quả của cổng forget sẽ là vector ft có kích thước bằng với ht và Ct Vector ft có ý nghĩa xác định bao nhiêu phần của Ct-1, trạng thái cell trước đó, sẽ được giữ lại

- Bước 2: Vector [ht-1, xt] cũng sẽ được đưa qua cổng input, là một lớp dense có vector weight Wi cùng hàm kích hoạt sigmoid Kết quả của cổng trên là vector it, kích thước bằng với ht và Ct, và mang ý nghĩa xác định bao nhiêu thông tin mới sẽ được thêm vào trong Ct-1

- Bước 3: Vector [ht-1, xt] tiếp tục được đưa qua một lớp dense có vector weight WC và hàm kích hoạt tanh để tạo nên vector 𝐶̃𝑡 bao gồm những thông tin mới mà cell muốn giữ lại Vector này cũng có kích thước bằng với ht và Ct

- Bước 4: ft và Ct-1 sẽ được nhân element-wise với nhau Tương tự, phép nhân element-wise cũng được thực hiện với it và 𝐶̃𝑡 Hai tích này sẽ được công lại Ý

Trang 36

nghĩa của phép tính này là việc quên đi các phần không cần thiết của trạng thái cell cũ và thêm vào những thông tin hữu ích mới Kết quả của bước này sẽ là trạng thái cell mới Ct

- Bước 5: Vector [ht-1, xt] được đưa qua cổng output, là một dense layer có vector weight Wo và hàm kích hoạt sigmoid Kết quả nhận được là vector ot, có kích thước bằng với ht và Ct, với ý nghĩa nhận định bao nhiêu phần của Ct sẽ được trích xuất ra output

- Bước 6: ot sẽ được nhân element-wise với tanh(Ct) (để giữ Ct trong khoảng 1;1]) nhằm tạo thành trạng thái ẩn mới ht

[-Kết quả của LSTM Cell thu được là vector ht Vector này có thể được đưa qua các lớp dense khác để thu về dữ liệu có kích thước mong muốn (thường là trùng với kích thước của dữ liệu vào)

Trong âm nhạc, LSTM thường được dùng để dự đoán đặc điểm của nốt tiếp theo thông qua việc học hỏi những chuỗi nốt phía trước Ứng với từng nốt sẽ có bảng

Embedding cụ thể để đưa vào LSTM Cell

3.2.3.2 Cơ chế có chú ý (Attention mechanism)

LSTM Cell có khả năng “kế thừa cái cũ, phát huy cái mới” trong suốt quá trình học Tuy nhiên, nếu chuỗi dữ liệu vào quá dài, có khả năng những dữ liệu đầu tiên (cũ nhất), có khả năng bị quên dần, mất đi dấu ấn trong quá trình LSTM học đến những dữ liệu phía sau Điều này có thể dần đến việc dự đoán chuỗi dữ liệu không hòa hợp về mặt tổng thể

Do đó, cơ chế có chú ý được đề xuất để khắc phục vấn đề này Thay vì chỉ sử dùng trạng thái ần ht của timestep cuối cùng, cơ chế có chú ý sẽ tạo ra một kết nối với những trạng thái ẩn trước đó, tổng hợp với trạng thái ẩn hiện tại để đưa ra kết quả tốt hơn [28]

Cơ chế này được mô tả trong hình 15 Ở đó, các trạng thái ẩn từ nhiều timestep khác nhau sẽ được đưa vào cơ chế có chú ý, bao gồm những lớp dense và một hàm

Trang 37

softmax (nhằm chuẩn hóa dữ liệu trong khoảng [0;1]) Hoạt động của cơ chế có thể được mô tả thông qua 3 bước:

- Bước 1: Mỗi trạng thái ẩn hj sẽ được đưa qua một lớp dense để tạo thành scalar ej

- Bước 2: Hàm softmax sẽ được áp dụng với các scalar e1,…,en để tạo thành các vector chuẩn hóa α1,…, αn

- Bước 3: Từng trạng thái ẩn hj sẽ được nhân với αj tương ứng Kết quả của các phép nhân trên sẽ được cộng lại và cho ra kết quả cuối cùng c

Hình 15 Cơ chế có chú ý và hoạt động với LSTM

Bằng cách sử dụng cơ chế có chú ý, LSTM có khả năng học được trên những chuỗi dài hơn, vốn phổ biến trong âm nhạc với chuỗi dài các nốt khác nhau

Trang 38

3.2.4 Cấu trúc bài hát và các mối liên hệ với Machine Learning

Một bài hát hiện đại thường bao gồm 6 phần sau: dạo đầu (Intro), mở chuyện (Verse), tiền điệp khúc (Pre-Chorus), điệp khúc (Chorus), dẫn kết (Bridge) và dạo cuối (Outro) Trong đó, mở chuyện và điệp khúc luôn có mặt trong hầu hết các bài hát

Những kiểu cấu trúc bài hát phổ biến có thể kể đến [29]:

- AABA (Verse/Verse/Bridge/Verse): các bản nhạc mang tính êm đềm, không cao trào (Chorus), và thường mang nhiều câu từ lặp lại để kể một câu chuyện dài

- ABABCB (Verse/Chorus/Verse/Chorus/Bridge/Chorus): kiểu nhạc phổ biến nhất, thường được mô tả theo kiểu hát lời 1, lời 2 và kết thúc Phần lớn bài hát hiện nay đi theo cấu trúc này, khi nó có thể lột tả hầu hết đặc điểm nổi bật (lặp lại, cao trào)

- AAA (Verse/Verse/Verse): thường mang âm sắc nhẹ nhàng, dùng trong các câu chuyện dài, chia theo nhiều phân đoạn và mang âm sắc buồn

Trong luận văn này, mô hình GAN sẽ chỉ tập trung giải quyết hai phần của bài hát là Verse và Chorus, cũng như cách chuyển điệu nhịp nhàng giữa chúng Nói cách khác, kết quả của GAN trong luận văn này sẽ là một phần bài hát theo cấu trúc Verse + Chorus Các phần khác có thể được thực hiện trong những nghiên cứu kế tiếp

3.3 Mô hình mạng GAN-LSTM cho âm nhạc

3.3.1 Những vấn đề tồn đọng cụ thể

Phần này xin trình bày những vấn đề còn tồn đọng mà người thực hiện luận văn rút ra trong quá trình thu thập, phân tích các nghiên cứu trước đó Trong đó, hai vấn đề cụ thể nhất sẽ được nêu ra sau đây

Vấn đề đầu tiên cần bàn đến là về tính hợp lý của các đoạn nhạc Tính hợp lý ở đây là nói đến phân bố cao độ cùng trường độ của các nốt trong một đoạn nhạc cụ thể, cũng như các mối liên kết giữa các nốt, các nhóm nốt gần kề nhau

Trang 39

Như đã trình bày ở phần trên, LSTM vốn được xây dựng để tạo ra dữ liệu theo chuỗi Trong đó, để xây dựng nốt (cao độ/trường độ) ở một thời điểm, LSTM sẽ sử dụng những thông tin hữu ích lưu trữ từ một đến một vài nốt của những thời điểm trước đó Cơ chế có chú ý (attention mechanic), khi đó, có tác dụng tăng khả năng liên hệ với những nốt ở xa hơn trên trục thời gian (các nốt cũ hơn), qua đó tăng mức độ tin cậy của nốt được tạo ở thời điểm hiện tại thông qua nhiều liên kết chặt chẽ hơn với các nốt phía trước Trong luận văn này, LSTM được mô tả là mang tính “cục bộ”

LSTM có cho bản thân một số lợi thế rất rõ ràng Thứ nhất, các nốt thường rất ít khi bị “lạc nhịp”, khi chúng liên hệ chặt chẽ thành nhiều nhóm nốt được sắp xếp theo chuỗi Thứ hai, độ dài của chuỗi không bị giới hạn bởi một biên giới cụ thể nào, bởi vì cứ tiếp tục giữ nguyên vận hành của LSTM trong thêm một đơn vị thời gian, một nốt mới sẽ lại được tạo nên, và không bị ràng buộc nào cả

Ở chiều ngược lại, một số hạn chế cũng có thể được chỉ ra ở LSTM Đầu tiên, khi mà chuỗi các nốt bắt đầu tăng lên, các liên kết giữa nốt dần trở nên thiếu ổn định hơn, đặc biệt là những nốt ở xa nhau trên trục thời gian Lấy một ví dụ cụ thể, giả sử nốt ở ban đầu đoạn nhạc mang cao độ ở quãng tám thứ ba, nhưng sau một thời gian mà LSTM vận hành, nốt ở thời điểm hiện tại có thể nằm ở quãng tám thứ năm Đây là điều hiếm khi xảy ra trong một đoạn nhạc thuộc âm nhạc đại chúng, nhưng hoàn toàn có thể xảy đến bởi LSTM không nắm bắt được những liên kết các nốt này, và kết quả này có được là do những quá trình cục bộ tăng dần về cao độ giữa các nốt gần nhau

Một bất lợi khác của LSTM nằm ở chính việc chuỗi nốt nó tạo ra không bị giới hạn Theo thường thức phổ thông, một đoạn nhạc thì sẽ có hồi kết, và nốt ở điểm kết của một đoạn nhạc thường mang tông trầm hơn các nốt còn lai Trong khi đó, LSTM cơ bản là một máy tạo nốt theo chuỗi, không quan tâm đến điểm đầu cũng như điểm cuối của chuỗi Điều này đặt ra một thách thức về thời điểm kết thúc chuỗi của LSTM, cũng như kết thúc bằng nốt hay các nốt cụ thể như thế nào vẫn chưa được làm rõ

Mô hình thứ hai dùng trong tạo nhạc được đề cập đến là GAN GAN là mô hình được xây dựng hiệu quả hơn cho dữ liệu thuộc dạng hình ảnh, vì tính chất của nó tập

Trang 40

trung vào toàn cảnh dữ liệu, ở đó các đặc trưng của dữ liệu được trích xuất từ tệp mẫu và tái xây dựng lại thành dữ liệu hợp lý Nói cách khác, GAN quan tâm đến liên hệ của từng miền, từng khối dữ liệu mang tính toàn thể, thay vì chú ý vào tính liên tục của các điểm dữ liệu kế cận nhau Trong luận văn này, GAN được xem là có tính “toàn thể”

Ứng dụng GAN vào âm nhạc mang một lợi ích rất cụ thể, đó là tăng cường tính liên kết giữa những điểm nốt ở xa nhau, điều mà LSTM chưa làm tốt Tuy nhiên, cách ứng dụng GAN vào âm nhạc cũng gặp phải một số trở ngại Thứ nhất, kích thước của một đoạn nhạc không là một con số cố định, trong khi dữ liệu tạo sinh bởi GAN thì có Thứ hai, vẫn chưa có một phương pháp cụ thể nào (theo hiểu biết của tác giả) nhằm vào việc kết hợp GAN với LSTM trong việc tạo âm nhạc, cũng như phương pháp tận dụng được những lợi thế của từng mô hình cụ thể

Một vấn đề khác mà người thực hiện luận văn tìm được trong quá trình thu thập, phân tích dữ liệu là về các mối liên kết giữa những thành phần trong một bài hát Như đã trình bày, một bài hát bao gồm nhiều phần, và cấu trúc các phần, cách thức sắp xếp chúng cũng không có một tiêu chuẩn cụ thể nào Điều này đặt ra hai thách thức cần giải quyết:

- Cấu trúc bài hát sẽ bao gồm những thành phần nào và sắp xếp chúng làm sao cho hợp lí

- Cách thức làm sao để bài hát chuyển đổi giữa các phần mà không bị mất đi tính tự nhiên của bài hát, hay nói cách khác, làm sao cho các phần trong bài hát được liên kết phù hợp nhất có thể, thể hiện một sự chuyển điệu “mượt mà”

3.3.2 Phương pháp

Sau khi phân tích LSTM và GAN, tác giả nhận thấy có những ưu điểm cũng như bất lợi của những mô hình này, đơn giản là vì chúng tập trung vào những khía cạnh khác nhau của dữ liệu Dựa trên cơ sở đó, luận văn này trình bày mô hình GAN-LSTM, trong đó các ưu điểm của GAN được tận dụng để bổ khuyết cho LSTM và ngược lại

Ngày đăng: 31/07/2024, 09:17

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

TÀI LIỆU LIÊN QUAN