Browse Source

eu: Updated Basque phonetics and stress rule

master
agonzalezd 4 years ago
parent
commit
2fb981855b
4 changed files with 257 additions and 264 deletions
  1. 20
    10
      dictsource/eu_list
  2. 221
    252
      dictsource/eu_rules
  3. 14
    0
      src/libespeak-ng/dictionary.c
  4. 2
    2
      src/libespeak-ng/tr_languages.c

+ 20
- 10
dictsource/eu_list View File

etara $u etara $u


// Abbreviations // Abbreviations
adib ad'ibidez $hasdot adib ad'ibid,ez $hasdot


// proper names and surnames // proper names and surnames
juan $alt juan $alt
jorge $1 x'orxe jorge $1 x'orxe
jose $1 $alt jose $1 $alt
josé $alt josé $alt
joaquín $alt joaquín xoak'in
joaquin xoak'in
julian xulj'an
julián xulj'an
jacinto xaT'into
jiménez xim'eneT
genaro xen'aro
gonzález gonT'aleT
san $u $only $only san $u $only $only
santo $u santo $u
aristoteles $3 aristoteles $3
hume hjum $1 hume hjum $1
humer hjum humer hjum
google g'uQ@l google g'uQel
googler g'uQ@l googler g'uQel
moodle m'uD@l moodle m'uDel
moodler m'uD@l moodler m'uDel
doodle d'uD@l doodle d'uDel
doodler m'uD@l doodler m'uDel
nietztsche n'itSe nietztsche n'itSe
ainara $alt3 ainara $alt3


aktibist $3 aktibist $3
alajain $alt alajain $alt
album $1 album $1
[aldez-alde] 'alDez_'alDe (aldez-alde) aldezalde $text
[aldez-alde] 'alDez_'alDe
alfanumeriko $4 alfanumeriko $4
algebra $1 $alt algebra $1 $alt
aljebraiko $3 $alt aljebraiko $3 $alt
alokutibo $4 alokutibo $4
alproj $alt alproj $alt
alprojakeri $alt alprojakeri $alt
(bat-batean) bapatean $text
ijito $alt
garaje $alt
jertse xerts'e

+ 221
- 252
dictsource/eu_rules View File

