Browse Source

Created spanish diphthongs [oi], added statements to distinguish final diphtong, Created file phoneme oo_ unstressed final vowel.

Replace upercase O in ditc source

Added statements for unstressed vowels, change length/amplitude for unstressed vowels.

improved spanish prosody in tr_language.c

Added rule for suffix mente in es_rules

Translated language names

Added rules for letter spanish ce cedilla, see issue 130

Intonation: improved head and prehead in tune q6
master
chrislm 8 years ago
parent
commit
d90c7f259a
8 changed files with 187 additions and 132 deletions
  1. 116
    97
      dictsource/es_list
  2. 25
    23
      dictsource/es_rules
  3. 2
    2
      phsource/intonation
  4. 42
    8
      phsource/ph_spanish
  5. BIN
      phsource/vwl_es/oo_
  6. BIN
      phsource/vwl_es/ooi
  7. BIN
      phsource/vwl_es/ooi_
  8. 2
    2
      src/libespeak-ng/tr_languages.c

+ 116
- 97
dictsource/es_list View File

@@ -3,94 +3,113 @@
// letters

_cap m'aJ^us // should be "mayúscula" after the letter?
_?? s'imbOlo
_?? s'imbolo
_#32 Esp'aTjo


// accent names
_lig liQaD'ura
_acu aQ'uDo
_ac2 d'Oble||aQ'uDo
_ac2 d'oble||aQ'uDo
_brv br'eBe
_ced TeD'iJ^a
_cir Tirkumfl'exo
_dia dj'Eresis
_dac d'Oble||aQ'uDo
_dot p'unto // ??
_dac d'oble||aQ'uDo
_dot p'unto
_grv gr'aBe
_hac kar'On
_mcn makr'On
_hac kar'on
_mcn makr'on
_ogo kol'ita
_rng an'iJ^o
_stk b'aRR2a // ??
_tld t'ilde
_sup supE**'indiTe // soB**e||esk**'ito
_sub suB'indiTe


// names of symbols
ª a
º o
// ª a
// º o
° grados
_. punto
_, koma
_; p,untoik'oma
_: d,Osp'untOs
_! TERR2'araDmiraTj'On
_? TERR2'arintERR2,oQaTj'On
_¡ aBr'iraDmiraTj'On
_¿ aBr'irintERR2,oQaTj'On
_< men'Orke
_> maJ^'Orke
_' apOstr'ofo
_: d,osp'untos
_! TERR2'araDmiraTj'on
_? TERR2'arintERR2,oQaTj'on
_¡ aBr'iraDmiraTj'on
_¿ aBr'irintERR2,oQaTj'on
_< men'orke
_> maJ^'orke
_' apostr'ofo
_" kom'iJ^as
_+ s'iQnOdesum'ar
_- gJ^On
// _+ s'iQnodesum'ar
_- gJ^on
__ suBraJ^'aDo
_/ baRR2a
_\ b'aRR2aimbErt'iDa
_` aT'EntOgr'aBe
_` aT'Ento||gr'aBe
_´ aT'Ento||aQ'uDo
_( ,aBrepar'Entesis
_) Tj,ERR2apar'Entesis
_[ ,aBrekOrtS'ete
_] Tj,ERR2akOrtS'ete
_[ ,aBrekortS'ete
_] Tj,ERR2akortS'ete
_{ ,aBreJ^'aBe
_} Tj,ERR2aJ^'aBe
_« kom'iJ^as||iTkJ^'ErDas
_» kom'iJ^as||dEr'EtSas

= iQw'al $max3
+ m'as $max3
# almOaD'iJ^a $max3
# almoaD'iJ^a $max3
* astEr'isko $max3
. punto $max3

^ Tirkumfl'exo
₠ 'eU*o
€ eUro
% pOrTj'Ento $max3
% porTj'Ento $max3
& ampErs'ant
@ aRR2'oBa
/ baRR2a
© kopiRR2'aIt
£ liBras
¶ p'aRR2afo
§ sEkTj'On

§ sEkTj'on
¬ n'ot
· p'unto||m'edjo

// Language names

