Latin IPA Transcription - Help
← Back to Latin transcription ↑ All Languages
Table of Contents
- Getting Started
- Quick Reference (Glossary)
- How to Read IPA Symbols
- Latin Pronunciation Guide
- Comprehensive Spelling-to-IPA Mapping
- For Developers
About This Tool
This Latin transcription app generates IPA (International Phonetic Alphabet) transcriptions for Latin text. It uses the Wiktionary Latin Pronunciation Module[1] as its transcription engine, running in the browser via Wasmoon (Lua 5.4 in WebAssembly).
The system supports three historical pronunciations of Latin — Classical, Ecclesiastical, and Vulgar — and produces both phonemic (broad) and phonetic (narrow) transcriptions. A unique feature is automatic macronization: long vowel marks (ā, ē, ī, ō, ū) are added from a predefined dictionary before transcription to ensure accurate vowel length.
Unlike most other languages in this tool, Latin is purely rule-based — no lexicon or stress dictionary is used. All transcriptions are generated deterministically from the spelling and dialect rules.
[1] The Wiktionary module covers Classical Latin phonology as reconstructed by modern scholars, with extensions for Ecclesiastical and Vulgar Latin pronunciation patterns.
Phonemic vs Phonetic
The tool offers two transcription depth levels:
- Phonemic: Shows only the sounds that distinguish meaning. Vowel length is marked (in Classical), but allophonic details (like nasalized vowels, dental articulation, or assimilation) are not shown. Output uses /slashes/.
- Phonetic: A narrow transcription showing how Latin was (or is) actually pronounced. Includes allophonic variation: nasalized vowels before m/n + s/f, dental articulation of t, d, n, voicing assimilation, and dialect-specific vowel quality changes. Output uses [brackets].
Dialects & Limitations
Classical Latin
The reconstructed pronunciation of educated Roman speech (roughly 1st century BCE – 2nd century CE), as determined by modern philological and linguistic evidence.
- Supported: Full vowel length distinction, diphthongs ae, oe, au, eu, labiovelar qu = /kʷ/, v = /u̯/, c, g always velar, aspirates ph, th, ch.
- Not supported: Regional or temporal variation within Classical Latin itself (e.g., early vs late Republican pronunciation).
Ecclesiastical Latin
The pronunciation used in the Roman Catholic Church and Italian-influenced Latin tradition. Reflects the natural evolution of Latin through Romance (especially Italian) phonology.
- Supported: c → /t͡ʃ/ before e, i; g → /d͡ʒ/ before e, i; ae, oe → /eː/; v = /v/; h silent; ti + vowel → /t͡si/; s voicing between vowels.
- Not supported: Variation across different national traditions (French, German, Spanish Ecclesiastical Latin).
Vulgar Latin
The colloquial pronunciation of Late Latin (roughly 3rd–6th century CE), reflecting the transition to Romance languages.
- Supported: Merger of vowel length (long/short distinctions lost), phonetic vowel lengthening under stress, unstressed vowel reduction (/ɔ/ → /o/, /ɛ/ → /e/). When combined with Ecclesiastical mode, the Ecclesiastical consonant changes also apply.
- Edge cases: Vulgar Latin is less well attested than Classical; the module approximates based on known Romance developments.
General Limitations
- Reconstructed pronunciation: No native speakers exist; Classical pronunciation is based on scholarly reconstruction from orthographic, metrical, and comparative evidence.
- Automatic macronization: The macron dictionary is not exhaustive. Words without macrons will be transcribed with default (short) vowel length, which may be incorrect.
- No lexicon: All transcription is rule-based; there is no stress dictionary to override the automatic stress rules.
Automatic Macronization
Latin spelling does not mark vowel length, but vowel length is phonemic in Classical Latin. Before transcription, the system automatically adds macrons (ā, ē, ī, ō, ū) to known words using a predefined dictionary.
How It Works
- Each word is looked up in the macron dictionary (a JSON map from unmacronized to macronized forms).
- If found, the macronized form replaces the original. If not found, the word is used as-is.
- Original capitalization is preserved.
- This preprocessing happens before the IPA rules are applied.
Limitations
- Proper names, rare words, and newly coined terms may not be in the dictionary.
- If a word has ambiguous vowel length (short in some forms, long in others), only one form may be listed.
- In Ecclesiastical and Vulgar modes, macrons are stripped after preprocessing since vowel length is not phonemic in those dialects.
Quick Reference (Glossary)
- Phoneme
- The smallest unit of sound that distinguishes meaning. E.g., /a/ vs /aː/ in Classical Latin distinguish a (short) from ā (long).
- Allophone
- A predictable variant of a phoneme. E.g., [t̪] (dental) is an allophone of /t/ before /d/ in Classical Latin.
- Diphthong
- A gliding vowel sound. Classical Latin has five: /ae̯/, /oe̯/, /ei̯/, /au̯/, /eu̯/. In Ecclesiastical Latin, ae and oe are monophthongized to /e/ (length stripped in Ecclesiastical).
- Labiovelar
- A consonant pronounced with simultaneous velar and lip rounding. In Classical Latin, qu = /kʷ/ and gu (before vowel) = /ɡʷ/.
- Aspirate
- A consonant followed by a burst of breath. Greek-origin consonants ph, th, ch are aspirated in Classical Latin: /pʰ/, /tʰ/, /kʰ/. In Ecclesiastical, they are deaspirated.
- Palatalization
- When a velar consonant shifts to a palatal/alveolar position before front vowels. In Ecclesiastical Latin, c → /t͡ʃ/ and g → /d͡ʒ/ before e, i.
- Macron
- A bar over a vowel (ā, ē, ī, ō, ū) indicating it is long. Used in modern Latin pedagogy and by this tool to mark vowel length.
- Geminate
- A doubled consonant, pronounced longer than a single consonant. E.g., annus has geminate nn. In phonetic transcription, geminates are shown as [nː].
- Syllable Boundary
- A marker (.) showing where syllables divide. E.g., a-mi-cus. Affects stress assignment and consonant cluster behavior.
- Nasalization
- When a vowel is pronounced with airflow through the nose. In Classical phonetic transcription, vowels before word-final m or before ns/nf/ms/mf are nasalized.
- Lenition
- Consonant weakening. In Vulgar Latin, intervocalic stops may weaken (e.g., /ɡ/ → /ɣ/).
- Deaspiration
- Loss of the aspiration feature from a consonant. In Ecclesiastical Latin, Greek-origin aspirates ph, th, ch lose their aspiration: /pʰ/ → /p/, etc.
- Monophthongization
- When a diphthong (two-part vowel) becomes a single vowel. In Ecclesiastical Latin, ae and oe → /e/ (length mark stripped).
How to Read IPA Symbols
This section lists the IPA symbols used in Latin transcriptions, with examples from Latin words.
Vowel Symbols
Classical Latin distinguishes 10 vowels (5 short + 5 long). Ecclesiastical and Vulgar do not distinguish length.
| IPA | Example | English Approximation | Notes |
|---|---|---|---|
| /a/ | aqua | "father" (short) | Short open central vowel |
| /aː/ | ācer | "father" (longer) | Long open central vowel (Classical only) |
| /ɛ/ | pes | "bed" | Short open-mid front vowel (allophonic in Classical phonetic) |
| /e/ | deus | "café" | Short close-mid front vowel (phonemic); tense allophone before vowels |
| /eː/ | ēst | "café" (longer) | Long close-mid front vowel |
| /ɪ/ | fidēs | "bit" | Short near-close front vowel (allophonic in Classical phonetic) |
| /i/ | vir | "see" (short) | Short close front vowel (phonemic) |
| /iː/ | vīcus | "see" | Long close front vowel |
| /ɔ/ | nox | "caught" | Short open-mid back vowel (allophonic in Classical phonetic) |
| /o/ | rosa | "go" (without glide) | Short close-mid back vowel (phonemic) |
| /oː/ | rōsa | "go" (longer) | Long close-mid back vowel |
| /ʊ/ | sum | "put" | Short near-close back vowel (allophonic in Classical phonetic) |
| /u/ | curro | "flute" (short) | Short close back vowel (phonemic) |
| /uː/ | mūrus | "flute" | Long close back vowel |
| /y/ | lyra | French "tu" (rounded i) | Close front rounded vowel (Greek upsilon, Classical only) |
| /yː/ | ȳmnus | French "tu" (longer) | Long close front rounded vowel (Classical only; merges with /iː/ in Ecclesiastical) |
Consonant Symbols
| IPA | Example | English Approximation | Notes |
|---|---|---|---|
| /p/ | pons | "pen" | Voiceless bilabial stop |
| /b/ | bonus | "bad" | Voiced bilabial stop |
| /t/ | tellus | "top" | Voiceless dental stop (dental before d in phonetic) |
| /d/ | deus | "dog" | Voiced dental stop |
| /k/ | casa | "cat" | Voiceless velar stop (always, in Classical) |
| /ɡ/ | gallus | "go" | Voiced velar stop |
| /kʷ/ | quod | "queen" | Labiovelar stop (Classical only) |
| /f/ | fīlius | "far" | Voiceless labiodental fricative |
| /s/ | sal | "see" | Voiceless alveolar fricative (partially voiced [s̬] between vowels in Ecclesiastical phonetic) |
| /z/ | zōna | "zoo" | Voiced alveolar fricative (Greek zeta) |
| /ʃ/ | sciō | "she" | Voiceless postalveolar fricative (Ecclesiastical: sc before e/i) |
| /t͡ʃ/ | centum | "church" | Voiceless postalveolar affricate (Ecclesiastical: c before e/i) |
| /d͡ʒ/ | genus | "judge" | Voiced postalveolar affricate (Ecclesiastical: g before e/i) |
| /t͡s/ | ratio | "cats" | Voiceless alveolar affricate (Ecclesiastical: ti + vowel) |
| /d͡z/ | zōna | "adze" | Voiced alveolar affricate (Ecclesiastical: single z) |
| /m/ | māter | "man" | Bilabial nasal |
| /n/ | nōmen | "no" | Alveolar nasal |
| /ɲɲ/ | agnus | "canyon" (geminate) | Geminate palatal nasal (gn in Ecclesiastical) |
| /ŋ/ | ancora | "sing" | Velar nasal (allophonic, before k/g in phonetic) |
| /l/ | lūna | "let" | Lateral approximant (velarized /ɫ̪/ in Classical phonetic) |
| /r/ | rēx | Spanish "rr" (rolled) | Alveolar trill |
| /u̯/ | vir | "wet" | Labial-velar approximant (Classical: v, written as /u̯/ in module output) |
| /v/ | vir | "very" | Labiodental fricative (Ecclesiastical: v) |
| /j/ | iam | "yes" | Palatal approximant (from i before vowel) |
| /h/ | hortus | "hat" | Voiceless glottal fricative (Classical only; silent in Ecclesiastical) |
| /pʰ/ | philosophia | "pin" + breath | Aspirated bilabial stop (Classical only; → /f/ in Ecclesiastical) |
| /tʰ/ | theātrum | "top" + breath | Aspirated dental stop (Classical only; → /t/ in Ecclesiastical) |
| /kʰ/ | chorus | "cat" + breath | Aspirated velar stop (Classical only; → /k/ in Ecclesiastical) |
Diacritical Marks
| Symbol | Name | Meaning | Example |
|---|---|---|---|
| ˈ | Primary stress | Main emphasis in word | /ˈa.mi.kus/ |
| ː | Length mark | Vowel or consonant is long | /aː/ vs /a/ |
| ˑ | Half-long | Slightly lengthened | /ɛ̃ˑ/ — nasalized half-long vowel |
| ̃ | Nasalized | Vowel with nasal airflow | /ɛ̃/ — before word-final m |
| ̪ | Dental | Consonant is dental (not alveolar) | /t̪/, /d̪/ |
| ̯ | Non-syllabic | Glide (part of diphthong) | /ae̯/, /au̯/ |
| ʰ | Aspirated | Consonant + breath burst | /pʰ/, /tʰ/, /kʰ/ |
| ͡ | Tie bar | Affricate (single unit) | /t͡ʃ/, /d͡ʒ/ |
Latin Pronunciation Guide
Vowel Length & Quality
Classical Latin has 5 vowel qualities, each with a short and long version. Vowel length is phonemic — it distinguishes meaning. Ecclesiastical and Vulgar Latin do not distinguish vowel length.
Short Vowels (Classical)
- a /a/ — open central, like "father": aqua /ˈa.kʷa/
- e /e/ — close-mid front, like "café": deus /ˈde.us/
- i /i/ — close front, like "see" (short): vir /u̯ir/
- o /o/ — close-mid back, like "go" (without glide): rosa /ˈro.sa/
- u /u/ — close back, like "flute" (short): curro /ˈkur.ro/
Long Vowels (Classical)
Long vowels are written with a macron (ā, ē, ī, ō, ū) in this tool. They are distinct phonemes:
- ā /aː/ — ācer (sharp) vs. acer (maple)
- ē /eː/ — ēst (eats) vs. est (is)
- ī /iː/ — vīcus (village) vs. vicus
- ō /oː/ — rōsa (rose) vs. rosa (dew)
- ū /uː/ — mūrus (wall) vs. murus
Allophonic Variation (Classical Phonetic)
In narrow phonetic transcription, short vowels have lax allophones in closed syllables:
| Phoneme | Tense (before vowel) | Lax (elsewhere) | Example |
|---|---|---|---|
| /e/ | [e] | [ɛ] | deus [ˈde.us] vs pes [pɛs] |
| /i/ | [i] | [ɪ] | fidēs [ˈfɪ.deːs] |
| /o/ | [o] | [ɔ] | rosa [ˈrɔ.sa] |
| /u/ | [u] | [ʊ] | sum [sʊ̃ˑ] |
Ecclesiastical Vowel Changes
- No length distinction: All vowel length marks are removed.
- Stressed vowels lengthened: The stressed vowel gets phonetically lengthened.
- Open e/o under stress: /e/ → [ɛ], /o/ → [ɔ] in stressed syllables.
- y → i: Greek upsilon merges with i.
- Short vowel before yod: A short vowel before j (consonantal i) gets lengthened: ai → āi, ei → ēi, etc. Greek y + j → ȳ (yod absorbed).
Diphthongs
Classical Latin has five diphthongs. In Ecclesiastical Latin, ae and oe are monophthongized to /e/ (length mark stripped).
| Spelling | Classical IPA | Ecclesiastical IPA | Examples |
|---|---|---|---|
| ae | /ae̯/ | /e/ | aeternus, Caesar |
| oe | /oe̯/ | /e/ | poena, coelum |
| au | /au̯/ | /au̯/ | aurum, causa |
| eu | /eu̯/ | /eu̯/ | eurus (rare in native words) |
| ei | /e.i/ (always hiatus, never diphthong) | deinde /deˈin.de/ | |
Hiatus vs Diphthong
Some vowel sequences that look like diphthongs are actually two separate syllables (hiatus):
- aë, oë (with diaeresis) — forced hiatus: aë → /a.e/
- e + u/m at word end — hiatus: deum → /ˈde.um/, eum → /ˈe.um/
- ei — forced hiatus: deinde → /deˈin.de/
- u between vowels — becomes /u̯/ (consonantal), not hiatus
Consonant Rules
C and G Before Front Vowels (Ecclesiastical)
In Ecclesiastical Latin, c and g are palatalized before the front vowels e, i (including long variants ē, ī and the diphthong ae/oe which become /e/):
- c → /t͡ʃ/ before e, ē, i, ī, ae, oe: centum /ˈt͡ʃen.tum/, cīvis /ˈt͡ʃi.vis/
- g → /d͡ʒ/ before e, ē, i, ī, ae, oe: genus /ˈd͡ʒe.nus/, gīgās /ˈd͡ʒi.ɡas/
- sc → /ʃ/ before e, i: sciō /ˈʃi.o/
- gn → /ɲɲ/: agnus /ˈaɲ.ɲus/
In Classical Latin, c and g are always velar (/k/, /ɡ/) regardless of the following vowel.
T + I + Vowel (Ecclesiastical)
In Ecclesiastical Latin, ti before a vowel becomes /t͡si/:
- ratio → /ˈrat.t͡si.o/
- nātiō → /ˈnat.t͡si.o/
Exception: after s or t, no palatalization: ostium stays as /ˈos.ti.um/.
V in Classical vs Ecclesiastical
- Classical: v = /u̯/ (non-syllabic labial-velar approximant): vir /u̯ir/, vinum /ˈu̯i.num/
- Ecclesiastical: v = /v/ (labiodental fricative): vir /vir/, vinum /ˈvi.num/
H (Classical Only)
In Classical Latin, h is pronounced /h/ (a voiceless glottal fricative). In Ecclesiastical Latin, h is completely silent.
Aspirates (Greek Origin)
| Spelling | Classical | Ecclesiastical | Example |
|---|---|---|---|
| ph | /pʰ/ | /f/ | philosophia |
| th | /tʰ/ | /t/ | theātrum |
| ch | /kʰ/ | /k/ | chorus |
Z (Greek Zeta)
- Classical: z = /z/, geminate zz = /zz/ (intervocalic z is automatically doubled for correct syllable weight)
- Ecclesiastical: z = /d͡z/, zz = /d.d͡z/
Stress Patterns
Latin stress follows the penultimate rule:
The Penultimate Rule
- Polysyllabic words (3+ syllables): Stress falls on the penultimate (second-to-last)
syllable if it is "heavy" (ends in a long vowel or consonant coda). If the penultimate is
"light" (ends in a short vowel), stress falls on the antepenultimate (third-to-last) syllable.
- a-mi-cus → stress on a (penult mi is light): /ˈa.mi.kus/
- com-pu-to → stress on com (penult pu is light): /ˈkom.pu.to/
- in-so-les → stress on in (penult so is light): /ˈin.so.les/
- aeter-nus → stress on ter (penult has consonant coda = heavy): /ae̯ˈter.nus/
- Disyllabic words (2 syllables): Stress always on the first syllable (penultimate = first): pa-ter → /ˈpa.ter/
- Monosyllabic words: No stress marker displayed (but internally marked for phonetic rules).
Prefixes
Some prefixes (ab-, ad-, circum-, con-, dis-, ex-, in-, inter-, ob-, per-, sub-, subter-, super-, trans-) cause the following i + vowel to become consonantal j. The stress rules still apply to the full word.
Classical vs Ecclesiastical — Key Differences
| Feature | Classical | Ecclesiastical |
|---|---|---|
| c before e, i | /k/ | /t͡ʃ/ |
| g before e, i | /ɡ/ | /d͡ʒ/ |
| v | /u̯/ | /v/ |
| h | /h/ | silent |
| ae | /ae̯/ | /e/ |
| oe | /oe̯/ | /e/ |
| ph, th, ch | /pʰ, tʰ, kʰ/ | /f, t, k/ |
| ti + vowel | /ti/ | /t͡si/ |
| gn | /ɡn/ | /ɲɲ/ |
| sc before e, i | /sk/ | /ʃ/ |
| z | /z/ | /d͡z/ |
| s between vowels | /s/ | /s/ (→ [s̬] phonetically) |
| Vowel length | phonemic | not distinguished |
| qu | /kʷ/ | /kw/ |
| y / ȳ | /y, yː/ | /i, iː/ |
Greek Loanwords
Latin borrowed many words from Greek, and the module handles several Greek-specific features:
- Aspirates: ph, th, ch represent Greek φ, θ, χ. In Classical Latin they are aspirated stops; in Ecclesiastical they are deaspirated.
- Upsilon: Greek υ is written as y in Latin. Classical: /y/; Ecclesiastical: /i/.
- Zeta: Greek ζ is written as z. Intervocalic z is doubled to zz for correct syllable weight (Greek zeta was likely a geminate).
- Kappa: In Ecclesiastical, Greek k before front vowels is protected from palatalization (stays /k/, not /t͡ʃ/).
- Rho: rh = /r/ (same as single r; the h is historical).
Comprehensive Spelling-to-IPA Mapping
Vowels
| Letter | IPA (Short) | IPA (Long) | Example |
|---|---|---|---|
| a | /a/ | /aː/ | aqua / aqua (long: ācer) |
| e | /e/ | /eː/ | deus / ēst |
| i | /i/ | /iː/ | vir / vīcus |
| o | /o/ | /oː/ | rosa / rōsa |
| u | /u/ | /uː/ | curro / mūrus |
| y | /y/ (Class.) / /i/ (Eccl.) | /yː/ (Class.) / /iː/ (Eccl.) | lyra / ȳmnus |
Diphthongs
| Spelling | Classical | Ecclesiastical | Example |
|---|---|---|---|
| ae | /ae̯/ | /e/ | aeternus, Caesar |
| oe | /oe̯/ | /e/ | poena, coelum |
| au | /au̯/ | /au̯/ | aurum, causa |
| eu | /eu̯/ | /eu̯/ | eurus |
| ei | /e.i/ (always hiatus) | deinde /deˈin.de/ | |
Consonants
| Spelling | IPA | Example |
|---|---|---|
| b | /b/ | bonus |
| c | /k/ | casa (always velar in Classical) |
| d | /d/ | deus |
| f | /f/ | fīlius |
| g | /ɡ/ | gallus (always velar in Classical) |
| h | /h/ | hortus (silent in Ecclesiastical) |
| k | /k/ | kalendae (rare, mostly abbreviations) |
| l | /l/ | lūna |
| m | /m/ | māter |
| n | /n/ | nōmen |
| p | /p/ | pons |
| qu | /kʷ/ (Class.) / /kw/ (Eccl.) | quod |
| r | /r/ | rēx |
| s | /s/ | sal |
| t | /t/ | tellus |
| v | /u̯/ (Class.) / /v/ (Eccl.) | vir |
| x | /ks/ | nox |
| z | /z/ (Class.) / /d͡z/ (Eccl.) | zōna |
Context-Dependent Rules
| Spelling | Condition | Classical IPA | Ecclesiastical IPA | Example |
|---|---|---|---|---|
| c | before e, ē, i, ī | /k/ | /t͡ʃ/ | centum: /k/ vs /t͡ʃ/ |
| g | before e, ē, i, ī | /ɡ/ | /d͡ʒ/ | genus: /ɡ/ vs /d͡ʒ/ |
| sc | before e, i | /sk/ | /ʃ/ | sciō: /sk/ vs /ʃ/ |
| gn | anywhere | /ɡn/ | /ɲɲ/ | agnus: /ɡn/ vs /ɲɲ/ |
| ti | before vowel (not after s/t) | /ti/ | /t͡si/ | ratio: /ti/ vs /t͡si/ |
| ph | anywhere | /pʰ/ | /f/ | philosophia |
| th | anywhere | /tʰ/ | /t/ | theātrum |
| ch | anywhere | /kʰ/ | /k/ | chorus |
| ngu | before vowel | /ŋɡʷ/ | /ŋɡw/ | sanguis |
Implementation Details (for Developers)
The Latin transcription engine is implemented as a Lua module (la-pron_wasm.lua), based on the
Wiktionary Latin Pronunciation Module. It runs in the browser via
Wasmoon (Lua 5.4 WebAssembly).
Processing Pipeline
Text goes through the following stages:
1. Macronization (JavaScript Preprocessing)
Before the Lua module is invoked, the JavaScript layer calls macronize() which looks up each word
in macrons.json and adds long vowel marks (ā, ē, ī, ō, ū) to known words.
2. Canonicalization
- Text is lowercased.
- Punctuation is stripped (except
;which triggers hiatus variants). - Ligatures expanded:
æ→ae,œ→oe. - Character validation — only
a-z, macron/breve vowels,ë, punctuation, apostrophe, underscore, and space are allowed.
3. Dual-Length Detection
If the input contains macron-breve sequences (e.g., ā̆), two variants are generated:
one with the long vowel and one with the short vowel.
4. Orthographic Normalization (per word)
| Step | Rule | Example |
|---|---|---|
| w → v | Normalize to v | w → v |
| qu → qv | Normalize labiovelar | quod → qvod |
| i + vowel → j | Word-initial or after prefix | iam → jam |
| u + vowel → v | Word-initial | uult → vult |
| Intervocalic i/u | u → v; i after long vowel → j; i after short vowel → jj | maius → majus (long a); peius → pejjus (short e) |
| v → u | Syllable-finally or word-finally | sylv → sylu |
| z → zz | Between vowels (for syllable weight) | zōna → zzōna |
| aë, oë | Forced hiatus | aë → a.e |
| eu/em at word end | Forced hiatus | deum → ˈde.um |
| ei → e.i | Forced hiatus | deinde → de.inde |
5. IPA Conversion
Each letter/multigraph is converted to its IPA equivalent using dialect-specific lookup tables. In Ecclesiastical mode, additional rules apply: palatalization of c/g, ti+vowel → tsi, z → dz, deaspiration, gn → ɲ.
6. Syllabification
Words are split into syllables using onset/coda validity tables. Valid onsets include single consonants, obstruent+liquid clusters, and s+obstruent(+liquid) clusters. Valid codas include single consonants and clusters like s+stop, l+stop, r+stop, n+stop.
7. Stress Assignment
The Latin penultimate rule is applied: stress falls on the penultimate syllable if it is heavy (long vowel or consonant coda), otherwise on the antepenultimate.
8. Post-Processing
| Step | Condition | Effect |
|---|---|---|
| Strip vowel length | Ecclesiastical/Vulgar | All ː removed |
| Lax vowel allophones | Classical phonetic | e→ɛ, i→ɪ, o→ɔ, u→ʊ in closed syllables |
| Lengthen stressed vowel | Ecclesiastical/Vulgar phonetic | Stressed vowel gets ː |
| Open e/o under stress | Ecclesiastical phonetic | e→ɛ, o→ɔ in stressed syllable |
| Atonic vowel merger | Vulgar (phonetic) | ɔ→o, ɛ→e in unstressed syllables (applies to lax allophones from Classical-style phonetic rules) |
| Nasalized vowels | Classical phonetic | Vowel + word-final m → nasalized; vowel before ns/nf → nasalized |
| Voicing assimilation | Classical phonetic | Regressive voicing in clusters |
| S voicing | Ecclesiastical phonetic | Partial voicing between vowels ([s̬]); full voicing before voiced consonants ([z]) |
| Dental articulation | Phonetic (both dialects) | t, d unconditionally dental (/t̪, d̪/); n dental before t/d |
| Geminate → long | Phonetic | ss → sː, tt → tː, etc. |
Common Issues & Limitations
Known Transcription Problems
| Input | Issue | Cause | What to Do |
|---|---|---|---|
| Words without macrons | Incorrect vowel length | Word not in macron dictionary | Add macrons manually to input text |
| Rare/proper names | Approximate pronunciation | Not in macron dictionary; rule-based fallback may not know vowel length | Check classical dictionaries for vowel quantities |
| Ambiguous i/j | Wrong consonant/vowel choice | The i→j rules are heuristic and may misidentify consonantal i | Use underscore to force hiatus: a_ius |
| Compound words | Wrong stress placement | Syllabification may not handle all compound boundaries correctly | Add explicit stress with apostrophe: aˈmicus |
| Hiatus vs diphthong | Wrong syllable count | Some vowel sequences are ambiguous (e.g., deus = 2 or 3 syllables?) | Use diaeresis or semicolon: de;us |
General Limitations
- Purely rule-based: No lexicon or stress dictionary. All output is deterministic from spelling.
- Macron dictionary not exhaustive: Unmacronized words get default (short) vowel length.
- Classical reconstruction: No native speakers; pronunciation is based on scholarly consensus.
- Ecclesiastical variation: Only the Italian-influenced tradition is supported; French, German, and Spanish Ecclesiastical Latin have different pronunciations.
- Vulgar Latin approximation: Less well attested than Classical; the module approximates based on known Romance developments.
For technical issues or suggestions, please visit our GitHub repository.