{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Examples" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This Jupyter notebook shows some examples for the different functions of the Python module `cqhc`.\n", "\n", "Functions:\n", "- [`mfcc`](#mfcc) - Compute the mel-frequency cepstral coefficients (MFCCs) (using librosa).\n", "- [`cqtspectrogram`](#cqtspectrogram) - Compute the (magnitude) constant-Q transform (CQT) spectrogram (using librosa).\n", "- [`cqtdeconv`](#cqtdeconv) - Deconvolve the CQT spectrogram into a pitch-normalized spectral component and an energy-normalized pitch component.\n", "- [`cqhc`](#cqhc) - Compute the constant-Q harmonic coefficients (CQHCs).\n", "\n", "\n", "Author:\n", "- Zafar Rafii\n", "- zafarrafii@gmail.com\n", "- http://zafarrafii.com\n", "- https://github.com/zafarrafii\n", "- https://www.linkedin.com/in/zafarrafii/\n", "- 12/27/21" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## <a id=\"mfcc\"></a>mfcc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the mel-frequency cepstral coefficients (MFCCs) (using librosa).\n", "\n", "```\n", "audio_mfcc = cqhc.mfcc(audio_signal, sampling_frequency, window_length, step_length, number_coefficients)\n", "\n", "Inputs:\n", " audio_signal: audio signal (number_samples,)\n", " sampling_frequency: sampling frequency in Hz\n", " window_length: window length in samples\n", " step_length: step length in samples\n", " number_coefficients: number of MFCCs (default: 20 coefficients)\n", "Output:\n", " audio_mfcc: audio MFCCs (number_coefficients, number_frames)\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Compute the MFCCs from an audio file." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 1008x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "# Import the modules\n", "import numpy as np\n", "import cqhc\n", "import librosa\n", "import librosa.display\n", "import matplotlib.pyplot as plt\n", "\n", "# Load the audio signal\n", "file_path = r'bass_acoustic_000-036-075.wav'\n", "audio_signal, sampling_frequency = librosa.load(file_path, sr=None, mono=True)\n", "\n", "# Define the parameters and compute the MFCCs\n", "window_length = pow(2, int(np.ceil(np.log2(0.04 * sampling_frequency))))\n", "step_length = int(window_length / 2)\n", "number_coefficients = 20\n", "audio_mfcc = cqhc.mfcc(audio_signal, sampling_frequency, window_length, step_length, number_coefficients)\n", "\n", "# Display the MFCCs\n", "plt.figure(figsize=(14, 4))\n", "librosa.display.specshow(audio_mfcc, x_axis='time', sr=sampling_frequency, hop_length=step_length, cmap='jet')\n", "plt.title('MFCCs')\n", "plt.ylabel('Coefficient')\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## <a id=\"cqt\"></a>cqtspectrogram" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the (magnitude) constant-Q transform (CQT) spectrogram (using librosa).\n", "\n", "```\n", "cqt_spectrogram = cqhc.cqtspectrogram(audio_signal, sampling_frequency, step_length, minimum_frequency, octave_resolution)\n", "\n", "Inputs:\n", " audio_signal: audio signal (number_samples,)\n", " sampling_frequency: sampling frequency in Hz\n", " step_length: step length in samples\n", " minimum_frequency: minimum frequency in Hz (default: 32.70 Hz = C1)\n", " octave_resolution: number of frequency channels per octave (default: 12 frequency channels per octave)\n", "Output:\n", " cqt_spectrogram: magnitude CQT spectrogram (number_frequencies, number_frames)\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Compute the CQT spectrogram from an audio file." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\zarafii2001\\Anaconda3\\lib\\site-packages\\librosa\\display.py:974: MatplotlibDeprecationWarning: The 'basey' parameter of __init__() has been renamed 'base' since Matplotlib 3.3; support for the old name will be dropped two minor releases later.\n", " scaler(mode, **kwargs)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 1008x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "# Import the modules\n", "import numpy as np\n", "import cqhc\n", "import librosa\n", "import librosa.display\n", "import matplotlib.pyplot as plt\n", "\n", "# Load the audio signal\n", "file_path = r'bass_acoustic_000-036-075.wav'\n", "audio_signal, sampling_frequency = librosa.load(file_path, sr=None, mono=True)\n", "\n", "# Define the parameters and compute the CQT spectrogram\n", "step_length = int(pow(2, int(np.ceil(np.log2(0.04 * sampling_frequency)))) / 2)\n", "minimum_frequency = 32.70\n", "octave_resolution = 12\n", "cqt_spectrogram = cqhc.cqtspectrogram(audio_signal, sampling_frequency, step_length, minimum_frequency, \\\n", " octave_resolution)\n", "\n", "# Display the CQT spectrogram\n", "plt.figure(figsize=(14, 4))\n", "librosa.display.specshow(librosa.amplitude_to_db(cqt_spectrogram), x_axis='time', y_axis='cqt_note', \\\n", " sr=sampling_frequency, hop_length=step_length, fmin=minimum_frequency, \\\n", " bins_per_octave=octave_resolution, cmap='jet')\n", "plt.title('CQT spectrogram')\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## <a id=\"cqtdeconv\"></a>cqtdeconv" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Deconvolve the constant-Q transform (CQT) spectrogram into a pitch-normalized spectral component and an energy-normalized pitch component.\n", "\n", "```\n", "spectral_component, pitch_component = cqhc.cqtdeconv(cqt_spectrogram)\n", "\n", "Inputs:\n", " cqt_spectrogram: CQT spectrogram (number_frequencies, number_frames)\n", "Output:\n", " spectral_component: pitch-normalized spectral component (number_frequencies, number_frames)\n", " pitch_component: energy-normalized pitch component (number_frequencies, number_frames)\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Deconvolve a CQT spectrogram into its spectral envelope and pitch component." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 1008x288 with 3 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "# Import the modules\n", "import numpy as np\n", "import cqhc\n", "import librosa\n", "import librosa.display\n", "import matplotlib.pyplot as plt\n", "\n", "# Load the audio signal\n", "file_path = r'bass_acoustic_000-036-075.wav'\n", "audio_signal, sampling_frequency = librosa.load(file_path, sr=None, mono=True)\n", "\n", "# Define the parameters and compute the CQT spectrogram\n", "step_length = int(pow(2, int(np.ceil(np.log2(0.04 * sampling_frequency)))) / 2)\n", "minimum_frequency = 32.70\n", "octave_resolution = 12\n", "cqt_spectrogram = cqhc.cqtspectrogram(audio_signal, sampling_frequency, step_length, minimum_frequency, octave_resolution)\n", "\n", "# Deconvolve the CQT spectrogram into a spectral component and pitch component\n", "spectral_component, pitch_component = cqhc.cqtdeconv(cqt_spectrogram)\n", "\n", "# Display the CQT spectrogram, spectral component, and pitch component\n", "plt.figure(figsize=(14, 4))\n", "plt.subplot(1, 3, 1)\n", "librosa.display.specshow(librosa.amplitude_to_db(cqt_spectrogram), x_axis='time', y_axis='cqt_note', \\\n", " sr=sampling_frequency, hop_length=step_length, fmin=minimum_frequency, \\\n", " bins_per_octave=octave_resolution, cmap='jet')\n", "plt.title('CQT spectrogram')\n", "plt.subplot(1, 3, 2)\n", "librosa.display.specshow(librosa.amplitude_to_db(spectral_component), x_axis='time', y_axis='cqt_note', \\\n", " sr=sampling_frequency, hop_length=step_length, fmin=minimum_frequency, \\\n", " bins_per_octave=octave_resolution, cmap='jet')\n", "plt.title('Spectral component')\n", "plt.subplot(1, 3, 3)\n", "librosa.display.specshow(pitch_component, x_axis='time', y_axis='cqt_note', sr=sampling_frequency, \\\n", " hop_length=step_length, fmin=minimum_frequency, bins_per_octave=octave_resolution, cmap='jet')\n", "plt.title('Pitch component')\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## <a id=\"cqhc\"></a>cqhc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the constant-Q harmonic coefficients (CQHCs).\n", "\n", "```\n", "audio_cqhc = cqhc.cqhc(audio_signal, sampling_frequency, step_length, minimum_frequency, octave_resolution, number_coefficients)\n", "\n", "Inputs:\n", " audio_signal: audio signal (number_samples,)\n", " sampling_frequency: sampling frequency in Hz\n", " step_length: step length in samples\n", " minimum_frequency: minimum frequency in Hz (default: 32.70 Hz = C1)\n", " octave_resolution: number of frequency channels per octave (default: 12 frequency channels per octave)\n", " number_coefficients: number of CQHCs (default: 20 coefficients)\n", "Output:\n", " audio_cqhc: CQHCs (number_coefficients, number_frames)\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Compute the CQHCs from an audio file." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 1008x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "# Import the modules\n", "import numpy as np\n", "import cqhc\n", "import librosa\n", "import librosa.display\n", "import matplotlib.pyplot as plt\n", "\n", "# Load the audio signal\n", "file_path = r'bass_acoustic_000-036-075.wav'\n", "audio_signal, sampling_frequency = librosa.load(file_path, sr=None, mono=True)\n", "\n", "# Define the parameters and compute the CQHCs\n", "step_length = int(pow(2, int(np.ceil(np.log2(0.04 * sampling_frequency)))) / 2)\n", "minimum_frequency = 32.70\n", "octave_resolution = 12\n", "number_coefficients = 20\n", "audio_cqhc = cqhc.cqhc(audio_signal, sampling_frequency, step_length, minimum_frequency, octave_resolution, \\\n", " number_coefficients)\n", "\n", "# Display the CQHCs\n", "plt.figure(figsize=(14, 4))\n", "librosa.display.specshow(librosa.power_to_db(audio_cqhc), x_axis='time', sr=sampling_frequency, hop_length=step_length, \\\n", " cmap='jet')\n", "plt.title('CQHCs')\n", "plt.ylabel('Coefficient')\n", "plt.tight_layout()\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "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.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }