GAIK · Haaga-Helia · October 2026

Teaching Whisper to hear Finnish dialects

A speech-to-text model trained on open dialect interviews recorded in the 1960s and 70s. This page explains what data we used, what we did with it, where Claude Opus 5.5 came in, and how the result was measured.

40.4 → 21.1 %word errors on the dialect test, Whisper large-v3 → our model
25.9 → 13.6meaning-error points per 100 words on a second dialect corpus
3 h 8 minof training on one AMD MI250X GPU on LUMI
A reel-to-reel tape recorder and a microphone on a wooden kitchen table in a farmhouse, birch trees outside the window.
Illustration, AI-generated (GPT Image 2.5). The SKN interviews were recorded in kitchens like this one.
00

The whole pipeline at a glance

Audio

SKN dialect interviews from 50 municipalities, cut into 2–25 s segments.

Opus: punctuation

Opus added full stops, commas and capitals to the training text. The words were not allowed to change.

Training

A LoRA fine-tune of Whisper large-v3 on LUMI, keeping the best of three epochs.

WER tests

A dialect test from 10 municipalities the model never heard, plus standard-Finnish FLEURS and VoxPopuli.

Opus: judge

On a second dialect corpus, Opus blindly counted the meaning errors in every model's transcript.

The steps in brown are the two places where the published model used a language model. Opus never heard any audio and never wrote a test reference.

01

Data: where the audio and the texts came from

Suomen kielen näytteitä (SKN), "Samples of Spoken Finnish", is a corpus of the Institute for the Languages of Finland (Kotus), distributed by the Language Bank of Finland (Kielipankki) under CC BY 4.0. It holds about two hours of interviews from each of 50 municipalities across Finland, mostly with elderly speakers. Every sentence is transcribed twice: in dialect spelling (with phonetic marks) and in standard Finnish word forms.

We cut the interviews into 2–25 second segments and split them by municipality: 38 municipalities for training (15 042 segments, 62 h), 2 for validation (Pälkäne, Sotkamo) and 10 for the test, every fifth number of the SKN booklet series. The test municipalities represent five of SKN's six main dialect groups: south-western and Häme dialects, Savo and the south-east. The Ostrobothnian and Peräpohjola dialects are in training only. The model never heard any interviewee from a test municipality; a few interviewers recorded both test and training municipalities, and their questions are kept in the segments.

Validation · Pälkäne · 5.7 s
SKN03a_Palkane_0021
Dialect spellingtext_dialectVieläkö ossaisitte ? 'kyyllᴀ̈ . minä "niŋ kauvan ‿ossaaŋ ku ma "eläŋkɪ .
Standard Finnish, by a persontext_normalizedvieläkö osaisitte kyllä minä niin kauan osaan kun minä elän
Training targettextVieläkö osaisitte? Kyllä minä niin kauan osaan kun minä elän. llm-punctuation

In English: "Do you still know how? Yes, I'll know it as long as I live."

What does llm-punctuation mean in the dataset? It says that the punctuation and capitals in the row's text field were added by Opus. The words are still the person's: an answer was accepted only if its words were exactly those of the human standard-Finnish transcript. The value human means text is the human text as it is: that holds for the 18 training segments whose punctuation failed the check, and for the whole test split.

Why punctuation? SKN's standard-Finnish text has none, so the first version of the model learned to write almost without full stops or commas: 1 of its 600 test outputs had one, against 97.5 % for Whisper large-v3.

CorpusWhatUse in the published modelLicence
SKN (Kotus / Kielipankki)dialect interviews from 50 municipalitiestraining 38 municipalities, validation 2, test 10CC BY 4.0
FLEURS (Google)Wikipedia sentences read aloudtraining 2 704, test 918CC BY 4.0
VoxPopuli (Meta)European Parliament speechestraining 7 504, test 478CC0
LA-murre (University of Turku, Kotus / Kielipankki)a second dialect corpus, 10 other localitiestest only (583 segments)CC BY-ND 4.0

