Browse Source

Rework rules for Belarusian and update phonemes

This patch strip out dependency on Russian, as its complicated relationship
between spelling and pronunciation overburden rules for Belarusian. The rules
themselves are also added. They don't have devoicing at the end of the words
for now. Also, gemination of consonants doesn't work as expected, as it seems
on the top of this rule some other rules apply. This after-processing is
responsible also for the strange behaviour of ending [a].
master
Alaksiej Stankievič 3 years ago
parent
commit
68b9ca5d83
4 changed files with 134 additions and 69 deletions
  1. 42
    40
      dictsource/be_list
  2. 56
    7
      dictsource/be_rules
  3. 33
    17
      phsource/ph_belarusian
  4. 3
    5
      phsource/phonemes

+ 42
- 40
dictsource/be_list View File

@@ -2,8 +2,9 @@
// Spelling-to-phoneme words for Belarusian

// Letter names
а a
б bE
а %a
_a a
_б bE
в vE
г QE
д dE
@@ -11,69 +12,70 @@
ё jO
ж z.E
з zE
і i
й i||n;EskladOvajE
і %i
_і i
_й i||n;Esklad'OvajE
к ka
л El
м Em
н En
о O
п pE
р Er
р ER
с Es
т tE
у u
ў u||n;EskladOvajE
_ў u||n;Esklad'OvajE
ф Ef
х xa
ц tsE
ч ts.E
ш s.a
ы i"
ь m;ak;:i||znak
ь m;'ak;:i||zn'ak
э E
ю ju
я ja
' apOstraf
' ap'OstRaf

// Numbers
_0 nul;
_1 ad;in
_2 dva
_3 tri"
_4 ts.ati"ri"
_5 p;at;
_6 s.Es;t;
_3 tRi"
_4 ts.ati"Ri"
_5 p;ats;
_6 s.Es;ts;
_7 s;Em
_8 vOs;E2m
_9 d;Ev;at;
_10 d;Es;at;
_11 ad;inats:at;
_12 dvanats:at;
_13 tri"nats:at;
_14 ts.ati"rnats:at;
_15 p;atnats:at;
_16 s.asnats:at;
_17 s;amnats:at;
_18 vas;amnats:at;
_19 d;Ev;atnats:at;
_2X dvats:at;
_3X tri"ts:at;
_4X sorak
_8 v'Os;Em
_9 dz;Ev;ats;
_10 dz;Es;ats;
_11 adz;inats:ats;
_12 dvanats:ats;
_13 tRi"nats:ats;
_14 ts.ati"Rnats:ats;
_15 p;atnats:ats;
_16 s.asnats:ats;
_17 s;amnats:ats;
_18 vas;amnats:ats;
_19 dz;Ev;atnats:ats;
_2X dvats:ats;
_3X tRi"ts:ats;
_4X s'ORak
_5X p;adz;:Es;at
_6X s.Ezdz;:Es;jat
_7X s;Emdz;Es;jat
_8X vos;Emdz;Es;at
_9X d;Ev;anosta
_0C stO
_2C d;v;Es;t;E
_3C tri"sta
_4C ts.ati"ri"sta
_5C p;at;sot
_6C s.Es;t;sot
_7C s;jEmsot
_8C vos;jEmsot
_9C d;Ev;at;sot
_6X s.Ezdz;:Es;at
_7X s;Emdz;Es;at
_8X v'Os;Emdz;Es;at
_9X dz;Ev;an'Osta
_0C st'O
_2C dz;v;Es;ts;E
_3C tRi"sta
_4C ts.ati"Ri"sta
_5C p;ats;s'Ot
_6C s.Es;ts;s'Ot
_7C s;Ems'Ot
_8C v,Os;Ems'Ot
_9C dz;Ev;ats;s'Ot
_1MA1 ti"s;ats.a
_0MA1 ti"s;ats.i"
_0M1 ti"s;ats.

+ 56
- 7
dictsource/be_rules View File

@@ -1,6 +1,28 @@
// This file is UTF8 encoded
// Translation rules for Belarusian

//letter which can carry vowel phoneme
.L01 а е ё і о у ы э ю я
//letter which can carry consonant phoneme
.L02 б в г д ж з й к л м н нн п р с сс т ф х ц ч ш
//letter which can carry forward sibilant (like с)
//.L03 з дз с ц
//letter which can carry backward sibilant (like ш)
//.L04 ж дж ш ч

