Skip to content

neulab/cmulab

Repository files navigation

CMU Linguistic Annotation Backend

Install the requirements and setup the environment for development

bash ./setup.sh

Create admin user and populate database with some initial data

conda activate cmulab
python manage.py createsuperuser
python populate.py 

Optional steps to enable Google Sign-in:

Start the server:

bash ./start.sh
python manage.py createsuperuser
python populate.py 

Docker image: zs12/cmulab-devel

Live demo: https://cmulab.dev/

Backend models

CMULAB offers two options for deploying backend ML/NLP models: as python-based plugins or as external servers that communicate with CMULAB through REST APIs.

CMULAB plugins

You can add new features to CMULAB by implementing them as Python packages and registering them as plugins under the "cmulab.plugins" category during setup. CMULAB will manage the allocation of jobs to the appropiate task queues and spinning up background workers.

CMULAB's phoneme recognition (using Allosaurus, a pretrained universal phone recognizer) and speaker diarization (using a model based on Resemblyzer) functionality is implemented using this method.

conda activate cmulab
python3 -m pip install git+https://github.com/zaidsheikh/cmulab_allosaurus
python3 -m pip install git+https://github.com/zaidsheikh/cmulab_diarization
...

External REST APIs

Alternatively, new functionality can be integrated using external servers that communicate with CMULAB using REST APIs. An example is our translation server powered by NLLB.