Skip to main content

Omniscient Mozart, being able to transcribe everything in the music.

Project description

OMNIZART

build docs PyPI version PyPI - License PyPI - Downloads Docker Pulls

DOI DOI

Omnizart is a Python library that aims for democratizing automatic music transcription. Given polyphonic music, it is able to transcribe pitched instruments, vocal melody, chords, drum events, and beat. This is powered by the research outcomes from Music and Culture Technology (MCT) Lab. The paper has been published to Journal of Open Source Software (JOSS).

Transcribe your favorite songs now in Colab Open In Colab or Replicate

Quick start

Visit the complete document for detailed guidance.

Pip

# Install omnizart
pip install omnizart

# Download the checkpoints
omnizart download-checkpoints

# Transcribe your songs
omnizart drum transcribe <path/to/audio.wav>
omnizart chord transcribe <path/to/audio.wav>
omnizart music transcribe <path/to/audio.wav>

Docker

docker pull mctlab/omnizart:latest
docker run -it mctlab/omnizart:latest bash

Conda (install from source)

git clone https://github.com/Music-and-Culture-Technology-Lab/omnizart
cd omnizart
# Create a new conda environment
conda env create -f environment.yml
conda activate omnizart
# Install omnizart
pip install .
omnizart download-checkpoints

Supported applications

Application Transcription Training Evaluation Description
music :heavy_check_mark: :heavy_check_mark: Transcribe musical notes of pitched instruments.
drum :heavy_check_mark: :interrobang: Transcribe events of percussive instruments.
vocal :heavy_check_mark: :heavy_check_mark: Transcribe note-level vocal melody.
vocal-contour :heavy_check_mark: :heavy_check_mark: Transcribe frame-level vocal melody (F0).
chord :heavy_check_mark: :heavy_check_mark: Transcribe chord progressions.
beat :heavy_check_mark: :heavy_check_mark: Transcribe beat position.

NOTES The current implementation for the drum model has unknown bugs, preventing loss convergence when training from scratch. Fortunately, you can still enjoy drum transcription with the provided checkpoints.

Compatibility Issue

Currently, Omnizart is incompatible for ARM-based MacOS system due to the underlying dependencies. More details can be found in the issue #38.

Citation

If you use this software in your work, please cite:

@article{Wu2021,
  doi = {10.21105/joss.03391},
  url = {https://doi.org/10.21105/joss.03391},
  year = {2021},
  publisher = {The Open Journal},
  volume = {6},
  number = {68},
  pages = {3391},
  author = {Yu-Te Wu and Yin-Jyun Luo and Tsung-Ping Chen and I-Chieh Wei and Jui-Yang Hsu and Yi-Chin Chuang and Li Su},
  title = {Omnizart: A General Toolbox for Automatic Music Transcription},
  journal = {Journal of Open Source Software}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omnizart-0.6.0.tar.gz (10.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omnizart-0.6.0-py3-none-any.whl (10.9 MB view details)

Uploaded Python 3

File details

Details for the file omnizart-0.6.0.tar.gz.

File metadata

  • Download URL: omnizart-0.6.0.tar.gz
  • Upload date:
  • Size: 10.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for omnizart-0.6.0.tar.gz
Algorithm Hash digest
SHA256 279ad0ee28fed9215462fc2cb313cfbae2a7ef4c436fbb6830072ce1605b9bed
MD5 13d6469244e4de8132845a3a3f5f6923
BLAKE2b-256 f31d0fa25abeeb41601dfededdc85bf1927a8d2503c8811226e83d9b90d18c91

See more details on using hashes here.

File details

Details for the file omnizart-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: omnizart-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 10.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for omnizart-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f6c9e3f03f0c81210f2ce7e458d54d2ad52ff4f9df88c9660c853ac45912cbb3
MD5 1499ad299601b8c8c04bd106f11f57a6
BLAKE2b-256 42176caae0f6962f5762eaf4d9fe52c02aedbb22f2e3aa5d4c7e275491d6ad9f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page