Lithuanian Pronunciation and IPA Transcription Guide

← Back to Lithuanian transcription ↑ All Languages

Mark the stress and tone yourself, and type in lowercase. When a word is not in the dictionary, the rule engine has no idea where the stress falls. A plain word comes out with no stress mark, no tone and no vowel length (and with syllable dots left in): labas /ɫɐ.bɐs/. To get stress, type an accent mark on the stressed vowel: a tilde (ã) means stressed and long, an acute (á) means stressed with the acute/circumflex tone mark, and a grave (à) means stressed and short. For example lãbas /ˈɫaː.bɐs/. Use precomposed letters or combining marks, both work. Vowel length is marked with ą ę į ų ū ė y, not with accents. Capital letters break the rule engine (Kauno /k.ɐʊ̯.noː/), so write kauno /kɐʊ̯.noː/. See Stress and Tone Marks and Common Issues.

Table of Contents

About This Tool

This Lithuanian transcription app uses the Wiktionary Lithuanian Pronunciation Module to generate phonemic transcriptions for Lithuanian text. IPA (International Phonetic Alphabet) is a standardized system for transcribing speech sounds. This tool converts Lithuanian spelling into IPA, helping learners, linguists and developers see how a word is pronounced.

Every word goes through two steps:

  1. Dictionary lookup. The app first looks the word up in a lexicon built from a Wiktionary data dump[1][2] (lt_lexicon.zip, about 12,600 headwords, downloaded once, decompressed in your browser and cached in IndexedDB). If the word is found, the dictionary IPA is shown. These entries come from Wiktionary editors, normally include a stress mark, and may list several variants separated by commas. If the first lookup fails, the lookup is retried with the word in lowercase.
  2. Rule-based fallback. If the word is not in the lexicon (and the lexicon is only a small fraction of Lithuanian vocabulary, so this happens often), the app calls the Lua pronunciation module: window.lt_ipa.toIPA(cleanText, true). The module's toIPA function takes exactly one parameter (text), so the second argument true is accepted and silently ignored; it changes nothing. Everything this page says about the rule engine therefore applies regardless of that argument.

Important: the examples on this page were produced with the rule engine only (the test harness does not load the lexicon). A word shown here with a stress-less, dotted result may look different in the app if the dictionary contains it. Dictionary results are generally more reliable than rule output, especially for stress, which the rules cannot guess.

Before either step the app removes everything except letters, combining marks, apostrophes and hyphens from the word (sanitize() in utils.js) and normalizes it to NFKC.

Dialects & Limitations

Phonemic vs Phonetic

Quick Reference (Glossary)

Phoneme
The smallest unit of sound that distinguishes meaning (for example /p/ vs /b/ in pãtas vs batas).
Allophone
A variant pronunciation of a phoneme that does not change meaning, such as dark ɫ vs clear lʲ.
Palatalization
A consonant pronounced with the middle of the tongue raised toward the hard palate, written ʲ. In Lithuanian most consonants are soft before i, e and the i-digraphs, e.g. liepa /lʲɪə.pɐ/.
Soft / Hard consonant
A palatalized consonant (tʲ) versus a plain one (t). Before the vowels a, o, u, ų and ū consonants are hard, for example tavo /tɐ.ʋoː/.
Ogonek
The small hook under ą, ę, į, ų. These letters mark long vowels.
Macron
The bar over ū (a long u). The letter ė carries a dot above and is a long e.
Tone / Pitch accent
Lithuanian stressed syllables carry a tone, written with an acute (á), grave (à) or tilde (ã) accent. This tool converts the three marks into a stress sign, vowel length and, for the acute, a circumflex sign on the vowel.
Diphthong
A single-syllable vowel glide, e.g. kaina /kɐɪ.nɐ/, draugas /drɐʊ̯.ɡɐs/.
Schwa
The neutral vowel ə. In this module it appears only as the second element of the diphthongs ie and uo, e.g. siena /sʲɪə.nɐ/.
Affricate
A stop followed by a fricative, written with a tie bar: t͡s (c), t͡ʃ/t͡ɕ (č), d͡z (dz).
Velarization (dark l)
A back-of-the-tongue ɫ, used for l before hard vowels and consonants: lapas /ɫɐ.pɐs/.
Syllable Boundary
The dot (.) between syllables. This module leaves the dots in its output, so you will see them in rule-generated IPA.
Tie Bar
The mark ◌͡◌ joining two symbols into one affricate.
Lexicon
The dictionary of ready-made IPA transcriptions, consulted before the rules.
NFD
Unicode decomposed form: accented letters are split into a base letter plus combining marks so the module can match the marks.

