Views
No views yet
libm and libpthread.vm_detect C binary. It does not contain PyTorch / safetensors
checkpoints — those live in the upstream repo.| Directory | Size | Notes |
|---|---|---|
weights-fp32/ | ~1.26 GB | every tensor as raw float32 |
weights-int8/ | ~355 MB | large MatMul weights as int8 + per-row float32 scale; conv / LayerNorm / biases / pos_conv remain float32 |
manifest.json plus per-module subdirectories:weights-fp32/
manifest.json
feature_extractor/ conv0..conv6 (weight, bias, norm_weight, norm_bias)
feature_projection/ norm_*, proj.*
pos_conv/ weight.bin, bias.bin (weight-norm collapsed)
encoder_norm/ weight.bin, bias.bin
encoder/layer_{0..23}/
ln1.*, attn_{q,k,v,out}.*, ln2.*, ffn_{in,out}.*
classifier/ projector.*, out.*<stem>.q8.bin int8, shape [M, K] row-major
<stem>.scale.bin float32, shape [M] (one scale per output row)float32 at model load time.facebook/wav2vec2-large for binary voicemail detection, taken
unchanged from jakeBland/wav2vec-vm-finetune.| Task | Binary audio classification (human vs voicemail) |
| Sample rate | 16 kHz, mono |
| Input length | 32,000 samples (2 s), raw float32 PCM |
| Hidden size | 1024 |
| FFN size | 4096 |
| Attention heads | 16 (64-dim each) |
| Encoder layers | 24 |
| Classifier proj | 256 |
| Labels | 0: human, 1: voicemail |
manifest.json (identical in both directories) for the full tensor list
and shapes.1pip install huggingface_hub
2huggingface-cli download eschmidbauer/wav2vec-vm-finetune-c \
3 --local-dir . --local-dir-use-symlinks False1git clone https://github.com/eschmidbauer/wav2vec-vm-finetune-c
2cd wav2vec-vm-finetune-c
3make -C c
4
5# preprocess an mp3/wav to 16 kHz mono float32 PCM (32,000 samples)
6python prep_audio.py my_clip.mp3
7
8# run inference against the fp32 or int8 weights
9c/vm_detect path/to/weights-fp32 my_clip.f32
10c/vm_detect path/to/weights-int8 my_clip.f32loaded weights-fp32 in 160 ms
my_clip.f32 voicemail (human=0.034, voicemail=0.966) [1703 ms]c/vm_detect weights-fp32 --workers 4 clips/*.f32WAV2VEC_PROF, WAV2VEC_DUMP), and
the NEON SGEMM micro-kernel details.extract_weights.py from the upstream
PyTorch checkpoint:1python extract_weights.py # jakeBland/wav2vec-vm-finetune
2MODEL_ID=other-user/model python extract_weights.py
3python extract_weights.py path/to/local/dirweights-fp32/ or weights-int8/ to force
regeneration).LICENSE in the source repository. Upstream weights are subject
to the license of jakeBland/wav2vec-vm-finetune.@misc{wav2vec-vm-finetune-c,
author = {Emmanuel Schmidbauer},
title = {wav2vec-vm-finetune-c: zero-dependency C inference for a wav2vec2 voicemail detector},
year = {2026},
url = {https://github.com/eschmidbauer/wav2vec-vm-finetune-c}
}