// This is more economic way to express assimilation by sibilation than using L03 and L04
.replace
сш шш
сч шч
цч чч
шс сс
шц сц
чц цц
зж жж
здж ждж
жз зз
ждз здз

.group а
а a

@@ -14,22 +36,35 @@
г Q // ɣ

.group д
д d
д d[
дз dz // d̻͡z̪
ддз dz:
дж dz. // ɖ͡ʐ

.group е
е ;E // ʲɛ
_) е jE
') е jE
ь) е jE
L01) е jE

.group ё
ё ;O // ʲɔ
ё ;'O // ʲɔ
_) ё j'O
') ё j'O
ь) ё j'O
L01) ё j'O

.group ж
ж z. // ʐ
жж z.:

.group з
з z

.group і
і i
L02) і ;i

.group й
й j
@@ -39,27 +74,30 @@

.group л
л l
лл l:

.group м
м m

.group н
н n
нн n:

.group о
о o
о 'O

.group п
п p

.group р
р r
р R

.group с
с s
сс s:

.group т
т t
т t[

.group у
у u
@@ -74,13 +112,16 @@
х x

.group ц
ц ts // t̻͡s
ц ts // t̻͡s̪
цц ts:

.group ч
ч ts. // ʈ͡ʂ
чч ts.:

.group ш
ш s. // ʂ
шш s.:

.group ы
ы i" // (ɨ
@@ -93,9 +134,17 @@

.group ю
ю ;u // ʲu
_) ю ju
') ю ju
ь) ю ju
L01) ю ju

.group я
я ;a // ʲa
_) я ja
') я ja
ь) я ja
L01) я ja

.group '
' j
'

+ 33
- 17
phsource/ph_belarusian View File

@@ -2,48 +2,64 @@
// Belarusian
//====================================================


phoneme a
import_phoneme ru/a
endphoneme

phoneme O
vwl starttype #o endtype #o
ipa ɔ
length 100
FMT(vwl_ru/8)
vwl starttype #a endtype #a
ipa a
length 180
FMT(vowel/a)
endphoneme

phoneme i"
import_phoneme pl/y
vwl starttype #i endtype #i
ipa ɨ
length 180
FMT(vowel/ii#_2)
endphoneme

phoneme ts
import_phoneme consonants/ts
ipa t̻͡s
CALL consonants/ts
voicingswitch dz
ipa t̻͡s̪
endphoneme

phoneme ts;
import_phoneme pl/ts;
CALL base1/tS;
voicingswitch dz;
ipa t̻͡s̪ʲ
endphoneme

phoneme ts.
import_phoneme sr/tS
vls pla afr sib
ipa ʈ͡ʂ
lengthmod 2
voicingswitch dz.
Vowelin f1=0 f2=2300 200 400 f3=-100 80
WAV(ustop/tsh_sr, 50)
endphoneme

phoneme dz
import_phoneme consonants/dz
CALL consonants/dz
voicingswitch ts
ipa d̻͡z̪
endphoneme

phoneme dz;
import_phoneme pl/dz;
CALL base1/dZ;
voicingswitch ts;
ipa d̻͡z̪ʲ
endphoneme

phoneme dz.
import_phoneme sr/dZ
vcd pla afr sib
ipa ɖ͡ʐ
lengthmod 5
voicingswitch ts.
Vowelin f1=2 f2=2300 200 400 f3=100 80
Vowelout f1=2 f2=2300 250 300 f3=100 80 brk

IF PreVoicing THEN
FMT(dzh/xdzh)
ENDIF

FMT(dzh/dzh) addWav(ufric/sh_pzd2)
endphoneme

+ 3
- 5
phsource/phonemes View File

@@ -1819,6 +1819,9 @@ include ph_yue

// *** Tables extending base2 ***

phonemetable be base2
include ph_belarusian

phonemetable chr base2
include ph_cherokee

@@ -2046,8 +2049,3 @@ include ph_uzbek

phonemetable qdb en
include ph_langbelta

phonemetable be ru
include ph_belarusian

phonemetable ms id

Loading…
Cancel
Save