0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Khám Phá MuseMorphose: Mô Hình Tạo Nhạc Tự Động Dựa Trên Trí Tuệ Nhân Tạo

Đăng vào 3 ngày trước

• 6 phút đọc

Giới Thiệu

Trong bài viết trước, tôi đã trình bày dự án của mình, sử dụng trí tuệ nhân tạo để tự động tạo ra âm nhạc. Cụ thể, mô hình của tôi sử dụng kiến trúc Transformer kết hợp với VAE, tận dụng khả năng tạo ra các điểm dữ liệu mới trong không gian ẩn. Trong bài viết này, tôi sẽ đi sâu vào mô hình mà tôi đã chọn cho dự án.

Trước khi bắt đầu quá trình phát triển, có hai yếu tố cần xem xét để chọn một mô hình phù hợp: phương pháp mà mô hình sử dụng để học hỏi và cách thức dữ liệu được đánh giá và xử lý. Ngoài ra, vì một trong những mục tiêu của dự án là cho phép người dùng tương tác với các đặc điểm của bài hát trong quá trình tạo, tôi phải chọn những khung hoặc phương pháp hỗ trợ khả năng đó. May mắn thay, tôi đã tìm thấy MuseMorphose, một khuôn mẫu cho phép can thiệp của con người không chỉ trong quá trình sản xuất mà còn giới thiệu các kỹ thuật truy xuất thông tin theo đoạn từ các chuỗi dài.

Đại Diện Âm Nhạc

Trước khi đi sâu vào mô hình, hãy để tôi bàn về REMI, một phương pháp có nhiều tính năng hơn so với đại diện MIDI gốc và giống cách mà con người đọc bản nhạc hơn.

REMI là viết tắt của revamped MIDI. Khi tạo âm nhạc, con người thường xếp chồng các mẫu lặp lại và nhấn mạnh lên một khung mét được mô tả bằng các nốt phụ, nốt chính và thanh âm. Tuy nhiên, định dạng giống MIDI có thể chứa các phiên bản ngầm của các cấu trúc được thể hiện trên các bản nhạc. Do đó, REMI ra đời để khai thác tri thức âm nhạc của con người cho các mô hình dựa trên Transformer.

REMI hiển thị một nốt nhạc rất khác so với MIDI gốc. Khác với MIDI, sử dụng cặp Note-On và Note-Off để hiển thị nốt nhạc và bật hoặc tắt nốt liên quan, REMI sử dụng Note-On, Note-Velocity và Note-Duration như một bộ ba đặc tính để hiển thị nốt nhạc trong quá trình phát. Thêm vào đó, thông tin về Tempo và Hợp âm cung cấp cho người dùng cái nhìn tốt hơn về dữ liệu và làm cho phần xử lý dữ liệu trước khả thi. Tương tự như từ trong một văn bản, Tọa độ và Thanh có mối quan hệ tương tự: Tọa độ xác định giá trị nốt trong tập hợp, trong khi sự kiện Thanh báo hiệu sự bắt đầu của thanh.

MuseMorphose

Trước khi đi sâu vào kiến trúc, hãy để tôi trình bày ngắn gọn về các kỹ thuật chú ý mà các tác giả của MuseMorphose tạo ra, cho phép trích xuất thông tin từ một chuỗi để cải thiện các điều kiện cấp độ đoạn.

Có thể hiểu điều kiện cấp độ đoạn như sau: cho một đoạn dài K có thể được chia nhỏ thành các đoạn không chồng chéo, các đoạn nhỏ này được gọi là các đoạn; điều kiện cấp độ đoạn xảy ra khi chúng ta thêm các điều kiện cho những đoạn này, điều này có thể được mô tả bằng công thức:

Các cơ chế chú ý bao gồm:

  • Chú ý trước: Các nhúng đoạn dự án đầu vào trước khi vào các lớp chú ý tự.
  • Chú ý trong: Không gian lớp chú ý tự và không gian nhúng đoạn được chiếu. Đầu vào của các lớp tiếp theo được hình thành bằng cách cộng các kết quả vào các lớp chú ý tự.
  • Chú ý sau: Các nhúng đoạn không tương tác với các lớp chú ý tự trong chú ý sau. Chúng được cộng thêm vào đầu ra chú ý cuối cùng.

