Automatic Speech Recognition
NeMo
ONNX
GGUF
Danish
speech-recognition
speech-to-text
danish
danish-asr
offline
local-inference
cpu-inference
sherpa-onnx
rnnt
word-timestamps
Eval Results (legacy)
Instructions to use RyeAI/ekko-v1-tiny with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- NeMo
How to use RyeAI/ekko-v1-tiny with NeMo:
import nemo.collections.asr as nemo_asr asr_model = nemo_asr.models.ASRModel.from_pretrained("RyeAI/ekko-v1-tiny") transcriptions = asr_model.transcribe(["file.wav"]) - Notebooks
- Google Colab
- Kaggle
Align Ekko Tiny benchmark scores
Browse files
README.md
CHANGED
|
@@ -43,7 +43,7 @@ model-index:
|
|
| 43 |
split: test
|
| 44 |
metrics:
|
| 45 |
- type: wer
|
| 46 |
-
value:
|
| 47 |
- task:
|
| 48 |
type: automatic-speech-recognition
|
| 49 |
dataset:
|
|
@@ -53,7 +53,7 @@ model-index:
|
|
| 53 |
split: test
|
| 54 |
metrics:
|
| 55 |
- type: wer
|
| 56 |
-
value: 11.
|
| 57 |
- task:
|
| 58 |
type: automatic-speech-recognition
|
| 59 |
dataset:
|
|
@@ -63,7 +63,7 @@ model-index:
|
|
| 63 |
split: test
|
| 64 |
metrics:
|
| 65 |
- type: wer
|
| 66 |
-
value: 9.
|
| 67 |
- task:
|
| 68 |
type: automatic-speech-recognition
|
| 69 |
dataset:
|
|
@@ -72,7 +72,7 @@ model-index:
|
|
| 72 |
split: test_balanced
|
| 73 |
metrics:
|
| 74 |
- type: wer
|
| 75 |
-
value: 7.
|
| 76 |
---
|
| 77 |
|
| 78 |

|
|
@@ -95,7 +95,7 @@ evaluated as a separate test set.
|
|
| 95 |
|
| 96 |
## Benchmark
|
| 97 |
|
| 98 |
-
**12.
|
| 99 |
with the leaderboard harness. Scores use the published defaults: NFKC
|
| 100 |
normalization, spoken-number folding, Danish number-word normalization,
|
| 101 |
lowercase, punctuation removal, symmetric filler removal, and whitespace
|
|
@@ -103,36 +103,38 @@ collapse. Lower is better.
|
|
| 103 |
|
| 104 |
| Test set | Speech type | WER |
|
| 105 |
|---|---|---:|
|
| 106 |
-
| CoRal conversation | Spontaneous conversation |
|
| 107 |
-
| CoRal read aloud | Read speech | 11.
|
| 108 |
-
| Common Voice Danish (CV 25.0 test subset) | Crowd-sourced read speech | 8.
|
| 109 |
-
| FLEURS `da_dk` | Read news-style speech | 9.
|
| 110 |
-
| FTSpeech | Parliamentary speech | 7.
|
| 111 |
-
| **Equal-weight mean** | | **12.
|
| 112 |
|
| 113 |
The NeMo checkpoint processed the benchmark at **795.8x realtime** on one A100.
|
| 114 |
-
The official run saved raw per-sample outputs
|
| 115 |
-
|
|
|
|
| 116 |
|
| 117 |
-
### Comparison
|
| 118 |
|
| 119 |

