Icelandic Pronunciation and IPA Transcription Guide
← Back to Icelandic transcription ↑ All Languages
Table of Contents
- Getting Started
- Quick Reference (Glossary)
- How to Read IPA Symbols
- Icelandic Pronunciation Guide
- Vowel Length & Quality
- Diphthongs
- Stress and Compounds
- Aspiration (p, t, k)
- Preaspiration (pp, tt, kk, pl, tn ...)
- Pre-stopping (ll, nn, rl, rn, sl, sn)
- Voiceless Sonorants (hl, hn, hr)
- Palatal Consonants (k, g, kj, gj, hj)
- Fricatives (g, f, ð, þ, x)
- Nasals: ng and nk
- Letters Outside the Icelandic Alphabet
- Orthography to IPA Mapping
- Using the Tool: Practical Notes
- For Developers
- Related Pronunciation Guides
About This Tool
This Icelandic transcription app uses the Wiktionary Icelandic Pronunciation Module to generate phonemic transcriptions for Icelandic text. IPA (International Phonetic Alphabet) is a standardized system for transcribing speech sounds using symbols based on the Latin alphabet. This tool converts Icelandic orthography (spelling) into IPA, helping learners, linguists, and developers understand pronunciation.
The system uses a comprehensive Wiktionary data dump[1] as a lexicon (the file
is_lexicon.zip, decompressed in your browser and cached in IndexedDB) to first retrieve
transcriptions from the dictionary. If the word is found, the dictionary IPA is shown exactly as Wiktionary
has it. When a word is not found in the lexicon, the app falls back to the pronunciation module's rule-based
approach, which is what most of this page describes. The lexicon is used by default; opening the converter with ?dict=false in the address turns it off.
Dialects & Limitations
- Supported: One standard variety (style "Default"). The rules produce, for example, hv as /kʰv/ and ll as /tl̥/ in every word.
- Not supported: Regional variants. The module has no switch for other pronunciations of the same spelling (such as a northern hv), and no option for fast-speech reductions.
- Edge cases: Compounds written as one word, loanwords, and proper names that follow non-Icelandic spelling may not be transcribed correctly (see Common Issues).
- Technical limit: The module has no dictionary of exceptions and no morphological analysis. It only sees letters.
Phonemic vs Phonetic
- Phonemic (the only form offered for Icelandic): Uses the Wiktionary lexicon when the word is listed, falls back to the rules otherwise. Although it is labelled "phonemic", the rule output already contains some detail that is predictable from spelling, such as preaspiration (/h/ before a stop) and voiceless sonorants (/n̥/).
- Phonetic: Not available for Icelandic. The module has a single output with no allophonic second pass.
Quick Reference (Glossary)
- Phoneme
- The smallest unit of sound in a language that distinguishes meaning (e.g., /p/ vs. /b/ in English "pat" vs. "bat").
- Allophone
- A variant pronunciation of a phoneme that doesn't change meaning (e.g., aspirated [pʰ] vs. unaspirated [p]).
- Digraph / Trigraph
- Two (or three) letters that together stand for one sound or sound sequence, e.g., hj /ˈçau̯ː/ or fnt jafnt /ˈjam̥t/.
- Diphthong
- A gliding vowel sound where the tongue changes position during articulation. Icelandic writes most of them with a single letter, e.g., á sál /ˈsau̯ːl/, ó sól /ˈsou̯ːl/, æ sæti /ˈsai̯ːtɪ/.
- Nonsyllabic mark
- The inverted breve below /i̯/, /u̯/, /y̯/ marks the second part of a diphthong as a glide (it is not a separate syllable).
- Length mark
- The triangular colon /ː/ marks a long vowel or a long consonant, e.g., hús /ˈhuːs/ (long) vs hundur /ˈhʏntʏr/ (short).
- Aspiration
- A puff of air after a voiceless stop, written /ʰ/. In this module only word-initial p, t, k are aspirated, e.g., pípa /ˈpʰiːpa/, tala /ˈtʰaːla/, kaka /ˈkʰaːka/.
- Preaspiration
- A breathy /h/ before a stop. Icelandic has it in spellings like pp, tt, kk, e.g., hoppa /ˈhɔhpa/, þetta /ˈθɛhta/, bakki /ˈpahcɪ/.
- Pre-stopping
- Insertion of a brief stop before a long l or n: ll becomes /tl̥/, e.g., kalla /ˈkʰatl̥a/; nn after a stressed vowel becomes /tn̥/, e.g., steinn /ˈstɛi̯tn̥/.
- Voiceless sonorant
- An l, n, r, m pronounced without voicing, marked with the ring below /l̥/, /n̥/, /r̥/, /m̥/, e.g., hlaupa /ˈl̥œy̯ːpa/, hnífur /ˈn̥iːvʏr/, hringur /ˈr̥iŋkʏr/.
- Palatalization
- Fronting of k/g to the palatal stop /c/ before front vowels, e.g., kyn /ˈcʰɪːn/, gera /ˈcɛːra/.
- Geminate
- A doubled consonant. For most letters the module turns a double into one long consonant, e.g., kaffi /ˈkʰafːɪ/.
- Compound
- A word made of several components. The module only knows a component boundary if you type a hyphen between the parts, e.g., bóka-búð /ˈpou̯ːkaˌpuːð/.
- Primary / Secondary stress
- Icelandic stress is almost always on the first syllable of each component. The module writes /ˈ/ before the first component and /ˌ/ before later ones.
- Lexicon
- The dictionary of known words with human-written IPA, tried before the rules.
How to Read IPA Symbols
This table helps you understand the IPA symbols used in Icelandic transcriptions. Every symbol listed below is one that the engine actually emits. Output is shown without slashes in the app; slashes are added here for clarity.
Vowel Symbols
| IPA | Example | English Approximation | Notes |
|---|---|---|---|
| /a/ / /aː/ | kalt /ˈkʰalt/, tala /ˈtʰaːla/ | "father", shorter when short | Letter a |
| /ɛ/ / /ɛː/ | hestur /ˈhɛstʏr/, vegur /ˈvɛːɣʏr/ | "bed" | Letter e |
| /ɪ/ / /ɪː/ | fiskur /ˈfɪskʏr/, vinur /ˈvɪːnʏr/ | "sit" | Letter i (lax) |
| /i/ / /iː/ | sími /ˈsiːmɪ/, lítil /ˈliːtɪl/ | "see" | Letter í; also i before ng, nk and gi |
| /ʏ/ / /ʏː/ | hundur /ˈhʏntʏr/, gul /ˈkʏːl/ | No English equivalent | Letter u (lax, rounded like /ɪ/) |
| /u/ / /uː/ | skúr /ˈskuːr/, hús /ˈhuːs/ | "food" | Letter ú; also u before ng, nk |
| /œ/ / /œː/ | öld /ˈœlt/, öl /ˈœːl/ | No English equivalent | Letter ö |
| /ɔ/ / /ɔː/ | borg /ˈpɔrk/, kona /ˈkʰɔːna/ | "law" (UK) | Letter o |
| /jɛ/ / /jɛː/ | Pétur /ˈpʰjɛːtʏr/, myndavél /ˈmɪntavjɛl/ | "yet" | Letter é: always a glide plus /ɛ/ |
| /ɛi̯/ / /ɛi̯ː/ | steinn /ˈstɛi̯tn̥/, heim /ˈhɛi̯ːm/ | "say" | Letters ei, ey; e before ng/nk |
| /ai̯/ / /ai̯ː/ | sæti /ˈsai̯ːtɪ/, lagi /ˈlai̯cɪ/ | "high" | Letter æ; a before gi |
| /au̯/ / /au̯ː/ | sál /ˈsau̯ːl/, langur /ˈlau̯ŋkʏr/ | "how" | Letter á; a before ng/nk |
| /œy̯/ / /œy̯ː/ | haus /ˈhœy̯ːs/, söngur /ˈsœy̯ŋkʏr/ | No English equivalent | Letters au; ö before ng/nk and gi |
| /ou̯/ / /ou̯ː/ | sól /ˈsou̯ːl/, tók /ˈtʰou̯ːk/ | "go" | Letter ó |
| /ɔi̯/ | bogi /ˈpɔi̯cɪ/, kongur /ˈkʰɔi̯ŋkʏr/ | "boy" | o before gi or ng/nk |
| /ʏi̯/ | lugi /ˈlʏi̯cɪ/ | No English equivalent | u before gi |
| /ei̯/ | degi /ˈtei̯cɪ/ | "say" | e before gi |
Consonant Symbols
| IPA | Example | English Approximation | Notes |
|---|---|---|---|
| /p/ | bók /ˈpou̯ːk/, api /ˈaːpɪ/ | "spin" (unaspirated) | Letter b; also p not at the start of a word |
| /pʰ/ | pípa /ˈpʰiːpa/ | "pin" | Aspirated p, word-initial only |
| /t/ | daginn /ˈtai̯cɪnː/, vetur /ˈvɛːtʏr/ | "stop" | Letter d; also t not at the start of a word |
| /tʰ/ | tala /ˈtʰaːla/ | "top" | Aspirated t, word-initial only |
| /k/ | gata /ˈkaːta/, borg /ˈpɔrk/ | "skin" | Letter g (hard); also k not at the start of a word |
| /kʰ/ | kaka /ˈkʰaːka/, hvalur /ˈkʰvaːlʏr/ | "kin" | Aspirated k, word-initial only; also the start of hv, qu |
| /c/ | gera /ˈcɛːra/, ekki /ˈɛhcɪ/ | Hungarian "gy"-like, "cute" | Palatal stop (see Palatals) |
| /cʰ/ | kyn /ˈcʰɪːn/, kjöt /ˈcʰœːt/ | Aspirated palatal stop | Word-initial k or kj before a front vowel |
| /f/ | fiskur /ˈfɪskʏr/, kaffi /ˈkʰafːɪ/ | "fish" | Letter f at the start of a word, ff |
| /v/ | vinur /ˈvɪːnʏr/, hafa /ˈhaːva/ | "van" | Letters v, w; f elsewhere |
| /ɣ/ | dagur /ˈtaːɣʏr/, sagði /ˈsaɣðɪ/ | Spanish "lago" | g between vowel and a/u/ð/l/r |
| /ð/ | faðir /ˈfaːðɪr/, maður /ˈmaːðʏr/ | "this" | Letter ð (always) |
| /θ/ | þakka /ˈθahka/, þú /ˈθuː/ | "thing" | Letter þ (always) |
| /s/ | sól /ˈsou̯ːl/, zebra /ˈsɛːpra/ | "sun" | Letters s, z; initial x |
| /x/ | sagt /ˈsaxt/, vax /ˈvaxs/ | Scottish "loch" | gt, kt, ks; x as /xs/ |
| /ç/ | hjá /ˈçau̯ː/, hjartað /ˈçartað/ | "huge" | Digraph hj |
| /h/ | hús /ˈhuːs/, hoppa /ˈhɔhpa/ | "hat" | Letter h; preaspiration |
| /j/ | Jón /ˈjou̯ːn/, sjö /ˈsjœː/ | "yes" | Letter j; also from gi |
| /r/ | borg /ˈpɔrk/, rennur /ˈrɛtn̥ʏr/ | Spanish "pero" (trill/tap) | Letter r |
| /r̥/ | hringur /ˈr̥iŋkʏr/, hrafn /ˈr̥avn/ | Voiceless r | Digraph hr |
| /l/ | lítil /ˈliːtɪl/, kalt /ˈkʰalt/ | "let" | Letter l |
| /l̥/ | hlaupa /ˈl̥œy̯ːpa/, epli /ˈɛhpl̥ɪ/ | Voiceless l | Digraph hl; ll, pl, tl, kl |
| /m/ | maður /ˈmaːðʏr/, fimm /ˈfɪmː/ | "man" | Letter m |
| /m̥/ | jafnt /ˈjam̥t/, kembt /ˈcʰɛm̥t/ | Voiceless m | fnt, mbt |
| /n/ | nei /ˈnɛi̯ː/, hunda /ˈhʏnta/ | "no" | Letter n |
| /n̥/ | hnífur /ˈn̥iːvʏr/, vatn /ˈvahtn̥/ | Voiceless n | Digraph hn; nn, rn, sn, pn, tn, kn |
| /ŋ/ | langur /ˈlau̯ŋkʏr/, ungur /ˈuŋkʏr/ | "sing" | ng, nk |
| /tl̥/ | kalla /ˈkʰatl̥a/ | Stop plus voiceless l | ll (pre-stopped) |
| /tn̥/ | steinn /ˈstɛi̯tn̥/ | Stop plus voiceless n | nn after a stressed vowel |
| /ʰ/ | pípa /ˈpʰiːpa/ | Puff of air | Aspiration marker |
Diacritical Marks
| Symbol | Name | Meaning | Example |
|---|---|---|---|
| ˈ | Primary stress | Main emphasis in the word | borg /ˈpɔrk/ |
| ˌ | Secondary stress | Start of a later hyphen-separated component | borgar-stjóri /ˈpɔrkarˌstjou̯ːrɪ/ |
| ː | Length mark | Long vowel or long consonant | hús /ˈhuːs/, kaffi /ˈkʰafːɪ/ |
| ̯ | Non-syllabic | Glide (second part of a diphthong) | steinn /ˈstɛi̯tn̥/, haus /ˈhœy̯ːs/ |
| ̥ | Voiceless | Normally voiced sonorant devoiced | hlaupa /ˈl̥œy̯ːpa/, vatn /ˈvahtn̥/ |
| ʰ | Aspiration | Puff of air after a stop | tala /ˈtʰaːla/ |
Interactive Features
- Click words to cycle variants: Only applies if a word has several stored transcriptions. Click any transcribed word to see alternative IPA forms if available.
- Audio playback: Click the speaker icon next to any word or line to hear text-to-speech pronunciation (requires browser TTS support and an Icelandic voice).
- Export results: Use PDF or CSV buttons to save transcriptions in your preferred format.
Multiple Pronunciation Variants
For Icelandic, the rule path returns exactly one transcription per word. Where variants exist they come from the lexicon:
- Lexicon vs. generated: Dictionary lookup and rule-based generation may produce different results for the same word, because the dictionary reflects what editors wrote.
- Homographs: Words spelled the same but pronounced differently can only be distinguished by the lexicon, never by the rules.
Icelandic Pronunciation Guide
This guide explains the pronunciation rules that the engine actually implements. Icelandic spelling is fairly regular, but stress, vowel length, and consonant clusters interact in ways that are worth knowing before reading the IPA. Every rule here corresponds to a rule in the Lua module (see Implementation Details).
Vowel Length & Quality
Only the stressed vowel (the first vowel of each component) gets a length decision. All other vowels are written short.
Long Vowels
The stressed vowel is long when the letters after it are:
- Nothing, or a single letter: Word-final or followed by one last letter. Examples: þú /ˈθuː/, hús /ˈhuːs/, þrír /ˈθriːr/
- One consonant followed by a vowel: Examples: tala /ˈtʰaːla/, vinur /ˈvɪːnʏr/, kona /ˈkʰɔːna/
- A stop or s plus j, r or v: The clusters b/d/g/k/p/s/t + j/r/v do not shorten the vowel. Examples: Petra /ˈpʰɛːtra/, tvisvar /ˈtʰvɪːsvar/, sækja /ˈsai̯ːca/
Short Vowels
- Before two consonants: Examples: vatn /ˈvahtn̥/, mynd /ˈmɪnt/, hestur /ˈhɛstʏr/, allt /ˈatl̥t/
- Before x: The letter x counts as two consonants. Examples: vax /ˈvaxs/, sex /ˈsɛxs/, box /ˈpɔxs/
- Before a consonant and a hyphen: The lookahead sees the consonant followed by a hyphen, which is not a vowel, so the vowel stays short (see Common Issues). Example: sjón-varp /ˈsjou̯nvarp/
- Unstressed syllables: Examples: tala /ˈtʰaːla/ (final /a/), fiskur /ˈfɪskʏr/ (final /ʏr/)
Letter-to-Vowel Pairs
| Letter | Long (stressed) | Short |
|---|---|---|
| a | tala /ˈtʰaːla/ | kalt /ˈkʰalt/ |
| e | vegur /ˈvɛːɣʏr/ | hestur /ˈhɛstʏr/ |
| i | vinur /ˈvɪːnʏr/ | fiskur /ˈfɪskʏr/ |
| o | kona /ˈkʰɔːna/ | borg /ˈpɔrk/ |
| u | gul /ˈkʏːl/ | hundur /ˈhʏntʏr/ |
| ö | öl /ˈœːl/ | öld /ˈœlt/ |
| á | sál /ˈsau̯ːl/ | smátt /ˈsmau̯ht/ |
| é | Pétur /ˈpʰjɛːtʏr/ | hélt /ˈhjɛlt/ |
| ó | sól /ˈsou̯ːl/ | stórt /ˈstou̯rt/ |
| æ | sæti /ˈsai̯ːtɪ/ | ætla /ˈai̯htl̥a/ |
| í | sími /ˈsiːmɪ/ | hnífnum /ˈn̥ivnʏm/ |
| ú | hús /ˈhuːs/ | úlfur /ˈulvʏr/ |
The letters í and ú always give /i/ and /u/ with no quality change; the length mark is added in the same way as for the other vowels.
Icelandic Diphthongs
Diphthongs come from three sources: the digraphs au and ei/ey, the single letters á, ó, æ, é, and the context rules for gi and ng/nk.
| Spelling | IPA | Example |
|---|---|---|
| au | /œy̯/ | haus /ˈhœy̯ːs/, auga /ˈœy̯ːɣa/ |
| ei, ey | /ɛi̯/ | heim /ˈhɛi̯ːm/, eyra /ˈɛi̯ːra/ |
| á | /au̯/ | sál /ˈsau̯ːl/, á /ˈau̯ː/ |
| ó | /ou̯/ | sól /ˈsou̯ːl/, ó /ˈou̯ː/ |
| æ | /ai̯/ | sæti /ˈsai̯ːtɪ/, gæs /ˈcai̯ːs/ |
| é | /jɛ/ | Pétur /ˈpʰjɛːtʏr/, ég /ˈjɛːk/ |
Because the digraph au is matched before single letters, a word like haus /ˈhœy̯ːs/ gets one diphthong rather than a followed by u. The letter y is respelled to i before any of this happens, so ey is simply ei, e.g., keyra /ˈcʰɛi̯ːra/.
Stress and Compounds
The engine puts primary stress /ˈ/ on the first syllable of the word. It knows nothing about prefixes, suffixes, or compounds unless you type a hyphen:
- One word, one stress: bókabúð /ˈpou̯ːkapuð/ gets a single stress, so the second component is treated as an unstressed ending (short vowel, no secondary stress).
- With hyphens: bóka-búð /ˈpou̯ːkaˌpuːð/. Each hyphen starts a new component. The first gets /ˈ/, later ones get /ˌ/, and the first vowel of each component is treated as stressed (length rules apply to it).
- Secondary stress dropped: If both the part before and the part after a /ˌ/ contain only one syllable, the secondary stress is removed. Compare fót-bolti /ˈfou̯tˌpɔltɪ/ (kept) with sjón-varp /ˈsjou̯nvarp/ (dropped).
- Hyphens reset the "initial" state: After a hyphen, aspirated initial forms are used again: kaffi-hús /ˈkʰafːɪˌhuːs/.
Aspiration (p, t, k)
Only p, t, k at the start of a word (or right after a hyphen) are aspirated. The letters b, d, g always give unaspirated /p/, /t/, /k/:
- pípa /ˈpʰiːpa/, tala /ˈtʰaːla/, kaka /ˈkʰaːka/: aspirated
- bók /ˈpou̯ːk/, daginn /ˈtai̯cɪnː/, gata /ˈkaːta/: from b, d, g
- api /ˈaːpɪ/, taka /ˈtʰaːka/, skip /ˈscɪːp/: not word-initial, so not aspirated
Preaspiration (pp, tt, kk, pl, tn ...)
Double stops and stop + l/m/n clusters get a preceding /h/. If an l, m, n follows, it is voiceless:
| Spelling | IPA | Example |
|---|---|---|
| pp, tt, kk | /hp/, /ht/, /hk/ | hoppa /ˈhɔhpa/, þetta /ˈθɛhta/, bakki /ˈpahcɪ/ |
| pl, tl, kl | /hpl̥/, /htl̥/, /hkl̥/ | epli /ˈɛhpl̥ɪ/, ætla /ˈai̯htl̥a/, Hekla /ˈhɛhkl̥a/ |
| pm, tm, km | /hpm̥/, /htm̥/, /hkm̥/ | Kaupmanna-höfn /ˈkʰœy̯hpm̥anːaˌhœvn/ (pm; no common example for tm, km) |
| pn, tn, kn | /hpn̥/, /htn̥/, /hkn̥/ | vopn /ˈvɔhpn̥/, vatn /ˈvahtn̥/, sakna /ˈsahkn̥a/ |
Pre-stopping (ll, nn, rl, rn, sl, sn)
- ll always becomes /tl̥/: kalla /ˈkʰatl̥a/, ull /ˈʏtl̥/, fjall /ˈfjatl̥/
- rl, rn become /rtl̥/ and /rtn̥/: perla /ˈpʰɛrtl̥a/, barn /ˈpartn̥/
- sl, sn become /stl̥/ and /stn̥/: slá /ˈstl̥au̯ː/, snúa /ˈstn̥uːa/, íslenska /ˈistl̥ɛnska/
- nn becomes /tn̥/ only straight after a stressed syllable (the stress mark, optional consonants, and one vowel): steinn /ˈstɛi̯tn̥/, hinn /ˈhɪtn̥/, rennur /ˈrɛtn̥ʏr/. In later positions it becomes a long consonant: kominn /ˈkʰɔːmɪnː/
Voiceless Sonorants (hl, hn, hr)
The digraphs hl, hn, hr become voiceless /l̥/, /n̥/, /r̥/: hlaupa /ˈl̥œy̯ːpa/, hnífur /ˈn̥iːvʏr/, hringur /ˈr̥iŋkʏr/. The module does not devoice a plain l, n, r before a voiceless consonant on its own; only the spellings listed in this guide produce voiceless sonorants. For example kalt /ˈkʰalt/ and hjálp /ˈçau̯lp/ keep a voiced /l/.
Palatal Consonants (k, g, kj, gj, hj)
- k/g before a front vowel (/ɛ/, /i/, /ɪ/, /ai/) become /c/ (/cʰ/ when aspirated): kyn /ˈcʰɪːn/, gera /ˈcɛːra/, gæs /ˈcai̯ːs/, ekki /ˈɛhcɪ/
- kj is /cʰ/ at the start of a word, otherwise /c/: kjöt /ˈcʰœːt/, skjól /ˈscou̯ːl/, tekkja /ˈtʰɛhca/
- gj is /c/ at the start of a word: gjöf /ˈcœːv/, gjá /ˈcau̯ː/. Elsewhere it stays as g + j until the later rules: segja /ˈsɛi̯ːja/
- hj is /ç/: hjá /ˈçau̯ː/, hjól /ˈçou̯ːl/
Fricatives (g, f, ð, þ, x)
g
- After a vowel, before a, u, ð, l, r: /ɣ/: dagar /ˈtaːɣar/, dagur /ˈtaːɣʏr/, sagði /ˈsaɣðɪ/, fugl /ˈfʏɣl/, vegur /ˈvɛːɣʏr/
- After a vowel, before j or i: becomes j (then the diphthong rules for gi apply): lagi /ˈlai̯cɪ/, segja /ˈsɛi̯ːja/
- After a vowel, before t or s: /x/: sagt /ˈsaxt/, lagt /ˈlaxt/, saks /ˈsaxs/
- Elsewhere: /k/: gata /ˈkaːta/, borg /ˈpɔrk/, sig /ˈsɪːk/, skóg /ˈskou̯ːk/
f, p, v
- f is /f/ at the start of a word and /v/ elsewhere: fiskur /ˈfɪskʏr/, hafa /ˈhaːva/, afi /ˈaːvɪ/, gaf /ˈkaːv/. A doubled ff is a long /fː/: kaffi /ˈkʰafːɪ/
- p, v before t, s, k after a vowel (p) or anywhere (v) become /f/: skipt /ˈscɪft/, hepta /ˈhɛfta/, afsakið /ˈafsacɪð/
ð and þ
Every ð is /ð/ and every þ is /θ/, with no positional variation: þakka /ˈθahka/, það /ˈθaːð/, faðir /ˈfaːðɪr/, maður /ˈmaːðʏr/, hundrað /ˈhʏntrað/.
x
At the start of a word x is /s/, elsewhere it is /xs/, and it makes the preceding stressed vowel short: vax /ˈvaxs/, taxi /ˈtʰaxsɪ/.
Nasals: ng and nk
- ng before l or s: /ŋ/ with no g: engla /ˈɛi̯ŋla/
- nk and other ng: /ŋk/: langur /ˈlau̯ŋkʏr/, ungur /ˈuŋkʏr/, fingur /ˈfiŋkʏr/, ganga /ˈkau̯ŋka/
- But n + palatal k: if k has already become /c/, the n is not velarized: banki /ˈpau̯ncɪ/, lengi /ˈlɛi̯ncɪ/
- The vowel before ng/nk changes quality (a to /au̯/, e to /ɛi̯/, o to /ɔi̯/, ö to /œy̯/, u to /u/): langur /ˈlau̯ŋkʏr/, engla /ˈɛi̯ŋla/, kongur /ˈkʰɔi̯ŋkʏr/, söngur /ˈsœy̯ŋkʏr/, ungur /ˈuŋkʏr/
Letters Outside the Icelandic Alphabet
Before anything else the module respells a few letters: c before e, é, i, í, y, ö becomes s, other c becomes k, w becomes v, y becomes i, ý becomes í, and z becomes s. Examples: Cecilía /ˈsɛːsɪlia/, Coca-Cola /ˈkʰɔːkaˌkʰɔːla/, Walter /ˈvaltɛr/, zebra /ˈsɛːpra/, kýr /ˈcʰiːr/.
Comprehensive Spelling-to-IPA Mapping
The tables below list every letter and sequence that the engine handles, with a real example for each. Output is the engine's output for the example word.
1. Vowels (single letters)
| Letter | Regular (short / unstressed) | Stressed, long | Notes |
|---|---|---|---|
| a | /a/ kalt /ˈkʰalt/ | /aː/ tala /ˈtʰaːla/ | |
| á | /au̯/ smátt /ˈsmau̯ht/ | /au̯ː/ sál /ˈsau̯ːl/ | Always a diphthong |
| e | /ɛ/ hestur /ˈhɛstʏr/ | /ɛː/ vegur /ˈvɛːɣʏr/ | |
| é | /jɛ/ hélt /ˈhjɛlt/ | /jɛː/ Pétur /ˈpʰjɛːtʏr/ | Glide + ɛ |
| i | /ɪ/ fiskur /ˈfɪskʏr/ | /ɪː/ vinur /ˈvɪːnʏr/ | |
| í | /i/ hnífnum /ˈn̥ivnʏm/ | /iː/ sími /ˈsiːmɪ/ | |
| o | /ɔ/ borg /ˈpɔrk/ | /ɔː/ kona /ˈkʰɔːna/ | |
| ó | /ou̯/ stórt /ˈstou̯rt/ | /ou̯ː/ sól /ˈsou̯ːl/ | Always a diphthong |
| u | /ʏ/ hundur /ˈhʏntʏr/ | /ʏː/ gul /ˈkʏːl/ | |
| ú | /u/ úlfur /ˈulvʏr/ | /uː/ hús /ˈhuːs/ | |
| æ | /ai̯/ ætla /ˈai̯htl̥a/ | /ai̯ː/ sæti /ˈsai̯ːtɪ/ | Always a diphthong |
| ö | /œ/ öld /ˈœlt/ | /œː/ öl /ˈœːl/ | |
| y | as i: /ɪ/ mynd /ˈmɪnt/ | as i: /ɪː/ kyn /ˈcʰɪːn/ | Respelled to i first |
| ý | as í: /i/ nýtt /ˈniht/ | as í: /iː/ kýr /ˈcʰiːr/ | Respelled to í first |
| au | /œy̯/ auga /ˈœy̯ːɣa/ | /œy̯ː/ haus /ˈhœy̯ːs/ | Digraph |
| ei, ey | /ɛi̯/ neinn /ˈnɛi̯tn̥/ | /ɛi̯ː/ nei /ˈnɛi̯ː/ | Digraph |
2. Vowels before gi and ng/nk
| Letter | Before gi | Before ng, nk |
|---|---|---|
| a | /ai̯/ lagi /ˈlai̯cɪ/ | /au̯/ langur /ˈlau̯ŋkʏr/ |
| e | /ei̯/ degi /ˈtei̯cɪ/ | /ɛi̯/ engla /ˈɛi̯ŋla/ |
| i | /i/ ligi /ˈlicɪ/ | /i/ fingur /ˈfiŋkʏr/ |
| o | /ɔi̯/ bogi /ˈpɔi̯cɪ/ | /ɔi̯/ kongur /ˈkʰɔi̯ŋkʏr/ |
| u | /ʏi̯/ lugi /ˈlʏi̯cɪ/ | /u/ ungur /ˈuŋkʏr/ |
| ö | /œy̯/ högi /ˈhœy̯cɪ/ | /œy̯/ söngur /ˈsœy̯ŋkʏr/ |
The other vowels (á, é, í, ó, ú, æ, au, ei) have the same value in every context.
3. Consonant Digraphs and Trigraphs
| Spelling | IPA | Example | Notes |
|---|---|---|---|
| fnd | /mt/ | hefnd /ˈhɛmt/ | Trigraph |
| fnt | /m̥t/ | jafnt /ˈjam̥t/ | Trigraph |
| mbd | /mt/ | kembdi /ˈcʰɛmtɪ/ | Trigraph |
| mbg | /mk/ | (no common example) | Trigraph |
| mbs | /ms/ | kambs /ˈkʰams/ | Trigraph |
| mbt | /m̥t/ | kembt /ˈcʰɛm̥t/ | Trigraph |
| ll | /tl̥/ | kalla /ˈkʰatl̥a/ | Always pre-stopped |
| ff | /fː/ | kaffi /ˈkʰafːɪ/ | Long f |
| gj | /c/ initially, g + j elsewhere | gjöf /ˈcœːv/, segja /ˈsɛi̯ːja/ | Table value with two forms |
| kj | /cʰ/ initially, /c/ elsewhere | kjöt /ˈcʰœːt/, tekkja /ˈtʰɛhca/ | |
| rl | /rtl̥/ | perla /ˈpʰɛrtl̥a/ | |
| rn | /rtn̥/ | barn /ˈpartn̥/ | |
| sl | /stl̥/ | slá /ˈstl̥au̯ː/ | |
| sn | /stn̥/ | snúa /ˈstn̥uːa/ | |
| qu | /kʰv/ | queen /ˈkʰvɛːn/ | |
| hv | /kʰv/ | hvalur /ˈkʰvaːlʏr/, eitthvað /ˈɛi̯htkʰvað/ | Always, even inside a word |
| hl | /l̥/ | hlaupa /ˈl̥œy̯ːpa/ | |
| hn | /n̥/ | hnífur /ˈn̥iːvʏr/ | |
| hr | /r̥/ | hringur /ˈr̥iŋkʏr/ | |
| hj | /ç/ | hjá /ˈçau̯ː/ | |
| pp, tt, kk | /hp/, /ht/, /hk/ | hoppa /ˈhɔhpa/, þetta /ˈθɛhta/, bakki /ˈpahcɪ/ | Preaspiration |
| pl, pm, pn | /hpl̥/, /hpm̥/, /hpn̥/ | epli /ˈɛhpl̥ɪ/, Kaupmanna-höfn /ˈkʰœy̯hpm̥anːaˌhœvn/, vopn /ˈvɔhpn̥/ | |
| tl, tm, tn | /htl̥/, /htm̥/, /htn̥/ | ætla /ˈai̯htl̥a/, vatn /ˈvahtn̥/ (no common example for tm) | |
| kl, km, kn | /hkl̥/, /hkm̥/, /hkn̥/ | Hekla /ˈhɛhkl̥a/, sakna /ˈsahkn̥a/ (no common example for km) |
4. Single Consonant Letters
| Letter | Word-initial | Elsewhere |
|---|---|---|
| b | /p/ bók /ˈpou̯ːk/ | /p/ tvöfaldur /ˈtʰvœːvaltʏr/ |
| d | /t/ daginn /ˈtai̯cɪnː/ | /t/ hundur /ˈhʏntʏr/ |
| g | /k/ gata /ˈkaːta/ | /k/ borg /ˈpɔrk/ (or /ɣ/, /x/, /j/ by context) |
| p | /pʰ/ pípa /ˈpʰiːpa/ | /p/ api /ˈaːpɪ/ |
| t | /tʰ/ tala /ˈtʰaːla/ | /t/ vetur /ˈvɛːtʏr/ |
| k | /kʰ/ kaka /ˈkʰaːka/ | /k/ taka /ˈtʰaːka/ |
| q | /kʰ/ (qu is /kʰv/) | /k/ (qu is /kʰv/) |
| x | /s/ xylofon /ˈsɪːlɔvɔn/ | /xs/ vax /ˈvaxs/ |
| f | /f/ fiskur /ˈfɪskʏr/ | /v/ hafa /ˈhaːva/ |
| þ | /θ/ þakka /ˈθahka/ | /θ/ ennþá /ˈɛtn̥θau̯/ |
| ð | (not word-initial) | /ð/ faðir /ˈfaːðɪr/ |
| j | /j/ Jón /ˈjou̯ːn/ | /j/ sjö /ˈsjœː/ |
| h, l, m, n, r, s, v | unchanged hús /ˈhuːs/, lítil /ˈliːtɪl/, maður /ˈmaːðʏr/, nei /ˈnɛi̯ː/, rennur /ˈrɛtn̥ʏr/, sól /ˈsou̯ːl/, vinur /ˈvɪːnʏr/ | unchanged |
Letters that are not in any table (digits, other punctuation, and anything else) are copied to the output as they are, e.g., 2024 /2024/.
5. Context-dependent Consonants
| Context | Result | Example |
|---|---|---|
| vowel + g + a, u, ð, l, r | /ɣ/ | dagur /ˈtaːɣʏr/, sagði /ˈsaɣðɪ/, fugl /ˈfʏɣl/ |
| vowel + g + j or i | j | segja /ˈsɛi̯ːja/ |
| vowel + k/g + t or s | /x/ | sagt /ˈsaxt/, tukt /ˈtʰʏxt/, saks /ˈsaxs/ |
| vowel + p + t, s, k | /f/ | skipt /ˈscɪft/, hepta /ˈhɛfta/ |
| v + t, s, k | /f/ | afsakið /ˈafsacɪð/ |
| ng + l or s | /ŋ/ | engla /ˈɛi̯ŋla/ |
| k + front vowel | /c/ | kyn /ˈcʰɪːn/, ekki /ˈɛhcɪ/ |
| nk | /ŋk/ (/nc/ before a front vowel) | danka /ˈtau̯ŋka/, banki /ˈpau̯ncɪ/ |
| stressed syllable + nn | /tn̥/ | steinn /ˈstɛi̯tn̥/, hann /ˈhatn̥/ |
| other nn, double letters | long consonant | kominn /ˈkʰɔːmɪnː/, pabbi /ˈpʰapːɪ/ |
| any other g | /k/ | rigning /ˈrɪkniŋk/ |
6. Letters Respelled Before Processing
| Input letter | Becomes | Example |
|---|---|---|
| c before e, é, i, í, y, ö | s | Cecilía /ˈsɛːsɪlia/ |
| c elsewhere | k | Coca-Cola /ˈkʰɔːkaˌkʰɔːla/ |
| w | v | Walter /ˈvaltɛr/ |
| y | i | kyn /ˈcʰɪːn/ |
| ý | í | kýr /ˈcʰiːr/ |
| z | s | zebra /ˈsɛːpra/, pizza /ˈpʰɪsːa/ |
Using the Tool: Practical Notes
Does the tool use a dictionary or spelling rules?
Both, in that order. A word found in the Wiktionary lexicon is shown as the dictionary gives it; any other word is transcribed by the rules, which see only letters. The lexicon is consulted by default; ?dict=false in the converter's address turns it off. See About This Tool.
Why does a compound come back with a single stress?
The rules know no component boundaries, so a compound written as one word is treated as one word: bókabúð gives /ˈpou̯ːkapuð/, with a short vowel and no secondary stress in the second part. Typing a hyphen between the components, bóka-búð /ˈpou̯ːkaˌpuːð/, supplies the boundary. Open in the converter
Does hyphenating always improve the result?
No. A hyphen before a single consonant leaves the preceding vowel short and drops the secondary stress when both parts have one syllable, so sjón-varp still gives /ˈsjou̯nvarp/. A trailing hyphen makes the module fail and the text is returned unchanged. See Stress and Compounds and Common Issues.
Can I choose a dialect or a phonetic form?
No. Icelandic has one style and one form, and regional variants are not modelled; see Phonemic vs Phonetic and Dialects & Limitations.
Implementation Details (for Developers)
The module is lua_modules/is-pron_wasm.lua (about 400 lines, a copy of the Wiktionary Icelandic
pronunciation module). It is a pure Lua string pipeline: no morphological analysis, no dictionary, no phonetic
second pass. The code path is:
- Lexicon lookup (JavaScript,
scripts/utils.js): The handler in the "Lexicon Lookup with Generation Fallback" group looks the (cleaned) word up inis_lexicon.zipfirst (decompressed client-side, stored in IndexedDB chunks). - Rule fallback: If nothing is found,
window.is_ipa.toIPA(cleanText, "", "")is called. - Lua pipeline (
export.toIPA): respelling, left-to-right scan, three sets of rewrite rules, and cleanup, as described below.
Additional Key Processes
Lexicon Lookup
Before rule-based processing, the app checks the Wiktionary data dump (Kaikki.org). If the word is found, the dictionary entry is used as is. Only words that are missing go through the Lua module. The lexicon is consulted only for the "Phonemic" form, which is the only form for Icelandic.
The Two Empty-String Arguments
The call is toIPA(term, accent, special). The app passes "" for both optional
arguments, and each has a surprising effect in the code:
accentis ignored. The first line of the function body islocal accent = export.markAccent(term, nil), which overwrites the argument with a default array of"1"entries (one per component). Onlyexport.show(the Wiktionary template entry point) would ever produce a custom accent array, and even that is overwritten.specialis meant to be a boolean. Withspecial == truethe digraph ll is output as plain /ll/ instead of /tl̥/, and rule set 2 is skipped. The app passes an empty string, which is truthy in Lua. Sospecial == trueis false (ll still becomes /tl̥/), but the checkif not (special and i == 2)sees a truthy value, so rule set 2 is skipped in the app. Set 2 would delete v/ɣ after /u/; because it is skipped, múgur /ˈmuːɣʏr/ keeps its /ɣ/.
1. Respelling
The term is lowercased, then letters are respelled to ones that share their sound. This is done before the scan, so the rest of the module never sees c, w, y, ý, z.
| Rule | Example Input | Output | Description |
|---|---|---|---|
| lower() | Jón | /ˈjou̯ːn/ | Capitals never matter |
| c([eéiíyö]) → s | Cecilía | /ˈsɛːsɪlia/ | Soft c |
| c → k | Coca-Cola | /ˈkʰɔːkaˌkʰɔːla/ | Other c |
| w → v | Walter | /ˈvaltɛr/ | |
| y → i | kyn | /ˈcʰɪːn/ | |
| ý → í | kýr | /ˈcʰiːr/ | |
| z → s | zebra | /ˈsɛːpra/ |
2. Component Stress (markAccent)
markAccent(term, nil) counts the hyphens and spaces in the term and returns an array with one
"1" per component (so a word with no hyphen has one entry). (A custom accent string with commas
is supported in markAccent but is never used in this app.) In the scan loop, whenever the
current component's accent counter is 1, the module writes ˈ (first component) or
ˌ (later ones) and decrements the counter. The stressed vowel is the first vowel written after
the mark: the counter has reached 0 at that moment, and determineVowel receives
is_stressed = (current_accent == 0).
| Rule | Example Input | Output | Description |
|---|---|---|---|
| ˈ before the first letter | borg | /ˈpɔrk/ | Initial stress |
| ˌ after each "-" | borgar-stjóri | /ˈpɔrkarˌstjou̯ːrɪ/ | Later components |
| "-" resets is_initial | kaffi-hús | /ˈkʰafːɪˌhuːs/ | Aspirated forms are used again |
| trailing "-" is an error | bóka- | /bóka-/ | Lua error, caught by the app; the word is returned as typed |
| leading "-" | -bóka | /ˈˌpou̯ːka/ | Both marks are written |
3. Left-to-Right Scan
The main while loop walks the respelled string one position at a time. At each position it tries
these matchers in this order, takes the first that matches, and advances:
- consonant trigraph (
data.trigraphs) - consonant digraph (
data.digraphs) - the vowel digraphs au and ei
- single consonant (
data.single) - single vowel (
data.vowels) - hyphen (starts a new component)
- anything else: copied unchanged (this includes h, j, l, m, n, r, s, v, ð, digits and punctuation)
A variable is_initial is true at the start of the word and right after a hyphen, and is set to
false by every other step. Table entries that hold two values use the first when is_initial is
true and the second otherwise. This is why the order matters: hv is matched as a digraph before the
single letter h, and au before a.
4. Trigraphs
| Rule | Example Input | Output | Description |
|---|---|---|---|
| fnd → mt | hefnd | /ˈhɛmt/ | |
| fnt → m̥t | jafnt | /ˈjam̥t/ | Voiceless m |
| mbd → mt | kembdi | /ˈcʰɛmtɪ/ | |
| mbg → mk | (no common example) | n/a | Present in the table |
| mbs → ms | kambs | /ˈkʰams/ | |
| mbt → m̥t | kembt | /ˈcʰɛm̥t/ | Voiceless m |
5. Digraphs (data.digraphs)
A fixed table, plus entries generated by a loop: for each letter a in p, t, k, the table
gets aa → h+a and, for each b in l, m, n, ab → h+a+b̥.
| Rule | Example Input | Output | Description |
|---|---|---|---|
| ll → tl̥ | kalla | /ˈkʰatl̥a/ | Pre-stopping |
| ff → ff | kaffi | /ˈkʰafːɪ/ | Later made long by rule set 3 |
| gj → c (initial) / gj | gjöf | /ˈcœːv/ | Two-valued entry |
| kj → cʰ (initial) / c | skjól | /ˈscou̯ːl/ | Not initial after s |
| rl → rtl̥ | perla | /ˈpʰɛrtl̥a/ | |
| rn → rtn̥ | barn | /ˈpartn̥/ | |
| sl → stl̥ | slá | /ˈstl̥au̯ː/ | |
| sn → stn̥ | snúa | /ˈstn̥uːa/ | |
| qu, hv → kʰv | hvalur | /ˈkʰvaːlʏr/ | Also inside words |
| hl → l̥ | hlaupa | /ˈl̥œy̯ːpa/ | |
| hn → n̥ | hnífur | /ˈn̥iːvʏr/ | |
| hr → r̥ | hringur | /ˈr̥iŋkʏr/ | |
| hj → ç | hjá | /ˈçau̯ː/ | |
| pp, tt, kk → hp, ht, hk | hoppa | /ˈhɔhpa/ | Generated preaspiration |
| pl, tl, kl → hpl̥, htl̥, hkl̥ | epli | /ˈɛhpl̥ɪ/ | Generated |
| pm, tm, km → hpm̥, htm̥, hkm̥ | Kaupmanna-höfn | /ˈkʰœy̯hpm̥anːaˌhœvn/ | Generated (pm shown) |
| pn, tn, kn → hpn̥, htn̥, hkn̥ | vopn | /ˈvɔhpn̥/ | Generated |
The special-case check inside the digraph branch (special == true and ll → plain
ll) is dead code in the app, as explained above.
6. Single Consonants (data.single)
| Rule | Example Input | Output | Description |
|---|---|---|---|
| b → p | bók | /ˈpou̯ːk/ | |
| d → t | daginn | /ˈtai̯cɪnː/ | |
| g → k (initial) / g | gata | /ˈkaːta/ | Non-initial g is revised by rule sets 1 and 3 |
| p, t, k → pʰ, tʰ, kʰ (initial) / p, t, k | pípa | /ˈpʰiːpa/ | Aspiration |
| q → kʰ / k | quasi | /ˈkʰvaːsɪ/ | "qu" is matched earlier as a digraph |
| x → s (initial) / xs | vax | /ˈvaxs/ | |
| f → f (initial) / v | hafa | /ˈhaːva/ | |
| þ → θ | þakka | /ˈθahka/ |
7. Vowel Quality (determineVowel)
Each vowel looks at the next two characters of the respelled term (sub(term, pos+1, pos+2))
and picks one of the three table columns of data.vowels:
- If the next two characters are
ngornk: column 3. - Else if they are
gi: column 2. - Else column 1, and if the vowel is the stressed one,
determineLengthis applied to it.
Note that the ng/nk and gi checks apply to stressed and unstressed vowels alike, but length is only added in the third case, so a vowel before ng, nk or gi never gets the length mark.
| Rule | Example Input | Output | Description |
|---|---|---|---|
| column 1 (default) | hestur | /ˈhɛstʏr/ | a → a, e → ɛ, i → ɪ, o → ɔ, u → ʏ, ö → œ |
| column 1, diphthong letters | sól | /ˈsou̯ːl/ | á, ó, æ, é, au, ei |
| column 2 (before gi) | bogi | /ˈpɔi̯cɪ/ | a → ai̯, e → ei̯, o → ɔi̯, u → ʏi̯, ö → œy̯ |
| column 3 (before ng, nk) | langur | /ˈlau̯ŋkʏr/ | a → au̯, e → ɛi̯, o → ɔi̯, u → u, ö → œy̯ |
8. Vowel Length (determineLength)
For a stressed vowel in the default column, the function inspects the same two following characters
(next_chars), in this order:
| Rule | Example Input | Output | Description |
|---|---|---|---|
| next_chars contains x → short | vax | /ˈvaxs/ | x counts as two consonants |
| 1 or 0 characters left → long | þú | /ˈθuː/ | Word-final, or one letter left |
| consonant + non-consonant → long | tala | /ˈtʰaːla/ | One consonant then a vowel. "-" does not count as a consonant, but also blocks the match |
| [bdgkpst] + [jrv] → long | Petra | /ˈpʰɛːtra/ | Stop clusters that don't shorten |
| otherwise → short | vatn | /ˈvahtn̥/ | Two consonants |
The length mark /ː/ is appended after the whole vowel, including the nonsyllabic part, e.g., sól /ˈsou̯ːl/.
9. Rewrite Rules, Set 1
After the scan, the pieces are concatenated into one string. The module then runs three sets of
regular-expression rewrites with gsub, each rule in the order written. Set 1:
| Rule | Example Input | Output | Description |
|---|---|---|---|
| (ˈ C* V) nn → tn̥ | steinn | /ˈstɛi̯tn̥/ | After a stressed syllable only |
| (ˈ C* V) nn, aspirated initial | kunnum | /ˈkʰʏnːʏm/ | The consonant class has no ʰ, so after kʰ, pʰ, tʰ the rule does not match and nn becomes a long n instead |
| V + g + (a, ʏ, ð, l, r) → ɣ | dagur | /ˈtaːɣʏr/ | Fricative g |
| V + g + (j, i) → j | segja | /ˈsɛi̯ːja/ | Becomes a glide (see set 3) |
| V + (k, g) + (t, s) → x | sagt | /ˈsaxt/ | |
| V + p + (t, s, k) → f | skipt | /ˈscɪft/ | |
| v + (t, s, k) → f | afsakið | /ˈafsacɪð/ | f was already turned into v |
10. Rewrite Rules, Set 2 (not applied in the app)
Two rules, which only run when special is falsy:
(u̯?ː?)[vɣ] → %1: delete a v or ɣ after /u/ (so múgur would be /muːʏr/ without the /ɣ/).kʏ(ː?)ð → kvʏ%1ð: insert /v/ in kuð-.
Because the app's empty string is truthy, neither rule is applied: múgur /ˈmuːɣʏr/, kuðungur /ˈkʰʏːðuŋkʏr/.
11. Rewrite Rules, Set 3
| Rule | Example Input | Output | Description |
|---|---|---|---|
| ng + (l, s) → ŋ | engla | /ˈɛi̯ŋla/ | g dropped |
| g → k | borg | /ˈpɔrk/ | Every remaining g (ɣ is unaffected) |
| k(ʰ)(ɛ, i, ɪ) → c | kyn | /ˈcʰɪːn/ | Palatalization, also keeps the ʰ |
| k(ʰ)(ai) → c | gæs | /ˈcai̯ːs/ | Palatalization before ai̯ |
| kj → c | tekkja | /ˈtʰɛhca/ | |
| (ː) jj → i̯ ː j | segja | /ˈsɛi̯ːja/ | Glide from gj after a vowel |
| nk → ŋk | langur | /ˈlau̯ŋkʏr/ | Not after the palatal c |
| kc → cː | (no common example) | n/a | |
| (.)(same) → long | kaffi | /ˈkʰafːɪ/ | Any doubled character becomes long |
| (.)(same) → long | Selfoss | /ˈsɛlvɔsː/ | Includes ss |
12. Secondary-stress Cleanup
A final gsub looks for a primary part followed by a ˌ part. Syllables are counted
with countSyllables (each run of vowel symbols, with an optional nonsyllabic mark and length
mark, is one syllable). If both parts have exactly one syllable, the ˌ is removed.
| Rule | Example Input | Output | Description |
|---|---|---|---|
| 1 + 1 syllable → remove ˌ | sjón-varp | /ˈsjou̯nvarp/ | Dropped |
| otherwise keep ˌ | fót-bolti | /ˈfou̯tˌpɔltɪ/ | Second part has two syllables |
13. Punctuation Cleanup
The last step removes full stops and commas: gsub(pron, "[%.,]", ""). Other characters pass
through.
| Rule | Example Input | Output | Description |
|---|---|---|---|
| remove "." and "," | ég. | /ˈjɛːk/ | Final full stop removed |
| everything else is kept | 2024 | /2024/ | Digits are not read out |
Parts of the module the app does not use
export.show,export.tag_text,export.link: Wiktionary template entry points that depend on MediaWiki modules.getRhyme: an internal function that is never called (it indexes a string as if it were a table).- The file ends with a test line that prints the transcription of þorn when the module loads. It has no effect on the app.
Common Issues & Limitations
Known Transcription Problems
This table shows known issues where the automatic transcription may be incorrect. All "System Output" values are real engine output; where "Correct IPA" is an IPA string it is the engine's output for the corrected input, and otherwise it is described in words.
| Input | System Output | Correct IPA | Cause | What to Do |
|---|---|---|---|---|
| bókabúð | /ˈpou̯ːkapuð/ | bóka-búð /ˈpou̯ːkaˌpuːð/ | Compound written as one word: second component treated as an unstressed ending (short vowel, no secondary stress) | Insert a hyphen between components |
| Selfoss | /ˈsɛlvɔsː/ | Sel-foss /ˈsɛlfɔsː/ | Any f that is not word-initial is read as v; the module does not know about the component boundary | Insert a hyphen |
| sjónvarp | /ˈsjou̯nvarp/ | A long first vowel (/ou̯ː/) and a secondary stress before varp | Even with the hyphen (sjón-varp /ˈsjou̯nvarp/), the vowel before a consonant plus hyphen is short, and the secondary stress is dropped because both parts have one syllable | No workaround in the app; check the lexicon or Wiktionary |
| beygja | /ˈpɛi̯i̯ːja/ | A single /ɛi̯ː/ followed by /j/, with no doubled glide | The y becomes i, then g + j becomes jj, which the jj-rule turns into an extra glide | Check Wiktionary; the same happens for beigja /ˈpɛi̯i̯ːja/ |
| nafn | /ˈnavn/ | Typically a p-like stop before the n instead of a fricative (not given as IPA here) | The module has no rule for f before n or l, so it reads v. Compare the respelling nabn /ˈnapn/ | Report if it affects a common word; also seen in stofna /ˈstɔvna/ |
| café | /ˈkʰaːvjɛ/ | Pronunciation as in the source language (not given as IPA here) | Loanword spelling read as Icelandic: é is always /jɛ/ and f between vowels is /v/ | Check Wiktionary |
| Chile | /ˈkʰhɪːlɛ/ | Pronunciation as in the source language (not given as IPA here) | No foreign-word rules: c becomes k and h is copied | Respell phonetically before transcribing |
| Xavier | /ˈsaːvɪɛr/ | Pronunciation as in the source language (not given as IPA here) | Letter x at the start is always /s/; names are read as Icelandic | Respell phonetically before transcribing |
| bóka- | /bóka-/ | Valid transcription of the word bóka | A trailing hyphen makes the Lua code raise an error (invalid stress position) and the app returns the text unchanged | Remove the trailing hyphen: bóka /ˈpou̯ːka/ |
| -bóka | /ˈˌpou̯ːka/ | A single primary stress: bóka /ˈpou̯ːka/ | A leading hyphen writes both a primary and a secondary stress mark | Do not start a word with a hyphen |
| 2024 | /2024/ | The number in words, e.g. tvö þúsund tuttugu og fjögur (the module does not expand digits) | Digits are copied unchanged | Spell out numbers before transcribing |
Related Pronunciation Guides
Help pages for other languages in this tool:
For technical issues or suggestions, please visit our GitHub repository.