Skip to content

Krishna Yajurveda Phonology & Taittirīya-Prātiśākhya

The Krishna Yajurveda (Kṛṣṇa Yajurveda, KYV)—predominantly preserved in the living tradition of the Taittirīya Śākhā—possesses one of the most sophisticated and mathematically precise phonetic systems in ancient linguistics. While classical Sanskrit grammar (Aṣṭādhyāyī) and Rigvedic phonology (Ṛgveda-Prātiśākhya) establish broad phonological frameworks, the Taittirīya-Prātiśākhya (TPr) articulates distinct phonetic requirements essential for authentic recitation of texts such as the Taittirīya Saṃhitā, Taittirīya Brāhmaṇa, Taittirīya Āraṇyaka, and the Taittirīya Upaniṣad.

Project Vyasa implements complete, native computational support for Taittirīya phonology within vyasa-phonetics and exposes high-level APIs via @project-vyasa/sanskrit-wasm.


1. The Dual Articulatory Model: Karaṇa vs. Sthāna

Section titled “1. The Dual Articulatory Model: Karaṇa vs. Sthāna”

Classical Pāṇinian phonetics primarily categorizes speech sounds by their passive place of articulation (Sthāna). In contrast, the Taittirīya-Prātiśākhya (TPr Chapter 2) emphasizes a strict dual coordinate system:

  1. Sthāna (Passive Locus): The static part of the vocal tract (upper teeth, hard palate, velum).
  2. Karaṇa (Active Articulator): The dynamic, mobile organ (different zones of the tongue, lower lip, or jaw) that moves toward the locus to produce sound.
flowchart LR
    subgraph Karaṇa ["Active Articulator (Karaṇa)"]
        J["Jihvāgram (Tongue Tip)"]
        JM["Jihvāmādhya (Tongue Middle)"]
        JO["Jihvopamadhya (Tongue Blade)"]
        P["Prativeṣṭitam (Curled Tip)"]
        A["Adharoṣṭha (Lower Lip)"]
        H["Hanu (Jaws / Open Tract)"]
        N["Nāsikābila (Nasal Cavity)"]
    end

    subgraph Sthāna ["Passive Locus (Sthāna)"]
        D["Danta (Teeth)"]
        K["Kaṇṭha (Throat/Velum)"]
        T["Tālu (Hard Palate)"]
        M["Mūrdhan (Palatal Roof)"]
        O["Oṣṭha (Upper Lip)"]
        NB["Nāsikā (Nasal Cavity)"]
    end

    J -->|TPr 2.38| D
    JM -->|TPr 2.35| K
    JO -->|TPr 2.36| T
    P -->|TPr 2.37| M
    A -->|TPr 2.39, 43| O
    H -->|TPr 2.12| K
    N -->|TPr 2.50| NB
Sound Class Varṇas Sthāna (Passive Locus) Karaṇa (Active Articulator) TPr Sūtra
Velars (Kaṇṭhya) k, kh, g, gh, ṅ Kaṇṭha (Throat/Velum) Jihvāmādhya (Tongue dorsum/middle) 2.35
Palatals (Tālavya) c, ch, j, jh, ñ, y, ś Tālu (Hard palate) Jihvopamadhya (Tongue blade/edges) 2.36
Retroflexes (Mūrdhanya) ṭ, ṭh, ḍ, ḍh, ṇ, r, ṣ, ḷ Mūrdhan (Roof of palate) Prativeṣṭitam (Curled tongue tip) 2.37
Dentals (Dantya) t, th, d, dh, n, l, s Danta (Teeth roots) Jihvāgram (Tip of tongue) 2.38
Bilabials (Oṣṭhya) p, ph, b, bh, m Oṣṭha (Upper lip) Adharoṣṭha (Lower lip) 2.39
Dentolabial v Danta + Oṣṭha Adharoṣṭha (Lower lip to teeth) 2.43
Jihvāmūlīya ẖ (before k, kh) Hanu-mūla (Velum base) Jihvāmūla (Tongue root) 2.44
Upadhmānīya ḫ (before p, ph) Oṣṭha Adharoṣṭha 2.45
Vowels (Svara) a, i, u, ṛ, ḷ, e, o… Respective loci Hanu (Jaws/open vocal tract) 2.12
Pure Nasals Nāsikya, Anusvāra Nāsikā Nāsikābila (Nasal cavity aperture) 2.50

2. The 8-Fold Svarita Taxonomy (TPr Chapter 20)

Section titled “2. The 8-Fold Svarita Taxonomy (TPr Chapter 20)”

In Vedic chant, the Svarita (circumflex pitch accent) is fundamentally categorized into two groups:

  1. Nitya (Independent / Inherent): Built into the word’s underlying lexical stem or generated by morphological Sandhi independent of adjacent accents.
  2. Enclitic (Dependent / Contextual): A low/falling pitch on an unaccented (Anudātta) syllable caused automatically by a preceding high (Udātta) syllable.

The Taittirīya-Prātiśākhya defines an eightfold classification in Chapter 20:

graph TD
    Svarita["Svarita Accent (TPr Ch. 20)"]
    
    subgraph NityaGroup ["Nitya (Independent / Inherent)"]
        Jatya["1. Jātya (जात्य)<br/>Stem circumflex"]
        Kshaipra["2. Kṣaipra (क्षैप्र)<br/>High vowel → Semivowel"]
        Abhinihita["3. Abhinihita (अभिनिहित)<br/>Elision of initial a-"]
        Prashlishta["4. Praśliṣṭa (प्रश्लिष्ट)<br/>Vowel contraction i + i"]
    end

    subgraph EncliticGroup ["Enclitic (Dependent / Contextual)"]
        Tairo["5. Tairovyañjana (तैरोव्यञ्जन)<br/>Intervening consonants"]
        TairoV["6. Tairovirāma (तैरोविराम)<br/>Across caesura / pause"]
        Pada["7. Pādavṛtta (पादवृत्त)<br/>Hiatus without Sandhi"]
        Tatha["8. Tathābhāvya (तथाभाव्य)<br/>Attenuated / modified contour"]
    end

    Svarita --> NityaGroup
    Svarita --> EncliticGroup

1. Jātya (जात्य — “Inherent / Natural”)

Section titled “1. Jātya (जात्य — “Inherent / Natural”)”
  • Origin: An unaccented syllable containing an inherent semivowel (y or v) preceded by a consonant within the word stem itself, carrying intrinsic circumflex without Sandhi.
  • Examples:
    • kanyā̀ (क॒न्या॑)
    • svàr (स्व॑र्)
    • kílvira / kalyā̀ṇa

2. Kṣaipra (क्षैप्र — “Quick / Compressed”)

Section titled “2. Kṣaipra (क्षैप्र — “Quick / Compressed”)”
  • Origin: Formed when an accented high vowel (i/ī or u/ū) mutates into a semivowel (y or v) before an unaccented dissimilar vowel.
  • Formula: U + A → Semivowel + Svarita
  • Examples:
    • ví + abravīt → vyàbravīt (व्य॒ब्र॒वी॒त्)
    • tú + idam → tvìdam (त्वि॒दम्)
    • TS 1.1.1: íṣe tvó́rje tvā

3. Abhinihita (अभिनिहित — “Absorbed / Elided”)

Section titled “3. Abhinihita (अभिनिहित — “Absorbed / Elided”)”
  • Origin: Formed when an accented e or o causes the elision (absorption) of an unaccented word-initial a-, indicated by Avagraha (ऽ).
  • Formula: E/O (Udātta) + A (Anudātta) → E/O + ’ (Svarita)
  • Examples:
    • té + abruvan → té ’bruvan (ते ऽब्रु॑वन्)
    • TS 4.5.1 (Śrī Rudram): *namo॑ astu (नमो॑ अस्तु)

4. Praśliṣṭa (प्रश्लिष्ट — “Coalescent”)

Section titled “4. Praśliṣṭa (प्रश्लिष्ट — “Coalescent”)”
  • Origin: Formed by the contraction of two short vowels (most typically i + i or ī + i) into a single long vowel where the first was Udātta and the second Anudātta.
  • Formula: i (Udātta) + i (Anudātta) → ī (Svarita)
  • Examples:
    • diví + iva → divī̀va (दि॒वीव॑)
    • abhí + arcat → abhyàrcat

