CrisperWhisper β ONNX
ONNX export of nyrahealth/CrisperWhisper
(Whisper large-v3 fine-tuned for verbatim transcription β includes filler words,
disfluencies, pauses) for onnx-asr (standard
whisper model type β works with stock onnx-asr, no patches needed). Addresses
onnx-asr#140.
fp32 and int8 variants included; int8 decoder produced by quantizing the pre-merge decoders and re-merging (the merged graph's If-subgraphs defeat direct quantization).
License: original model is CC-BY-NC-4.0 (nyra health / nyralabs). This ONNX export is a derivative, non-commercial use only, and inherits the same license and attribution requirement. Credit: nyrahealth/CrisperWhisper.
Export gotcha (fixed here): optimum's ONNX export re-saves the tokenizer and
silently truncates CrisperWhisper's vocab.json (698KB vs the source repo's 878KB),
shifting every special-token ID (e.g. <|startoftranscript|> came out as 45073
instead of the correct 50258) and producing near-blank/looping decode output. This
export replaces vocab.json/added_tokens.json with the originals copied verbatim
from the source repo.
Usage
import onnx_asr
model = onnx_asr.load_model("whisper", "path/to/this/repo") # or quantization="int8"
print(model.recognize("audio_16khz.wav", language="en")) # or "de"
Verified on FLEURS English and German clips: fp32 and int8 outputs match each other
and the native transformers pipeline output exactly, for both languages. RTF on an
AMD Ryzen 5 7600 (6C/12T CPU, shared/loaded host): ~1.7-3.0 fp32, ~0.8-1.5 int8.