Skip to main content

Tai Khamyang (khamyang) Language & Cultural Corpus ꩯမ်ထႃႆၶင်

PyPI version Python 3.8+ License: MIT Amazon Author Website Endangered Status: Critical ISO 639-3: ksu Glottolog: kham1282

A comprehensive Python language library, computational linguistic toolkit, and cultural corpus for Tai Khamyang (also known as Khamjang or Nora), a critically endangered Southwestern Tai language spoken in Assam, Northeast India (predominantly in Powaimukh village near Margherita, Tinsukia district).

Developed under strict linguistic documentation standards: Accuracy > volume, Authenticity > generation, and Provenance > convenience.

📖 Developer Documentation: For complete architecture details, API references, NLP pipeline guides, and AI dataset integration, see the Developer Guide.


Table of Contents

  1. Language Background & Sociolinguistics
  2. Phonological & 6-Tone System
  3. Writing Systems & Orthography
  4. Installation
  5. Unified Developer Facade (Khamyang)
  6. NLP Toolkit (khamyang.nlp)
  7. Sub-Corpora & Cultural Resources
  8. Data Verification Hierarchy
  9. Command-Line Interface (CLI)
  10. Interactive Web Studio (khamyang web)
  11. Data Quality & Statistics
  12. Academic Sources & Citations
  13. License & Ethics

Language Background & Sociolinguistics

Attribute Details
Language Name Tai Khamyang / Khamjang / Nora (ꩯမ်ထႃႆၶင် / টাই খাময়াং)
ISO 639-3 ksu
Glottolog kham1282
Language Family Kra-Dai → Tai → Southwestern Tai → Northwestern Tai / Shan group → Assam Tai
Primary Location Powaimukh (Maan3 Paa1 Waai6) village, Margherita, Tinsukia district, Assam, India
Endangerment Status UNESCO: Critically Endangered (< 50 fluent mother-tongue speakers remaining)
Key Custodians Late Chaw Sa Myat Chowlik, Late Nang Mya Chowlik, Deben Chowlik, Ai Che
Etymology kham (gold / ၶမ်) + yang (to have / য়োং) = "People who possess gold"

Phonological & 6-Tone System

Tai Khamyang possesses six contrastive phonemic lexical tones corresponding to the Proto-Southwestern Tai Gedney tone box:

Tone # Name Chao Pitch IPA Pitch Description Gedney Box Category
1 Mid Level 33 ˧˧ Mid level with slight final fall A1, A3, B1
2 High Falling 54 ˥˦ High level onset with noticeable descent B2, C2
3 Low Creaky 21 ˨˩̰ Low falling pitch with distinct creaky laryngealization A4, B4
4 High Falling Glottal 54ʔ ˥˦ʔ High falling pitch terminated by abrupt glottal closure [ʔ] C1, C4, DL1, DS1, DL4, DS4
5 Low Falling 31 ˧˩ Low falling pitch without creaky phonation B3, C3, DL3, DS3
6 Level Rising 35 ˧˥ Mid level pitch with a clear terminal rise A2

Writing Systems & Orthography

The Tai Khamyang language uses three primary writing systems:

  1. Lik Tai Script: A variant of the Myanmar/Shan script utilizing the Myanmar Unicode block (U+1000..U+109F) and Myanmar Extended-A (U+AA60..U+AA7F) for Khamti/Phake characters (e.g., ꩯ, ꩢ, ၸ, ၼ, ဢ).
  2. Standardized Romanization: Dr. Stephen Morey's standardized linguistic Romanization using digits 1 to 6 for tone representation (e.g., nam6, fai1, khaw3, maan3).
  3. Assamese Script (অসমীয়া লিপি): Historically and widely used in Assam for community education and local publication. Tone is represented with superscripts (¹ to ⁶).

Installation

# Clone the repository
git clone https://github.com/khamyang-revitalization/khamyang.git
cd khamyang

# Install package in editable mode
pip install -e .

