cjpais's picture
Update model card: add transcribe_cpp metadata block (raw WER/RTF + capabilities)
f719d70 verified
|
Raw
History Blame Contribute Delete
6.79 kB
---
license: mit
base_model: ai-sage/GigaAM-v3
base_model_relation: quantized
library_name: transcribe.cpp
pipeline_tag: automatic-speech-recognition
language:
- ru
tags:
- gguf
- transcribe.cpp
- asr
- speech-to-text
- gigaam
- conformer
- rnnt
- russian
transcribe_cpp:
wer_fleurs_ru:
f32: 5.35
f16: 5.35
q8_0: 5.36
q6_k: 5.37
q5_k_m: 5.42
q4_k_m: 5.36
rtf_m4_max:
metal: 88
cpu: 25
rtf_ryzen_4750u:
vulkan: 22
cpu: 8
streaming: false
translate: false
lang_detect: false
timestamps: token
---
# GigaAM-v3: transcribe.cpp GGUF
GGUF conversions of [ai-sage/GigaAM-v3](https://huggingface.co/ai-sage/GigaAM-v3) for use
with [transcribe.cpp](https://github.com/handy-computer/transcribe.cpp).
Ported from upstream commit
[ec1dc1f](https://huggingface.co/ai-sage/GigaAM-v3/commit/ec1dc1f),
pinned 2026-05-12.
Validated against the gigaam author package reference at transcribe.cpp commit
[42b96d9](https://github.com/handy-computer/transcribe.cpp/tree/42b96d9)
on 2026-05-12.
Offline Russian speech-to-text with greedy RNN-T decoding. 16-layer Conformer encoder paired with an RNN-T transducer head. Output is cased Russian with punctuation, decoded from a 1024-piece SentencePiece tokenizer. Not a streaming model and does not translate. Short-form only (≤25 s per utterance).
## Downloads
| Quantization | Download | Size | WER (FLEURS ru) |
| --- | --- | ---: | ---: |
| F32 | [gigaam-v3-e2e-rnnt-F32.gguf](https://huggingface.co/handy-computer/gigaam-v3-e2e-rnnt-gguf/resolve/main/gigaam-v3-e2e-rnnt-F32.gguf) | 849 MB | 5.35% |
| F16 | [gigaam-v3-e2e-rnnt-F16.gguf](https://huggingface.co/handy-computer/gigaam-v3-e2e-rnnt-gguf/resolve/main/gigaam-v3-e2e-rnnt-F16.gguf) | 431 MB | 5.35% |
| Q8_0 | [gigaam-v3-e2e-rnnt-Q8_0.gguf](https://huggingface.co/handy-computer/gigaam-v3-e2e-rnnt-gguf/resolve/main/gigaam-v3-e2e-rnnt-Q8_0.gguf) | 261 MB | 5.36% |
| Q6_K | [gigaam-v3-e2e-rnnt-Q6_K.gguf](https://huggingface.co/handy-computer/gigaam-v3-e2e-rnnt-gguf/resolve/main/gigaam-v3-e2e-rnnt-Q6_K.gguf) | 217 MB | 5.37% |
| Q5_K_M | [gigaam-v3-e2e-rnnt-Q5_K_M.gguf](https://huggingface.co/handy-computer/gigaam-v3-e2e-rnnt-gguf/resolve/main/gigaam-v3-e2e-rnnt-Q5_K_M.gguf) | 197 MB | 5.42% |
| Q4_K_M | [gigaam-v3-e2e-rnnt-Q4_K_M.gguf](https://huggingface.co/handy-computer/gigaam-v3-e2e-rnnt-gguf/resolve/main/gigaam-v3-e2e-rnnt-Q4_K_M.gguf) | 175 MB | 5.36% |
WER measured on the full FLEURS ru test split (775 utterances) with greedy decoding and no external LM. F32 reference baseline: 5.35%. Upstream `gigaam` author package measured on the same manifest: 6.78%; the 1.4 pp gap is upstream rejecting 5 long (>25 s) utterances with `Too long wav file, use 'transcribe_longform' method.` (counted as 100% deletion errors). On the 770-utt subset both sides decode, transcribe.cpp matches upstream exactly. ai-sage does not publish a FLEURS ru WER; this number is measured here.
## Usage
Build transcribe.cpp from source:
```bash
git clone git@github.com:handy-computer/transcribe.cpp.git
cd transcribe.cpp
cmake -B build && cmake --build build
```
Run on a 16 kHz mono WAV:
```bash
build/bin/transcribe-cli \
-m gigaam-v3-e2e-rnnt-Q8_0.gguf \
input.wav
```
If your audio isn't already 16 kHz mono WAV, convert it first:
```bash
ffmpeg -i input.mp3 -ar 16000 -ac 1 output.wav
```
See the [transcribe.cpp model page](https://github.com/handy-computer/transcribe.cpp/blob/main/docs/models/gigaam-v3-e2e-rnnt.md) for performance
numbers, numerical validation, and reproduction steps.
## License
Inherited from the base model: **MIT**. See the
[upstream model card](https://huggingface.co/ai-sage/GigaAM-v3) for full terms.
---
## Original Model Card
> The section below is reproduced from
> [ai-sage/GigaAM-v3](https://huggingface.co/ai-sage/GigaAM-v3) at commit
> `ec1dc1f` for offline reference. The upstream card is the
> authoritative source.
# GigaAM-v3
GigaAM-v3 is a Conformer-based foundation model with 220–240M parameters, pretrained on diverse Russian speech data using the HuBERT-CTC objective.
It is the third generation of the GigaAM family and provides state-of-the-art performance on Russian ASR across a wide range of domains.
GigaAM-v3 includes the following model variants:
- `ssl` — self-supervised HuBERT–CTC encoder pre-trained on 700,000 hours of Russian speech
- `ctc` — ASR model fine-tuned with a CTC decoder
- `rnnt` — ASR model fine-tuned with an RNN-T decoder
- `e2e_ctc` — end-to-end CTC model with punctuation and text normalization
- `e2e_rnnt` — end-to-end RNN-T model with punctuation and text normalization
`GigaAM-v3` training incorporates new internal datasets: callcenter conversations, speech with background music, natural speech, and speech with atypical characteristics.
the models perform on average **30%** better on these new domains, while maintaining the same quality as previous GigaAM generations on public benchmarks.
The table below reports the Word Error Rate (%) for `GigaAM-v3` and other existing models over diverse domains.
| Set Name | V3_CTC | V3_RNNT | T-One + LM | Whisper |
|:------------------|-------:|--------:|-----------:|--------:|
| Open Datasets | 3.0 | 2.6 | 5.7 | 12.0 |
| Golos Farfield | 4.5 | 3.9 | 12.2 | 16.7 |
| Natural Speech | 7.8 | 6.9 | 14.5 | 13.6 |
| Disordered Speech | 20.6 | 19.2 | 51.0 | 59.3 |
| Callcenter | 10.3 | 9.5 | 13.5 | 23.9 |
| **Average** | **9.2**| **8.4** | 19.4 | 25.1 |
The end-to-end ASR models (`e2e_ctc` and `e2e_rnnt`) produce punctuated, normalized text directly.
In end-to-end ASR comparisons of `e2e_ctc` and `e2e_rnnt` against Whisper-large-v3, using Gemini 2.5 Pro as an LLM-as-a-judge, GigaAM-v3 models win by an average margin of **70:30**.
For detailed results, see [metrics](https://github.com/salute-developers/GigaAM/blob/main/evaluation.md).
## Usage
```python
from transformers import AutoModel
revision = "e2e_rnnt" # can be any v3 model: ssl, ctc, rnnt, e2e_ctc, e2e_rnnt
model = AutoModel.from_pretrained(
"ai-sage/GigaAM-v3",
revision=revision,
trust_remote_code=True,
)
transcription = model.transcribe("example.wav")
print(transcription)
```
Recommended versions:
- `torch==2.8.0`, `torchaudio==2.8.0`
- `transformers==4.57.1`
- `pyannote-audio==4.0.0`, `torchcodec==0.7.0`
- (any) `hydra-core`, `omegaconf`, `sentencepiece`
Full usage guide can be found in the [example](https://github.com/salute-developers/GigaAM/blob/main/colab_example.ipynb).
**License:** MIT
**Paper:** [GigaAM: Efficient Self-Supervised Learner for Speech Recognition (InterSpeech 2025)](https://arxiv.org/abs/2506.01192)