_cyr Ti*'iliko_
_hy arm'enjo
_he eB@-*'Eo
_ar 'a*aBe
_hi 'i:ndi
_bn beNg,al'i_
_ta t'amil
_te tel'ugu
_si TiNgal'es
_th t'a:i
_my birm'ano
_ko ko*e/'ano
_ja x,apon'Es
_zh tS'ino

// numbers
_0 T'ero
_1 'uno
_2 d'Os
_2 d'os
_3 tr'es
_4 kw'atro
_5 T'inko
_6 s'eIs
_7 sj'ete
_8 'OtSo
_8 'otSo
_9 nw'eBe
_1X dj'ET
_11 'OnTe
_11 'onTe
_12 d'oTe
_13 tr'eTe
_14 kat'OrTe
_14 kat'orTe
_15 k'inTe
_20 b'eInte
_2X beInt
@@ -99,28 +118,28 @@ _4X kwar'Enta
_5X Tinkw'Enta
_6X sEs'Enta
_7X sEt'Enta
_8X OtS'Enta
_9X nOB'Enta
// _0C Tj'EntOs
_8X otS'Enta
_9X noB'Enta
// _0C Tj'Entos
_1C0 Tj'en // exactly one hundred
_1C Tj'ento
_2C dosTj'entos
_3C tresTj'entos
_4C kwatroTj'entos
_5C kinj'EntOs
_5C kinj'Entos
_6C seIsTj'entos
_7C s,eteTj'EntOs
_7C s,eteTj'Entos
_8C otSoTj'entos
_9C n,OBeTj'EntOs
_9C n,oBeTj'Entos
_0M1 m'il
_0M2 miJ^'ones
_1M2 'unmiJ^'On
_1M2 'unmiJ^'on
_0M4 _biJ^'onEs
_1M4 'unbiJ^'On
_1M4 'unbiJ^'on
?2 _0M2 mij:'ones
?2 _1M2 'unmij:'On
?2 _1M2 'unmij:'on
?2 _0M4 _bij:'onEs
?2 _1M4 'unbij:'On
?2 _1M4 'unbij:'on
_0and i
_dpt koma
//_roman Rom'ano
@@ -140,7 +159,7 @@ _4o kw'art
_5o kint
_6o s'Ekst
_7o s'Etim
_8o Okt'aB
_8o okt'aB
_9o noB'en
_10o D'ETim
_11o und'ETim
@@ -150,7 +169,7 @@ _14o DeTimokw'art
_15o DeTimok'int
_16o DeTimos'Ekst
_17o DeTimos'Eptim
_18o DeTimOkt'aB
_18o DeTimokt'aB
_19o DeTimonoB'en
_20o Bix'Esim
_2Xo Bix'Esim
@@ -159,7 +178,7 @@ _4Xo kwaDrax'Esim
_5Xo kinkwax'Esim
_6Xo seQsax'Esim
_7Xo sEptwax'Esim
_8Xo Oktox'Esim
_8Xo oktox'Esim
_9Xo nonax'Esim
_0Co TEnt'Esim
_1Co TEnt'Esim
@@ -169,14 +188,13 @@ _4Co kwaDriNxEnt'Esim
_5Co kiNxEnt'Esim
_6Co seksTEnt'Esim
_7Co sep:tiNxEnt'Esim
_8Co OktiNxEnt'Esim
_8Co oktiNxEnt'Esim
_9Co noniNxEnt'Esim
_0M1o mil'Esim


vi bi // not a Roman number

// unstressed words
// articles
el $u+
los $u+
@@ -184,12 +202,6 @@ la $u+
las $u+
lo $u+







// pronouns

me $u+ $only // reflexive pronouns
@@ -200,7 +212,6 @@ se $u+
nos $u+
os $u+


// possessives
mi $u+
mis $u+
@@ -216,6 +227,7 @@ vuestro $u+
vuestros $u+
vuestra $u+
vuestras $u+

// prepositions
a $u+ // at
al $u+
@@ -235,21 +247,17 @@ desde $u+ // from,since
hasta $u+
hacia $u+


