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 9 years ago
parent
commit
d90c7f259a

+ 116
- 97
dictsource/es_list View File

// letters // letters


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



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




// names of symbols // names of symbols
ª a
º o
// ª a
// º o
° grados ° grados
_. punto _. punto
_, koma _, koma
_; p,untoik'oma _; 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 _" kom'iJ^as
_+ s'iQnOdesum'ar
_- gJ^On
// _+ s'iQnodesum'ar
_- gJ^on
__ suBraJ^'aDo __ suBraJ^'aDo
_/ baRR2a _/ baRR2a
_\ b'aRR2aimbErt'iDa _\ b'aRR2aimbErt'iDa
_` aT'EntOgr'aBe
_` aT'Ento||gr'aBe
_´ aT'Ento||aQ'uDo
_( ,aBrepar'Entesis _( ,aBrepar'Entesis
_) Tj,ERR2apar'Entesis _) Tj,ERR2apar'Entesis
_[ ,aBrekOrtS'ete
_] Tj,ERR2akOrtS'ete
_[ ,aBrekortS'ete
_] Tj,ERR2akortS'ete
_{ ,aBreJ^'aBe _{ ,aBreJ^'aBe
_} Tj,ERR2aJ^'aBe _} Tj,ERR2aJ^'aBe
_« kom'iJ^as||iTkJ^'ErDas _« kom'iJ^as||iTkJ^'ErDas
_» kom'iJ^as||dEr'EtSas _» kom'iJ^as||dEr'EtSas

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

^ Tirkumfl'exo ^ Tirkumfl'exo
₠ 'eU*o
€ eUro € eUro
% pOrTj'Ento $max3
% porTj'Ento $max3
& ampErs'ant & ampErs'ant
@ aRR2'oBa @ aRR2'oBa
/ baRR2a / baRR2a
© kopiRR2'aIt © kopiRR2'aIt
£ liBras £ liBras
¶ p'aRR2afo ¶ 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 // numbers
_0 T'ero _0 T'ero
_1 'uno _1 'uno
_2 d'Os
_2 d'os
_3 tr'es _3 tr'es
_4 kw'atro _4 kw'atro
_5 T'inko _5 T'inko
_6 s'eIs _6 s'eIs
_7 sj'ete _7 sj'ete
_8 'OtSo
_8 'otSo
_9 nw'eBe _9 nw'eBe
_1X dj'ET _1X dj'ET
_11 'OnTe
_11 'onTe
_12 d'oTe _12 d'oTe
_13 tr'eTe _13 tr'eTe
_14 kat'OrTe
_14 kat'orTe
_15 k'inTe _15 k'inTe
_20 b'eInte _20 b'eInte
_2X beInt _2X beInt
_5X Tinkw'Enta _5X Tinkw'Enta
_6X sEs'Enta _6X sEs'Enta
_7X sEt'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 _1C0 Tj'en // exactly one hundred
_1C Tj'ento _1C Tj'ento
_2C dosTj'entos _2C dosTj'entos
_3C tresTj'entos _3C tresTj'entos
_4C kwatroTj'entos _4C kwatroTj'entos
_5C kinj'EntOs
_5C kinj'Entos
_6C seIsTj'entos _6C seIsTj'entos
_7C s,eteTj'EntOs
_7C s,eteTj'Entos
_8C otSoTj'entos _8C otSoTj'entos
_9C n,OBeTj'EntOs
_9C n,oBeTj'Entos
_0M1 m'il _0M1 m'il
_0M2 miJ^'ones _0M2 miJ^'ones
_1M2 'unmiJ^'On
_1M2 'unmiJ^'on
_0M4 _biJ^'onEs _0M4 _biJ^'onEs
_1M4 'unbiJ^'On
_1M4 'unbiJ^'on
?2 _0M2 mij:'ones ?2 _0M2 mij:'ones
?2 _1M2 'unmij:'On
?2 _1M2 'unmij:'on
?2 _0M4 _bij:'onEs ?2 _0M4 _bij:'onEs
?2 _1M4 'unbij:'On
?2 _1M4 'unbij:'on
_0and i _0and i
_dpt koma _dpt koma
//_roman Rom'ano //_roman Rom'ano
_5o kint _5o kint
_6o s'Ekst _6o s'Ekst
_7o s'Etim _7o s'Etim
_8o Okt'aB
_8o okt'aB
_9o noB'en _9o noB'en
_10o D'ETim _10o D'ETim
_11o und'ETim _11o und'ETim
_15o DeTimok'int _15o DeTimok'int
_16o DeTimos'Ekst _16o DeTimos'Ekst
_17o DeTimos'Eptim _17o DeTimos'Eptim
_18o DeTimOkt'aB
_18o DeTimokt'aB
_19o DeTimonoB'en _19o DeTimonoB'en
_20o Bix'Esim _20o Bix'Esim
_2Xo Bix'Esim _2Xo Bix'Esim
_5Xo kinkwax'Esim _5Xo kinkwax'Esim
_6Xo seQsax'Esim _6Xo seQsax'Esim
_7Xo sEptwax'Esim _7Xo sEptwax'Esim
_8Xo Oktox'Esim
_8Xo oktox'Esim
_9Xo nonax'Esim _9Xo nonax'Esim
_0Co TEnt'Esim _0Co TEnt'Esim
_1Co TEnt'Esim _1Co TEnt'Esim
_5Co kiNxEnt'Esim _5Co kiNxEnt'Esim
_6Co seksTEnt'Esim _6Co seksTEnt'Esim
_7Co sep:tiNxEnt'Esim _7Co sep:tiNxEnt'Esim
_8Co OktiNxEnt'Esim
_8Co oktiNxEnt'Esim
_9Co noniNxEnt'Esim _9Co noniNxEnt'Esim
_0M1o mil'Esim _0M1o mil'Esim




