{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true, "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "import numpy, scipy, matplotlib.pyplot as plt, pandas, librosa" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Using Audio in IPython" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Audio Libraries" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "We will mainly use three libraries for audio acquisition and playback: " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### 1. IPython.display.Audio\n", "### 2. librosa\n", "### 3. essentia.standard" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Introduced in IPython 2.0, [`IPython.display.Audio`](http://ipython.org/ipython-doc/stable/api/generated/IPython.display.html#IPython.display.Audio) lets you play audio directly in an IPython notebook." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "[`librosa`](http://bmcfee.github.io/librosa/) is a Python package for music and audio processing by [Brian McFee](http://cosmal.ucsd.edu/~bmcfee/). A large portion was ported from [Dan Ellis's Matlab audio processing examples](http://www.ee.columbia.edu/%7Edpwe/resources/matlab/).\n", "\n", "- [Documentation Home](http://bmcfee.github.io/librosa/)\n", "- [Demo: Getting Started](http://nbviewer.ipython.org/github/bmcfee/librosa/blob/master/examples/LibROSA%20demo.ipynb)\n", "- [librosa on Github](https://github.com/bmcfee/librosa/)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "[Essentia](http://essentia.upf.edu) is an open-source library for audio analysis and music information retrieval \n", "from the [Music Technology Group at Universitat Pompeu Fabra](http://mtg.upf.edu/home). \n", "Although Essentia is written in C++, we will use the Python bindings for Essentia.\n", "\n", "- [Documentation Home](http://essentia.upf.edu/documentation/)\n", "- [Python Tutorial](http://essentia.upf.edu/documentation/python_tutorial.html)\n", "- [Essentia on GitHub](https://github.com/MTG/essentia)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Retrieving Audio" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "To download a file onto your local machine (or Vagrant box) in Python, you can use `urllib.urlretrieve`:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "('simpleLoop.wav', )" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import urllib\n", "urllib.urlretrieve(\n", " 'http://audio.musicinformationretrieval.com/simpleLoop.wav', \n", " filename='simpleLoop.wav'\n", ")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "To check that the file downloaded successfully, list the files in the working directory:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "noise1.wav noise2.wav simpleLoop.wav\r\n" ] } ], "source": [ "%ls *.wav" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Visit https://ccrma.stanford.edu/workshops/mir2014/audio/ for more audio files." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "If you only want to listen to, and not manipulate, a remote audio file, use `IPython.display.Audio` instead. (See [Playing Audio](#Playing-Audio).)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Reading Audio" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### `librosa.load`" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(66150,)\n", "22050\n" ] } ], "source": [ "x, fs = librosa.load('simpleLoop.wav')\n", "print x.shape\n", "print fs" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nNxXmJZeY7qjDDzfr2rjR/B7AAw+YD1PEVDJjx5ouq27dzBd7zRpg3DjzRbdXgY1TQ0PwQny33x79\nOsaPN3vCNTXBvXnbYuja1Ryt4w8jW1nbILBHkNn3ZP/+wsURFy404Xvddeb+0qVmT9zPthg6dWo9\n5mRbIXZ7sOt+6SUzffppoE8f4N57zf3XXgPeecfcnjWrfe9FJf76r8300UcL8+bOjWddhx5qttW9\ne4EbbzT3yV1jxlT+vw0NDWiI+yqcqlrxH0ywvAVgFIAuAFYAGFf0nLMBLPZuTwTwfIllKaB62GGq\nV12lev/9qqaqDv7V1al2767arZu5362bam2t6tix5v6UKWb6la8U/ueSS8x0/nwzra1Vffhh1dNP\nV21oUL3wQtXZs1WXLVOdNUv1qadUv/511Z/8RPX111V/9CPVVatU775bddEi1ZdeUr3vPtWnn1Zd\nutQsa8UKs/xFi8xfWNld/TvxRNXTTlM991zV885THTFC9ZxzVO+6S3XiRNWLL1a98krz3gOqhxyi\n2qmTalOTar9+wWWJqPbtq9qjh/kDVHv3NtODDjL/a9cJmOUCqjfeaKZHH636wx8Wlnf00ea9/ta3\nwsveq5f5GzzY3O/c2UxPOcVML7rITL/2NTP93OdUhw5N/z1v619trZl26aI6bJh5H6ZONfPOP1/1\n1ltVx4wx297MmaoLF6o2Nyt1IKYar7weD/urfgHAZABvAlgH4Hpv3uUALvc9507v8VcBHFdiOQqY\njf/aawuVePHfmDGFLzhgggRQnTzZTO+6y0ynTjWVXF2d6urVqjNmqO7Zo9rYqPrWW7F8Pp/Zvj2e\nSmLBAtVNm0yF7P/y79+v2tIS72tSVT32WFOOgw82waCqOmhQ63KOHm2mAwaYqQ2IXr0Kz7nsMjNt\nbDTTd99Vve021T/8QfXf/i34ec+fr3r55eHvybBhZvr5zwfXfcwxZvqLX5jp3Llmm7nsMhPkV18d\nz2d0zTXmNamqfvRR/J8JURzBUPV5w6r6JIAni+b9rOh+m3+AcefO4BiDvwsBMCcZAcDQoaZLYvhw\nM6YwfTrw5JOFJtqoUabZvm+f6e755S/N/LFj2/f6KhHlWERz84GvOxTVBevaaudOM34BBC+LbfXr\nZ7psevQwXUn22lZNTcDFF5vB9MsuA37xC/N5mf0C0wUCBA9ptYer2vegc+fCWElTkzmEddMmMya0\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(x)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "### `essentia.standard.Monoloader`" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "[`MonoLoader`](http://essentia.upf.edu/documentation/reference/std_MonoLoader.html) reads (and downmixes, if necessary) an audio file into a single channel (as will often be the case during this workshop). `MonoLoader` also resamples the audio to a sampling frequency of your choice (default = 44100 Hz):" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "text/plain": [ "(132300,)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from essentia.standard import MonoLoader\n", "audio = MonoLoader(filename='simpleLoop.wav')()\n", "audio.shape" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "N = len(audio)\n", "t = numpy.arange(0, N)/44100.0\n", "plt.plot(t, audio)\n", "plt.xlabel('Time (seconds)')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "For more control over the audio acquisition process, you may want to use [`AudioLoader`](http://essentia.upf.edu/documentation/reference/std_AudioLoader.html) instead." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Playing Audio" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### `IPython.display.Audio`" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Using [`IPython.display.Audio`](http://ipython.org/ipython-doc/2/api/generated/IPython.lib.display.html#IPython.lib.display.Audio), you can play a local audio file or a remote audio file:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import Audio\n", "# load a remote WAV file\n", "Audio('https://ccrma.stanford.edu/workshops/mir2014/audio/CongaGroove-mono.wav')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# load a local WAV file\n", "Audio('simpleLoop.wav') " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "`Audio` can also accept a NumPy array:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fs = 44100 # sampling frequency\n", "T = 1.5 # seconds\n", "t = numpy.linspace(0, T, int(T*fs), endpoint=False) # time variable\n", "x = numpy.sin(2*numpy.pi*440*t) # pure sine wave at 440 Hz\n", "\n", "# load a NumPy array\n", "Audio(x, rate=fs)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### SoX" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "To play or record audio from the command line, we recommend SoX (included in the `stanford-mir` Vagrant box)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ " $ rec test.wav\n", " \n", " $ play test.wav" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Visualizing Audio" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "`plot` is the simplest way to plot time-domain signals:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n/x8tch+2hQQKOAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "T = 0.001 # seconds\n", "fs = 44100 # sampling frequency\n", "t = numpy.linspace(0, T, int(T*fs), endpoint=False) # time variable\n", "x = numpy.sin(2*numpy.pi*3000*t)\n", "\n", "# Plot a sine wave\n", "plt.plot(t, x)\n", "plt.xlabel('Time (seconds)')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "`specgram` is a Matplotlib tool for computing and displaying spectrograms." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "S, freqs, bins, im = plt.specgram(x, NFFT=1024, Fs=fs, noverlap=512)\n", "\n", "# Plot a spectrogram\n", "plt.xlabel('Time')\n", "plt.ylabel('Frequency')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Writing Audio" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### `librosa.output.write_wav`" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "`librosa.output.write_wav` also saves a NumPy array to a WAV file. This is a bit easier to use." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "noise1.wav noise2.wav simpleLoop.wav\r\n" ] } ], "source": [ "noise = 0.1*scipy.randn(44100)\n", "\n", "# Write an array to a wav file\n", "librosa.output.write_wav('noise2.wav', noise, 44100)\n", "%ls *.wav" ] } ], "metadata": { "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 0 }