5. Tairovyañjana (तैरोव्यञ्जन — “Through Consonants”)

Section titled “5. Tairovyañjana (तैरोव्यञ्जन — “Through Consonants”)”
  • Origin: The most ubiquitous Vedic enclitic. An unaccented (Anudātta) syllable following an Udātta separated by one or more consonants automatically becomes Svarita.
  • Example:
    • agním (अ॒ग्निम्) → The syllable gním is Udātta; the following syllable in agním īḷe receives Svarita.

6. Tairovirāma (तैरोविराम — “Across Pause”)

Section titled “6. Tairovirāma (तैरोविराम — “Across Pause”)”
  • Origin: An enclitic Svarita where the pitch transition occurs across an internal word boundary, Pada hiatus, or minor metrical pause (Avāna).

7. Pādavṛtta (पादवृत्त — “Verse-Internal Hiatus”)

Section titled “7. Pādavṛtta (पादवृत्त — “Verse-Internal Hiatus”)”
  • Origin: Occurs when two vowels sit in hiatus across words without combining into Sandhi (e.g. Pragṛhya or metrical suspension).
  • Example:
    • pra ugam → prògam (प्र उ॑गम्)

8. Tathābhāvya (तथाभाव्य — “Transformed State”)

Section titled “8. Tathābhāvya (तथाभाव्य — “Transformed State”)”
  • Origin: An underlying Udātta or independent accent that, due to specific phonological environments in recitation, adopts the tonal contour of a Svarita.

3. Consonant Gemination (Dvitva / Dvirvacana) (TPr Chapter 14)

Section titled “3. Consonant Gemination (Dvitva / Dvirvacana) (TPr Chapter 14)”

A distinct hallmark of authentic Taittirīya recitation is consonant doubling (Dvitva). While northern traditions often drop doubling, South Indian Vedic pāṭha preserves the rigorous gemination rules codified in TPr Chapter 14:

Rule 1: Post-Vocalic Conjunct Doubling (TPr 14.1)

Section titled “Rule 1: Post-Vocalic Conjunct Doubling (TPr 14.1)”

svarāt parasya vyañjanasya dvirvacanaṃ bhavati saṃyoge
When a consonant immediately follows a vowel and begins a conjunct, it doubles.

  • aśvaḥ → aśśvaḥ (अ॒श्श्वः॑)
  • agnim → aggnim (अ॒ग्ग्निम्)
  • indraḥ → inndraḥ (इ॒न्न्द्रः॑)

Rule 2: Post-r and Post-h Doubling (TPr 14.4)

Section titled “Rule 2: Post-r and Post-h Doubling (TPr 14.4)”

repha-hakārābhyāṃ parasya vyañjanasya dvirvacanam
Any consonant (stop or sibilant) preceded by r or h doubles before a vowel or consonant.

  • arkaḥ → arkkaḥ (अ॒र्कर्कः॑)
  • dharmaḥ → dharmmaḥ (ध॒र्म्मः॑)
  • śīrṣan → śīrṣṣan (शी॒र्ष्षन्)
  • brahma → brahhmma (ब्र॒ह्ह्म्म॑)

Final stops and nasals double when followed by initial vowels under specific metrical conditions.


When word-final n or m precedes sibilants (ś, ṣ, s) or semivowels, Taittirīya phonology avoids a flat anusvāra, requiring a melodic nasal prolongation termed Raṅga (indicated in Devanagari by ँ / ᳵ or Telugu by ఁ / ఁఁ):

  • Duration: Extends the vowel by 1.5 to 2 mātrās of oral vocalic tone followed by 0.5 mātrā of pure nasal resonance (anunāsika).
  • TS 1.1.1: mahā̐ asi (म॒हाँ २ ऽसि॑)
  • Camakam: yā̐strīn (याँ२स्त्रीन्)

Unlike classical Sanskrit which collapses nasal variations into Anusvāra (ṃ), TPr recognizes Nāsikya as an independent Ayogavāha sound produced exclusively within the nasal cavity aperture (Nāsikābila) without contact of the tongue or lips.


To prevent regression and guarantee adherence to oral traditions, Project Vyasa maintains a data-driven test harness modeled after our Rigveda suite:

crates/vyasa-phonetics/
├── tests/
│ ├── data/
│ │ └── kyv_corpus.json # 7 benchmark passages from TS, TU, and TA
│ └── data_driven_taittiriya.rs # Automated verification harness
scripts/
└── kyv_dataset.py # Corpus inspector and validator CLI

The test harness evaluates real verses across the 3 core Taittirīya texts:

  1. Taittirīya Saṃhitā:
    • TS 1.1.1 (Opening: iṣe tvorje tvā…)
    • TS 4.5.1 (Śrī Rudram / Namakam)
    • TS 4.7.1 (Camakam)
  2. Taittirīya Upaniṣad:
    • Śīkṣāvallī 1.1.1 (śam no mitraḥ śam varuṇaḥ…)
    • Ānandavallī 2.1.1 (brahmavid āpnoti param…)
  3. Taittirīya Āraṇyaka:
    • TA 3.12.1 (Puruṣa Sūkta: sahasraśīrṣā puruṣaḥ…)
    • TA 3.12.16 (Puruṣa Sūkta Concluding Phalaśruti)

Run the validation CLI anytime:

Terminal window
# Validate corpus integrity
python3 scripts/kyv_dataset.py validate
# Inspect all 7 passages with phonetic metadata
python3 scripts/kyv_dataset.py inspect

use vyasa_phonetics::{
karana, sthana, classify_taittiriya_svarita, should_double_in_taittiriya,
Karana, Sthana, Svara, SvaritaJunctureContext, TaittiriyaSvarita,
Varna, Consonant,
};
fn main() {
// 1. Articulatory Active Karaṇa (TPr 2.35)
let k = Varna::Consonant(Consonant::K);
assert_eq!(karana(&k), Karana::Jihvamadhya); // Tongue middle against velum
assert_eq!(sthana(&k), vec![Sthana::Kantha]);
// 2. Svarita Classification (TPr 20.1)
let svarita = classify_taittiriya_svarita(
Svara::Svarita,
SvaritaJunctureContext::SemivowelSandhi,
);
assert_eq!(svarita, Some(TaittiriyaSvarita::Kshaipra));
// 3. Consonant Doubling / Gemination (TPr 14.4)
// In "arkaḥ", k preceded by r doubles
let r = Varna::Consonant(Consonant::R);
let doubles = should_double_in_taittiriya(Some(&r), Consonant::K, None);
assert!(doubles); // arka -> arkka
}

In TypeScript / Browser (@project-vyasa/sanskrit-wasm)

Section titled “In TypeScript / Browser (@project-vyasa/sanskrit-wasm)”
import init, {
get_taittiriya_svaritas,
inspect_taittiriya_varna,
check_taittiriya_dvitva,
classify_taittiriya_svarita_by_context,
} from "@project-vyasa/sanskrit-wasm";
await init();
// 1. Retrieve all 8 Svarita varieties
const svaritas = get_taittiriya_svaritas();
console.log(svaritas.map(s => `${s.name_iast} (${s.name_deva}) - Nitya: ${s.is_nitya}`));
// => "Jātya (जात्य) - Nitya: true", "Kṣaipra (क्षैप्र) - Nitya: true", ...
// 2. Inspect active Karaṇa
const analysis = inspect_taittiriya_varna("t");
console.log(analysis.karana);
// => "Jihvāgram (Tongue tip)"
console.log(analysis.sthana);
// => ["Danta (Dental)"]
// 3. Check Dvitva doubling
const shouldDouble = check_taittiriya_dvitva("r", "k", null);
console.log(shouldDouble);
// => true (arka -> arkka)

7. Comparative Perspective: Prātiśākhyas & Classical Sanskrit

Section titled “7. Comparative Perspective: Prātiśākhyas & Classical Sanskrit”

To explore how the Taittirīya-Prātiśākhya relates to the broader Sanskrit linguistic universe: