mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
Belarusian: improvements
- 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.`, `;` etc
This commit is contained in:
committed by
Alexander Epaneshnikov
parent
68b9ca5d83
commit
3199d7889b
+67
-68
@@ -2,80 +2,79 @@
|
||||
// Spelling-to-phoneme words for Belarusian
|
||||
|
||||
// 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
|
||||
_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
|
||||
_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
|
||||
_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
|
||||
_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.
|
||||
_0MB1 t'i"s;ats.a
|
||||
_0MA1 t'i"s;ats.i"
|
||||
_0M1 t'i"s;ats. // NOTE: in 10k > appends `_!`
|
||||
|
||||
+11
-21
@@ -1,16 +1,11 @@
|
||||
// This file is UTF8 encoded
|
||||
// Translation rules for Belarusian
|
||||
|
||||
// NOTE: LETTERGP_A doesn't work, L01 as replacement
|
||||
//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
|
||||
// This is more economic way to express assimilation by sibilation
|
||||
.replace
|
||||
сш шш
|
||||
сч шч
|
||||
@@ -36,10 +31,9 @@
|
||||
г Q // ɣ
|
||||
|
||||
.group д
|
||||
д d[
|
||||
дз dz // d̻͡z̪
|
||||
ддз dz:
|
||||
дж dz. // ɖ͡ʐ
|
||||
д d
|
||||
дз dz
|
||||
дж dz.
|
||||
|
||||
.group е
|
||||
е ;E // ʲɛ
|
||||
@@ -49,7 +43,7 @@
|
||||
L01) е jE
|
||||
|
||||
.group ё
|
||||
ё ;'O // ʲɔ
|
||||
ё ;'O // ʲ'ɔ
|
||||
_) ё j'O
|
||||
') ё j'O
|
||||
ь) ё j'O
|
||||
@@ -57,14 +51,13 @@
|
||||
|
||||
.group ж
|
||||
ж z. // ʐ
|
||||
жж z.:
|
||||
|
||||
.group з
|
||||
з z
|
||||
|
||||
.group і
|
||||
і i
|
||||
L02) і ;i
|
||||
C) і ;i
|
||||
|
||||
.group й
|
||||
й j
|
||||
@@ -74,14 +67,12 @@
|
||||
|
||||
.group л
|
||||
л l
|
||||
лл l:
|
||||
|
||||
.group м
|
||||
м m
|
||||
|
||||
.group н
|
||||
н n
|
||||
нн n:
|
||||
|
||||
.group о
|
||||
о 'O
|
||||
@@ -90,14 +81,13 @@
|
||||
п p
|
||||
|
||||
.group р
|
||||
р R
|
||||
р r
|
||||
|
||||
.group с
|
||||
с s
|
||||
сс s:
|
||||
|
||||
.group т
|
||||
т t[
|
||||
т t
|
||||
|
||||
.group у
|
||||
у u
|
||||
@@ -112,7 +102,7 @@
|
||||
х x
|
||||
|
||||
.group ц
|
||||
ц ts // t̻͡s̪
|
||||
ц ts // t͡s
|
||||
цц ts:
|
||||
|
||||
.group ч
|
||||
@@ -124,7 +114,7 @@
|
||||
шш s.:
|
||||
|
||||
.group ы
|
||||
ы i" // (ɨ
|
||||
ы i" // ɨ
|
||||
|
||||
.group ь
|
||||
ь ; // ʲ
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
name Belarusian
|
||||
language be
|
||||
replace 03 a a#
|
||||
dict_min 20000
|
||||
dict_min 2000
|
||||
speed 95
|
||||
|
||||
+24
-10
@@ -16,16 +16,21 @@ phoneme i"
|
||||
FMT(vowel/ii#_2)
|
||||
endphoneme
|
||||
|
||||
phoneme Q
|
||||
import_phoneme base1/Q"
|
||||
ipa ɣ
|
||||
endphoneme
|
||||
|
||||
phoneme ts
|
||||
CALL consonants/ts
|
||||
voicingswitch dz
|
||||
ipa t̻͡s̪
|
||||
ipa t͡s
|
||||
endphoneme
|
||||
|
||||
phoneme ts;
|
||||
CALL base1/tS;
|
||||
voicingswitch dz;
|
||||
ipa t̻͡s̪ʲ
|
||||
ipa t͡sʲ
|
||||
endphoneme
|
||||
|
||||
phoneme ts.
|
||||
@@ -40,13 +45,14 @@ endphoneme
|
||||
phoneme dz
|
||||
CALL consonants/dz
|
||||
voicingswitch ts
|
||||
ipa d̻͡z̪
|
||||
ipa d͡z
|
||||
endphoneme
|
||||
|
||||
phoneme dz;
|
||||
import_phoneme pl/dz;
|
||||
CALL base1/dZ;
|
||||
voicingswitch ts;
|
||||
ipa d̻͡z̪ʲ
|
||||
ipa d͡zʲ
|
||||
endphoneme
|
||||
|
||||
phoneme dz.
|
||||
@@ -56,10 +62,18 @@ phoneme dz.
|
||||
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
|
||||
|
||||
phoneme r
|
||||
liquid trl
|
||||
lengthmod 6
|
||||
ipa r
|
||||
length 80
|
||||
FMT(r3/r_trill2) addWav(r3/r_trill2.wav, 65)
|
||||
endphoneme
|
||||
|
||||
phoneme ;
|
||||
liquid pzd
|
||||
lengthmod 0
|
||||
ipa ʲ
|
||||
endphoneme
|
||||
|
||||
@@ -2049,3 +2049,5 @@ include ph_uzbek
|
||||
|
||||
phonemetable qdb en
|
||||
include ph_langbelta
|
||||
|
||||
phonemetable ms id
|
||||
|
||||
@@ -538,6 +538,34 @@ Translator *SelectTranslator(const char *name)
|
||||
tr->encoding = ESPEAKNG_ENCODING_ISO_8859_6;
|
||||
SetArabicLetters(tr);
|
||||
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
|
||||
{
|
||||
SetCyrillicLetters(tr);
|
||||
|
||||
Reference in New Issue
Block a user