---
license: other
license_name: nyra-health-non-commercial-research
license_link: LICENSE.md
base_model: nyralabs/CrisperWhisper2.0_large
pipeline_tag: automatic-speech-recognition
tags:
  - audio.cpp
  - gguf
  - whisper
  - speech-recognition
  - word-timestamps
---

# CrisperWhisper 2.0 Large GGUF

Use these self-contained models with [audio.cpp](https://github.com/0xShug0/audio.cpp).

Converted from [nyralabs/CrisperWhisper2.0_large](https://huggingface.co/nyralabs/CrisperWhisper2.0_large)
at revision `f4334f6e8193f2691212d49b20fa12d370e13896`.
The tokenizer, configuration, and audio.cpp model spec are embedded.

> **License:** the upstream non-commercial research license covers the model
> weights and generated outputs. See [LICENSE.md](LICENSE.md).

| File | Storage | Size |
|---|---|---:|
| `crisperwhisper-2-large-bf16.gguf` | Original BF16 weights | 2.88 GiB |
| `crisperwhisper-2-large-q8_0.gguf` | Q8_0 quantized weights | 1.60 GiB |
| `crisperwhisper-2-large-q4_k.gguf` | Q4_K quantized weights | 0.91 GiB |

## CUDA validation

These measurements use an RTX 5090, eight CPU threads, and the default
transcription settings. C++ uses a CUDA Debug build; Python uses the official
Transformers backend. The sample contains five FLEURS clips from each supported
dataset language tested here (`en`, `kk`, `ru`, and `uz`), for 20 clips and
242.4 seconds of audio. One request warmed each session before measurement.
RTF sums inference time for the 20 measured requests and excludes model loading
and the warm-up request. Peak VRAM includes the loaded model and inference
graphs.

| Runtime / storage | Peak VRAM | RTF | Sample WER | Exact transcripts vs Python |
|---|---:|---:|---:|---:|
| Official Python, Transformers | 4,140 MiB | 0.0586 | 34.50% | reference |
| BF16 | 4,130 MiB | 0.0283 | 34.50% | 19/20 |
| Q8_0 | 2,822 MiB | 0.0236 | 34.77% | 18/20 |
| Q4_K | 2,122 MiB | 0.0260 | 34.77% | 11/20 |

The one Python-versus-C++ BF16 mismatch was `uz_000`. Python emitted
`fukaralari ... muljallangin`, while C++ emitted
`fukaraları ... mulgallangin`. The FLEURS reference is
`fuqarolari ... moʻljallangan`, so both outputs count as the same two word
substitutions and have identical WER. The `19/20` result measures exact
agreement between implementations, not agreement with the reference text.

Q8_0 is the balanced quantized option in this sample: it reduced peak VRAM by
1,308 MiB and ran 16.6% faster than BF16, with one additional word error.
Q4_K reduced peak VRAM by another 700 MiB, but introduced noticeably more
transcript wording drift and was slower than Q8_0. Its aggregate WER happened
to match Q8_0 on this small sample; that does not make its transcripts equally
stable. C++ BF16 was 2.1x faster than the official Python Transformers path;
Q8_0 was 2.5x faster and used 1,318 MiB less peak VRAM. These 20 clips are a
quantization and implementation check, not a general accuracy benchmark.

## Usage

```bash
audiocpp_cli --task asr --family crisperwhisper \
  --model crisperwhisper-2-large-q8_0.gguf --backend cuda \
  --audio speech.wav --request-option language=en \
  --text-out transcript.txt --words-out words.json --log
```

- `transcription_mode=verbatim` preserves disfluencies and vocal events.
- `transcription_mode=intended` produces cleaned text.
- `transcription_mode=verbatimize` uses a clean transcript supplied with `--text`
  to restore disfluencies from audio up to 30 seconds long.
- `--task align --text "Known transcript"` aligns supplied words in offline mode.
- Long-form ASR uses overlapping continuation windows. `--mode streaming` emits
  committed text per window after receiving the complete recording, not live PCM.

See the [model usage guide](https://github.com/0xShug0/audio.cpp/blob/main/docs/models/crisperwhisper.md)
for request and session options.
