Downloads · 30 days
28
5% of all-time downloads
reson8-thomas/canary-1b-v2-vllm
canary-1b-v2-vllm is a automatic speech recognition model from reson8-thomas. Use it when you need speech turned into text. It is set up for vllm. The card lists the license as cc-by-4.0.
A repackaged build of nvidia/canary-1b-v2 that loads directly with vLLM 0.19.0's cohereasr architecture, so you can serve Canary behind the OpenAI-compatible /v1/audio/transcriptions endpoint without running NeMo.
Downloads · 30 days
28
5% of all-time downloads
All-time downloads
554
Public
Parameters
980M
2 GB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors2 GB · 100%
From the Hugging Face model README
A repackaged build of nvidia/canary-1b-v2
that loads directly with vLLM 0.19.0's cohere_asr architecture, so you can
serve Canary behind the OpenAI-compatible /v1/audio/transcriptions endpoint
without running NeMo.
This repository is only possible because of two pieces of open work:
transformers (CohereAsrForConditionalGeneration)
and vllm (cohere_asr). That implementation happens to be a
near-bitwise port of the NeMo AED-Conformer inference path, which is what
makes this repackaging a mechanical rename rather than a reimplementation.We're very grateful to both teams — this repo is essentially a bridge between their work.
safetensors and downcast to bfloat16.config.json that mirrors NeMo's model_config.yaml layout (nested
encoder, transf_decoder, head, preprocessor dicts plus the three
top-level fields — sample_rate, max_audio_clip_s, overlap_chunk_second
— that vLLM's CohereAsr reads).transformers-loadable repo. Transformers 5.5's
CohereAsrForConditionalGeneration expects renamed HF keys and a flat
config; the weights here are raw NeMo keys. Loading with
AutoModelForSpeechSeq2Seq.from_pretrained will fail with missing /
unexpected weights.uv venv --python 3.12 --seed
source .venv/bin/activate
uv pip install -U "vllm==0.19.0" --torch-backend=auto
uv pip install "vllm[audio]==0.19.0" librosa
uv pip install -U transformers
uv pip install "numpy<2.3" ninja # numba/librosa + flashinfer JIT deps
vllm serve reson8/canary-1b-v2-vllm --trust-remote-code
Then hit the OpenAI-compatible transcription endpoint:
curl -X POST http://localhost:8000/v1/audio/transcriptions \
-F "file=@your_audio.wav" \
-F "model=reson8/canary-1b-v2-vllm" \
-F "language=nl"
language accepts any of the 25 ISO codes Canary-1B-v2 was trained on. vLLM
uses Canary's built-in audio chunking (35 s window, 5 s overlap), so long-form
audio works out of the box.
vllm==0.19.0 (the cohere_asr registration landed in that release)transformers>=5.5 (needed for the CohereAsrConfig class that vLLM's
auto-config resolution uses)numpy<2.3 — numba (pulled in by librosa) won't load on newer numpyNumba needs NumPy 2.2 or less — pin numpy<2.3.FileNotFoundError: 'ninja' — pip install ninja; flashinfer compiles
kernels on first run.rm -rf ~/.cache/flashinfer.cc-by-4.0, inherited from the upstream NVIDIA release. See
nvidia/canary-1b-v2 for the
authoritative licence text and acceptable-use notes.
If you use this repackaging, please cite the original Canary-1B-v2 paper and
the Cohere Labs cohere_asr implementation:
— and, of course, NVIDIA NeMo for the underlying training framework and model release.