Skip to content

Instantly share code, notes, and snippets.

@thomasbrandon
Last active April 4, 2021 11:26
Show Gist options
  • Save thomasbrandon/f0d11593b07dc5ccb2237aec6b4355a5 to your computer and use it in GitHub Desktop.
Save thomasbrandon/f0d11593b07dc5ccb2237aec6b4355a5 to your computer and use it in GitHub Desktop.
Notebook showing STFT paramaters and output
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 129,
"metadata": {},
"outputs": [],
"source": [
"import librosa, librosa.display\n",
"import torch\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib.patches import Rectangle as Rect\n",
"import numpy as np\n",
"from math import floor"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# STFT Shape\n",
"The STFT divides the samples into frames (or chunks) of size `n_fft` with `hop_length` samples between each frame. So:"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['Frame 0 is samples 0-499',\n",
" 'Frame 1 is samples 125-624',\n",
" 'Frame 2 is samples 250-749',\n",
" 'Frame 3 is samples 375-874',\n",
" 'Frame 4 is samples 500-999']"
]
},
"execution_count": 121,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"n_samp = 1000\n",
"n_fft = 500\n",
"hop = 125\n",
"sig = np.arange(n_samp)\n",
"frames = librosa.util.frame(sig, n_fft, hop)\n",
"[f'Frame {i} is samples {c[0]}-{c[-1]}' for i,c in enumerate(frames.T)]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So for a signal of length `n_samp` we get `floor((n_samp - n_fft) / hop) + 1` frames of `n_fft` samples each:"
]
},
{
"cell_type": "code",
"execution_count": 123,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((500, 5), True)"
]
},
"execution_count": 123,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"frames.shape, frames.shape == (n_fft, floor((n_samp - n_fft) / hop) + 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Each of those chunks is put through a Discrete Fourier Transform (DFT) to give `(n_fft//2)+1` frequency bins. The Fast Fourier Transform (FFT) is a particular algorithm to produce a Discrete Fourier Transform, basically everything uses the FFT (or a variant of it) so these terms are basically interchangeable. Librosa returns these as a (freq, frame) tensor, i.e. as a (freq, time) tensor. So:"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(251, 5)"
]
},
"execution_count": 93,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"stft = librosa.core.stft(np.zeros(n_samp), n_fft, hop, center=False) # Ignore center=False for the moment, we'll come back to it\n",
"stft.shape"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"stft.shape == (n_fft//2+1, floor((n_samp - n_fft) / hop) + 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Each of those `n_fft//2 + 1` values represent the contribution of a particular frequency band in making up the overall signal (or for the STFT in making up that frame). The first value (the `+1`) is the 0Hz component. This 0Hz component is sometimes also called the DC component, or DC offset, of the signal (this goes back to when audio was processed with analog electronic equipment where DC stands for Direct Current, as opposed to Alternating Current or AC).\n",
"The other values represent the component of the signal in each of `n_fft//2` evenly spaced bins (or bands) across the sampled frequency range. The sampled frequency range is given by half the sample rate. So with a sample rate of say 16kHz, we have a frequency range of 8kHz which will be divided into `n_fft//2` bins."
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 0., 1000., 2000., 3000., 4000., 5000., 6000., 7000., 8000.]), True)"
]
},
"execution_count": 111,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"freqs = librosa.core.fft_frequencies(sr=16000, n_fft=16)\n",
"freqs, len(freqs) == 16//2 + 1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So that's indicating our 8000Hz sampling range is divided into our 9 (16//2+1) bins of 1000kHz each, centered at 0Hz, 1000Hz, 2000Hz...8000Hz. Of course our first bin can't really centered at 0Hz because there aren't any frequencies below 0Hz right? Different sources seem to vary as to whether they identify this as a special band, representing the DC component or as just another band. I'm not sure which is right. This also applies to the final band here, it is apparently centered at 8000Hz but due to the Nyquist limit we can't capture frequencies above `sample_rate//2` which is 8kHz here. So both these bands must be a little different. But for deep learning this probably doesn't matter much, our network should learn to use whatever useful information is here and we don't have to tell it what these mean so can hopefully get by fine without really being sure ourselves.\n",
"\n",
"It's worth noting that technically this isn't quite correct. In fact an FFT of length `n_fft` will return `n_fft` bins. But the second half is just a transform of the first half providing no additional information so it tends to be discarded by common implementations (`torch.stft` has the `one_sided` argument which controls this and defaults to `True`, librosa just discards it with no option). Numpy being more faithful to the maths will give an extended set of bins:"
]
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 0., 1000., 2000., 3000., 4000., 5000., 6000., 7000.,\n",
" -8000., -7000., -6000., -5000., -4000., -3000., -2000., -1000.]), True)"
]
},
"execution_count": 114,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"freqs = np.fft.fftfreq(16, 1/16000)\n",
"freqs, len(freqs) == 16"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I don't understand the full answer here, or what those negative frequencies numpy is suggesting are, but in case you ever see stuff about one-sided FFTs, or discarding the top half, this is what is meant."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Windows\n",
"One further complexity of the STFT is windows. After the signal is split into `n_fft` sized frames, the \"window function\" (function in the mathematical sense) is applied to each of those each of those frames. In digital processing the window is a 1D tensor of length `window_length` (defaulting to `n_fft`) and applying it is just an element-wise multiplication of the chunk by the window. In `torch.stft` the default window is simply a tensor of all ones, so it doesn't affect the chunks at all. In `librosa` it defaults to the hann window which seems to be a common choice for this. While not an expert on this, thee basic idea here seems to be that the STFT is good because it allows you to keep a given frequency resolution (`n_fft`) while increasing your temporal resolution by having `hop_length < n_fft`. But this results in a lot of duplicated frequency information between frames and as shown above the FFT collects frequencies across the entire signal (or frame in the case of STFT). So, rather than just collecting all frequencies across the entire window you can instead use a window to weight the contribution of samples such that each frame gives a higher weighting to some of those samples than to others. Thus each frame can more highly weight a unique section of the sound and you can counteract somewhat that duplication due to overlap. If you plot the hann window you can see the sort of thing that is happening:"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 504x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"win_length = n_fft # == 1000\n",
"hw = librosa.filters.get_window('hann', win_length)\n",
"plt.figure(figsize=(7,3)); plt.plot(hw);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Visualising multiple windows spaced `hop_length` apart we see:"
]
},
{
"cell_type": "code",
"execution_count": 168,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"n_fft=500\n",
"n_samp=1000\n",
"win = librosa.filters.get_window('hann', n_fft)\n",
"def get_wins(window, n_samp, n_fft=500, hop=125):\n",
" n_ch = ((n_samp - n_fft) // hop) + 1 # Number of chunks\n",
" return [np.pad(window, (ch*hop, n_samp-ch*hop), 'constant')[:n_samp] for ch in range(n_ch)]\n",
"wins = get_wins(win, 1000)\n",
"(fig,ax)=plt.subplots(1, 1, figsize=(6,3))\n",
"for w in wins: ax.plot(w)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Looking at this you might notice that we aren't really including the beginning and ending samples now as our window is tapering off. Our first and last chunk here will have little useful information. So, by default librosa will actually add `n_fft//2` samples of padding to the beginning and end of our signal. Plotting this and highlighting the actual samples of our input we see:"
]
},
{
"cell_type": "code",
"execution_count": 196,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 504x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"win = librosa.filters.get_window('hann', n_fft)\n",
"wins = get_wins(win, n_samp + n_fft)\n",
"(fig,ax)=plt.subplots(1, 1, figsize=(7,3))\n",
"y = range(-n_fft//2,n_samp+(n_fft)//2)\n",
"ax.set_xticks(range(0,n_samp+1,hop))\n",
"for w in wins: ax.plot(y, w)\n",
"ax.add_patch(Rect((0,0), n_samp, 1, alpha=0.3));"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This looks better, all our samples are now nicely included. This is what that `center=False` option was in the `librosa.core.stft` call above. So with `center=True`, the number of frames for our signal is actually `floor((n_samp - n_fft + n_fft) / hop) + 1` with the `+ n_fft` being our padding, or simplifying `floor(n_samp / hop) + 1`. So:"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(251, 9)"
]
},
"execution_count": 108,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"stft = librosa.core.stft(np.zeros(n_samp), n_fft, hop)\n",
"stft.shape"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 109,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"stft.shape == (n_fft//2+1, floor(n_samp / hop) + 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Related to the `window` argument (which recall takes a 1D tensor, or a callable to create one), is the `win_length` argument. This alows you to specify that you are providing a window that is smaller than your `n_fft` (`win_length > n_fft` will result in an error). The window tensor you provide will be padded with zeros before being applied to, i.e. elementwise multiplied, each frame). As such the `win_length` argument will not affect the STFT output shape. Setting this window smaller than our frame size (`n_fft`) means we can include less of the samples that overlap with other frames. So, mimicing the function of window length we get:"
]
},
{
"cell_type": "code",
"execution_count": 197,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 504x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"n_fft = 500\n",
"win_length = 250\n",
"win = librosa.util.pad_center(librosa.filters.get_window('hann', win_length), n_fft)\n",
"wins = get_wins(win, n_samp + n_fft)\n",
"(fig,ax)=plt.subplots(1, 1, figsize=(7,3))\n",
"y = range(-n_fft//2,n_samp+(n_fft)//2)\n",
"ax.set_xticks(range(0,n_samp+1,hop))\n",
"for w in wins: ax.plot(y, w)\n",
"ax.add_patch(Rect((0,0), n_samp, 1, alpha=0.3));"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This discussion of window length assumes you are using the default of frames centered within the window. If you do not use this default you would need to use an appropriate window for non-centered data. You might for instance use only the second half of a centered window."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:fastai_audio-dev]",
"language": "python",
"name": "conda-env-fastai_audio-dev-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment