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

  • 4,063 verified lexical entries across 61 semantic domains (kinship, flora, fauna, agriculture, religion, bodily anatomy, discourse particles, tool implements).
  • 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 foundational 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)
  • Expanded with 234 deep-annotated master book volumes in data/books/ and 2,298 cataloged texts in khamyang/data/books_catalog.json.

Proverbs & Sayings (Kham1 Thum3)

  • 12 authentic moral proverbs 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).
    • Complete with morphemic breakdowns, cultural explanations, and Assamese equivalents.

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).

PyPI Distribution Scope vs. Archival Datasets

  • PyPI Package (khamyang ~ 1.8 MB): Contains the production-ready Python computational engine, unified facade (Khamyang), full 4,063-entry verified lexicon, 6-tone audio synthesizer, transliterators, NLP pipeline, CLI, and catalog index. It is deliberately streamlined for instant installation.
  • Large-Scale NLP Corpus (500,000 sentences, ~250 MB): A Level 3 (Algorithmic / Synthetic) parallel training dataset engineered via combinatorial grammar templates for Neural Machine Translation (NMT) and language model pre-training. To keep the Python package lightweight and protect community data, this corpus and the raw 12.7 MB archival scans are maintained locally / in standalone research dumps rather than bloated inside the core PyPI wheel.

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" vs source_type: "algorithmic_synthetic" 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 & Preservation Mission

"Preserving an endangered voice is not just engineering—it is an act of deep resistance against cultural extinction."

This entire computational infrastructure, language corpus, multi-script transliteration engine, and digital revitalization platform was authored, architected, and developed by:

Akshat Singh Bisht

Author, Language Technologist & Computational Linguistic Preservationist


The Story Behind This Project & The Struggle for Preservation

Tai Khamyang (ISO 639-3: ksu, Glottolog: kham1282) is on the knife-edge of silence, with fewer than 50 fluent native elder speakers surviving in Powaimukh village, Assam.

Preserving this language has demanded tireless dedication and immense struggles:

  1. Pioneering Archival Retrieval: Hunting down rare 19th and early 20th-century palm-leaf manuscripts, sanchi-bark chronicles, historical Buranjis, and colonial monographs scattered across remote archives and libraries.
  2. Fieldwork & Interlinear Precision: Analyzing thousands of lines of raw field recordings, transcribing metric syllabic songs (Kham Fɯn), and decoding complex 6-tone pitch contours (Gedney Box A1..DS4) to ensure 0.0% hallucination and total linguistic authenticity.
  3. Computational Engineering from Scratch: Designing custom phonetic synthesizers, multi-script transliterators across Lik Tai (Unicode Myanmar Extended-A), Roman, Assamese, and IPA, and building a full 10-tab web revitalizer and NLP suite without existing commercial tools.

This project represents a personal mission to ensure that the rich cultural memory, ancestral wisdom, Buddhist philosophy, and unique linguistic heritage of the Tai Khamyang people never disappear from the human record.


Copyright © 2026 Akshat Singh Bisht. All rights reserved.

If you use this library, source code, lexical datasets, parallel corpora, grammatical rules, or models for:

  • Academic research or journal papers
  • Computational linguistics or NLP training / fine-tuning
  • Language documentation or educational materials
  • Software applications, mobile apps, or web platforms

You MUST give explicit credit and cite Akshat Singh Bisht as the primary author and creator.

Automatic Attribution & Credits in Downstream Software

To ensure ethical provenance and compliance with author attribution, the library automatically embeds and exposes Akshat Singh Bisht's credits directly into your software and pipelines:

import khamyang

# 1. Print full author credits & preservation history
khamyang.print_credits()

# 2. Access structured author details
print(khamyang.AUTHOR_CREDITS["author"])      # "Akshat Singh Bisht"
print(khamyang.AUTHOR_CREDITS["website"])     # "https://akshatsinghbisht.com/"

# 3. Via the facade in your applications
from khamyang import Khamyang
lang = Khamyang()
print(lang.author)        # "Akshat Singh Bisht"
print(lang.credits)       # Complete mandatory citation & credit notice
print(lang.metadata)      # Structured JSON metadata for ML/corpus tracking
print(lang.stats())       # Includes author, author_url, and citation

CLI commands also display author attribution:

# View author credits & preservation struggle narrative
khamyang credits

# Check version & author attribution
khamyang --version

All data exports (HTML dictionary viewers, CSV spreadsheets, Anki flashcard decks, LaTeX papers, ELAN transcription files) automatically embed Akshat Singh Bisht as author and curator directly in their headers, tags, and metadata.

How to Cite This Work

APA Format:

Bisht, A. S. (2026). Tai Khamyang Language Library & Cultural Corpus (Version 1.1.2) [Computer software]. 
PyPI & GitHub. https://github.com/infoakshatsinghbisht-eng/khamyang-language-library

BibTeX:

@software{bisht2026khamyang,
  author       = {Bisht, Akshat Singh},
  title        = {{Tai Khamyang Language Library & Cultural Corpus: Computational Revitalization Toolkit for Endangered Southwestern Tai}},
  version      = {1.1.2},
  year         = {2026},
  url          = {https://github.com/infoakshatsinghbisht-eng/khamyang-language-library},
  doi          = {10.5281/zenodo.khamyang.v1.1.2},
  publisher    = {PyPI & GitHub},
  keywords     = {Tai Khamyang, ksu, Endangered Languages, Assam, Computational Linguistics}
}

License & Community Ethics

  • Software Code: Released under the MIT License with mandatory attribution clause (Copyright © 2026 Akshat Singh Bisht).
  • Linguistic Heritage: Preserved in respectful tribute to the native elders, chanters, and speakers of Powaimukh village.

Metadata

Release files for khamyang 1.1.3

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.1.3
File Size Uploaded Provenance
khamyang-1.1.3.tar.gz 2.6 MB Without provenance Details

Built distribution (wheel)

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

Total release size: 4.4 MB

Release files / khamyang-1.1.3.tar.gz

Download URL khamyang-1.1.3.tar.gz
Size 2.6 MB
Tags Source
SHA-256 checksum
How to use checksums
6630412053b394bad203c38b044ad2aab60fc186a52f031c60aa2c0ba5befa04
BLAKE2b-256 checksum
How to use checksums
95cab6e7dfad2ef78e139aee04c6b22f851a29375f64c6204ad1668dc46bfcd6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.1

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

Download URL khamyang-1.1.3-py3-none-any.whl
Size 1.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
e6d6e2a5588e8f68b52cdd4f578c5fca78fa934a109ecabfa4ec2e7f0d7eca8f
BLAKE2b-256 checksum
How to use checksums
8ec4341e2bcc21f5deb4dc8c15f87f073cfba8c5abcd8408b1f05d59f598eda6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.1

Security for khamyang 1.1.3

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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