Browse Source

ba: add initial support for Bashkir language

master
Valdis Vitolins 5 years ago
parent
commit
f4c4cd3208
7 changed files with 388 additions and 0 deletions
  1. 1
    0
      CHANGELOG.md
  2. 4
    0
      Makefile.am
  3. 82
    0
      dictsource/ba_list
  4. 133
    0
      dictsource/ba_rules
  5. 2
    0
      espeak-ng-data/lang/trk/ba
  6. 163
    0
      phsource/ph_bashkir
  7. 3
    0
      phsource/phonemes

+ 1
- 0
CHANGELOG.md 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
- 0
Makefile.am 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
- 0
dictsource/ba_list 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
- 0
dictsource/ba_rules 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
- 0
espeak-ng-data/lang/trk/ba View File

@@ -0,0 +1,2 @@
name Bashkir
language ba

+ 163
- 0
phsource/ph_bashkir 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
- 0
phsource/phonemes 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


Loading…
Cancel
Save