How to Read IPA Symbols

This section lists the symbols this engine actually emits, with an approximate English equivalent.

Vowel Symbols

IPA Example English Approximation Notes
/ɐ/batas /bɐ.tɐs/"cut" (open, central)Short a
/aː/rãtas /ˈraː.tɐs/"father"Long, from ã (tilde)
/âː/lába /ˈɫâː.bɐ/"father" with falling pitchFrom á (acute)
/ɛ/medis /mʲɛ.dʲɪs/"bed"Short e
/eː/tėvas /tʲeː.ʋɐs/"say" (no glide)Long, from ė
/æː/ęsti /æː.sʲtʲɪ/"cat" (lengthened)Long, from ę; also after soft consonants, e.g. miãsa /ˈmʲæː.sɐ/
/ɪ/tiltas /tʲɪɫ.tɐs/"sit"Short i
/iː/jį /jiː/"see"Long, from į and y
/ʊ/kur /kʊr/"put"Short u
/uː/rūkas /ruː.kɐs/"food"Long, from ū and ų
/oː/kodas /koː.dɐs/"more" (no glide)The letter o is always long
/ə/siena /sʲɪə.nɐ/"about"Only inside the diphthongs ie and uo
/ɐɪ/kaina /kɐɪ.nɐ/"eye" (shorter)Diphthong ai
/ɛɪ/eiti /ɛɪ.tʲɪ/"say" (with i-glide)Diphthong ei
/ɐʊ̯/draugas /drɐʊ̯.ɡɐs/"how" (shorter)Diphthong au
/ɛʊ/kiaulė /kʲɛʊ.lʲeː/No close equivalentDiphthong iau (and eu)
/ʊɪ/kuinas /kʊɪ.nɐs/"ooey"Diphthong ui
/ɪə/miestas /mʲɪə.stɐs/"here" (without r)Diphthong ie
/ʊə/puodas /pʊə.dɐs/"poor" (without r)Diphthong uo

Consonant Symbols

IPA Example English Approximation Notes
/p b t d k/pãtas /ˈpaː.tɐs/, batas /bɐ.tɐs/, tavo /tɐ.ʋoː/, kodas /koː.dɐs/"spin", "bat", "stop", "dot", "skin"Unaspirated stops
/ɡ/draugas /drɐʊ̯.ɡɐs/"go"From g (not before u, see Issues)
/f/fabrikas /f.ɐ.bʲrʲɪ.kɐs/"fan"Loanwords only
/ʋ/vasara /ʋɐ.sɐ.rɐ/between "v" and "w"From v
/s z/stalas /stɐ.ɫɐs/, zuikis /zʊɪ.kʲɪs/"sun", "zoo"
/ʃ ʒ/šaltas /ʃɐɫ.tɐs/, žodis /ʒoː.dʲɪs/"shoe", "measure"From š, ž
/ɕ ʑ/šeši /ɕɛ.ɕɪ/, žemė /ʑɛ.mʲeː/soft "sh", soft "zh"š, ž before a soft vowel
/x/chaosas /xɐoː.sɐs/Scottish "loch"From ch
/ɣ/hobis /ɣ.oː.bʲɪs/voiced "ch" of "loch"From h
/t͡s/ciklas /t͡sʲɪ.kɫɐs/"cats"From c
/t͡ʃ/ /t͡ɕ/čaga /t͡ʃɐ.ɡɐ/, čekis /t͡ɕɛ.kʲɪs/"church", soft "church"From č
/d͡z/dzeta /d͡zʲɛ.tɐ/"adze"From dz (typed ð also works)
/m n/mama /mɐ.mɐ/, nosis /noː.sʲɪs/"mom", "no"
/ŋ/bankas /bɐŋ.kɐs/"sing"n before k or g
/l/liepa /lʲɪə.pɐ/"leaf"Clear (palatalized) l: lʲ
/ɫ/lapas /ɫɐ.pɐs/"full" (dark l)l before anything except a soft consonant mark
/r/ratas /rɐ.tɐs/Spanish "pero" (tap/trill)
/j/jis /jɪs/"yes"
/kʋ/kvaila /kʋɐɪ.ɫɐ/"kv"Normal kv cluster

