Audio Decomposition – mã nguồn mở tách nhạc thành các nhạc cụ cấu thành
(matthew-bird.com)-
Tổng quan dự án
- Dự án này nhằm mục tiêu tạo ra một chương trình chuyển nhạc thành bản nhạc.
- Đây là một dự án mã nguồn mở tách âm nhạc thành các nhạc cụ cấu thành mà không sử dụng thư viện tách nhạc cụ bên ngoài.
- Nhu cầu cá nhân và sự thiếu vắng của một thuật toán mã nguồn mở đơn giản là động lực của dự án.
-
Quá trình chuẩn bị
- Dữ liệu nhạc cụ được lấy từ cơ sở dữ liệu của University of Iowa Electronic Music Studios.
- Từ dữ liệu này, tác giả thu được biến đổi Fourier của toàn bộ dạng sóng và đường bao của dạng sóng.
-
Nguyên lý hoạt động
- Dạng sóng âm thanh của nhạc cụ chủ yếu được đặc trưng bằng biến đổi Fourier và đường bao.
- Qua đó có thể xác định nhạc cụ nào đang chơi nốt nào.
-
Biến đổi Fourier
- Biến đổi Fourier của tệp nhạc được thực hiện mỗi 0,1 giây để tạo ra phổ kế.
- Cộng các biến đổi Fourier đã lưu của từng nhạc cụ để tái tạo biến đổi Fourier của cửa sổ 0,1 giây.
- Biên độ của từng nhạc cụ được tìm thông qua đạo hàm riêng theo tần số của hàm chi phí MSE.
-
Đường bao
- Đường bao là đường biên trên của dạng sóng, và cần một phương pháp bền vững với nhiễu cũng như một số loại dạng sóng nhất định.
- Đường bao được lấy bằng cách chia dạng sóng thành các khối nhỏ và lấy giá trị lớn nhất của mỗi khối.
- Đường bao được phân tích bằng cách chia thành attack, sustain và release.
- Dạng sóng của nhạc cụ có thể có suy giảm tĩnh hoặc động, và để phân biệt điều này, tác giả phân tích hệ số suy giảm và tốc độ thay đổi.
-
Các loại dạng sóng khác nhau
- Để xử lý tệp nhạc, bộ lọc thông dải được áp dụng cho tần số của từng nốt.
- Với mỗi nhạc cụ, điểm bắt đầu và kết thúc của từng nốt được tìm bằng tương quan chéo của attack và release, sau đó tính MSE để xác định chi phí.
- Biên độ cuối cùng được tính bằng cách nhân biên độ tìm được ở bước biến đổi Fourier với nghịch đảo của chi phí.
-
Kết quả và hiển thị
- Bản nhạc được hiển thị bằng biểu đồ phân tán của matplotlib.
- Ban đầu tác giả định tái tạo âm thanh từ biên độ, nhưng do phát sinh nhiều vấn đề nên đã từ bỏ.
- Công cụ này hữu ích cho việc tái dựng bản nhạc, đặc biệt giúp ích nếu bạn gặp khó khăn trong việc tìm cao độ hoặc hợp âm.
1 bình luận
Ý kiến trên Hacker News