European languages

Polish speech recognition

Rich morphology and consonant clusters.

Updated 23 September 20266 min readBy the Reson8 research team

Polish is a demanding language for speech recognition because each word appears in many forms. Nouns decline through seven cases, adjectives agree in gender and number, and even numerals change shape. A model must pick the right ending out of a dozen candidates that differ by one short vowel or consonant, while dealing with dense consonant clusters and a spelling system with several letters for the same sound.

Key takeaways

  • Seven cases, three genders and rich verb morphology mean a single lemma can have more than a dozen surface forms. Many recognition errors are wrong endings on the right word.
  • Several spelling pairs are homophones: ż/rz, u/ó, h/ch. Może (maybe) and morze (sea) sound the same.
  • Numerals inflect, so ITN must parse dwudziestego trzeciego as well as dwadzieścia trzy.
  • Polish WER is structurally higher than English WER for equal intelligibility. CER is a useful companion metric.
  • Reson8's published FLEURS Polish WER is 4.56%, the lowest in its published comparison for Polish.

What makes Polish hard#

Inflection#

Take the noun klient (customer). Depending on its role in the sentence it can appear as klient, klienta, klientowi, klientem, kliencie, klienci, klientów, klientom, klientami, klientach. Adjectives agreeing with it take their own sets of endings, and verbs mark person, number, tense, aspect and, in the past tense, gender: zrobiłem (I did, masculine) versus zrobiłam (I did, feminine).

Two consequences follow for ASR. First, vocabulary is far larger than in English: a model sees each form less often, so rare forms of common words behave like rare words. Second, most errors are near misses. rozmawiałem z klientem transcribed as rozmawiałem z klienta is one substitution by WER, but grammatically it is plainly wrong. A reader can usually recover the meaning, which is why character error rate and semantic WER often tell a different story from raw WER in Polish.

Homophonous spellings#

Polish spelling is regular in one direction (you can pronounce a written word) but ambiguous in the other. Historical distinctions survive in writing and not in speech:

SoundSpellingsExample pair
/ʐ/ż, rzmoże (maybe) / morze (sea)
/u/u, óBóg (God) / buk (beech), both pronounced /buk/
/x/h, chhart (endurance) / chart (greyhound)
word-final /p/, /t/, /k/b/p, d/t, g/kkod (code) / kot (cat)

Final devoicing and voicing assimilation compound this: chleb ends in /p/, and wtorek begins with /ft/. The language model has to supply the spelling from knowledge of the word, not from the sound.

Consonant clusters and sibilants#

Polish allows long consonant clusters, as in chrząszcz (beetle), źdźbło (blade of grass) or bezwzględny (ruthless), and has three-way sibilant contrasts that non-Polish ears struggle to separate: s, ś, sz; z, ź, ż; c, ć, cz; dz, dź, dż. In noisy or telephone audio, where high frequencies are cut off above about 3.4 kHz, these distinctions are the first to degrade. See telephony transcription.

Nasal vowels#

The letters ę and ą are nasal vowels whose pronunciation depends on what follows and on speaking style. Word-final ę is usually denasalised to plain /e/ in casual speech, so idę (I go) is often heard as ide. Grammatically, that final ę distinguishes first person singular and the accusative of feminine nouns, so dropping it is a real error.

Free word order and aspect#

Because case marks grammatical role, Polish word order is flexible and driven by emphasis. A language model cannot rely on fixed positions to predict the next word as strongly as in English. Most verbs come in aspect pairs (robić/zrobić, pisać/napisać) that differ by a prefix, and the perfective prefix is short and easily swallowed.

Regional varieties and minority languages#

Polish is more uniform than German or Italian. Standard Polish is spoken with mild regional accents across the country, and the most noticeable differences are intonation and a few vocabulary items: Kraków says na polu for outside where Warsaw says na dworze. The varieties that do pose problems:

  • Silesian (ślōnsko godka): spoken by several hundred thousand people in Upper Silesia, with German loans and distinct phonology. Its status as a language or dialect is disputed.
  • Kashubian: a recognised regional language in Pomerania, not intelligible to Polish speakers without exposure.
  • Podhale (Góral) speech in the Tatra foothills, with archaic features.
  • Polish spoken abroad: large communities in the UK, Germany, Ireland and the United States produce Polish with English or German insertions, which is a code-switching problem.

Numbers, dates and formatting#

Polish numerals are among the hardest parts of inverse text normalisation in any European language. Cardinal numbers inflect for case and gender, and nouns after them change form depending on the number:

  • jeden złoty, dwa złote, pięć złotych: the currency noun takes three different forms for 1, 2 to 4, and 5 and above.
  • dwa, dwie, dwóch, dwoma, dwiema: all forms of "two".
  • Dates are spoken with ordinals in the genitive: dwudziestego trzeciego września for 23 September.
SpokenWrittenNote
tysiąc dwieście pięćdziesiąt złotych pięćdziesiąt groszy1 250,50 złSpace as thousands separator, decimal comma, symbol after
dwudziestego trzeciego września dwa tysiące dwudziestego szóstego roku23.09.2026 or 23 września 2026 r.Genitive ordinals; r. abbreviates roku
czternasta trzydzieści14:30Hours are feminine ordinals (godzina)
trzeci maja3 majaMonth in genitive

Data availability and public test sets#

Polish has roughly 40 million native speakers and a moderate pool of open data, smaller than for German, French or Spanish. Public sets include:

  • FLEURS (Polish split): read Wikipedia sentences.
  • Common Voice: a well-populated Polish subset, largely read speech.
  • Multilingual LibriSpeech: a comparatively small Polish portion of audiobook data.
  • VoxPopuli: European Parliament speech.
  • BIGOS: a benchmark that groups many open Polish speech corpora under one evaluation, useful for broader coverage than any single set.
  • PolEval: a Polish NLP evaluation campaign that has included speech recognition tasks.

How Reson8 approaches this#

Polish is one of Resonant-1's nine supported languages. On FLEURS Polish it scores 4.56% WER, the lowest in the comparison in Reson8's benchmarks post. Given how inflection inflates WER, it is worth checking CER and entity accuracy on your own data as well.

Common questions#

Why is Polish WER higher than English WER?

Partly because many errors are wrong endings on correctly recognised stems, and WER counts those as full errors. Rich inflection also spreads training data thinly across forms.

Should I use CER for Polish?

Report it alongside WER. CER gives partial credit for near-miss endings and is less sensitive to the tokenisation of clitics and abbreviations.

Can ASR handle Silesian or Kashubian?

Not reliably with a standard Polish model. Test them as separate varieties.

References#

  1. Conneau, A. et al. (2022). FLEURS: Few-shot Learning Evaluation of Universal Representations of Speech. arXiv:2205.12446.
  2. Ardila, R. et al. (2020). Common Voice: A Massively-Multilingual Speech Corpus. LREC 2020.
  3. Pratap, V. et al. (2020). MLS: A Large-Scale Multilingual Dataset for Speech Research. Interspeech 2020.
  4. Wang, C. et al. (2021). VoxPopuli: A Large-Scale Multilingual Speech Corpus for Representation Learning, Semi-Supervised Learning and Interpretation. ACL 2021.
  5. Junczyk, M. (2023). BIGOS: Benchmark Intended Grouping of Open Speech Corpora for Polish Automatic Speech Recognition. FedCSIS 2023.
  6. Swan, O. E. (2002). A Grammar of Contemporary Polish. Slavica.

Try Reson8 on your own audio

Speech recognition for European languages that adapts to your vocabulary from text, in under a minute. Free tier, EU-only processing.