{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"![Screenshot_2021-01-30%20Rainforest%20Connection%20Species%20Audio%20Detection%20Kaggle.png](attachment:Screenshot_2021-01-30%20Rainforest%20Connection%20Species%20Audio%20Detection%20Kaggle.png)","metadata":{},"attachments":{"Screenshot_2021-01-30%20Rainforest%20Connection%20Species%20Audio%20Detection%20Kaggle.png":{"image/png":"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"}}},{"cell_type":"markdown","source":"# Introduction","metadata":{}},{"cell_type":"markdown","source":"I am new to **audio processing** and have read a lot of things about different Mel transformations and how they are useful as features.\n\nSo, as usual, I thought that the best way for me to gain deeper knowledge is to \nshare a notebook detailing how the transformation works and why it is useful.\n\nLet's go!","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true}},{"cell_type":"markdown","source":"# Prelude: what is an audio signal?","metadata":{}},{"cell_type":"markdown","source":"To start, let's have look at one of the audio files. For that, we will use\nthe `soundfile` library (that comes with `librosa`) to open a `.flac` sample.","metadata":{}},{"cell_type":"code","source":"import soundfile as sf\nimport matplotlib.pyplot as plt\nfrom IPython.display import Audio\n%matplotlib inline","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:37.796449Z","iopub.execute_input":"2021-08-21T16:08:37.796993Z","iopub.status.idle":"2021-08-21T16:08:37.848163Z","shell.execute_reply.started":"2021-08-21T16:08:37.796957Z","shell.execute_reply":"2021-08-21T16:08:37.847259Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"SAMPLE_ID = \"1e05620be\"\nSAMPLE_FILE = f\"../input/rfcx-species-audio-detection/train/{SAMPLE_ID}.flac\"","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:37.849763Z","iopub.execute_input":"2021-08-21T16:08:37.850398Z","iopub.status.idle":"2021-08-21T16:08:37.855411Z","shell.execute_reply.started":"2021-08-21T16:08:37.850347Z","shell.execute_reply":"2021-08-21T16:08:37.854036Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"audio_signal, sampling_rate = sf.read(SAMPLE_FILE)","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:37.857194Z","iopub.execute_input":"2021-08-21T16:08:37.857895Z","iopub.status.idle":"2021-08-21T16:08:38.010345Z","shell.execute_reply.started":"2021-08-21T16:08:37.857825Z","shell.execute_reply":"2021-08-21T16:08:38.009385Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"audio_signal.shape","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:38.011903Z","iopub.execute_input":"2021-08-21T16:08:38.012404Z","iopub.status.idle":"2021-08-21T16:08:38.020777Z","shell.execute_reply.started":"2021-08-21T16:08:38.012358Z","shell.execute_reply":"2021-08-21T16:08:38.019763Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sampling_rate","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:38.022238Z","iopub.execute_input":"2021-08-21T16:08:38.02289Z","iopub.status.idle":"2021-08-21T16:08:38.031193Z","shell.execute_reply.started":"2021-08-21T16:08:38.022846Z","shell.execute_reply":"2021-08-21T16:08:38.030116Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"The sampling rate is **48kz.** That means that for each **second**, **48000** samples are captured by the audio recorder (a microphone let's say).\n\nFrom there, we can deduce the sample length in seconds (i.e. how long is the audio file).\n\nIt has **288000** samples and **48000** samples per second as we have mentionnde thus the total duration is:\n\n**2880000 / 48000 = 60s**\n\nWe will check this later when playing the audio file. \n\nLet's display the audio signal now.","metadata":{"trusted":true}},{"cell_type":"code","source":"fig, ax = plt.subplots(figsize=(12, 8))\n\n\nax.set_title(\"Audio signal for {}\")\nax.plot(audio_signal)\n","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:38.03248Z","iopub.execute_input":"2021-08-21T16:08:38.033021Z","iopub.status.idle":"2021-08-21T16:08:38.857039Z","shell.execute_reply.started":"2021-08-21T16:08:38.032989Z","shell.execute_reply":"2021-08-21T16:08:38.85591Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Nothing fancy, a varying value roughly between 0.5 and -0.5. You can also listen to the audio clip by pressing the play button below.\nI am using the Audio widget to play the file.","metadata":{}},{"cell_type":"code","source":"Audio(SAMPLE_FILE)","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:38.858521Z","iopub.execute_input":"2021-08-21T16:08:38.858819Z","iopub.status.idle":"2021-08-21T16:08:38.983228Z","shell.execute_reply.started":"2021-08-21T16:08:38.858788Z","shell.execute_reply":"2021-08-21T16:08:38.981912Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"You can hear some soothing brid songs on a rainforest. Also, the audio signal is indeed **60s** long. All is good.","metadata":{}},{"cell_type":"markdown","source":"For the curious: the `.flac` is a loseless audio format (in contrast with MP3 format which is compressed).\n\n","metadata":{}},{"cell_type":"markdown","source":"Let's zoom in a bit on the signal to see if there are any patterns? We will take a look\nat the **2000** first samples.","metadata":{}},{"cell_type":"code","source":"fig, ax = plt.subplots(figsize=(20, 10))\n\n\nax.set_title(f\"Audio signal for {SAMPLE_ID}\")\nax.plot(audio_signal[:2000])","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:38.98492Z","iopub.execute_input":"2021-08-21T16:08:38.985596Z","iopub.status.idle":"2021-08-21T16:08:39.410211Z","shell.execute_reply.started":"2021-08-21T16:08:38.985545Z","shell.execute_reply":"2021-08-21T16:08:39.409189Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"So overall, a **mono** audio signal (as any wave function) is one dimensional variation of \namplitude over time. \n\nOne final thing is sampling depth, i.e. how many different sounds can be recorded.\nUsually it is either 16 or 32 bits. In what follows, we won't care much about this \nsince the audio signal is represented as a float.\n\nNext, let's see how we can extract features from this audio signal.","metadata":{}},{"cell_type":"markdown","source":"# Fourier (and Short-time Fourier) Transform","metadata":{}},{"cell_type":"markdown","source":"<img width=400 src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/5/51/Fourier_unit_pulse.svg/1280px-Fourier_unit_pulse.svg.png\">\n\n<center> Example of Fourier transforms from Wikipedia </center>","metadata":{}},{"cell_type":"markdown","source":"In any signal that is \"wave\"-like, the [Fourier transform](https://en.wikipedia.org/wiki/Fourier_transform) is the king of transformations. \n\nWhy so? The answer lays in the nature of the signal that is a superposition of many \"fundamentals\", i.e. each \"fundmental\" having a frequency and an amplitude thus we can map the (time, amplitude) space into (frequencey, amplitude) space.\n\n\nSo naturally, we will start with this and see different variations.\n\n\nTo be more precise, we will use the short-time Fourier transform which has two main differences: \n\n1. Instead of working with an idalized signal, we work with the sampled one (this we will use discrete Fourier transform)\n\n2. Instead of working with the whole time duration at once, we will use overlapping windows (thus the short-time).\n\n\nLet's apply this transformation using the librosa.stft function.","metadata":{}},{"cell_type":"code","source":"import librosa\nfrom librosa.display import specshow\nimport numpy as np\n\n\ntransformed_audio_signal = librosa.stft(audio_signal)","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:39.414018Z","iopub.execute_input":"2021-08-21T16:08:39.414628Z","iopub.status.idle":"2021-08-21T16:08:41.651433Z","shell.execute_reply.started":"2021-08-21T16:08:39.414584Z","shell.execute_reply":"2021-08-21T16:08:41.650536Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Let's have a look at the transformed audio signal.","metadata":{}},{"cell_type":"code","source":"transformed_audio_signal[0, 0]","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:41.652865Z","iopub.execute_input":"2021-08-21T16:08:41.65317Z","iopub.status.idle":"2021-08-21T16:08:41.658873Z","shell.execute_reply.started":"2021-08-21T16:08:41.653141Z","shell.execute_reply":"2021-08-21T16:08:41.657969Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"transformed_audio_signal.shape","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:41.659918Z","iopub.execute_input":"2021-08-21T16:08:41.66018Z","iopub.status.idle":"2021-08-21T16:08:41.670907Z","shell.execute_reply.started":"2021-08-21T16:08:41.660155Z","shell.execute_reply":"2021-08-21T16:08:41.670117Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"The transformed signal is a complex number. It has the following shape: \n    \n(1025, 5626)","metadata":{}},{"cell_type":"markdown","source":"Let's plot the spectre (amplitude and angle)","metadata":{}},{"cell_type":"code","source":"fig, ax = plt.subplots(figsize=(15, 3))\n\n\ntransformed_amplitude = librosa.amplitude_to_db(np.abs(transformed_audio_signal) ** 2, \n                                                ref=np.max)\n\nim = specshow(transformed_amplitude, y_axis='log', x_axis='time', ax=ax)\n\nfig.colorbar(im, format='%+2.0f dB')","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:54.68265Z","iopub.execute_input":"2021-08-21T16:08:54.683023Z","iopub.status.idle":"2021-08-21T16:08:58.610339Z","shell.execute_reply.started":"2021-08-21T16:08:54.682994Z","shell.execute_reply":"2021-08-21T16:08:58.609376Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig, ax = plt.subplots(figsize=(15, 3))\n\n\ntransformed_angle = librosa.amplitude_to_db(np.angle(transformed_audio_signal), \n                                                ref=np.max)\n\nim = specshow(transformed_angle, y_axis='log', x_axis='time', ax=ax)\n\nfig.colorbar(im, format='%+2.0f dB')","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:41.672021Z","iopub.execute_input":"2021-08-21T16:08:41.672278Z","iopub.status.idle":"2021-08-21T16:08:45.925625Z","shell.execute_reply.started":"2021-08-21T16:08:41.672254Z","shell.execute_reply":"2021-08-21T16:08:45.924515Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Let's describe what we are seeing: \n\n- In the first graph: this is the spectrogram\n- In the second spectrogram: this is something similar to the spectrogram but this time with the \nphase of the STFT and not its amplitude.","metadata":{}},{"cell_type":"markdown","source":"# Mel Scale","metadata":{}},{"cell_type":"markdown","source":"Alright, we have seen that **power spectogram** (via the stft) gives a nice representation that can be useful to extract features.\n\nCan we do better?\n\nThe answer is yes. For that we will start with the Mel scale and it will become \nclear why it is useful once I explain what it is.","metadata":{}},{"cell_type":"code","source":"fig, ax = plt.subplots(figsize=(12, 8))\n\n# How many FFT components are kept?\nN_FFT = 2048\n\nmel_scale_signal = librosa.filters.mel(sampling_rate, N_FFT) \n\nim = specshow(mel_scale_signal, x_axis='linear', ax=ax)\n\nax.set_ylabel('Mel filter')\n\nax.set_title('Mel filter bank')\n\nfig.colorbar(im)\n\nfig.tight_layout()\n\n","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:45.92733Z","iopub.execute_input":"2021-08-21T16:08:45.927654Z","iopub.status.idle":"2021-08-21T16:08:46.258339Z","shell.execute_reply.started":"2021-08-21T16:08:45.927625Z","shell.execute_reply":"2021-08-21T16:08:46.257403Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Here are some sound ranges for animals in comparaison: ","metadata":{}},{"cell_type":"markdown","source":"\n    \n<img src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Animal_hearing_frequency_range.svg\">","metadata":{}},{"cell_type":"markdown","source":"# Mel Spectrogram","metadata":{}},{"cell_type":"markdown","source":"Once we have introdced the Mel scale, we can now explore some transformations\nbased on it. \n\nLet's start with the Mel spectrogram.","metadata":{}},{"cell_type":"code","source":"\nfig, ax = plt.subplots(figsize=(15, 3))\n\nS = librosa.feature.melspectrogram(y=audio_signal, sr=sampling_rate)\nS_dB = librosa.power_to_db(S, ref=np.max)\n\n\nimg = librosa.display.specshow(S_dB, x_axis='time', y_axis='mel', sr=sampling_rate,\n                               fmax=16000, ax=ax)\n\nfig.colorbar(img, ax=ax, format='%+2.0f dB')\n\nax.set(title='Mel-frequency spectrogram')","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:15:07.431918Z","iopub.execute_input":"2021-08-21T16:15:07.4323Z","iopub.status.idle":"2021-08-21T16:15:08.431861Z","shell.execute_reply.started":"2021-08-21T16:15:07.432258Z","shell.execute_reply":"2021-08-21T16:15:08.430871Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# MFCC","metadata":{}},{"cell_type":"markdown","source":"Next, we will compute and plot the **MFCCs**, the big boys of this notebook.","metadata":{}},{"cell_type":"code","source":"S = librosa.feature.melspectrogram(y=audio_signal, sr=sampling_rate, n_mels=128, fmax=16000)\n\nmfccs = librosa.feature.mfcc(S=librosa.power_to_db(S))","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:47.254957Z","iopub.execute_input":"2021-08-21T16:08:47.255249Z","iopub.status.idle":"2021-08-21T16:08:47.576705Z","shell.execute_reply.started":"2021-08-21T16:08:47.255221Z","shell.execute_reply":"2021-08-21T16:08:47.57588Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig, ax = plt.subplots(figsize=(15, 5))\n\n\nim = specshow(mfccs, x_axis='time', y_axis='mel', ax=ax, sr=48000,\n                             fmax=24000, fmin=40)\n\n\nfig.colorbar(im, format='%+2.0f dB')\n\n\nax.set_title(f'MFCC for {SAMPLE_ID}')\n","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:47.577968Z","iopub.execute_input":"2021-08-21T16:08:47.578462Z","iopub.status.idle":"2021-08-21T16:08:48.024553Z","shell.execute_reply.started":"2021-08-21T16:08:47.578429Z","shell.execute_reply":"2021-08-21T16:08:48.02384Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Let's check another MFCCs for another sample. For that, we need to \nassemble previous elements in a function.","metadata":{}},{"cell_type":"code","source":"def compute_and_plot_mfccs(sample_id=\"009b760e6\"):\n    sample_file = f\"../input/rfcx-species-audio-detection/train/{sample_id}.flac\"\n    audio_signal, sampling_rate = sf.read(sample_file)\n    S = librosa.feature.melspectrogram(y=audio_signal, sr=sampling_rate, n_mels=128,\n                                       fmax=16000) # 16k is better?\n\n    mfccs = librosa.feature.mfcc(S=librosa.power_to_db(S))\n    fig, ax = plt.subplots(figsize=(15, 5))\n\n\n    mfccs = librosa.feature.mfcc(S=librosa.power_to_db(S))\n\n    im = specshow(mfccs, x_axis='time', y_axis='mel', ax=ax, sr=48000,\n                                 fmax=24000, fmin=40)\n\n\n    fig.colorbar(im, format='%+2.0f dB')\n\n\n    ax.set_title(f'MFCC for {sample_id}')","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:48.025708Z","iopub.execute_input":"2021-08-21T16:08:48.026183Z","iopub.status.idle":"2021-08-21T16:08:48.034727Z","shell.execute_reply.started":"2021-08-21T16:08:48.026151Z","shell.execute_reply":"2021-08-21T16:08:48.033982Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"compute_and_plot_mfccs()","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:48.035849Z","iopub.execute_input":"2021-08-21T16:08:48.036326Z","iopub.status.idle":"2021-08-21T16:08:48.853191Z","shell.execute_reply.started":"2021-08-21T16:08:48.036275Z","shell.execute_reply":"2021-08-21T16:08:48.852507Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"We can see that both MFCCs are quite distinct so this will be useful to train a classification model.","metadata":{}},{"cell_type":"code","source":"compute_and_plot_mfccs(\"015aa6c7c\")","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:48.854375Z","iopub.execute_input":"2021-08-21T16:08:48.854836Z","iopub.status.idle":"2021-08-21T16:08:49.677268Z","shell.execute_reply.started":"2021-08-21T16:08:48.854803Z","shell.execute_reply":"2021-08-21T16:08:49.676469Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"compute_and_plot_mfccs(\"013716dbf\")","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:08:49.678701Z","iopub.execute_input":"2021-08-21T16:08:49.679082Z","iopub.status.idle":"2021-08-21T16:08:50.495212Z","shell.execute_reply.started":"2021-08-21T16:08:49.679042Z","shell.execute_reply":"2021-08-21T16:08:50.494328Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# The Algorithm","metadata":{}},{"cell_type":"markdown","source":"Now that we have all the preliminary ingredients laid out, let's see how the algorithm works.\n\nHere are the main steps (from the Wiki page): \n    \n    \n1.     Take the Fourier transform of (a windowed excerpt of) a signal.\n2.     Map the powers of the spectrum obtained above onto the mel scale, using **triangular overlapping windows**.\n3.     Take the logs of the powers at each of the mel frequencies.\n4.     Take the discrete cosine transform of the list of mel log powers, as if it were a signal.\n5.     The MFCCs are the amplitudes of the resulting spectrum.\n    \n    \nLet's explore each step.","metadata":{}},{"cell_type":"markdown","source":"We have already explored the first step.\n\nAs for step 2, we have seen the mel scale but not yet how to map the power spectrum \nusing the triangular overlapping windows. Let's do this.","metadata":{}},{"cell_type":"markdown","source":"## Triangular Overlapping Windows","metadata":{}},{"cell_type":"markdown","source":"As its name indicates, it is a particualr [windows function](https://en.wikipedia.org/wiki/Window_function) that has a [triangular shape](https://en.wikipedia.org/wiki/Window_function#Triangular_window), nothing more to that.\n\nNow the interesting part is to divide the frequency space not uniformely as we would do in a spectrogram but using the Mel scale. To achieve this, \nwe take the Mel spectre that is a tringuaglar overlopping window family and take the dot product with the FFT of the audio signal.","metadata":{}},{"cell_type":"markdown","source":"## Log scale","metadata":{}},{"cell_type":"markdown","source":"This is the easiest step, we take the **log** (or more preciesly the **[decibel](https://en.wikipedia.org/wiki/Decibel)**) of each power component.\n\nThis is achieved in librosa using [power_to_db](https://librosa.org/doc/main/generated/librosa.power_to_db.html?highlight=power_to_db) function for example.","metadata":{}},{"cell_type":"markdown","source":"## Discrete Cosine Transform","metadata":{}},{"cell_type":"markdown","source":"This is the final step.\n\nAnother transform you might ask? How is it defined? Why is it useful?","metadata":{}},{"cell_type":"markdown","source":"Let's start with the definition. Will it is one of the many possible definitions, DCT I: \n\n\n<img src=\"https://wikimedia.org/api/rest_v1/media/math/render/svg/be8dacb1e78120e504f6fa9d98757c5fc1cd8f89\">","metadata":{}},{"cell_type":"markdown","source":"As its name indicates, we transform the sampled original signal using modulated cosines.\nIt is closely related to DFT but with only real values and only using cosines.\n\n\nAlright, you might ask now: okay, for what?\n\n\nOne possible explanation is that DCT is useful to \"de-correlate\" the signal, i.e. parts of a signal that are very close or similar will be \nmapped to more distinct parts. This isn't very precise but this is the best I have found. :p\n\nThis final step is achieved using  [scipy.fftpack.dct](https://docs.scipy.org/doc/scipy/reference/generated/scipy.fftpack.dct.html) function and using DCT II by default.","metadata":{}},{"cell_type":"markdown","source":"To recap: **MFCCs** are obtained by transforming a spectrum using **DCT** with the **Mel scale**. \n\nFor the curious, the term **cepstrum** in MFCC comes from spectrum with the first 4 letters reversed (ceps <-> spec). This is to show that cepstrum are spectrograms of spectrograms (applying an inverse transform).\n\nThat's it for today's notebook. I hope you have enjoyed this short introduction to the Mel-frequency cepstrum (and other related concepts).","metadata":{}},{"cell_type":"code","source":"# As a bonus, here are more power spectrograms\n\n\n\ndef compute_and_plot_power_spectrogram(sample_id=\"009b760e6\"):\n    sample_file = f\"../input/rfcx-species-audio-detection/train/{sample_id}.flac\"\n    audio_signal, sampling_rate = sf.read(sample_file)\n    transformed_audio_signal = librosa.stft(audio_signal)\n\n    fig, ax = plt.subplots(figsize=(15, 3))\n\n\n    transformed_amplitude = librosa.amplitude_to_db(np.abs(transformed_audio_signal) ** 2, \n                                                    ref=np.max)\n\n    im = specshow(transformed_amplitude, y_axis='log', x_axis='time', ax=ax)\n\n    fig.colorbar(im, format='%+2.0f dB')","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:17:11.401395Z","iopub.execute_input":"2021-08-21T16:17:11.401964Z","iopub.status.idle":"2021-08-21T16:17:11.409478Z","shell.execute_reply.started":"2021-08-21T16:17:11.401931Z","shell.execute_reply":"2021-08-21T16:17:11.408652Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"compute_and_plot_power_spectrogram()","metadata":{"execution":{"iopub.status.busy":"2021-08-21T16:17:13.609447Z","iopub.execute_input":"2021-08-21T16:17:13.609784Z","iopub.status.idle":"2021-08-21T16:17:17.814581Z","shell.execute_reply.started":"2021-08-21T16:17:13.609756Z","shell.execute_reply":"2021-08-21T16:17:17.813562Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Resources to go beyond\n\n\n- A good videdo intro to audio processing for classification: https://www.youtube.com/watch?v=Z7YM-HAz-IY\n- A good introduction to many audio processing terms: https://www.vocitec.com/docs-tools/blog/sampling-rates-sample-depths-and-bit-rates-basic-audio-concepts\n- STFT wiki page: https://en.wikipedia.org/wiki/Short-time_Fourier_transform\n- STFT librosa: http://man.hubwiz.com/docset/LibROSA.docset/Contents/Resources/Documents/generated/librosa.core.stft.html\n- Nyquist frequency: https://en.wikipedia.org/wiki/Nyquist_frequency \n- Cepstrum: https://en.wikipedia.org/wiki/Cepstrum\n- Mel Scale: https://en.wikipedia.org/wiki/Mel_scale\n- A two videos quick introduction to audio processing for classification: https://www.youtube.com/watch?v=Z7YM-HAz-IY and https://www.youtube.com/watch?v=-GddLd2_0ok (lots of similiar topics)\n- MFCC: https://stackoverflow.com/questions/1638126/how-to-make-mfcc-algorithm\n- Hearing range: https://en.wikipedia.org/wiki/Hearing_range\n- DCT: https://en.wikipedia.org/wiki/Discrete_cosine_transform\n- FLAC format: https://en.wikipedia.org/wiki/FLAC\n- Another good MFCC notebook: https://www.kaggle.com/seriousran/mfcc-feature-extraction-for-sound-classification/data\n- Theory heavy wiki page about spectral density:https://en.wikipedia.org/wiki/Spectral_density#Explanation","metadata":{}}]}