Skip to main content

Chord-Transcription

English | 日本語

Open in Colab

A repository for training chord transcription models. It enables high-precision inference through context interpretation using a SegmentModel.

Dataset Creation Pipeline

This document describes the preprocessing pipeline required to prepare the dataset for model training. Please execute each step in order.


Step 1. Stem Separation and Resampling

Separates audio files into individual instrument stems (vocals, drums, bass, and others) and resamples them to the specified sampling rate.

uv run python -m src.preprocess.separate_and_resample --input <input_dir> --out-dir <output_dir>
  • --input_dir: Directory containing the source audio files.

  • Default: ./dataset/songs

  • --out-dir: Destination directory for the separated stem files.

  • Default: ./dataset/songs_separated


Step 2. Data Augmentation via Pitch Shifting

Applies pitch shifting to the separated stems to increase the volume and variety of the training data (Data Augmentation).

uv run python -m src.preprocess.pitch_shift_augment --target_dir <target_dir>
  • --target_dir: Directory containing the audio files to be pitch-shifted.
  • Default: ./dataset/songs_separated

Step 3. Chord Data Normalization

Normalizes original chord notations (e.g., CM7, Gm) into a consistent format optimized for model training.

uv run python -m src.preprocess.normalize_chords --input_dir <input_dir> --output_dir <output_dir>
  • --input_dir: Directory containing the raw chord data.

  • Default: ./dataset/chords

  • --output_dir: Destination directory for the normalized chord data.

  • Default: ./dataset/chords_normalize


Step 4. Creating Training Pairs

Generates a CSV file (training/validation pair list) that maps processed audio files to their corresponding chord and key labels.

uv run python -m src.preprocess.make_pairs_csv --chords_dir <chords_dir> --keys_dir <keys_dir> --songs_separated_dir <songs_separated_dir> --validation_ratio <validation_ratio>
  • --chords_dir: Directory containing normalized chords.
  • --keys_dir: Directory containing key information.
  • --songs_separated_dir: Directory containing separated stems.
  • --validation_ratio: The proportion of the dataset to be used for validation.

Step 5. Calculating Chord Quality Frequency

Calculates the frequency of each chord quality (e.g., Major, minor) across the dataset for use in the loss function during training.

uv run python -m src.preprocess.count_quality_freq --data_folder <data_folder> --quality_definition <quality_definition> --output <output>
  • --data_folder: Directory containing normalized chords.

  • Default: ./dataset/chords_normalize

  • --quality_definition: Definition file for chord qualities.

  • Default: ./data/quality.json

  • --output: Path for the output JSON file containing frequency counts.

  • Default: ./data/quality_freq_count.json


Training

Step 1. First-Stage Model Training

uv run python -m src.train_transcription --config ./configs/train.yaml

Step 2. Second-Stage Model Training (SegmentModel)

Specify the weights from the first-stage model in the checkpoint.

uv run python -m src.train_segment_transcription --config ./configs/train.yaml --checkpoint <base_transcription.pt> --training_backbone

Inference

Inference with a Base Model

uv run python -m src.chord_transcription.inference --checkpoint <base_transcription.pt> --audio <audio_path> --decode hmm

Inference with a CRF Model

uv run python -m src.chord_transcription.inference --checkpoint <crf_model.pt> --audio <audio_path> --decode auto

Python library imports now live under chord_transcription, for example from chord_transcription import TranscriptionPredictor.

Example:

from chord_transcription import TranscriptionPredictor

predictor = TranscriptionPredictor.from_pretrained(
    "anime-song/Chord-Transcription",
    filename="model_epoch_150_public.pt",  # required when the repo contains multiple checkpoints
)

Pre-trained Models

Available for download here.

Metadata

Release files for chord-transcription 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for chord-transcription 0.0.2
File Size Uploaded
chord_transcription-0.0.2.tar.gz 46.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for chord-transcription 0.0.2
File Interpreter ABI Platform
chord_transcription-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 98.5 kB

Release files / chord_transcription-0.0.2.tar.gz

Download URL chord_transcription-0.0.2.tar.gz
Size 46.7 kB
Tags Source
SHA-256 checksum
How to use checksums
04888be509ba47a98ad1ae40938a6adb2a4fb0b0280565761ad6c18004e8eee5
BLAKE2b-256 checksum
How to use checksums
0ac44a35dc79c7402b4c1d9f35c3b6068b6e596c601cc62dd5317cb65b7ff15e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.6

Release files / chord_transcription-0.0.2-py3-none-any.whl

Download URL chord_transcription-0.0.2-py3-none-any.whl
Size 51.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5a8c5f6752a4350f10cff91aedd59fbb179d32542a449a58214cc5845ac58aba
BLAKE2b-256 checksum
How to use checksums
2f30a9bbe9171a81b50412c35045b58ab96c6647c694b56758bcf6d1ba400267
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.6

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page