|
| 120 |
|
| 121 |
The chart compares Tiny's Q5_0 release score with 12 open-weight models below
|
| 122 |
800M parameters in the [Danish ASR Leaderboard](https://huggingface.co/datasets/RyeAI/danish-asr-leaderboard/tree/f7c930a30ac2f88e68421d88fc577c0cbafa8c31/results)
|
| 123 |
-
as of 9 October 2026. Each score is an
|
| 124 |
-
five Danish test sets (26,780 clips).
|
| 125 |
-
|
| 126 |
-
|
| 127 |
|
| 128 |
### Native GGUF quantization
|
| 129 |
|
| 130 |
The F32, F16, Q8_0, Q6_K, Q5_K, Q5_0, Q4_K, and Q4_0 files are
|
| 131 |
-
scored on the same
|
| 132 |
-
|
| 133 |
-
|
|
|
|
| 134 |
|
| 135 |
-
| Variant | Size | Mean WER | CPU speed |
|
| 136 |
|---|---:|---:|---:|
|
| 137 |
| **F16** | 248.2 MiB | **12.315%** | 74.4x |
|
| 138 |
| F32 | 430.6 MiB | 12.318% | 71.8x |
|
|
@@ -152,9 +154,10 @@ reference tier.
|
|
| 152 |
|
| 153 |
The model is available for sherpa-onnx and was evaluated on the same 26,780-row
|
| 154 |
matrix with mandatory non-silent peak normalization to 0.95. The browser
|
| 155 |
-
downloads the compact int8 export.
|
|
|
|
| 156 |
|
| 157 |
-
| Export | Size | Mean WER | CPU speed |
|
| 158 |
|---|---:|---:|---:|
|
| 159 |
| FP32 ONNX | 450.6 MiB | 12.465% | 53.4x |
|
| 160 |
| **INT8 ONNX** | **129.0 MiB** | **12.946%** | **49.2x** |
|
|
@@ -172,12 +175,15 @@ Clean-cache packaged download and inference tests passed on macOS arm64 and
|
|
| 172 |
Linux x64 with native word timestamps. The Windows x64 artifact is mapped but
|
| 173 |
has not been exercised against this release.
|
| 174 |
|
| 175 |
-
| Format | Path |
|
| 176 |
|---|---|---:|
|
| 177 |
-
| NeMo | `ekko-v1-tiny.nemo` | 12.
|
| 178 |
-
| parakeet.cpp GGUF | `gguf-parakeet.cpp/ekko-v1-tiny-{f32,f16,q8_0,q6_k,q5_k,q5_0,q4_k,q4_0}.gguf` | 12.315-12.467% |
|
| 179 |
-
| sherpa-onnx FP32 | `onnx-sherpa/{encoder,decoder,joiner}.onnx` | 12.465% |
|
| 180 |
-
| sherpa-onnx INT8 | `onnx-sherpa/{encoder,decoder,joiner}.int8.onnx` | 12.946% |
|
|
|
|
|
|
|
|
|
|
| 181 |
|
| 182 |
The browser loads `onnx-sherpa/runtime-config.json` with the INT8 files and
|
| 183 |
checks its SHA-256 before using its audio and model settings.
|
|
@@ -219,7 +225,7 @@ pseudo-labelled audio.
|
|
| 219 |
- The 44-token vocabulary does not contain uppercase or punctuation tokens.
|
| 220 |
- Punctuation and capitalization require a separate restoration model such as
|
| 221 |
`RyeAI/ekko-pnc`.
|
| 222 |
-
- Spontaneous conversation remains the hardest benchmark domain (
|
| 223 |
- Noisy audio and overlapping speakers were not evaluated separately.
|
| 224 |
|
| 225 |
## License
|
|
|
|
| 43 |
split: test
|
| 44 |
metrics:
|
| 45 |
- type: wer
|
| 46 |
+
value: 23.88
|
| 47 |
- task:
|
| 48 |
type: automatic-speech-recognition
|
| 49 |
dataset:
|
|
|
|
| 53 |
split: test
|
| 54 |
metrics:
|
| 55 |
- type: wer
|
| 56 |
+
value: 11.74
|
| 57 |
- task:
|
| 58 |
type: automatic-speech-recognition
|
| 59 |
dataset:
|
|
|
|
| 63 |
split: test
|
| 64 |
metrics:
|
| 65 |
- type: wer
|
| 66 |
+
value: 9.36
|
| 67 |
- task:
|
| 68 |
type: automatic-speech-recognition
|
| 69 |
dataset:
|
|
|
|
| 72 |
split: test_balanced
|
| 73 |
metrics:
|
| 74 |
- type: wer
|
| 75 |
+
value: 7.57
|
| 76 |
---
|
| 77 |
|
| 78 |

|
|
|
|
| 95 |
|
| 96 |
## Benchmark
|
| 97 |
|
| 98 |
+
**12.14% mean WER** across 26,780 rows from five Danish test sets, evaluated
|
| 99 |
with the leaderboard harness. Scores use the published defaults: NFKC
|
| 100 |
normalization, spoken-number folding, Danish number-word normalization,
|
| 101 |
lowercase, punctuation removal, symmetric filler removal, and whitespace
|
|
|
|
| 103 |
|
| 104 |
| Test set | Speech type | WER |
|
| 105 |
|---|---|---:|
|
| 106 |
+
| CoRal conversation | Spontaneous conversation | 23.88% |
|
| 107 |
+
| CoRal read aloud | Read speech | 11.74% |
|
| 108 |
+
| Common Voice Danish (CV 25.0 test subset) | Crowd-sourced read speech | 8.15% |
|
| 109 |
+
| FLEURS `da_dk` | Read news-style speech | 9.36% |
|
| 110 |
+
| FTSpeech | Parliamentary speech | 7.57% |
|
| 111 |
+
| **Equal-weight mean** | | **12.14%** |
|
| 112 |
|
| 113 |
The NeMo checkpoint processed the benchmark at **795.8x realtime** on one A100.
|
| 114 |
+
The official run saved raw per-sample outputs. Rescoring those same outputs with
|
| 115 |
+
the leaderboard normalization updated on 15 October 2026 gives 12.14%; no
|
| 116 |
+
model inference was rerun.
|
| 117 |
|
| 118 |
+
### Comparison snapshot (9 October 2026)
|
| 119 |
|
| 120 |

|
| 121 |
|
| 122 |
The chart compares Tiny's Q5_0 release score with 12 open-weight models below
|
| 123 |
800M parameters in the [Danish ASR Leaderboard](https://huggingface.co/datasets/RyeAI/danish-asr-leaderboard/tree/f7c930a30ac2f88e68421d88fc577c0cbafa8c31/results)
|
| 124 |
+
as of 9 October 2026, before the normalization update. Each score is an
|
| 125 |
+
equal-weight mean WER across the same five Danish test sets (26,780 clips).
|
| 126 |
+
In this historical snapshot, Tiny scored 12.37% and Svale 600M scored 12.64%.
|
| 127 |
+
For current scores, use the live leaderboard.
|
| 128 |
|
| 129 |
### Native GGUF quantization
|
| 130 |
|
| 131 |
The F32, F16, Q8_0, Q6_K, Q5_K, Q5_0, Q4_K, and Q4_0 files are
|
| 132 |
+
scored on the same 26,780 clips under the earlier normalization policy. Their
|
| 133 |
+
WER figures below have not yet been rescored with the 15 October 2026 update;
|
| 134 |
+
they should not be compared directly with the current NeMo score. All 40
|
| 135 |
+
variant/domain outputs completed and passed exact-row offline scoring.
|
| 136 |
|
| 137 |
+
| Variant | Size | Mean WER (earlier scoring) | CPU speed |
|
| 138 |
|---|---:|---:|---:|
|
| 139 |
| **F16** | 248.2 MiB | **12.315%** | 74.4x |
|
| 140 |
| F32 | 430.6 MiB | 12.318% | 71.8x |
|
|
|
|
| 154 |
|
| 155 |
The model is available for sherpa-onnx and was evaluated on the same 26,780-row
|
| 156 |
matrix with mandatory non-silent peak normalization to 0.95. The browser
|
| 157 |
+
downloads the compact int8 export. The ONNX WER figures below also use the
|
| 158 |
+
earlier normalization policy and have not yet been rescored.
|
| 159 |
|
| 160 |
+
| Export | Size | Mean WER (earlier scoring) | CPU speed |
|
| 161 |
|---|---:|---:|---:|
|
| 162 |
| FP32 ONNX | 450.6 MiB | 12.465% | 53.4x |
|
| 163 |
| **INT8 ONNX** | **129.0 MiB** | **12.946%** | **49.2x** |
|
|
|
|
| 175 |
Linux x64 with native word timestamps. The Windows x64 artifact is mapped but
|
| 176 |
has not been exercised against this release.
|
| 177 |
|
| 178 |
+
| Format | Path | Mean WER |
|
| 179 |
|---|---|---:|
|
| 180 |
+
| NeMo | `ekko-v1-tiny.nemo` | 12.14% (current) |
|
| 181 |
+
| parakeet.cpp GGUF | `gguf-parakeet.cpp/ekko-v1-tiny-{f32,f16,q8_0,q6_k,q5_k,q5_0,q4_k,q4_0}.gguf` | 12.315-12.467% (earlier) |
|
| 182 |
+
| sherpa-onnx FP32 | `onnx-sherpa/{encoder,decoder,joiner}.onnx` | 12.465% (earlier) |
|
| 183 |
+
| sherpa-onnx INT8 | `onnx-sherpa/{encoder,decoder,joiner}.int8.onnx` | 12.946% (earlier) |
|
| 184 |
+
|
| 185 |
+
The GGUF and ONNX scores above use the earlier normalization policy; the NeMo
|
| 186 |
+
score uses the current leaderboard policy.
|
| 187 |
|
| 188 |
The browser loads `onnx-sherpa/runtime-config.json` with the INT8 files and
|
| 189 |
checks its SHA-256 before using its audio and model settings.
|
|
|
|
| 225 |
- The 44-token vocabulary does not contain uppercase or punctuation tokens.
|
| 226 |
- Punctuation and capitalization require a separate restoration model such as
|
| 227 |
`RyeAI/ekko-pnc`.
|
| 228 |
+
- Spontaneous conversation remains the hardest benchmark domain (23.88% WER).
|
| 229 |
- Noisy audio and overlapping speakers were not evaluated separately.
|
| 230 |
|
| 231 |
## License
|