Unified Developer Facade (Khamyang)

The primary developer entry point provides access to all modules and sub-corpora:

from khamyang import Khamyang

# Initialize the corpus facade
lang = Khamyang()

# 1. Dictionary Lookup
entries = lang.lookup("nam6")
print(entries[0]["gloss_en"])    # "water, river"
print(entries[0]["lik_tai"])     # "ၼမ်ႊ"
print(entries[0]["ipa"])         # "[nam˧˥]"

# 2. English / Assamese Search
results = lang.search("elephant")
for r in results:
    print(r["roman"], r["lik_tai"], r["gloss_en"])

# 3. Text Normalization & Romanization
norm = lang.normalize("kaw¹ kin¹ khaw³ yow³")
print(norm)                      # "kaw1 kin1 khaw3 yow3"

# 4. Multi-Script Transliteration
lik_tai = lang.to_liktai("kaw1 yu5 maan3 paa1 waai6")
print(lik_tai)                   # "ၵဝ် ယူႇ မၢၼ်ႈ ပႃ ဝၢႆး"

# 5. Traditional Songs (Fɯn)
songs = lang.songs(genre="wedding")
print(songs[0]["title"])         # "Fɯn Ao Nang"

# 6. Stories & Interlinear Texts
stories = lang.stories()
print(stories[0]["title_en"])    # "The Quail and the Egret"

# 7. Traditional Proverbs (Kham Thum)
proverbs = lang.proverbs()
print(proverbs[0]["proverb_khamyang"])

# 8. Everyday Fieldwork Conversations
dialogues = lang.conversations()
print(dialogues[0]["topic"])

# 9. Classifier Quantification
phrase = lang.quantify("maa1", 2)
print(phrase)                    # "maa1 sɔŋ1 to1" (two dogs)

# 10. Archival Audio Recordings
recordings = lang.audio_recordings()
print(recordings[0]["archive_collection"])  # "PARADISEC SDM03"

NLP Toolkit (khamyang.nlp)

The package includes lightweight, zero-external-dependency linguistic processors:

from khamyang.nlp import (
    KhamyangNormalizer,
    KhamyangTokenizer,
    KhamyangLemmatizer,
    KhamyangPOSTagger,
    KhamyangLanguageDetector,
)

# Tokenization
tok = KhamyangTokenizer()
tokens = tok.tokenize("kaw1 kin1 khaw3 yow3")
print(tokens)  # ['kaw1', 'kin1', 'khaw3', 'yow3']

# Normalization (superscript numbers to ASCII digits, Unicode NFC)
norm = KhamyangNormalizer()
clean = norm.normalize("nam⁶")
print(clean)   # "nam6"

# Part-of-Speech Tagging (Universal Dependencies)
tagger = KhamyangPOSTagger()
tagged = tagger.tag(["kaw1", "kin1", "khaw3", "yow3"])
print(tagged)  # [('kaw1', 'PRON'), ('kin1', 'VERB'), ('khaw3', 'NOUN'), ('yow3', 'PART')]

# Lemmatization
lem = KhamyangLemmatizer()
lemma = lem.lemmatize("kin1")
print(lemma)   # "kin1"

# Language Detection
det = KhamyangLanguageDetector()
res = det.detect("kaw1 kin1 khaw3")
print(res)     # {'language': 'ksu', 'confidence': 1.0, ...}

Sub-Corpora & Cultural Resources

Dictionary & Lexicon

  • 1,099 verified lexical entries across 48 semantic domains (kinship, flora, fauna, agriculture, religion, bodily anatomy).
  • Every entry contains: id, roman, lik_tai, assamese, ipa, tone, pos, definition_en, definition_as, category, and gedney_box.