Kết quả thực nghiệm cho thấy chú ý trong đạt được hiệu suất tốt nhất.

Kết hợp cơ chế chú ý trong với VAE và thiết kế Transformer. Kiến trúc MuseMorphose bao gồm một không gian ẩn được điều chỉnh KL divergence để đại diện cho các thanh nhạc giữa một trình mã hóa Transformer tiêu chuẩn hoạt động ở cấp độ thanh và một trình giải mã Transformer tiêu chuẩn nhận các điều kiện cấp độ đoạn thông qua cơ chế chú ý trong.

Đầu vào của trình mã hóa là một tập hợp các thanh X1, X2, …, Xn, sẽ được nạp vào trình mã hóa song song. Trong khi đó, trình giải mã xem xét toàn bộ đoạn cùng một lúc. Hơn nữa, các thuộc tính cấp độ thanh, do chú ý trong, được chuyển đổi thành các vector nhúng trước khi truy cập vào trình giải mã. Sau đây là mô tả các hoạt động diễn ra bên trong MuseMorphose:

Khung VAE sẽ nhận đầu ra từ trình mã hóa, và phép toán của nó sẽ được gửi vào trình giải mã thông qua phương pháp chú ý trong. Nói cách khác, biểu diễn ngữ cảnh của thanh được xử lý như đầu ra chú ý của trình mã hóa. Sau đó, nó sẽ được chiếu bằng hai trọng số có thể học riêng biệt, Wµ và Wσ, đến các vector trung bình và độ lệch chuẩn (std).

Sau đó, các tác giả lấy mẫu điều kiện ẩn để được gửi đến trình giải mã theo phân bố chuẩn.

Tôi thường đề cập đến các thuộc tính âm nhạc, cường độ nhịp điệu và đa âm, những điều mà ngay cả những người không có nhiều kinh nghiệm âm nhạc cũng có thể dễ dàng hiểu. Trong khi đó, chúng đóng một vai trò quan trọng trong việc xác định cảm xúc âm nhạc. Một cấu trúc âm nhạc được gọi là "đa âm" bao gồm hai hoặc nhiều giọng điệu âm nhạc riêng biệt phát cùng nhau. "Cường độ nhịp điệu" đề cập đến cách mà một nhịp được cảm nhận là mạnh hay yếu. Nó thường được cho là cảm thấy "nặng" hoặc "nhẹ".

Kiến trúc được đề xuất được đào tạo với mục tiêu β-VAE và freebits. Nhiệm vụ chính của nó là giảm mục tiêu mô hình, được mô tả như sau:

Trong phần sau, NLL tái cấu trúc sẽ được sử dụng để chỉ thuật ngữ đầu tiên, mà là log-thập phân âm điều kiện (NLL) cho trình giải mã tạo ra đầu vào X cho các ràng buộc c1, c2, …, cK. Yếu tố thứ hai là sự khác biệt giữa các phân phối hậu nghiệm của zK được tính toán bởi trình mã hóa và phân phối trước đó.

Các thử nghiệm đã chỉ ra rằng, mô hình MuseMorphose, dựa trên Transformers và cơ chế điều kiện chú ý trong, vượt trội hơn cả các điểm chuẩn và đáp ứng tất cả các yêu cầu trong nhiệm vụ tạo nhạc có thể kiểm soát - đặc biệt, nó đạt được độ trung thực cao, kiểm soát thuộc tính độc lập mạnh mẽ, độ thông suốt ở cấp độ trình tự tốt và sự đa dạng đủ, tất cả cùng một lúc.

Kết Luận

MuseMorphose sử dụng các yếu tố điều khiển tinh chỉnh để đạt được hiệu suất cao trong các nhiệm vụ tạo nhạc. Dựa trên kinh nghiệm cá nhân của tôi, các tác giả đã mô tả mô hình này là rất dễ hiểu. Mặc dù mô hình này tập trung nặng nề vào các phần piano, nhưng những giai điệu được tạo ra đều rất thú vị để nghe.


Cảm ơn bạn đã đọc bài viết này; tôi hy vọng nó đã bổ sung cho ngân hàng kiến thức của bạn! Trước khi bạn rời đi:

👉 Hãy nhấn nút thích và theo dõi tôi. Đó sẽ là động lực lớn cho tôi.

👉 Theo dõi tôi: Linkedin | Github
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào