from typing import Dict, List, FrozenSet KASHMIRI_CHARACTER_MAPPING: Dict[str, List[str]] = {'آ': ['ﺁ', 'ﺂ'], 'أ': ['ﺃ'], 'ا': ['ﺍ', 'ﺎ'], 'ب': ['ﺏ', 'ﺐ', 'ﺑ', 'ﺒ'], 'پ': ['ﭖ', 'ﭘ', 'ﭙ', ], 'ت': ['ﺕ', 'ﺖ', 'ﺗ', 'ﺘ'], 'ٹ': ['ﭦ', 'ﭧ', 'ﭨ', 'ﭩ'], 'ث': ['ﺛ', 'ﺜ', 'ﺚ'], 'ج': ['ﺝ', 'ﺞ', 'ﺟ', 'ﺠ'], 'ح': ['ﺡ', 'ﺣ', 'ﺤ', 'ﺢ'], 'خ': ['ﺧ', 'ﺨ', 'ﺦ'], 'د': ['ﺩ', 'ﺪ'], 'ذ': ['ﺬ', 'ﺫ'], 'ر': ['ﺭ', 'ﺮ'], 'ز': ['ﺯ', 'ﺰ', ], 'س': ['ﺱ', 'ﺲ', 'ﺳ', 'ﺴ', ], 'ش': ['ﺵ', 'ﺶ', 'ﺷ', 'ﺸ'], 'ص': ['ﺹ', 'ﺺ', 'ﺻ', 'ﺼ', ], 'ض': ['ﺽ', 'ﺾ', 'ﺿ', 'ﻀ'], 'ط': ['ﻃ', 'ﻄ'], 'ظ': ['ﻅ', 'ﻇ', 'ﻈ'], 'ع': ['ﻉ', 'ﻊ', 'ﻋ', 'ﻌ', ], 'غ': ['ﻍ', 'ﻏ', 'ﻐ', ], 'ف': ['ﻑ', 'ﻒ', 'ﻓ', 'ﻔ', ], 'ق': ['ﻕ', 'ﻖ', 'ﻗ', 'ﻘ', ], 'ل': ['ﻝ', 'ﻞ', 'ﻟ', 'ﻠ', ], 'م': ['ﻡ', 'ﻢ', 'ﻣ', 'ﻤ', ], 'ن': ['ﻥ', 'ﻦ', 'ﻧ', 'ﻨ', ], 'چ': ['ﭺ', 'ﭻ', 'ﭼ', 'ﭽ'], 'ڈ': ['ﮈ', 'ﮉ'], 'ڑ': ['ﮍ', 'ﮌ'], 'ژ': ['ﮋ', ], 'ک': ['ﮎ', 'ﮏ', 'ﮐ', 'ﮑ', 'ﻛ', 'ك'], 'گ': ['ﮒ', 'ﮓ', 'ﮔ', 'ﮕ'], 'ں': ['ﮞ', 'ﮟ'], 'و': ['ﻮ', 'ﻭ', 'ﻮ', ], 'ؤ': ['ﺅ'], 'ھ': ['ﮪ', 'ﮬ', 'ﮭ', 'ﻬ', 'ﻫ', 'ﮫ'], 'ہ': ['ﻩ', 'ﮦ', 'ﻪ', 'ﮧ', 'ﮩ', 'ﮨ', 'ه', ], 'ۂ': [], 'ۃ': ['ة'], 'ء': ['ﺀ'], 'ی': ['ﯼ', 'ى', 'ﯽ', 'ﻰ', 'ﻱ', 'ﻲ', 'ﯾ', 'ﯿ', 'ي'], 'ئ': ['ﺋ', 'ﺌ', ], 'ے': ['ﮮ', 'ﮯ', 'ﻳ', 'ﻴ', ], 'ۓ': [], '۰': ['٠'], '۱': ['١'], '۲': ['٢'], '۳': ['٣'], '۴': ['٤'], '۵': ['٥'], '۶': ['٦'], '۷': ['٧'], '۸': ['٨'], '۹': ['٩'], '۔': [], '؟': [], '٫': [], '،': [], 'لا': ['ﻻ', 'ﻼ'], '': ['ـ'], 'ژ':['ـژ', 'ـژ'], 'ؠ':['ـؠ','\u06ea', '\u066e\u06ea', 'ؠـ', 'ـؠـ', ], 'ۄ':['\u06c5'], ' ' : ['\u200C'], # NOT A CHARACTER, HANDLING ZWNJ by Replacing with space 'ۍ' : [] } PUNCTUATION_MAP: Dict[str, List[str]] = { '"': ['„', '“', '”', "''", '´´'], '-': ['–'], ' - ': ['—'], "'": ['´', '‘', '‚', '’'], '...': ['…'], } ENG_KASHMIRI_DIGITS_MAP: Dict = { '0': ['۰'], '1': ['۱'], '2': ['۲'], '3': ['۳'], '4': ['۴'], '5': ['۵'], '6': ['۶'], '7': ['۷'], '8': ['۸'], '9': ['۹'] } KASHMIRI_ENG_DIGITS_MAP: Dict = { '۰': ['0'], '۱': ['1'], '۲': ['2'], '۳': ['3'], '۴': ['4'], '۵': ['5'], '۶': ['6'], '۷': ['7'], '۸': ['8'], '۹': ['9'] } KASHMIRI_DIACRITICS: FrozenSet[str] = frozenset("\u064e \u0670 \u0654 \u0650 \u0656 \u0655 \u065f \u064f \u0657 \u065A \u065b".split()) KASHMIRI_PUNCTUATIONS: FrozenSet[str] = frozenset("؛ ، ٫ ؟ ۔ ٪".split()) # Characters, Diacritics, Digits (Both sets), and Punctuations suitable for TTS vocabulary ALL_CHARACTERS: FrozenSet[str] = frozenset( list(KASHMIRI_CHARACTER_MAPPING.keys()) + list(KASHMIRI_DIACRITICS) + list(KASHMIRI_PUNCTUATIONS) + list(ENG_KASHMIRI_DIGITS_MAP.keys()) + list(PUNCTUATION_MAP.keys()) ) WORD_TO_DIGIT_MAP: Dict[str, List[str]] = { 'صفرٕ': ['0'], 'اکھ': ['1'], 'زٕ': ['2'], 'ترٛےٚ': ['3'], 'ژور': ['4'], 'پانژھ': ['5'], 'شیٚیہ': ['6'], 'ستھ': ['7'], 'ٲٹھ': ['8'], 'نو': ['9'] }