Traditional Songs (Fɯn)

  • 6 authentic traditional songs transcribed in metric verse from audio recorded by Stephen Morey (SDM03, SDM07):
    1. Fɯn Ao Nang (Song of Courting / Welcoming the Bride)
    2. Fɯn Nɔn Luk (Tai Lullaby / Rocking the Baby to Sleep)
    3. Fɯn Tam Khaw (Rice Pounding Rhythm Song)
    4. Fɯn Poy Sangken (Song of the New Year Water Sprinkling Festival)
    5. Fɯn Cholim (Song of the Welcoming Courtyard Dance)
    6. Fɯn Dam Khaw (Song of Rice Seedling Transplantation)

Folklore & Interlinear Texts (IGT)

  • 5 complete narratives formatted in Leipzig-compliant interlinear glosses (IGT):
    • The Quail and the Egret (Lik Pung: Nok4 Kot4 Kap4 Nok4 Yang1)
    • The Hornbill and the Drongo (Lik Pung: Nok4 Kok4 Kap4 Nok4 Te3)
    • The Water Buffalo and the Tiger (Lik Pung: Kwaai1 Kap4 Sɯa1)
    • The Five Siblings Journeying (Lik Pung: Khon1 Haa3 Luk4 Phaai1)
    • Mahosadha Jataka (Lik Chau: Mahosadha)

Proverbs & Sayings (Kham1 Thum3)

  • Moral aphorisms preserving traditional wisdom, agricultural advice, and filial duty:
    • "Kin1 khaw3 haam1 luang1, kin1 nam6 haam1 thung1" (Eat rice respecting the grain, drink water respecting the stream).

Material Culture & Ethnobotany

  • Traditional architecture & implements: Raised stilt house (hɯn1 thaai1), center pillar (saaw1 mai6 luang1), domestic hearth (khaang1 fai1), handloom (huuk4 phaa3), handwoven skirt (sin3 thaai1), foot-lever mortar (khrɔk4 tam1 khaw3).
  • Ethnobotanical & Zoological taxa: Documented with binomial Latin taxonomy (Oryza sativa, Piper betle, Areca catechu, Calamus rotang, Bubalus bubalis, Elephas maximus, Panthera tigris, Pavo cristatus).
  • Festivals: Poy Sangken (Water Festival), Mai-ko-shum-phai (Monastic Firewood Tower), Poy Lu Phraa (Buddha Consecration), Me Dam Me Phi (Ancestor Worship).

Archival Audio Metadata Index

  • Indices of permanent archival recordings held in PARADISEC (SDM03, SDM07) and ELAR (MPI1029884).
  • Catalogs recording dates, durations, informants, locations, and persistent archive URLs. (Audio binaries are preserved via source links to honor depositor rights).

Parallel Sentence Corpus

  • 16 fully aligned Tai Khamyang <-> English <-> Assamese sentence pairs with full morphemic breakdown and provenance.

AI Datasets & Partitioning

  • AI instruction and evaluation sets are stored strictly separately in data/ai/instruction_dataset.jsonl.
  • Explicitly labeled with source_type: "human_verified" to prevent data poisoning.

Data Verification Hierarchy

Every record in the library adheres to a 3-tier epistemological classification:

  1. Level 1 — Verified Authentic (level_1_verified): Directly attested in peer-reviewed fieldwork or published academic archives (Morey, Grierson, Buragohain, Nath).
  2. Level 2 — Documented Historical (level_2_documented_review): Found in archival manuscripts requiring ongoing elder review.
  3. Level 3 — Computationally Derived (level_3_derived): Generated or augmented data for AI benchmarking; strictly quarantined in data/ai/.

Command-Line Interface (CLI)

The khamyang command provides rich terminal tooling:

# Look up words
khamyang lookup nam6
khamyang lookup "water"

# Search by tone or category
khamyang search "" --tone 3
khamyang search "rice" --category food

# Transliteration
khamyang transliterate "kaw1 yu5 maan3 paa1 waai6" --to liktai
khamyang transliterate "kaw1 kin1 khaw3" --to assamese

# Analyze tones
khamyang tone 4
khamyang tone kwaai1

