{ "metadata": { "name": "", "signature": "sha256:9733e855fe9a1da482edf975c18e81dce647d9d28b2f7896a11c72c436817884" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Feature Extraction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Load, plot, and play `simpleLoop.wav`:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from essentia.standard import MonoLoader\n", "x = MonoLoader(filename='simpleLoop.wav')()\n", "print x.shape" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(132300,)\n" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "t = arange(len(x))/44100.0\n", "plot(t, x)\n", "xlabel('Time (seconds)')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 2, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\ngg==\n", "text": [ "" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.display import Audio\n", "Audio(x, rate=44100)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " " ], "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Windowing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before extracting features from a frame of audio, we first multiply the frame by a window, such as the Hamming window pictured below, to reduce artifacts caused by the edges of the frame." ] }, { "cell_type": "code", "collapsed": false, "input": [ "plot(hamming(101))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 4 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "MFCCs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mel-frequency cepstral coefficients (MFCCs) are a set of features that describe the coarse overall shape of a spectrum but not the fine harmonic structure. MFCCs are often used to describe the timbre of a musical signal." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from essentia.standard import MFCC, Spectrum, Windowing, FrameGenerator\n", "hamming_window = Windowing(type='hamming')\n", "spectrum = Spectrum() # we just want the magnitude spectrum\n", "mfcc = MFCC()\n", "\n", "mfccs = array([mfcc(spectrum(hamming_window(frame)))[1]\n", " for frame in FrameGenerator(x, frameSize=1024, hopSize=512)])\n", "print mfccs.shape" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(260, 13)\n" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display MFCCs over time:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "imshow(mfccs[:,1:].T, origin='lower', aspect='auto', interpolation='nearest') # Ignore the 0th MFCC\n", "yticks(range(12), range(1,13)) # Ignore the 0th MFCC\n", "ylabel('MFCC Coefficient Index')\n", "xlabel('Frame Index')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAXkAAAEGCAYAAACAd+UpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8VPWd//HX5EICSUiUQAKEGpaAARKSQCquPzHxJ4F6\nF4VaVEQui9Xtqq1r1XYvWa+46lawdb20oBWqbVlRVKTIrijCDxUBq6IiNLMSIYFAAwkhhITz++Oc\n78yZwDAkTCZh8n4+HnlkzpnvOd/PufhlnJxz3h7LsixERCQqxXR2ASIi0nE0yIuIRDEN8iIiUUyD\nvIhIFNMgLyISxeI6uwDD4/F0dgkiIqelE10k2WUGeQAK/xWKy+3XyUAl0NiqTSOQ47z2AmlOW4Ba\n5/1EINeZtxlodn4A0p32jU57gGzsPZGIv+/1zrTpq9G1bvd0mjNd7/SR2KpNsqufX+8F+tivS101\nJwOZwJZy+E65v8Ztrvq+BIpdfTU6v802NTptrmq1Lyqd6USn1nTXPLMvs53pDc4800+N0x78+6/Z\n1b/pu8ppa9qkObWY42LUA1nO623Osu79t6Uc/qbcns51bb+7r2TXMtuc6ThX23QCzxmz3V8Cec68\nWmfeZ850jrOOGtf7pjazj18+AsT7/4sZ7yyf59puc14VOtMbnPc3O9OFzrqbXTVmYx8Pc0x6lMOI\ncruN19WmGf9x+tK1XWZ/mv9WTBtzLsa5pk2f5nxMwz52ZrqKY/97izRvOWSXd3IRnayt+2D1iT8g\n6+saEZEopkFeRCSKda1BPrO0syvoXH1LO7uCztXdtx9gcGlnV9C50ko7u4LOF+Z9oEG+K+nug1x3\n337QIK9BvusP8jNnziQjI4P8/HzfvLvuuovhw4dTUFDA1Vdfzf79+8PdrYiIHEfYB/kZM2awYsWK\ngHkTJkzg888/55NPPmHYsGE8/PDD4e5WRESOI+yD/Lhx4zjjjDMC5pWVlRETY3c1duxYKisrj7eo\niIiEWcSvk1+wYAFTp049/puby/3/7PxNKf6LyUVEBIDa1fbPSYroIP/ggw/So0cPrrvuuuM3KCz3\nV2RuhhIREb+00sA/znr/7YTNIzbIP//88yxfvpz//u//jlSXIiLdXkQG+RUrVvDoo4/y7rvvkpiY\nGHoBEREJi7D/4XXq1Kmcd955fPXVVwwaNIgFCxbwD//wD9TX11NWVkZRURG33npruLsVEZHjCPsn\n+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\n", "text": [ "" ] } ], "prompt_number": 6 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Centroid" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In Essentia, `centroid` can be used to compute either the temporal or spectral centroid of a frame." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from essentia.standard import Centroid, Spectrum, Windowing, FrameGenerator\n", "hamming_window = Windowing(type='hamming')\n", "spectrum = Spectrum() # we just want the magnitude spectrum\n", "centroid = Centroid(range=22050)\n", "\n", "energy = array([centroid(spectrum(hamming_window(frame)))\n", " for frame in FrameGenerator(x, frameSize=2048, hopSize=1024)])\n", "\n", "plot(energy)\n", "ylabel('Spectral Centroid')\n", "xlabel('Frame Index')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nHTt2qD179qjRo0fbjrXX3v3796vExETV2NioSktL1aWXXqqampq80m6l2m57QUGBrU3333+/z7Zd\nqbbbr5RSX3/9tZo2bZqKjIxU33//vVLK+fb7fYjs3LlTTZs2zfb16tWr1erVq73YIsdcf/316q23\n3lKXXXaZOnLkiFJKB81ll13m5Za1r7y8XE2ZMkW988476rrrrlNKKb9pf21trYqKirrguL+0//vv\nv1exsbGqpqZGnT59Wl133XWqoKDA59tfWlra4kLWXntXrVqlsrOzbY+bNm2a+uijjzzb2FZat725\nV155Rd16661KKd9su1Jtt//GG29Un332WYsQcbb9flPOak9lZSXDhg2zfW2xWKisrPRiizqvrKyM\nvXv3cvnll1NdXU3Yufu3hoWFUV1d7eXWte+ee+7h0UcfJSjo/D8ff2l/aWkpQ4YMYcGCBYwbN45F\nixZx/Phxv2n/oEGDuPfeexk+fDhDhw5lwIABpKWl+U37rdpr7+HDh1vMvPT1/8/PP/88M2bMAPyn\n7Vu2bMFisTCm1Q12nG2/34eIvy4yPHbsGHPmzOGJJ56gX79+Lf7OZDL57Pf12muvERoaSlJSUrtr\nc3y5/WfOnGHPnj0sWbKEPXv20KdPH7Kb3zcX327/oUOH+OMf/0hZWRmHDx/m2LFjrG91L19fbn9b\n7LXXV7+X3/3ud3Tv3p1bbrml3cf4WttPnDjBqlWrWLlype1Ye/+PoXPt9/sQ8cc1JKdPn2bOnDnM\nmzePWbNmAfrT2JEjRwCoqqoiNDTUm01s186dO9m6dStRUVHMnTuXd955h3nz5vlN+y0WCxaLhQkT\nJgBw4403smfPHsLDw/2i/Z988glXXHEFF110EcHBwcyePZuPPvrIb9pv1d6/l9b/nysqKoiIiPBK\nGzvy4osv8vrrr/OXv/zFdswf2n7o0CHKyspITEwkKiqKiooKkpOTqa6udrr9fh8i/raGRCnFHXfc\nQXx8PHfffbfteHp6Onl5eQDk5eXZwsXXrFq1ivLyckpLS9mwYQPXXHMN69at85v2h4eHM2zYMIqL\niwHYtm0bo0aNYubMmX7R/ri4OD7++GMaGhpQSrFt2zbi4+P9pv1W7f17SU9PZ8OGDTQ2NlJaWkpJ\nSQkpKSnebOoF8vPzefTRR9myZQs9e/a0HfeHtickJFBdXU1paSmlpaVYLBb27NlDWFiY8+133/CN\n97z++usqNjZWXXrppWrVqlXebk6H3n//fWUymVRiYqIaO3asGjt2rHrjjTfU999/r6ZMmaJiYmJU\nWlqa+uGHH7zdVLu2b99um53lT+3/9NNP1fjx49WYMWPUDTfcoGpra/2q/WvWrFHx8fFq9OjRav78\n+aqxsdGn23/zzTeriy++WJnNZmWxWNTzzz/fYXt/97vfqUsvvVRddtllKj8/34stv7Dtubm5Kjo6\nWg0fPtz2/zcrK8v2eF9qu1Ln29+9e3fbz765qKgo28C6Us613y82YBRCCOGb/L6cJYQQwnskRIQQ\nQjhNQkQIIYTTJESEEEI4TUJEdCndunUjKSnJ9uvrr7/2SjsiIyNbbHxnT1lZWZub6AnhbX6xFbwQ\n7tK7d2/27t3b5t9ZJyp6YpWxr61kFsJZ0hMRXVpZWRmXXXYZmZmZJCQkUF5ezpIlS5gwYQKjR49m\nxYoVtsdGRkayfPlykpKSGD9+PHv27GHq1KlER0fzzDPP2B736KOPkpKSQmJiYovnt/f6I0eOZPHi\nxYwePZpp06Zx8uRJAHbv3k1iYiJjx44lJyfH9pympibuu+8+22s8++yzADz++OPccccdAOzbt4+E\nhATbuYQwjPuWtQjh+7p162ZbJDZ79mxVVlamgoKCVGFhoe0xNTU1Sil9m4HU1FS1b98+pZRSkZGR\n6k9/+pNSSql77rlHJSQkqGPHjqlvv/1WhYWFKaWUevPNN9XixYuVUko1NTWp6667Tu3YseOCdlh3\nTy0tLVXBwcHqs88+U0rprd3Xr1+vlFIqISFBvf/++0opvXW6dSfWZ555Rj3yyCNKKaVOnjypxo8f\nr8rKytTZs2fVj370I/XKK6+o8ePHq507d7r3hydEG6ScJbqUXr16tShnlZWVMWLEiBbbO2zcuJHn\nnnuOM2fOUFVVRVFREaNHjwawbamTkJDA8ePH6dOnD3369KFHjx7U1dVRUFBAQUEBSUlJABw/fpyD\nBw9y1VVXtdumqKgo246qycnJlJWVUVdXR11dHVdeeSUA8+bN44033gCgoKCAffv28fLLLwNw9OhR\nSkpKGDFiBC+++CIJCQlkZWUxadIkd/3YhGiXhIjo8vr06WP7c2lpKY899hiffPIJ/fv3Z8GCBS1K\nQj169AAgKCiI7t27244HBQVx5swZAB544AEWL17c6de3nhP0wH9DQ8MFj1GtNpZ46qmnSEtLu+Bx\nxcXF9OvXzye3IBeBScZEhGjm6NGj9OnTh5CQEKqrq22f/ltrfVEHPVg+bdo0nn/+eY4fPw7o+918\n++23Drejf//+DBgwgA8//BCgxW6x06ZNIycnxxZaxcXFnDhxgrq6OpYuXcr777/P999/z9/+9jeH\nX1cIR0lPRHQpbc2Kan4sMTGRpKQk4uLiGDZsmK2c1NZzmj/P+ue0tDQOHDhgKyX169eP9evXM2TI\nkHZfs3WbrF+/8MIL3H777ZhMJqZOnWo7vnDhQsrKyhg3bhxKKUJDQ/n73//OL37xC+666y6io6PJ\nzc3l6quvZvLkyQwePLjTPx8hHCUbMAohhHCalLOEEEI4TUJECCGE0yREhBBCOE1CRAghhNMkRIQQ\nQjhNQkQIIYTT/j9W9+55Vr80nQAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 7 } ], "metadata": {} } ] }