FLEURS and VoxPopuli are there so that ordinary standard Finnish does not get worse while the model learns dialects. All training data is openly licensed.

02

Where Claude Opus 5.5 was used

Opus had four jobs. The first two concern the published model, the third only an internal comparison model, and the fourth the scoring of a webinar clip. On top of that, the training and LUMI code was written with Claude Code.

Punctuation for the training text

Opus got 20 standard-Finnish texts at a time (text only, no audio) and added punctuation and capitals. The code rejected every answer whose words differed from the original.

15 024 / 15 042 accepted · about USD 52 · prepare_targets.py

Blind judge on LA-murre

LA-murre's reference is in dialect spelling, so word error rate would punish standard Finnish. Opus read the reference and four models' transcripts, unnamed, and counted only meaning errors.

583 segments · about USD 11 per round · judge_dialect.py

Dialect to standard Finnish (internal model only)

In an extra experiment Opus rewrote the dialect-spelling texts of LA-murre's training recordings in standard Finnish, word for word. The model trained on them is the best on both dialect tests, but LA-murre's licence forbids sharing a derived version, so it was not published.

15 529 segments · about USD 49 · not published

Judges for the webinar clip

Transcripts of a 180 s dental webinar were scored by Opus and Gemini 3.1 Pro: each read the human text and one transcript without the model's name, counted meaning errors and checked 14 names and terms.

all 20+ set-ups · judge_asr.py

Opus cost about USD 125 for the training text and the first two judging rounds; a third round, for the timestamp variant (section 08), used about as many tokens as each of them. Every test reference was made by people, and no model output was ever used as the right answer.

03

Training on LUMI

The base is OpenAI's Whisper large-v3 (1.55 billion parameters), the best open model for ordinary Finnish in our comparison. The whole model was not retrained. LoRA adds small extra matrices to the attention layers and trains only those: about 2 % of the weights. At the end the add-on was merged into the weights, so the published model works like any Whisper model.

  • 25 250 training segments: SKN 15 042, FLEURS 2 704, VoxPopuli 7 504.
  • LoRA rank 64 on the attention q_proj and v_proj layers, learning rate 1e-4, batch 8, three passes (epochs) over the data.
  • Run: one AMD MI250X GPU on CSC's LUMI supercomputer, 3 h 8 min. The model was chosen on the validation municipalities, never on test results.
0.00.10.20.30.40.50.60.538before training0.213epoch 10.206epoch 20.209epoch 30.217epoch 4*kept
Validation loss (lower is better) before training and after each epoch. The fourth-epoch point comes from a separate four-epoch run, which showed that training longer starts to overfit. Epoch 2 was kept.
04

Measure 1: word error rate (WER)

WER counts how many words must be substituted, deleted or inserted to turn the model's text into the human text, divided by the number of words in the human text. Before comparing, text is lower-cased and punctuation removed. On the dialect test the reference is SKN's standard-Finnish transcript: the model is right when it hears dialect and writes standard Finnish.

Test · Heinola · a municipality the model never heard
SKN45a_Heinola_0097
Dialect spellingvaikka miekiiv̆ välistä viej juomaakii sillen niin ‿ei se pure . mut se irvistie että luulis ‿että nyt se purie .
Human (reference)vaikka minäkin välistä vien juomaakin sille niin ei se pure mutta se irvistää että luulisi että nyt se puree
Whisper large-v3aika miekivälistäviä juomaakin sille, niin ei se pure. Mut se hirvisti, että luulis, että nyt se puri.8 / 19
Our modelVaikka minäkin välistä vien juomaakin sille, niin ei se pure, mutta se irvisti, että luulisi, että nyt se puree.1 / 19

In English: "Even when I sometimes bring it something to drink, it doesn't bite, but it grimaces so you'd think it bites now."

