ba: add initial support for Bashkir language

This commit is contained in:
Valdis Vitolins
2019-09-05 22:26:48 +03:00
parent e9c66a4558
commit f4c4cd3208
7 changed files with 388 additions and 0 deletions
+1
View File
@@ -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
+4
View File
@@ -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
+82
View File
@@ -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
+133
View File
@@ -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
+2
View File
@@ -0,0 +1,2 @@
name Bashkir
language ba
+163
View File
@@ -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
+3
View File
@@ -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