Piano Transcription GGUF
GGUF conversion of ByteDance/Kong's piano_transcription_inference for CrispASR.
Transcribes piano audio to MIDI note events (88 keys, 100 fps) using a CRNN architecture.
Architecture
Input: 16 kHz mono audio
-> STFT (n_fft=2048, hop=160) -> LogMel (229 bins, 30-8000 Hz) -> BatchNorm
-> 4x AcousticModelCRnn8Dropout (frame / onset / offset / velocity):
4x ConvBlock (Conv2d 3x3 + BN2d + ReLU + AvgPool2d(1,2))
FC(1792->768) + BN1d + ReLU
2-layer BiGRU (768->256) -> FC(512->88) -> sigmoid
-> Onset refinement: cat(onset, sqrt(onset)*velocity) -> BiGRU -> FC -> sigmoid
-> Frame refinement: cat(frame, onset, offset) -> BiGRU -> FC -> sigmoid
-> Post-processing: regression binarization -> note detection -> MIDI events
Output: note events with onset/offset times, MIDI note (21-108), velocity (0-127)
Files
| File | Type | Size | Description |
|---|---|---|---|
piano-transcription-q8_0.gguf |
Q8_0 | 66 MB | 8-bit quantized (recommended) |
piano-transcription-f16.gguf |
F16 | 77 MB | Half-precision weights |
piano-transcription-f32.gguf |
F32 | 154 MB | Full-precision weights (max parity) |
Usage with CrispASR
# CLI
crispasr --backend piano-transcription \
-m piano-transcription-f16.gguf \
-f piano_recording.wav
# Auto-detect from GGUF arch
crispasr -m piano-transcription-f16.gguf -f piano.wav
Source
- Original: qiuqiangkong/piano_transcription_inference
- Paper: Q. Kong et al., "High-resolution Piano Transcription with Pedals by Regressing Onsets and Offsets Times," 2021
- License: Apache-2.0
- Checkpoint: Zenodo 4034264 (note F1=0.9677, pedal F1=0.9186)
Converter
python models/convert-piano-transcription-to-gguf.py \
--input model.pth \
--output piano-transcription-f16.gguf \
--f16
- Downloads last month
- 17
Hardware compatibility
Log In to add your hardware
8-bit
16-bit
32-bit