Back to papers
Speech recognition

Why benchmarking is hard: a Danish ASR study

Sentence overlap, training data and Danish speech recognition benchmarks.

Mattias Fält
Mattias Fält
Head of AI

We recently released Pianissimo, a fast state-of-the-art speech-to-text model for Danish. But if Pianissimo is the best Danish speech-to-text model, why isn't it at the top of every leaderboard?

It's a completely valid question, but it has a complicated answer. We asked ourselves the same question when we finished training Pianissimo for Danish. It looked really good in our tests, but it only placed 11th on the leaderboard.

Most public leaderboards have a set of open benchmarks that they use to score different models. This means that model creators try to score as well as possible on these datasets. However, scoring well on a specific dataset does not necessarily translate to being good in general.

Why did we only place eleventh?

On the public Danish ASR leaderboard, Pianissimo only placed eleventh. Because of the amount and quality of our data, we expected it to perform a lot better. This made us delve into the details of leaderboards and datasets to understand why we performed worse than the other models on this specific leaderboard.

The first thing we did was to create a new benchmark with the goal of scoring how models perform on data they had not seen before. It consisted of three new datasets: European Parliament speeches, television programmes, and DanPASS, a collection of conversations collected by researchers at Copenhagen University.

When we ran the evaluations on this set, Pianissimo scored the best out of all the models we could test. Its mean word error rate (WER) was 11.8%, lower than top models from companies such as ElevenLabs and NVIDIA.

Results on our benchmark sets

Mean accuracy across three Danish test sets

84%85%86%87%88%89%AccuracyGoogle Gemini 3.5 Transcribe: 85.14% accuracy85.1Google Gemini 3.5 TranscribeMistral Voxtral Mini Transcribe 3: 85.42% accuracy85.4Mistral Voxtral Mini Transcribe 3edda-v0.2: 85.68% accuracy85.7edda-v0.2svale-110M: 85.70% accuracy85.7svale-110Mwhisper-small-danish: 85.83% accuracy85.8whisper-small-danishOpenAI GPT Transcribe: 85.84% accuracy85.8OpenAI GPT Transcribeedda-v0.2-large: 85.86% accuracy85.9edda-v0.2-largesvale-600M: 85.93% accuracy85.9svale-600Mwhisper-large-v3-turbo-danish: 85.95% accuracy86.0whisper-large-v3-turbo-danishSyv Transcribe: 85.96% accuracy86.0Syv Transcribeekko-v1-tiny: 86.06% accuracy86.1ekko-v1-tinyMistral Voxtral Small Transcribe 3: 86.17% accuracy86.2Mistral Voxtral Small Transcribe 3edda-v0.1: 86.25% accuracy86.3edda-v0.1hviske-v6: 86.52% accuracy86.5hviske-v6saga-2-m: 86.72% accuracy86.7saga-2-mbrage-v1: 86.76% accuracy86.8brage-v1edda-v0.2-duo: 86.92% accuracy86.9edda-v0.2-duoElevenLabs Scribe v2: 87.67% accuracy87.7ElevenLabs Scribe v2Klang Pianissimo: 88.17% accuracy88.2Klang Pianissimo
Mean accuracy across our three test sets. Accuracy = 100 − WER.
Full results: all 25 models
Word error rate (%) · lower is better
ModelMeanEuropean ParliamentDR TVDanPASS
Klang Pianissimo11.837.8618.249.38
ElevenLabs Scribe v212.338.5919.079.31
edda-v0.2-duo13.089.2320.379.64
brage-v113.249.0519.9510.73
saga-2-m13.288.7920.1310.93
hviske-v613.488.3721.3610.72
edda-v0.113.759.3621.1310.75
Mistral Voxtral Small Transcribe 313.838.7819.0813.62
ekko-v1-tiny13.948.9522.4610.42
Syv Transcribe14.048.6623.799.68
whisper-large-v3-turbo-danish14.057.8020.7813.56
svale-600M14.078.6722.7210.82
edda-v0.2-large14.149.8320.8711.73
OpenAI GPT Transcribe14.169.9719.8812.62
whisper-small-danish14.178.7720.9712.76
svale-110M14.309.5821.9611.36
edda-v0.214.3210.3921.4911.07
Mistral Voxtral Mini Transcribe 314.589.1519.7314.86
Google Gemini 3.5 Transcribe14.869.1521.1014.34
hviske-v5.116.159.5422.8916.02
Whisper large-v317.0010.5022.8317.68
Whisper large-v3-turbo17.6211.1123.0518.69
hviske-v5.319.5113.9133.0511.56
Canary-1B-v220.6610.9225.3625.71
Parakeet v325.5316.2832.3128.01

