How openvpi/game works
GAME transcribes singing audio into note sequences and MIDI/text, and can align predictions to labeled word boundaries. Its inference workflow runs through the inference API, producing model predictions that are decoded and optionally aligned or exported. Separate dataset preprocessing and model-training workflows prepare indexed features and train the model; evaluation and model export support those workflows. The README documents these capabilities, but sampled source is incomplete, so links between several API subsystems are intentionally omitted where ownership cannot be confirmed.
Main entry points: inference/api.py Inference API · training/api.py Training API · me_infer_module.py Inference module · infer.py Inference command
Components 25
Inference
- Inference command
infer.py - Inference API
inference/api.py - Inference data
inference/data.py - Inference engine
inference/me_infer.py - Inference module
inference/me_infer_module.py - Word-note alignment
inference/api.py - Result writers
inference/callbacks.py
Model
- Boundary and pitch decoding
modules/decoding.py - Adaptive backbone
modules/backbones/ebf_with_joint_attention.py - Discrete diffusion
modules/d3pm.py
Data and training
- Binarization command
binarize.py - Preprocessing API
preprocessing/api.py - Notes binarizer
preprocessing/notes_binarizer.py - Indexed dataset
lib/indexed_dataset.py - Training command
train.py - Training API
training/api.py - Training module
training/me_module.py
Evaluation and export
- Evaluation command
evaluate.py - Deployment API
deployment/api.py - Model exporter
deployment/exporter.py
Other components
- Audio or dataset user
- Audio files
- Labeled transcriptions
- MIDI and text results
- Model checkpoint
Connections 26
- Audio or dataset user → Inference command: runs
- Inference command → Inference API: dispatches
- Audio or dataset user → Audio files: provides
- Audio or dataset user → Labeled transcriptions: provides
- Inference API → Inference data: loads inputs
- Inference API → Inference engine: invokes
- Inference engine → Inference module: runs model
- Inference module → Adaptive backbone: computes features
- Inference module → Discrete diffusion: predicts boundaries
- Inference API → Boundary and pitch decoding: decodes predictions
- Inference API → Word-note alignment: aligns notes
- Inference API → Result writers: dispatches results
- Result writers → MIDI and text results: writes
- Binarization command → Preprocessing API: dispatches
- Preprocessing API → Notes binarizer: processes notes
- Notes binarizer → Indexed dataset: writes samples
- Audio or dataset user → Training command: runs
- Training command → Training API: dispatches
- Training API → Indexed dataset: loads samples
- Training API → Training module: trains
- Training module → Adaptive backbone: optimizes
- Training API → Model checkpoint: saves checkpoint
- Audio or dataset user → Evaluation command: runs
- Evaluation command → Deployment API: dispatches
- Audio or dataset user → Model checkpoint: selects model
- Deployment API → Model exporter: exports model