# Traditional naming
khamyang name --gender m --order 1 --personal "Deben" --clan "Chowlik"

# Numbers
khamyang num 24 --script liktai

# Browse songs & folklore
khamyang stats
khamyang export --format csv --output khamyang_lexicon.csv

# Launch interactive Web Platform
khamyang web --port 8000

Interactive Web Studio (khamyang web)

Launch the built-in web revitalization studio:

khamyang web --port 8000

Open http://127.0.0.1:8000 to access:

  • 🔍 Multi-Script Dictionary: Live search with category filters and tone badges.
  • 🎵 6-Tone Studio: Interactive Web Audio API synthesizer modeling the 6 Gedney pitch curves.
  • 🔤 Virtual Lik Tai Keyboard: Type in Lik Tai script or Romanization.
  • 📜 Corpus Reader: Folktales and songs with 5-line interlinear glosses.
  • 📥 Export Center: Download Anki decks, CSVs, LaTeX glosses, and ELAN EAF files.

Data Quality & Statistics

See STATISTICS.md and DATA_QUALITY_REPORT.md for full metrics:

  • Lexical Entries: 1,099 words (100% verified with IPA, Lik Tai, Assamese, and 6-tone classification).
  • Songs & Poems: 6 songs (8 stanzas, 34 metric lines).
  • Folktales & Texts: 5 Leipzig-glossed texts (14 interlinear sentences).
  • Proverbs: 6 traditional proverbs.
  • Archival Audio Sessions: 5 indexed recording sessions (102.5 minutes).
  • Scholarly Sources: 13 primary academic sources in registry.

Academic Sources & Citations

For academic attribution, see BIBLIOGRAPHY.md and CITATION.cff.

Primary references:

  • Morey, Stephen (2005). The Tai Languages of Assam: A Grammar and Texts. Pacific Linguistics 565. Canberra: Australian National University.
  • Morey, Stephen (2008). "The traditional songs of the Tai Khamyang." In The Tai-Kadai Languages, Routledge.
  • Nath, Palash Kumar (2015–2026). Documentation and Digitization of Tai Khamyang Oral Literature and Manuscripts. ELAR & ABILAC.
  • Grierson, George A. (1904). Linguistic Survey of India, Vol. II: Mon-Khmer and Tai Families. Calcutta: Office of the Superintendent of Government Printing.
  • Buragohain, Yehom (1998). The Tai-Khamyangs of Assam: A Study in Social and Cultural Continuity and Change. Dibrugarh University.

👨‍💻 Author & Creator Profile


License & Ethics

  • Software Code: Licensed under the MIT License.
  • Linguistic Data: Shared under open research terms in compliance with depositor agreements and community consent. Dedicated to the elders, singers, and youth of Powaimukh village striving to keep the Tai Khamyang language alive for future generations.

Metadata

Release files for khamyang 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for khamyang 1.0.0
File Size Uploaded Provenance
khamyang-1.0.0.tar.gz 272.2 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for khamyang 1.0.0
File Interpreter ABI Platform
khamyang-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 523.5 kB

Release files / khamyang-1.0.0.tar.gz

Download URL khamyang-1.0.0.tar.gz
Size 272.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d227fe71d85d623014428f12ed6ead2f1f56aaf74f6aa41c69e217aff6db5cd8
BLAKE2b-256 checksum
How to use checksums
8cdd63921f15c578a5b02b2bf4c7741b9f344f937173eaa68100faa46bd55903
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / khamyang-1.0.0-py3-none-any.whl

Download URL khamyang-1.0.0-py3-none-any.whl
Size 251.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8ea57486360504e6757a8ea63167d088d36685da6620681e225df4a3f3cff0d5
BLAKE2b-256 checksum
How to use checksums
2661af49a703d8f562b7915ca83267b643dd5bb2715bae5ba13e1401a3312602
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Security for khamyang 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for khamyang-1.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page