Training sentences in the test set

So why is it that Pianissimo scores highest on one dataset, but only eleventh on another?

Part of the answer is differences in output conventions such as whether or not disfluencies are dropped, how numbers are normalised, etc. But it was not the main cause. So we started looking into the leaderboard datasets and what data the other models trained on.

We suspected that several of the other models on the leaderboard might be heavily overfitting to these specific datasets. To investigate if this was the case, we began by looking at overlaps between the training and the test sets of the leaderboard. It turns out that for some datasets, e.g. the CoRal read-aloud dataset, over 70% of the sentences in the test set also exist in the train set, but spoken by different speakers. This means that if you were to train heavily on the train set, a model could learn those specific sentences verbatim and perform really well on the test sets.

To measure if this was actually the case, we compared the word error rate of 49 models on:

  1. sentences that existed in both the train and test data
  2. sentences that were unique to the test set.

We computed the "overlap advantage" as a percentage of how much better a model performed on the first vs the second case. In the graph below, you can see the results of this test.

image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/ PUBLIC DANISH BENCHMARK Leaderboard scores and sentence overlap 70.5% of CoRal read-aloud test clips repeat sentences from the training split. PUBLIC RANK / MODEL Leaderboard WER 5 datasets · lower is better Overlap advantage CoRal read-aloud · fewer errors 0% 6% 12% 0% 25% 50% 01 syv-transcribe 7.12% 43% 02 edda-v0.2-duo 7.73% 26% 03 brage-v1 8.13% 22% 04 edda-v0.2-large 8.45% 29% 05 edda-v0.2 8.58% 21% 06 saga-2-l 8.64% 14% 07 edda-v0.1 9.01% 15% 08 saga-2-m 9.89% 18% 09 hviske-v6 10.14% 3% 10 Whisper turbo (Danish) 11.24% 8% 11 Pianissimo-da 11.25% 2% Overlap advantage = relative WER reduction on sentences also present in CoRal training.
image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/ PUBLIC DANISH BENCHMARK Leaderboard scores and sentence overlap 70.5% of CoRal read-aloud test clips repeat sentences from the training split. Leaderboard WER 5 datasets Overlap advantage CoRal read-aloud 0% 6% 12% 0% 25% 50% 01 syv-transcribe 7.12% 43% 02 edda-v0.2-duo 7.73% 26% 03 brage-v1 8.13% 22% 04 edda-v0.2-large 8.45% 29% 05 edda-v0.2 8.58% 21% 06 saga-2-l 8.64% 14% 07 edda-v0.1 9.01% 15% 08 saga-2-m 9.89% 18% 09 hviske-v6 10.14% 3% 10 Whisper turbo (Danish) 11.24% 8% 11 Pianissimo-da 11.25% 2% Overlap advantage = relative WER reduction on sentences also present in CoRal training.
Full comparison: all 49 modelsExpand to see the full results for all models on both the leaderboard and our own benchmark
Sort comparison
Public rank / model
5 datasets
Overlap advantageCoRal read-aloud
3 datasets
01syv-transcribe
7.12%
43.4%
14.04%
02edda-v0.2-duo
7.73%
25.7%
13.08%
03brage-v1
8.13%
21.6%
13.24%
04edda-v0.2-large
8.45%
29.4%
14.14%
05edda-v0.2
8.58%
21.2%
14.32%
06saga-2-l
8.64%
14.1%
–
07edda-v0.1
9.01%
15.2%
13.75%
08saga-2-m
9.89%
18.5%
13.28%
09hviske-v6
10.14%
2.7%
13.48%
10Whisper turbo (Danish)
11.24%
8.5%
14.05%
11Pianissimo-da
11.25%
1.7%
11.83%
12ekko-v1-tiny
12.14%
18.8%
13.94%
13svale-600M
12.38%
5.7%
14.07%
14svale-110M
12.68%
21.6%
14.30%
15Scribe v2
13.01%
-2.0%
12.33%
16whisper-small-danish
13.10%
16.6%
14.17%
17hviske-v5
13.31%
7.2%
–
18roest-v3-whisper-1.5b
13.42%
11.2%
–
19hviske-v5-tiny
13.90%
13.6%
–
20hviske-v5.3
14.06%
25.2%
19.51%
21voxtral-small-transcribe-3-0
15.39%
3.0%
13.83%
22hviske-v5.1
16.12%
3.4%
16.15%
23gpt-transcribe
16.45%
2.6%
14.16%
24voxtral-mini-transcribe-3-0
16.98%
1.0%
14.58%
25roest-v3-wav2vec2-315m
17.15%
4.9%
–
26roest-v2-wav2vec2-2B
17.30%
4.7%
–
27xls-r-300m-danish-mc-v2
17.44%
3.4%
–
28roest-v2-wav2vec2-1B
18.13%
4.5%
–
29hviske-v3-conversation
18.16%
6.7%
–
30saga
18.87%
5.5%
–
31parakeet-rnnt-110m-da-dk
19.56%
22.9%
–
32Voxtral-Small-24B-2507
20.55%
4.8%
–
33gpt-4o-mini-transcribe
21.99%
1.4%
–
34whisper
23.52%
0.5%
–
35whisper-large-v3
23.63%
-0.3%
17.00%
36canary-1b-v2
24.43%
-0.0%
20.66%
37danstral-v1
25.04%
10.4%
–
38Voxtral-Mini-3B-2507
25.26%
1.4%
–
39gpt-4o-transcribe
25.92%
3.6%
–
40whisper-large-v3-turbo
28.13%
4.1%
17.62%
41Qwen3-ASR-1.7B
29.28%
2.4%
–
42milo-asr
30.11%
5.8%
–
43parakeet-tdt-0.6b-v3
30.44%
2.1%
25.53%
44seamless-m4t-v2-large
31.92%
2.2%
–
45mms-1b-all
38.92%
1.9%
–
46whisper-small
46.71%
-2.1%
–
47nemotron-3.5-asr-streaming-0.6b
47.21%
1.6%
–
48whisper-base
96.57%
-0.8%
–
49whisper-tiny
132.57%
0.9%
–
49whisper-tiny
132.57%
0.9%
–
48whisper-base
96.57%
-0.8%
–
47nemotron-3.5-asr-streaming-0.6b
47.21%
1.6%
–
46whisper-small
46.71%
-2.1%
–
45mms-1b-all
38.92%
1.9%
–
44seamless-m4t-v2-large
31.92%
2.2%
–
43parakeet-tdt-0.6b-v3
30.44%
2.1%
25.53%
42milo-asr
30.11%
5.8%
–
41Qwen3-ASR-1.7B
29.28%
2.4%
–
40whisper-large-v3-turbo
28.13%
4.1%
17.62%
39gpt-4o-transcribe
25.92%
3.6%
–
38Voxtral-Mini-3B-2507
25.26%
1.4%
–
37danstral-v1
25.04%
10.4%
–
36canary-1b-v2
24.43%
-0.0%
20.66%
35whisper-large-v3
23.63%
-0.3%
17.00%
34whisper
23.52%
0.5%
–
33gpt-4o-mini-transcribe
21.99%
1.4%
–
32Voxtral-Small-24B-2507
20.55%
4.8%
–
31parakeet-rnnt-110m-da-dk
19.56%
22.9%
–
30saga
18.87%
5.5%
–
29hviske-v3-conversation
18.16%
6.7%
–
28roest-v2-wav2vec2-1B
18.13%
4.5%
–
27xls-r-300m-danish-mc-v2
17.44%
3.4%
–
26roest-v2-wav2vec2-2B
17.30%
4.7%
–
25roest-v3-wav2vec2-315m
17.15%
4.9%
–
24voxtral-mini-transcribe-3-0
16.98%
1.0%
14.58%
23gpt-transcribe
16.45%
2.6%
14.16%
22hviske-v5.1
16.12%
3.4%
16.15%
21voxtral-small-transcribe-3-0
15.39%
3.0%
13.83%
20hviske-v5.3
14.06%
25.2%
19.51%
19hviske-v5-tiny
13.90%
13.6%
–
18roest-v3-whisper-1.5b
13.42%
11.2%
–
17hviske-v5
13.31%
7.2%
–
16whisper-small-danish
13.10%
16.6%
14.17%
15Scribe v2
13.01%
-2.0%
12.33%
14svale-110M
12.68%
21.6%
14.30%
13svale-600M
12.38%
5.7%
14.07%
12ekko-v1-tiny
12.14%
18.8%
13.94%
11Pianissimo-da
11.25%
1.7%
11.83%
10Whisper turbo (Danish)
11.24%
8.5%
14.05%
09hviske-v6
10.14%
2.7%
13.48%
08saga-2-m
9.89%
18.5%
13.28%
07edda-v0.1
9.01%
15.2%
13.75%
06saga-2-l
8.64%
14.1%
–
05edda-v0.2
8.58%
21.2%
14.32%
04edda-v0.2-large
8.45%
29.4%
14.14%
03brage-v1
8.13%
21.6%
13.24%
02edda-v0.2-duo
7.73%
25.7%
13.08%
01syv-transcribe
7.12%
43.4%
14.04%
11Pianissimo-da
11.25%
1.7%
11.83%
15Scribe v2
13.01%
-2.0%
12.33%
02edda-v0.2-duo
7.73%
25.7%
13.08%
03brage-v1
8.13%
21.6%
13.24%
08saga-2-m
9.89%
18.5%
13.28%
09hviske-v6
10.14%
2.7%
13.48%
07edda-v0.1
9.01%
15.2%
13.75%
21voxtral-small-transcribe-3-0
15.39%
3.0%
13.83%
12ekko-v1-tiny
12.14%
18.8%
13.94%
01syv-transcribe
7.12%
43.4%
14.04%
10Whisper turbo (Danish)
11.24%
8.5%
14.05%
13svale-600M
12.38%
5.7%
14.07%
04edda-v0.2-large
8.45%
29.4%
14.14%
23gpt-transcribe
16.45%
2.6%
14.16%
16whisper-small-danish
13.10%
16.6%
14.17%
14svale-110M
12.68%
21.6%
14.30%
05edda-v0.2
8.58%
21.2%
14.32%
24voxtral-mini-transcribe-3-0
16.98%
1.0%
14.58%
22hviske-v5.1
16.12%
3.4%
16.15%
35whisper-large-v3
23.63%
-0.3%
17.00%
40whisper-large-v3-turbo
28.13%
4.1%
17.62%
20hviske-v5.3
14.06%
25.2%
19.51%
36canary-1b-v2
24.43%
-0.0%
20.66%
43parakeet-tdt-0.6b-v3
30.44%
2.1%
25.53%
06saga-2-l
8.64%
14.1%
–
17hviske-v5
13.31%
7.2%
–
18roest-v3-whisper-1.5b
13.42%
11.2%
–
19hviske-v5-tiny
13.90%
13.6%
–
25roest-v3-wav2vec2-315m
17.15%
4.9%
–
26roest-v2-wav2vec2-2B
17.30%
4.7%
–
27xls-r-300m-danish-mc-v2
17.44%
3.4%
–
28roest-v2-wav2vec2-1B
18.13%
4.5%
–
29hviske-v3-conversation
18.16%
6.7%
–
30saga
18.87%
5.5%
–
31parakeet-rnnt-110m-da-dk
19.56%
22.9%
–
32Voxtral-Small-24B-2507
20.55%
4.8%
–
33gpt-4o-mini-transcribe
21.99%
1.4%
–
34whisper
23.52%
0.5%
–
37danstral-v1
25.04%
10.4%
–
38Voxtral-Mini-3B-2507
25.26%
1.4%
–
39gpt-4o-transcribe
25.92%
3.6%
–
41Qwen3-ASR-1.7B
29.28%
2.4%
–
42milo-asr
30.11%
5.8%
–
44seamless-m4t-v2-large
31.92%
2.2%
–
45mms-1b-all
38.92%
1.9%
–
46whisper-small
46.71%
-2.1%
–
47nemotron-3.5-asr-streaming-0.6b
47.21%
1.6%
–
48whisper-base
96.57%
-0.8%
–
49whisper-tiny
132.57%
0.9%
–
43parakeet-tdt-0.6b-v3
30.44%
2.1%
25.53%
36canary-1b-v2
24.43%
-0.0%
20.66%
20hviske-v5.3
14.06%
25.2%
19.51%
40whisper-large-v3-turbo
28.13%
4.1%
17.62%
35whisper-large-v3
23.63%
-0.3%
17.00%
22hviske-v5.1
16.12%
3.4%
16.15%
24voxtral-mini-transcribe-3-0
16.98%
1.0%
14.58%
05edda-v0.2
8.58%
21.2%
14.32%
14svale-110M
12.68%
21.6%
14.30%
16whisper-small-danish
13.10%
16.6%
14.17%
23gpt-transcribe
16.45%
2.6%
14.16%
04edda-v0.2-large
8.45%
29.4%
14.14%
13svale-600M
12.38%
5.7%
14.07%
10Whisper turbo (Danish)
11.24%
8.5%
14.05%
01syv-transcribe
7.12%
43.4%
14.04%
12ekko-v1-tiny
12.14%
18.8%
13.94%
21voxtral-small-transcribe-3-0
15.39%
3.0%
13.83%
07edda-v0.1
9.01%
15.2%
13.75%
09hviske-v6
10.14%
2.7%
13.48%
08saga-2-m
9.89%
18.5%
13.28%
03brage-v1
8.13%
21.6%
13.24%
02edda-v0.2-duo
7.73%
25.7%
13.08%
15Scribe v2
13.01%
-2.0%
12.33%
11Pianissimo-da
11.25%
1.7%
11.83%
06saga-2-l
8.64%
14.1%
–
17hviske-v5
13.31%
7.2%
–
18roest-v3-whisper-1.5b
13.42%
11.2%
–
19hviske-v5-tiny
13.90%
13.6%
–
25roest-v3-wav2vec2-315m
17.15%
4.9%
–
26roest-v2-wav2vec2-2B
17.30%
4.7%
–
27xls-r-300m-danish-mc-v2
17.44%
3.4%
–
28roest-v2-wav2vec2-1B
18.13%
4.5%
–
29hviske-v3-conversation
18.16%
6.7%
–
30saga
18.87%
5.5%
–
31parakeet-rnnt-110m-da-dk
19.56%
22.9%
–
32Voxtral-Small-24B-2507
20.55%
4.8%
–
33gpt-4o-mini-transcribe
21.99%
1.4%
–
34whisper
23.52%
0.5%
–
37danstral-v1
25.04%
10.4%
–
38Voxtral-Mini-3B-2507
25.26%
1.4%
–
39gpt-4o-transcribe
25.92%
3.6%
–
41Qwen3-ASR-1.7B
29.28%
2.4%
–
42milo-asr
30.11%
5.8%
–
44seamless-m4t-v2-large
31.92%
2.2%
–
45mms-1b-all
38.92%
1.9%
–
46whisper-small
46.71%
-2.1%
–
47nemotron-3.5-asr-streaming-0.6b
47.21%
1.6%
–
48whisper-base
96.57%
-0.8%
–
49whisper-tiny
132.57%
0.9%
–
Our WER averages three test sets. Saga-2-l was not included in our tests because we could not find any public API.