Diacritical Marks

Symbol Name Meaning Example
ˈPrimary stressStress is on the following syllablerankà /rɐŋˈkɐ/
.Syllable boundarySyllable break (left in rule output)labas /ɫɐ.bɐs/
ːLength markVowel is longrãtas /ˈraː.tɐs/
ʲPalatalizationConsonant is softtėvas /tʲeː.ʋɐs/
̂CircumflexAcute-tone vowel (placed on the vowel before the length mark)kárta /ˈkâːr.tɐ/
̯Non-syllabicGlide part of a diphthongtauta /tɐʊ̯.tɐ/
͡Tie barAffricate (single unit)čaga /t͡ʃɐ.ɡɐ/

Interactive Features

Multiple Pronunciation Variants

Lithuanian Pronunciation Guide

This guide describes how the module turns Lithuanian spelling into sounds. Lithuanian spelling is fairly regular, but several things are not written in ordinary text: the stress position and the tone. The module can only reproduce them if you mark them.

Vowel Length & Quality

Length is carried by the letter itself: a e i u are short, while ą ę į ų ū ė y are long and o is always long. The exception is ą, which the module leaves unconverted (see Common Issues).

LetterShortLongShort ExampleLong Example
a / ą/ɐ//aː/ (only via ã)batas /bɐ.tɐs/rãtas /ˈraː.tɐs/
e / ė / ę/ɛ//eː/, /æː/medis /mʲɛ.dʲɪs/tėvas /tʲeː.ʋɐs/, ęsti /æː.sʲtʲɪ/
i / į / y/ɪ//iː/tiltas /tʲɪɫ.tɐs/jį /jiː/, sakyti /sɐ.kʲiː.tʲɪ/
u / ū / ų/ʊ//uː/kur /kʊr/rūkas /ruː.kɐs/, rankų /rɐŋ.kuː/
o(none)/oː/-kodas /koː.dɐs/

Short vowels written with the ordinary letter stay short even with a tilde (ẽ ĩ ũ), and the vowel after a soft consonant is fronted: ʲɐ becomes ʲɛ (tokia /toː.kʲɛ/), and a long aː becomes ʲæː (niãrti /ˈnʲæːrʲ.tʲɪ/).

Stress and Tone Marks

The module reads three accent marks. Per its own source comment: acute = stressed + circumflex tone, tilde = stressed + long, grave = stressed + short. A stress sign ˈ is placed before the syllable that contains the mark. Without any mark there is no stress sign at all.

MarkNo markAcute (á)Tilde (ã)Grave (à)
alapas /ɫɐ.pɐs/lába /ˈɫâː.bɐ/lãbas /ˈɫaː.bɐs/màma /ˈmɐ.mɐ/
odovana /doː.ʋɐ.nɐ/dóvana /ˈdôː.ʋɐ.nɐ/dõvana /ˈdoː.ʋɐ.nɐ/dòvana /ˈdoː.ʋɐ.nɐ/
ėmėsa /mʲeː.sɐ/mė́sa /ˈmʲêː.sɐ/mė̃sa /ˈmʲeː.sɐ/mė̀sa /ˈmʲeː.sɐ/

Palatalization (Soft Consonants)

The module marks a consonant as soft (ʲ) in these cases:

A missing j is added before an initial ie and between a vowel and ie: ieva /jɪə.ʋɐ/, paieška /pɐ.jɪə.ʃkɐ/.

Diphthongs

The module recognizes the following diphthongs (the acute-mark inputs below are illustrative). A tilde on the second vowel is dropped (it marks stress, which the stress step has already handled); an acute adds a circumflex mark on the first element.

LettersUnmarkedWith acuteNotes
aikaina /kɐɪ.nɐ/káina /ˈkɐ̂ɪ.nɐ/
audraugas /drɐʊ̯.ɡɐs/áuga /ˈɐ̂ʊ.ɡɐ/
eieiti /ɛɪ.tʲɪ/éiti /ˈɛ̂ɪ.tʲɪ/
iaukiauras /kʲɛʊ.rɐs/kiáuras /ˈkʲæ̂ʊ.rɐs/The i only softens the consonant
iemiestas /mʲɪə.stɐs/píeva /ˈpʲɪ̂ə.ʋɐ/The second element is a schwa
uopuodas /pʊə.dɐs/dúona /ˈdʊ̂ə.nɐ/
uikuinas /kʊɪ.nɐs/kúinas /ˈkʊ̂ɪ.nɐs/

