Chapimenge/amharic-gemination-lexicon
Amharic Gemination Lexicon v3 Which consonants are doubled in each of 86,022 Amharic words, for every reading of the word, and where each doubling comes from. Built by Dataset.ET with the HornMorpho morphological analyzer, corrected with rules that native listening, Armbruster's hand-marked verb tables and recorded speech agree on. Word types 86,022 (856,734 corpus tokens) Analyzed by HornMorpho 56,964 types, 84.0% of tokens Words with a geminate in the top… See the full description on the dataset page: https://huggingface.co/datasets/Chapimenge/amharic-gemination-lexicon.
Amharic Gemination Lexicon v3
Which consonants are doubled in each of 86,022 Amharic words, for every reading of the word, and where each doubling comes from. Built by Dataset.ET with the HornMorpho morphological analyzer, corrected with rules that native listening, Armbruster's hand-marked verb tables and recorded speech agree on.
What changed in v3
v2 was HornMorpho's gemination, read faithfully. v3 corrects it where three independent kinds of evidence agree: a native Amharic speaker's judgements (letter taps, listening to a voice, and an audio A/B check), Armbruster's tables, and duration in FLEURS read speech.
Native taps. For 19 words a native speaker tapped the held letters in a sentence (data/native_taps.json); each tap becomes that word's first reading and the row is flagged native_checked. Seven differ from the rules' output: ጠቅላላ, ማስተማር, ያለምንም, የገና, መጠጣት, እየተጠቀሙበት, ማጣጣም. An audio A/B check later confirmed መጠጣት (ጣ held). Taps that go beyond the textbook (ቅ in ጠቅላላ, ተ in ማስተማር and እየተጠቀሙበት, the final ም of ያለምንም) are not yet confirmed by audio: a letter can feel strong in text without being held.
Where the speaker and the textbook disagree, v3 follows the speaker. The biggest case is the relative ም: HornMorpho, grammars and Armbruster-style transcription double it, but it measures shorter than a single ም in read speech and the native listener hears no hold.
In total v3 changes the first reading of 5,556 word types (3.8% of tokens). Against Armbruster, 16 forms go from no prediction to exact and one (መጠጣት, where the native tap holds both ጠ and ጣ) goes from exact to partial.
What gemination is, and why it matters for speech
Amharic consonants come short or long, and the difference changes meaning. ገና is gäna "still, yet" or gänna "Christmas"; ዋና is wana "swimming" or wanna "main"; አለ is alä "he said" or allä "there is". Gemination also carries grammar: ይገባል is active yɨgäbal "he enters" or passive yɨggäbbal "it is proper", and only the doubling tells them apart.
Ge'ez script does not write it. The combining mark U+135F (፟) exists but is almost never used, so neither a TTS system reading Amharic text nor an ASR system writing it gets any signal about length from the spelling. A TTS voice has to guess from context; an ASR model has to map a long and a short consonant to the same letters.
How much this costs has been measured for Ethiopian languages that do write length. Ethio-ASR (Abdullah et al., 2026, section 6.4) found that normalising vowel length and gemination together lowers micro-average WER by about 10 to 13 points, 35 to 40% relative, across Oromo, Sidaama and Wolaytta, where length is spelled with doubled letters. The same test cannot be run for Amharic, because the transcripts carry no gemination to normalise. A lexicon like this one is what makes the Amharic question measurable.
Files
Rows are sorted by corpus frequency, most frequent first.
JSONL fields
Positions are 0-based indices into the word's Unicode characters, one Ge'ez fidel per index. The "top" reading is the first one: a native tap if there is one, then the v3 ranking rule, then the reading whose root HornMorpho rates most frequent.
Each entry in readings:
sources values:
Sources are read from the seg alone. On 3,558 geminates where HornMorpho's grammatical features were also available, this agrees with a feature-based attribution 95.7% of the time. The main confusion is root versus reduplication for roots whose second half repeats the first (ግልግል, ስብስብ).
CSV columns
word, frequency, analyzed, n_readings, n_patterns, ambiguous, alignment_failed, no_geminate_any_reading as above (booleans as 0/1). top_positions, top_letters, top_sources are space-separated values for the top reading, and top_marked its marked form. all_positions, all_sources, all_marked, all_root_frequency and all_pos_tags cover every pattern: patterns are separated by |, values inside a pattern by a space, in the same order as readings. An empty field between two | is a pattern with no geminate. The segs are only in the JSONL.
How the lexicon was built
- Vocabulary. Every word type in Dataset.ET's curated Amharic sentence corpus (see Coverage).
- Analysis. Each word goes through HornMorpho 5.3.6 (Michael Gasser) as
hm.anal('a', word, degem=False). HornMorpho computes gemination while it analyses. It uses/internally to mark the character after it as doubled. The defaultdegem=Truestrips those marks;degem=Falsekeeps them in thesegstring. - Alignment. The seg is a morpheme sequence, not a copy of the word: vowels merge across boundaries (ቀም + ኣል gives ቀማል), palatalisation changes letters (ን + ኢ gives ኝ), and glottal letters of vowel-initial suffixes disappear.
gemination.pyaligns seg letters to the word by consonant series, folding labialised, palatal and homophone spellings, and moves each/onto the surface character it aligned with. Of 1,939 readings checked, one failed to align; across the vocabulary 118 types are flagged. - Word-final rule. A geminate on the last letter is dropped only when it comes from a suffix and no vowel follows, which is the auxiliary -all of ይገኛል. It is not audible before a pause and Armbruster never marks it. Keeping it would drop exact accuracy on the top reading from 96.8% to 78.7% (frequency-weighted). Vowel-final suffixes and stem-final geminates stay.
- Patterns. Readings that double the same positions are merged, and patterns are ordered by HornMorpho's root frequency.
- v3 rules.
causative_glottalandrelative_m_lightrewrite the seg before alignment;relative_existreorders the patterns (see What changed in v3). - Native taps go first for the 19 words in
data/native_taps.json.
The v1 to v2 story. v1 of this lexicon read HornMorpho's +gemN feature instead of the seg. That feature only describes the root's own template, so v1 saw no gemination created by prefixes or suffixes, above all the passive t- merging into the first root consonant, and it could never find two geminates in one word. In reduplicated stems it also named the wrong letter, because N counts template slots, not root consonants (ገለባበጠ has +gem4, which points at ጥ; the doubled letter is በ). v2 reads every / in the seg. Counted over readings of 1,880 checked forms, the geminates come from: root template 1,687, t-prefix 1,061, suffixes 605, lexicon entries 130, reduplication 49.
Accuracy against Armbruster
Reference: the gemination-marked verb tables from C. H. Armbruster, Initia Amharica (Cambridge, 1908 to 1920), digitised in geezorg/data as amharic/verbs/ArmbrusterVerbs-Geminated-20081118.txt (3,409 forms carrying U+135F). Test set: the 536 most frequent Armbruster forms that occur in the source corpus. Unless noted, the prediction is the union over all readings and the reference the union over all of Armbruster's variants of the spelling, compared by consonant, and a word counts as exact only if the sets are equal.
Other views of the same set, frequency-weighted exact:
The one v3 row that drops is by position: it is the native tap on መጠጣት, a frequent word, against Armbruster's two verbs that each hold one consonant. Armbruster has no relative forms, so relative_m_light and relative_exist do not appear in these tables; their evidence is the native listener and the duration check.
On all 587 Armbruster forms with two or more marks in one variant, exact rose from 6.7% to 83.4%, and wholly wrong predictions fell from 41 to 0.
The 1-geminate row is slightly lower in v2 because v2 judges about 100 more words (words v1 left silent), and because homographs now produce two real patterns whose union matches no single Armbruster form. The top-reading and any-reading views do not have that penalty, and v2 is ahead in every row.
Acoustic validation
Do the consonants this lexicon calls doubled actually last longer in speech?
Data. FLEURS Amharic (train, dev and test; read speech with human transcripts). 2,847 of 3,902 utterances could be aligned; the rest contain digits or Latin script. The bottom 20% by alignment score were dropped, leaving 2,277.
Measurement. Forced alignment with Samuael/asr-amharic-phoneme-based-39-2 (wav2vec2 CTC phone recognizer, 20 ms frames). The alignment target never encodes gemination: a doubled consonant is one phone. Duration is the interval from the onset of the preceding vowel to the onset of the following vowel, divided by the utterance's mean onset interval to remove speaking rate. Tokens are word-medial consonants between two vowels, with the preceding vowel from a non-sixth-order letter, and the consonant occurring once in its word. Geminates come from words with exactly one gemination pattern; singletons are consonants in words whose single pattern has no geminate. The ratio comes from OLS on log duration with consonant fixed effects and standard errors clustered by word.
Rerun on v2 labels. The first run used v1 labels. Its singleton control still held geminates v1 could not see: 60 control tokens are doubled in Armbruster's own marks, against 4 with v2 labels. Same alignments, same token rules, same model; only the labels changed.
With v2 labels, v2 by source of the geminate:
What this shows:
- The labels were holding the first number down. The v1 study read its flat result for stops as the aligner being blind to silent closures. With cleaner labels stops lengthen by 10%, as much as any class. Much of the v1 null came from doubled stops sitting in the singleton control.
- Every morphological source except one lengthens, including the t-prefix and suffix geminates v1 could not see.
- The relative-prefix geminate does not. The doubled m of relative forms such as የሚ- measures shorter than an ordinary single m (all 584 tokens are ም or ይ). In careful read speech this doubling is either not produced or not visible to this aligner. See Limitations.
- Words with two or more geminates show a larger effect (1.122) than single-geminate words (1.060), and words the lexicon calls ambiguous show none, which supports filtering on
ambiguous. - The result does not depend on the score filter: dropping 0% to 50% of utterances gives 1.081 to 1.089.
- Independent of HornMorpho, geminates marked by Armbruster measure 1.101 (1.038 to 1.168) against his undoubled consonants in the same words.
v3 duration check
Same alignments and token rules; the singleton control is consonants in settled words with no geminate in either v2 or v3 (validation/results_v3.json).
Read these ratios as lower bounds. A CTC recognizer places narrow spikes, not segments. When the audio around real singleton consonants was stretched by 2x, this pipeline read back 1.74x, and by 1.5x it read 1.37x. Lab studies of geminating languages typically report 1.5x to 2x. No absolute durations from this study should be quoted as phonetic facts.
validation/acoustic_v2.py reproduces every number above from validation/align_bare.jsonl.gz, the lexicon, the FLEURS transcripts and the Armbruster file. It needs no GPU.
Known limitations
- Active and passive homographs need context. ይገባል is yɨgäbal or yɨggäbbal; መለወጥ is mäläwwäṭ or mälläwäṭ. HornMorpho's root frequency often ties or picks the wrong one. 8,526 types (12.3% of tokens) are flagged
ambiguous; the top reading is a guess for them. This is most of the gap between 96.8% (top reading) and 98.4% (any reading). - No geminate in any reading is not proof of none. 21,784 analyzed types have no geminate in any reading. Most really have none (እና, ላይ), but some are analyzer gaps: ተስፋ, ጠብቆ and the infinitive መከተል get readings without the doubling Armbruster marks (v3 fixed ማሳደግ and its class). Among the 536 test forms, 30 are silent this way.
- Bare ያለ needs context. It is relative "that is" (ላይ ያለ, holds ለ), privative "without" (ያለ ምንም, light) or part of a compound with አለ "say" (ከፍ ያለ, ቀለል ያለ, light). v3 leaves it light. The same compounds make
relative_existover-hold forms such as ከፍ ያለውን. - The native evidence is one listener. The taps, the voice notes and the A/B check come from one native speaker. The rules are also backed by Armbruster or by speech from many FLEURS speakers; the word taps are not.
- Unanalyzed words are unknown. 29,058 types (16.0% of tokens), mostly names, loanwords and misspellings, have
analyzed: falseand empty patterns. - Some double geminates are still missed. For a-stem passives HornMorpho's seg carries only one: ይታሽ is yɨttašš but gets only the t; ይታያል (yɨttayyal) misses the y. Forms with three or more geminates (for example የሚገኙ yämmiggäññu) are too rare in Armbruster to measure.
- Prefix gemination. v3 removes the relative yä-m- geminate (see What changed in v3); it may still be heard in slow citation forms. The t-prefix geminate after the infinitive መ- and after subject prefixes is well supported by both Armbruster and the audio. The word-final auxiliary -all is dropped by design; before a further vowel (-allu) it is kept, which Armbruster barely covers.
- Armbruster has errors. 17 variants put the mark on the subject prefix instead of the next letter (ይ፟ሰማ፟), some marks sit one letter off (ተቀምጦ፟ for täqämmɨṭo), and several forms mark only one of two real geminates (ይጫ፟ወታል). All of these count against the lexicon, so the accuracy figures are conservative. Armbruster describes early twentieth century Amharic; where it disagrees with a modern native speaker, trust the speaker.
- Source labels are heuristic (95.7% agreement, see above).
- Domain. The vocabulary comes from mostly news-style prose, so it leans formal, and the acoustic check is on read speech. Conversational speech likely reduces some geminates.
- Word level only. Gemination that depends on the neighbouring word or on clitics written separately is not represented.
Coverage of the source corpus
The vocabulary is every word type in Dataset.ET's curated Amharic sentence corpus: 48,131 sentences, 856,734 tokens, 86,022 types. Dataset.ET is an open speech corpus for Ethiopian languages; contributors record these sentences through a Telegram bot and peer-validate each other's recordings. The text is mostly news-style prose.
Geminates per word in the top reading, analyzed types: none 25,251; one 22,521; two 8,164; three 967; four 58; five 3.
Sources of top-reading geminates, weighted by corpus frequency: root 83,622; lexicon 79,252; t-prefix 52,434; suffix 52,407; reduplication 6,708; prefix 2,612; native 1,737.
On FLEURS Amharic transcripts (65,305 tokens), with v2 labels, 45.9% of tokens are in words settled with no geminate, 16.2% in words settled with a geminate (6.8% with v1), 11.3% ambiguous, 4.4% unanalyzed, and 22.1% not in the lexicon.
How to use it
import json
lex = {}
with open("data/gemination_lexicon_v3.jsonl", encoding="utf-8") as f:
for line in f:
r = json.loads(line)
lex[r["word"]] = r
e = lex["ይገኛል"]
e["marked"], e["geminates"], e["readings"][0]["sources"]
# ('ይገ፟ኛ፟ል', [1, 2], ['t-prefix', 'root'])For words not in the lexicon, run the extractor (code/INSTALL.md): python code/gemination.py <word>.
TTS. Put gemination into the front end, before the model sees the input. With a phoneme front end, lengthen or double the consonant at each position in geminates (for example IPA ɡː); with a character front end, insert U+135F from marked and make sure the model's vocabulary has a symbol for it. Use the top reading only when ambiguous is false, or pick the reading from sentence context (a part-of-speech tagger helps with active/passive pairs). Leave analyzed: false words unmarked rather than assuming singletons, or train a character-level fallback on the analyzed words. A voice trained on doubled-consonant input should be checked by a native listener on minimal pairs such as ገና and ዋና.
ASR. The lexicon gives geminate-aware pronunciations for HMM/GMM aligners such as Montreal Forced Aligner (add long consonant phones), labels for measuring how often a recognizer confuses long and short consonants, and a way to build length-aware phone targets for auxiliary losses. We have not yet measured an ASR gain from it; the Ethio-ASR result above is the reason to try.
Citation
@misc{datasetet_amharic_gemination_2026,
title = {Amharic Gemination Lexicon v3},
author = {{Dataset.ET}},
year = {2026},
howpublished = {Hugging Face dataset},
note = {86,022 word types; built with HornMorpho 5.3.6, native-validated rules}
}Please also cite the tools and references it rests on:
@inproceedings{gasser2011hornmorpho,
title = {HornMorpho: a system for morphological processing of Amharic, Oromo, and Tigrinya},
author = {Gasser, Michael},
booktitle = {Conference on Human Language Technology for Development},
address = {Alexandria, Egypt},
year = {2011}
}
@book{armbruster1908initia,
title = {Initia Amharica: An Introduction to Spoken Amharic},
author = {Armbruster, Charles Hubert},
publisher = {Cambridge University Press},
year = {1908}
}
@inproceedings{conneau2023fleurs,
title = {FLEURS: Few-shot Learning Evaluation of Universal Representations of Speech},
author = {Conneau, Alexis and Ma, Min and Khanuja, Simran and Zhang, Yu and Axelrod, Vera and Dalmia, Siddharth and Riesa, Jason and Rivera, Clara and Bapna, Ankur},
booktitle = {IEEE Spoken Language Technology Workshop (SLT)},
year = {2023}
}
@misc{abdullah2026ethioasr,
title = {Ethio-ASR: Joint Multilingual Speech Recognition and Language Identification for Ethiopian Languages},
author = {Abdullah, Badr M. and Azime, Israel Abebe and Tonja, Atnafu Lambebo and others},
year = {2026},
eprint = {2603.23654},
archivePrefix = {arXiv}
}Maintained by Dataset.ET. Corrections from native speakers are welcome.