e $u+ $only
y %i // and
o $u+ // or
u $u+


aunque $u+ // although
pero $u+
porque $u+ // because


que $u+ // that
cuando $u+
cuanto $u+
adonde $u+
donde $u+
como $u+
quien $u+
@@ -257,9 +265,6 @@ quienes $u+
mientras $u+
si $u+




// Letters
// If a letter has a "word" pronunciation which is different from its
// "letter" name, then include the letter name here, with the letter
@@ -271,7 +276,7 @@ d de
f Efe
g xe
h atSe
j xOta
j xota
k ka
l Ele
m Eme
@@ -283,7 +288,7 @@ r Ere
s Ese
t te
v uBe
w uBe||d'OBle
w uBe||d'oBle
x Ekis
z TEta

@@ -299,8 +304,7 @@ ll 'El^e
_ó 'o||aTEntw'aDa
ú 'u||aTEntw'aDa
ü 'u||kon||dj'ErEsis


ç $accent

// Abbreviations
dña doña $text
@@ -326,48 +330,63 @@ Sres señores $text $capital $dot
Srta señorita $text $capital $dot
Ud usted $text $capital $dot
Uds ustedes $text $capital $dot
// (/ h) pOr||'Ora

// (/ h) por||'ora

// pronunciation exceptions
ser s'e@-* $only // it's not a abbrev

linux $1
// Proper Names and countries
amsterdam $3
bardem $2
jerusalem $4
méxico m'Exiko
vietnam $2
spanish sp'aniS

// foreign words

android 'androId
apple 'ap@l
copyright k'opiRR2,aIt
chrome kr'owm
curriculum $2
diem d'i:em $only
eloquence 'elokwens
english ínglish $text
espeak 'isp'ik
eyes 'aIs
facebook f'eIsbuk
firefox f'aIrfoks
microsoft m'aIkrosoft
software s'oftwer
free fr'i
google g'ug@l
hardware h'ardwer
skype sk'aIp
messenger m'esendZer
live l'aIB
facebook f'eIsbuk
twitter tw'iter
twit tw'it
mozilla moT'ila
espeak 'isp'ik
(e speak) 'isp'ik
eloquence 'elokwens
speech sp'itS
platform pl'atfom
voice bois $text
windows w'indows
android 'androId
apple 'ap@l
(i phone) 'aIfon
iphone 'aIfon
(i pod) 'aIpod
ipod 'aIpod
jaws dZ'os
window w'indow
eyes 'aIs
free fr'i
google g'ug@l
chrome kr'owm
jazz dZ'as
linux $1
live l'aIB
messenger m'esendZer
microsoft m'aIkrosoft
mozilla moT'ila
office 'ofis
service s'erBis
platform pl'atfom
power p'awer
service s'erBis
skype sk'aIp
snapshot sn'apS,ot // _^_en
software s'oftwer
spanish sp'aniS
speech sp'itS
thunderbird t'anderbird
jazz dZ'as
twit tw'it
twitter tw'iter
voice bois $text
window w'indow

(e speak) 'isp'ik
(i phone) 'aIfon
(i pod) 'aIpod

// Main nouns Dictionary
cataplum $3


+ 25
- 23
dictsource/es_rules View File