Limitation: diphthongs are only matched inside a word. At the end of a word the syllable-division step splits them into two syllables, so the diphthong rules do not fire: vaikai /ʋɐɪ.kɐ.ɪ/, vanduo /ʋɐn.dʊ.oː/, kaip /kɐ.ɪp/. Compare the same diphthong in the middle of a word: vaikas /ʋɐɪ.kɐs/. Words like this are the ones most likely to be better served by the dictionary.

Consonant Rules

Syllable Division

Syllable dots are left in the final output. The division rule puts a dot before each onset-plus-vowel group, treats stop + sonorant (e.g. br, pl) and s/z + stop as one onset (but splits stop + m/n, e.g. ritmas /rʲɪt.mɐs/), and keeps a vowel sequence together unless it is at the end of the word. Examples: draugas /drɐʊ̯.ɡɐs/, sluoksnis /sɫʊək.sʲnʲɪs/, aštuoni /ɐ.ʃtʊə.nʲɪ/. The letters h f x and q are not recognized as onsets, so they get a stray dot (see Common Issues).

Comprehensive Spelling-to-IPA Mapping

1. Vowel Letters

SpellingExampleNotes
abatas /bɐ.tɐs/Short
emedis /mʲɛ.dʲɪs/Short
ėtėvas /tʲeː.ʋɐs/Long
ęęsti /æː.sʲtʲɪ/Long, open
itiltas /tʲɪɫ.tɐs/Short
įjį /jiː/Long
ysakyti /sɐ.kʲiː.tʲɪ/Long (also palatalizes the preceding consonant)
okodas /koː.dɐs/Always long
ukur /kʊr/Short
ųrankų /rɐŋ.kuː/Long
ūrūkas /ruː.kɐs/Long
ąąsà /ɐ̨ˈsɐ/Not converted (stray ogonek in output)

2. Diphthong Letter Pairs

SpellingExample
aižaibas /ʒɐɪ.bɐs/
eisveikas /sʲʋʲɛɪ.kɐs/
aukaulas /kɐʊ̯.ɫɐs/
iaukiaulė /kʲɛʊ.lʲeː/
eueuras /ɛʊ.rɐs/
ielietus /lʲɪə.tʊs/
uopuodas /pʊə.dɐs/
uizuikis /zʊɪ.kʲɪs/

3. Stress and Tone Marks

