- fixed/removed not working rules in be_list - added stress to the words in be_list - fixed multi thousand transcription - removed not working rules in be_rules - added rules of palatalization, phonemes lengthen - fixed dropping of [a] at the end of words - fixed message "Full dictionary is not installed for" - added configuration in tr_languages.c - fixed/added phonemes for `Q`, `ts`, `ts;`, `dz`, `dz.`, `;` etcmaster
// Spelling-to-phoneme words for Belarusian | // Spelling-to-phoneme words for Belarusian | ||||
// Letter names | // Letter names | ||||
а %a | |||||
_a a | |||||
_б bE | |||||
в vE | |||||
г QE | |||||
д dE | |||||
е jE | |||||
ё jO | |||||
ж z.E | |||||
з zE | |||||
і %i | |||||
_і i | |||||
_й i||n;Esklad'OvajE | |||||
к ka | |||||
л El | |||||
м Em | |||||
н En | |||||
о O | |||||
п pE | |||||
р ER | |||||
с Es | |||||
т tE | |||||
у u | |||||
_ў u||n;Esklad'OvajE | |||||
ф Ef | |||||
х xa | |||||
ц tsE | |||||
ч ts.E | |||||
ш s.a | |||||
ы i" | |||||
ь m;'ak;:i||zn'ak | |||||
э E | |||||
ю ju | |||||
я ja | |||||
' ap'OstRaf | |||||
а a $u | |||||
б bE $u | |||||
в vE $u | |||||
г QE $u | |||||
д dE $u | |||||
е jE $u | |||||
ё jO $u | |||||
ж z.E $u | |||||
з z $u | |||||
і i $u | |||||
й i||n;Esklad'OvajE | |||||
к ka $u | |||||
л El $u | |||||
м Em $u | |||||
н En $u | |||||
о O $u | |||||
п pE $u | |||||
р Er $u | |||||
с Es $u | |||||
т tE $u | |||||
у u $u | |||||
ў u||n;Esklad'OvajE | |||||
ф Ef $u | |||||
х xa $u | |||||
ц tsE $u | |||||
ч ts.E $u | |||||
ш s.a $u | |||||
ы i" $u | |||||
ь m;'ak;:i||znak | |||||
э E $u | |||||
ю ju $u | |||||
я ja $u | |||||
// Numbers | // Numbers | ||||
_0 nul; | |||||
_1 ad;in | |||||
_2 dva | |||||
_3 tRi" | |||||
_4 ts.ati"Ri" | |||||
_5 p;ats; | |||||
_6 s.Es;ts; | |||||
_7 s;Em | |||||
_0 n'ul; | |||||
_1 adz;'in | |||||
_1f adna | |||||
_2 dv'a | |||||
_2f dz;v;'E | |||||
_3 tr'i" | |||||
_4 ts.at'i"ri" | |||||
_5 p;'ats; | |||||
_6 s.'Es;ts; | |||||
_7 s;'Em | |||||
_8 v'Os;Em | _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;at | |||||
_7X s;Emdz;Es;at | |||||
_8X v'Os;Emdz;Es;at | |||||
_9X dz;Ev;an'Osta | |||||
_9 dz;'Ev;ats; | |||||
_10 dz;'Es;ats; | |||||
_11 adz;'inats:ats; | |||||
_12 dvan'ats:ats; | |||||
_13 tri"n'ats:ats; | |||||
_14 ts.at'i"rnats:ats; | |||||
_15 p;atn'ats:ats; | |||||
_16 s.asn'ats:ats; | |||||
_17 s;amn'ats:ats; | |||||
_18 vas;amn'ats:ats; | |||||
_19 dz;Ev;atn'ats:ats; | |||||
_2X dv'ats:ats;|| | |||||
_3X tr'i"ts:ats;|| | |||||
_4X s'Orak|| | |||||
_5X p;adz;:Es;'at|| | |||||
_6X s.Ezdz;:Es;'at|| | |||||
_7X s;'Emdz;Es;at|| | |||||
_8X v'Os;Emdz;Es;at|| | |||||
_9X dz;Ev;an'Osta|| | |||||
_0C st'O | _0C st'O | ||||
_2C dz;v;Es;ts;E | |||||
_3C tRi"sta | |||||
_4C ts.ati"Ri"sta | |||||
_2C dz;v;'Es;ts;E | |||||
_3C tr'i"sta | |||||
_4C ts.at'i"ri"sta | |||||
_5C p;ats;s'Ot | _5C p;ats;s'Ot | ||||
_6C s.Es;ts;s'Ot | _6C s.Es;ts;s'Ot | ||||
_7C s;Ems'Ot | _7C s;Ems'Ot | ||||
_8C v,Os;Ems'Ot | _8C v,Os;Ems'Ot | ||||
_9C dz;Ev;ats;s'Ot | _9C dz;Ev;ats;s'Ot | ||||
_1MA1 ti"s;ats.a | |||||
_0MA1 ti"s;ats.i" | |||||
_0M1 ti"s;ats. | |||||
_0MB1 t'i"s;ats.a | |||||
_0MA1 t'i"s;ats.i" | |||||
_0M1 t'i"s;ats. // NOTE: in 10k > appends `_!` |
// This file is UTF8 encoded | // This file is UTF8 encoded | ||||
// Translation rules for Belarusian | // Translation rules for Belarusian | ||||
// NOTE: LETTERGP_A doesn't work, L01 as replacement | |||||
//letter which can carry vowel phoneme | //letter which can carry vowel phoneme | ||||
.L01 а е ё і о у ы э ю я | .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 | |||||
// This is more economic way to express assimilation by sibilation | |||||
.replace | .replace | ||||
сш шш | сш шш | ||||
сч шч | сч шч | ||||
г Q // ɣ | г Q // ɣ | ||||
.group д | .group д | ||||
д d[ | |||||
дз dz // d̻͡z̪ | |||||
ддз dz: | |||||
дж dz. // ɖ͡ʐ | |||||
д d | |||||
дз dz | |||||
дж dz. | |||||
.group е | .group е | ||||
е ;E // ʲɛ | е ;E // ʲɛ | ||||
L01) е jE | L01) е jE | ||||
.group ё | .group ё | ||||
ё ;'O // ʲɔ | |||||
ё ;'O // ʲ'ɔ | |||||
_) ё j'O | _) ё j'O | ||||
') ё j'O | ') ё j'O | ||||
ь) ё j'O | ь) ё j'O | ||||
.group ж | .group ж | ||||
ж z. // ʐ | ж z. // ʐ | ||||
жж z.: | |||||
.group з | .group з | ||||
з z | з z | ||||
.group і | .group і | ||||
і i | і i | ||||
L02) і ;i | |||||
C) і ;i | |||||
.group й | .group й | ||||
й j | й j | ||||
.group л | .group л | ||||
л l | л l | ||||
лл l: | |||||
.group м | .group м | ||||
м m | м m | ||||
.group н | .group н | ||||
н n | н n | ||||
нн n: | |||||
.group о | .group о | ||||
о 'O | о 'O | ||||
п p | п p | ||||
.group р | .group р | ||||
р R | |||||
р r | |||||
.group с | .group с | ||||
с s | с s | ||||
сс s: | |||||
.group т | .group т | ||||
т t[ | |||||
т t | |||||
.group у | .group у | ||||
у u | у u | ||||
х x | х x | ||||
.group ц | .group ц | ||||
ц ts // t̻͡s̪ | |||||
ц ts // t͡s | |||||
цц ts: | цц ts: | ||||
.group ч | .group ч | ||||
шш s.: | шш s.: | ||||
.group ы | .group ы | ||||
ы i" // (ɨ | |||||
ы i" // ɨ | |||||
.group ь | .group ь | ||||
ь ; // ʲ | ь ; // ʲ |
name Belarusian | name Belarusian | ||||
language be | language be | ||||
replace 03 a a# | |||||
dict_min 20000 | |||||
dict_min 2000 | |||||
speed 95 | speed 95 |
FMT(vowel/ii#_2) | FMT(vowel/ii#_2) | ||||
endphoneme | endphoneme | ||||
phoneme Q | |||||
import_phoneme base1/Q" | |||||
ipa ɣ | |||||
endphoneme | |||||
phoneme ts | phoneme ts | ||||
CALL consonants/ts | CALL consonants/ts | ||||
voicingswitch dz | voicingswitch dz | ||||
ipa t̻͡s̪ | |||||
ipa t͡s | |||||
endphoneme | endphoneme | ||||
phoneme ts; | phoneme ts; | ||||
CALL base1/tS; | CALL base1/tS; | ||||
voicingswitch dz; | voicingswitch dz; | ||||
ipa t̻͡s̪ʲ | |||||
ipa t͡sʲ | |||||
endphoneme | endphoneme | ||||
phoneme ts. | phoneme ts. | ||||
phoneme dz | phoneme dz | ||||
CALL consonants/dz | CALL consonants/dz | ||||
voicingswitch ts | voicingswitch ts | ||||
ipa d̻͡z̪ | |||||
ipa d͡z | |||||
endphoneme | endphoneme | ||||
phoneme dz; | phoneme dz; | ||||
import_phoneme pl/dz; | |||||
CALL base1/dZ; | CALL base1/dZ; | ||||
voicingswitch ts; | voicingswitch ts; | ||||
ipa d̻͡z̪ʲ | |||||
ipa d͡zʲ | |||||
endphoneme | endphoneme | ||||
phoneme dz. | phoneme dz. | ||||
voicingswitch ts. | voicingswitch ts. | ||||
Vowelin f1=2 f2=2300 200 400 f3=100 80 | Vowelin f1=2 f2=2300 200 400 f3=100 80 | ||||
Vowelout f1=2 f2=2300 250 300 f3=100 80 brk | Vowelout f1=2 f2=2300 250 300 f3=100 80 brk | ||||
endphoneme | |||||
IF PreVoicing THEN | |||||
FMT(dzh/xdzh) | |||||
ENDIF | |||||
phoneme r | |||||
liquid trl | |||||
lengthmod 6 | |||||
ipa r | |||||
length 80 | |||||
FMT(r3/r_trill2) addWav(r3/r_trill2.wav, 65) | |||||
endphoneme | |||||
FMT(dzh/dzh) addWav(ufric/sh_pzd2) | |||||
phoneme ; | |||||
liquid pzd | |||||
lengthmod 0 | |||||
ipa ʲ | |||||
endphoneme | endphoneme |
phonemetable qdb en | phonemetable qdb en | ||||
include ph_langbelta | include ph_langbelta | ||||
phonemetable ms id |
tr->encoding = ESPEAKNG_ENCODING_ISO_8859_6; | tr->encoding = ESPEAKNG_ENCODING_ISO_8859_6; | ||||
SetArabicLetters(tr); | SetArabicLetters(tr); | ||||
break; | break; | ||||
case L('b', 'e'): // Belarusian | |||||
{ | |||||
static const unsigned char stress_amps_be[8] = { 12, 10, 8, 8, 0, 0, 16, 17 }; | |||||
static const short stress_lengths_be[8] = { 160, 140, 200, 140, 0, 0, 240, 160 }; | |||||
static wchar_t vowels_be[] = { // offset by 0x420 -- а е ё о у ы э ю я і | |||||
0x10, 0x15, 0x31, 0x1e, 0x23, 0x2b, 0x2d, 0x2e, 0x2f, 0x36, 0 | |||||
}; | |||||
static const unsigned char consonants_be[] = { // б в г д ж з й к л м н п р с т ф х ц ч ш ў | |||||
0x11, 0x12, 0x13, 0x14, 0x16, 0x17, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1f, 0x20, 0x21, 0x22, 0x24, 0x25, 0x26, 0x27, 0x28, 0x3e, 0 | |||||
}; | |||||
tr->langopts.stress_flags = S_NO_AUTO_2 | S_NO_DIM; // don't use secondary stress | |||||
tr->letter_bits_offset = OFFSET_CYRILLIC; | |||||
tr->transpose_min = 0x430; // convert cyrillic from unicode into range 0x01 to 0x2f | |||||
tr->transpose_max = 0x45e; | |||||
memset(tr->letter_bits, 0, sizeof(tr->letter_bits)); | |||||
SetLetterBits(tr, LETTERGP_A, (char *)vowels_be); | |||||
SetLetterBits(tr, LETTERGP_C, (char *)consonants_be); | |||||
SetLetterBits(tr, LETTERGP_VOWEL2, (char *)vowels_be); | |||||
SetupTranslator(tr, stress_lengths_be, stress_amps_be); | |||||
tr->encoding = ESPEAKNG_ENCODING_ISO_8859_5; | |||||
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | |||||
tr->langopts.stress_rule = STRESSPOSN_1L; | |||||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED; | |||||
tr->langopts.numbers2 = NUM2_THOUSANDPLEX_VAR_THOUSANDS | NUM2_THOUSANDS_VAR1; // variant numbers before thousands | |||||
} | |||||
break; | |||||
case L('b', 'g'): // Bulgarian | case L('b', 'g'): // Bulgarian | ||||
{ | { | ||||
SetCyrillicLetters(tr); | SetCyrillicLetters(tr); |