GithubHelp home page GithubHelp logo

wantongtang / audiosetdl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from speedyseal/audiosetdl

0.0 2.0 0.0 9.57 MB

Scripts for downloading AudioSet

Shell 1.20% Python 11.16% Jupyter Notebook 87.64%

audiosetdl's Introduction

audiosetdl

Modules and scripts for downloading Google's AudioSet dataset, a dataset of ~2.1 million annotated segments from YouTube videos.

Setup

  • Clone the repository onto your machine.

  • If you would like to get started right away with a standalone (mini)conda, environment, run setup.sh in the project directory. This will install a local Anaconda environment in <PROJECT DIR>/bin/miniconda. You can find a python executable at <PROJECT DIR>/bin/miniconda/bin/python.

    • Example: ./setup.sh
  • If you would like to work with your existing working environment, it should satisfy the following requirements:

    • Python 3 and dependencies
      • On Mac, can be installed with brew install python3
      • On Ubuntu/Debian, can be installed with apt-get install python3
      • Dependencies can be installed with pip install -r <PROJECT DIR>/requirements.txt
    • ffmpeg
      • On Mac, can be installed with brew install ffmpeg
      • On Ubuntu/Debian, can be installed with apt-get install ffmpeg
    • sox
      • On Mac, can be installed with brew install sox
      • On Ubuntu/Debian, can be installed with apt-get install sox

Running

As a single script

  • Run python download_audioset.py
    • If you are using the local standalone conda installation, either activate the conda virtual environment, or use the python executable found in the local conda installation.
    • The script will automatically download the scripts into your data directory if they do not exist and then start downloading the audio and video for all of the segments in parallel.
    • You can tweak how the downloading and processing is done. For example,
      • URL/path to dataset subset files
      • Audio/video format and codec
      • Different strategies for obtaining video
      • Number of multiprocessing pool workers used
      • Path to logging
    • Run python download_audioset.py -h for a full list of arguments

SLURM

This can be run as a batch of SLURM jobs

  • Run download_subset_files.sh

    • Sets up the data directory structure in the given folder (which will be created) and downloads the AudioSet subset files to that directory. If the --split <N> option is used, the script splits the files into N parts, which will have a suffix for a job ID, e.g. eval_segments.csv.01.
    • Example: ./download_subset_files.sh --split 10 /home/user/audiosetdl/data
  • Use sbatch to run the audiosetdl-job-array.s job array script

    • SLURM job array script that can be run by sbatch. Be sure to edit this to change the location of the repository ($SRCDIR) and to set the data directory ($DATADIR). Update any other configurations, such as email notifications and memory usage as it fits your use case.
    • Example: sbatch --array=1-10 audiosetdl-job-array.s

Examples

Examples can be found in the notebooks directory of this repository.

Cases where videos cannot be downloaded

  • Video removed
  • User account deleted
  • Not available in country
  • Need to sign in to view
  • Video no longer exists
  • Copyright takedown

Kinetics Dataset

This script can also be used to download the Kinetics dataset. Running kinetics/filter_subset.sh <filter_list> <kinetics_subset_csv> <output_file> will filter the given Kinetics subset csv file to contain only the classes in the given filter list, and put it in a format that is compatible with this script. kinetics/filter_classes.txt is provided as an example, and filters what seems to be close to what is used in Look, Listen and Learn (Arandjelović, R., Zisserman, A. 2017). Once you run it on all of the subset .csv files, you can provide those to the scripts instead of the AudioSet .csv files. Note that because the test labels are withheld, the .csv for the test set will be empty.

audiosetdl's People

Contributors

auroracramer avatar hohsiangwu avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.