MarkMeaning in moduleExample
acute ´ (á)stressed, circumflex tone signkárta /ˈkâːr.tɐ/
tilde ˜ (ã)stressed, longkartã /kɐrˈtaː/
grave ` (à)stressed, shortkartà /kɐrˈtɐ/
noneno stress mark in outputkarta /kɐr.tɐ/

4. Consonant Letters

SpellingExample
bbatas /bɐ.tɐs/
cciklas /t͡sʲɪ.kɫɐs/
ččaga /t͡ʃɐ.ɡɐ/
dkodas /koː.dɐs/
ffabrikas /f.ɐ.bʲrʲɪ.kɐs/
gdraugas /drɐʊ̯.ɡɐs/
hhobis /ɣ.oː.bʲɪs/
jjis /jɪs/
kkodas /koː.dɐs/
llapas /ɫɐ.pɐs/
mmama /mɐ.mɐ/
nnosis /noː.sʲɪs/
ppãtas /ˈpaː.tɐs/
rratas /rɐ.tɐs/
sstalas /stɐ.ɫɐs/
ššaltas /ʃɐɫ.tɐs/
ttavo /tɐ.ʋoː/
vvasara /ʋɐ.sɐ.rɐ/
zzuikis /zʊɪ.kʲɪs/
žžodis /ʒoː.dʲɪs/

5. Digraphs and Clusters

SpellingExampleNotes
chchaosas /xɐoː.sɐs/
dzdzeta /d͡zʲɛ.tɐ/Before u the placeholder leaks, e.g. dzūkas /ðuː.kɐs/
ng / nklangas /ɫɐŋ.ɡɐs/, bankas /bɐŋ.kɐs/n becomes ŋ
kvkvaila /kʋɐɪ.ɫɐ/
sk / stskaityti /skɐɪ.tʲiː.tʲɪ/, stalas /stɐ.ɫɐs/s + stop is one onset
tspats /pɐć/Unfinished placeholder (see Issues); write c instead: pac /pɐt͡s/
dždžemperis /ð̌ʲɛmʲ.pʲɛ.rʲɪs/Unfinished placeholder (see Issues); type þ instead: þemperis /d͡ʑɛmʲ.pʲɛ.rʲɪs/

6. Soft Consonants

ContextExample
C + ipirmas /pʲɪr.mɐs/
C + etėvas /tʲeː.ʋɐs/
C + ia / io / iužiema /ʑɪə.mɐ/, čiobrelis /t͡ɕoː.bʲrʲɛ.lʲɪs/, šiuo /ɕʊ.oː/
cluster before soft consonantsveikas /sʲʋʲɛɪ.kɐs/, dviratis /dʲʋʲɪ.rɐ.tʲɪs/
š / ž + soft vowelšeši /ɕɛ.ɕɪ/, žemė /ʑɛ.mʲeː/
č + soft vowelčekis /t͡ɕɛ.kʲɪs/
C + a / o / u (hard)tavo /tɐ.ʋoː/, kur /kʊr/

7. Whole Words

WordMeaning
mokykla /moː.kʲiː.kɫɐ/school
lietuviškai /lʲɪə.tʊ.ʋʲɪ.ʃkɐ.ɪ/in Lithuanian
draugas /drɐʊ̯.ɡɐs/friend
vanduõ /ʋɐn.dʊˈoː/water (with stress marked)
kalbà /kɐɫˈbɐ/language
obuolỹs /oː.bʊəˈlʲiːs/apple (stress marked)
šventė̃ /ʃʋʲɛnʲˈtʲeː/holiday (stress marked)
viršūnė /ʋʲɪr.ʃuː.nʲeː/summit

Using the Tool: Practical Notes

How do I mark stress and tone for a word that is not in the dictionary?

Type an accent on the stressed vowel: an acute (á) gives stress with a circumflex tone sign, a tilde (ã) gives stress and length, and a grave (à) gives stress and a short vowel. The three words kartà /kɐrˈtɐ/, kartã /kɐrˈtaː/ and kárta /ˈkâːr.tɐ/ differ only in the mark. See Stress and Tone Marks. Open in the converter

Why do some words show several transcriptions?

A lexicon entry can list more than one pronunciation, for example different stress placements; click the word to cycle through them. The rule engine always returns one result. See Multiple Pronunciation Variants.

Why can the result differ from the examples on this page?

The dictionary is consulted first and wins whenever it has the word. It covers about 12,600 headwords, so many words fall through to the rules, and the examples here were generated by the rules alone. See About This Tool.

Why does the output contain dots, and why do capital letters cause errors?

The rule engine leaves syllable boundaries in its output as dots. It matches lowercase letters only, so a capital leaves a stray dot: Kauno /k.ɐʊ̯.noː/ against kauno /kɐʊ̯.noː/. See Common Issues & Limitations.

Implementation Details (for Developers)

The module is lua_modules/lt-pron_wasm.lua (216 lines of Lua, adapted from Wiktionary's Module:lt-pron). It is much shorter than the German module: there is no stress assignment, no morphology and no lexicon logic inside it. The public function used by the app is export.toIPA(text), which is exactly:

pron(ulower(export.syllabify(export.respell(text))))

So the pipeline is respell (spelling to a half-phonological notation), then syllabify (insert dots), then lowercase, then pron (notation to IPA). Because lowercasing happens after respell and syllabify, those two steps only recognize lowercase letters. The module also calls print() after respell and after syllabify (and once at load time), so the intermediate forms appear in the console (for example in smoke tests); they are debug output, not the result. The tables below show these real intermediate forms.

  1. Application layer (scripts/utils.js): sanitize, lexicon lookup, then rule fallback.
  2. Respelling (export.respell): decomposition, digraph placeholders, added j, softness marks.
  3. Syllabification (export.syllabify): dots between syllables.
  4. Pronunciation (local function pron): consonants, allophones, stress, diphthongs, single vowels, tones.

Module Tables

TableContents
subs.glyphsPlaceholder substitutions used by respell: ch → ç, ts → ć, dz → ð, dz+caron → þ, o+breve → ɔ
subs.ipa_cConsonant letters to IPA: č → t͡ʃ, c → t͡s, ç → x, þ → d͡ʒ, ð → d͡z, g → ɡ, h → ɣ, qu → kʋ, q → k, š → ʃ, v → ʋ, ž → ʒ
subs.ipa_va → ɐ, e → ɛ, i → ɪ, u → ʊ. Defined, but pron never reads it: the same replacements are written out inline.
vowels, consonants[aeiouy] and [bcdfghklmnprstvzðþx] (j and ç/ć are not in the consonant class)
accents, diacriticsacute, grave, circumflex, tilde, macron, breve; plus dot above, caron and ogonek

1. Application Layer

RuleExample InputOutputDescription
sanitize()"mano,"manoRemoves everything except letters, marks, ', ’, ‿, -; NFKC
lookupInLexicon()Lietuvadictionary IPAExact key, then lowercase key; only if the lexicon is loaded
lt_ipa.toIPA(cleanText, true)labas /ɫɐ.bɐs/see leftFallback; the second argument is ignored by the Lua function

2. Respelling (export.respell)

2.1 Decomposition

udecomp (NFD) splits every accented letter so that marks can be tested separately, e.g. ė becomes e + dot above, ą becomes a + ogonek.

2.2 Digraph Placeholders

A pattern matching any character followed by an optional caron, breve, h, s or z is run through subs.glyphs. Pairs found in the table become single placeholder symbols; other pairs are left alone.

RuleExample InputOutput (respelled)Description
ch → çchaosasçaosasLater becomes x
ts → ćpatspaćć is never converted afterwards (leak)
dz → ðdzetaðʲetaLater becomes d͡z
dz+caron → þdžemperisð̌ʲemʲpʲerʲisNever fires: the pattern only grabs two characters, so d+z becomes ð and the caron is left behind
o+breve → ɔkŏdaskɔdasPasses through pron unchanged

2.3 Added j

RuleExample InputOutput (respelled)Description
initial ie → jieievajievaPattern ^i[acute grave]?e[tilde]?
V + ie → V + jiepaieškapajieškaAny vowel (with marks) followed by ie

2.4 Softness Marks

RuleExample InputOutput (respelled)Description
i + a/o/u → ʲ + a/o/utokiatokʲaPattern i([aou][accents]*)(.?); the i is replaced by ʲ
... unless the next letter is u (iau)kiaulėkʲiaulʲėThe i stays, so iau can become a diphthong later
C + i/e/j/y → Cʲ + i/e/j/ymedismʲedʲisCaron letters count as one consonant. y is included in the set
cluster before CʲsveikassʲvʲeikasEach preceding consonant in the run gets ʲ, except k
print(term)--Debug print of the respelled form (not part of the result)

3. Syllabification (export.syllabify)

One global pattern inserts a dot before each onset+vowel group. The onset may contain s|z, a stop (ptkbdðþgçćc), a sonorant (lmnrvj), each optionally followed by caron or ʲ. Vowels and marks before the dot are carried along. Then three clean-up steps run.

RuleExample InputOutput (syllabified)Description
dot before onset + voweldraugasdrau.gasVowel runs stay together when followed by onset + vowel
strip leading dotlabasla.bas^%. removed
.ʲ → ʲ.medismʲe.dʲisThe softness mark stays with its consonant
stop + m/n splitritmasrʲit.mas%.([ptbdðþ]ʲ?)([mn]) moves the dot between the stop and the nasal; otherwise the stop + nasal would form one onset
word-final vowel run is splitvaikaivai.ka.iThe last vowel gets its own dot because no onset + vowel follows; diphthong rules later cannot match across the dot
h, f, x, q not in onset classhobish.o.bʲisThe dot is inserted after the letter, producing a stray syllable
print(term)--Debug print of the syllabified form

syllabify(term, table) can also return an iterator over characters when table is truthy; toIPA does not use this.

4. Pronunciation (pron)

Input is the lowercased, syllabified string. Substitutions are applied in this order (the order matters: for example the diphthongs run before the single vowels).

4.1 Consonant Letters to IPA

A pattern matching one character plus an optional caron or u is looked up in subs.ipa_c. The optional u exists for qu, but it also swallows the u after any consonant. A pair such as gu is not in the table, so it is left unchanged.

RuleExample InputOutputDescription
č → t͡ʃ, š → ʃ, ž → ʒča.gačaga /t͡ʃɐ.ɡɐ/Caron letters
c → t͡scʲi.klasciklas /t͡sʲɪ.kɫɐs/
ç → x, ð → d͡zçao.saschaosas /xɐoː.sɐs/
g → ɡ, h → ɣ, v → ʋh.o.bʲishobis /ɣ.oː.bʲɪs/
C + u not converted (bug)gu.drusgudrus /gʊ.drʊs/The u joins the match, the pair gu is not in the table, so g stays ASCII g. Same for vu, cu, hu, ðu
qu → kʋ (unreachable)q.ua.sʲiquasi /k.ʊɐ.sʲɪ/syllabify has already put a dot between q and u
ć (from ts) is not convertedpaćpats /pɐć/ć has no entry in ipa_c (only the decomposed c+acute does), so it appears raw

4.2 Consonant Allophones

RuleExample InputOutputDescription
ʃʲ → ɕšʲe.šʲišeši /ɕɛ.ɕɪ/Also turns t͡ʃʲ into t͡ɕ: čekis /t͡ɕɛ.kʲɪs/
ʒʲ → ʑžʲe.mʲėžemė /ʑɛ.mʲeː/
l + (not ʲ) → ɫla.paslapas /ɫɐ.pɐs/Needs a following character, so a word-final l stays plain: atgal /ɐt.ɡɐl/
n (ʲ) (.) + k/ɡ → ŋban.kasbankas /bɐŋ.kɐs/Works across a syllable dot; relies on the ɡ produced in 4.1, so it fails for ASCII g: ungurys /ʊn.gʊ.rʲiːs/

4.3 Stress Sign

RuleExample InputOutputDescription
first syllable with a mark: add ˈ at the startlã.baslãbas /ˈɫaː.bɐs/Pattern looks for acute, grave or tilde before the first dot
later syllable with a mark: dot → ˈran.kàrankà /rɐŋˈkɐ/The syllable dot is consumed by ˈ
no mark anywhereran.karanka /rɐŋ.kɐ/No stress sign; the module does not guess stress

4.4 Diphthongs

Applied in this order, on the text with marks still present. A trailing tilde is swallowed by the rule.

RuleExample InputOutputDescription
iá u → æ̂ʊšʲiáu.rʲėšiáurė /ˈɕæ̂ʊ.rʲeː/
iau(~) → ɛʊkʲiau.lʲėkiaulė /kʲɛʊ.lʲeː/
au(~) → ɐʊ̯tau.tatauta /tɐʊ̯.tɐ/The later au → ɒʊ rule can never fire, because this one runs first
ái → ɐ̂ɪ, ai(~) → ɐɪkai.nakaina /kɐɪ.nɐ/
éi → ɛ̂ɪ, ei(~) → ɛɪei.tʲieiti /ɛɪ.tʲɪ/
áu → â ʊáu.gaáuga /ˈɐ̂ʊ.ɡɐ/The a is turned into ɐ by 4.5
éu → ɛ̂ʊ, eu(~) → ɛʊeu.raseuras /ɛʊ.rɐs/Mostly loanwords
íe → î ə, ie(~) → iəmʲie.stasmiestas /mʲɪə.stɐs/The i is later made ɪ
úo → û ə, uo(~) → uəpuo.daspuodas /pʊə.dɐs/The u is later made ʊ
úi → ʊ̂ɪ, ui(~) → ʊɪkui.naskuinas /kʊɪ.nɐs/
óu → ɔ̂ɪ, úu → ɔ̂ʊ (rare)kóu.kaskóukas /ˈkɔ̂ɪ.kɐs/Defined in the code but not Lithuanian spelling (the first one even ends in ɪ); kúukas /ˈkɔ̂ʊ.kɐs/ gives the second

4.5 Single Vowels

RuleExample InputOutputDescription
a → ɐ; ɐ+acute → âː; ɐ+tilde → aːlá.balába /ˈɫâː.bɐ/Stress/length from a mark
e → ɛ; ɛ+dot → eː; ɛ+ogonek → æːtʲė.vastėvas /tʲeː.ʋɐs/ė and ę
i → ɪ; ɪ+ogonek → iːjįjį /jiː/
y → iːsa.kʲy.tʲisakyti /sɐ.kʲiː.tʲɪ/
u → ʊ; ʊ+macron / ʊ+ogonek → uːrū.kasrūkas /ruː.kɐs/ū and ų
o(~) → oːko.daskodas /koː.dɐs/Every o is long
ʲaː → ʲæː; ʲɐ → ʲɛnʲãrʲ.tʲiniãrti /ˈnʲæːrʲ.tʲɪ/Fronting after a soft consonant
a+ogonek: no rule (bug)ą.sàąsà /ɐ̨ˈsɐ/The vowel is stuck at ɐ with a loose ogonek

4.6 Tone Clean-up

RuleExample InputOutputDescription
ː + acute → circumflex + ːmʲė́.samė́sa /ˈmʲêː.sɐ/"Acute = stressed + circumflex tone"
tilde removedmʲė̃.samė̃sa /ˈmʲeː.sɐ/"Tilde = stressed + long"
grave removedmʲė̀.samė̀sa /ˈmʲeː.sɐ/"Grave = stressed + short" (the short is not actually applied to ė)
[ʲj]a → [ʲj]ejãjã /ˈjeː/Only reaches letters that are still plain a, i.e. the aː created from a tilde

Other Functions

Common Issues & Limitations

Known Transcription Problems

This table shows known issues in the rule-based path (words not in the dictionary). "Correct IPA" is the engine output for a corrected input where one exists, otherwise it is described in words:

Input System Output Correct IPA Cause What to Do
labas labas /ɫɐ.bɐs/ lãbas /ˈɫaː.bɐs/ Unmarked input has no stress or tone information Type the accent mark on the stressed vowel (tilde, acute or grave)
vyras vyras /ʋʲiː.rɐs/ A plain v (no softness mark) before a long i y is treated like a front vowel and softens the previous consonant. Also affects rašytojas /rɐ.ɕiː.toː.jɐs/ Use the dictionary result if the word is in it; otherwise ignore the ʲ/ɕ before y
Kauno Kauno /k.ɐʊ̯.noː/ kauno /kɐʊ̯.noː/ Respell/syllabify only match lowercase; the capital leaves a stray dot Type words in lowercase
džiaugsmas džiaugsmas /ð̌ʲɛʊɡ.smɐs/ þiaugsmas /d͡ʑɛʊɡ.smɐs/ The dž placeholder is never converted and leaks into the output as ð̌ Type þ in place of dž
pats pats /pɐć/ pac /pɐt͡s/ The ts placeholder ć has no IPA mapping and appears raw Type c in place of ts, when the sound is an affricate
gudrus gudrus /gʊ.drʊs/ Same, but with the IPA letter for g (and the proper IPA letters for the v, c and h cases such as vulkanas /vʊɫ.kɐ.nɐs/) A consonant followed by u is matched as a pair that is not in the table, so g, v, c, h stay as plain letters No input workaround; check the dictionary
vaikai vaikai /ʋɐɪ.kɐ.ɪ/ The final ai should be one diphthong, as in the unmarked middle of vaikas /ʋɐɪ.kɐs/ Word-final vowel runs are split into two syllables, so the diphthong rule is skipped (same for vanduo /ʋɐn.dʊ.oː/ and kaip /kɐ.ɪp/) Read the two syllables as one diphthong; some such words may be in the dictionary
ąžuolas ąžuolas /ɐ̨.ʒʊə.ɫɐs/ The first vowel should be a long open a, without the stray ogonek No rule converts a+ogonek (e, i, u have one). Also ją /jɐ̨/ Report or use the dictionary; compare with ã: ãžuolas /ˈaː.ʒʊə.ɫɐs/
atgal atgal /ɐt.ɡɐl/ A dark l (velarized) at the end The ɫ rule needs a character after the l Known limitation of the module
fabrikas fabrikas /f.ɐ.bʲrʲɪ.kɐs/ No dot after f f, h, x and q are not in the syllable-onset set, so a dot follows them (same for hobis /ɣ.oː.bʲɪs/) Loanwords: delete the stray dot yourself

Help pages for other languages of the region in this tool:


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