We see that several of the top models heavily overperform on the examples where there is overlap. For example, syv-transcribe had 5.1% WER on repeated sentences compared to 9.1% for new ones, a 43% decrease.

Pianissimo showed very little difference, 14.7% on repeated sentences and 14.9% on new ones.

What is the point of a benchmark?

A benchmark measures the results on a very specific set of examples. The goal is not to know how well a model performs on those specific tests. The hope is that the test will say something in general about the model.

It's the same with any type of test. Assume that you are trying to learn general "History". If a tester picks a random set of questions from different eras, topics and geographic areas, then your result is likely to reflect your general knowledge of "History".

But this only works if the questions can be considered random. For public benchmarks they are often not random. They often correspond to a few specific areas like "Danish Kings", "French Wars" and "Greek Philosophers". Testing on these sets could reflect your general "History" knowledge if you didn't know the specific topics in advance. But if you studied specifically on these topics, it's likely that your score would not reflect your general knowledge.

For the case of the CoRal dataset it's even worse than described above, it's closer to a test where 70% of the questions were known beforehand.

This is a complicated way of saying that leaderboards are often biased, and it's a hard problem to solve. There is a real advantage to releasing the tests publicly so that anyone can run it themselves. Even if they are kept secret, it's well known that it's hard to stop submissions from specializing even on hidden datasets.[1] Moreover, there is a limited amount of high quality data freely available, so it's no surprise that models are trained on these train splits, even if they bias the results.

