ONNX Model Zoo

greblus/solitito-ai

By greblus · ↓ 0 · ♥ 1 · Updated 2025-12-20

What's in this repo

This page lists the files in greblus/solitito-ai, including chord_model_v31_16k.onnx.

  • 1 ONNX models (.onnx files)
  • 12 files, including 2 .md, 2 .wav, 2 .py, 1 .onnx, 1 .png, 1 .csv
  • Last updated 2025-12-20

ONNX files

File Size Download
chord_model_v31_16k.onnx — Download

How to use

These ONNX files can be loaded with ONNX Runtime. To inspect a model graph, upload the file to the Netron viewer. Download links point to the original files on Hugging Face.

README

Solitito Guitar Chord Model (v0.1.0)

This is a lightweight, real-time guitar chord recognition model optimized for CPU inference. It serves as the core engine for Solitito - an open-source Guitar Chord Trainer & Arpeggio Practice tool written in Rust.

Model Description

The model is a Transformer/CNN hybrid trained to recognize jazz guitar chords from a raw audio signal converted into a specific feature set. It is designed to run efficiently on consumer hardware (laptops) without needing a dedicated GPU.

Classes

The model recognizes:

  • Roots: C, C#, D, D#, E, F, F#, G, G#, A, A#, B
  • Qualities: Major, Minor, 7, Maj7, m7, dim7, m7b5, 9, 13 (and "Note" for single notes).

Usage (Preprocessing Required!)

Important: This model does not accept raw audio waveforms. You must preprocess the audio exactly as defined in dsp_weights.json.

Input Specification

  • Input Shape: [Batch, 32, 156]
    • 32: Context frames (approx. 0.5s of audio history).
    • 156: Feature vector size per frame.

DSP Pipeline (Rust/Python)

  1. Sample Rate: Resample audio to 16,000 Hz.
  2. FFT: Size 8192, Hop Length 256.
  3. CQT (Constant-Q Transform): 144 bins (6 octaves, 24 bins/octave).
  4. Chroma: 12 bins derived from CQT.
  5. Normalization: Logarithmic (dB) normalization + scaling to 0.0-1.0 range.
  6. Stack: The input vector is [CQT (144) + Chroma (12)] = 156 float32 values.

Note: The dsp_weights.json file included in this repository contains the pre-calculated complex weights for the CQT matrix multiplication, allowing for fast Rust implementation.

Training Data

The model was trained on a combination of custom datasets and the GuitarSet dataset.

  • Xi, Q., Bittner, R. M., Ye, X., & Bello, J. P. (2018). GuitarSet: A Dataset for Guitar Transcription. In ISMIR.

How to use in Rust

See https://github.com/greblus/solitito for a full implementation.

Model info

ort onnx audio audio-classification chord-recognition guitar rust license:mit region:us
↓ 0 ♥ 1

Created: 2025-12-18

Updated: 2025-12-20

View on Hugging Face

Files (12)

.gitattributes
README.md
chord_model_v31_16k.onnx ONNX
confusion_matrix.png
dataset_annotations.csv
dataset_clean.wav
dataset_eob.wav
dataset_v32/README.md
dsp_weights.json
model_benchmark.txt
model_tester.py
model_trainer.py

Related models