Whisper large-v3Our model
0 %10 %20 %30 %40 %50 %60 %Alastaro35.717.6Artjärvi44.423.1Eurajoki43.722.0Heinola36.119.9Hinnerjoki51.829.0Ikaalinen31.315.0Jaala37.318.2Mikkeli38.519.9Rautu50.431.6Vihti32.814.4All 60040.421.1
WER by municipality, 60 segments each, 600 in all. Our model is better in all ten: 40.4 → 21.1 % overall. Ready-made Finnish fine-tunes (trained on read speech) score 48–57 % on the same test, and the paid Gemini 3.5 Flash 34.7 % when asked for standard Finnish (40.8 % when asked to write exactly what is said).
TestWhisper large-v3Our model
SKN dialect test, 10 municipalities, WER %40.421.1
FLEURS, read sentences, WER %7.47.6
VoxPopuli, parliament speech, WER %12.710.8
180 s dental webinar, WER % (decoded in chunks)15.713.9
05

Measure 2: an LLM judge on a second dialect corpus

The SKN test shares SKN's own writing conventions with the training data, so we needed a second, completely unseen corpus: LA-murre, 583 segments from ten localities that are not in SKN. Its reference, however, is written in dialect spelling, so WER would punish a model for exactly what we want from it: writing standard Finnish.

So for every segment Opus read the dialect reference and the transcripts of four models, labelled A–D and in a different order each time. It counted only errors that change the meaning: a wrong word, name or number, missing or invented content. Dialect against standard forms, punctuation and filler words are not errors.

10 ptscriticalthe segment's main point is lost or reversed
5 ptsmajora content word, name or number is wrong, or a clause is missing
1 ptminora small slip a reader can see through
points per 100 words = (10 × critical + 5 × major + 1 × minor) ÷ reference words × 100
our model: (10 × 8 + 5 × 340 + 612) ÷ 17 625 × 100 = 13.6
Model (the judge saw only a letter)Points / 100 wordsCriticalMajorMinorSegments without errors
Whisper large-v325.97460082150
Our model, round 1 (no punctuation)13.87342649116
Our model, published13.68340612121
Internal model (+ LA-murre training, not published)11.412266562143

An example of the judge at work (Tammela, 26 words). Whisper large-v3 left out a clause about the daughter's husband: 1 major = 5 points. The published model kept the content and added one extra "ja" ("and"): 1 minor = 1 point. The round-1 model got the same segment with no errors.

LA-murre texts are not shown on this page: their licence (CC BY-ND) does not allow sharing modified copies, so they are not published.

The judge's instructions, word for word
You compare automatic transcripts of Finnish dialect speech with a human reference.

The reference is a linguist's transcript in DIALECT spelling (for example "miekii" = "minäkin",
"viej juomaakii" = "vien juomaakin", "irvistie" = "irvistää"). The transcripts should
say the same thing; writing it in standard Finnish is correct and wanted.

For each transcript count only MEANING errors against the reference:
- a wrong word, name or number that changes what is said
- content that is missing
- content that was not said
Severity: critical = the segment's main point is lost or reversed; major = a content word,
name or number is wrong or a clause is missing; minor = a small slip a reader can see through.

NOT errors: dialect against standard forms, digits against number words, punctuation, case,
compound spacing, dropped fillers or repetitions ("niin niin", "tuota"), a cut-off word left out.
Judge each transcript on its own; the labels carry no information.

This is the public version, dialect-judge-v2. The scores above were made with v1, which differs only in the three example word pairs of the first paragraph: v1's came from the LA-murre corpus, these come from SKN.

Limitation: the judge is itself a language model; three open models judged the same task again (next section). Differences of one point per 100 words are read as ties unless a sign test says otherwise. The gap between the published model and Whisper is still clear: it had fewer points in 398 segments and more in 89 (sign test p < 0.001). The gap to the round-1 model is not significant (p = 0.10).

06

Three more judges on CSC Aitta agree

One judge is one opinion. So the same task, with the same instructions, letters and order, went to three open models running on CSC's Aitta service in Finland. gpt-oss-120b judged all 583 segments; Gemma 4 31B and Qwen3.6 27B judged the same sample of 200 segments, 20 per locality (198 and 197 answered).