vi bi // not a Roman number vi bi // not a Roman number


// unstressed words
// articles // articles
el $u+ el $u+
los $u+ los $u+
las $u+ las $u+
lo $u+ lo $u+








// pronouns // pronouns


me $u+ $only // reflexive pronouns me $u+ $only // reflexive pronouns
nos $u+ nos $u+
os $u+ os $u+



// possessives // possessives
mi $u+ mi $u+
mis $u+ mis $u+
vuestros $u+ vuestros $u+
vuestra $u+ vuestra $u+
vuestras $u+ vuestras $u+

// prepositions // prepositions
a $u+ // at a $u+ // at
al $u+ al $u+
hasta $u+ hasta $u+
hacia $u+ hacia $u+



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


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


que $u+ // that que $u+ // that
cuando $u+ cuando $u+
cuanto $u+ cuanto $u+
adonde $u+
donde $u+ donde $u+
como $u+ como $u+
quien $u+ quien $u+
mientras $u+ mientras $u+
si $u+ si $u+





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


_ó 'o||aTEntw'aDa _ó 'o||aTEntw'aDa
ú 'u||aTEntw'aDa ú 'u||aTEntw'aDa
ü 'u||kon||dj'ErEsis ü 'u||kon||dj'ErEsis


ç $accent


// Abbreviations // Abbreviations
dña doña $text dña doña $text
Srta señorita $text $capital $dot Srta señorita $text $capital $dot
Ud usted $text $capital $dot Ud usted $text $capital $dot
Uds ustedes $text $capital $dot Uds ustedes $text $capital $dot
// (/ h) pOr||'Ora

// (/ h) por||'ora


// pronunciation exceptions // 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 méxico m'Exiko
vietnam $2 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 english ínglish $text
espeak 'isp'ik
eyes 'aIs
facebook f'eIsbuk
firefox f'aIrfoks firefox f'aIrfoks
microsoft m'aIkrosoft
software s'oftwer
free fr'i
google g'ug@l
hardware h'ardwer 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 iphone 'aIfon
(i pod) 'aIpod
ipod 'aIpod ipod 'aIpod
jaws dZ'os 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 office 'ofis
service s'erBis
platform pl'atfom
power p'awer 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 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

c k c k
_) c (L01A k // allow: cl cr at start of word _) c (L01A k // allow: cl cr at start of word
_) ch tS // allow _ch _) ch tS // allow _ch
c (Y T // ce, ci c (Y T // ce, ci
ch tS ch tS
A) ck k A) ck k
.group ç
ç s
A) ç (A s
_) ç s
.group d .group d
d d d d
_) d ($unpr d // phoneme definition may change it to [D] _) d ($unpr d // phoneme definition may change it to [D]
.group e .group e
e e e e
// e (CK E
e (nK E
e (r E
e (nC E
// e (r E
e (Ch 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
eu (_ 'eU eu (_ 'eU
.group f .group f
f f f f
_) f (L01A f // allow fl fr at start of word _) f (L01A f // allow fl fr at start of word
// @) m (_ =m // @) m (_ =m
_) mn (em n _) mn (em n
_) mb (A mb _) mb (A mb
@@) mente (_S5t m'e/nte
.group n .group n
n n n n
_) nh (A n _) nh (A n
.group o .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 ou ow
.group p .group p
.group .group
á ''a á ''a
é ''E
é ''e
í ''i í ''i
ó ''O
ó ''o
ú ''u ú ''u
ü u ü u
ñ n^ ñ n^
$ d'Olar
$ d'olar
_) - (_D m'EnOs
_) - (_D m'Enos
A_) - (_D _ A_) - (_D _
C_) - (_D _ C_) - (_D _
, (D kOma
, (D koma

+ 2
- 2
phsource/intonation View File

endtune endtune


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

+ 42
- 8
phsource/ph_spanish View File



phoneme a phoneme a
vowel starttype #a endtype #a vowel starttype #a endtype #a
length 200
length 190
ChangeIfNotStressed(a/)
FMT(vowel/a_4) FMT(vowel/a_4)
endphoneme 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 phoneme e
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 200
length 190
ChangeIfNotStressed(e/)
FMT(vowel/e_mid2) FMT(vowel/e_mid2)
endphoneme endphoneme


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

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




phoneme o phoneme o
vowel starttype #o endtype #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) FMT(vowel/oo)
endphoneme endphoneme


phoneme O
phoneme o/
vowel starttype #o endtype #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 endphoneme


phoneme u phoneme u
FMT(vowel/u_bck2) FMT(vowel/u_bck2)
endphoneme 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 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

case L('i', 'a'): // Interlingua case L('i', 'a'): // Interlingua
case L_pap: // Papiamento 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 static const wchar_t ca_punct_within_word[] = { '\'', 0xb7, 0 }; // ca: allow middle-dot within word


SetupTranslator(tr, stress_lengths_es, stress_amps_es); SetupTranslator(tr, stress_lengths_es, stress_amps_es);

Loading…
Cancel
Save