{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true, "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "import numpy, scipy, matplotlib.pyplot as plt, sklearn, librosa, urllib, IPython.display\n", "import essentia, essentia.standard as ess\n", "plt.rcParams['figure.figsize'] = (14,4)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "[← Back to Index](index.html)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Mel Frequency Cepstral Coefficients (MFCCs)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "The [mel frequency cepstral coefficients](https://en.wikipedia.org/wiki/Mel-frequency_cepstrum) (MFCCs) of a signal are a small set of features (usually about 10-20) which concisely describe the overall shape of a spectral envelope. In MIR, it is often used to describe timbre." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Download an audio file:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "text/plain": [ "('simple_loop.wav', )" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "url = 'http://audio.musicinformationretrieval.com/simple_loop.wav'\n", "urllib.urlretrieve(url, filename='simple_loop.wav')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Plot the audio signal:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\ngEIhCAIAAABQKARBAAAAAAol8xLZkjQxMaGtW7fq5Zdflu/7+t73vqd58+alrz/zzDN66KGH5Hme\nli9frsHBwSnfA7Sier/XQ0ND+trXvpb+2SNHjmjz5s1auXKlPvvZz6pSqUiSLr30Um3fvr0p4wey\n9te//lU/+MEPtHfv3knf3717t379619r5syZkqTvfve76u/v13e+8x3mBbSd06dP695779W//vUv\njY6O6q677tLSpUvT15966int2bNHzjktWLBAW7dulTGGuQFtZ3x8XPfff79effVVGWP0wAMPTGqt\n09CYIWyAP/zhD+GWLVvCMAzDQ4cOhXfddVf62ujoaHjzzTeHb731Vjg6OhouX748HBoaqvseoFWd\n7+/1wYMHw3Xr1oUTExPhyZMnw9tvv306hwlMi1/84hfhpz71qXDlypVnvLZ58+bwpZdemvQ95gW0\nq3379oXbt28PwzAM//vf/4Y33nhj+trIyEh40003hSdPngzDMAw3bdoU/vGPf2RuQFvav39/eO+9\n94ZhGIbPP//8tMYMDdkJOnjwoK6//npJ0tVXX60XX3wxfe2VV17RvHnz1N0dNf368Ic/rBdeeEGH\nDh0663t++ctf6re//a2stRoYGND999/fiCEDDVHvWkiEYaht27bpwQcflDFGR44c0cjIiDZs2KCx\nsTFt2rRJV199NdcCWl5/f79++tOf6utf//oZr7300kt6+OGHNTQ0pBtvvFFf/vKXz3n9cC2g1d16\n66265ZZbJEUZA8659LVSqaRf/epXKpVKkqSxsTF1dHQwN6At3XTTTfr4xz8uSfrnP/+pGTNmpK81\nOmZoSBB0/PjxdLtWkpxzmpiYkLVWx48fT/8yklQul3Xs2LGzvmd8fFxPPvmktm7dqoGBAT366KMa\nHx+fdLMA8qzetZB45plntGDBAs2fP1+S1NnZqQ0bNmhwcFCvvvqqvvSlL+n3v/891wJa3ic+8Qm9\n9tprZ33ttttu05o1a1Qul7Vx40Y9++yzzAtoW11dXZKiOeKrX/3qpNRoY4xmzZolSdq7d69GRka0\nZMkSvfzyy8wNaEvOOW3ZskX79+/Xj3/84/T7jY4ZGhIEVSoVDQ8Pp1/XPvR1d3dPem14eFg9PT1n\nfY9zTjt27NAjjzyi1157Tddcc41CeruihdS7FhK/+93vtG7duvTr+fPnq7+/P/333t5eDQ0NcS2g\nra1bty6d1D72sY/p8OHDzAtoa//+97+1ceNGrVmzRrfddtuk1yYmJvT9739fR48e1U9+8hNJXejv\nwQAAAgFJREFUzA1obzt37tTmzZu1YsUKPf300+ro6Gh4zNCQ6nCLFy/WgQMHJEmHDh3SwoUL09cu\nv/xyHT16VG+++aZGR0f1wgsv6Nprrz3nex577DE98MAD2rt3rw4fPqxDhw41YshAQ9S7FhIvvvii\nrr322vTrJ554Qjt37pQk/ec//9Hw8LDmzJnDtYC2dezYMX3605/WiRMnFIah/vznP2tgYIB5AW1r\naGhIX/ziF3XPPfdo2bJlZ7z+7W9/W6Ojo9q1a1eaFsfcgHb0m9/8Rj//+c8lSR0dHTLGyBgjqfEx\nQ0N2gm6++WY999xz+tznPidJ2rFjh5566imdOHFCK1as0JYtW7RhwwZNTEzojjvu0EUXXXTW90jS\nggULtHr1apXLZc2dO1eLFi1qxJCBhpjqWnjjjTcmbfVK0h133KFvfvObWrNmjSRp+/btaYUgrgW0\ng2SCq70W7r77bq1du1ZBEGjJkiW64YYbFIYh8wLa0sMPP6xjx45p165d2rVrlyRpxYoVGhkZ0cDA\ngPbt26frrrtOa9eulRTtlDI3oB3deuut2rJliz7/+c9rbGxM9913n/bv3z8tMYMJ2TcFAAAAUCA0\nSwUAAABQKARBAAAAAAqFIAgAAABAoRAEAQAAACgUgiAAAAAAhUIQBAAAAKBQCIIAAAAAFApBEAAA\nAIBC+X/vCG9V6mcf7wAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x, fs = librosa.load('simple_loop.wav')\n", "librosa.display.waveplot(x, sr=fs)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Play the audio:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IPython.display.Audio(x, rate=fs)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## `librosa.feature.mfcc`" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "[`librosa.feature.mfcc`](http://bmcfee.github.io/librosa/generated/librosa.feature.mfcc.html#librosa.feature.mfcc) computes MFCCs across an audio signal:\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(20, 130)\n" ] } ], "source": [ "mfccs = librosa.feature.mfcc(x, sr=fs)\n", "print mfccs.shape" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "In this case, `mfcc` computed 20 MFCCs over 130 frames." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "The very first MFCC, the 0th coefficient, does not convey information relevant to the overall shape of the spectrum. It only conveys a constant offset, i.e. adding a constant value to the entire spectrum. Therefore, many practitioners will discard the first MFCC when performing classification. For now, we will use the MFCCs as is." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Display the MFCCs:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAy0AAAEMCAYAAADJf1m8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHltJREFUeJzt3X2spVV5KPDn3ft8zZzhwym0WK2CVGuLty22muqtNSVt\npdHemFanfDiS1Ku5SXtDuCqXVjvWhkSs5RpTIZLW/sGUOpYLpUia20Cgt41NLRGRUC83iIiVekEY\nHObrzNlnv+/9Y5yBOaznzLycfThr4PdLSHjXXvt517vWs9bmmT26m67rugAAAKjUYL0HAAAAsBJF\nCwAAUDVFCwAAUDVFCwAAUDVFCwAAUDVFCwAAULWp1QbY/elLD//7xvP/W+z73P9YsX83HpdfaNvV\nDuXZGZTrtnScE9I0Ta/+ff+fqbP4k4rTDIe94qT3zda977r0jJP1X81zbXr3f48913681/uPxaTW\noF1a6hU/M5idKbZ3bb817p0Ta61vrkxP9wq/5mdfz/H3la3X0/Nw/sIPxN7r/vhge3YGJfOQxu8b\nJ8nDZtAvz7P57DueicnG0/fMGo36xe95PqR5+ALw9PwHDlq+L068+MpnHWuip8vwB06bZDg4rgxP\nefF6DwHWlT3AC5n8h2ea5L544f6RCAAAcFxQtAAAAFVTtAAAAFVTtAAAAFVTtAAAAFVTtAAAAFVT\ntAAAAFVTtAAAAFWbWnWE5b+2/P3rvr8OnP2qb99fcE/1/FXoSf2ifPpr4JP69eGe+j5XOyr/ivow\n+TXwbB2zp+qbJ2n/vr8W3fNXpDODZfM5mHr2W6rvs01qb/T+JfLkF8fTXD/Oz4KJxc/ae+buev3y\nert/odg+tfHInD+UN81UchYkZ0f2S+3puifzkP3yfd9fjk9l6zWhX4LP1jf9bOiZV6nKPqsAlvNN\nCwAAUDVFCwAAUDVFCwAAUDVFCwAAUDVFCwAAUDVFCwAAUDVFCwAAUDVFCwAAUDVFCwAAUDVFCwAA\nULWp1QYYLxxY8Xq5ZmqYBBqX2wdJXdW2Rxvammiaptjedd1zPJLnRpfMc5esVzNM1jfTM35mMNUv\nldulpWJ7Nv70uSaYh9k9asutdmFhMoGyvb1eZ0HPOO3i4kTilE+UfO+t25mY5OHyvXToepCMsxkk\nez6Jn50FXVvuP5idKd83ObvTdUzGP1jjz4CJnTXr9BnZ+75ZPgMs47QAAACqpmgBAACqpmgBAACq\npmgBAACqpmgBAACqpmgBAACqpmgBAACqpmgBAACqpmgBAACqpmgBAACqpmgBAACqNvVc37Bpmn5v\naNtic9d1ExhNRJPEP95Nan6mT9xUbG+mp8tvSNa3G4/L3aeGvdq7NnmubB0H5bq8GZbjZ7LxL7/v\n0/tla5DdO23P9kA2puyZ++69NVbdWTCh8ay5dToTp+Y3lvvPzhxxPfx+vybJwy6J3yR7O9sX3TDJ\n/54mdRak8589b3bfZN6y9vRszfI5iw9QOacXAABQNUULAABQNUULAABQNUULAABQNUULAABQNUUL\nAABQNUULAABQNUULAABQNUULAABQNUULAABQtanVBujatng9mBoW+zfDcns3Hq92KActG8/R7psa\nJPVcEn9Suq5b0/h9NTMzaxq/a5PnTea59/wkedU0Tb84mWV5dUSeJWPtfe8sF9cpV8YHFovt2R7r\nfRYkz9X7jJjUWZBI5yFZr8F0+bjtOw/pGZS1J+Ppm4fN9HS5fVn87PmPqu+e73kWp7vl2Y53mWw2\n+9639/mQ9F+vz5K+953QSQy8APimBQAAqJqiBQAAqJqiBQAAqJqiBQAAqJqiBQAAqJqiBQAAqJqi\nBQAAqJqiBQAAqJqiBQAAqJqiBQAAqNrUagMMpobl60G5HmqXlortTdOsdigH4wyHR+/0NF3XleO0\nba/+qWQeekvGs9b37UbJes3OlN+QjLPJxpOsVzbLaZZMan56rvtKeds3F5tBzz3Qlvt343G/OJlk\njgbT08X2dPwTOguy9nRtJnUWZONJ4i8/E596YTLzkJ5BSfxJna1ZXjXTyz5Gnu39svFne3JCZ1y2\njuk+ys6abL9MrfpjdsX4Man9nuidhwBrxDctAABA1RQtAABA1RQtAABA1RQtAABA1RQtAABA1RQt\nAABA1RQtAABA1RQtAABA1RQtAABA1RQtAABA1aZWG6CZnl7xerluPO4Vv+u6fgMa9KzDkvH0vm9f\nbVtu7zv+SUnGk67XwkKv8F2bzGd2377z33M+mwndd3n/p19n90hjZd2TZ1jzHE0MZmeK7U3TFNuz\ncR7vZ8HUxg29+qd65kkmm/++85CuS9LeLhxY8fqZb+h51vSUzX+an1mgvuuSPVfW/3j5rJqQND8B\njpFvWgAAgKopWgAAgKopWgAAgKopWgAAgKopWgAAgKopWgAAgKopWgAAgKopWgAAgKopWgAAgKop\nWgAAgKpNrTZANxoVr9ulcbF/MyjXSV0Svxk05ReSONG2SaSe+sbJxrPW9+0bp+84kzjN3IZeYZqu\nvMJdFr9NMiLLh6x/V47fJf2T6Ok8dMlzHe21PveIcXkvpSa1N7JnTsbTJnOarvFxfha0i4u9wmQ5\n11c2D10yD82E5iFb9+HGI8+CwezMynH67vlkD/eVzn82P8NhOU52liXz0zTZmdX/TOkTZ2KfSQCV\ncKoBAABVU7QAAABVU7QAAABVU7QAAABVU7QAAABVU7QAAABVU7QAAABVU7QAAABVU7QAAABVU7QA\nAABVU7QAAABVm1ptgGY4LF5n1dD4wGI5ziB7x7DY2kRbbO+SKH11bTlSM2gmdId+svFk0nG25XlL\n40yV578bLfWKE12/+6bGWfhkfpLn7bpJZUquacprMLF7p3tmQv2TuRvMzBTbu3F5cbL24+UsyGTz\n0C4le6Mtz0M7GhXbs3loBuVju1tKNseEzqz0eZet46Hr7Azqu1cnJd13a3zfdN9N6r5ZniTnD8Dx\nyjctAABA1RQtAABA1RQtAABA1RQtAABA1RQtAABA1RQtAABA1RQtAABA1RQtAABA1RQtAABA1RQt\nAABA1aZWG6AdLRWvu7Yt9m+Gw3Kgris3J3G6cnOqGdRVn3Vt+XnXOn4zaHr1bw8sFtsHGzck8ZN5\nbladagcleRJJnmSavvOfJNzyeTsiv7Mx9d0bk8rdnnPUJfcdLxwo9++7Bmt8Fqz1nl/au28icdJ5\nSLRL4179JzU/S/v2F9unT9y0LO73z5jkuQYzk1n3VHb2Zf2PcW8f1bjnuiTP2zcf1lzf+QdYI3X9\nlzwAAMAyihYAAKBqihYAAKBqihYAAKBqihYAAKBqihYAAKBqihYAAKBqihYAAKBqihYAAKBqihYA\nAKBqU6sNMD6wWLxuBk2xfzMo10nt4qjYPpiZ7jegpnzfrm17jae3JP6kZOPPZM/VtV2vOO1oqfzC\nvv3F5sHcXHk8U8NkPP3WJZ2H8bjcnkjnIYufjKeZnkqvu2TusmfL9kw0PXO0Kz9D1/PPKJpkLpbv\n+aMZJGufmdRZMKk9k2mX+uVcNg9dkrtdEn+9zsRsnONlZ8Gh6+wsSPU8mzLZOPP7Jvul6zeewXT5\n4zRbxxiW86FJ2nub0GdSl+2LZJ6bLN+S+UxOPYBn8E0LAABQNUULAABQNUULAABQNUULAABQNUUL\nAABQNUULAABQNUULAABQNUULAABQNUULAABQNUULAABQtanVBhjOzqx4vVw3HhfbBzPT5Tc0TRKo\nO+rY1kLXTua+XdtOJE7f+M2gX506tWljOc7cXO8xFeMMh73aI8mfbFWy52165lU3GiV3yA2SvZCu\nfd/cGiTP0CbPPOiXc13yZxqDqWRtkjnN1iCbh95nwToZTJePzzTnkvVqR0vl/jPJXl2nM3Fq03yx\nfTh/5BkxdfJJz+4Gg2T82VmQ7aNsXyTS/FxKzprsDEr2bzNdzuemK48/jdPzubL921eTzXOSh906\nfTYDz3++aQEAAKqmaAEAAKqmaAEAAKqmaAEAAKqmaAEAAKqmaAEAAKqmaAEAAKqmaAEAAKqmaAEA\nAKqmaAEAAKo2tdoAXduueL1cMxyuKv5TgZpecdba0Z77mW/o1mYghyTz03eczfR0Oc6BxX7j6bJ1\nLNfN3SAZ/2gpCZM9b795bqaS/EzythkMVrwu6jmmSJ6td/82GVuyNtmcZns4y62s/Zjm6hji5G9I\n5nmNz45uPC63t+X7DqbLx3CWu5M6E/vO/2BmpjyexcUVr5/RP3muLN9iNCrHWSrPcyTPlZ4RyXpl\nZ1M6zqR/X2n8NY7T96xM9d2nPf+bAHjh8k0LAABQNUULAABQNUULAABQNUULAABQNUULAABQNUUL\nAABQNUULAABQNUULAABQNUULAABQNUULAABQNUULAABQtanVBujG4+J113blN7Rtr/iDmenyfXvG\naYbDicSJrvxcveNMSDNI6s5knHmgptjc7l8od5+d6TeeppxqzXR5fbM86ZJ1TCXjaZLnXZ7Ph/tn\n41zuaePrRqNje8+he0xNKEcnJNvD4yQnsrlO9d3DyfxksvEPpsu52Hee29FSr/6ZpX37e/UfJntv\nrY33l8c53LDhyIbm+3kwKO+xwXSSJz33dpPs1d6y+6bxe+7T7LMw02Rn+vqcA5ku/SwstzdJPgAc\nK9+0AAAAVVO0AAAAVVO0AAAAVVO0AAAAVVO0AAAAVVO0AAAAVVO0AAAAVVO0AAAAVVO0AAAAVVO0\nAAAAVZtabYClvftXvF5uODvTK367OOrVv+u6YvukqrNuadzrvk3TlAMNJjWitlfvpud9l/aV13Ow\nuFhunymvbzM93eu+kcxn1/Z73hgtleMMknVpy/eNpH8zHC57/1Pjy+a6S9YsfbZsTH112X2T+Ml4\nBskeXtqzL4lfjtP7LEjWMttj2Z7M1j6dh57G+xd69e87D9kZNCnZPHTj8n2Xn9GjXU9GRMRww1yx\n/2A6+djJ8j+5b6pJ9l0S5xl7+PAbep41WZzsrMkea0L7tPdnTBIn3UfZZ2F6RpfHk8wOwDP4pgUA\nAKiaogUAAKiaogUAAKiaogUAAKiaogUAAKiaogUAAKiaogUAAKiaogUAAKiaogUAAKiaogUAAKja\n1GoDzJ26uXjddV2x/9LuvcX2drRUbG+mhr3G0y2Ni+3jtu0VJ9WWnyvTDZpie+9qcTCZ+rJL5qFJ\n4s/+8Gnl/lPT5fiLB8rtST40TXl+0v7F1hUk05bNQyTrla17OzryeduFp667cTkXs2dO13hSuZvI\n5jq7b5orP3ByOX4yD0t795dv2/MsyMbf+yzoubdnl519h0yfuKk8nmwesjMxy59k/tOczp4riZ/1\n3/AjLy62D+fnj7iee+kPHxzPaFTsn81Dmv99nzfRDJKPu2x+muS+yfi7A+V8TvU905PnTfdvIj1/\nekrXMTvTs/4Ax8g3LQAAQNUULQAAQNUULQAAQNUULQAAQNUULQAAQNUULQAAQNUULQAAQNUULQAA\nQNUULQAAQNUULQAAQNWmVhvg3/73PYf//axLnrqemi2H3njKCeWBzM2U2+fniu3t4lK5fVRu723Q\nFJubpl+dN5gq9+8G/eI0bVuO07PubJLnyuz/1sPl+47H5fjDYbF9MFVujyaZ52R+umwesvH0nedk\n/Jnl41nas/eo926yuchkz9x2xzSmo40nk+XKo1+5v9g+2j8qtmdnwYbNm4rt0xtny3EqOwsevePu\nXmF6z8Om8vNObSjPz3ihPP/Z3uhr4TuPluMvPRV/Q0Tsue/rERExmE4+XrJ90fNsyjx9PEfE77nv\n+p5BaZyeZ2Lffd13ffuecdk8tIvlfMvWNxvncOOGXuMBXrh80wIAAFRN0QIAAFRN0QIAAFRN0QIA\nAFRN0QIAAFRN0QIAAFRN0QIAAFRN0QIAAFRN0QIAAFRN0QIAAFRtarUBXvy6Vxavu7Yr9l/au7/Y\nPkraF763t9g+XlwqtjeDptg+mBom7eW6Les/nClPWTMox+mS8XRtW2zPNMPyeNbaYLr8vFMnnTCR\n+M3sTPmFJH+60ajc3iX9x+N+42mS9UriN+2R/Z+eN+MDi+VY+xd63aNb6vcMke2BLIeS3M320ok/\ncmqxffqEjUcf29OMk3lY3L2v2N73LMj2drZX+54Fp539inL/melie2a0u/xc6Tzs3FNsb3vmSd8z\nMVvf2VM3F6+zvZRpppN568pnZbYvsj2f7a/IzuLsTO953zY5B8YL/fZ73/VNPwuT/MzWq0nypB2V\n913f/QhwrJwiAABA1RQtAABA1RQtAABA1RQtAABA1RQtAABA1RQtAABA1RQtAABA1RQtAABA1RQt\nAABA1RQtAABA1RQtAABA1aZWG+D//M87D//7f/zQU9ejhaVi//0PLxbbx/vaYvv0icNi+6aXbyi2\nbzxlY7F97sTZcvyN5fbhTL+pyfp3bVd+Q9Y+aMpxunL/cu/J+cb/+kqxfWbTTLF99oS5YvvGU04o\ntm845eRiezNVXvdsPtsD5bwa7d1fbt93IGkvx2mXxkcdz0kR8f/u/L+Hr5tkLQfJs2U51Ld9kPWf\nLrc3g/KfXWRr8J2vfLPYvn9nea7Ho/Le3vfthXL//eX+U9lZ8NK1PgvKOffNO/612L50oHz2LS2U\nc+jJB/YV2/ueiSecUX7ebB5mkz08s6m8hx+8vfy8T5/P/3BxxEO3fvlg/OQs2LB5U7n91OQsGJaf\nN9ry/LSj8vwv7i7Pc3YWLC2MkvbyGZGdTZPa74Op8j7N40wX2/uOs0k+e8aL5XleeGJ3sX325Pli\nO8Cx8k0LAABQNUULAABQNUULAABQNUULAABQNUULAABQNUULAABQNUULAABQNUULAABQNUULAABQ\nNUULAABQtanVBviB628qXj+5tKnY/98eObnY/t0numL7zidGxfZd3ztQbN/z5P5i++JCOc6BhcVi\n+3g0LrYvjZbK/RfK/dtxvziZrm2T9vK89Y7TleO856NXFdvfuevqYvvCffcV24cbNxTbp1/y0mL7\n0mkvL7bvflG5/fGpHyq2f3fhpGL7I7vmynF2NeU4j5fXa9eup/LwkxHxmTfdcPh67+5yji7sL+fc\ngX3l9ixXRgfKOb20p9w/y8V2KWlPcuKt//XsYvsbXrm72N5EeU4fffSEYnt2Fjy+MzsLForte3aV\nz4IDyVmwmJwF2fz/5z8+s9j+ypO/U2zfPS6fiTsfLZ+Jj32v2ByPfrc8zmwe9u4uty8k+TZaLM/P\nm7ecUWx/b3fNEdev/C/nHYz/tX8t9h/OzRbbp19aPgvGP/SyYvvuzacX2x+bfnGxve9Z8N3vlfP2\nscfL8/Pkk+X53PNkv/nPPqt6nwP7+p0D2WfJOOk/NV3+z4f5k8p5vu+xvcX2J+97oth+PPrixRG/\nett/Wu9hQFWW74svXvzsY/mmBQAAqJqiBQAAqJqiBQAAqJqiBQAAqJqiBQAAqJqiBQAAqJqiBQAA\nqJqiBQAAqJqiBQAAqJqiBQAAqFrTdV233oMAAADI+KYFAAComqIFAAComqIFAAComqIFAAComqIF\nAAComqIFAACo2opFS9u2sW3btjjvvPNi69at8a1vfeuI12+//fZ4xzveEeedd15cf/31x/QeOF6s\nlMuPPfZYbN269fA/r3vd6+Lzn//84dcff/zxePOb3xwPPvjgegwdJuarX/1qbN26NX3993//9+PK\nK6+MiIjFxcW49NJL47zzzot3vetdcd999z1Xw4SJG41G8cEPfjAuvPDCeOc73xm33377Ea/fcsst\nsWXLljj//PPjIx/5SHRdF+PxOH73d383zj///Ljgggvi/vvvX6fRw9o4Wo6vZW0wtdKLt912W4xG\no9ixY0d89atfjSuuuCKuvvrqiDi4ma+44oq44YYbYm5uLs4///w455xz4stf/nL6HjierJT/p5xy\nSmzfvj0iIr7yla/Epz71qdiyZUtEHNwb27Ztiw0bNqzb2GES/vRP/zRuvvnmmJ+fL76+Y8eOuP/+\n++P1r399RERcf/31MTc3Fzt27IgHH3ww3v/+98eNN974XA4ZJuYLX/hCbN68OT7xiU/Erl274u1v\nf3ucc845ERGxsLAQn/rUp+KWW26J2dnZeP/73x933HFHtG0bg8EgPve5z8W//Mu/xCc/+Un/DcTz\nyh133JHm+FrXBisWLXfddVe86U1vioiIn/qpn4p777338GsPPPBAvOxlL4sTTjghIiJ+5md+Ju68\n8864++67i++57rrr4m/+5m9iMBjEa17zmvjwhz/ce7DwXFop/w/pui4uv/zyuPLKK6NpmoiI+KM/\n+qM4//zz45prrjncT/5zPHr5y18en/70p+PSSy99xmt33XVX3HPPPfGbv/mb8Y1vfCMiIr7+9a/H\nL/zCL0RExBlnnBGPPPJI7N69O26++Wb5z3Hn3HPPjbe85S0RcfBPiofD4eHXZmdn4/Of/3zMzs5G\nRMTS0lLMzc3FG9/4xvjFX/zFiIh4+OGH46STTooInwE8f/zSL/1SMccj1r42WPGvh+3Zsyc2bdp0\n+Ho4HEbbtodfOzSoiIj5+fnYvXt38T3j8Tj++q//OrZt2xY7duyIM888M8bj8dFnBtbRSvl/yO23\n3x6vetWr4vTTT4+IiBtvvDE2b94cP//zPx8RB4uaiJD/HJd+5Vd+5Yj/UDvk0Ucfjauuuiq2bdt2\nOMcjIn78x3887rjjjoiIuPvuu2Pnzp2xb98++c9xaePGjTE/Px979uyJiy++OC655JLDrzVNE5s3\nb46IiO3bt8f+/fvjjW98Y0Qc/Ky47LLL4vLLL49f+7VfiwifATy/PD3H3/a2tx1uX+vaYMVvWjZt\n2hR79+49fH3oa8+IiBNOOOGI1/bu3Rsnnnhi8T3D4TA+9rGPxZ//+Z/Ht7/97fjpn/7pIz7ooEYr\n5f8hX/jCF+Kiiy46fH3jjTdG0zTxT//0T3HffffFZZddFldffbX853nl7/7u7+KJJ56I9773vfHY\nY4/FwsJCnHnmmfEbv/Eb8cADD8QFF1wQr33ta+P000+PF73oRfKf49Z3vvOd+J3f+Z248MIL461v\nfesRr7VtG5/4xCfioYceij/5kz854rUrrrgiPvCBD8SWLVvib//2b+0BnneW5/jc3Nya1wYrftPy\n2te+Nv7hH/4hIg7+qdmP/diPHX7tFa94RTz00EOxa9euWFxcjDvvvDPOPvvs9D1/9Vd/FR/96Edj\n+/bt8bWvfS3uvvvuntMDz62V8v+Qe++9N84+++zD13/xF38R27dvj+3bt8erX/3q+PjHPx6nnHKK\n/Od5ZevWrXHjjTfG9u3b433ve1+87W1vi7e//e1xzz33xM/93M/FX/7lX8Zb3vKWOPXUU2NmZkb+\nc1x67LHH4rd+67figx/8YPz6r//6M17ftm1bLC4uxlVXXXX4r4nddNNNh/9q8NzcXAwGg2iaxh7g\neWN5jjdNc/ivx691bbDiNy2//Mu/HF/84hfjvPPOi4iIj33sY3HLLbfEvn37YsuWLXHZZZfFe97z\nnmjbNt7xjnfED/7gDxbfExHxqle9Ki644IKYn5+P0047LX7yJ3/y2c4XPCeOlv87d+484mvQlch/\njmeHPpCenv+l188444y45JJL4pprromZmZm4/PLLI0L+c3z6zGc+E7t3746rrroqrrrqqoiI2LJl\nS+zfvz9e85rXxA033BA/+7M/G+9+97sjIuKiiy6Kc889Ny677LJ417veFUtLS/F7v/d7MTs7aw/w\nvLE8xz/0oQ/Frbfe+pzUBk3nO0oAAKBiflwSAAComqIFAAComqIFAAComqIFAAComqIFAAComqIF\nAACo2oq/0wIAERF/+Id/GHfddVeMRqN46KGH4kd/9EcjIuKb3/xm3HrrrXHqqaeu8wgBeD7zOy0A\nHLOHH344tm7dGrfffvt6DwWAFxDftABwzJb/Odc555wT27dvjy996Uvx93//9/Hoo4/GI488Ehdd\ndFH8+7//e/zzP/9znHzyyfFnf/ZnMTMzEzfddFNce+210bZtnHXWWfGRj3wkZmZm1ulpADhe+N+0\nALAqTdNERMS9994bn/3sZ+O6666LK664It785jfHzTffHBER//iP/xj3339/XH/99bFjx4646aab\nYvPmzfHZz352PYcOwHHCNy0ArMqhb1/OPvvsmJ+fj/n5+YiIeMMb3hARES95yUviySefjC996Uvx\n0EMPxZYtWyIiYjQaxVlnnbU+gwbguKJoAWAilv81r8HgyC/z27aNc889Nz784Q9HRMTevXtjPB4/\nZ+MD4Pjlr4cB8Jx4/etfH7fddlvs3Lkzuq6LP/iDP4hrr712vYcFwHHANy0A9HLof8Ny6N8P/ZP1\nOXT96le/On77t387LrroomjbNn7iJ34i3ve+9z0nYwbg+Ob/8hgAAKiavx4GAABUTdECAABUTdEC\nAABUTdECAABUTdECAABUTdECAABUTdECAABUTdECAABU7f8D6oNnwQdaWMcAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "librosa.display.specshow(mfccs, sr=fs, x_axis='time')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Feature Scaling" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Let's scale the MFCCs such that each coefficient dimension has zero mean and unit variance:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ -4.64585635e-16 -1.63971401e-16 -1.09314267e-16 -1.09314267e-16\n", " 0.00000000e+00 1.09314267e-16 0.00000000e+00 -1.09314267e-16\n", " -1.09314267e-16 -2.73285668e-17 1.09314267e-16 -8.19857003e-17\n", " 5.46571335e-17 0.00000000e+00 2.73285668e-17 -4.09928501e-17\n", " 1.09314267e-16 8.19857003e-17 9.56499837e-17 6.83214169e-17]\n", "[ 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.\n", " 1. 1.]\n" ] } ], "source": [ "mfccs = sklearn.preprocessing.scale(mfccs, axis=1)\n", "print mfccs.mean(axis=1)\n", "print mfccs.var(axis=1)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Display the scaled MFCCs:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n+0DSqcq8Hc3XeUffV73YcVxhOsqdYvcDTIWj18UvX3rwTQsAAAAAr1G0AAAAAPAaRQsAAAAAr1G0\nAAAAAPAaRQsAAAAAr1G0AAAAAPAaRQsAAAAAr1G0AAAAAPAaRQsAAAAAr1G0AAAAAPBakGVZdrI7\nAQAAAAAufNMCAAAAwGsULQAAAAC8RtECAAAAwGsULQAAAAC8RtECAAAAwGsULQAAAAC8dsyiJU1T\nu+mmm+zqq6+2tWvX2vbt2494/cEHH7T3ve99dvXVV9tdd931C70HmC6ONZf37dtna9eunfzvwgsv\ntDvvvHPy9f3799tll11mW7ZsORldB6bMk08+aWvXrnW+/gd/8Af22c9+1szM2u22ffzjH7err77a\nPvjBD9pzzz33anUTmHKdTsc+9rGP2XXXXWfvf//77cEHHzzi9fvvv9/WrFlj11xzjd18882WZZkl\nSWKf+MQn7JprrrFrr73WNm3adJJ6D/xq/Gtz/FdZG+SO9eIDDzxgnU7H1q9fb08++aTdeuut9oUv\nfMHMXl7Mt956q919991WKpXsmmuusdWrV9vjjz/ufA8wnRxr/vf399u6devMzOynP/2pff7zn7c1\na9aY2ctr46abbrJyuXzS+g5MhS9/+ct27733WrVala+vX7/eNm3aZBdddJGZmd11111WKpVs/fr1\ntmXLFvvoRz9qGzZseDW7DEyZ++67z/r6+uwzn/mMDQ8P23ve8x5bvXq1mZk1m037/Oc/b/fff78V\ni0X76Ec/ag899JClaWphGNo3v/lNe/TRR+1zn/scfwbCKeWhhx5yzvFfdW1wzKLliSeesDe/+c1m\nZnbOOefYM888M/naCy+8YKeffrrV63UzM3v9619vjz32mG3cuFG+54477rC/+qu/sjAMbdWqVfap\nT33quDsLvJqONf9fkWWZ3XLLLfbZz37WgiAwM7M/+7M/s2uuuca+9KUvTZ7H/Md0tGDBAvuLv/gL\n+/jHP/4vXnviiSfsqaeesg984AO2efNmMzN7/vnn7S1veYuZmS1atMgGBwdtdHTU7r33XuY/pp0r\nrrjCLr/8cjN7+W+KoyiafK1YLNqdd95pxWLRzMziOLZSqWSXXnqpve1tbzMzs507d1p3d7eZ8RmA\nU8fb3/52OcfNfvW1wTH/edjY2JjVarXJ4yiKLE3Tydde6ZSZWbVatdHRUfmeJEns29/+tt100022\nfv16W7JkiSVJ8q+PDHASHWv+v+LBBx+05cuX28KFC83MbMOGDdbX12dvetObzOzlosbMmP+Ylt75\nznce8Qe1V+zZs8duu+02u+mmmybnuJnZypUr7aGHHjIzs40bN9rQ0JA1Gg3mP6alSqVi1WrVxsbG\n7MMf/rB95CMfmXwtCALr6+szM7N169bZxMSEXXrppWb28mfFjTfeaLfccov9+q//upnxGYBTy+Fz\n/Morr5zMf9W1wTG/aanVajY+Pj55/MrXnmZm9Xr9iNfGx8etq6tLvieKIvv0pz9tX/va1+zFF1+0\nc88994gPOsBHx5r/r7jvvvvs+uuvnzzesGGDBUFgP/rRj+y5556zG2+80b7whS8w/3FK+e53v2sH\nDhyw3/qt37J9+/ZZs9m0JUuW2Hvf+1574YUX7Nprr7Xzzz/fFi5caL29vcx/TFsvvfSS/e7v/q5d\nd9119u53v/uI19I0tc985jO2bds2+/M///MjXrv11lvt937v92zNmjX2ne98hzWAU87Rc7xUKv3K\na4NjftNy/vnn2w9+8AMze/lvzc4444zJ1xYvXmzbtm2z4eFha7fb9thjj9l5553nfM+3vvUt+6M/\n+iNbt26dPfvss7Zx48bjHB7g1XWs+f+KZ555xs4777zJ469//eu2bt06W7duna1YscL+9E//1Pr7\n+5n/OKWsXbvWNmzYYOvWrbMbbrjBrrzySnvPe95jTz31lF1yySX2jW98wy6//HIbGBiwQqHA/Me0\ntG/fPvuN3/gN+9jHPmZXXXXVv3j9pptusna7bbfddtvkPxO75557Jv9pcKlUsjAMLQgC1gBOGUfP\n8SAIJv95/K+6NjjmNy3veMc77OGHH7arr77azMw+/elP2/3332+NRsPWrFljN954o/3mb/6mpWlq\n73vf+2zmzJnyPWZmy5cvt2uvvdaq1arNnj3bXve61/2y4wW8Kv61+T80NHTE16DHwvzHdPbKB9Lh\n81+9vmjRIvvIRz5iX/rSl6xQKNgtt9xiZsx/TE9f/OIXbXR01G677Ta77bbbzMxszZo1NjExYatW\nrbK7777bLrjgAvvQhz5kZmbXX3+9XXHFFXbjjTfaBz/4QYvj2D75yU9asVhkDeCUcfQc//3f/337\n3ve+96rUBkHGd5QAAAAAPMYvlwQAAADgNYoWAAAAAF6jaAEAAADgNYoWAAAAAF6jaAEAAADgNYoW\nAAAAAF475u9pAQDAzOyP//iP7YknnrBOp2Pbtm2zpUuXmpnZ1q1b7Xvf+54NDAyc5B4CAE5l/J4W\nAMAvbOfOnbZ27Vp78MEHT3ZXAACvIXzTAgD4hR3991yrV6+2devW2SOPPGLf//73bc+ePTY4OGjX\nX3+97dq1y3784x9bT0+PfeUrX7FCoWD33HOP3X777ZamqZ111ll28803W6FQOEl3AwCYLvjftAAA\nTkgQBGZm9swzz9hXv/pVu+OOO+zWW2+1yy67zO69914zM/vhD39omzZtsrvuusvWr19v99xzj/X1\n9dlXv/rVk9l1AMA0wTctAIAT8sq3L+edd55Vq1WrVqtmZvaGN7zBzMxOO+00GxkZsUceecS2bdtm\na9asMTOzTqdjZ5111snpNABgWqFoAQBMiaP/mVcYHvllfpqmdsUVV9inPvUpMzMbHx+3JEletf4B\nAKYv/nkYAOBVcdFFF9kDDzxgQ0NDlmWZ/eEf/qHdfvvtJ7tbAIBpgG9aAADH5ZX/DcsrP7/yn+uc\nV45XrFhhv/M7v2PXX3+9pWlqZ555pt1www2vSp8BANMb/5fHAAAAALzGPw8DAAAA4DWKFgAAAABe\no2gBAAAA4DWKFgAAAABeo2gBAAAA4DWKFgAAAABeo2gBAAAA4DWKFgAAAABe+3+pjK0X2kWNXwAA\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "librosa.display.specshow(mfccs, sr=fs, x_axis='time')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "## `essentia.standard.MFCC`" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "We can also use [`essentia.standard.MFCC`](http://essentia.upf.edu/documentation/reference/std_MFCC.html) to compute MFCCs across a signal, and we will display them as a \"MFCC-gram\":" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "slideshow": { "slide_type": "skip" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(134, 13)\n" ] } ], "source": [ "hamming_window = ess.Windowing(type='hamming')\n", "spectrum = ess.Spectrum() # we just want the magnitude spectrum\n", "mfcc = ess.MFCC(numberCoefficients=13)\n", "frame_sz = 1024\n", "hop_sz = 500\n", "\n", "mfccs = numpy.array([mfcc(spectrum(hamming_window(frame)))[1]\n", " for frame in ess.FrameGenerator(x, frameSize=frame_sz, hopSize=hop_sz)])\n", "print mfccs.shape" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Scale the MFCCs:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true, "slideshow": { "slide_type": "skip" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python2.7/site-packages/sklearn/preprocessing/data.py:153: UserWarning: Numerical issues were encountered when centering the data and might not be solved. Dataset may contain too large values. You may need to prescale your features.\n", " warnings.warn(\"Numerical issues were encountered \"\n", "/usr/local/lib/python2.7/site-packages/sklearn/preprocessing/data.py:169: UserWarning: Numerical issues were encountered when scaling the data and might not be solved. The standard deviation of the data is probably very close to 0. \n", " warnings.warn(\"Numerical issues were encountered \"\n" ] } ], "source": [ "mfccs = sklearn.preprocessing.scale(mfccs)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Plot the MFCCs:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzsAAAEMCAYAAADjz6gTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8lNXd///3JIQQAiEJm4RNQSSAyi1utFVU2mJotQVt\niyhYq4/6LbK0SmlRWRQBrYj6qKAoeusNUnFHaa13b0TFpVUUUREQUJQAYV+yEMgy8/vDR+Y3MJ8P\nWUgmZHg9/5p553hd57rOuc54mOScQCgUCgkAAAAA4kxCfVcAAAAAAOoCkx0AAAAAcYnJDgAAAIC4\nxGQHAAAAQFxisgMAAAAgLjHZAQAAABCXGtV3BY5m2bJl4ddnn322Pv74Y0nSnj17zPJFRUVRWTAY\nNMsmJNjzvPz8fDNPTU018127dpl5SUlJlY/j1SUvL8/Mu3TpUq26bNmyxcxTUlKisvT0dLPs7t27\nzby0tNTMvfvYtGlTSdJtt92m6dOnh/NGjaK7YvPmzc1jvPLKK2beo0cPMy8rKzPzxMREMy8vL4/K\nkpOTzbLr168381NPPdXMN23aZObFxcVmvnfv3qis4h4eafv27WbuXafX7zwFBQVR2cUXXxx+PXv2\nbI0cOVKStHHjRvMYXt2tZ1eS/vu//9vMrfuyb98+s+yBAwfMvEmTJtWqi1d+27ZtUZn1bEl+P/Kc\nddZZZr5//34z37FjR1TmXX/jxo3NvKL8r371Kz333HPh3Lt+65yS/UwnJSWZZb3xdfPmzWb+n//8\nx8ybNWtW5dyrizd2effLawvvflVnzGzRooVZdvXq1WbuPesVn4OLFi3SoEGDovKqnNdri3PPPdfM\nv/nmGzP32trTt2/fqKxdu3Zm2UAgUK1jx4Nrr71W8+bNq+9qoJbQnsfmlltuMfMG881OdQdIHN+y\nsrLquwqoZZ07d67vKqAWZWZm1ncVUMu6detW31VALWvVqlV9VwG1iPasGw1msgMAAAAA1cFkBwAA\nAEBcqtPJzqeffqrhw4dLktasWaNrrrlGw4cP1w033OD+DQgAAAAA1IY6m+zMnTtXEyZMCP8x5vTp\n0zVx4kTNnz9fAwYM0Ny5c+vq1AAAAABQd5Odzp07a9asWQqFQpKk+++/X9nZ2ZK+Wx2ruqsSAQAA\nAEB11NlkZ8CAAYctg9m6dWtJ0ooVK7RgwQJdd911dXVqAAAAAFAgVPHVSx3YvHmzxo4dq2effVaS\n9Nprr2nOnDl6+OGH1aFDh0r/+6KiIpacBgAAAOC6//773X12Yrap6CuvvKLnnntO8+fPdzdKO1LF\nJqKS1K9fv/Amo2wq2vA3FZ01a5ZGjRoVztlUtOFvKvr3v/9dl112mSQ2FY2HTUV/97vfac6cOeGc\nTUUb/qaiX3zxhXr16hWVV+W8bCp6fLrlllt0//3313c1UEtoz7pR55OdQCCgYDCo6dOnKysrK/w/\nuOedd55Gjx5d16cHAAAAcIKq08lOhw4dtHDhQknSBx98UJenAgAAAIDDsKkoAAAAgLjEZAcAAABA\nXGKyAwAAACAuMdkBAAAAEJditvR0TVRsRHrk+8glqSNZS6C2bNnSLJuVlWXm3nKk3lLS3vLQ3hKo\n1rKjXlmPV0dvKWFveVHLwYMHq3WMwsJCM7eWnZUOv/7I19Y1ecsUe0uXtm3b1sxzc3PN3LuP1rKm\n1rLLkr8crbcMuHccb6lia/ltr428pW69pXS9fufdl06dOkVlRy51W/He64veMsje85WRkWHmn3/+\neVTmLQPu9Zfs7Gwz95aH9pYwt5bC9+rtLTHuLbPuPQMrV64087Vr10Zl3vV7S7VH1iXytdd23tLL\n1jL23njh9RfvufDyIz8zKuzcuTMqS0tLM8t6nxnes+ttVectBe+xzustpWwtjy/5427kmBH52lsG\n2xpLOnbsaJb1Phu8Onr9yDuO1X+9cfdEXHpa8u8HGibas/bxzQ4AAACAuMRkBwAAAEBcYrIDAAAA\nIC4x2QEAAAAQl5jsAAAAAIhLTHYAAAAAxCUmOwAAAADiEpMdAAAAAHGJyQ4AAACAuMRkBwAAAEBc\nYrIDAAAAIC4x2QEAAAAQl5jsAAAAAIhLTHYAAAAAxCUmOwAAAADiEpMdAAAAAHGpUX1X4GhKSkrM\n9z169DDLN2nSJCo7cOCAWbZZs2Zmnp+fX+VjS9KePXvM/Mi6V0hLS4vKioqKzLJJSUlmvmvXLjPf\nv3+/mXus83rX713P9u3bzbx169ZmXlxcbJ4rGAy69TxSmzZtzNy7j4cOHarysSVp7969UZl3X7p0\n6WLmmzZtMvPOnTubuddPt23bFpV5bZGdnW3m69atM/O+ffua+ZYtW8w8IyOj0rIV71NTU81jeG3k\nXVNhYaGZn3rqqVFZaWmpWbasrMzMvTpu2LDBzDt27GjmVh29Zzc9Pd3MvT4a+bxE6tSpk5mXl5dH\nZd71N2/e3Mw/+eST8Ouvv/46/Nrru/v27TPzhITof0vz7ovXL7znyOqLkv8cWW3kjTleHSPvRaQz\nzjjDzL1+1Lt3bzO3+oDVnpL/jJ533nlmHimy37dv394sEwgEojLvfnn3JTEx0cy9tvb6ulUX7740\nbtzYzOOd9ayh4aI9ax93FAAAAEBcYrIDAAAAIC4x2QEAAAAQl5jsAAAAAIhLTHYAAAAAxKU6nex8\n+umnGj58uCTp22+/1dChQ3XNNdfojjvuUCgUqstTAwAAADjB1dlkZ+7cuZowYUJ4Odi7775bt9xy\nixYsWKBQKKQ33nijrk4NAAAAAHU32encubNmzZoV/gZn9erVOvfccyVJ/fr10/vvv19XpwYAAACA\nupvsDBgw4LBNxSJ/ba1p06YqKCioq1MDAAAAgAKhOvzjmc2bN2vs2LF69tlnddFFF+ntt9+WJC1Z\nskT//ve/NXHixKP+98XFxUpJSamr6gEAAABo4B5++GHddNNN5s8axaoSPXr00IcffqjzzjtPy5Yt\n0/e+971K/5t169aFX/fu3VuffvqpJCkvL88sv3HjxqjswIEDZtlu3bqZ+datW828SZMmZv7OO++Y\nebNmzcw8LS0tKktOTjbLlpeXV/kYkrRnzx4z37dvn5lX55wlJSVmvn37djNv3bq1mRcXF0uSnnnm\nGQ0dOjScW/fLu4dff/21mbdq1crMvf7i3ffmzZtHZfn5+VUuK0mbNm0yc6/tvH66YcOGqMxri+zs\nbDOPfI4i9e3b18y3bNli5hkZGVHZzp07w68/+ugjnXPOOZKkRo3soaWoqMjM9+/fb+Yvv/yymVvt\nsWbNGrNsWVmZmXfp0sXMK8aZI3Xs2NHMP/zww6jMuleSlJ6ebuaR34JHuuCCC8x89+7dZm6Ngd71\nn3zyyWb+ySefSJImTpyou+66K5x37tzZLP/BBx+YeWZmZlSWlJRklvXGV+85OnjwoJl745c1TjVt\n2tQs69XRG3fOOOMMM//3v/9t5r179zbzQ4cORWXBYNAs+3//939mft5555n5rl27JEmfffaZzjzz\nzHDevn17s3wgEKhyXbzxwuvTFZ8BVc2vv/76qMx7jho3bmzm8eymm27Sww8/XN/VQC2hPetGnU92\nKgbN8ePHa+LEiSotLVXXrl2Vk5NT16cGAAAAcAKr08lOhw4dtHDhQknf/Svi/Pnz6/J0AAAAABDG\npqIAAAAA4hKTHQAAAABxickOAAAAgLjEZAcAAABAXIrZ0tM18dFHH4Vf9+7dO/y+ZcuWZnlrWdvU\n1FSzrLdksLfsqLc0cFZWlplbS3dK9vK1mzdvNst6y2h+8cUX1TqntwyutRyrt6Srt4yod18SEux5\ndGlpqfm6sLAwquzAgQPNY3j3xVum1ivvLXVq1d1bvrlDhw5m7i2D7S0D7m13Zd33888/3yzbokUL\nM/c28PXq4i3rah3nyOV4K96fffbZ5jG8vugta1uxDPKRrPvuXWfbtm3N3Ouj3pLUe/fuNXNrCWNv\nfDnttNPM/MsvvzRzbzltb9ypWGK4KmU9kcvyR772lg33lo22nrsePXqYZa0lsyXpoosuMnPvfn38\n8cdmbj1f3lL91hLQkrR69Woz9z6PPN64Y4293rjQp08fM/eWR48cpyP7q/fMWMvye/fLGxt79epl\n5t5nsvfZY7WHV9b7/I53dbhdIuoB7Vn7+GYHAAAAQFxisgMAAAAgLlU62Xn77bcPex8KhfTEE0/U\nWYUAAAAAoDZUOtm57777dMcdd+jgwYPauHGjhg4dquXLl8eibgAAAABQY5UuUPDiiy9q9uzZ+ulP\nf6pgMKjx48fr0ksvjUXdAAAAAKDGKv1mJzc3VytWrNApp5yi1NRUffTRR+4KXAAAAABwvKh0sjN8\n+HANHjxYjz/+uF588UU1atRIl19+eSzqBgAAAAA1VqVfY2vXrp2k79be//Of/6wBAwbUecUAAAAA\n4FhU+s1OSkqKJkyYoOHDh2vPnj269dZb3U33AAAAAOB4UelkZ+LEiTr99NO1b98+paamqk2bNho3\nblws6gYAAAAANVbpZGfz5s266qqrlJiYqOTkZN18883Ky8uLRd0AAAAAoMYqnew0atRIBQUF4fff\nfPONEhMT67RSAAAAAHCsKl2gYPTo0Ro+fLjy8vI0YsQIrVy5UtOnT49F3QAAAACgxiqd7PTr10+n\nn366PvvsM5WXl+uuu+5Sq1atYlE3AAAAAKgxd7Iza9YsM1+zZo0kadSoUXVTIwAAAACoBe7f7KSk\npKhp06ZavXq13nrrLTVr1kwtWrTQf/7zH23cuDGWdQQAAACAanO/2bnhhhskSa+//roWLFig5ORk\nSdKQIUN09dVXx6Ryp512mvn+448/Nst36NAhKmvcuLFZdseOHWaelJRk5vv37zfz1q1bV6u8paio\nyMwPHTpk5t9++62ZZ2ZmViv3jm/xFqVo2bKlmXv3vUmTJuZrqy7nnHOOeYzly5ebeWpqqpnv27fP\nzLdv327mTZs2jcq6detmlk1JSTHzhAT73xGO7NMV1q1bZ+ZW/2rbtq1ZNj8/38yt50Ly+7q32mJ6\nenpUVjEuHPm+pKTEPMaR5SukpaWZea9evcz8888/j8o6depklvX6v9f+wWDQzAsLC83c6i+lpaVm\n2YMHD5r53r17zfz888838/Xr15t59+7dozLv+r1xJPK5jLwXkQvVRLKuX5ICgUBU5vWLAwcOmPn3\nvvc9M/eel2bNmpn5tm3bqpRJ/rjo9S/vOWrTpo2Ze78GvmXLlqjM6y9em3pjXeSzG/naG6c2bNgQ\nlbVo0cIs64313jPQqJH9vx1eP9qzZ09U5tXba4t45/UTNEy0Z+2rdDW2/fv3q7y8PPz+0KFD7oce\nAAAAABwvKl2gYMiQIbriiit0ySWXKBgMaunSpbr++utjUTcAAAAAqLFKJzvXX3+9zj33XC1fvlyB\nQEAPPfSQsrOzY1E3AAAAAKixSn+NrbS0VLt27VJmZqbS09O1Zs0aLVq0KBZ1AwAAAIAaq/SbnbFj\nxyovL09du3Y97A9OBw0aVO2TBYNB3X777frmm2+UkJCgu+66S126dKn2cQAAAACgMpVOdtatW6d/\n/vOf5so61fXuu++quLhYzzzzjN5//309+OCD+utf/3rMxwUAAACAI1X6a2xdu3Z1l2muriZNmqig\noEChUEgFBQUn7DKRAAAAAOpepd/sFBcXKycnR6eddlp4Pf1AIKB58+ZV+2R9+vRRSUmJcnJytG/f\nPs2ZM6f6NQYAAACAKgiEQqHQ0Qp88MEHZu5tdnc0c+bMUXFxsW6++WZt27ZNv/71r7V48WJ3U7Ki\noiJ3o0gAAAAAmDlzpsaOHWv+rNJvdmoyqfEUFxeHJy9paWkqLS11dyuXpBUrVoRfX3jhhXrnnXck\nSR9//LFZ/qSTTorKqru7s7d79q5du8zc2w16//79Zm7V8csvv6zWsb3r93bVPvnkk83c2kHdm/t6\n99G7X94u4fn5+ZKkp59+WsOGDTvqcWbOnGke45FHHjHznTt3mrm1M7nk76Bu7eTtXU9KSoqZezt8\ne7uQezvCFxYWRmX/9V//ZZatuLdHKi4uNnPv10jz8vLMPHLn9QqRfTEvL0/t2rWTJJ122mnmMZo3\nb27mu3fvNvP777/fzD///PMqH9t7LrZv327m3pjk/TrvgQMHojLv3nr3ZeXKlWaek5Nj5uvXrzdz\n6x541289/9J3v24sSVdffbX+9re/hXPv+r22S05Ojsq8BWm867nhhhvM/H/+53/MfO3atWa+YcOG\nqMx7/r0xLSMjw8xPPfVUM/eeR6+8NU55z643jnjjd8U1vf7664f1KW+csu6Xd07vnnufO97nmrdr\nfL9+/aIybzz2+no8Gzt2rPtZiYaH9qwb7mTnaHvpBAIBrVmzptonu+GGG3Trrbfq6quvVllZmcaO\nHRv+YAUAAACA2uROdrx/rTkWaWlpmj17dq0fFwAAAACOVOlqbAAAAADQEDHZAQAAABCXmOwAAAAA\niEuVTnbuuuuuqOzPf/5znVQGAAAAAGqLu0DB7bffrk2bNmnVqlWHLYtbXl6ugoKCmFTu5ZdfDr++\n8MILw++9pXE7dOgQlbVt29Ysay0XK/nLznpLDFd3qWrLnj17zNxb6tRbjtRrl0AgYOZW3b3r9Jae\ntpaXlfwlTSOXHY18bS1r613PkCFDzPzrr78281dffdXMvSWcreWevX7h5bm5udUq37NnTzN/++23\nozJvmWpvSdfu3bububdMrbcsu7X09JFLHVe8LykpMY+xb98+M7fuuSS98MILZr558+aozFvq1uu7\nbdq0MXPvefSOY91Hb9lhb7lrb9n0l156ycw3btxo5h07dozKvBUvrbLS4fc2cgli71lPTEw0c6tN\nvbF77969ldYlkrckt7e09xNPPBGVedfv9d3y8nIz957prVu3mrmna9euUdlbb71lll29erWZe/vS\nXXLJJeHX7du3D78uKioyy1ufDd544V2/9xx55cvKyszc+kzylnb3PjPj3Yl63fGK9qx97mTnd7/7\nnbZu3aqpU6dq9OjR4YEuMTHR3ScAAAAAAI4X7mSnY8eO6tixoxYvXqzCwkIVFBSEJzwHDhww/5UX\nAAAAAI4X7mSnwpw5c/TYY49FTW6WLl1aZ5UCAAAAgGNV6WTn+eef15IlS5SZmRmL+gAAAABArah0\nNbasrCylpaXFoi4AAAAAUGsq/Wanc+fOuvrqq9W3b9/DViMaNWpUnVYMAAAAAI5FpZOdtm3bqm3b\ntuHli0OhkLuUMQAAAAAcLyqd7IwePVpFRUXKzc3VaaedpuLiYnctfwAAAAA4XlT6Nzv//ve/NWjQ\n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\nJKm4uNg8hictLc3Mzz//fDPPz8+Pypo2bWqWjexnkTIzM83ce768MaCoqKjKx/AWd/E2au7Xr5+Z\n79mzp8rccBBnAAAZJElEQVTH8fqi148i2yLytTe+WNfv1SUYDJplvb771ltvmXnPnj3N/NRTTzVz\na8GdFi1amGW9ccEb671n17tfX3/9tZlb1+T1F+8z0BunIseAiy66KPz60KFDVa5Lx44dzbLe/fLq\nXt0+sG7duiofOxAImHm88/4/Bw0T7Vn73AUKAAAAAKAhO+pkp7y8/LB/QdqwYYNKS0vrvFIAAAAA\ncKzcyU5ubq5ycnIO+1WiJ598Updddpk2b94ck8oBAAAAQE25k51p06ZpzJgxGjBgwGHZjTfeqOnT\np8ekcgAAAABQU+5kJy8vT5dffnlUfuWVVyo3N/eYTrp7925ddNFF2rhx4zEdBwAAAAA87mTHWr2m\ngrcSSlWUlpZq0qRJ7sorAAAAAFAb3MlOdna2nn/++aj8hRdeUKdOnWp8wnvvvVdDhw5V69ata3wM\nAAAAAKiMu8/On/70Jw0fPlyLFy9W7969FQwGtWrVKm3ZskVPPvlkjU720ksvKTMzUxdccIEeffTR\nY/qGCAAAAACOJhA6yozjwIED+sc//qE1a9YoISFBp59+unJyctSkSZManWzYsGHhTb/Wrl2rU045\nRQ8//LBatWpllt+0adMxfYsEAAAAIL5NmDBBU6dONX921MlOeXm5Dh06FN6ZfMOGDercubO7O3h1\nDB8+XFOmTNEpp5zilvnFL34Rfv3CCy+E33u7R+/cuTMqS0xMNMump6ebubejtDch83bVbt68uZmX\nlZVFZd4O996xvfu/fv16M/eOb+22bdVPkhIS7N94bNasmZnv3r3bzCva48svv1T37t3DeWFhYVTZ\nOXPmmMeI/O+qck6vrb2dv6374u1MftJJJ5m5t2v9jh07zNyb1KempkZla9euNct6fwfntf++ffvM\nPCsry8yt+xt5jJEjR2r27NmSpOLiYvMYnrS0NDN/6623zDw/P/+odYnkPUddu3Y187y8PDPPzMw0\n86KioqjMa8/qfpvtjXV79uypcl327t1rlu3Vq5eZV7Tz0qVL1b9//3CekZFR5XNKMn9VORgMmmW9\nvnvJJZeYec+ePc3ca2vrb1C9/uKNC9Ud6wsKCsz866+/NnPrufP6i9cvvHGqYgwYN26cZsyYEc69\nzzvrHzS96/Hul1f36vaBdevWRWXe507btm3NPJ5NnTpVEyZMqO9qoJbQnsfGm+ywzw4AAACAuFRv\n++zMnz//qN/qAAAAAMCxqJd9dgAAAACgrsV8nx0AAAAAiIWY77MDAAAAALEQ0312AAAAACBW3MlO\nmzZt9PLLLx+2z87gwYM1cOBAdynb2lZaWmq+95ZSbdQo+nK2b99ulvWWkvaWBvaW1+zcubOZe0s4\nW7wlPb3lZSv2Kqoqb3lR6zjWPTzaOb3cW441snzkssrWEsvVXdbZ+9VL7z5698X6NU1v2Vlryeyj\n1cVbMnXXrl1mbvUNr28d+bxUxqujdxxr6eUjl6itaDPvvnjPkdcWXl2spac93hLD1XkuJH9J6pYt\nW1b52N71eG3hLZ3vHd8qX93+Etn/I197q3B6fdpaYtirt1dHb3lwbwzwli+2lmr2njlv7PLGAI/X\npi1atDBza9lo7xjeVgCNGzc288g+HfnaG++tpacrtqA4kvdr7dVZBlzyl9O2nkev79bGthgN0Yl6\n3fGK9qx97mRnyZIl+tGPfqRf/vKXsawPAAAAANQK9292Zs2aFX59yy23xKQyAAAAAFBb3MlOJG/H\nZwAAAAA4XlVpsgMAAAAADY37NzulpaXaunWrQqFQ+HWkrKysOq8cAAAAANSUO9kpLi7WsGHDwu8j\nX0vS0qVL665WAAAAAHCM3MkOkxkAAAAADZk72Vm0aNFR/8NBgwbVemUAAAAAoLa4k53x48crMzNT\n3/ve98yNypjsAAAAADieuZOdl19+Wa+99pree+89de/eXT/5yU/0/e9/393RGwAAAACOJ+5kp0eP\nHurRo4fGjh2rzz77TP/85z/1wAMP6PTTT9dPfvIT9e3bN5b1BAAAAIBqcSc7kc4880ydccYZ+uij\njzRz5ky9+uqrWrlyZV3XDQAAAABq7KiTnWAwqOXLl+t///d/tWzZMmVnZ2v48OG6+OKLY1Q9AAAA\nAKgZd7IzadIkvfvuu+rZs6cGDhyosWPHKjU1NZZ1AwAAAIAacyc7zz33nNLT07V69WqtXr1aM2fO\nDP8sEAjojTfeiEkFAQAAAKAm3MnOkiVLYlkPAAAAAKhV7mSnQ4cOsayH6aOPPjLft27d2izfsmXL\nqKxjx45VLitJxcXFZp6enm7m3377rZkHg0EzP3ToUJXP6R2jUSO72bw6lpWVmXnz5s2jMmtPJem7\nb/MsycnJZl6VJcqzsrLCr5s0aRL182+++aZa5ywqKqpWee/+7tu3Lyqz2k3y74tXvlmzZma+f/9+\nM09KSorKvOtJS0sz8wMHDpi5Z/369WZu9bsj72Fubq4kv8+Vl5ebuVfHZcuWmbn1/LZr184se9JJ\nJ1X5GJK0a9cuM4/sr5EOHjwYlXn30OsXXl/cvn27mbdo0cLMrXG7OuOl5PdF7z56rOfXa2evv3z1\n1Vdm7j131rMrSSUlJVFZYWGhWTY/P9/Mq/tMe2NgSkpKlc/rjfVe7tUlcmyMrJf3PG7evDkqC4VC\nZtnqjq9e2xUUFJh5mzZtojKvjTIzM8083p2o1x2vaM/al1DfFQAAAACAusBkBwAAAEBcYrIDAAAA\nIC4x2QEAAAAQl466qWhtKy0t1W233aatW7eqpKREI0aMUP/+/WNZBQAAAAAniJhOdhYvXqzMzEzN\nmDFD+/fv16BBg5jsAAAAAKgTMZ3s5OTk6NJLL5X03bKUVVmeGAAAAABqIqaTnaZNm0r6bn+D3//+\n97r55ptjeXoAAAAAJ5BAyNsprI7k5eVp1KhRuuaaa3TFFVcctezatWuVnZ0do5oBAAAAaGgeeugh\njR492vxZTL/Z2bVrl66//npNnjxZffv2rbT8D3/4w/DrLVu2qH379pKqtyO4tzP3ySefbObWztGS\nlJ6ebubbtm0zc2/3aGsX7uLi4modw9s926ujdw+s4zRu3Ngs6+167e2eXdmvKP7973/XZZddFn7f\npEmTqDJDhgyp1jkjdwmvSnnv/lq7sHu7p7dt29bMq7vburdrfcW3oZG862zRooWZe7vWe8fxdjK3\n+kvkPfzDH/6gBx98UJLf57wd2706zpkzx8ytZ71du3ZmWa8tunfvbuZffvmlmXvjzsGDB6OyPXv2\nVKsuXl/cvn27mXtt3aFDhyqf0/uHpK+//lqS9Oabb+qSSy4J52lpaWZ5z65du6Iyr529/jJ+/Hgz\n98YjLy8pKYnKvH5enbFb8p9pbwxMSLAXQc3Pz69yWe8zwBu/K571m2++WQ888EA4t+6LJO3duzcq\n8/5dtLrjq9dGXntYrHslSWeddVaVjxEvRo8erYceeqi+q4FaQnvWjZguPT1nzhwVFBRo9uzZGj58\nuIYPH+5+gAAAAADAsYjpNzsTJkzQhAkTYnlKAAAAACcoNhUFAAAAEJeY7AAAAACIS0x2AAAAAMQl\nJjsAAAAA4hKTHQAAAABxKaarsVVX7969zffeGvs7d+6Mynbv3m2W3bFjh5l7+0B4e2x4+xR4e1JY\ne+F4e7V4+zckJSVV+diSVFpaaubWngzePg0eby8Jbx+ISKeffvpRz/vZZ5+Z/513na1atTJzb18H\nbx8Ia88P7x5u2LDBzL0l1b29Kry9lqx9Nqx9XWrCO47Xv6z8yP2RrGcwktcvvP1EvP24rD05qvus\ne9e5fv16M/fGBqsfZWRkmGW93KuLtxdOYWGhmVvX6rWJ96x//vnn5uusrCyzvMcaA73rt/bZkr7b\nWNqSmppq5t5eS9YY4J2zus+Ft9eax3vWrdwbL7wxzRt3IstH3lPv88s6vvfsem3hfTZ49zElJcXM\nrTHWey4yMzPNPN6dqNcdr2jP2sc3OwAAAADiEpMdAAAAAHGJyQ4AAACAuMRkBwAAAEBcYrIDAAAA\nIC4x2QEAAAAQl5jsAAAAAIhLTHYAAAAAxCUmOwAAAADiEpMdAAAAAHGJyQ4AAACAuMRkBwAAAEBc\nYrIDAAAAIC4x2QEAAAAQl5jsAAAAAIhLTHYAAAAAxKVG9V2Bo9m4caP5PjU11Szftm3bqKxLly5m\nWe8YTZo0MfPExEQzT09PN/OkpCQzb9Qo+pZ7x65u7p0zFAqZeUJC9FzXyo7GKx8IBCr9b9u3b3/U\n44wZM6ZadWnevLmZt2jRolp506ZNo7K0tLRqnbNx48Zm7vWvlJQUM7fatDp9S5KSk5PN3Lt+r7zV\n747MMjMzJfnt7/UXr08fOQYcrXxWVpZZ9pRTTjFz77kYNGhQtcpbfcAbX6p7/U8//XS1ykc+UxVO\nOukks2wwGDTzwYMHm6+9NrWeF8m+B169vb47depUMy8tLTVz73m0nt/qlJWqN15I/jNdnbHBK+s9\no15dIstHfk56bWqNMV4beXl1x4CqfGZUaNOmjZl7/SLenajXHa9oz9rHNzsAAAAA4hKTHQAAAABx\nickOAAAAgLgU07/ZCQaDuuOOO7Ru3TolJSVp2rRp6tSpUyyrAAAAAOAEEdNvdpYsWaLS0lItXLhQ\nf/zjH3XPPffE8vQAAAAATiAxneysWLFCF154oSSpd+/eWrVqVSxPDwAAAOAEEtPJTmFhoZo1axZ+\nn5iY6C5/CgAAAADHIhDyNo+oA/fcc4969+6tgQMHSpIuuugivf3222759evXq1u3brGqHgAAAIAG\n5qmnntJ1111n/iymCxT06dNHb775pgYOHKiVK1eqe/fuRy3/s5/9LPx6zZo16tGjhyR/w76MjIyo\nzCvLpqL1u6no6NGj9dBDDx31OGwqWrebinptVNNNRceOHauZM2ce9djV3VRz7ty5VS7frl07s6x3\nPd5zYW1OfLTyx/umot71e9+qVxxj7ty5+u1vfxvO2VT0+N9U1Lu/FeWnTJmiSZMmhfOGsKno9u3b\nozJvA2GvTePZddddp6eeeqq+q4FaQnvWjZhOdn784x/rvffe01VXXSVJuvvuu2N5egAAAAAnkJhO\ndgKBgO68885YnhIAAADACYpNRQEAAADEJSY7AAAAAOISkx0AAAAAcYnJDgAAAIC4xGQHAAAAQFyK\n6aaiAAAAABArfLMDAAAAIC4x2QEAAAAQl5jsAAAAAIhLTHYAAAAAxCUmOwAAAADiEpMdAAAAAHGp\nUX1X4GiCwaDuuOMOrVu3TklJSZo2bZo6depU39VCNZWWluq2227T1q1bVVJSohEjRqhr164aP368\nEhIS1K1bN02ePFmBQKC+q4pq2r17t6644go99dRTSkhIoE0bsEcffVRvvvmmSktLNWzYMPXp04f2\nbMCCwaBuv/12ffPNN0pISNBdd92lxMRE2rQB+vTTT3Xfffdp/vz5+vbbb802fO655/Tss8+qUaNG\nGjFihC6++OL6rjaOIrJN16xZo6lTpyohIUGNGzfWvffeq5YtW9Kmtei4/mZnyZIlKi0t1cKFC/XH\nP/5R99xzT31XCTWwePFiZWZmasGCBXr88cc1ZcoU3XPPPbrlllu0YMEChUIhvfHGG/VdTVRTaWmp\nJk2apJSUFIVCId199920aQP1wQcf6JNPPtHChQs1f/585ebm8ow2cO+++66Ki4v1zDPPaOTIkXrg\ngQdo0wZo7ty5mjBhgkpLSyXJHGd37typ+fPna+HChXriiSc0c+ZMlZSU1HPN4TmyTadPn66JEydq\n/vz5GjBggObOnatdu3bRprXouJ7srFixQhdeeKEkqXfv3lq1alU91wg1kZOTozFjxkj67l8bGzVq\npNWrV+vcc8+VJPXr10/vv/9+fVYRNXDvvfdq6NChat26tSTRpg3Ye++9p+7du+umm27S7373O/Xv\n319ffPEF7dmANWnSRAUFBQqFQiooKFBSUhJt2gB17txZs2bNUsX+79Y4+/nnn6tPnz5KSkpSs2bN\n1LlzZ3355Zf1WW0cxZFtev/99ys7O1uSVFZWpuTkZH322We0aS06ric7hYWFatasWfh9YmKigsFg\nPdYINdG0aVOlpqaqsLBQv//97/WHP/zhsHZs2rSpCgoK6rGGqK6XXnpJmZmZuuCCCyRJoVAoPHBL\ntGlDs2fPHq1atUp//etfdeedd2rs2LG0ZwPXp08flZSUKCcnR5MmTdLw4cNp0wZowIABSkxMDL+P\nbMPU1FQVFBSosLBQzZs3PywvLCyMaT1RdUe2acU/GK5YsUILFizQddddR5vWsuP6b3aaNWumoqKi\n8PtgMKiEhON6fgZHXl6eRo0apWuuuUaXXXaZZsyYEf5ZUVGR0tLS6rF2qK6XXnpJgUBA77//vtau\nXavx48dr79694Z/Tpg1LRkaGunbtqkaNGumUU05RcnKyduzYEf457dnwPP744+rTp49uvvlmbdu2\nTddee63KysrCP6dNG6bI/wcqLCxUWlpa1P8r0bYNz2uvvaY5c+boscceU0ZGBm1ay47rmUOfPn20\nbNkySdLKlSvVvXv3eq4RamLXrl26/vrrNW7cOF1xxRWSpB49eujDDz+UJC1btkznnHNOfVYR1fT0\n009r/vz5mj9/vrKzs/WXv/xFF1xwAW3aQJ199tl65513JEnbt2/XwYMH1bdvX9qzASsuLlZqaqok\nKS0tTWVlZerZsydt2sBZn51nnnmmPvroI5WUlKigoEBfffWVunXrVs81RVW98sorWrBggebPn68O\nHTpIEm1ay47rb3Z+/OMf67333tNVV10l6bs/zEPDM2fOHBUUFGj27NmaPXu2JOn222/XtGnTVFpa\nqq5duyonJ6eea4ljEQgENH78eE2cOJE2bYAuvvhiLV++XL/4xS8UDAY1efJktW/fnvZswG644Qbd\neuutuvrqq1VWVqaxY8eqV69etGkDVbFqnjXOBgIBXXvttbr66qsVDAZ1yy23qHHjxvVcY1QmEAgo\nGAxq+vTpysrK0qhRoyRJ559/vkaNGkWb1qJAKPIXQAEAAAAgThzXv8YGAAAAADXFZAcAAABAXGKy\nAwAAACAuMdkBAAAAEJeY7AAAAACIS0x2AAAAAMSl43qfHQDA8Wnz5s3KycnRqaeeelj+6KOPqm3b\ntjGvy7XXXqulS5dW+b+ZMmWKzjjjDA0ePLgOawYAqG9MdgAANdKmTRstWrSovqtRIxWbNAIA4huT\nHQBArRo/frz27dunTZs2ady4cTp48KCeeuopHTx4UAcPHtS0adN0zjnnaPjw4erZs6fef/99HTp0\nSBMmTNC8efP01Vdf6de//rWuu+46FRUVacqUKVq/fr2CwaB++9vf6qc//al77pdeeknvvPOO8vPz\nlZubqx/84AeaPHmyQqGQ7r33Xi1dulStWrVSUlKSzjjjDEnSokWLNG/ePAWDQfXq1UuTJ0/W+vXr\ndeONN2rx4sVKSEjQFVdcoYcffljZ2dmxuo0AgFrAZAcAUCM7duzQoEGDwu9/9rOf6frrr1cgEFBG\nRobmzJmjUCik3/zmN3r00UeVnp6uF154QY8//rjOOeccSd99w7J48WLNmjVLU6dO1eLFi7V7924N\nGjRI1113nR555BGdfvrp+stf/qLCwkINHTpUZ555pjp27OjWa+XKlfrHP/6hhIQE5eTkaOjQodq4\ncaNWrVql1157TYWFheFfX1u/fr2ef/55LVy4UI0bN9bMmTP1xBNPaMSIEbrqqqs0Y8YMlZaWaujQ\noUx0AKABYrIDAKiRo/0aW+/evSV9N5mZNWuWli5dqo0bN2r58uVKTEwMl+vXr58kKSsrS71791Zy\ncrKysrKUn58vSeFvfV588UVJUnFxsb766qujTnbOOussNW3aVJLUsWNH7d+/Xx9++KEuvfRSJSYm\nqkWLFvrhD3+oUCikDz74QN9++61+9atfSZJKS0vVq1cvSdKIESN0xRVXKCUlRffdd9+x3CoAQD1h\nsgMAqHXJycmSpKKiIl155ZUaPHiwzjvvPGVnZ+vpp58Ol0tKSgq/btQo+iMpFArpvvvuU48ePSRJ\nO3fuVHp6epXOHXmMQCCgYDAYda5gMKicnBxNmDAhXN/y8nJJUn5+vg4cOKDi4mLt3btXGRkZVb5+\nAMDxgaWnAQB15ptvvlFiYqL+3//7fzr//PP19ttvHzbpqEzfvn31t7/9TdJ3vzY3ePBgbdu2rdr1\n+P73v6/XXntNJSUlKiws1JtvvqlAIKDzzjtPS5Ys0Z49exQKhXTHHXdo3rx5kqQ777xTw4YN09Ch\nQ3XnnXdW+5wAgPrHNzsAgBo52opmFT/r0aOHevTooYEDByozM1OXXnqp/vOf/1R6rIr3I0eO1J13\n3qnLL79c5eXl+uMf/2j+CltFeatOgUBA/fv316pVq3T55ZcrIyNDXbp0kSRlZ2dr5MiR+vWvf61g\nMKiePXvqxhtv1GuvvabNmzfrwQcfVDAY1JVXXqnXX39dOTk5Vbw7AIDjQSAUCoXquxIAAAAAUNv4\nNTYAAAAAcYnJDgAAAIC4xGQHAAAAQFxisgMAAAAgLjHZAQAAABCXmOwAAAAAiEtMdgAAAADEJSY7\nAAAAAOLS/wc1gYMW0QLyuwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.imshow(mfccs.T, origin='lower', aspect='auto', interpolation='nearest')\n", "plt.ylabel('MFCC Coefficient Index')\n", "plt.xlabel('Frame Index')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "[← Back to Index](index.html)" ] } ], "metadata": { "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 0 }