{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "
\n", " \n", "
\n", "\n", "### Prof. Dr. -Ing. Gerald Schuller
Jupyter Notebook: Renato Profeta \n", "\n", "[Applied Media Systems Group](https://www.tu-ilmenau.de/en/applied-media-systems-group/)
\n", "[Technische Universität Ilmenau](https://www.tu-ilmenau.de/)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "# Psychoacoustics Models" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ "## Python Example, Spreading Function" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ " - This Python example shows the non-linear superposition with parameter **2*a=alpha=0.6, in the Bark scale.** We construct a matrix which does the actual superposition in the Bark domain, because that is most efficient:\n", " \n", " ```python\n", "def spreadingfunctionmat(maxfreq,nfilts,alpha):\n", " #Arguments: maxfreq: half the sampling frequency\n", " #nfilts: Number of subbands in the Bark domain, for instance 64\n", " fadB= 14.5+12 # Simultaneous masking for tones at Bark band 12\n", " fbdb=7.5 # Upper slope of spreading function\n", " fbbdb=26.0 # Lower slope of spreading function\n", " maxbark=hz2bark(maxfreq)\n", " spreadingfunctionBarkdB=np.zeros(2*nfilts)\n", " #upper slope, fbdB attenuation per Bark, over maxbark Bark (full frequency range),\n", " #with fadB dB simultaneous masking:\n", " spreadingfunctionBarkdB[0:nfilts]=np.linspace(-maxbark*fbdb,-2.5,nfilts)-fadB\n", " #lower slope fbbdb attenuation per Bark, over maxbark Bark (full frequency range):\n", " spreadingfunctionBarkdB[nfilts:2*nfilts]=np.linspace(0,-maxbark*fbbdb,nfilts)-fadB\n", " #Convert from dB to \"voltage\" and include alpha exponent\n", " spreadingfunctionBarkVoltage=10.0**(spreadingfunctionBarkdB/20.0*alpha)\n", " #Spreading functions for all bark scale bands in a matrix:\n", " spreadingfuncmatrix=np.zeros((nfilts,nfilts))\n", " for k in range(nfilts):\n", " spreadingfuncmatrix[:,k]=spreadingfunctionBarkVoltage[(nfilts-k):(2*nfilts-k)]\n", " return spreadingfuncmatrix\n", "```\n", "\n", " - The application ot the spreading function is then a simple matrix multiplication (which avoids slow \"for\" loops) in the Bark domain, as in the following Python function:\n", " \n", " ```python\n", "def maskingThresholdBark(mXbark,spreadingfuncmatrix,alpha):\n", " #Computes the masking threshold on the Bark scale with non-linear superposition\n", " #usage: mTbark=maskingThresholdBark(mXbark,spreadingfuncmatrix,alpha)\n", " #Arg: mXbark: magnitude of FFT spectrum,\n", " #spreadingfuncmatrix: spreading function matrix from function spreadingfunctionmat\n", " #alpha: exponent for non-linear superposition (eg. 0.6)\n", " #return: masking threshold as \"voltage\" on Bark scale\n", " \n", " #mXbark: is the magnitude-spectrum mapped to the Bark scale,\n", " #mTbark: is the resulting Masking Threshold in the Bark scale, whose components are\n", " #sqrt(I_tk) on page 13.\n", " \n", " mTbark=np.dot(mXbark**alpha, spreadingfuncmatrix)\n", " #apply the inverse exponent to the result:\n", " \n", " mTbark=mTbark**(1.0/alpha)\n", " return mTbark\n", "```" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "#Programs to implement a psycho-acoustic model\n", "#Using a matrix for the spreading function (faster)\n", "#Gerald Schuller, Nov. 2016\n", "# Ported to Jupyter Notebooks by Renato Profeta, October 2020" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def hz2bark(f):\n", " \"\"\" Usage: Bark=hz2bark(f)\n", " f : (ndarray) Array containing frequencies in Hz.\n", " Returns :\n", " Brk : (ndarray) Array containing Bark scaled values.\n", " \"\"\"\n", " Brk = 6. * np.arcsinh(f/600.) \n", " return Brk\n", "\n", "def bark2hz(Brk):\n", " \"\"\" Usage:\n", " Hz=bark2hs(Brk)\n", " Args :\n", " Brk : (ndarray) Array containing Bark scaled values.\n", " Returns :\n", " Fhz : (ndarray) Array containing frequencies in Hz.\n", " \"\"\"\n", " Fhz = 600. * np.sinh(Brk/6.)\n", " return Fhz" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def mapping2barkmat(fs, nfilts,nfft):\n", " #Constructing matrix W which has 1’s for each Bark subband, and 0’s else:\n", " #nfft=2048; nfilts=64;\n", " nfreqs=nfft/2\n", " maxbark=hz2bark(fs/2) #upper end of our Bark scale:22 Bark at 16 kHz\n", " nfreqs=nfft/2\n", " step_barks = maxbark/(nfilts-1)\n", " #the linspace produces an array with the fft band edges:\n", " binbarks = hz2bark(np.linspace(0,(nfft//2),(nfft//2)+1)*fs//nfft)\n", " W = np.zeros((nfilts, nfft))\n", " for i in range(nfilts):\n", " W[i,0:(nfft//2)+1] = (np.round(binbarks/step_barks)== i)\n", " return W\n", "\n", "def mapping2bark(mX,W,nfft):\n", " #Maps (warps) magnitude spectrum vector mX from DFT to the Bark scale\n", " #arguments: mX: magnitude spectrum from fft\n", " #W: mapping matrix from function mapping2barkmat\n", " #nfft: : number of subbands in fft\n", " #returns: mXbark, magnitude mapped to the Bark scale\n", " nfreqs=int(nfft/2)\n", " #Here is the actual mapping, suming up powers and conv. back to Voltages:\n", " mXbark = (np.dot( np.abs(mX[:nfreqs])**2.0, W[:, :nfreqs].T))**(0.5)\n", " return mXbark\n", "\n", "def mappingfrombarkmat(W,nfft):\n", " #Constructing inverse mapping matrix W_inv from matrix W for mapping back from bark scale\n", " #usuage: W_inv=mappingfrombarkmat(Wnfft)\n", " #argument: W: mapping matrix from function mapping2barkmat\n", " #nfft: : number of subbands in fft\n", " nfreqs=int(nfft/2)\n", " W_inv= np.dot(np.diag((1.0/np.sum(W,1))**0.5), W[:,0:nfreqs + 1]).T\n", " return W_inv\n", "\n", "def mappingfrombark(mTbark,W_inv,nfft):\n", " #usage: mT=mappingfrombark(mTbark,W_inv,nfft)\n", " #Maps (warps) magnitude spectrum vector mTbark in the Bark scale\n", " # back to the linear scale\n", " #arguments:\n", " #mTbark: masking threshold in the Bark domain\n", " #W_inv : inverse mapping matrix W_inv from matrix W for mapping back from bark scale\n", " #nfft: : number of subbands in fft\n", " #returns: mT, masking threshold in the linear scale\n", " nfreqs=int(nfft/2)\n", " mT = np.dot(mTbark, W_inv[:, :nfreqs].T)\n", " return mT" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def f_SP_dB(maxfreq,nfilts):\n", " #usage: spreadingfunctionmatdB=f_SP_dB(maxfreq,nfilts)\n", " #computes the spreading function protoype, in the Bark scale.\n", " #Arguments: maxfreq: half the sampling freqency\n", " #nfilts: Number of subbands in the Bark domain, for instance 64 \n", " maxbark=hz2bark(maxfreq) #upper end of our Bark scale:22 Bark at 16 kHz\n", " #Number of our Bark scale bands over this range: nfilts=64\n", " spreadingfunctionBarkdB=np.zeros(2*nfilts)\n", " #Spreading function prototype, \"nfilts\" bands for lower slope \n", " spreadingfunctionBarkdB[0:nfilts]=np.linspace(-maxbark*27,-8,nfilts)-23.5\n", " #\"nfilts\" bands for upper slope:\n", " spreadingfunctionBarkdB[nfilts:2*nfilts]=np.linspace(0,-maxbark*12.0,nfilts)-23.5\n", " return spreadingfunctionBarkdB\n", "\n", "def spreadingfunctionmat(maxfreq,nfilts,alpha):\n", " #Arguments: maxfreq: half the sampling frequency\n", " #nfilts: Number of subbands in the Bark domain, for instance 64\n", " fadB= 14.5+12 # Simultaneous masking for tones at Bark band 12\n", " fbdb=7.5 # Upper slope of spreading function\n", " fbbdb=26.0 # Lower slope of spreading function\n", " maxbark=hz2bark(maxfreq)\n", " spreadingfunctionBarkdB=np.zeros(2*nfilts)\n", " #upper slope, fbdB attenuation per Bark, over maxbark Bark (full frequency range), with fadB dB simultaneous masking:\n", " spreadingfunctionBarkdB[0:nfilts]=np.linspace(-maxbark*fbdb,-2.5,nfilts)-fadB\n", " #lower slope fbbdb attenuation per Bark, over maxbark Bark (full frequency range):\n", " spreadingfunctionBarkdB[nfilts:2*nfilts]=np.linspace(0,-maxbark*fbbdb,nfilts)-fadB\n", " #Convert from dB to \"voltage\" and include alpha exponent\n", " spreadingfunctionBarkVoltage=10.0**(spreadingfunctionBarkdB/20.0*alpha)\n", " #Spreading functions for all bark scale bands in a matrix:\n", " spreadingfuncmatrix=np.zeros((nfilts,nfilts))\n", " for k in range(nfilts):\n", " spreadingfuncmatrix[:,k]=spreadingfunctionBarkVoltage[(nfilts-k):(2*nfilts-k)]\n", " return spreadingfuncmatrix\n", "\n", "\n", "def maskingThresholdBark(mXbark,spreadingfuncmatrix,alpha,fs,nfilts): \n", " #Computes the masking threshold on the Bark scale with non-linear superposition\n", " #usage: mTbark=maskingThresholdBark(mXbark,spreadingfuncmatrix,alpha)\n", " #Arg: mXbark: magnitude of FFT spectrum, on the Bark scale\n", " #spreadingfuncmatrix: spreading function matrix from function spreadingfunctionmat\n", " #alpha: exponent for non-linear superposition (eg. 0.6), \n", " #fs: sampling freq., nfilts: number of Bark subbands\n", " #nfilts: Number of subbands in the Bark domain, for instance 64 \n", " #Returns: mTbark: the resulting Masking Threshold on the Bark scale \n", " \n", " #Compute the non-linear superposition:\n", " mTbark=np.dot(mXbark**alpha, spreadingfuncmatrix**alpha)\n", " #apply the inverse exponent to the result:\n", " mTbark=mTbark**(1.0/alpha)\n", " #Threshold in quiet:\n", " maxfreq=fs/2.0\n", " maxbark=hz2bark(maxfreq)\n", " step_bark = maxbark/(nfilts-1)\n", " barks=np.arange(0,nfilts)*step_bark\n", " #convert the bark subband frequencies to Hz:\n", " f=bark2hz(barks)+1e-6\n", " #Threshold of quiet in the Bark subbands in dB:\n", " LTQ=np.clip((3.64*(f/1000.)**-0.8 -6.5*np.exp(-0.6*(f/1000.-3.3)**2.)+1e-3*((f/1000.)**4.)),-20,160)\n", " #Maximum of spreading functions and hearing threshold in quiet:\n", " mTbark=np.max((mTbark, 10.0**((LTQ-60)/20)),0)\n", " return mTbark" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ " - We can take a look at the resulting spreading function matrix with:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAGDCAYAAAA/ATvPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3de5xddX3v/9d7LkmA3GYkBUIooHJRoaB4wYMnVfAC1FZaDdWiIoLU/rygEBRFlGpt5fDzwjlWKQUFrbfEe6nYIoKpHvGCooIICgYJgSSQCUmATGYyn/PHWpOsZK29Z+3Zl9mz8n4+HvOYtb97Xb7fPXs+e+3vZ63vVxGBmZlVR89UV8DMzFrLgd3MrGIc2M3MKsaB3cysYhzYzcwqxoHdzKxiHNgrStJpkv5rquvRSpJWSnphuvxuSVe2aL+HSfq5pE2S3tqKfXYLSbdLev5U18M6S76OvXMkrQQWAgsj4qFM+a3AUcDBEbFygn0cBPwe6I+I0XbVtRulr99ZEfGdFu/3KmBjRLy9lfttJ0lXA6si4j1TXZd6JN0E/FtEtORD2MrxGXvn/R541fgDSUcCe7TyAJL6Wrm/6VqHBhwI3D7VlWilafb6W4s5sHfeZ4HXZh6fDnwmu4KkP0u7BjZKuk/SxZmnV6S/N0jaLOm5kl4n6QeSPippPXBxWvb9dH//Q9JDkg5IHx8laYOkw3etnBIflbRW0iOSfinpiPS5qyVdLun6tNvie5IOzGwbkt4k6bfAb9Oyw9P110u6U9KpJduJpNdIulfSw5Iu3OW5iyX9W7p8UHrs0yX9IW3rhZl195B0jaQhSXdIeoekVelz3wVeAHw8fT0PlXSTpLMy229/LTPtfKOk36b7/GdJyjz/hvQ4myT9WtIz0vKVks5PX9NHJV0laR9J16XrfkfSQGY/yyU9mP4dVkh6Wlp+NnAa8I60zv+e2f87Jf0SeFRSn3buvvqWpA9n9v8lSZ/a9T2QPvdsST9M3ycPSPq4pBkTvUfqkfR8SavS139tut9TJJ0s6a70PfLuMnVIn39x+p56RNIn0vdj9u/2+vTvMCTpP7Pv1cqLCP906AdYCbwQuBN4CtAL3EdyxhjAQel6zweOJPng/RNgDXBK+txB6bp9mf2+DhgF3gL0kXwDeB3w/cw6HwS+mz73S+DNNer4EuAWYD6gtJ77pc9dDWwCFgMzgct2OUYA1wOD6XH2Stt3RlqvZwAPAU8r0c6nApszx/pI2sYXps9fTPIVP/ua/Gt63KOAYeAp6fMfAr4HDACL0vavytT7JpIunlqPd30tA7g2fY3+GFgHnJg+twS4H3hW+vo9GTgw8/e/GdgH2B9YC/wMeHraxu8C78sc5/XAnPS5jwG3Zp67GviHgvfXrcABwB7Z91y6vG96zONJPhjuAebUeB8cAxyb/t0OAu4A3jbRe6RgP9tfy/TvPQq8F+gH3pC+dp9P2/k0YAvwxBJ12BvYCPxV+vw5wEjmWKcAv0vr1ge8B/i/Ux0DOhZrproCu9MPOwL7e4B/Ak4kCYR9ZAJ7wXYfAz6aLh9EcWD/wy7bvI6dg1F/+s/4K+DbpPmVgmMdD9yV/kP17PLc1cAXM49nA9uAA9LHARyfef6vgf/eZR//QiZ41Wnne3c51l7AVuoH9kWZ9X8MvDJdvgd4Sea5s2g+sD8v83gZcEG6/J/AOXX+/qdlHn8F+GTm8VuAr9fYdn563HmZv0VRYH990Xsu8/ivSD5sH8q2ocR7923A1yZ6jxRst/21JAnsjwO96eM5aZuek1n/FtIP9wnq8Frgh5nnlLZr/FjXAWdmnu8BHiP9kK36j7tipsZngb8hCRif2fVJSc+RdKOkdZIeAd5IcoZSz331noyIEZJgcATw4Ujf7QXrfRf4OPDPwBpJV0iaW3SciNgMrCdJCBfV40DgOelX6Q2SNpCcKe5bop0LdznWo8DD9doIPJhZfozkgye3LyZ4rUqqdawDgLvrbLcms/x4wePZAJJ6JX1I0t2SNpIEaGjyfUDyTaMXuDMivl9rpbRL6tq0K2gj8I/jxy7xHqnn4YjYli4/nv6u9RrUrAP590cAqzL7ORC4LPO+W08S/PcvWc9pzYF9CkTEvSRJ1JOBrxas8nngmyRnwvOAy0nelJCc4RTutt4xJe0PvA/4NPBhSTPr1O9/R8QxJF+NDwXOzzx9QGafs0m6XVbXqMd9wPciYn7mZ3ZE/F2Jdj6wy7H2BJ5Qr411PEDSBZNrQw2PAntmHu/bwLHuA57UwPq1/A3wMpJvePNIvpVAk+8Dki65O4D9JL2qznqfBH4DHBIRc4F3Z4490XukVerVYae/aZrjyP6N7wP+dpf33h4R8X/bUM+u48A+dc4k6bZ4tOC5OcD6iNgi6dkk/+Tj1gFjwBPLHih9018NXJUe9wHgAzXWfVZ6Jt1PEuC2kHS3jDtZ0vPSJNYHgB9FRK2zxGuBQ5UkQfvTn2dJekqJdn4ZeGnmWO9n8u/XZcC7JA2kH3BvnmD9W4G/krSnpCeTvGZlXQkslXRMmmR88iSTdnNI8gQPk3zI/OMuz6+hgfcAgKTFJPmO16Y//yd9PWodfyOwWUmSffzDuMx7pFVq1gH4D+DINPnaB7yJnT+ALyf5m48nnOdJWtKGOnYlB/YpEhF3R8RPazz9/wHvl7SJpK95WWa7x0jOun6Qfs08tsTh3kqSsLso/cp6BnCGpP9ZsO5ckiTkEHAvSWD5/zPPf57kzH89SXLrtDpt3AS8GHglyVn9g8AlJMnAidp5O8k/6+dJPoiG2PmrdiPen277e+A7JB8aw3XW/yhJf/4a4Brgc2UPFBHLSf4+nydJNH+d5FtNoz5D8vrfD/yaJOmadRXw1PQ98PWJdpZ2lXyGJGl+f9oNcxXw6fSDf1dLST5oN5G8H76UeW6i90ir1KxDJPeBLAH+V3r8pwI/Jf27RsTXSN5rX0y7cW4DTmpDHbuSb1Cy0jRNboqZiKS/I0ms/ulU18VaQ1IPyYf3aRFx41TXZ6r5jN0qT9J+ko6T1CPpMOA84GtTXS9rjqSXSJqf5ovG+993/WazW/LdabY7mEFymeXBwAbgi8AnprRG1grPJenymkHSXXVKRDxef5Pdg7tizMwqxl0xZmYVMyWBXdKJ6RgPv5N0wVTUwcysqjreFSOpl+R25BeRZLF/ArwqIn5da5u9B3vjoAP62bxlb2bPSka7XbetP7fe+pG9cmVbt+bTCBopuroLVDAIbk/B1bkqLMu/jhoreG3TsvmDM9mwfrj2ekV/l1p/q7LrFm1e9u9fsN54yfx9Z7Phwc31Ni53jAZXbYf5+81hwwObprYSLeK2dKdWtWULj7I1hguD2VQkT58N/C4i7gGQ9EWSO+xqBvaDDujnx/95ACtuO4fFR1wGwOUb8vdVLF99TK7s96sW5Mr6HpyRKwOY+VD+NZq1Ph9pZm4cy5X1b8pH+/7N+U+KnsdGAFhy1mEsv/LOpGx4JLeetmzNV3CkxvDrI/ntY7Rg3YKy2JZvC2MFZdvy7Rs/KViy9ASWX3hDum3RB0rB/mqIou2LVyy9z/y2tY9x6nknsez86ya/7y7itnSnVrXlR3FDzeem4oz9FSQj4Z2VPn4NySBAb95lvbOBswH22Wf+MV/8tw+w+fF9mL1HMqzEutF8cB4a2TNXNlx0xj5a64w9X94zWnAmXvqMvWC9NHAN7D2ToYfSe2SK/gZFwbXmTeRNnvGXWq/2N4CB/ecydP/Gcvue1LE7Z2DRPIZWPTKldWgVt6U7taot5y1dysZY3zVn7EUVyf03R8QVwBUAzzxqViw+4rLJnbEP+Yx9u3adsX+wQmfsl1bozNBt6UqdaMtUBPZV7DwI0yJ2HkQq51dDC3jSsjdy7r4LOGPZGwG4+9TLSx1sOQXBnnywTxQF/KLPocnnnMczA9EjxvbM5wnqHaH4e0axUp+egCgI9mWPMR7sBeN3pUdRxcdqvF4FwVk9+ZoXBnsV7LNssC+6g96X/VqFTMVVMT8BDpF0cDq40ytJRvgzM7MW6PgZe0SMSnozyYQEvcCn0gGfzMysBaZkSIGI+Bbwrak4tplZ1fnOUzOzipkWg4D1b4KFK4IZJye/AZ7EG3PrNZNQhVpJ1fYkVKMHRmYnL3/tFGq5I5RNqrYvoSro7U2Wiq6eqVXxoqRqNyRUx5edULVpymfsZmYV48BuZlYxDuxmZhXjwG5mVjHTInnaO7yN2Xc9Qs/xC5l9VzLGwkLm5dZrJqEKjdyl2nxCNXrFyJzems+XTajWOkpHE6oS9NRua1FCFRq4S7UbEqrbt3VC1bqfz9jNzCrGgd3MrGIc2M3MKsaB3cysYqZF8pSRUbRuPYymv4HZBatNp4Rq9MLw3MY+V7s5oarenprr1TxO2btUuz2hCk6qWlfxGbuZWcU4sJuZVYwDu5lZxTiwm5lVjAO7mVnFTI+rYsbGiM2Pwrb0N8VXbjRzpQy0Y4Ls2lfKjPWJLYPjrWju87WZ8dxbcqWMBH196XqTnxwbuuRKmfHlslfKgIcfsK7iM3Yzs4pxYDczqxgHdjOzinFgNzOrmGmRPI0IYusIjP8GSJOoWc0kVKH1E2TXS6hGXzC893hyrfnJsXfV0YSqhNLkadmx3GutW3icbkio1tlfTU6o2hTxGbuZWcU4sJuZVYwDu5lZxTiwm5lVzLRInhJBbNu24zfA1oL1mkioQuvHc6+XUI2+YHTf8UY0Pzl2GW1LqErQ319zvVrpwmbuUm1bQlXavlw6oVpjn4WcULUO8Bm7mVnFOLCbmVWMA7uZWcU4sJuZVcz0SJ7CjuRU+jvyubOmEqrQmQmyxxOqMx9dxMED64BmJ8eGZj6fW5JQFdBf+61Uq9Zl71Kd8oTqTqvVqE2rJ8h2QtWa4DN2M7OKcWA3M6sYB3Yzs4pxYDczq5hplDyNnX+TT0w1k1CF1s+jWi+hOrDyMJYsvAVodg5VaPVdqg0nVHt6iFkzataklrJ3qXY8oVpnztOihGqyaouH/XVC1ZrgM3Yzs4pxYDczqxgHdjOzinFgNzOrmLYlTyV9CngpsDYijkjLBoEvAQcBK4FTI2JoUgcoTCQ1kVCFls+jWi+huqJvKy+ff3+NijSSUIVODPtbN6EqMTazv+YRpl1CdTxBWvIOVejQPKpOqFpJ7Txjvxo4cZeyC4AbIuIQ4Ib0sZmZtVDbAntErADW71L8MuCadPka4JR2Hd/MbHelaONXOUkHAddmumI2RMT8zPNDETFQY9uzgbMBBuYNHnPJRZcysGgeQ6seaUXFypf3Fnz29eV7sMZm9ebKthb02Rw5mAz8tfnxfZi9xxoA1o3mu1KGRvbMlQ1vLe4502i+3kVlPaP5v7UKuqq0rWC9gt4CpV0NA3vPZOih4aSw6P00VqOroeitV7R92bLCYxQepGbRwP5zGbp/Y7l9T+rYndOy/5cu4Lbknbd0KRtjfWEw69oblCLiCuAKgLkajGXnX8epl57EsvOvq71RUWAu6NNUbz4IA2hGvidZs/fK123BYK5s86H5PvbVi/P1uXtx2sd+2zksPuIyAC7fsH9uveWrC/rYh4r72PsezH8wzHwof+xZ6/OBZubGfNDt35SP9v2b833aPY+NALDkrMNYfuWdSdnwSG49bamR1BjJ75OR/PYxWrBeQVlsK/gAKfpQKepjT4Pwkg+ewPILb0i3LfoAKNkfTp2RIJvYZ37b2seY8P9lGnFbGtPpwL5G0n4R8YCk/YC1Ld17MwlVaPk8qvUSqufuu4AzliXLzcyhCs0O+9t8QjV6xNietdOrtY5QNqna0YSqQOkJQukhf6G5YX+dULUW6/Tljt8ETk+XTwe+0eHjm5lVXtsCu6QvAD8EDpO0StKZwIeAF0n6LfCi9LGZmbVQ27piIuJVNZ46oV3HNDMz33lqZlY5XXtVTMuUTKhC6+dRrZdQnXEyLFyR1K2ZOVSh2WF/m0+oRg+MzE7eSmWH/K11lKlPqArSq6ZKD/kLrZ9HtVUJ1fFlJ1R3Kz5jNzOrGAd2M7OKcWA3M6sYB3Yzs4qpfvK0SM1EUmvnUa2XUO05fiGz70rGi2jFHKq76mRCNXrFyJziYRpgmiVUJeip3daihCo0cJdqNyRUd9reSdUq8hm7mVnFOLCbmVWMA7uZWcU4sJuZVYwDu5lZxeyeV8XU0uoJsutdKTM6itYlMwc2Mzk2NDeeeyuulIleGJ7b+DlC2atlOn2ljNJZsxq5XqT08APddKUMeDz3ivIZu5lZxTiwm5lVjAO7mVnFOLCbmVWMk6cTaVdCddsYkS43Mzk2NDf8QCsSqmN9YsvgeCuaO1eY8oSqBH196XqTnxwbuiShOr7shOpuxWfsZmYV48BuZlYxDuxmZhXjwG5mVjFOnk5GKxKqEcTWkWS5icmxofXjuTeaUI2+YHjv8dek+cmxd9XRhKqE0uRp2bHca61beJxuSKhOsM9CTqhOKz5jNzOrGAd2M7OKcWA3M6sYB3Yzs4px8rRVGk2oRhDjibQmJseG5ob9bUVCNfqC0X3HG1F2yF9o5ryibQlVCfr7a65XK13YzF2qbUuoStuXCxOqycql9lm8rROq3cpn7GZmFePAbmZWMQ7sZmYV48BuZlYxTp6200QJ1TRJ1cwcqtDcsL+tSKjOfHQRBw+sAxoZ8hdafZdqSxKqAvpr/1vUSryWvUt1yhOquVVbPI+qE6pdwWfsZmYV48BuZlYxDuxmZhXjwG5mVjFOnnZaNpG0fbmJOVShqWF/W5FQHVh5GEsW3gI0MuQvlL9LtYMJ1Z4eYtaMmjWppexdqh1PqE4w52lTw/46odq1fMZuZlYxDuxmZhXjwG5mVjEO7GZmFdO25KmkA4DPAPuSZAeviIjLJA0CXwIOAlYCp0bEULvqMS00M4cqNDXsbysSqiv6tvLy+ffXqFxxQhUauUu1gwlVibGZ/TWPMO0SquPJ0aI7VKH186g6odoV2nnGPgqcFxFPAY4F3iTpqcAFwA0RcQhwQ/rYzMxapG2BPSIeiIifpcubgDuA/YGXAdekq10DnNKuOpiZ7Y4UHfj6I+kgYAVwBPCHiJifeW4oIgYKtjkbOBtgYN7gMZdcdCkDi+YxtOqRtte3E1ralqKvtUVlvQWf43353rixWb25sq0FfTZHDiYDf21+fB9m77EGgHWj+a6UoZE98xsDw1vzx9Zovt5FZT2j+fetCrqqtK1gvYLeAqVdDQN7z2TooeGksOh/Y6xGV0PRv1HR9mXLCo9ReJCaRQP7z2Xo/o3l9j2pY3eO//fzzlu6lI2xvrB3sO2BXdJs4HvAByPiq5I2lAnsWXM1GM/RCZx66UksO/+6tta3UyZsS2GwLv6Cpd58INaMfE+yZu+VK4sFg7myzYfm+9hXL87XZ3sf+23nsPiIywC4fMP+ufWWr67Rx74q38fe92D+g2HmQ/ljz1qff9/O3JgPuv2b8tG+f3O+T7vnsREAlpx1GMuvvDMpGx7JractNe4SG8nvk5H89jFasF5BWWwr+AAp+lAp6mNP/6eXfPAEll94Q7ptjf/zkn3iNafWm+T+iretfYzd6n+/pB/FDTUD+4TJU0nHAbdGxKOSXg08A7gsIu4tsW0/8BXgcxHx1bR4jaT9IuIBSfsBa0u3ZHdSMqEKzQ3724qE6rn7LuCMZcly2SF/oZG7VDuXUI0eMbZn7fRqrSOUTap2NKEqUHqCUHiHKjQ17K8Tqt2rzH/CJ4HHJB0FvAO4l+Rql7qUvKOuAu6IiI9knvomcHq6fDrwjYZqbGZmdZUJ7KORfLd7GcmZ+mXAnBLbHQe8Bjhe0q3pz8nAh4AXSfot8KL0sZmZtUiZ69g3SXoX8GpgsaReSoytFBHfp/Y31BPKV9HMzBpR5oz9r4Fh4MyIeJDkksVL21orMzObtAnP2NNg/pHM4z9Qoo/d2qBmIqmJYX9bkFCdcTIsXJHUrZk5VGHqE6rRAyOzk3+LskP+1jrK1CdUBekVU0V3qELr51Fta0I1u+ykal01A7ukTdR530TE3LbUyMzMmlIzsEfEHABJ7wceBD5LcnJxGuWSp2ZmNgXKfE99SUR8IiI2RcTGiPgk8PJ2V8zMzCanTGDfJuk0Sb2SeiSdBtQaZ9DMzKZYmcD+N8CpwJr0Z0laZmZmXajMVTErSW5Osm7VzHjuLbhSpuf4hcy+KxnUqOxY7lD+aplOXikTvWJkTn7snXHT6koZCXrqn7tNaoLs7StO0ZUy4OEHJlBmrJgFwBtIJsbYvn5EvL591TIzs8kqc+fpN4D/Br6D+9bNzLpemcC+Z0S8s+01MTOzliiTPL02HbzLzMymgTJn7OcA75Y0DIyQ5HXCd552uU4mVEdH0br1QPmx3KG54QfalVCNXhie2/i47mWTqp1OqCqdNauRtKITqtNfmatifJepmdk0UuaMHUkDwCHArPGyiFjRrkqZmdnklbnc8SyS7phFwK3AscAPgePbWzUzM5uMMp2J5wDPAu6NiBcATwfWtbVWZmY2aWW6YrZExBZJSJoZEb+RdFjba2at166E6rYxIl0uO5Y7lL9LtZMJ1bE+sWVwvBWTnxwbuiChKkFfX7pe/g7Vndad6DjdkFDNLnuC7LrKBPZVkuYDXweulzQErG5vtczMbLLKXBXzl+nixZJuBOYB325rrczMbNLKXhXzDOB5JN/cfhARRV/MzcysC0zYiSjpvcA1wBOAvYFPS3pPuytmZmaTU+aM/VXA0yNiC4CkDwE/A/6hnRWzDmlFQjWC2DqSLJcc8hfK36XayYRq9AXDe4+/Js1Pjr2rjiZUJZQmT2ulCxufIDuz7VQlVJOVS+2zeNvqJ1TLvEtXkrkxCZgJ3N2W2piZWdNqnrFL+j8kH97DwO2Srk8fvwj4fmeqZ2ZmjarXFfPT9PctwNcy5Te1rTZmZta0moE9Iq4ZX5Y0Azic5Iz9Tl8VY2bWvcqMFXMy8C8k/eoCDpb0txFxXbsrZ1Ok0YRqBDGeSCs55C+Uv0u1kwnV6AtG9x1vRNkhf6GZpGrbEqoS9PfXXa/heVQn0LaEqrRTcrXlw/5WLKFa5qqYjwAviIjfAUh6EvAfgAO7mVkXKnOasXY8qKfuAda2qT5mZtakelfF/FW6eLukbwHLSL6RLQF+0oG6mZnZJNTrivnzzPIa4E/T5XXAQNtqZGZmTal3VcwZnayIdbmJEqppkqr0kL9Q+i7VTiZUZz66iIMHkukGyg/5C62+S7UlCVUB/fXTaJOZR7XeeoXHaHFCFTo0j+o0TqiWuSrm0xT8DSPi9W2pkZmZNaXMVTHXZpZnAX+Jx2M3M+taZcZj/0r2saQvAN9pW43MzKwpk+kEPAT441ZXxMzMWqNMH/smkj52pb8fBN7Z5nrZdJBNJG1fLjnkL5S+S7WTCdWBlYexZOEtQCND/kL5u1Q7mFDt6SFmzahZk1q6NqE6wZynTqjuUKYrZk4nKmJmZq1R8/RB0oGS5mUev0DSZZLeng4KZmZmXaje98JlwF4Ako4GlgN/AI4GPtH+qpmZ2WTU64rZIyLGL2t8NfCpiPiwpB7g1vZXzczMJqNeYM9mCY4H3gUQEWMqSiDsurE0C1hBMpVeH/DliHifpIOBLwKDJHOnvsbju1dIySF/oYG7VDuYUF3Rt5WXz7+/YE+JooQqNHKXagcTqhJjM/vrHqHheVQzOp5QzSZHWz2PasUSqvXeUd+VtEzSZSRjw3wXQNJ+1L5JPGsYOD4ijiLpvjlR0rHAJcBHI+IQYAg4s5kGmJnZzuoF9rcBXyWZzPp5EZFOQ8++wIUT7TgSm9OH/elPkJz9fzktvwY4pfFqm5lZLYo2fmWQ1EsyZ+qTgX8GLgVujognp88fAFwXEUcUbHs2cDbAwLzBYy656FIGFs1jaNUjbatvJ7ktNRR9rS0q6y04J+nL9yyOzerNlW0t6LM5cjAZ+Gvz4/swe481AKwbzXelDI3smd8YGN6aP7ZG8/UuKusZzf8PqqCbStsK1ivoLVDa1TCw90yGHhpOCmv9n48V7KBo1aLty5YVKVyvaH/Jr4H95zJ0/8Zy+57UsTunVf8v5y1dysZYX9ibVmasmEmLiG3A0ZLmk0yI/ZSi1WpsewVwBcBcDcay86/j1EtPYtn51Zi4abdqS62cTEG/pnrzgVgz8j3Jmr1XriwWDObKNh+a72NfvThfn7sXp33st53D4iMuA+DyDfvn1lu+ukYf+1C+j73vwfwHw8yH8seetT7/LzBzYz7g9m/KR/v+zfk+7Z7Hki/XS846jOVX3pmUDY/k1gPQloJe1ZH8PhnJbx+jBesVlMW2gg+Pog+Uoj72NAgv+eAJLL/whsz2RR8C5frEC/vYi1cst17htrWP0Yn//bYG9nERsUHSTcCxwHxJfRExCizCA4pVX803ecm7VDuYUD133wWcsSxZLjvkLzRyl2rnEqrRI8b2rH+/asPzqE6wXtsSqoLsRRstmUd1p9U6kFCFjn1bmPy7ZwKSFqRn6kjaA3ghcAdwI/CKdLXTgW+0qw5mZrujMmPFHAdcDByYri+S3OgTJ9h0P+CatJ+9B1gWEddK+jXwRUn/APwcuKqJ+puZ2S7KdMVcBbydJAlaazinnIj4JfD0gvJ7gGeX3Y+ZmTWmTGB/JCKqkeUzM9sNlAnsN0q6lOSa9uHxwoj4WdtqZbuHknepdjKhOuNkWLgiqVczc6jC1CdUowdGZif/4mWH/K11lKlPqAoyV0y1eh7VjiRUYUdSNZtcbUNCtUxgf076+5mZsvEbjczMrMuUGY/9BZ2oiJmZtUbNwC7p1RHxb5LOLXo+Ij7SvmqZmdlk1TtjH7+1zzMomZlNIzUDe0T8S/r77ztXHTMza1aZG5RmkQyt+zRg1nh5RLy+jfWy3dUUXynTc/xCZt+VDNBUdix3KH+1TCevlIleMTInP/ZOVsMTZE9QmyItuVJGgp76VwVN+ytldtq+uStlylw/9VmSoXpfAnyPZHyXTU0d1czM2qZMYH9yRFwEPBoR1wB/BhzZ3mqZmdlklQns4+N1bpB0BDAPOKhtNTIzs6aUuUHpCkkDwEXAN0m6I9/b1lqZmdmklblB6cp08XvARCM6mqFoTxUAABi3SURBVLVeJxOqo6No3Xqg/Fju0NzwA+1KqEYvDM9tfGTubk2oKjNrVssmyB7XiYRqjX0WajKhWuaqmPnAa0m6X7avHxFvLX0UMzPrmDJdMd8CbgZ+RdFpkpmZdZUygX1WRBQOK2BmZt2n1HXskt4gaT9Jg+M/ba+ZmZlNSpkz9q3ApcCF7MhZBE6k2lRqV0J12xiRLpcdyx3K36XayYTqWJ/YMjjeiuamN57yhKoEfX2ZdVswQXZ2204kVJOVd/5dY5/F2+5ynDoNLhPYzyW5Semhckc3M7OpVOZj/HbgsXZXxMzMWqPMGfs24FZJN7Lz1Hi+3NHMrAuVCexfT3/MzGwaKHPn6TWSZgCHpkV3RsRIvW3MpkQrEqoRxNb07V1yyF8of5dqJxOq0RcM7z3+mtSq+eSTqh1NqEookzxtzQTZmW07kFBNVm3DsL8Fytx5+nzgGmAlyet8gKTTI2JFU0c2M7O2KNMV82HgxRFxJ4CkQ4EvQMHpg5mZTbky38P6x4M6QETcRflvYWZm1mFlzth/KukqkpmUAE4DbmlflczMrBllAvvfAW8C3krSx74C+EQ7K2XWMo0mVCOI8URaySF/ofxdqp1MqEZfMLrveCOK7lCFRudRnUjbEqoS9O/Ye0vmUZ1AqxOqkCZVpZ2Sq+1IqJa5KmZY0meBz0bEutJ7NjOzKVHzo1mJiyU9BPwGuFPSOkmePcnMrIvV+871NuA44FkR8YSIGASeAxwn6e0dqZ2ZmTWsXmB/LfCqiPj9eEFE3AO8On3OzMy6UL0+9v6iER0jYp0kX+5o09dECdU0SVV6yF8ofZdqJxOqMx9dxMEDSVqs+A5VaHQe1cloSUJVQH/9lGDXJ1ShPfOoFqi3Zq238ETPmZnZFKr3EXiUpI0F5QJmtak+ZmbWpJqBPSJ6O1kRMzNrjebmyzIzs65T5s5Ts+rLJlS3L5cc8hdK36XayYTqwMrDWLIwGf2j6A5VaHwe1Z11MKHa00PM2lGvlsyjutN6HUiowo6k6gRznjY0j2oBn7GbmVXMhIFd0kkFZflTBzMz6wplztgvknT8+ANJ7wRe1r4qmZlZM8r0sf8FcK2k84ETgcPTMjMz60JlRnd8SNJfAN8hGYf9FRGFt+4VktQL/BS4PyJeKulg4IvAIPAz4DUR4RuerPuUHPIXGrhLtYMJ1RV9W3n5/PsL9rRDo/Oo7qyDCVWJsZk71mjJPKoZnUioQiapmk2OTnYe1Tqj+NYb3XGTpI3pTUq/I5nMegmwscaNS7WcA9yReXwJ8NGIOAQYAs5sYF9mZjaBmoE9IuYA84AjImJuRMyKiNkRMSci5pbZuaRFwJ8BV6aPBRwPfDld5RrglGYaYGZmO9NEvSqSbomISU1cLenLwD8Bc4ClwOuAmyPiyenzBwDXRcQRBdueDZwNMDBv8JhLLrqUgUXzGFr1yGSq0nXclu7U0rao4Et/UVlvwflVX76XdGxW/mbwrQV9NkcOJgN/bX58H2bvsQaAdaPFMygNjeyZKxvemj+2RvP1LirrGc3HExX0SmhbwXoFXQtKr90e2HsmQw8N73iiKG6NFeygKLwVbVu2rEjhejW2DRjYfy5D9zfS6VHsvKXnsXFsfWEPVJnk6c2SnhURP2nkoJJeCqyNiFskPX+8uGDVwlcgIq4ArgCYq8FYdv51nHrpSSw7/7pGqtG13JbuNGFbigIzFI68p958INaMfE+yZu+VK4sFg7myzYfm+9hXL87X5+7FaR/7beew+IjLALh8w/4FlYblqwv62Ifyfex9D+Y/GGY+lD/2rPX5f+eZG/MBt39TPtr3b873afc8NgLAkrMOY/mVd+4oHx7JrastBUmNkfw+GclvG6MF6xWUxbaCD4+iD5RafewRLPngCSy/8IbM9kUfKuWnwStSJrC/APhbSfcCj5IE54iIP5lgu+OAv5B0MsmgYXOBjwHzJfVFxCiwCFg96dqbdVrNs7iSd6l2MKF67r4LOGNZslx2yF/ozoRq9IixPevfr9rtCVVIk6oCZU4Qmp1HtUiZwJ67QamMiHgX8C6A9Ix9aUScJmk58AqSK2NOB74xmf2bmVmxCT9KI+LeiLgXeJzkw2n8Z7LeCZwr6XfAE4CrmtiXmZntYsIz9vQa9g8DC4G1wIEkly8+rexBIuIm4KZ0+R7g2Y1X1czMyijT+fUB4Fjgrog4GDgB+EFba2VmZpNWJrCPRMTDQI+knoi4ETi6zfUyM7NJKpM83SBpNrAC+JyktVCQGjbbnZUcfqCTV8rMOBkWrkjqVTT0ADQ+QXZWJ6+UiR4Ymb0jXLVkguwJtO9KGUHmUtjJT5BduyVlXt2XAY8Bbwe+DdwN/HmJ7czMbAqUGQRs/NRhTNJ/AA83MgiYmZl1Vr1BwI6VdJOkr0p6uqTbgNuANZJO7FwVzcysEfXO2D8OvJtkILDvAidFxM2SDge+QNItY2ZmXaZeYO+LiP8CkPT+iLgZICJ+o1rjZZjZDlOcUO05fiGz70oGNCsaegAanyA7q5MJ1egVI3PyY+9kdXtCdfu6EvTUT282NEF2gXqrZt+Bj+96jPKHMDOzTqp3xn5UOqGGgD0yk2uIZFAvMzPrQjUDe0TU/95jZmZdafLjaZqZWVcqc+epmbVKJxOqo6No3Xqg+A5VaHyC7Im0K6EavTA8t/Hz0G5KqCbrJklVZWbNmuwE2fXq5zN2M7OKcWA3M6sYB3Yzs4pxYDczqxgnT82mWrsSqtvGiHS5VqKt0QmyszqZUB3rE1sGs61ofoLsibQ6oQqZO0/7+jLrTnKC7DojAPiM3cysYhzYzcwqxoHdzKxiHNjNzCrGyVOzbtSKhGoEsXUkWS64QxUan0c1q5MJ1egLhvfOvibNz6Oa1YmE6vZ1JZRJnrZmHtWd+YzdzKxiHNjNzCrGgd3MrGIc2M3MKsbJU7PpotGEagQxPtRr0R2q0PA8qlmdTKhGXzC6b7YRzc+jOpG2JVQl6N+x90nPo+o7T83Mdh8O7GZmFePAbmZWMQ7sZmYV4+Sp2XQ2UUI1kuXCO1Sh8XlUMzqZUJ356CIOHli3vbwV86hORjMJVRi/8xTorx96SyVU62RofcZuZlYxDuxmZhXjwG5mVjEO7GZmFePkqVnVZBOq25fzd6jCJOZRzehkQnVg5WEsWXjL9setmEd1Z+1PqG4/Sk8PMWtHvSY9j6rvPDUz2304sJuZVYwDu5lZxTiwm5lVTFuTp5JWApuAbcBoRDxT0iDwJeAgYCVwakQMtbMeZru9wjtUoeF5VLM6mFBd0beVl8+/v2BPO0ybhKrE2Mwda0x6HtUpTp6+ICKOjohnpo8vAG6IiEOAG9LHZmbWIlPRFfMy4Jp0+RrglCmog5lZZSlqfkVrwc6l3wNDJOPX/EtEXCFpQ0TMz6wzFBEDBdueDZwNMDBv8JhLLrqUgUXzGFr1SNvq20luS3dyW2oo+tpfVNZbcK7Yl+/xHZvVmyvbWtBnc+RgMvDX5sf3YfYea7aXrxvNd6cMjeyZKxvemj+2RvP1LirrGc3HRhV0U2lbwXrFtw2gsWBg75kMPTS8o7AoBo8V7GCX1ZYuPY9HhtcU9se0+wal4yJitaQ/Aq6X9JuyG0bEFcAVAHM1GMvOv45TLz2JZedf1666dpTb0p12u7YUBux8cFZvPhBrRr4nWbP3ypXFgsFc2eZD833sqxfn63L34rSP/bZzWHzEZdvLL9+wf27d5asL+tiH8n3sfQ/mPxRmPpQ/9qz1+YA7c2M+4PZvykf7/s2juTKAnsdGWHLWYSy/8s4dZcMjufW0pSCpMVK8z8LjlF5zEiJidfp7LfA14NnAGkn7AaS/17azDmZmu5u2nbFL2gvoiYhN6fKLgfcD3wROBz6U/v5Gu+pgZhNodILsrA5eKXPuvgs4Y9mOq2ZaMUH2ztp/pQwkV8tEjxjbs/5ABKWulKlzVUw7u2L2Ab6m5OB9wOcj4tuSfgIsk3Qm8AdgSRvrYGa222lbYI+Ie4CjCsofBk5o13HNzHZ3vvPUzKxiHNjNzCrG47Gb2c66MKE642RYuGJHvVoxQXZWJxOq0QMjs3eE3klPkO3x2M3Mdh8O7GZmFePAbmZWMQ7sZmYV4+SpmU1sihOqPccvZPZdOwY0a8UE2VmdTKhGrxiZkx97J6tMQjV6nDw1M9ttOLCbmVWMA7uZWcU4sJuZVYyTp2Y2OZ1MqI6OonXrt5e3YoLsibQ+oQrQQ/TC8NzGz6lzCVUnT83Mdh8O7GZmFePAbmZWMQ7sZmYV4+SpmbVOuxKq28aITHK1FfOoZnUmoQogxvrElsFsCyZ3fu07T83MdiMO7GZmFePAbmZWMQ7sZmYV4+SpmbVXKxKqEcTWkR3lLZhHNaszCVWAGURfMLx39jWZ3Dyq0evkqZnZbsOB3cysYhzYzcwqxoHdzKxinDw1s85rNKEaQWzLZFdbMI9qVicSqpAkVaMvGN0324DJzaMadaZN9Rm7mVnFOLCbmVWMA7uZWcU4sJuZVYyTp2bWHSZKqMaO5ZbMo5rRiYQqJEnVmY8u4uCBddvLJjuP6piTp2Zmuw8HdjOzinFgNzOrGAd2M7OKcfLUzLpXNqG6U3K1BfOoZnQyoTqw8jCWLLxl++PJzqMadaK3z9jNzCrGgd3MrGIc2M3MKsaB3cysYtoa2CXNl/RlSb+RdIek50oalHS9pN+mvwfaWQczs91Nu6+KuQz4dkS8QtIMYE/g3cANEfEhSRcAFwDvbHM9zKxKWjFBdlYHrpSB5GqZFX1befn8+wufH1fmSpnoL3oNEm07Y5c0F1gMXAUQEVsjYgPwMuCadLVrgFPaVQczs92RovCTrwU7lo4GrgB+DRwF3AKcA9wfEfMz6w1FRK47RtLZwNkAA/MGj7nkoksZWDSPoVWPtKW+nea2dCe3pTu1tC0qOBcvKustOO/ty3dyjM3Kj8a1tejUHjhycB2bH9+H2Xus2V62bjQ/4NfQyJ65suGtOx976dKlDP9+VdEXi7Z2xfQBzwDeEhE/knQZSbdLKRFxBckHA3M1GMvOv45TLz2JZedf157adpjb0p3clu5Uqi2FATsfnNWbD8Sa0Z8vm71XriwWDObKNh+a74pZvbgw3nL34stZcds5LD7isu1ll2/YP7fe8tUFXTFDRTctFWtn8nQVsCoifpQ+/jJJoF8jaT+A9PfaNtbBzGy307Yz9oh4UNJ9kg6LiDuBE0i6ZX4NnA58KP39jXbVwcx2I12eUIUkqXruvgs4Y9mO5OpkJ8h+eMZozXXbfVXMW4DPpVfE3AOcQfItYZmkM4E/AEvaXAczs91KWwN7RNwKPLPgqRPaeVwzs92Z7zw1M6sYB3Yzs4rxeOxmVl1dlFCFJKk642RYuGJHvSY7QfY9/fm6jPMZu5lZxTiwm5lVjAO7mVnFOLCbmVWMk6dmtnuZooQqJEnVnuMXMvuuHQOaTXaC7E/1jtQ4is/Yzcwqx4HdzKxiHNjNzCrGgd3MrGLaNoNSK0laB9wL7A08NMXVaRW3pTu5Ld3Jbck7MCIKZ9+YFoF9nKSfRkTRaJHTjtvSndyW7uS2NMZdMWZmFePAbmZWMdMtsF8x1RVoIbelO7kt3cltacC06mM3M7OJTbczdjMzm8C0CeySTpR0p6TfSbpgquvTCEmfkrRW0m2ZskFJ10v6bfp7YCrrWJakAyTdKOkOSbdLOictn3btkTRL0o8l/SJty9+n5QdL+lHali+lk7F3PUm9kn4u6dr08bRsB4CklZJ+JelWST9Ny6bdewxA0nxJX5b0m/T/5rntbsu0COySeoF/Bk4Cngq8StJTp7ZWDbkaOHGXsguAGyLiEOCG9PF0MAqcFxFPAY4F3pT+LaZje4aB4yPiKOBo4ERJxwKXAB9N2zIEnDmFdWzEOcAdmcfTtR3jXhARR2cuDZyO7zGAy4BvR8ThwFEkf6P2tiUiuv4HeC7wn5nH7wLeNdX1arANBwG3ZR7fCeyXLu8H3DnVdZxku74BvGi6twfYE/gZ8BySm0f60vKd3nvd+gMsSgPE8cC1JAMMTrt2ZNqzEth7l7Jp9x4D5gK/J81ndqot0+KMHdgfuC/zeFVaNp3tExEPAKS//2iK69MwSQcBTwd+xDRtT9p9cSuwFrgeuBvYEBGj6SrT5b32MeAd7Bh/9glMz3aMC+C/JN0i6ey0bDq+x54IrAM+nXaTXSlpL9rclukS2IuGN/blPFNI0mzgK8DbImLjVNdnsiJiW0QcTXLG+2zgKUWrdbZWjZH0UmBtRNySLS5YtavbsYvjIuIZJN2vb5K0eKorNEl9wDOAT0bE04FH6UAX0nQJ7KuAAzKPFwGrp6gurbJG0n4A6e+1U1yf0iT1kwT1z0XEV9PiadsegIjYANxEkjeYL2l8Eprp8F47DvgLSSuBL5J0x3yM6deO7SJidfp7LfA1kg/d6fgeWwWsiogfpY+/TBLo29qW6RLYfwIckmb5ZwCvBL45xXVq1jeB09Pl00n6qrueJAFXAXdExEcyT0279khaIGl+urwH8EKSxNaNwCvS1bq+LRHxrohYFBEHkfxvfDciTmOatWOcpL0kzRlfBl4M3MY0fI9FxIPAfZIOS4tOAH5Nu9sy1cmFBpIQJwN3kfSBXjjV9Wmw7l8AHgBGSD7BzyTpA70B+G36e3Cq61myLc8j+Ur/S+DW9Ofk6dge4E+An6dtuQ14b1r+RODHwO+A5cDMqa5rA216PnDtdG5HWu9fpD+3j/+/T8f3WFrvo4Gfpu+zrwMD7W6L7zw1M6uY6dIVY2ZmJTmwm5lVjAO7mVnFOLCbmVWMA7uZWcU4sFtLSNqWjsT3C0k/k/Q/JrGPzQ0c5/b0WOdKauv7WNIbJb22gfV7JP1vSbelIxT+RNLBE2xztaRXFJS/TtLHJ1PvEvWc8PW26alv4lXMSnk8klvzkfQS4J+APy2zYXrTU9Et8BMd54+AzwPzgPc1XOOSIuLyBjf5a2Ah8CcRMSZpEcmt5GYd4TN2a4e5JMPEImm2pBvSs/hfSXpZWn5QOjb1J0hGVdw+ZISkvSX9UNKf1TtIJLebnw28WYlZkj6dHufnkl6Q7u91kr4u6d8l/V7Sm9Mz/Z9LulnSYLreG9Kz619I+oqkPdPyiyUtTZdvknSJknHc75L0Pwuqth/wQESMpfVcFRHjr8f2s2RJr5B0dWa7F0r673S/L82UHyDp20rmI3hfZvuvp4Nk3Z4ZKAtJmyV9MG3HzZL2ScsPTl/Xn0j6QGb9/SStSL8J3VajTTadTPVdWf6pxg+wjeQu1N8AjwDHpOV9wNx0eW+SuyBFMozxGHBsZh+bgX1IRot8UY3jbC4oG0q3Ow/4dFp2OPAHYBbwuvS4c4AFaf3emK73UZKBzACekNnnPwBvSZcvBpamyzcBH06XTwa+U1CfRSTDzt4KfBh4elH9SW73vzpdvhr4NsnJ1iEkdyiP1/0BkjsV9yC5Q/aZ6TaD6e/x8iekjwP483T5fwHvSZe/Cbw2XX7TeF3S12387s5eYM5Uv5/809yPz9itVR6PZFKEw0kmFflMpovlHyX9EvgOydCx+6Tb3BsRN2f20U9ye/U7IuL6Bo493o3zPOCzABHxG+Be4ND0uRsjYlNErCMJ7P+elv+K5EMG4Ij0jPlXwGnA02ocb3zgs1sy224XEauAw0jmDRgDbpB0Qol2LIuIsYj4LXAPyYcTwPUR8XBEPJ4e+3lp+Vsl/QK4meQbzyFp+VaSMdl3reNxJMNbQPo6pX4CnCHpYuDIiNhUoq7WxRzYreUi4ockZ+cLSALkApIz+KOBNSRnopDvdx4lCUQvKXssSU8k+bawlvr99MOZ5bHM4zF25JquBt4cEUcCf5+pZ619baNGnioihiPiuog4H/hH4JTxpzKr7br/Xcf3iFrlkp5PMmjZcyOZAernmf2NRMT4NrvWMTeGSESsABYD9wOfbSRRbN3Jgd1aTtLhJF/pHyZJbK6NiJG0z/vAOpsG8HrgcJWY11bSAuBy4ONpIFtB8kGCpEOBPyaZqaasOcADSoYlPq2B7Xat1zMkLUyXe0gGG7s3fXqNpKek5X+5y6ZL0itqnkQyENZ43V+kZI7MPUg+IH5A8roORcRj6et9bImq/YBk9Eey7ZN0IMnf6F9JRu58RoNNti7jq2KsVfZQMhMRJGfOp0fENkmfA/5dyYTE433wNaXbvDLdZmNEfKLGcfpJzvA/C4wPH/wJ4PK0K2UUeF1EDCc9QqVcRNK/fy9JF82cshvu4o+Af5U0M338Y2D8ksULSLpJ7iPpF5+d2e5O4HskXVVvjIgtad2/T9LOJwOfj4ifpm18Y9rFdSdJd8xEzgE+r2QC8q9kyp8PnC9phCTP4TP2ac6jO5qZVYy7YszMKsaB3cysYhzYzcwqxoHdzKxiHNjNzCrGgd3MrGIc2M3MKsaB3cysYv4fCK3np9G+08cAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "fs=32000 # sampling frequency of audio signal\n", "maxfreq=fs/2\n", "alpha=0.6 #Exponent for non-linear superposition of spreading functions\n", "nfilts=64 #number of subbands in the bark domain\n", "spreadingfuncmatrix=spreadingfunctionmat(maxfreq,nfilts,alpha)\n", "plt.figure(figsize=(10,6))\n", "plt.imshow(spreadingfuncmatrix)\n", "plt.title('Matrix spreadingfuncmatrix as Image')\n", "plt.xlabel('Bark Domain Subbands')\n", "plt.ylabel('Bark Domain Subbands')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "## Masking Neighboring Bands Non-Linear Superposition" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ " - Observe that we **don't need any tonality estimation** for this model!\n", " - Usually our signal from the filter bank is like a \"voltage\", not like a power as in this model.\n", " - We obtain a **\"power\"** if we **square** our signal.\n", " - Hence our exponent is multiplied by a factor of 2.\n", " - We get a $\\rightarrow$ 2*a, hence our exponent becomes 0.6.\n", " \n", " \n", " - Observe: The frequency index is on the **Bark-scale**, as can be seen in slide 12.\n", " - Hence we need a **mapping** from **Hertz to Bark**, from our linear filter bank scale to the bark scale, where we apply masking.\n", " - Then we need an **inverse mapping**, from **Bark to Hertz**, to apply our found masking threshold to the **quantization stepsizes** of our **linearly spaced** subbands." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Bark Scale Approximations" ] }, { "cell_type": "markdown", "metadata": { "hide_input": true, "slideshow": { "slide_type": "-" } }, "source": [ " - There are several functional approximations of the Bark scale for this mapping.\n", " - An example of an overview can be seen in:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "hide_input": true, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/html": [ "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ " - The approximation we previously saw is from:
Zwicker & Terhardt (1980), \"Analytical expressions for critical-band rate and critical bandwidth as a function of frequency\", Article in The Journal of the Acoustical Society of America 68(5):1523 · November 1980\n", " https://www.researchgate.net/publication/209436182_Analytical_expressions_for_critical-band_rate_and_critical_bandwidth_as_a_function_of_frequency\n", " \n", " \n", " - In Python notation, the approximation is, with f in Herz and z in Bark:\n", "```python \n", "z=13*arctan(0.00076*f)+3.5*arctan((f/7500.0)**2)\n", "```\n", "\n", " - It only has an approximate closed form inverse formula, according to http://www.auditory.org/postings/1995/34.html\n", "```python\n", "f= (((exp(0.219*z)/352.0)+0.1)*z-0.032*exp(-0.15*(z-5)**2))*1000\n", "```\n", " \n", " - We can test the Zwicker & Terhard approximation in ipython:" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "### Bark Scale Approximations, Zwicker&Terhard" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Frequency array between 0 and 20000 Hz in 1000 steps:\n", "f=np.linspace(0,20000,1000)\n", "#Computation of Zwickers Bark approximation formula:\n", "z=13*np.arctan(0.00076*f)+3.5*np.arctan((f/7500.0)**2)\n", "#plot Bark over Hertz:\n", "plt.figure(figsize=(10,6))\n", "plt.plot(f,z)\n", "plt.xlabel('Frequency in Hertz')\n", "plt.ylabel('Frequency in Bark')\n", "plt.title('Zwicker&Terhard Approximation')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ "### Bark Scale Approximations, Zwicker&Terhard, Inverse" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ " - We can test the Zwicker & Terhard **inverse** approximation in ipython:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Frequency array between 0 and 20000 Hz in 1000 steps:\n", "f=np.linspace(0,20000,1000)\n", "#Computation of Zwickers Bark approximation formula:\n", "z=13*np.arctan(0.00076*f)+3.5*np.arctan((f/7500.0)**2)\n", "#computation of the approximate inverse, frec: reconstructed freq.:\n", "frec= (((np.exp(0.219*z)/352.0)+0.1)*z-0.032*np.exp(-0.15*(z-5)**2))*1000\n", "#plot reconstructed freq. Over original freq:\n", "plt.figure(figsize=(10,6))\n", "plt.plot(f,frec)\n", "#comparison: identity:\n", "plt.plot(f,f)\n", "plt.xlabel('Frequency in Hertz')\n", "plt.ylabel('Frequency in Hertz')\n", "plt.title('Zwicker&Terhard Forward and Inverse Approximation')\n", "plt.legend(('Zwicker Forward and Inverse','Identity'))\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Bark Scale Approximations, Traunmueller" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ " - Traunmueller-formula, 1990, from:
Traunmüller, H. (1990). \"Analytical expressions for the tonotopic sensory scale\". The Journal of the Acoustical Society of America.\n", " - In Python notation, **the approximation** is, with f in Herz and z in Bark:\n", " - for **above 200 Hz:**
z=26.81*f/(1960.0+f)-0.53\n", " - **below 200 Hz:**
z= f/102.9\n", " - It has an **exact inverse:**\n", " - **Above 200 Hz:**
f=1960.0/(26.81/(z+0.53)-1)\n", " - **Below 200 Hz:**
f=z*102.9" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "slide" } }, "source": [ "### Bark Scale Approximations, Schröder" ] }, { "cell_type": "markdown", "metadata": { "hide_input": true, "slideshow": { "slide_type": "-" } }, "source": [ "- Schroeder, M. R. (1977). Recognition of complex acoustic signals, Signal & Life Sciences Research Report 5, edited by T. H. Bullock (Abakon Verlag, Berlin), p. 324.\n", "- See also: \"Perceptual linear predictive (PLP) analysis of speech\" by Hynek Hermansky, J. AcousL Soc. Am. 87 (4). April 1990,\n", "- Also used in the PEAQ standard for objective quality estimation (eq. (2) in the paper:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ " - **It is the simplest Approximation:**
z= 6*arcsinh(f/600.0)\n", " - It has an **exact inverse**, Bark to Hertz:
f=600 * sinh(z/6.0)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Bark Scale Approximations, Comparisons" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ " - Comparison of our functional approximation with our Bark-Table.\n", " - The approximation formulas also give fractional Bark numbers, and the integer Bark numbers correspond to unique frequencies, which are a band limit.\n", " - Tables name bands after an integer Bark number, but they differ in if the band above or below is named after that number.\n", " - In the lecture table this integer Bark number corresponds to the lower limit of the band, hence it starts with index 0, in other literature (CCRMA Webpage) and Wikipedia to the upper limit, starting with index 1!\n", " - We use these pairs out of the table for our comparison:\n", " - 1 bark - 100Hz\n", " - 10 Bark - 1270Hz\n", " - 15 - 2700 Hz\n", " - 20 - 6400 Hz\n", " - 22 - 9500 Hz " ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "scrolled": false, "slideshow": { "slide_type": "-" } }, "source": [ " - Use ipython for the comparison:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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48a2dQkJCVRVVfHJJ58wY8YMKisrefPNN7Hb7UcdX2vd5ViFs88+my+++IKf/exnmM1mtNacd955vPbaa53ub7P57plmQvQH9a56siuy2V6xne3l29lesZ38usOTcCbYExgRMYKLhlxEamQqIyNHEm+L99t4I601lfUtFFQ1epeGI14baXS1dviOKVARG2omPszChMERuMLdnDUmlbgwC3FhZuLDzEQ0F6KKNkLhRijcALu3gLc3D3M4JIyHtIuMkBU//qg5soQQx3ZaBC9/qKqqYt68ebz66qtHBaopU6bw1FNP8fnnn1NRUcHll1/O5ZdfftQxzj//fB5++GGuueaatkuNh3q9br75Zr766iuuuOIK3nnnHc466yxuv/12cnJySElJoaGhgYKCAlJTU3ukvUKcTppbm8muyCarNouly5eyvWI7uTW5bT1ZcbY4MqIymDt8LulR6WREZfT4NA0nE6zCLCYSIywMjbExIzWG+HAL8WFm4ryv0faQDmOpVnz6X6ZF74EDX8OGDVC00ZjaASDIDHFjYeI8b8gaZzwUWga2C3FKJHidpOeee47S0lJ++MMfdlh/3333MX36dJYuXUpKSgqDBw+msrKS6dOnH3WMOXPmsHnzZiZOnEhwcDAXXXQRjz32WNv2u+++m5qaGq677joWL17MokWLuPrqq2luNubzWbhwoQQvIY5Da83B+oNsKdvStmRXZuP2TsQZ3RTNqKhRzBkyh4yoDNKj0om2RPdI3VytHgqqGtlfUU9+ZQN55Q3kV9azv6LhhIJVYoSFxAgriREWEiIshJqPcRekpxXKdhghq2AdHPiaaRV7YCWgAoznFaZ953BP1oA06EN3VQrRVyitj/E0zl5i4sSJev369R3WZWdnk5aW1m1lnMylxtNJd7a/u382vmY8MDbT39Xwm9Ot/S2tLeyo2HE4aJVuobTRmL7BHGgmPSqdsQPGMiZmDHW76/juud/16eXChhY3+ysavEs9+ysbyK9oYH9lPYVVjR0eiGw2BTA40sagKCuDIq3fLlgdVXAlFKyHgq+NsFW4EVrqjG3WKEiczD5XNENnfN8IWiH2Yx/vNHO6/d5/G/257dAz7VdKbdBadzoZp/R4CSH6tIa//x8BCx4gpKiE8mgrf/peDP89y/hHRII9gQkDJ3BGzBmMjRlLamQqpoDD4SVrX1a3hK4m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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "f=np.arange(0,20000,10)\n", "z=26.81*f/(1960.0+f)-0.53 #Traunmueller\n", "plt.figure(figsize=(10,6))\n", "plt.plot(f,z)\n", "z= 6*np.arcsinh(f/600.0) #Schroeder\n", "plt.plot(f,z)\n", "z=13*np.arctan(0.00076*f)+3.5*np.arctan((f/7500.0)**2) #Zwicker\n", "plt.plot(f,z)\n", "plt.legend(('Traunmueller','Schroeder','Zwicker'))\n", "#plot single comparison points:\n", "plt.plot([100,1270,2700,6400,9500,15500],[1,10,15,20,22,24],'ro')\n", "plt.xlabel('Frequency (Hz)')\n", "plt.ylabel('Bark')\n", "plt.title('Approximations of the Bark Scale')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ " - **Observe:** The Zwicker approximation is the most precise, it hits our test points, but it has no closed form inverse.\n", " - The Schroeder approximation is the least accurate, but it is the simplest and it has an exact inverse in closed form, hence it is used most often, and we will also use it.\n", " - In Python we use the function:\n", "```python\n", "def hz2bark(f):\n", " \"\"\" Method to compute Bark from Hz. Based on :\n", " https://github.com/stephencwelch/Perceptual-Coding-In-Python\n", " Args :\n", " f : (ndarray) Array containing frequencies in Hz.\n", " Returns :\n", " Brk : (ndarray) Array containing Bark scaled values.\n", " \"\"\"\n", " Brk = 6. * np.arcsinh(f/600.)\n", " return Brk\n", "```\n", "\n", "- The inverse function in Python is:\n", "```python\n", "def bark2hz(Brk):\n", " \"\"\" Method to compute Hz from Bark scale. Based on :\n", " https://github.com/stephencwelch/Perceptual-Coding-In-Python\n", " Args :\n", " Brk : (ndarray) Array containing Bark scaled values.\n", " Returns :\n", " Fhz : (ndarray) Array containing frequencies in Hz.\n", " \"\"\"\n", " Fhz = 600. * np.sinh(Brk/6.)\n", " return Fhz\n", "```\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Bark Scale Mapping" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ " - We choose 64 subbands in the Bark scale, hence each about 1/3 Bark wide.\n", " - In Python we construct a matrix W for this mapping (again, to avoid slow \"for\" loops), which has 1's at the position of each such 1/3 Bark band:\n", " \n", " ```python\n", "def mapping2barkmat(fs, nfilts,nfft):\n", " #Constructing matrix W which has 1’s for each Bark subband, and 0’s else:\n", " #nfft=2048; nfilts=64;\n", " nfreqs=nfft/2\n", " #the linspace produces an array with the fft band edges:\n", " binbarks = hz2bark(np.linspace(0,(nfft/2),(nfft/2)+1)*fs/nfft)\n", " W = np.zeros((nfilts, nfft))\n", " for i in xrange(nfilts):\n", " W[i,0:(nfft/2)+1] = (np.round(binbarks/step_barks)== i)\n", " return W\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ " - Matrix W as image in Python:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fs=32000\n", "W=mapping2barkmat(fs,64,2048)\n", "plt.figure(figsize=(10,6))\n", "plt.imshow(W[:,:256],cmap='Blues')\n", "plt.title('Matrix W as Image')\n", "plt.xlabel('Uniform Subbands')\n", "plt.ylabel('Bark Subbands')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ " - For each such 1/3 bark subband we add the signal powers from the corresponding DFT bands.\n", " - Then we take the square root to obtain a \"voltage\" again.\n", " - As Python function:\n", " ```python\n", "def mapping2bark(mX,W,nfft):\n", " #Maps (warps) magnitude spectrum vector mX from DFT to the Bark scale\n", " #returns: mXbark, magnitude mapped to the Bark scale\n", " #Frequency of each FFT bin in Bark, in 1025 frequency bands (from call)\n", " #nfft=2048; nfilts=64;\n", " nfreqs=nfft//2\n", " #Frequencies of each FFT band, up to Nyquits frequency, converted to Bark:\n", " #Here is the actual mapping, suming up powers and conv. back to Voltages:\n", " mXbark = (np.dot( np.abs(mX[:nfreqs])**2.0, W[:, :nfreqs].T))**(0.5)\n", " return mXbark\n", "```" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "slide" } }, "source": [ "### Mapping from Bark scale back to Linear" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ " - After having computed the masking threshold in the Bark scale, we need to map it back to the linear scale of our filter bank.\n", " - For that we need to \"distribute\" the corresponding power of each of our 1/3 Bark bands into the corresponding filter bank bands on the linear frequency scale.\n", " - Then we take the square root to obtain a \"voltage\" again.\n", " - We again contruct a matrix to do that in Python. When there is 1 subband in the 1/3 bark scale, it gets a factor 1, if there are 2 subbands, they get a factor of sqrt(2), and so on, using a diagonal matrix multiplication for those factors. It is an 64x1024 matrix:\n", "```python\n", "def mappingfrombarkmat(W,nfft):\n", " #Constructing matrix W_inv from matrix W for mapping back from bark\n", " #scale\n", " #nfft=2048;\n", " nfreqs=nfft//2\n", " W_inv= np.dot(np.diag((1.0/np.sum(W,1))**0.5), W[:,0:nfreqs + 1]).T\n", " return W_inv\n", "```" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ " - Matrix W_inv as image in python:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "W_inv=mappingfrombarkmat(W, nfft=2018)\n", "plt.figure(figsize=(10,6))\n", "plt.imshow(W_inv[:256,:],cmap='Blues')\n", "plt.title('Matrix W_inv as Image')\n", "plt.xlabel('Bark Subbands')\n", "plt.ylabel('Uniform Subbands')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ " - The function for mapping the masking threshold from Bark scale to linear scale is:\n", " ```python\n", "def mappingfrombark(mTbark,W_inv, nfft=2048):\n", " #Maps (warps) magnitude spectrum vector mTbark in the Bark scale\n", " # back to the linear scale\n", " #returns: mT, masking threshold in the linear scale\n", " nfreqs=nfft/2\n", " mT = np.dot(mTbark, W_inv[:, :nfreqs].T)\n", " return mT\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Hearing Threshold in Quiet" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ " - On top of our signal adaptive masking threshold, we have the threshold in quiet.\n", " - We have an approximation formula from Zoelzer: \"Digital Audio Signal Processing\".\n", " - For the case of quiet and only a barely audible test tone.\n", " - The approximation for this Level of the Threshold in Quiet, LTQ, in dB and in Python notation is:
\n", " \n", " LTQ=3.64 * (f/1000.) **(-0.8) - 6.5*np.exp( -0.6 * (f/1000. - 3.3) ** 2.) + 1e-3*((f/1000.) ** 4.)\n", " \n", " - Plot it with python:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "f=np.linspace(20,20000,1000)\n", "LTQ=3.64*(f/1000.)**-0.8 -6.5*np.exp(-0.6*(f/1000.-3.3)**2.)+1e-3*((f/1000.)**4.)\n", "plt.figure(figsize=(10,6))\n", "plt.semilogx(f,LTQ)\n", "plt.axis([20,20000, -20,80])\n", "plt.xlabel('Frequency/Hz')\n", "plt.ylabel('dB')\n", "plt.title('Approx. Function for Masking Threshold in Quiet')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ " - The dB of the formula is for sound pressure. Our internal representation has +-1 as a full scale, which corresponds to 0 dB. Assume we play back our audio signal such that full scale appears at a sound level of speech, which is about 60 dB. Hence to convert the sound level to our internal representation, we need to reduce the threshold of quiet by **60 dB.**\n", " \n", " - Even with an audio signal the masking threshold in quiet still matters at the lowest and highest frequencies.\n", " - We **combine** the signal dependent masking threshold and the threshold in quiet by taking the **maximum** of the two at each frequency.\n", " - In Python we clip the result to avoid overloading and numerical problems, and correct our masking threshold with:\n", " ```python\n", "LTQ=np.clip(LTQ,-20,60)\n", "#Shift dB according to our internal representation:\n", "LTQ=LTQ-60```" ] }, { "cell_type": "markdown", "metadata": { "hide_input": true, "slideshow": { "slide_type": "-" } }, "source": [ " - We can test our approximation formula for our hearing threshold in quiet by producing noise below this spectral threshold, and then listen to it. If we don’t hear the noise it works! \n", " \n", " We can use the Python function noisefromdBSpectrum(spec,fs):" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "from numpy.fft import fft, ifft\n", "def noisefromdBSpectrum(spec,fs):\n", " #produces noise according to the dB spectrum given in spec\n", " #Spectrum goes from frequency 0 up to Nyquist frequency\n", " plt.figure(figsize=(10,6))\n", " plt.plot(spec)\n", " plt.xlabel('DFT subband (lower half)')\n", " plt.ylabel('dB')\n", " plt.title('Noise Magnitude Spectrum')\n", " plt.grid()\n", " \n", " specvoltage=10.0**(spec/20.0)\n", "\n", " #produce 40 blocks of sound:\n", " noise=[]\n", " for m in range(40):\n", " #Noise in the range of -1...+1, and Multiply noise with spectrum:\n", " noisespec=specvoltage*(np.random.rand(len(specvoltage))-0.5)*2\n", "\n", " #make spectrum symmetric for ifft: \n", " #trick: Append zeros to fill up negative frequencies in upper half of DFT, then take real part of inverse transform:\n", " noisespec=np.concatenate((noisespec, np.zeros(len(noisespec))))\n", " noise_ifft=np.real(ifft(noisespec,norm='ortho'))\n", " noise=np.append(noise,noise_ifft)\n", " \n", " plt.figure(figsize=(10,6))\n", " plt.plot(noise)\n", " plt.title('Produced Noise Signal in the Time Domain')\n", " plt.grid()\n", " return (noise, fs)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "First listen to the sound corresponding to noise with a flat spectrum:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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kRsdQ/5jzftzM/yvFGNK3FIZ2JUr6O5vVga0fqDTf3h7yGQEWDCTfRMRRZrVFDPu01HN3BB9D5cVOtjKPnICR0+xazxp3Nv8OSqJiCg2rcyK/Dyg3ip0sDX4P7MjXQSqYIrchrHvyY3uDp1ERGSPCh1sEYXbo26jn2Zs2B8ViW1jgb+ErkRE0YzBFpHOPXnqh3/ucGQbE5Z5zmd50ydLHNlOvBkdhizjREROYbBFFEFZOSf9r0RERDGNwRYRERHFjSlrQxvV7QQGW0REREQOYrBFRERE5CAGW0REREQOYrBFRERE5CAGW0REREQOYrBFRERE5CAGW0REREQOsiXYEpERIrJZRLaJyDiD5TeJyEERWaX/u9WO7RIRERFFu6RQP0BEEgG8DeA8ANkAlorIRKXUBq9VJyilxoa6PSIiIqJYYkfNVl8A25RSGUqpQgDfArjEhs8lIiIiinkh12wBaArAfXbdbAD9DNb7q4gMBbAFwP1KqSzvFURkDIAxANCwYUOkp6fbUDwiIiKq6CIZU9gRbInBa8rr998AfKOUOiUidwD4DMCwcm9S6n0A7wNA7969VVpamg3F82HaZGc/n4iIiKKC4zGFD3Y0I2YDaO72ezMAe9xXUEodVkqd0n/9AEAvG7ZLREREFPXsCLaWAmgnIq1EpBKA0QAmuq8gIo3dfv0LgI02bJeIiIgo6oXcjKiUKhaRsQCmA0gE8LFSar2IPA1gmVJqIoB7ROQvAIoB5AC4KdTtEhEREcUCO/psQSk1BcAUr9ced/v5IQAP2bEtIiIioljCDPJEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQgBltEREREDmKwRUREROQg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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fs=32000 # sampling frequency\n", "N=1024 #number of subbands\n", "#spectrum in dB sound level, 60 dB: speaking level:\n", "spec=np.ones(1024)*60.0\n", "#Convert to range of internal representation: Value 1 or 0 dB is full level,\n", "#assume full level will result in 60 dB sound level from sound volume level:\n", "spec=spec-60.0\n", "\n", "noise, fs = noisefromdBSpectrum(spec,fs)\n", "\n", "noise/=np.abs(noise).max()\n", "import IPython.display as ipd\n", "display(ipd.Audio(noise,rate=fs))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The sound of noise with similar power but now not with a flat spectrum but shaped like the hearing threshold in quiet:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Miniconda3\\envs\\TU_Tutorials\\lib\\site-packages\\ipykernel_launcher.py:4: RuntimeWarning: divide by zero encountered in power\n", " after removing the cwd from sys.path.\n" ] }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fs=32000 # sampling frequency\n", "N=1024 # number of subbands\n", "f=np.linspace(0,fs/2,N)\n", "LTQ=np.clip((3.64*(f/1000.)**-0.8 -6.5*np.exp(-0.6*(f/1000.- 3.3)**2.)+1e-3*((f/1000.)**4.)),-20,60)\n", "#LTQ=(3.64*(f/1000.)**-0.8 -6.5*np.exp(-0.6*(f/1000.- 3.3)**2.)+1e-3*((f/1000.)**4.))\n", "#LTQ/=np.abs(LTQ).max()\n", "#Shift dB according to our internal representation:\n", "LTQ=LTQ-60\n", "#Play back noise shaped like the masking theshold in quoet:\n", "#Normalize\n", "noise, fs = noisefromdBSpectrum(LTQ,fs)\n", "\n", "noise/=np.abs(noise).max()\n", "import IPython.display as ipd\n", "display(ipd.Audio(noise,rate=fs))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "**Observe:** White noise (flat spectrum) is clearly audible\n", "Noise shaped according to our threshold approximation should be inaudible! Apart from the clicks that are artifacts by the blocks generating the audio." ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "slide" } }, "source": [ "## The Complete Psycho-Acoustic Model" ] }, { "cell_type": "markdown", "metadata": { "scrolled": false, "slideshow": { "slide_type": "-" } }, "source": [ " - Now our complete psycho-acoustic model for the computation of our masking threshold is:\n", " " ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def maskingThreshold(mX, W, W_inv,fs,spreadingfuncmatrix,alpha,nfft):\n", " #Input: magnitude spectrum of a DFT of size 2048\n", " #Returns: masking threshold (as voltage) for its first 1025 subbands\n", " #Map magnitude spectrum to 1/3 Bark bands:\n", " mXbark=mapping2bark(mX,W, nfft)\n", " #Compute the masking threshold in the Bark domain:\n", " mTbark=maskingThresholdBark(mXbark,spreadingfuncmatrix,alpha)\n", " #Map back from the Bark domain,\n", " #Result is the masking threshold in the linear domain:\n", " mT=mappingfrombark(mTbark,W_inv,nfft)\n", " #Threshold in quiet:\n", " f=np.linspace(0,fs/2,1025)\n", " LTQ=np.clip((3.64*(f/1000.)**-0.8 -6.5*np.exp(-0.6*(f/1000.-3.3)**2.)+1e-3*((f/1000.)**4.)),-20,80)\n", " mT=np.max((mT, 10.0**((LTQ-60)/20)),0)\n", " return" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ "This example is an idealized tone in one subband, and its resulting masking threshold, which is mostly its spreading function:\n", "\n", "
\n", "
\n", " \n", "
" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "#Programs to implement a psycho-acoustic model\n", "#Using a matrix for the spreading function (faster)\n", "#Gerald Schuller, Nov. 2016\n", "\n", "# Ported to Jupyter Notebook by Renato Profeta, October 2020" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def f_SP_dB(maxfreq,nfilts):\n", " #usage: spreadingfunctionmatdB=f_SP_dB(maxfreq,nfilts)\n", " #computes the spreading function protoype, in the Bark scale.\n", " #Arguments: maxfreq: half the sampling freqency\n", " #nfilts: Number of subbands in the Bark domain, for instance 64 \n", " \n", " maxbark=hz2bark(maxfreq) #upper end of our Bark scale:22 Bark at 16 kHz\n", " \n", " #Number of our Bark scale bands over this range: nfilts=64\n", " spreadingfunctionBarkdB=np.zeros(2*nfilts)\n", " \n", " #Spreading function prototype, \"nfilts\" bands for lower slope \n", " spreadingfunctionBarkdB[0:nfilts]=np.linspace(-maxbark*27,-8,nfilts)-23.5\n", " \n", " #\"nfilts\" bands for upper slope:\n", " spreadingfunctionBarkdB[nfilts:2*nfilts]=np.linspace(0,-maxbark*12.0,nfilts)-23.5\n", " return spreadingfunctionBarkdB" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def spreadingfunctionmat(spreadingfunctionBarkdB,alpha,nfilts):\n", " #Turns the spreading prototype function into a matrix of shifted versions.\n", " #Convert from dB to \"voltage\" and include alpha exponent\n", " #nfilts: Number of subbands in the Bark domain, for instance 64 \n", " spreadingfunctionBarkVoltage=10.0**(spreadingfunctionBarkdB/20.0*alpha)\n", " \n", " #Spreading functions for all bark scale bands in a matrix:\n", " spreadingfuncmatrix=np.zeros((nfilts,nfilts))\n", " \n", " for k in range(nfilts):\n", " spreadingfuncmatrix[k,:]=spreadingfunctionBarkVoltage[(nfilts-k):(2*nfilts-k)]\n", " \n", " return spreadingfuncmatrix" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def maskingThresholdBark(mXbark,spreadingfuncmatrix,alpha,fs,nfilts): \n", " #Computes the masking threshold on the Bark scale with non-linear superposition\n", " #usage: mTbark=maskingThresholdBark(mXbark,spreadingfuncmatrix,alpha)\n", " #Arg: mXbark: magnitude of FFT spectrum, on the Bark scale\n", " #spreadingfuncmatrix: spreading function matrix from function spreadingfunctionmat\n", " #alpha: exponent for non-linear superposition (eg. 0.6), \n", " #fs: sampling freq., nfilts: number of Bark subbands\n", " #nfilts: Number of subbands in the Bark domain, for instance 64 \n", " #Returns: mTbark: the resulting Masking Threshold on the Bark scale \n", " \n", " #Compute the non-linear superposition:\n", " mTbark=np.dot(mXbark**alpha, spreadingfuncmatrix**alpha)\n", " \n", " #apply the inverse exponent to the result:\n", " mTbark=mTbark**(1.0/alpha)\n", " \n", " #Threshold in quiet:\n", " maxfreq=fs/2.0\n", " maxbark=hz2bark(maxfreq)\n", " step_bark = maxbark/(nfilts-1)\n", " barks=np.arange(0,nfilts)*step_bark\n", " \n", " #convert the bark subband frequencies to Hz:\n", " f=bark2hz(barks)+1e-6\n", " #Threshold of quiet in the Bark subbands in dB:\n", " LTQ=np.clip((3.64*(f/1000.)**-0.8 -6.5*np.exp(-0.6*(f/1000.-3.3)**2.)+1e-3*((f/1000.)**4.)),-20,160)\n", " #Maximum of spreading functions and hearing threshold in quiet:\n", " mTbark=np.max((mTbark, 10.0**((LTQ-60)/20)),0)\n", " return mTbark" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def hz2bark(f):\n", " \"\"\" Usage: Bark=hz2bark(f)\n", " f : (ndarray) Array containing frequencies in Hz.\n", " Returns :\n", " Brk : (ndarray) Array containing Bark scaled values.\n", " \"\"\"\n", " Brk = 6. * np.arcsinh(f/600.) \n", " return Brk" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def bark2hz(Brk):\n", " \"\"\" Usage:\n", " Hz=bark2hs(Brk)\n", " Args :\n", " Brk : (ndarray) Array containing Bark scaled values.\n", " Returns :\n", " Fhz : (ndarray) Array containing frequencies in Hz.\n", " \"\"\"\n", " \n", " Fhz = 600. * np.sinh(Brk/6.)\n", " return Fhz" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def mapping2barkmat(fs, nfilts,nfft):\n", " #Constructing matrix W which has 1’s for each Bark subband, and 0’s else:\n", " #nfft=2048; nfilts=64;\n", " nfreqs=nfft/2\n", " maxbark=hz2bark(fs/2) #upper end of our Bark scale:22 Bark at 16 kHz\n", " nfreqs=nfft/2\n", " step_barks = maxbark/(nfilts-1)\n", " #the linspace produces an array with the fft band edges:\n", " binbarks = hz2bark(np.linspace(0,(nfft//2),(nfft//2)+1)*fs//nfft)\n", " W = np.zeros((nfilts, nfft))\n", " for i in range(nfilts):\n", " W[i,0:(nfft//2)+1] = (np.round(binbarks/step_barks)== i)\n", " return W" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "hide_input": false }, "outputs": [], "source": [ "def mapping2bark(mX,W,nfft):\n", " #Maps (warps) magnitude spectrum vector mX from DFT to the Bark scale\n", " #arguments: mX: magnitude spectrum from fft\n", " #W: mapping matrix from function mapping2barkmat\n", " #nfft: : number of subbands in fft\n", " #returns: mXbark, magnitude mapped to the Bark scale\n", " \n", " nfreqs=int(nfft/2)\n", " \n", " #Here is the actual mapping, suming up powers and conv. back to Voltages:\n", " mXbark = (np.dot( np.abs(mX[:nfreqs])**2.0, W[:, :nfreqs].T))**(0.5)\n", " \n", " return mXbark" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def mappingfrombarkmat(W,nfft):\n", " #Constructing inverse mapping matrix W_inv from matrix W for mapping back from bark scale\n", " #usuage: W_inv=mappingfrombarkmat(Wnfft)\n", " #argument: W: mapping matrix from function mapping2barkmat\n", " #nfft: : number of subbands in fft\n", " nfreqs=int(nfft/2)\n", " W_inv= np.dot(np.diag((1.0/np.sum(W,1))**0.5), W[:,0:nfreqs + 1]).T\n", " return W_inv" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def mappingfrombark(mTbark,W_inv,nfft):\n", " #usage: mT=mappingfrombark(mTbark,W_inv,nfft)\n", " #Maps (warps) magnitude spectrum vector mTbark in the Bark scale\n", " # back to the linear scale\n", " #arguments:\n", " #mTbark: masking threshold in the Bark domain\n", " #W_inv : inverse mapping matrix W_inv from matrix W for mapping back from bark scale\n", " #nfft: : number of subbands in fft\n", " #returns: mT, masking threshold in the linear scale\n", " \n", " nfreqs=int(nfft/2)\n", " mT = np.dot(mTbark, W_inv[:, :nfreqs].T)\n", " return mT" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "**Testing**" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "fs=32000 # sampling frequency of audio signal\n", "maxfreq=fs/2\n", "alpha=0.8 #Exponent for non-linear superposition of spreading functions\n", "nfilts=64 #number of subbands in the bark domain\n", "nfft=2048 #number of fft subbands" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl4AAADICAYAAAA5ge/xAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAft0lEQVR4nO3debRcVZn38e8PgoBcIIQhzB1UVBAhEMaGRgYHJo3dgoI0BF5cEQVbbbUdWiQovI29BNoBwTAGQWYQVKSZDCHIEAK8DEbmAGEmBEKYA8/7x95FKpUaTt3cGvP7rJVVdeanalelnvvsfc5RRGBmZmZmrbdUpwMwMzMzW1I48TIzMzNrEydeZmZmZm3ixMvMzMysTZx4mZmZmbWJEy8zMzOzNnHiZdYESftLuqpDx/6KpGckzZO0aidiqIjnZElHlE13VXydJmmCpLM7HUdRle1pZq3hxMt6nqSZkt6UtFrF/DslhaRRBfYxKq87rN56EXFORHxyEDH+RtKvy6aXkfRKjXnbVtl+GeB44JMRMRARs5uNoco+Q9IHKuYVThYi4tCI+Emr4mtG0fars/1Okt7JSeM8SU9IOmqo46xz/DNz/J+pmP8/ef5BrY6hvD27kaSDJE3tdBxmi8uJl/WLR4D9ShOSPgosP5QHGOyPejYF+FjZ9JbAY8COFfMAplfZfiSwHHBvswdW0urverfHV8STOWkcAHYADpH02cHsaJCflfuBcRX72Ad4aDAxmFl36ob/7MyGwm+BA8umxwFnla8gaU9Jd0iaK+lxSRPKFk/Jjy/misd2+S/sGyWdIOkFYEL5X92S/lHS85LWy9ObSXpR0oerxHc9sFFZVe6fgPOAFSrm3RQRb1XE/UHgvrL4ris7/jRJL+XHfyzbZrKkYyTdCLwKvK/RG1gpV4FmSfqWpGclPSXp4LLlZ0o6eqjiy/OOlvTX3AZ/kLSqpHNym02rU72s1n5LSfqhpEdz/GdJWrnIa4+IR4C/AhuXxfzz/LmZK2m6pH8qWzZB0kWSzpY0Fzio4r1cRtK5ki6W9J4ah/0DsL2kVfL0bsBdwNNl+3m/pOskzc6fvXMkDS9bPlPS9yX9TdIcSWdIWi4vK7XnD/K2MyXtX7btmZKOrli3Vtuvmtun1C5Hq041StKFkp7On4Upkj5StmyPHO/LSpXGb9faT8U+Z0r6jqS7lCrFp0kaKenPeV/XlL2XjWKo+3okfVjS1ZJekHSfpM8XidGsGide1i9uBlaStJGkpYEvAJVdZq+QkrPhwJ7AV7SgolGqPA3PVY+b8vQ2wMPAGsAx5TuLiL8CvwEmSVqelPz9MCL+XhlcRMwCHiUlV6Xj3UD6cS+fN6XKtvcDpR+J4RGxi6QRwJ+AXwCrkrr5/qSFx1YdAIwHVszHHow1gZWBdYBDgBPLf8xaEN++ef46wPuBm4AzgBHADODIGnFWa7+D8r+dSYnnAPCrIi9a0obA9qTPVck0YHSO5XfAhaWkJhsLXET6fJ1Ttq/lgd8DbwCfj4g3axz2deBy0nsA6bN6VsU6Av4LWBvYCFgPmFCxzv7Ap0jv3weBH5YtWxNYjfT+jgMmSvpQjXjqtf2JpO/Tmnk/46ruYYE/AxuSvke3U/b+AKcBX46IFYFNgOsa7Kvc54BPkF7np/NxfkB6jUsB/1YwhpqvR9IKwNWkNl+DVFn/dXniZtYMJ17WT0pVr08AfweeKF8YEZMj4u6IeCci7gLOZeHuv2qejIhfRsT8iHityvIJpB+nW4EnSf+B13I9sKNSt9rWpB/1G8rmbZ/XKWJP4IGI+G2O7VzSa/502TpnRsS9eflb1XfT0FvAjyPirYi4ApgH1PqhHor4zoiIhyLiJdIP5UMRcU1EzAcuBDZvIvb9geMj4uGImAd8H9hXtbsB11aqWM4ldfvdArxb9YiIsyNido73OGBZFn4vboqI3+fPV+mzshJwJam78OCIeLtBzGcBB+bK3MdICdu7IuLBiLg6It6IiOdICW3lZ/hXEfF4RLxA+mNhv4rlR+Ttryclx7WqN1XbPv9h8zngyIh4NSL+Bkyq96Ii4vSIeDki3iB9ZzYrqz6+BWwsaaWImBMRt9fbV4VfRsQzEfEE6bt0S0TckY9zKWWfl1oxFHg9ewEzI+KM3Pa3AxcDezcRp9m7nHhZP/kt8EVSlaOyUoCkbST9RdJzkl4CDiX9ZVzP4/UW5oThTNJf6sdF/bvOTyFVZj4KPBwRr5J+2Evzlif92BexNotWsR4lVScKxQ68DSxTMW8Z0g9hyeyc9JS8SqoctSq+Z8qev1Zlusixa8XwKDCMNB6tmicjYnhErESqWr1G2Q9w7nabkbuqXiQl3OWfn2qvZ1tgU+DYBp8NACJiKrA6qUr1x8pkX9Iaks7LXXJzSVXdys9weRyPkt6HkjkR8Uqd5eVqtf3qpPex/Dg1P2uSlpZ0rKSHcswz86JS3J8D9gAelXS9pO1q7auKQp+XBjE0ej3/AGyTk/IXc9vvT6qOmTXNiZf1jYh4lDTIfg/gkiqr/I7UlbNeRKwMnEzqugGo9aNY98dS0jqk7q8zgOMkLVtn9SnAZqRq0A153r2k7qI9gWkR8Xq945V5kvSDUG59Fq7yNfqhfwwYVTFvAwbfLVluKOJrRrV9VcawPjCfhX+cq+8sVdx+R67QKY3n+i6pOrRKRAwHXmLB56dWDFeRugavlVQr4at0NvAtqvzxkPcVwKY5QfzXihggfZ5K1ie9DyWr5K6zWsuLeI70Pq5b45iVvkjqhv04KVkdlecLICKmRcRYUjfe74ELmoyniHoxNHo9jwPX56S89G8gIr7SgjhtCeDEy/rNIcAuFX/Vl6wIvBARr0vamvSfcclzwDs0MQhdkkjVrtPycZ8Cap6OHxEPkn70v05OvHIV5JY8b5HxXXVcAXxQ0hclDZP0BdJA8D82sY/zgR9KWldpIPrHSYnGRU3so5XxNaNa+50LfFPSBpIGgP8LnF9Rxakqr78vC87SXJH04/wcMEzSj0jdiA1FxH+TkrhrVXHJkxp+Qeour/Z5WJHU5fdiTvq/U2Wdw3KbjiCNdzq/YvlRkt6Tk8m9SF24heXu0ktIJ5u8V+lkkgPrbLIiaXzbbOC9pHYAIMexv6SVc/V4LqkSO9RqxlDg9fyR9Fk+QOkkiWUkbSVpoxbEaUsAJ17WV/L4oNtqLP4q8GNJLwM/ouwv69ztdwxwY+5OWORaWlX8G6nb6oicQB0MHKyys92qmELq2rixbN4NpL/2Cydeka6TtRepMjIb+A9gr4h4vug+gB+TBvdPBeYA/w3sHxH3NLGPVsbXzPGqtd/ppO7nKaRK6OvA1+rsZm3l63iRqn4jSF1KAP9LGnN2f172Oo27csvj+wmpmnNNTojqrftCRFxbo2vyKGALUrXtT9Su7F5FOinkYeDosmVPk9r6SdLg8kOjyskgBRxOqhw9TXqPzyUlNtWcRXrPngD+xsInLEA6mWJm7gI8lFTFG2qNYqj5eiLiZeCTpET8ybzOT0lj/MyapgLDDszMrAdImgl8KSKuqbJsJ+DsiFi3ctkQHPenwJoR0ejsxp7Qb6/HuosrXmZm1pR8XatNlWxN6mq/tNNxDVa/vR7rbotzJW4zM1syrUjqjlsbeBY4DrisoxEtnn57PdbFOtLVKGk34OfA0sCpEXFs24MwMzMza7O2J175YnX3k87amUW6GvR++aJ1ZmZmZn2rE12NWwMPRsTDAJLOI11fpWbipWHLx1prjeTp2a8CsPlG67cjTltMr7zyCiussELjFa1ruM16j9us97jNek+zbXb77dOfj4jVqy3rROK1Dgufhj2LdD+8hUgaT7qPGyuvMoITjj+eJ55Pl2bafKN61+qzbjFv3jwGBpq50Lh1mtus97jNeo/brPc022a77LxzzQtRdyLxqrzKMlS54nNETAQmAowZs2WssfoIxv7zvwCwylaHL7KDOdMK3fvW2uimqZPZboedOh2GNcFt1nvcZr3HbdZ7hrLNOnE5iVksfDuGdWn+lhVmZmZmPacTFa9pwIaSNiBdRXhfFr51S0PVqlvVqmC11jUzMzPrhLYnXhExX9LhpFtwLA2cHhH3NtjMzMzMrOd15AKqEXEF6Sa6ZmZmZkuMvrlyfa0uRQ/ENzMzs27hezWamZmZtUnfVLxq8UB8MzMz6xaueJmZmZm1Sd9XvKrxeDAzMzPrBFe8zMzMzNpkiax41eLxYGZmZtZKrniZmZmZtYkrXg0UHQ/mCpiZmZk14oqXmZmZWZu44jVIlRWuWmPBqq1rZmZmSyZXvMzMzMzaxImXmZmZWZu4q3GI1OtO9CUpzMzMDFzxMjMzM2sbV7zaoJlbFDXaxszMzHqXK15mZmZmbeKKVwcNZlxYo+3MzMyse7niZWZmZtYmrnh1KZ8laWZm1n9c8TIzMzNrE1e8epDPkjQzM+tNrniZmZmZtYkTLzMzM7M2cVdjHxns5SkabWtmZmZDwxUvMzMzszZxxWsJ0aii5YH5ZmZmreeKl5mZmVmbNKx4SdoHuDIiXpb0Q2AL4OiIuL3l0VnbLM74sEbbm5mZWVKk4nVETrp2AD4FTAJOam1YZmZmZv2nyBivt/PjnsBJEXGZpAmtC8m6TZFqVrWq2DHjt2GPbx5eeB9mZmb9rkjF6wlJvwE+D1whadmC25mZmZlZmSIVr88DuwE/i4gXJa0FfKe1YVmvqVbRumnqZOZMOwDwODEzMzOok3hJGlE2Obls3hvAba0Ny8zMzKz/1Kt4TQcCELA+MCc/Hw48BmzQ8ujMzMzM+kjNxCsiNgCQdDJweURckad3Bz7eaMeS1gPOAtYE3gEmRsTPc9XsfGAUMBP4fETMWbyXYd1usAP0F2d/ZmZm3abIIPmtSkkXQET8GfhYge3mA9+KiI2AbYHDJG0MfA+4NiI2BK7N02ZmZmZ9r8jg+ufzhVPPJnU9/iswu9FGEfEU8FR+/rKkGcA6wFhgp7zaJNL4se82G7j1n2aqWB6sb2ZmvUgRUX+F1DV4JLBjnjUFOCoiXih8EGlU3m4T4LGIGF62bE5ErFJlm/HAeICRI0eOOeXUUxkYGCh6SOsC8+bNa1mb3THj8YbrbL7Rei05dj9rZZtZa7jNeo/brPc022a77Lzz9IjYstqyhhWvnGB9vXh4C5M0AFwMfCMi5koqtF1ETAQmAowZs2UMDAyw3Q47DTYM64Cbpk5uWZttt0PjdTxmrHmtbDNrDbdZ73Gb9Z6hbLMi92r8IPBt0mD4d9ePiF0KbLsMKek6JyIuybOfkbRWRDyVrwn27GACNzMzM+s1RcZ4XQicDJzKgtsHNaRU2joNmBERx5ctuhwYBxybHy8rHK1ZE4Z6zFiz+zQzM6tUJPGaHxGDuSn29sABwN2S7szzfkBKuC6QdAjpemD7DGLfZmZmZj2nSOL1B0lfBS4lXbUeeHfsV00RMZV0wdVqdi0coVkbFK1kNTNubDD7NzOz/lYk8RqXH8vvzxjA+4Y+HDMzM7P+VeSsRt8ayCwbbOVqMJUyV8nMzPpPkYoXkjYBNgaWK82LiLNaFZSZmZlZPypyOYkjSVea3xi4AtgdmEq6D6OZmZmZFVSk4rU3sBlwR0QcLGkk6dISZlbQYLoN3T1pZtZ/itwk+7WIeAeYL2kl0gVPPbDezMzMrElFKl63SRoOnAJMB+YBt7Y0KjNzlczMrA8VOavxq/npyZKuBFaKiLtaG5aZmZlZ/yl6VuO/ADuQrt81FXDiZdaFFrdKdsz4bdjjm765uJlZqzQc4yXp18ChwN3APcCXJZ3Y6sDMzMzM+k2RitfHgE0iIgAkTSIlYWbWB8qrVjdNncycaQcU3nawt1CqPK6Z2ZKiyFmN9wHrl02vh7sazczMzJpWs+Il6Q+kMV0rAzMklc5k3Br4axtiM7MutzhVq8Wplg1VDGZm7Vavq/FnbYvCzMzMbAlQM/GKiOtLzyWtSap0BTAtIp5uQ2xmZmZmfaXIvRq/BPwIuA4Q8EtJP46I01sdnJn1r6HqIhyKLkt3V5pZuxQ5q/E7wOYRMRtA0qqkMV5OvMzMzMyaUCTxmgW8XDb9MvB4a8IxM2vOUFSrhmqgf4kraGZWS72zGv89P30CuEXSZaQxXmPxvRrNzMzMmlav4rVifnwo/yu5rHXhmJm131BXqIaygubqmVl/qXdW41HtDMTMzMys3xU5q/EvpC7GhUTELi2JyMysxw1llapR9azZG5uXuJJm1hlFBtd/u+z5csDngPmtCcfMzMysfzVMvCJiesWsGyVdX3VlMzMbUo0qU83e2LxkqM/krOSKmll1RboaR5RNLgWMAdZsWURmZmZmfapIV+N00hgvkboYHwEOaWVQZmZmZv2oSFfjBu0IxMzM2qfVXYHuyjSrbqlaCyRtlW+OXZo+UNJlkn5R0f1oZmZmZgXUq3j9Bvg4gKQdgWOBrwGjgYnA3i2PzszMelKvV9RKXFmzoVYv8Vo6Il7Iz78ATIyIi4GLJd3Z+tDMzMzM+kvdxEvSsIiYD+wKjC+4nZmZWUu1qxLVispao4veusrW3+olUOcC10t6HngNuAFA0geAl9oQm5mZmVlfqXevxmMkXQusBVwVEaXbBi1FGutlZmbW11pRfWp00dt2jV8rcYWtvep2GUbEzVXm3d+6cMzMzMz6V8vHaklaGrgNeCIi9pK0AXAeMAK4HTggIt5sdRxmZma9oN0VqHZX2MotidW2mtfxGkJfB2aUTf8UOCEiNgTm4Kvgm5mZ2RKiyL0ad4+IP1fMOzQiTi6w7brAnsAxwL9LErAL8MW8yiRgAnBSk3GbmZnZEOhk1amT1bZy7XwPilS8jpC0S2lC0neBsQX3/z/AfwDv5OlVgRfzJSoAZgHrFNyXmZmZWU8rMsbrM8AfJX0H2A34cJ5Xl6S9gGcjYrqknUqzq6waVeYhaTz52mEjR45k3rx53DR1coFwrVu4zXqP26z3uM16j9tsgWPGb9PpEAAatsdQtlmRm2Q/L+kzwDXAdGDvsktL1LM98BlJewDLASuRKmDDyy7Mui7wZI3jTiTdmogxY7aMgYEBttthpwKHtW5x09TJbrMe4zbrPW6z3uM2W2C7HTodQdKoy/OY8dvwnxOvHJJj1btJ9suS5kqaCzwIfBDYByjNqysivh8R60bEKGBf4LqI2B/4Cwvu8zgOuGwxX4OZmZlZT6h3AdUV82D49SLisSE85neB8yQdDdwBnDaE+zYzMzNrSqPB9Y0ueltp+WVOrLms0QVUQ9KlwJjCR6u+n8nA5Pz8YWDrxdmfmZmZWS8qclbjzZK2ankkZmZmZn2uyFmNOwNflvQo8ArpzMSIiE1bGpmZmZlZnymSeO3e8ijMzMzMlgBFLifxKICkNUiXhTAzMzOzQWg4xkvSZyQ9ADwCXA/MBP5cdyMzMzMzW0SRwfU/AbYF7o+IDYBdgRtbGpWZmZlZHyqSeL0VEbOBpSQtFRF/AUa3OC4zMzOzvlNkcP2LkgaAKcA5kp4F5jfYxszMzMwqFKl4jQVeBb4JXAk8BHy6lUGZmZmZ9aMiZzW+kp++I+lPwOyCN8k2MzMzszL1bpK9raTJki6RtLmke4B7gGck7da+EM3MzMz6Q72K16+AHwArA9cBu0fEzZI+DJxL6nY0MzMzs4LqjfEaFhFXRcSFwNMRcTNARPy9PaGZmZmZ9Zd6idc7Zc9fq1jmMV5mZmZmTarX1biZpLmkm2Ivn5+Tp33rIDMzM7Mm1Uy8ImLpdgZiZmZm1u+KXMfLzMzMzIaAEy8zMzOzNnHiZWZmZtYmTrzMzMzM2sSJl5mZmVmbOPEyMzMzaxMnXmZmZmZt4sTLzMzMrE2ceJmZmZm1iRMvMzMzszZx4mVmZmbWJk68zMzMzNrEiZeZmZlZmzjxMjMzM2sTJ15mZmZmbeLEy8zMzKxNnHiZmZmZtYkTLzMzM7M2ceJlZmZm1iYtTbwkDZd0kaS/S5ohaTtJIyRdLemB/LhKK2MwMzMz6xatrnj9HLgyIj4MbAbMAL4HXBsRGwLX5mkzMzOzvteyxEvSSsCOwGkAEfFmRLwIjAUm5dUmAZ9tVQxmZmZm3UQR0ZodS6OBicDfSNWu6cDXgSciYnjZenMiYpHuRknjgfEAI0eOHHPKqacyMDDQklitNebNm+c26zFus97jNus9brPe02yb7bLzztMjYstqy4YNWVTV970F8LWIuEXSz2miWzEiJpISN8aM2TIGBgbYboedWhKotcZNUye7zXqM26z3uM16j9us9wxlm7VyjNcsYFZE3JKnLyIlYs9IWgsgPz7bwhjMzMzMukbLEq+IeBp4XNKH8qxdSd2OlwPj8rxxwGWtisHMzMysm7SyqxHga8A5kt4DPAwcTEr2LpB0CPAYsE+LYzAzMzPrCi1NvCLiTqDa4LJdW3lcMzMzs27kK9ebmZmZtYkTLzMzM7M2adl1vIaSpOeAV4DnOx2LNWU13Ga9xm3We9xmvcdt1nuabbN/iIjVqy3oicQLQNJttS5GZt3JbdZ73Ga9x23We9xmvWco28xdjWZmZmZt4sTLzMzMrE16KfGa2OkArGlus97jNus9brPe4zbrPUPWZj0zxsvMzMys1/VSxcvMzMyspznxMjMzM2uTrk+8JO0m6T5JD0r6XqfjseokzZR0t6Q7Jd2W542QdLWkB/LjKp2Oc0kn6XRJz0q6p2xe1XZS8ov83btL0hadi3zJVKO9Jkh6In/X7pS0R9my7+f2uk/SpzoT9ZJN0nqS/iJphqR7JX09z/f3rEvVabOWfNe6OvGStDRwIrA7sDGwn6SNOxuV1bFzRIwuu9bJ94BrI2JD4No8bZ11JrBbxbxa7bQ7sGH+Nx44qU0x2gJnsmh7AZyQv2ujI+IKgPx/477AR/I2v87/h1p7zQe+FREbAdsCh+W28fese9VqM2jBd62rEy9ga+DBiHg4It4EzgPGdjgmK24sMCk/nwR8toOxGBARU4AXKmbXaqexwFmR3AwMl7RWeyI1qNletYwFzouINyLiEeBB0v+h1kYR8VRE3J6fvwzMANbB37OuVafNalms71q3J17rAI+XTc+i/pthnRPAVZKmSxqf542MiKcgfbCBNToWndVTq538/eteh+duqdPLuvDdXl1G0ihgc+AW/D3rCRVtBi34rnV74qUq83z9i+60fURsQSqbHyZpx04HZIvN37/udBLwfmA08BRwXJ7v9uoikgaAi4FvRMTceqtWmed264AqbdaS71q3J16zgPXKptcFnuxQLFZHRDyZH58FLiWVXZ8plczz47Odi9DqqNVO/v51oYh4JiLejoh3gFNY0MXh9uoSkpYh/YCfExGX5Nn+nnWxam3Wqu9atyde04ANJW0g6T2kwWyXdzgmqyBpBUkrlp4DnwTuIbXVuLzaOOCyzkRoDdRqp8uBA/NZV9sCL5W6SqxzKsb//DPpuwapvfaVtKykDUiDtW9td3xLOkkCTgNmRMTxZYv8PetStdqsVd+1YYsfcutExHxJhwP/CywNnB4R93Y4LFvUSODS9NllGPC7iLhS0jTgAkmHAI8B+3QwRgMknQvsBKwmaRZwJHAs1dvpCmAP0sDRV4GD2x7wEq5Ge+0kaTSpa2Mm8GWAiLhX0gXA30hnaR0WEW93Iu4l3PbAAcDdku7M836Av2fdrFab7deK75pvGWRmZmbWJt3e1WhmZmbWN5x4mZmZmbWJEy8zMzOzNnHiZWZmZtYmTrzMzMzM2sSJl5ktNkmjJN1TMW+CpG832G5LSb/Iz5eVdI2kOyV9ocXx/h9Jd+dbgdwjqe49YCUdJOlXVeYv8rqHMMbJkrZsvKaZ9ZKuvo6XmfW3iLgNuC1Pbg4sExGji24vaelmr1UlaV3gP4EtIuKlfJuQ1ZvZh5nZYLniZWYtl6s3P5V0q6T7Jf1Tnr+TpD9KWgM4GxidK17vl7SrpDtyZep0ScvmbWZK+pGkqcA+ed8nSJoiaYakrSRdIukBSUdXCWcN4GVgHkBEzIuIR8ri3DI/X03SzLLt1pN0paT7JB1ZNn+YpEm5enaRpPfm7X8kaVquqE3MV8eu914sL+m8vJ/zgeXz/KUlnZn3c7ekbw5Nq5hZJzjxMrN2GRYRWwPfIF2B/V35Hp9fAm7IFa8ngDOBL0TER0nV+a+UbfJ6ROwQEefl6TcjYkfgZNKtWA4DNgEOkrRqRRz/D3gGeETSGZI+XTD+rYH9STfM3aesG/BDwMSI2BSYC3w1z/9VRGwVEZuQkqi9GrwXXwFezfs5BhiT548G1omITfJ7cUbBeM2sCznxMrOhUOsWGOXzSzcLng6MarC/DwGPRMT9eXoSsGPZ8vMr1i/dw/Vu4N6IeCoi3gAeZuGb2ZK7JncD9gbuB06QNKFBPABXR8TsiHgtv5Yd8vzHI+LG/Pzssvk7S7pF0t3ALsBHyvZV7b3YMW9PRNwF3JXnPwy8T9IvJe1GSu7MrEc58TKzoTAbWKVi3gjg+bLpN/Lj2zQeX6oGy1+pmC7t+52y56XpRY4Vya0R8V/AvsDn8qL5LPh/cbnKzWpMLzJf0nLAr4G9c5XqlIr91XovFklgI2IOsBkwmVTJO7VyHTPrHU68zGyxRcQ84ClJuwJIGkGqKk0d5C7/DoyS9IE8fQBw/WIHmmJbW9IWZbNGA4/m5zNZ0MW3d8Wmn5A0QtLywGeBUpVrfUnb5ef7kV5zKcl6Pg/er9xXNVNIXZlI2gTYND9fDVgqIi4GjgC2qLkHM+t6PqvRzIbKgcCJko7L00dFxEOD2VFEvC7pYOBCScOAaaTxW0NhGeBnktYGXgeeAw7Ny34GXCDpAOC6iu2mAr8FPgD8LiJukzQKmAGMk/Qb4AHgpIh4VdIppK7PmTn+Rk4CzpB0F3AncGuev06eX/pD+fvNvVwz6yaKqDU0w8zMzMyGkrsazczMzNrEiZeZmZlZmzjxMjMzM2sTJ15mZmZmbeLEy8zMzKxNnHiZmZmZtYkTLzMzM7M2+f8wwm175lZ2fwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "W=mapping2barkmat(fs,nfilts,nfft)\n", "plt.figure(figsize=(10,6))\n", "plt.imshow(W[:,:256],cmap='Blues')\n", "plt.title('Matrix W for Uniform to Bark Mapping as Image')\n", "plt.xlabel('Uniform Subbands')\n", "plt.ylabel('Bark Subbands')\n", "plt.grid()" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "W_inv=mappingfrombarkmat(W,nfft)\n", "plt.figure(figsize=(10,6))\n", "plt.imshow(W_inv[:256,:],cmap='Blues')\n", "plt.title('Matrix W_inv for Bark to Uniform Mapping as Image')\n", "plt.xlabel('Bark Subbands')\n", "plt.ylabel('Uniform Subbands')\n", "plt.grid()" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "maxfreq= 16000.0 maxbark= 23.86147742289682\n" ] }, { "data": { "image/png": "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CgsL3apVq9ovXUDNnTuX8ePH+47hncZBY7CPxiFC46Ax2EfjEOF7HMxsv9vnxVqdngcMMbMBZpZGZAPoOZ4ziYiIiLSpmDrD5pxrMLP/BP4GJAMPO+eWeY4lIiIi0qZiqrABOOdeZD/7DoqIiIjEo1i7JCoiIiKScFTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAJOhU1EREQk4FTYRERERAIucIXNzH5lZivNbLGZPWNmXZo99gMzKzOzVWZ2hs+cIiIiIu0lcIUNeBUY7pwbCXwA/ADAzIYCFwLDgDOB+8ws2VtKERERkXYSuMLmnHvFOdcQ/fY9oE/09kTgSedcrXNuLVAGHOsjo4iIiEh7Clxh+5QrgZeit/OB8maPhaP3iYiIiMQ1c861/5uavQb0bOGh251zz0WfcztQDExyzjkz+yPwrnPusejj04AXnXOzP/Xa1wLXAuTm5hbNnDmzDX+T2FBVVUVWVpbvGN5pHDQG+2gcIjQOGoN9NA4RvsdhwoQJIedccUuPpbR3GADn3Gmf97iZTQXOAU51/9cow0BBs6f1ASpaeO0HgAcACgsL3fjx41sjckybO3cuGgeNA2gM9tE4RGgcNAb7aBwigjwOgbskamZnAt8DznXOVTd7aA5woZmlm9kAYAjwvo+MIiIiIu3Jyxm2A/gDkA68amYA7znnrnfOLTOzmcByoAG4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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "spreadingfunctionBarkdB=f_SP_dB(maxfreq,nfilts)\n", "\n", "#x-axis: maxbark Bark in nfilts steps:\n", "\n", "maxbark=hz2bark(maxfreq)\n", "print(\"maxfreq=\", maxfreq, \"maxbark=\", maxbark)\n", "\n", "bark=np.linspace(0,maxbark,nfilts)\n", "\n", "#The prototype over \"nfilt\" bands or 22 Bark, its center \n", "#shifted down to 22-26/nfilts*22=13 Bark:\n", "plt.figure(figsize=(10,6))\n", "plt.plot(bark,spreadingfunctionBarkdB[26:(26+nfilts)])\n", "plt.axis([6,23,-100,0])\n", "plt.xlabel('Bark')\n", "plt.ylabel('dB')\n", "plt.title('Spreading Function')\n", "plt.grid()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "spreadingfuncmatrix=spreadingfunctionmat(spreadingfunctionBarkdB,alpha, nfilts)\n", "plt.figure(figsize=(10,6))\n", "plt.imshow(spreadingfuncmatrix)\n", "plt.title('Matrix spreadingfuncmatrix as Image')\n", "plt.xlabel('Bark Domain Subbands')\n", "plt.ylabel('Bark Domain Subbands')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "#### A test magnitude spectrum: White Noise" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#A test magnitude spectrum:\n", "# White noise:\n", "x=np.random.randn(32000)*1000\n", "ipd.Audio(x,rate=32000)" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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aVO01pSUlLBo0SJ69uxpb3v55ZcDxvXPz89PWJZp06ZFxHkdOHAgZqqLPn36ANiiHWDt2rW0bduWE088EYDBgwczatSoCEHWrl078vLyuP3227n44ovp378/JSUlzJ07l6uuusrezrKs1QYRZPHYsoDOKx4F1sAVr6W7NIIgCBmFH0tWKhk0aBB33303ubm5FBYW2ssffPBB+vXrx8cff0x+fr7tSnS6Dt00atTIHhmXnZ1NIBBIePycnBxCoRBAVIoDr1F2WmsGDx7Mv/71r4T77tSpE506deKGG26gbdu2tiBz71cphdaa//znP1x44YUR67788kvfo/2aN2/u67yaNGlif87KyrK/Z2VleV6z9u3bU1RUxGeffcZZZ50FGILrrbfeom3btrRo0SJq336vfygU4rvvvqNZs2a+znHYsGGMGDGCnBxD+sR7HiwOP/xwli1bxldffcWoUaMYP348zz33HIcddhhLly71dVy/SAxZPE4wfdvVZekthyAIghDF0KFDGT58OJ06dYpYvn//fjvI3xIyAL1792b8+PEArFq1ihUrViR1vJYtW1JcXGx/b9OmDYsWLQJg0qRJ9vJzzjmHsWPHAjBlyhSKiooAOP/885k4cSK7du0CYO/evWzatCniGCUlJREjAJcuXcoJJ5xgf58wYQKhUIiNGzeSl5dHhw4duPDCC3n55ZdtS+C6desoLS2lf//+vPnmm5SVldnH8zoPN87zsqxuteGss87i+eeftwXZWWedxXPPPRcRP+YHd7n79+/Piy++aH9PJJD69+9PUVERy5YtAwzXdn5+Phs2bADg3Xff5dxzz434zZ49ewiFQlxxxRU89thjLF68mEMPPZS2bdsyYcIEwBB21j5rgwiyeBzSmpLmbcCHihYEQRDql+OOO852QTq55557uO+++zj77LMjguZvu+02du/eTefOnXnyySfp3LkzrVq18n08K6jeCoZ/6KGHuPPOO+nTpw/Z2dn2dg899BCzZs3itNNO4+uvv+b4448HoGPHjjz++OP079+fzp07c8EFF7B9+/aIY2iteeqpp+jQoQNdu3bloYceihCVHTp04Nxzz2XAgAG88sorNG3alJtuuomOHTty2mmnceqpp3LLLbcQCAS46KKLGDRoEN27d6dr1648/fTTnufh5u677+bll1+mV69eSaXriMXZZ5/Nli1b7Ji1s846i7y8vKQF2SWXXMLHH39sB/W/8MILLFy4kM6dO9OxY8e4sW8Ww4YNs9NuNG3alLfeeourrrqKTp06kZWVxa233hqx/datW+nbty9du3ZlyJAhtnVz7NixvPHGG3Tp0oVTTjmFTz/9NKlz8UL5MdllKt27d9deeUvqkpJ/d6XFcSfDteNSehzBH7m5uXU+BFyoGXIvMof6vBerV6/m5JNPrpdj1TXBYJDq6mqaNm3Kxo0bOf/881m3bh2NGzeus2OkcrqeIUOGMHDgQK688sqU7P9gI93TWHm9K0qpRVprz1EhEkOWAC0JqQVBEA4KysrK6NevH9XV1Witefnll+tUjAlCbRBB5ocGbEUUBEEQDFq2bOmZDb6h4HRdCgcfEkOWEDGRCYIgCIKQWkSQ+UIsZIIgCIIgpA4RZAlR4rIUBEEQBCGliCATBEEQBEFIMyLIfCEWMkEQhExBKcUNN9xgfw8EAhx55JH21EfJkJ+fz6mnnhq1fOHChdxxxx21KifAiBEj6Nq1K127diU7O9v+/MILLzBkyJA6Sbzqxjk5uB+sCby9cE6gLqQWGWWZAO1z2glBEAShfmjevDkrV66kvLycZs2aMXXqVDszf13RvXv3hJOI+2HYsGEMGzYMgBYtWkRkkx8yZEjC3weDwYiks8LBi1jI/CAxZIIgCBnFgAEDmDx5MgDjxo3j2muvtdctWLCAXr160a1bN3r16sXatWsB+OGHH+jZsyddu3alc+fOrF+/PmKfeXl5dOvWje+//z7CavTwww8zdOhQ+vbtS7t27XjhhRfs3zz22GOcdNJJXHDBBVx77bUR6/wwa9YsevXqRbt27WxrWW5uLv369eO6666zp4V677337LLfcsstBINBgsEgQ4YM4dRTT6VTp06MHDnS3u+ECRPo2bMnJ554oj2hdkVFBTfeeCOdOnWiW7duzJw5M6o8hYWF9O/fn27dunHLLbf4mu9RqBvEQpYQhbgsBUEQPJhyL+xIbj7IhBzTCQY8kXCza665hkcffZSBAweyfPlyhg4daguPk046iVmzZpGTk8O0adO4//77mTRpEq+88gp33nkn119/PVVVVQSDQXbu3AnA2rVrueaaa3jrrbfo2rVrxHySAGvWrGHmzJkUFxfToUMH/vSnP7Fs2TImTZrEkiVLCAQC9tRFybB9+3Zmz57NmjVrGDRokJ2Ff8GCBaxcuZK2bduyevVqPvzwQ+bMmUOjRo247bbbGDt2LKeccgpbt25l5cqVAOzbt8/ebyAQYMGCBXzxxRc88sgjTJs2jVGjRgGwYsUK1qxZQ//+/Vm3bl1EeR555BF69+7N8OHDmTx5MqNHj07qfISaI4JMEARBaHB07tyZ/Px8xo0bx29/+9uIdfv372fw4MGsX78epZQ96fZZZ53FiBEjKCgo4PLLL6d9+/YA7N69m0svvZRJkyZxyimneB7v4osvpkmTJjRp0oSjjjqKnTt3Mnv2bC699FKaNWsGGHMtJstll11GVlYWHTt2tMUhQM+ePWnbti0A06dPZ9GiRfTo0QOA8vJyjjrqKC655BLy8vK4/fbbufjii+nfv7/9+8svvxyA008/nfz8fABmz57N7bffDhii9YQTTogSZLNmzeKjjz6yz/nwww9P+pyEmiGCzA9ishUEQYjGhyUrlQwaNIi7776b3NxcCgsL7eUPPvgg/fr14+OPPyY/P9+e5/O6667jjDPOYPLkyVx44YW8/vrrtGvXjlatWvHLX/6SOXPmxBRkTZo0sT9nZ2cTCATqxJ3n3K9zf82bN49YPnjwYHtiayfLli3jq6++YtSoUYwfP54333wzYr9WWd37j4eS2Om0IDFkCZEHUxAEIRMZOnQow4cPt+OsLPbv328H+TunG8rLy6Ndu3bccccdDBo0iOXLlwPQuHFjPvnkE8aMGcP777/v+/i9e/fms88+o6KigpKSEjumra45//zzmThxIrt27QJg7969bNq0iT179hAKhbjiiit47LHHWLx4cdz9nHPOOYwdOxaAdevWsXnzZjp06BBzmylTplBUVJSCMxK8EAuZL8RCJgiCkGkcd9xx3HnnnVHL77nnHgYPHsyzzz7LeeedZy//8MMPee+992jUqBHHHHMMw4cP58CBA4Bhkfr888+54IILaN68Oa1atUp4/B49ejBo0CC6dOnCCSecQPfu3Tn00EPr7gRNOnbsyOOPP07//v0JhUI0atSIUaNG0axZM2688UZCoRCApwXNyW233catt95Kp06dyMnJ4e23346w0AE89NBDXHvttZx22mmce+65HH/88XV+PoI3qiGPoOjevbtO9USx+5/tSasjj4UbPk7pcQR/5Obm2u4HIb3Ivcgc6vNerF69mpNPPrlejtUQ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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mX=np.abs(np.fft.fft(x[0:2048],norm='ortho'))[0:1025]\n", "mXbark=mapping2bark(mX,W,nfft)\n", "\n", "#Compute the masking threshold in the Bark domain: \n", "mTbark=maskingThresholdBark(mXbark,spreadingfuncmatrix,alpha,fs,nfilts)\n", "\n", "#Massking threshold in the original frequency domain\n", "mT=mappingfrombark(mTbark,W_inv,nfft)\n", "plt.figure(figsize=(10,6))\n", "plt.plot(20*np.log10(mX+1e-3))\n", "plt.plot(20*np.log10(mT+1e-3))\n", "plt.title('Masking Theshold for White Noise')\n", "plt.legend(('Magnitude Spectrum White Noise','Masking Threshold'))\n", "plt.xlabel('FFT subband')\n", "plt.ylabel(\"Magnitude ('dB')\")\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "#### A test magnitude spectrum, an idealized tone in one subband: tone at FFT band 200:" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#A test magnitude spectrum, an idealized tone in one subband:\n", "#tone at FFT band 200:\n", "x=np.sin(2*np.pi/nfft*200*np.arange(32000))*1000\n", "ipd.Audio(x,rate=32000)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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bi59+/Zl06ZNvP3225x//vnk5+cDcN555yX8Pi666CICgS871CZPnkxOTg59+/alV69ebNmyhddee43333+fsrIyIFr5GjRoEGeddRZLlizh+uuvZ9KkSa0+h6997WsAHHPMMaxcuRKAt99+mx/96EcAHHXUUfTv359ly5a1imf27Nm8+OKLAJx//vmed1snm98G//vS6u21fPMP7zO8JMC/nON1NCIisi/xVLaSacqUKdxwww288MILraZJ+OlPf8rEiRN59tlnWblyZfNYwK9//escd9xxvPDCC5x11lk89NBDDBs2jOLiYgYNGsQ777yzz8QsNze3+e9ZWVmEw+Eu6eYrLCyM6z5XX301P/vZz/Y6f/78+bz00kvcd999PPPMM8ycObPVdZquAcQdbyY9daslmeIwtE8h/XrmEop4HYmIiPjZ1VdfzW233bZXMlVVVcWAAdHZn/74xz82b1+xYgXDhg3jBz/4AVOmTGkeiJ+Tk8Nf//pXZs2axaOPPhr3/U888UT+9re/EQqFqKmpaR7z1tVOP/10nnzySbZu3QrAtm3bWL16NVu2bME5x0UXXcSdd97JRx+1v3jPySefzCOPPAJEH+LYsGEDhx122D6P+dvf/ub5E7jJpopZHApyshk5oIQla7d4HYqIiPjYwIEDuf766/dKHm688UamTp3KL3/5S0499dTm7U888QR//vOfCQaDHHTQQdx2223s3BkdI1dYWMjf//53zjjjDAoLCykuLt7v/Y899limTJnCqFGjGDx4MGVlZXGdl6iRI0dy++23c/rpp9PY2EgwGOTBBx8kKyuLb33rWzjnMDPuueeedq/z/e9/n2uuuYaRI0cSDAaZNWsWOTk5rY658847ueyyy3jyySeZOHFic4Kbriwdnm4oKytzH3zwQVLv8a+zPmDxmi28dav6Mv0gU6cF8CO1hX9kalssWrSII444wuswWvFyioaamhp69OhBbW0tJ598MjNnzmTs2LGexOIHXk+X0dbPp5l96Jwra+t4VczilDm92yIiksqmTZvGwoULCYVCTJ06NaOTslSkxCwB6VBdFBGR9JbImDTxHw3+j1MGPRAiIiIiHlFiJiIiIuITSsziZFjbq6mLiIiIdBElZnFSV6aIiIgkmxKzBKhiJiIibTEzrrzyyubX4XCYAw88sHnR8a704IMPMmvWLCA6We369esTvsaQIUOaJ4eNx9///nfGjBnDqFGjOPLII/nNb36T8D3b09H3kai77rqL0aNHM3r0aLKyspr/3nKxda/pqcw4maHMTERE2lRYWMinn37K7t27yc/P54033kjaRKjXXntt89//+Mc/cvTRR9O/f/+k3AugoaGBadOmMXfuXAYOHEhdXV3zWpddpb33EYlEyMrK6pL73Hrrrdx6660A9OjRg48//rhLrtuVVDGLk2kmMxERacc555zTvATS008/zWWXXda8b+7cuUyYMIExY8YwYcIElixZAkBtbS0XX3wxpaWlXHLJJRx33HE0TZjeo0cPbr31VkaNGsX48ePZtGkTAHfccQczZszg6aef5oMPPuDyyy9n9OjR7N69u1Ul7IMPPmiecHjbtm2ceeaZjBkzhmuuuabV9E9//vOfGTduHKNHj+aaa64hEmm9/mB1dTXhcJjevXsD0TUvR4wYAcBVV13Ftddey0knncRXvvIV/v73vwPRZOpHP/oRxx57LKWlpa0qbPfeey8jR45k1KhR3HTTTft8H9OnT+fEE0/kqaeeory8vPlz2bp1K0OGDAGiCd0FF1zAeeedx9ChQ7n//vv55S9/yZgxYxg/fjzbt2+Pu/2++OILJk6cSGlpKWeccQZr164F4IorruD6669nwoQJDBs2jGeffbb5nLvvvptx48ZRWlrK9OnT475Xe1QxS4AKZiIiPvfSTbBxQdde86CRcM7d+z3s0ksvZfr06UyePJnPPvuMa665hrfeeguAww8/nNmzZ5Odnc1rr73GLbfcwjPPPMP//u//csABBzB//nw+/fRTRo8e3Xy9Xbt2MX78eO666y5uvPFGfvvb3/KTn/ykef+FF17I/fffz4wZMygra3MS+WZ33nknJ554IrfddhsvvPBC88LiixYt4oknnuCdd94hGAxy3XXX8cgjj/CNb3yj+dxevXoxZcoUBg8ezGmnncbkyZO57LLLCASitZ2VK1fyj3/8g+XLlzNx4kSWLVvGrFmzKC4u5v3336euro4TTjiBM888k8WLF/PXv/6VOXPmUFBQwPbt2+nVq1eb7yMvL4+3334biHbf7sunn37KvHnzCIVCHHbYYdxzzz3MmzePf/u3f2PWrFl861vf2m/bAVx33XV8+9vf5vLLL2fmzJn88Ic/5OmnnwZg8+bNvPPOOyxYsICL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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mX=np.abs(np.fft.fft(x[0:2048],norm='ortho'))[0:1025]\n", "\n", "#Compute the masking threshold in the Bark domain: \n", "mXbark=mapping2bark(mX,W,nfft)\n", "mTbark=maskingThresholdBark(mXbark,spreadingfuncmatrix,alpha,fs,nfilts)\n", "mT=mappingfrombark(mTbark,W_inv,nfft)\n", "plt.figure(figsize=(10,6))\n", "plt.plot(20*np.log10(mT+1e-3))\n", "plt.title('Masking Theshold for a Tone'),\n", "plt.plot(20*np.log10(mX+1e-3))\n", "plt.legend(('Masking Trheshold', 'Magnitude Spectrum Tone'))\n", "plt.xlabel('FFT subband')\n", "plt.ylabel(\"dB\")\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Physical Models of Hearing" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ " - Physical models don’t model the effects of hearing, but the **physical functioning** of the **inner ear** instead.\n", " - As a result, their output is an **internal representation**, not a masking threshold.\n", " - But they can still be used to compute a **similarity measure** of 2 different sounds, as perceived by the human ear, **by comparing their internal representations.**\n", " - An example is the **\"PEMO-Q\"** measure, to estimate the \"quality\" of a sound compared to an original." ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "hide_input": true, "scrolled": false }, "outputs": [ { "data": { "text/html": [ "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ " - It is used as part of \"PEASS\" toolkit.\n", " \n", "\"Perceptual Evaluation methods for Audio Source Separation\"\n", "\n", "The PEASS toolkit provides:\n", "\n", " - The PEASS Software: a set of objective measures for the perceptual evaluation of audio source separation\n", " - The PEASS Subjective Database: a set of subjective measures resulting from listening tests about the perceptual evaluation of audio source separation\n", " - The PEASS Listening Test GUI: a Matlab GUI to perform MUSHRA tests in the case of the subjetive evaluation of audio source separation, according to the proposed test protocol.\n", " - The PEASS Examples: a set of audio examples that illustrates the proposed method (see the PEASS Software) to decompose of the distortion into specific components.\n", " \n", " http://bass-db.gforge.inria.fr/peass/" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "hide_input": true, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/html": [ "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ " - This is used for instance for measuring the quality of **audio source separation**." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "### PEMO Model" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ "
\n", "
\n", " \n", "
\n", " From http://ieeexplore.ieee.org/Xplore/login.jsp?url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F10376%2F36074%2F01709880.pdf&authDecision=-203 " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.6.10" }, "livereveal": { "rise": { "height": "90%", "width": "90%" }, "scroll": true, "theme": "beige", "transition": "zoom" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "0b0c58e6c93a41799e09f406dbdefde6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0b3040b1b58e4b53a4509d1a39fd031d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0be2682832bd4bc8b51cb737e46ca28c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0e39b9742c5341378d14cd0ce7c6d7b2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_2d9b7d0f8fe4439bb967b502ccdf02f7", "IPY_MODEL_7042e1d3ab44462087773c8182c56c15" ], "layout": "IPY_MODEL_0be2682832bd4bc8b51cb737e46ca28c" } }, "0f12a068f35a41949e7af2ab301fb1a9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "15ad70cfa0aa41638667c356ae56295f": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "16c7c2a79a4a4203be047ae7aeee19fa": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_15ad70cfa0aa41638667c356ae56295f", "style": "IPY_MODEL_0f12a068f35a41949e7af2ab301fb1a9" } }, "1d15c09691004b7080cdbe29a28d73ff": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_e2f6054e0fe24c10ac5c95a2b687f1ca", "IPY_MODEL_2cf22153219242b180ccb47bc4b8f968" ], "layout": "IPY_MODEL_b40a35cef38e4048b6a2d8149ff7e069" } }, "207bd58d7ad144f58b70b598ae30db8e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "20f35183b9e74a438f97507b3d10929a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "23ef77f7f8a84176907ef6949905623b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_f61da7386157426ca81a202ffe23e162", "IPY_MODEL_77a43b098d01405690eb7f9256544cc1" ], "layout": "IPY_MODEL_3c3e2637ae684b7e95aca1d49d23f40b" } }, "2cf22153219242b180ccb47bc4b8f968": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_207bd58d7ad144f58b70b598ae30db8e", "style": "IPY_MODEL_bd80f1c63a2b4a25900e5e5763317b7a" } }, "2d9b7d0f8fe4439bb967b502ccdf02f7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Start", "disabled": true, "layout": "IPY_MODEL_77522a5639144548b35db6c4d7dd4fb1", "style": "IPY_MODEL_7d63afec39bb49df9edf2873be48ac04" } }, "3276b4539f7144b6a21869875e9c4914": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "354ba59a5468408b962c72423d4e1c65": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "3c3e2637ae684b7e95aca1d49d23f40b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4131c38460e44eaf962c7017e2536232": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_d58265f7549a4e979a3c65b9bd5d76a5", "IPY_MODEL_c5267597c945478f959c375f44a4d1a7" ], "layout": "IPY_MODEL_4b10bbeb1b794eb697268d9a1bd106ba" } }, "435a7872da0d4c41be05e35d3d9570aa": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "4488c6e4c7834e098e81b481cb1003a4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "LP Filters", "disabled": false, "layout": "IPY_MODEL_a6c7fc4e429c464e8fca3294d830542a", "style": "IPY_MODEL_7fc76b30f0904d1ab285f634f82d7054", "value": false } }, "470de88b8310448d864c97fad609f7de": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "4b10bbeb1b794eb697268d9a1bd106ba": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "5795130576114428a9f5f86ee4aa8c80": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "589c1be4bde643c899cf54d67ebfb42f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_e8e1025d1bb44a08a500c0d3b8718796", "IPY_MODEL_fb8ae2a4374c451eb7d78b16edcca16a" ], "layout": "IPY_MODEL_354ba59a5468408b962c72423d4e1c65" } }, "5e41a5a9f29443f49a84cb3b28cfd887": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "5e7f58b91bbf4d1d839bbf49450afd8f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_ac4c2b3e307640bdb74f11ec3cf0dafd", "IPY_MODEL_e3db17127dba4e609008d860b5cf05c5" ], "layout": "IPY_MODEL_5e41a5a9f29443f49a84cb3b28cfd887" } }, "5ec351197a1c442a8fa816d034b1eef6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "6341affae71049aba97ec2ad0ff9583d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "6c0e7d0a22a144458689ec0d86788548": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "6cb680fde00f4a6e8c0fb454c76857d3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_de5153ef26c14561bb728c1e74b51aac", "style": "IPY_MODEL_aed5c18ec1e44b1cb9c1c8a1164530bc" } }, "6d9b43798e7642019c6888b869c409a7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "7042e1d3ab44462087773c8182c56c15": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_d869cf27021149409370838cc26ee878", "style": "IPY_MODEL_b5d3845cf20e497ea0bddab2ce24c089" } }, "77480c26779c420390eabd1bbd64cbee": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Start", "layout": "IPY_MODEL_7b0edd69218248ec89c22a9b29960928", "style": "IPY_MODEL_470de88b8310448d864c97fad609f7de" } }, "77522a5639144548b35db6c4d7dd4fb1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "77a43b098d01405690eb7f9256544cc1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_5ec351197a1c442a8fa816d034b1eef6", "style": "IPY_MODEL_f9ed9f912ac848a1a61cccea6d4c20c3", "value": true } }, "7b0edd69218248ec89c22a9b29960928": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "7d63afec39bb49df9edf2873be48ac04": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "7e5dc995c0d54dc88ffba21751e34fd0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "7fc76b30f0904d1ab285f634f82d7054": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "86fd6e4196864369a5e361e09e227412": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "892de2da73f84062be6382bed68d98e9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_77480c26779c420390eabd1bbd64cbee", "IPY_MODEL_16c7c2a79a4a4203be047ae7aeee19fa" ], "layout": "IPY_MODEL_c65da4d48410402ca720e41ea2b1a532" } }, "a6c7fc4e429c464e8fca3294d830542a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a9d684453fac4de8a1da6b5678a9263d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_adf8151b53c0458db8a2931959f9851c", "IPY_MODEL_6cb680fde00f4a6e8c0fb454c76857d3" ], "layout": "IPY_MODEL_6c0e7d0a22a144458689ec0d86788548" } }, "aba427d2152e4e5b95f68cd5fa6b869a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "ac4c2b3e307640bdb74f11ec3cf0dafd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "Downsampling/Upsampling", "disabled": false, "layout": "IPY_MODEL_ccebf79f7b6b4954afc304a9a913fe0b", "style": "IPY_MODEL_5795130576114428a9f5f86ee4aa8c80", "value": false } }, "adf8151b53c0458db8a2931959f9851c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Start", "layout": "IPY_MODEL_c8e686b7f1fd41fb950f6c64c28d1e38", "style": "IPY_MODEL_20f35183b9e74a438f97507b3d10929a" } }, "aed5c18ec1e44b1cb9c1c8a1164530bc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "b40a35cef38e4048b6a2d8149ff7e069": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "b5d3845cf20e497ea0bddab2ce24c089": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "b71122422f634440ba716e8c5537e52d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "Downsampling/Upsampling", "disabled": false, "layout": "IPY_MODEL_c9f9cd5507994921a16488b925690ec8", "style": "IPY_MODEL_e3d4389b65684b879575d18283ac20f2", "value": false } }, "bd80f1c63a2b4a25900e5e5763317b7a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "c1d5efb6eefa4af38df3245d97590b3a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "c5267597c945478f959c375f44a4d1a7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_6341affae71049aba97ec2ad0ff9583d", "style": "IPY_MODEL_c1d5efb6eefa4af38df3245d97590b3a", "value": true } }, "c65da4d48410402ca720e41ea2b1a532": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c8e686b7f1fd41fb950f6c64c28d1e38": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c9f9cd5507994921a16488b925690ec8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "ccebf79f7b6b4954afc304a9a913fe0b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "d58265f7549a4e979a3c65b9bd5d76a5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Start", "disabled": true, "layout": "IPY_MODEL_0b0c58e6c93a41799e09f406dbdefde6", "style": "IPY_MODEL_7e5dc995c0d54dc88ffba21751e34fd0" } }, "d869cf27021149409370838cc26ee878": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "dc8d5864ac8d4bb38cee8d043d030237": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "de5153ef26c14561bb728c1e74b51aac": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e2f6054e0fe24c10ac5c95a2b687f1ca": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Start", "layout": "IPY_MODEL_dc8d5864ac8d4bb38cee8d043d030237", "style": "IPY_MODEL_6d9b43798e7642019c6888b869c409a7" } }, "e35d3e4323234d9287de5cd69a13219c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "e3d4389b65684b879575d18283ac20f2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "e3db17127dba4e609008d860b5cf05c5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "LP Filters", "disabled": false, "layout": "IPY_MODEL_3276b4539f7144b6a21869875e9c4914", "style": "IPY_MODEL_fbee3d37ce574d8da66ca40eea646dfc", "value": false } }, "e8e1025d1bb44a08a500c0d3b8718796": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Start", "layout": "IPY_MODEL_0b3040b1b58e4b53a4509d1a39fd031d", "style": "IPY_MODEL_e35d3e4323234d9287de5cd69a13219c" } }, "f3b755ac64314b4c901f9ecb32965fd6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f61da7386157426ca81a202ffe23e162": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Start", "disabled": true, "layout": "IPY_MODEL_f3b755ac64314b4c901f9ecb32965fd6", "style": "IPY_MODEL_86fd6e4196864369a5e361e09e227412" } }, "f9ed9f912ac848a1a61cccea6d4c20c3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "fb8ae2a4374c451eb7d78b16edcca16a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_aba427d2152e4e5b95f68cd5fa6b869a", "style": "IPY_MODEL_435a7872da0d4c41be05e35d3d9570aa" } }, "fbee3d37ce574d8da66ca40eea646dfc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 2 }