├── Dockerfile ├── LICENSE.txt ├── README.md ├── pip ├── pip3 └── requirements.txt /Dockerfile: -------------------------------------------------------------------------------- 1 | # Audio ML Notebook 2 | FROM ubuntu:16.04 3 | 4 | MAINTAINER Steve McLaughlin 5 | 6 | EXPOSE 8887 7 | ENV PYTHONWARNINGS="ignore:a true SSLContext object" 8 | 9 | # Install dependencies 10 | RUN apt-get update && apt-get install -y \ 11 | wget \ 12 | curl \ 13 | git \ 14 | swig3.0 \ 15 | libgtk-3-dev \ 16 | software-properties-common \ 17 | build-essential \ 18 | zip \ 19 | unzip \ 20 | sox \ 21 | libsox-fmt-mp3 \ 22 | libimage-exiftool-perl \ 23 | python2.7 \ 24 | python-dev \ 25 | libffi-dev \ 26 | libssl-dev \ 27 | ipython \ 28 | ipython-notebook \ 29 | python-matplotlib \ 30 | libfreetype6-dev \ 31 | libxft-dev \ 32 | libblas-dev \ 33 | liblapack-dev \ 34 | libatlas-base-dev \ 35 | gfortran \ 36 | libpulse-dev \ 37 | aubio-tools \ 38 | libaubio-dev \ 39 | libaubio-doc \ 40 | libyaml-dev \ 41 | libfftw3-dev \ 42 | libavcodec-dev \ 43 | libavformat-dev \ 44 | libavutil-dev \ 45 | libavresample-dev \ 46 | libsamplerate0-dev \ 47 | libtag1-dev \ 48 | cmake \ 49 | libjack-dev \ 50 | libasound2-dev \ 51 | libsndfile1-dev \ 52 | praat 53 | 54 | ## Installing Python and the SciPy stack 55 | RUN apt-get update && apt-get install -y \ 56 | python-dev \ 57 | python2.7 \ 58 | python3 \ 59 | python-pip \ 60 | python-setuptools \ 61 | python-numpy-dev \ 62 | python-numpy \ 63 | python-yaml \ 64 | ipython \ 65 | ipython-notebook \ 66 | python-numpy-dev \ 67 | python-matplotlib 68 | 69 | ## Installing Python packages 70 | COPY ./requirements.txt /var/local/ 71 | RUN apt-get update \ 72 | && add-apt-repository -y ppa:jonathonf/python-2.7 \ 73 | && apt-get update \ 74 | && apt-get install -y python2.7 \ 75 | && apt-get install -y python-pip \ 76 | && cd /usr/local/bin/ && wget -N https://raw.githubusercontent.com/hipstas/audio-ml-lab/master/pip \ 77 | && pip install --upgrade pip \ 78 | && pip2 install --upgrade pip \ 79 | && pip2 install bleach==1.5.0 \ 80 | && pip2 install tqdm==4.11.2 \ 81 | && pip2 install decorator==4.0.11 \ 82 | && pip2 install --ignore-installed -qr /var/local/requirements.txt \ 83 | && apt-get install -y libjpeg-dev \ 84 | && apt-get install -y python3-pip \ 85 | && cd /usr/local/bin/ && wget -N https://raw.githubusercontent.com/hipstas/audio-ml-lab/master/pip3 \ 86 | && pip3 install --upgrade pip \ 87 | && pip3 install --upgrade setuptools \ 88 | && pip3 install --upgrade h5py \ 89 | && pip3 install --ignore-installed -qr /var/local/requirements.txt \ 90 | && pip install git+git://github.com/hipstas/audio-tagging-toolkit \ 91 | && pip3 install git+git://github.com/hipstas/audio-tagging-toolkit 92 | #RUN jupyter serverextension enable --py jupyterlab --sys-prefix 93 | 94 | ## Installing Python2 and Python3 kernels for Jupyter 95 | RUN python3 -m pip install jupyterhub notebook ipykernel \ 96 | && python3 -m ipykernel install \ 97 | && python2 -m pip install ipykernel \ 98 | && python2 -m ipykernel install 99 | 100 | ## Not Installing Essentia 101 | #RUN git clone https://github.com/MTG/essentia.git \ 102 | #&& cd essentia \ 103 | #&& ./waf configure --mode=release --build-static --with-python --with-cpptests --with-examples --with-vamp \ 104 | #&& ./waf \ 105 | #&& ./waf install \ 106 | #&& cd ../ \ 107 | #&& rm -rf essentia 108 | 109 | ## Installing FFmpeg 110 | RUN add-apt-repository ppa:jonathonf/ffmpeg-3 \ 111 | && apt-get -y update \ 112 | && apt-get install -y ffmpeg libav-tools x264 x265 113 | 114 | # Omitting Marsyas for now: 115 | # git clone https://github.com/marsyas/marsyas.git \ 116 | # && cd marsyas \ 117 | # && mkdir build \ 118 | # && cd build \ 119 | # && cmake .. \ 120 | # && make \ 121 | # && make install \ 122 | # && cd /sharedfolder \ 123 | # && rm -rf marsyas 124 | 125 | ## Setting UTF-8 as default encoding format for terminal 126 | RUN apt-get install -y language-pack-en 127 | ENV LANG en_US.UTF-8 128 | ENV LANGUAGE en_US:en 129 | ENV LC_ALL en_US.UTF-8 130 | 131 | # Configure container startup 132 | ENV SHELL /bin/bash 133 | WORKDIR /sharedfolder 134 | #CMD cd /sharedfolder/ && wget -nc https://github.com/hipstas/audio-tagging-toolkit/blob/master/scripts/Classify_and_Play.zip?raw=true -O Classify_and_Play.zip 135 | CMD jupyter notebook --ip 0.0.0.0 --port 8887 --no-browser --allow-root --NotebookApp.iopub_data_rate_limit=1.0e10 --NotebookApp.token='' 136 | 137 | # Launch container and open notebook like so: 138 | # docker pull hipstas/audio-ml-lab 139 | # docker run -it --name audio_ml_lab -p 8887:8887 -v ~/Desktop/sharedfolder:/sharedfolder hipstas/audio-ml-lab 140 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Thomas Park 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Audio ML Lab 2 | 3 | Enter the following three commands in the terminal to kill an existing Audio ML Lab container (if applicable), then download and run the latest version of this Docker container. 4 | 5 | ``` 6 | docker rm -f audio_ml_lab 7 | docker pull hipstas/audio-ml-lab 8 | docker run -it --name audio_ml_lab -d -p 8887:8887 -v ~/Desktop/sharedfolder:/sharedfolder hipstas/audio-ml-lab 9 | ``` 10 | 11 | When the commands above finished running, point your browser to `http://localhost:8887` in to launch the Jupyter interface. 12 | -------------------------------------------------------------------------------- /pip: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | from pip import __main__ 3 | import sys 4 | 5 | if __name__ == '__main__': 6 | sys.exit(__main__._main()) 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /pip3: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | from pip import __main__ 3 | import sys 4 | 5 | if __name__ == '__main__': 6 | sys.exit(__main__._main()) 7 | 8 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | setuptools 2 | nose 3 | pyOpenSSL 4 | ndg-httpsclient 5 | pyasn1 6 | requests 7 | youtube-dl 8 | six 9 | pydub 10 | jupyter 11 | pandas 12 | matplotlib 13 | plotly 14 | scipy 15 | sklearn 16 | librosa 17 | aubio 18 | moviepy 19 | pathlib 20 | tflearn 21 | keras 22 | h5py 23 | tensorflow 24 | google-api-python-client 25 | Pillow 26 | scikits.talkbox 27 | scikits.audiolab 28 | bleach==1.5.0 29 | git+git://github.com/hipstas/audio-tagging-toolkit.git 30 | numpy 31 | soundfile 32 | --------------------------------------------------------------------------------