|
1 | 1 | # AudioSignalProcessingForML
|
2 |
| -Code and slides of my YouTube series called "Audio Signal Proessing for Machine Learning" |
| 2 | + |
| 3 | +Code and slides of my YouTube series called "[Audio Signal Proessing for Machine Learning](https://www.youtube.com/playlist?list=PL-wATfeyAMNqIee7cH3q1bh4QJFAaeNv0)" |
| 4 | + |
| 5 | +This repository is a comprehensive collection of resources, code, and explanations for understanding and implementing audio signal processing techniques, with a focus on applications in machine learning. It serves as a learning guide, starting from the fundamentals of sound and waveforms and progressing to advanced feature extraction methods. |
| 6 | + |
| 7 | +## Course Structure |
| 8 | + |
| 9 | +### Foundational Concepts |
| 10 | + |
| 11 | +1. **Overview:** _[Video][1yt] | [Slides][1sl]_ |
| 12 | +2. **Sound and waveforms:** _[Video][2yt] | [Slides][2sl]_ |
| 13 | +3. **Intensity, loudness, and timbre:** _[Video][3yt] | [Slides][3sl] | [Notebook][3nb]_ |
| 14 | +4. **Understanding audio signals:** _[Video][4yt] | [Slides][4sl]_ |
| 15 | + |
| 16 | +--- |
| 17 | + |
| 18 | +### Feature Extraction Theory |
| 19 | + |
| 20 | +5. **Types of audio features for ML:** _[Video][5yt] | [Slides][5sl]_ |
| 21 | +6. **How to extract audio features:** _[Video][6yt] | [Slides][6sl]_ |
| 22 | +7. **Time-domain audio features:** _[Video][7yt] | [Slides][7sl]_ |
| 23 | + |
| 24 | +--- |
| 25 | + |
| 26 | +### Time-Domain Implementation |
| 27 | + |
| 28 | +8. **Implementing the amplitude envelope:** _[Video][8yt] | [Notebook][8nb]_ |
| 29 | +9. **RMS energy and zero-crossing rate:** _[Video][9yt] | [Notebook][9nb]_ |
| 30 | + |
| 31 | +--- |
| 32 | + |
| 33 | +### Frequency-Domain Concepts |
| 34 | + |
| 35 | +10. **Fourier Transform: The Intuition:** _[Video][10yt] | [Slides][10sl]_ |
| 36 | +11. **Complex numbers for audio signal processing:** _[Video][11yt] | [Slides][11sl]_ |
| 37 | +12. **Defining the Fourier transform using complex numbers:** _[Video][12yt] | [Slides][12sl] | [Notebook][12nb]_ |
| 38 | +13. **Discrete Fourier Transform:** _[Video][13yt] | [Slides][13sl]_ |
| 39 | + |
| 40 | +--- |
| 41 | + |
| 42 | +### Frequency-Domain Implementation |
| 43 | + |
| 44 | +14. **Extracting the Discrete Fourier Transform:** _[Video][14yt] | [Notebook][14nb]_ |
| 45 | +15. **Short-Time Fourier Transform explained easily:** _[Video][15yt] | [Slides][15sl]_ |
| 46 | +16. **Extracting Spectrograms from Audio with Python:** _[Video][16yt] | [Notebook][16nb]_ |
| 47 | +17. **Mel Spectrogram Explained Easily:** _[Video][17yt] | [Slides][17sl]_ |
| 48 | +18. **Extracting Mel Spectrograms with Python:** _[Video][18yt] | [Notebook][18nb]_ |
| 49 | +19. **MFCCs Explained Easily:** _[Video][19yt] | [Slides][19sl]_ |
| 50 | +20. **Extracting MFCCs with Python:** _[Video][20yt] | [Notebook][20nb]_ |
| 51 | +21. **Frequency-Domain Audio Features:** _[Video][21yt] | [Slides][21sl]_ |
| 52 | +22. **Implementing Band Energy Ratio from Scratch with Python:** _[Video][22yt] | [Notebook][22nb]_ |
| 53 | +23. **Spectral centroid and bandwidth:** _[Video][23yt] | [Notebook][23nb]_ |
| 54 | + |
| 55 | +--- |
| 56 | + |
| 57 | +### Audio examples |
| 58 | + |
| 59 | +* [**`audio_resources/`**](<audio_resources/>): A collection of .wav files used for the examples in the notebooks. |
| 60 | + |
| 61 | +<!-- Reference links for every chapter: |
| 62 | +YouTube videos (#yt), PDF-file slides (#sl) and Jupyter Notebooks (#nb) --> |
| 63 | +[1yt]: https://www.youtube.com/watch?v=iCwMQJnKk2c |
| 64 | +[1sl]: <1- Overview/Audio Signal Processing for Machine Learning.pdf> |
| 65 | + |
| 66 | +[2yt]: https://www.youtube.com/watch?v=bnHHVo3j124 |
| 67 | +[2sl]: <2- Sound and waveforms/2- Sound and waveforms.pdf> |
| 68 | + |
| 69 | +[3yt]: https://www.youtube.com/watch?v=Jkoysm1fHUw |
| 70 | +[3sl]: <3- Intensity, loudness, and timbre/Intensity, loudness, and timbre.pdf> |
| 71 | +[3nb]: <3- Intensity, loudness, and timbre/intensity_and_timbre.ipynb> |
| 72 | + |
| 73 | +[4yt]: https://www.youtube.com/watch?v=daB9naGBVv4 |
| 74 | +[4sl]: <4- Understanding audio signals/Understanding audio signals.pdf> |
| 75 | + |
| 76 | +[5yt]: https://www.youtube.com/watch?v=ZZ9u1vUtcIA |
| 77 | +[5sl]: <5- Types of audio features for ML/Types of Audio Features for ML.pdf> |
| 78 | + |
| 79 | +[6yt]: https://www.youtube.com/watch?v=8A-W1xk7qs8 |
| 80 | +[6sl]: <6- How to extract audio features/How to extract audio features.pdf> |
| 81 | + |
| 82 | +[7yt]: https://www.youtube.com/watch?v=SRrQ_v-OOSg |
| 83 | +[7sl]: <7- Time-domain audio features/Time-domain audio features.pdf> |
| 84 | + |
| 85 | +[8yt]: https://www.youtube.com/watch?v=rlypsap6Wow |
| 86 | +[8nb]: <8- Implementing the amplitude envelope/Implementing the amplitude envelope.ipynb> |
| 87 | + |
| 88 | +[9yt]: https://www.youtube.com/watch?v=EycaSbIRx-0 |
| 89 | +[9nb]: <9- RMS energy and zero-crossing rate/RMS Energy and Zero-Crossing Rate.ipynb> |
| 90 | + |
| 91 | +[10yt]: https://www.youtube.com/watch?v=XQ45IgG6rJ4 |
| 92 | +[10sl]: <10 - Fourier Transform: The Intuition/Demystifying the Fourier Transform The Intuition.pdf> |
| 93 | + |
| 94 | +[11yt]: https://www.youtube.com/watch?v=DgF4m0AWCgA |
| 95 | +[11sl]: <11 - Complex numbers for audio signal processing/Complex numbers.pdf> |
| 96 | + |
| 97 | +[12yt]: https://www.youtube.com/watch?v=KxRmbtJWUzI |
| 98 | +[12sl]: <12- Defining the Fourier transform using complex numbers/Defining the Fourier Transform Using Complex Numbers.pdf> |
| 99 | +[12nb]: <12- Defining the Fourier transform using complex numbers/Defining the Fourier Transform Using Complex Numbers.ipynb> |
| 100 | + |
| 101 | +[13yt]: https://www.youtube.com/watch?v=ZUi_jdOyxIQ |
| 102 | +[13sl]: <13- Discrete Fourier Transform/Discrete Fourier Transform.pdf> |
| 103 | + |
| 104 | +[14yt]: https://www.youtube.com/watch?v=R-5uxKTRjzM |
| 105 | +[14nb]: <14- Extracting the Discrete Fourier Transform/Visualising the Power Spectrum.ipynb> |
| 106 | + |
| 107 | +[15yt]: https://www.youtube.com/watch?v=-Yxj3yfvY-4 |
| 108 | +[15sl]: <15 - Short-Time Fourier Transform explained easily/Short-Time Fourier Transform Explained Easily.pdf> |
| 109 | + |
| 110 | +[16yt]: https://www.youtube.com/watch?v=3gzI4Z2OFgY |
| 111 | +[16nb]: <16 - Extracting Spectrograms from Audio with Python/Extracting Spectrograms from Audio with Python.ipynb> |
| 112 | + |
| 113 | +[17yt]: https://www.youtube.com/watch?v=9GHCiiDLHQ4 |
| 114 | +[17sl]: <17 - Mel Spectrogram Explained Easily/Mel Spectrograms Explained Easily.pdf> |
| 115 | + |
| 116 | +[18yt]: https://www.youtube.com/watch?v=TdnVE5m3o_0 |
| 117 | +[18nb]: <18 - Extracting Mel Spectrograms with Python/Extracting Mel Spectrograms.ipynb> |
| 118 | + |
| 119 | +[19yt]: https://www.youtube.com/watch?v=4_SH2nfbQZ8 |
| 120 | +[19sl]: <19- MFCCs Explained Easily/Mel-Frequency Cepstral Coefficients Explained Easily.pdf> |
| 121 | + |
| 122 | +[20yt]: https://www.youtube.com/watch?v=WJI-17MNpdE |
| 123 | +[20nb]: <20- Extracting MFCCs with Python/Extracting MFCCs.ipynb> |
| 124 | + |
| 125 | +[21yt]: https://www.youtube.com/watch?v=3-bjAoAxQ9o |
| 126 | +[21sl]: <21 - Frequency-Domain Audio Features/Frequency-domain audio features.pdf> |
| 127 | + |
| 128 | +[22yt]: https://www.youtube.com/watch?v=8UJ8ZDR7yUs |
| 129 | +[22nb]: <22 - Implementing Band Energy Ratio from Scratch with Python/Implementing band energy ratio from scratch.ipynb> |
| 130 | + |
| 131 | +[23yt]: https://www.youtube.com/watch?v=j6NTatoi928 |
| 132 | +[23nb]: <23- Spectral centroid and bandwidth/Spectral centroid and bandwidth.ipynb> |
0 commit comments