@@ -39,11 +39,15 @@
c k
_) c (L01A k // allow: cl cr at start of word
_) ch tS // allow _ch
c (Y T // ce, ci
ch tS
A) ck k
.group ç
ç s
A) ç (A s
_) ç s
.group d
d d
_) d ($unpr d // phoneme definition may change it to [D]
@@ -64,18 +68,16 @@
.group e
e e
// e (CK E
e (nK E
e (r E
e (nC E
// e (r E
e (Ch e
Ar) e E
ei eI
ey (K eI
ey (_ 'eI
// Ar) e E
ei ei
ey (K ei
ey (_ 'ei
eu eU
eu (_ 'eU
.group f
f f
_) f (L01A f // allow fl fr at start of word
@@ -138,7 +140,7 @@
// @) m (_ =m
_) mn (em n
_) mb (A mb
@@) mente (_S5t m'e/nte
.group n
n n
@@ -151,14 +153,14 @@
_) nh (A n
.group o
o o
o (CK O
o (r O
o (Ch o
Ar) o O
oi oI
oy (K oI
oy (_ 'oI
o o
o (CK o
o (r o
o (Ch o
// Ar) o o
oi oI
oy (K oI
oy (_ 'oI
ou ow
.group p
@@ -267,17 +269,17 @@
.group
á ''a
é ''E
é ''e
í ''i
ó ''O
ó ''o
ú ''u
ü u
ñ n^
$ d'Olar
$ d'olar
_) - (_D m'EnOs
_) - (_D m'Enos
A_) - (_D _
C_) - (_D _
, (D kOma
, (D koma

+ 2
- 2
phsource/intonation View File

@@ -247,9 +247,9 @@ nucleus fall-rise 74 26 23 45
endtune

tune q6
prehead 48 60
prehead 58 40
headenv fall 16
head 3 78 40 -7 -3
head 3 74 45 -7 -2
headextend 10 47 23 9 0
onset 58 45 48
headlast 55 32 27

+ 42
- 8
phsource/ph_spanish View File

@@ -6,19 +6,37 @@

phoneme a
vowel starttype #a endtype #a
length 200
length 190
ChangeIfNotStressed(a/)
FMT(vowel/a_4)
endphoneme

phoneme a/
vowel starttype #a endtype #a
length 155
IF thisPh(isWordEnd) THEN
FMT(vowel/a_4, 85)
ENDIF
FMT(vowel/a_4, 95)
endphoneme

phoneme e
vowel starttype #e endtype #e
length 200
length 190
ChangeIfNotStressed(e/)
FMT(vowel/e_mid2)
endphoneme

phoneme e/
vowel starttype #e endtype #e
length 150
FMT(vowel/e_mid2, 90)
endphoneme

phoneme E
vowel starttype #e endtype #e
length 200
length 175
ChangeIfNotStressed(e/)
FMT(vowel/e_mid2)
endphoneme

@@ -31,14 +49,22 @@ endphoneme

phoneme o
vowel starttype #o endtype #o
length 200
length 195
ChangeIfNotStressed(o/)
IF nextPhW(n) THEN
length 160
FMT(vowel/o_mid2)
ENDIF
FMT(vowel/oo)
endphoneme

phoneme O
phoneme o/
vowel starttype #o endtype #o
length 200
FMT(vowel/oo)
length 155
IF thisPh(isWordEnd) THEN
FMT(vwl_es/oo_)
ENDIF
FMT(vowel/oo, 90)
endphoneme

phoneme u
@@ -47,7 +73,15 @@ phoneme u
FMT(vowel/u_bck2)
endphoneme


phoneme oI
vowel starttype #o endtype #i
length 245
IF thisPh(isWordEnd) OR prevPh(r) THEN
length 260
FMT(vwl_es/ooi_)
ENDIF
FMT(vwl_es/ooi)
endphoneme


phoneme g

BIN
phsource/vwl_es/oo_ View File


BIN
phsource/vwl_es/ooi View File


BIN
phsource/vwl_es/ooi_ View File


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

@@ -691,8 +691,8 @@ Translator *SelectTranslator(const char *name)
case L('i', 'a'): // Interlingua
case L_pap: // Papiamento
{
static const short stress_lengths_es[8] = { 160, 140, 145, 140, 0, 0, 200, 245 };
static const unsigned char stress_amps_es[8] = { 16, 13, 15, 16, 20, 20, 22, 22 }; // 'diminished' is used to mark a quieter, final unstressed syllable
static const short stress_lengths_es[8] = { 160, 145, 155, 150, 0, 0, 200, 245 };
static const unsigned char stress_amps_es[8] = { 16, 14, 15, 16, 20, 20, 22, 22 }; // 'diminished' is used to mark a quieter, final unstressed syllable
static const wchar_t ca_punct_within_word[] = { '\'', 0xb7, 0 }; // ca: allow middle-dot within word

SetupTranslator(tr, stress_lengths_es, stress_amps_es);

Loading…
Cancel
Save