Notebook Python cho nền tảng xử lý âm nhạc
(audiolabs-erlangen.de)- FMP notebooks là tài liệu giáo dục dựa trên Jupyter để học và giảng dạy Fundamentals of Music Processing với trọng tâm là âm thanh
- Dựa trên các kịch bản ứng dụng Music Information Retrieval (MIR), tài liệu kết nối lý thuyết, công thức, hình minh họa, ví dụ âm thanh và ví dụ mã Python thành một luồng thống nhất
- Bản HTML tĩnh có thể xem ngay mà không cần cài đặt, nhưng để chạy mã cần tải notebook và dữ liệu, đồng thời thiết lập môi trường Jupyter server
- Phiên bản hiện tại là 1.2.6; nội dung và hình minh họa được cung cấp theo CC BY-NC-SA 4.0, còn gói Python
libfmptheo giấy phép MIT - Nội dung đi theo 8 chương của giáo trình, bao quát từ biểu diễn âm nhạc, phân tích Fourier, đồng bộ hóa, phân tích cấu trúc, nhận dạng hợp âm, theo dõi tempo và beat, tìm kiếm âm thanh, đến phân rã âm thanh
Mục đích của FMP notebooks
- FMP notebooks là bộ tài liệu giáo dục dành cho việc học và giảng dạy Fundamentals of Music Processing
- Tập trung vào miền âm thanh, dùng các chủ đề quen thuộc của Music Information Retrieval (MIR) làm kịch bản ứng dụng
- Tích hợp các yếu tố sau trong một framework dựa trên Jupyter notebook
- Giới thiệu các kịch bản MIR
- Ví dụ bằng hình ảnh và âm thanh
- Khái niệm kỹ thuật và chi tiết toán học
- Ví dụ mã Python cho thấy cách triển khai lý thuyết
- Sinh viên có thể học lý thuyết cùng thực hành, giảng viên có thể dùng làm tài liệu bài giảng, còn nhà nghiên cứu có thể tham khảo các triển khai chuẩn cho tác vụ MIR
Cách đọc và chạy
- Nếu chỉ cần xem tĩnh, có thể dùng ngay bản HTML đã xuất mà không cần cài đặt
- Có thể truy cập phần giải thích, hình ảnh và ví dụ âm thanh theo các liên kết HTML
- Để chạy các ô mã Python, cần thực hiện các bước sau
- Tải notebook và dữ liệu
- Tạo môi trường thực thi
- Khởi động Jupyter server
- Dùng liên kết IPYNB trong phiên Jupyter
- Quy trình chạy cụ thể được tóm tắt trong Get Started
Phiên bản và giấy phép
- FMP notebooks được cập nhật liên tục; phiên bản hiện tại là 1.2.6
- Văn bản và hình minh họa trong notebook được phân phối theo Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License
- Gói Python
libfmpdùng giấy phép MIT và được cung cấp trên GitHub - Tài liệu âm thanh áp dụng các giấy phép gốc tương ứng
- Trang web có chứa một phần văn bản và hình minh họa từ cuốn sách Fundamentals of Music Processing
Cấu trúc notebook
- FMP notebooks được tổ chức theo 8 chương của giáo trình
-
Basics
- Bao quát cách bắt đầu, Jupyter framework, Anaconda, đa phương tiện, lập trình Python, trực quan hóa, âm thanh, Numba, chú thích,
libfmpvà tài nguyên MIR
- Bao quát cách bắt đầu, Jupyter framework, Anaconda, đa phương tiện, lập trình Python, trực quan hóa, âm thanh, Numba, chú thích,
-
Music Representations
- Bao quát ký hiệu âm nhạc, MIDI, tín hiệu âm thanh, waveform, pitch, loudness và timbre
-
Fourier Analysis of Signals
- Bao quát tín hiệu rời rạc và analog, sóng sin, hàm mũ, biến đổi Fourier, biểu diễn Fourier, DFT, FFT và STFT
-
Music Synchronization
- Bao quát đặc trưng chroma, lập trình động, dynamic time warping (DTW), căn chỉnh và giao diện người dùng
-
Music Structure Analysis
- Bao quát ma trận tương đồng, lặp lại, thumbnail, tính đồng nhất, novelty, đánh giá, precision, recall, F-measure, trực quan hóa và scape plot
-
Chord Recognition
- Bao quát hòa âm, nhạc lý, hợp âm, thang âm, template, hidden Markov model (HMM) và đánh giá
-
Tempo and Beat Tracking
- Bao quát onset, novelty, tempo, tempogram, beat, periodicity, phân tích Fourier và tự tương quan
-
Content-Based Audio Retrieval
- Bao quát nhận dạng, fingerprint, khớp âm thanh, nhận dạng phiên bản và cover song
-
Musically Informed Audio Decomposition
- Bao quát tách harmonic/percussive, tái tạo tín hiệu, instantaneous frequency, fundamental frequency (F0), trajectory và nonnegative matrix factorization (NMF)
Tài liệu tham khảo và gói phần mềm
- Khi sử dụng tài liệu, nên trích dẫn cuốn sách Fundamentals of Music Processing – Using Python and Jupyter Notebooks
- Các tài liệu tham khảo liên quan như sau
- Meinard Müller, Fundamentals of Music Processing – Using Python and Jupyter Notebooks, 2nd edition, Springer Verlag, 2021
- Meinard Müller and Frank Zalkow, FMP Notebooks: Educational Material for Teaching and Learning Fundamentals of Music Processing, ISMIR 2019
- Meinard Müller and Frank Zalkow, libfmp: A Python Package for Fundamentals of Music Processing, JOSS 2021
- Meinard Müller, An Educational Guide Through the FMP Notebooks for Teaching and Learning Fundamentals of Music Processing, Signals 2021
- Một số ví dụ mã chịu ảnh hưởng từ các bộ sưu tập mã khác, đặc biệt có liên quan đến LibROSA, Notes on Music Information Retrieval và khóa học Fundamentals of Music Processing
1 bình luận
Các bình luận trên Hacker News
"Raspberry Pi for Dummies" có một chương nói về SonicPi và PyGame
SonicPi là một môi trường live coding dành cho sáng tác nhạc và giáo dục; theo tôi hiểu thì nó tương tự ChucK
PyGame dường như có
pygame.mixerdựa trên SDL mixerGame engine Godot hỗ trợ hiệu ứng âm thanh: https://docs.godotengine.org/en/stable/tutorials/audio/audio...
BespokeSynth có mô-đun
"script"cho phép dùng Python để tổng hợp nốt và hợp âm, cũng như biến đổi luồng âm thanh: https://github.com/BespokeSynth/BespokeSynth/blob/main/resou... ( https://github.com/BespokeSynth/BespokeSynth/blob/main/bespo... )Các notebook AllenDowney/ThinkDSP tham khảo NumPy, freesound, v.v.: https://github.com/AllenDowney/ThinkDSP
Nó giúp tôi rất nhiều trong việc xây dựng mô hình tư duy về xử lý âm thanh, và kho này cũng có nhiều tài liệu hay: https://github.com/BillyDM/Awesome-Audio-DSP
Dù tập trung vào âm nhạc, nó cũng rất liên quan đến các loại âm thanh khác như giọng nói hoặc âm thanh môi trường
Ngoài điểm đó ra thì ổn