/dynitag

Collaborative audio annotation tool

Primary LanguageJavaScriptMIT LicenseMIT

Dynitag is a web-based collaborative audio annotator tool, heavily based on https://github.com/CrowdCurio/audio-annotator.

Install

Clone repository

$ git clone https://github.com/dynilib/dynitag.git

Go to repository root and create directories to be mounted as docker volumes

$ cd dynitag
$ mkdir -p data/db data/upload

Run postgres container

$ docker run --name dynitag_db -v $(pwd)/data/db:/var/lib/postgresql/data/pgdata \
-e POSTGRES_USER=myuser -e POSTGRES_PASSWORD=mypassword -e POSTGRES_DB=dynitag_db \
-e PGDATA=/var/lib/postgresql/data/pgdata -d postgres

Build and run dynitag container (and link to dynitag_db postgres container)

$ docker build -t dynitag web
$ docker run -d --name dynitag --link dynitag_db:dynitag_db -p 8000:80 \
-v $(pwd)/web/dynitag:/myapp -v $(pwd)/data/upload:/upload dynitag

Hint: If you are behind a proxy and have the $http_proxy and $https_proxy environment variables set correctly for your shell, you can pass them on to the build command with:

$ docker build --build-arg http_proxy="$http_proxy" --build-arg https_proxy="$https_proxy" -t dynitag web

Otherwise pip will fail with the error message Connection to pypi.python.org timed out..

Create database (check flask-migrate for details)

$ docker exec dynitag flask db init
$ docker exec dynitag flask db migrate
$ docker exec dynitag flask db upgrade

create admin user (default password is specified in web/dynitag/instance/filldb.py)

$ docker exec dynitag python instance/filldb.py

Create and use test project

An annotation project consists in:

  • a set of files to be annotated
  • a set of labels to annotate files

1 - Login as admin at http://127.0.0.1:8000/admin/

2 - Create a project at http://127.0.0.1:8000/admin/project/, with the following values:

  • Name: test
  • Audio Root Url: http://127.0.0.1:8000/static/audio/test
  • Allow Regions: Yes (tick the checkbox)
  • Number of annotations per file: 2 (every file must be annotated by 2 users)
  • Audios Filename: audios.txt
  • Annotations Filename: labels.csv

with

audios.txt (flies found in http://127.0.0.1:8000/static/audio/test)

ID0043.wav
ID0047.wav
ID0049.wav
ID0052.wav
ID0057.wav
ID0058.wav
ID0059.wav

labels.csv (Some random label examples)

Bird species, crow
Bird species, warbler
Bird species, other
Proximity, close
Proximity, medium
Proximity, far

3 - You can now start annotating your files by selecting the test project at http://127.0.0.1:8000/projects.

4 - Once the project is completed, the annotations can be downloaded as json data at http://127.0.0.1:8000/admin/