// This file is UTF8 encoded // This file is UTF8 encoded
// Spelling-to-phoneme rules for Basque // Spelling-to-phoneme rules for Basque
// $w_alt j as [x] // $w_alt j as [x]
// $w_alt2 don't palatalise l // $w_alt2 don't palatalise l
// $w_alt3 don't palatalise n // $w_alt3 don't palatalise n
.L01 b d g
.L01 b d g .L02 e i
.L02 e i .group a
a a
ai aI
.group a au aU
a a a (_S1 a
ai aI ak (_S2 ak
au aU ari (_S3 ari
a (_S1 a aren (_S4 a**en
ak (_S2 ak arekin (_S6 a**ekin
ari (_S3 ari arentzat (_S8 a**entzat
aren (_S4 a**en arentzako (_S9 arentzako
arekin (_S6 a**ekin an (_S2 an
arentzat (_S8 a**entzat atik (_S4 atik
arentzako (_S9 arentzako ara (_S3 a**a
an (_S2 an arat (_S4 arat
atik (_S4 atik atatik (_S6 atatik
ara (_S3 a**a atara (_S5 ata**a
arat (_S4 arat atarat (_S5 atarat
atatik (_S6 atatik ako (_S3 ako
atara (_S5 ata**a atako (_S5 atako
atarat (_S5 atarat araino (_S6 a**ain^o
ako (_S3 ako ataraino (_S8 ata**an^o
atako (_S5 atako arantz (_S6 a**antz
araino (_S6 a**ain^o atarantz (_S8 a**antz
ataraino (_S8 ata**an^o agana (_S5 agana
arantz (_S6 a**antz arengana (_S8 a**engana
atarantz (_S8 a**antz arenganaino (_s11 a**enganain^o
agana (_S5 agana arengatik (_S9 a**engatik
arengana (_S8 a**engana atzat (_S5 atzat
arenganaino (_s11 a**enganain^o .group b
arengatik (_S9 a**engatik b b
atzat (_S5 atzat _ez_) b (A p'
.group c
c k
c (L02 T
.group b ch tS
b b .group d
_ez_) b (A p' d d
dd J
A) d (A D // ??
.group c _ez_) d (A t'
c k .group e
c (L02 T e e
ch tS ei eI
ehi eI
l) ehi (A eI
.group d eu eU
d d ek (_S2 ek
dd J ei (_S2 eI
A) d (A D // ?? en (_S2 en
_ez_) d (A t' ean (_S3 ean
etan (_S4 etan
etatik (_S6 etatik
etara (_S5 eta**a
erat (_S4 erat
.group e etako (_S5 etako
e e eko (_S3 eko
ei eI etarako (_S7 etarako
ehi eI etarantz (_S8 eta**antz
l) ehi (A eI etaraino (_S8 eta**aino
eu eU engana (_S6 engana
ek (_S2 ek entzat (_S6 entzat
ei (_S2 eI entzako (_S7 entzako
en (_S2 en engatik (S7 engatik
ean (_S3 ean ekin (_S4 ekin
etan (_S4 etan ekiko (_S5 ekiko
etatik (_S6 etatik ez (_S2 ez
etara (_S5 eta**a etaz (_S4 etaz
erat (_S4 erat .group f
etako (_S5 etako f f
eko (_S3 eko .group g
etarako (_S7 etarako g g
etarantz (_S8 eta**antz A) g (A Q // ??
etaraino (_S8 eta**aino _ez_) g (A k'
engana (_S6 engana gana (_S4 gana
entzat (_S6 entzat go (_S2 go
entzako (_S7 entzako .group h
engatik (S7 engatik h // silent
ekin (_S4 ekin zi) h (o x
ekiko (_S5 ekiko .group i
ez (_S2 ez i i
etaz (_S4 etaz K) i (_S1 i
le) i (h j
.group j
j j // try [x] [J] [j] [J^] [Z] [S]
.group f j ($w_alt x
f f .group k
k k
ko (_S2 ko
.group l
.group g l l
g g i) lh (A l2
A) g (A Q // ?? ll l^
_ez_) g (A k' _ez_) l (A l'
gana (_S4 gana l ($w_alt2 l2
go (_S2 go _afi) l (ia l2
_ki) l (o l2
.group m
.group h m m
h // silent .group n
zi) h (o x n n
n (_S1 n
n ($w_alt3 n2
i) nh (A n2
.group i mi) n (is n2
i i afi) n (i n2
K) i (_S1 i agluti) n (A n2
le) i (h j alpi) n (A n2
arraz) i (on j .group o
o o
oi oI
.group j .group p
j J // try [x] [J] [j] [J^] [Z] [S] p p
j ($w_alt x .group q
q k
qu (L02 k // que, qui
_) qw (A kw // qwerty
.group r
.group k r r
k k _) r R2
ko (_S2 ko rr R2
A) ri (_S2 ri
ren (_S3 ren
ra (_S2 ra
.group l rat (_S3 rat
l l rantz (_S5 rantz
ll l^ raino (_S5 raino
_ez_) l (A l' rako (_S4 rako
l ($w_alt2 l2 _afi) l (ia l2 rentzat (_S7 rentzat
rentzako (_S8 rentzako
.group m rekin (_S5 rekin
m m rengan (_S6 rengan
rengana (_S7 rengana
rengandik (_S9 rengandik
.group n rengatik (_S8 rengatik
n n .group s
n (_S1 n s s
n ($w_alt3 n2 mi) n (is n2 .group t
afi) n (i n2 t t
agluti) n (A n2 ts ts
alpi) n (A n2 tt c
tx tS
.group o tz tz
o o tan (_S3 tan
oi oI tara (_S4 tara
tarat (_S5 tarat
tik (_S3 tik
tatik (_S5 tatik
.group p taz (_S3 taz
p p tu (_S2 tu
tuko (_S4 tuko
tzen (_S4 tzen
ten (_S3 ten
.group q .group u
q k u u
.group v
v b
.group w
.group r w u
r r .group x
_) r R2 x S
rr R2 _se) x (u ks
A) ri (_S2 ri _o) x (i ks
ren (_S3 ren _ta) x (i ks
ra (_S2 ra _a) x (iom ks
rat (_S3 rat _fle) x (io ks
rantz (_S5 rantz .group y
raino (_S5 raino y jj
rako (_S4 rako .group z
rentzat (_S7 rentzat z z
rentzako (_S8 rentzako _e) z (_L01 %z
rekin (_S5 rekin _e) z (_l
rengan (_S6 rengan _e) z (_n
rengana (_S7 rengana _e) z (_zA tz
rengandik (_S9 rengandik z (_S1 z
rengatik (_S8 rengatik .group
á ''a
é ''e
í ''i
ó ''o
.group s ú ''u
s s ç s
ü y
ñ n^

.group t
t t
ts ts
tt c
tx tS
tz tz
tan (_S3 tan
tara (_S4 tara
tarat (_S5 tarat
tik (_S3 tik
tatik (_S5 tatik
taz (_S3 taz
tu (_S2 tu
tuko (_S4 tuko
tzen (_S4 tzen
ten (_S3 ten
.group u
u u
.group v
v b
.group w
w u
.group x
x S
.group y
y jj
.group z
z z
_e) z (_L01 %z
_e) z (_l
z (_S1 z
.group
á ''a
é ''e
í ''i
ó ''o
ú ''u
ç s
ü y
ñ n^

+ 14
- 0
src/libespeak-ng/dictionary.c View File

max_stress = STRESS_IS_PRIMARY; max_stress = STRESS_IS_PRIMARY;
} }
break; break;
case 15: // LANG=eu. If more than 2 syllables: primary stress in second syllable and secondary on last.
if ((stressed_syllable == 0) && (vowel_count > 2)) {
for (ix = 1; ix < vowel_count; ix++) {
vowel_stress[ix] = STRESS_IS_DIMINISHED;
}
stressed_syllable = 2;
if (max_stress == STRESS_IS_DIMINISHED)
vowel_stress[stressed_syllable] = STRESS_IS_PRIMARY;
max_stress = STRESS_IS_PRIMARY;
if (vowel_count > 3) {
vowel_stress[vowel_count - 1] = STRESS_IS_SECONDARY;
}
}
break;
} }


if ((stressflags & S_FINAL_VOWEL_UNSTRESSED) && ((control & 2) == 0) && (vowel_count > 2) && (max_stress_input < STRESS_IS_SECONDARY) && (vowel_stress[vowel_count - 1] == STRESS_IS_PRIMARY)) { if ((stressflags & S_FINAL_VOWEL_UNSTRESSED) && ((control & 2) == 0) && (vowel_count > 2) && (max_stress_input < STRESS_IS_SECONDARY) && (vowel_stress[vowel_count - 1] == STRESS_IS_PRIMARY)) {

+ 2
- 2
src/libespeak-ng/tr_languages.c View File

static const short stress_lengths_eu[8] = { 200, 200, 200, 200, 0, 0, 210, 230 }; // very weak stress static const short stress_lengths_eu[8] = { 200, 200, 200, 200, 0, 0, 210, 230 }; // very weak stress
static const unsigned char stress_amps_eu[8] = { 16, 16, 18, 18, 18, 18, 18, 18 }; static const unsigned char stress_amps_eu[8] = { 16, 16, 18, 18, 18, 18, 18, 18 };
SetupTranslator(tr, stress_lengths_eu, stress_amps_eu); SetupTranslator(tr, stress_lengths_eu, stress_amps_eu);
tr->langopts.stress_rule = STRESSPOSN_2L; // ?? second syllable, but not on a word-final vowel tr->langopts.stress_rule = 15;
tr->langopts.stress_flags = S_FINAL_VOWEL_UNSTRESSED; tr->langopts.stress_flags = S_FINAL_VOWEL_UNSTRESSED | S_MID_DIM;
tr->langopts.param[LOPT_SUFFIX] = 1; tr->langopts.param[LOPT_SUFFIX] = 1;
tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_VIGESIMAL; tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_VIGESIMAL;
} }

Loading…
Cancel
Save