UNPKG

js-tts-wrapper

Version:

A JavaScript/TypeScript library that provides a unified API for working with multiple cloud-based Text-to-Speech (TTS) services

419 lines (418 loc) 9.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.toIso639_3 = toIso639_3; exports.toLanguageDisplay = toLanguageDisplay; exports.normalizeBcp47 = normalizeBcp47; const ISO_639_1_TO_639_3 = { aa: "aar", ab: "abk", af: "afr", ak: "aka", am: "amh", an: "arg", ar: "ara", as: "asm", av: "ava", ay: "aym", az: "aze", ba: "bak", be: "bel", bg: "bul", bh: "bih", bi: "bis", bm: "bam", bn: "ben", bo: "bod", br: "bre", bs: "bos", ca: "cat", ce: "che", ch: "cha", co: "cos", cr: "cre", cs: "ces", cu: "chu", cv: "chv", cy: "cym", da: "dan", de: "deu", dv: "div", dz: "dzo", ee: "ewe", el: "ell", en: "eng", eo: "epo", es: "spa", et: "est", eu: "eus", fa: "fas", ff: "ful", fi: "fin", fj: "fij", fo: "fao", fr: "fra", fy: "fry", ga: "gle", gd: "gla", gl: "glg", gn: "grn", gu: "guj", gv: "glv", ha: "hau", he: "heb", hi: "hin", ho: "hmo", hr: "hrv", ht: "hat", hu: "hun", hy: "hye", hz: "her", ia: "ina", id: "ind", ie: "ile", ig: "ibo", ii: "iii", ik: "ipk", io: "ido", is: "isl", it: "ita", iu: "iku", ja: "jpn", jv: "jav", ka: "kat", kg: "kon", ki: "kik", kj: "kua", kk: "kaz", kl: "kal", km: "khm", kn: "kan", ko: "kor", kr: "kau", ks: "kas", ku: "kur", kv: "kom", kw: "cor", ky: "kir", la: "lat", lb: "ltz", lg: "lug", li: "lim", ln: "lin", lo: "lao", lt: "lit", lu: "lub", lv: "lav", mg: "mlg", mh: "mah", mi: "mri", mk: "mkd", ml: "mal", mn: "mon", mr: "mar", ms: "msa", mt: "mlt", my: "mya", na: "nau", nb: "nob", nd: "nde", ne: "nep", ng: "ndo", nl: "nld", nn: "nno", no: "nor", nr: "nbl", nv: "nav", ny: "nya", oc: "oci", oj: "oji", om: "orm", or: "ori", os: "oss", pa: "pan", pi: "pli", pl: "pol", ps: "pus", pt: "por", qu: "que", rm: "roh", rn: "run", ro: "ron", ru: "rus", rw: "kin", sa: "san", sc: "srd", sd: "snd", se: "sme", sg: "sag", si: "sin", sk: "slk", sl: "slv", sm: "smo", sn: "sna", so: "som", sq: "sqi", sr: "srp", ss: "ssw", st: "sot", su: "sun", sv: "swe", sw: "swa", ta: "tam", te: "tel", tg: "tgk", th: "tha", ti: "tir", tk: "tuk", tl: "tgl", tn: "tsn", to: "ton", tr: "tur", ts: "tso", tt: "tat", tw: "twi", ty: "tah", ug: "uig", uk: "ukr", ur: "urd", uz: "uzb", ve: "ven", vi: "vie", vo: "vol", wa: "wln", wo: "wol", xh: "xho", yi: "yid", yo: "yor", za: "zha", zh: "zho", zu: "zul", }; const BCP47_TO_DISPLAY = { "af-ZA": "Afrikaans (South Africa)", "am-ET": "Amharic (Ethiopia)", "ar-AE": "Arabic (UAE)", "ar-BH": "Arabic (Bahrain)", "ar-DZ": "Arabic (Algeria)", "ar-EG": "Arabic (Egypt)", "ar-IQ": "Arabic (Iraq)", "ar-JO": "Arabic (Jordan)", "ar-KW": "Arabic (Kuwait)", "ar-LB": "Arabic (Lebanon)", "ar-LY": "Arabic (Libya)", "ar-MA": "Arabic (Morocco)", "ar-OM": "Arabic (Oman)", "ar-QA": "Arabic (Qatar)", "ar-SA": "Arabic (Saudi Arabia)", "ar-SY": "Arabic (Syria)", "ar-TN": "Arabic (Tunisia)", "ar-YE": "Arabic (Yemen)", "az-AZ": "Azerbaijani (Azerbaijan)", "bg-BG": "Bulgarian (Bulgaria)", "bn-BD": "Bengali (Bangladesh)", "bn-IN": "Bengali (India)", "ca-ES": "Catalan (Spain)", "cs-CZ": "Czech (Czech Republic)", "cy-GB": "Welsh (United Kingdom)", "da-DK": "Danish (Denmark)", "de-AT": "German (Austria)", "de-CH": "German (Switzerland)", "de-DE": "German (Germany)", "el-GR": "Greek (Greece)", "en-AU": "English (Australia)", "en-CA": "English (Canada)", "en-GB": "English (United Kingdom)", "en-IE": "English (Ireland)", "en-IN": "English (India)", "en-NZ": "English (New Zealand)", "en-PH": "English (Philippines)", "en-SG": "English (Singapore)", "en-US": "English (United States)", "en-ZA": "English (South Africa)", "es-AR": "Spanish (Argentina)", "es-BO": "Spanish (Bolivia)", "es-CL": "Spanish (Chile)", "es-CO": "Spanish (Colombia)", "es-CR": "Spanish (Costa Rica)", "es-DO": "Spanish (Dominican Republic)", "es-EC": "Spanish (Ecuador)", "es-ES": "Spanish (Spain)", "es-GT": "Spanish (Guatemala)", "es-HN": "Spanish (Honduras)", "es-MX": "Spanish (Mexico)", "es-NI": "Spanish (Nicaragua)", "es-PA": "Spanish (Panama)", "es-PE": "Spanish (Peru)", "es-PR": "Spanish (Puerto Rico)", "es-PY": "Spanish (Paraguay)", "es-SV": "Spanish (El Salvador)", "es-US": "Spanish (United States)", "es-UY": "Spanish (Uruguay)", "es-VE": "Spanish (Venezuela)", "et-EE": "Estonian (Estonia)", "eu-ES": "Basque (Spain)", "fa-IR": "Persian (Iran)", "fi-FI": "Finnish (Finland)", "fil-PH": "Filipino (Philippines)", "fr-BE": "French (Belgium)", "fr-CA": "French (Canada)", "fr-CH": "French (Switzerland)", "fr-FR": "French (France)", "ga-IE": "Irish (Ireland)", "gl-ES": "Galician (Spain)", "gu-IN": "Gujarati (India)", "he-IL": "Hebrew (Israel)", "hi-IN": "Hindi (India)", "hr-HR": "Croatian (Croatia)", "hu-HU": "Hungarian (Hungary)", "hy-AM": "Armenian (Armenia)", "id-ID": "Indonesian (Indonesia)", "is-IS": "Icelandic (Iceland)", "it-IT": "Italian (Italy)", "ja-JP": "Japanese (Japan)", "jv-ID": "Javanese (Indonesia)", "ka-GE": "Georgian (Georgia)", "kk-KZ": "Kazakh (Kazakhstan)", "km-KH": "Khmer (Cambodia)", "kn-IN": "Kannada (India)", "ko-KR": "Korean (South Korea)", "lo-LA": "Lao (Laos)", "lt-LT": "Lithuanian (Lithuania)", "lv-LV": "Latvian (Latvia)", "mk-MK": "Macedonian (Macedonia)", "ml-IN": "Malayalam (India)", "mn-MN": "Mongolian (Mongolia)", "mr-IN": "Marathi (India)", "ms-MY": "Malay (Malaysia)", "mt-MT": "Maltese (Malta)", "my-MM": "Burmese (Myanmar)", "nb-NO": "Norwegian Bokmål (Norway)", "ne-NP": "Nepali (Nepal)", "nl-BE": "Dutch (Belgium)", "nl-NL": "Dutch (Netherlands)", "pa-IN": "Punjabi (India)", "pl-PL": "Polish (Poland)", "ps-AF": "Pashto (Afghanistan)", "pt-BR": "Portuguese (Brazil)", "pt-PT": "Portuguese (Portugal)", "ro-RO": "Romanian (Romania)", "ru-RU": "Russian (Russia)", "si-LK": "Sinhala (Sri Lanka)", "sk-SK": "Slovak (Slovakia)", "sl-SI": "Slovenian (Slovenia)", "so-SO": "Somali (Somalia)", "sq-AL": "Albanian (Albania)", "sr-RS": "Serbian (Serbia)", "su-ID": "Sundanese (Indonesia)", "sv-SE": "Swedish (Sweden)", "sw-KE": "Swahili (Kenya)", "sw-TZ": "Swahili (Tanzania)", "ta-IN": "Tamil (India)", "ta-LK": "Tamil (Sri Lanka)", "ta-SG": "Tamil (Singapore)", "te-IN": "Telugu (India)", "th-TH": "Thai (Thailand)", "tr-TR": "Turkish (Turkey)", "uk-UA": "Ukrainian (Ukraine)", "ur-PK": "Urdu (Pakistan)", "uz-UZ": "Uzbek (Uzbekistan)", "vi-VN": "Vietnamese (Vietnam)", "yue-CN": "Cantonese (China)", "yue-HK": "Cantonese (Hong Kong)", "zh-CN": "Chinese (China)", "zh-HK": "Chinese (Hong Kong)", "zh-TW": "Chinese (Taiwan)", }; const LANGUAGE_DISPLAY = { af: "Afrikaans", am: "Amharic", ar: "Arabic", az: "Azerbaijani", bg: "Bulgarian", bn: "Bengali", ca: "Catalan", cs: "Czech", cy: "Welsh", da: "Danish", de: "German", el: "Greek", en: "English", es: "Spanish", et: "Estonian", eu: "Basque", fa: "Persian", fi: "Finnish", fil: "Filipino", fr: "French", ga: "Irish", gl: "Galician", gu: "Gujarati", he: "Hebrew", hi: "Hindi", hr: "Croatian", hu: "Hungarian", hy: "Armenian", id: "Indonesian", is: "Icelandic", it: "Italian", ja: "Japanese", jv: "Javanese", ka: "Georgian", kk: "Kazakh", km: "Khmer", kn: "Kannada", ko: "Korean", lo: "Lao", lt: "Lithuanian", lv: "Latvian", mk: "Macedonian", ml: "Malayalam", mn: "Mongolian", mr: "Marathi", ms: "Malay", mt: "Maltese", my: "Burmese", nb: "Norwegian Bokmål", ne: "Nepali", nl: "Dutch", pa: "Punjabi", pl: "Polish", ps: "Pashto", pt: "Portuguese", ro: "Romanian", ru: "Russian", si: "Sinhala", sk: "Slovak", sl: "Slovenian", so: "Somali", sq: "Albanian", sr: "Serbian", su: "Sundanese", sv: "Swedish", sw: "Swahili", ta: "Tamil", te: "Telugu", th: "Thai", tr: "Turkish", uk: "Ukrainian", ur: "Urdu", uz: "Uzbek", vi: "Vietnamese", yue: "Cantonese", zh: "Chinese", }; function toIso639_3(code) { const short = code.split("-")[0].toLowerCase(); return ISO_639_1_TO_639_3[short] || short; } function toLanguageDisplay(bcp47) { if (BCP47_TO_DISPLAY[bcp47]) return BCP47_TO_DISPLAY[bcp47]; const short = bcp47.split("-")[0].toLowerCase(); return LANGUAGE_DISPLAY[short] || bcp47; } function normalizeBcp47(lang) { if (lang.includes("-")) return lang; return `${lang}-US`; }