Icelandic Pronunciation and IPA Transcription Guide

← Back to Icelandic transcription ↑ All Languages

Table of Contents

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.

Lexicon vs. rules. Dictionary entries are written by Wiktionary editors, so they can contain irregular pronunciations that no spelling rule could predict (for example loanwords, names, and compounds). The rule path is a deterministic spelling-to-sound converter: the same spelling always gives the same IPA, and it can be wrong whenever Icelandic pronunciation depends on morphology or etymology that spelling does not show. All IPA examples on this page were produced by the rule path only (the test tool that generated them does not load the lexicon), so a word you type into the app may show a different, dictionary-based transcription.

Dialects & Limitations

Phonemic vs Phonetic

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

Multiple Pronunciation Variants

For Icelandic, the rule path returns exactly one transcription per word. Where variants exist they come from the lexicon:

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:

Short Vowels

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:

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/:

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)

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)

Fricatives (g, f, ð, þ, x)

g

f, p, v

ð 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

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:

  1. Lexicon lookup (JavaScript, scripts/utils.js): The handler in the "Lexicon Lookup with Generation Fallback" group looks the (cleaned) word up in is_lexicon.zip first (decompressed client-side, stored in IndexedDB chunks).
  2. Rule fallback: If nothing is found, window.is_ipa.toIPA(cleanText, "", "") is called.
  3. 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:

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:

  1. consonant trigraph (data.trigraphs)
  2. consonant digraph (data.digraphs)
  3. the vowel digraphs au and ei
  4. single consonant (data.single)
  5. single vowel (data.vowels)
  6. hyphen (starts a new component)
  7. 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:

  1. If the next two characters are ng or nk: column 3.
  2. Else if they are gi: column 2.
  3. Else column 1, and if the vowel is the stressed one, determineLength is 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:

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

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

Help pages for other languages in this tool:


For technical issues or suggestions, please visit our GitHub repository.