JudgeSegmentsWhisper large-v3Round 1PublishedInternalSame preference as Opus
Claude Opus 5.558325.913.813.611.4–
gpt-oss-120b58320.513.413.212.981 %
Gemma 4 31B (sample)19817.310.110.59.092 %
Qwen3.6 27B (sample)19723.011.811.39.393 %

Points per 100 words. "Same preference" counts the pairs of models in a segment where both judges see a difference, and how often they prefer the same one. All four judges give the same order: the internal model first, the published model and round 1 about level, Whisper large-v3 far behind. Each judge has its own scale, so compare models within one judge, not numbers across judges.

07

A human-checked reference for the webinar clip

The webinar clip's reference transcript came from the University of Helsinki team, and it looked like a corrected WhisperX draft, which would favour Whisper-family output. On 14 October 2026 the developer listened to the 42 spots where most systems heard something else and corrected 14 of them: mostly spoken forms that had been written in standard Finnish, two missing words and a brand name.

Against the checked text the leading systems sit within about one point of each other: gpt-4o-mini-transcribe 13.2, Whisper large-v3 13.7, Gemini 3.5 Flash 13.7, our published model 14.0 and ElevenLabs 14.2 % WER. The WhisperX-based set-ups lose their lead (10.4 → 14.0 and 11.9 → 15.7 %). A clip of about 400 words cannot separate systems that close.

08

The timestamp variant

Whisper normally writes time marks as it transcribes, and uses them to keep its place in long audio. The published model was trained on text without them, so its times are unusable: only 1 % of SKN's sentence starts get a time mark within one second (Whisper large-v3: 61 %). That is why its model card cuts long audio into pieces.

A second run of the same recipe trained half of the SKN segments with time marks taken from SKN's own sentence times (15 040 of the 15 042 had usable times). It puts 58 % of the sentence starts within one second (median 0.04 s when it finds one) and keeps the dialect accuracy.

TestWhisper large-v3PublishedTimestamp variant
SKN dialect test, WER %40.421.121.4
FLEURS, WER %7.47.67.4
VoxPopuli, WER %12.710.811.2
LA-murre, judge points / 100 words (round 3)24.213.713.7
SKN sentence starts within 1 s61 %1 %58 %
Ten 4-minute interviews in one go, with fallback, WER %37.519.818.1
Webinar in one go with time marks, WER %14.762.7 (loops)16.7
Webinar in 15–25 s pieces, WER %15.713.915.2

When to use it. When you need sentence times, or want to give it long audio without cutting it yourself: load the timestamps revision of the same Hugging Face model and always use OpenAI's temperature fallback, which decodes a stretch again when its text starts to repeat (the model card has the settings). Without the fallback it looped in 3 of the 10 interviews (25.2 % WER).

It did not replace the published model. The rule set before the run allowed SKN to get at most about 0.5 points worse and FLEURS and VoxPopuli no worse; VoxPopuli got 0.4 points worse, and the webinar in pieces was also 0.5–1.3 points worse. On LA-murre the blind judge could not tell the two apart (fewer points in 98 segments, more in 100).

09

Where the model is weaker

10

Links

Suomen kielen näytteitä, Institute for the Languages of Finland (Kotus), via Kielipankki – The Language Bank of Finland, CC BY 4.0. Developed by Akseli Leskinen, Haaga-Helia University of Applied Sciences, in the GAIK project.

Illustration: AI-generated (GPT Image 2.5). Audio: two SKN segments, CC BY 4.0. Icons: Lucide (ISC licence); the database and link icons are derived from Feather (MIT licence). This page: GAIK project, Haaga-Helia, CC BY 4.0. We acknowledge CSC – IT Center for Science, Finland for awarding this project access to the LUMI supercomputer, owned by the EuroHPC Joint Undertaking, hosted by CSC (Finland) and the LUMI consortium through CSC – IT Center for Science, Finland.