diff --git a/CHANGELOG.md b/CHANGELOG.md index e59cb9fe..e4b4823c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,7 @@ emoji: new languages: +* ba (Bashkir) -- tc-dl, Valdis Vitolins * hak (Hakka Chinese) -- Chen Chien-ting * ht (Haitian Creole) -- Valdis Vitolins * kk (Kazakh) -- boracasli14, Valdis Vitolins diff --git a/Makefile.am b/Makefile.am index a8397ba0..3c38ad52 100644 --- a/Makefile.am +++ b/Makefile.am @@ -459,6 +459,7 @@ dictionaries: \ espeak-ng-data/ar_dict \ espeak-ng-data/as_dict \ espeak-ng-data/az_dict \ + espeak-ng-data/ba_dict \ espeak-ng-data/bg_dict \ espeak-ng-data/bn_dict \ espeak-ng-data/bpy_dict \ @@ -564,6 +565,9 @@ espeak-ng-data/as_dict: dictsource/as_list dictsource/as_rules dictsource/as_ext az: espeak-ng-data/az_dict espeak-ng-data/az_dict: dictsource/az_list dictsource/az_rules dictsource/az_extra dictsource/az_emoji +ba: espeak-ng-data/ba_dict +espeak-ng-data/ba_dict: dictsource/ba_list dictsource/ba_rules + bg: espeak-ng-data/bg_dict espeak-ng-data/bg_dict: dictsource/bg_list dictsource/bg_listx dictsource/bg_rules dictsource/bg_extra dictsource/bg_emoji diff --git a/dictsource/ba_list b/dictsource/ba_list new file mode 100644 index 00000000..5c06896b --- /dev/null +++ b/dictsource/ba_list @@ -0,0 +1,82 @@ +// This file is UTF8 encoded +// Spelling-to-phoneme rules for Bashkir + +// Letters +б be +в we +г ge +д de +е je +ё jo +ж Ze +җ Z;e +з ze +и i +й kVsk,A'i +к kA +л el +м em +н en +ң eN +о o: +ө W: +п pe +р er +с es +т te +у u +ү y +ф ef +х xA +һ he +ц tse +ч S;e +ш SA +щ SS;A +ъ kAlVnl,Vqbilges'e +ы V: +ь neS;k&l,ekbilges'e +э e|: +ю ju +я jA + + +// Numbers +_0 n'ul? +_1 b'er +_2 ik'e +_3 'WS; +_4 d'yrt +_5 b'iS +_6 Alt'V +_7 Z;id'e +_8 sig'ez +_9 tug'Vz +_10 'un +_11 unb'er +_12 unik'e +_13 un'WS; +_14 und'yrt +_15 unb'iS +_16 unAlt'V +_17 unZ;id'e +_18 unsig'ez +_19 untug'Vz +_2X egerm'e +_3X ut'Vz +_4X kVr'Vk +_5X ill'e +_6X Altm'VS +_7X Z;itm'eS +_8X siks'&n +_9X tuks'An +_0C j'Wz +_0M1 m'eN +_0M2 milli'on +_1M2 milli'on +_0M3 milli'Ard +_1M3 milli'Ard +_0M4 billi'on +_1M4 billi'on + +_dpt _bWt,en diff --git a/dictsource/ba_rules b/dictsource/ba_rules new file mode 100644 index 00000000..12275c33 --- /dev/null +++ b/dictsource/ba_rules @@ -0,0 +1,133 @@ +// This file is UTF8 encoded +// Spelling-to-phoneme rules for Bashkir + +.group а + а A + +.group ә + ә & + әе e: // 'әнкәен' + +.group б + б b + +.group в + в w // [v] in Russian words + +.group г + г g // changes to [Q] or [Q"] + +.group д + д d + +.group е + _) е je2 // changes to [je] or [jV] + е e + +.group ё + ё jo + +.group ж + ж Z + +.group җ + җ Z; + +.group з + з z + +.group и + и i + A) и j + +.group й + й j + K) й (K I // not next to a vowel + +.group к + к k + +.group л + л l + +.group м + м m + +.group н + н n +// н (к N + н (г N + н (х N + +.group ң + ң N + +.group о + о o + +.group ө + ө W + +.group п + п p + +.group р + р r + +.group с + с s + +.group т + т t + +.group у + у u // or w + A) у w + +.group ү + ү y // or w + A) ү w + +.group ф + ф f + +.group х + х x + +.group һ + һ h + +.group ц + ц ts + +.group ч + ч S; + +.group ш + ш S + +.group щ + щ SS; + +.group ъ + ъ ? + +.group ы + ы V + ый Vj // need a diphthong phoneme ?? + +.group ь + ь ? + +.group э + э e + +.group ю + ю ju2 // changes to ju or jy + +.group я + я ja // changes to jA or j& + +.group + $ dolAR + diff --git a/espeak-ng-data/lang/trk/ba b/espeak-ng-data/lang/trk/ba new file mode 100644 index 00000000..09fab480 --- /dev/null +++ b/espeak-ng-data/lang/trk/ba @@ -0,0 +1,2 @@ +name Bashkir +language ba diff --git a/phsource/ph_bashkir b/phsource/ph_bashkir new file mode 100644 index 00000000..c1477021 --- /dev/null +++ b/phsource/ph_bashkir @@ -0,0 +1,163 @@ + + +// use 'flag1' for front vowels, 'flag2' for back vowels + +phoneme i + vwl flag1 starttype #i endtype #i + length 180 + FMT(vowel/i) +endphoneme + +phoneme y + vwl flag1 starttype #u endtype #u + length 180 + FMT(vowel/y) +endphoneme + +phoneme u + vwl flag2 starttype #u endtype #u + length 180 + FMT(vowel/u) +endphoneme + + +phoneme e + vwl flag1 starttype #@ endtype #@ + length 110 + FMT(vowel/ii#) +endphoneme + + +phoneme W + vwl flag1 starttype #@ endtype #@ + length 110 + FMT(vowel/oe) +endphoneme + +phoneme o + vwl flag2 starttype #o endtype #o + length 110 + FMT(vowel/o_mid) +endphoneme + +phoneme V + vwl flag2 starttype #@ endtype #@ + length 110 + ipa ɯ + FMT(vowel/@_2) +endphoneme + + +phoneme & + vwl flag1 starttype #e endtype #e + length 180 + FMT(vowel/ee) +endphoneme + +phoneme A + vwl flag2 starttype #a endtype #a + length 180 + IF NOT nextPhW(w) AND NOT thisPh(isTranslationGiven) THEN + IF thisPh(isFirstVowel) THEN + ChangePhoneme(0) + ENDIF + IF prevVowel(0) AND thisPh(isSecondVowel) THEN + ChangePhoneme(0) + ENDIF + ENDIF + FMT(vowel/aa_8) +endphoneme + +phoneme 0 + vwl flag2 starttype #o endtype #o + length 180 + FMT(vowel/0_3) +endphoneme + + +phoneme e: + vwl flag1 starttype #e endtype #e + length 240 + FMT(vowel/e_6) +endphoneme + +phoneme I + vwl flag1 starttype #i endtype #i + length 110 + FMT(vowel/ii) +endphoneme + +phoneme a // letter 'я' + vwl starttype #a endtype #a + length 180 + IF prevVowel(isFlag1) OR nextVowel(isFlag1) THEN // front vowels + ChangePhoneme(&) + ENDIF + ChangePhoneme(A) +endphoneme + +phoneme u2 // letter 'ю' + vwl starttype #u endtype #u + length 180 + IF prevVowel(isFlag1) OR nextVowel(isFlag1) THEN + ChangePhoneme(y) + ELSE + ChangePhoneme(u) + ENDIF +endphoneme + +phoneme e2 // 'e' at start of word + vwl starttype #@ endtype #@ + length 100 + IF nextVowel(isFlag2) THEN + ChangePhoneme(V) + ELSE + ChangePhoneme(e) + ENDIF +endphoneme + + + +// Consonants + +phoneme r + import_phoneme base1/R2 +endphoneme + +phoneme t + import_phoneme base2/t +endphoneme + +phoneme d + import_phoneme base1/d[ +endphoneme + +phoneme k + vls vel stp + IF prevVowel(isFlag2) OR nextVowel(isFlag2) THEN // back vowels + ChangePhoneme(q) + ENDIF + CALL base1/k +endphoneme + +phoneme G + import_phoneme base1/Q" +endphoneme + +phoneme g + vcd vel frc + IF prevVowel(isFlag2) OR nextVowel(isFlag2) THEN + ChangePhoneme(G) + ELSE + ChangePhoneme(Q) + ENDIF +endphoneme + + +phoneme l + liquid + IF prevVowel(isFlag2) OR nextVowel(isFlag2) THEN + ChangePhoneme(L) + ENDIF + CALL base1/l +endphoneme diff --git a/phsource/phonemes b/phsource/phonemes index 9d54ae84..08fdbbc8 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -1686,6 +1686,9 @@ include ph_amhari phonemetable ar base1 include ph_arabic +phonemetable ba base1 +include ph_bashkir + phonemetable cy base1 include ph_welsh