Danish ASR Leaderboard

The Danish ASR Leaderboard has obviously inspired many organizations to train and release models. This is a great achievement, and it's one of the secondary goals of a benchmark: to help push the frontier.

However, the problems above also mean that these scores can't be used alone to judge how well a model performs on Danish in general.

When we take a closer look at the data used to train the models on the leaderboard, we see this pattern clearly. Several of the models like Edda v0.2, Edda v0.2-large and Brage v1 have over 80% of their training data from the same datasets as the leaderboard datasets.[2][3] This is not cheating or unethical, it is completely reasonable to train on the available datasets. However, it does create a significant bias in the results.

Pianissimo was also trained on these datasets, but they accounted for only 1.5% of our training data. Like several of the closed models, such as ElevenLabs Scribe v2, Voxtral Transcribe 3 and GPT Transcribe, there is little or no advantage on repeated sentences because of the relative size of the datasets.

On the other hand, a great example of the potential bias is the Hviske 5.3 model. It was finetuned for 5 epochs on the CoRal training splits from the Hviske 5.1 model.[4] It improved from 17.8% WER to 9.3% on the corresponding test set, but increased its relative errors by 20% on our test sets. A similar bias was measured and declared for Brage v1 by the authors themselves.[3]

As an extra check to investigate the overfitting, we compared the advantage on repeated sentences with the advantage on the public leaderboard. Across 24 models, the two closely follow each other: models that benefit most from repeated sentences also tend to lose more of their leaderboard advantage on our test sets.

Sentence overlap and leaderboard overperformance

0%10%20%30%40%50%-60%-40%-20%0%20%40%60%Overlap performance (%)Leaderboard overperformance (%)svale-110M: overlap 21.65%; leaderboard overperformance 11.33%; public WER 12.68%; our WER 14.30%.svale-600M: overlap 5.73%; leaderboard overperformance 12.04%; public WER 12.38%; our WER 14.07%.brage-v1: overlap 21.59%; leaderboard overperformance 38.60%; public WER 8.13%; our WER 13.24%.brage-v1ekko-v1-tiny: overlap 18.85%; leaderboard overperformance 12.92%; public WER 12.14%; our WER 13.94%.saga-2-m: overlap 18.49%; leaderboard overperformance 25.54%; public WER 9.89%; our WER 13.28%.edda-v0.1: overlap 15.17%; leaderboard overperformance 34.46%; public WER 9.01%; our WER 13.75%.edda-v0.2: overlap 21.18%; leaderboard overperformance 40.07%; public WER 8.58%; our WER 14.32%.edda-v0.2-duo: overlap 25.67%; leaderboard overperformance 40.90%; public WER 7.73%; our WER 13.08%.edda-v0.2-large: overlap 29.38%; leaderboard overperformance 40.26%; public WER 8.45%; our WER 14.14%.edda-v0.2-largeGPT Transcribe: overlap 2.59%; leaderboard overperformance -16.19%; public WER 16.45%; our WER 14.16%.Canary-1B-v2: overlap -0.04%; leaderboard overperformance -18.24%; public WER 24.43%; our WER 20.66%.Parakeet v3: overlap 2.15%; leaderboard overperformance -19.21%; public WER 30.44%; our WER 25.53%.whisper-large-v3: overlap -0.30%; leaderboard overperformance -38.98%; public WER 23.63%; our WER 17.00%.Whisper large-v3whisper-large-v3-turbo: overlap 4.11%; leaderboard overperformance -59.68%; public WER 28.13%; our WER 17.62%.Whisper large-v3-turboPianissimo-da: overlap 1.68%; leaderboard overperformance 4.87%; public WER 11.25%; our WER 11.83%.Pianissimo-daScribe v2: overlap -2.01%; leaderboard overperformance -5.54%; public WER 13.01%; our WER 12.33%.syv-transcribe: overlap 43.44%; leaderboard overperformance 49.30%; public WER 7.12%; our WER 14.04%.syv-transcribehviske-v5.1: overlap 3.45%; leaderboard overperformance 0.18%; public WER 16.12%; our WER 16.15%.hviske-v5.1hviske-v5.3: overlap 25.16%; leaderboard overperformance 27.93%; public WER 14.06%; our WER 19.51%.hviske-v5.3hviske-v6: overlap 2.67%; leaderboard overperformance 24.80%; public WER 10.14%; our WER 13.48%.Whisper turbo (Danish): overlap 8.50%; leaderboard overperformance 19.98%; public WER 11.24%; our WER 14.05%.Whisper small (Danish): overlap 16.62%; leaderboard overperformance 7.52%; public WER 13.10%; our WER 14.17%.Voxtral Mini Transcribe: overlap 0.99%; leaderboard overperformance -16.48%; public WER 16.98%; our WER 14.58%.Voxtral Small Transcribe: overlap 3.01%; leaderboard overperformance -11.30%; public WER 15.39%; our WER 13.83%.
0%10%20%30%40%50%-60%-40%-20%0%20%40%60%Overlap performance (%)Leaderboard overperformance (%)svale-110M: overlap 21.65%; leaderboard overperformance 11.33%; public WER 12.68%; our WER 14.30%.svale-600M: overlap 5.73%; leaderboard overperformance 12.04%; public WER 12.38%; our WER 14.07%.brage-v1: overlap 21.59%; leaderboard overperformance 38.60%; public WER 8.13%; our WER 13.24%.ekko-v1-tiny: overlap 18.85%; leaderboard overperformance 12.92%; public WER 12.14%; our WER 13.94%.saga-2-m: overlap 18.49%; leaderboard overperformance 25.54%; public WER 9.89%; our WER 13.28%.edda-v0.1: overlap 15.17%; leaderboard overperformance 34.46%; public WER 9.01%; our WER 13.75%.edda-v0.2: overlap 21.18%; leaderboard overperformance 40.07%; public WER 8.58%; our WER 14.32%.edda-v0.2-duo: overlap 25.67%; leaderboard overperformance 40.90%; public WER 7.73%; our WER 13.08%.edda-v0.2-large: overlap 29.38%; leaderboard overperformance 40.26%; public WER 8.45%; our WER 14.14%.GPT Transcribe: overlap 2.59%; leaderboard overperformance -16.19%; public WER 16.45%; our WER 14.16%.Canary-1B-v2: overlap -0.04%; leaderboard overperformance -18.24%; public WER 24.43%; our WER 20.66%.Parakeet v3: overlap 2.15%; leaderboard overperformance -19.21%; public WER 30.44%; our WER 25.53%.whisper-large-v3: overlap -0.30%; leaderboard overperformance -38.98%; public WER 23.63%; our WER 17.00%.whisper-large-v3-turbo: overlap 4.11%; leaderboard overperformance -59.68%; public WER 28.13%; our WER 17.62%.Whisper large-v3-turboPianissimo-da: overlap 1.68%; leaderboard overperformance 4.87%; public WER 11.25%; our WER 11.83%.Pianissimo-daScribe v2: overlap -2.01%; leaderboard overperformance -5.54%; public WER 13.01%; our WER 12.33%.syv-transcribe: overlap 43.44%; leaderboard overperformance 49.30%; public WER 7.12%; our WER 14.04%.syv-transcribehviske-v5.1: overlap 3.45%; leaderboard overperformance 0.18%; public WER 16.12%; our WER 16.15%.hviske-v5.3: overlap 25.16%; leaderboard overperformance 27.93%; public WER 14.06%; our WER 19.51%.hviske-v5.3hviske-v6: overlap 2.67%; leaderboard overperformance 24.80%; public WER 10.14%; our WER 13.48%.Whisper turbo (Danish): overlap 8.50%; leaderboard overperformance 19.98%; public WER 11.24%; our WER 14.05%.Whisper small (Danish): overlap 16.62%; leaderboard overperformance 7.52%; public WER 13.10%; our WER 14.17%.Voxtral Mini Transcribe: overlap 0.99%; leaderboard overperformance -16.48%; public WER 16.98%; our WER 14.58%.Voxtral Small Transcribe: overlap 3.01%; leaderboard overperformance -11.30%; public WER 15.39%; our WER 13.83%.
PianissimoOther modelsLinear fit
Relative WER reductions: repeated vs. new sentences (X), and public leaderboard vs. our test sets (Y). Pearson r = 0.77; Spearman ρ = 0.83.

This is what we would expect from models that have become too specialised for the benchmark. It also makes the overlap advantage a useful warning sign. A large overlap advantage is likely to mean that the model performs better on the leaderboard than on general Danish speech.

Conclusions

So does this mean that leaderboards are useless? No. But it means we have to be careful in how we judge models, and we have to remember that there might be strong biases in these leaderboards.

You can try Pianissimo yourself here or download it from Hugging Face.

Thanks to CoRal and RyeAI for the datasets and published outputs that made the overlap analysis possible, and to Nina Grønnum for providing access to the DanPASS data.

References

[1] Avrim Blum and Moritz Hardt (2015). The Ladder: A Reliable Leaderboard for Machine Learning Competitions.

[2] Danish Foundation Models. Edda v0.2 large model card: training data.

[3] Harmonium. Brage v1 model card: training data and sentence-overlap results.

[4] Syv.ai. Hviske v5.3 model card.