---
license: openrail
language: [am, amh]
tags: [automatic-speech-recognition, onnx, onnx-asr, whisper, amharic]
base_model: chappM/whisper-amharic-small-v2
---

# whisper-amharic-small-v2 — ONNX

ONNX export of [chappM/whisper-amharic-small-v2](https://huggingface.co/chappM/whisper-amharic-small-v2)
(Whisper small fine-tuned for Amharic by [chappM](https://huggingface.co/chappM)) for
[onnx-asr](https://github.com/istupakov/onnx-asr) (standard `whisper` model type — works with
stock onnx-asr, no patches needed). fp32 and int8 variants included.

License: openrail, inherited from the source model.

First specialized ONNX ASR model for Amharic in this collection.

## Usage

```python
import onnx_asr
model = onnx_asr.load_model("whisper", "path/to/this/repo")  # or quantization="int8"
print(model.recognize("audio_16khz.wav", language="am"))
```

Verified on a FLEURS Amharic (`am_et`) test clip (a sentence with two number sequences,
"117" and "45"):

- Reference: "በሴቶች ቡድን ውስጥ አራት የበረዶ ተንሸራታቾች ሩጫቸውን መጨረስ አልቻሉም በግዙፉ ስላሎም ካሉት ከ117ቱ የበረዶ ተንሸራታቾች 45ቱ በውድድሩ ደረጃ ማግኘት አልቻሉም"
- fp32 (RTF 0.94): correct through the first clause, then degrades into a repetition loop
  around the digit-heavy portion of the sentence.
- int8 (RTF 0.30): also correct through the first clause, degrades less severely on the
  same digit-heavy portion, and terminates instead of looping.

**Known limitation, not a quantization artifact**: this checkpoint struggles with digit
sequences spoken as words ("one hundred seventeen", "forty-five") in this test clip, in both
precisions — likely a training-data gap in the base fine-tune rather than something
introduced by this ONNX conversion. The first ~half of the sentence transcribes correctly and
fluently in both variants; treat this export as verified-with-caveats rather than fully clean.
RTF measured on an AMD Ryzen 5 7600 (CPU, 4 OMP threads, shared/loaded box — not a clean
benchmark number).

Int8 decoder was produced by quantizing the pre-merge decoders separately and re-merging
(`merge_decoders(..., strict=False)`); direct quantization of the merged decoder graph does
not shrink it (its `If` subgraphs are skipped by onnxruntime's dynamic quantizer).
