ZIPA-CR small (500k) β weight-only int8 ONNX
A converted copy of ZIPA-CR small (anyspeech/zipa-small-crctc-500k,
revision dfe87c97662606fa6db90ad06f627d4363314744), a multilingual phone recognition model.
Used by Cruize Music's hum and sing search.
Credit
ZIPA phone recognition model by Jian Zhu et al. (2025), CC BY 4.0 β https://github.com/lingjzhu/zipa
Paper: ZIPA: A family of efficient speech models for multilingual phone recognition, ACL 2025 β https://aclanthology.org/2025.acl-long.961/
What was changed
This file was made from the authors' FP32 model.onnx (SHA-256 ec62e6f5β¦280d96). Every MatMul weight is stored as int8,
with one symmetric scale per output column, and turned back to float by a DequantizeLinear right before its MatMul.
Activations stay float. Nothing else was changed: same inputs (x, x_lens), same outputs, same tokens.txt.
Why: in the published dynamic-int8 model, activation quantisation rounds slightly differently on different ONNX Runtime engines, such as WebAssembly in a browser versus native ARM or x86. With activations in float, this file gives the same results on every engine: log-probabilities agree within about 2e-5. It is about the same size (70.5 MB).
To rebuild it, run python convert_w8.py model.onnx model.w8.onnx (onnx 1.17). It produces this exact file.
Files
| File | SHA-256 | Size |
|---|---|---|
model.w8.onnx |
32fbb4f79d84d02e991a913b3a161b3c40a39908de472cf9cccd17d8188f5535 |
70,481,402 bytes |
tokens.txt |
f8e042a0c9130532b22d03ec7cae2f75a23fbec70c450c31a8efb51787b2b8fe |
769 bytes |
convert_w8.py |
β | the conversion script |
Licence
The model weights are licensed under CC BY 4.0, the same as the original. The changes are described above. The original authors do not endorse this copy.
Model tree for cruizesync/zipa-small-crctc-500k-w8
Base model
anyspeech/zipa-small-crctc-500k