diff --git a/dictsource/es_list b/dictsource/es_list index 48b7abfc..ce10528f 100644 --- a/dictsource/es_list +++ b/dictsource/es_list @@ -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 -english ínglish $text -firefox f'aIrfoks -microsoft m'aIkrosoft -software s'oftwer -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 + +// foreign words + android 'androId apple 'ap@l -(i phone) 'aIfon -iphone 'aIfon -(i pod) 'aIpod -ipod 'aIpod -jaws dZ'os -window w'indow +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 free fr'i google g'ug@l -chrome kr'owm -office 'ofis -service s'erBis -power p'awer -thunderbird t'anderbird +hardware h'ardwer +iphone 'aIfon +ipod 'aIpod +jaws dZ'os jazz dZ'as +linux $1 +live l'aIB +messenger m'esendZer +microsoft m'aIkrosoft +mozilla moT'ila +office 'ofis +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 +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 + diff --git a/dictsource/es_rules b/dictsource/es_rules index 61eade04..255578fb 100644 --- a/dictsource/es_rules +++ b/dictsource/es_rules @@ -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 diff --git a/phsource/intonation b/phsource/intonation index e479323a..71883258 100644 --- a/phsource/intonation +++ b/phsource/intonation @@ -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 diff --git a/phsource/ph_spanish b/phsource/ph_spanish index 74e84178..6da8ae2a 100644 --- a/phsource/ph_spanish +++ b/phsource/ph_spanish @@ -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 diff --git a/phsource/vwl_es/oo_ b/phsource/vwl_es/oo_ new file mode 100644 index 00000000..1a2a654f Binary files /dev/null and b/phsource/vwl_es/oo_ differ diff --git a/phsource/vwl_es/ooi b/phsource/vwl_es/ooi new file mode 100644 index 00000000..16d0f7c3 Binary files /dev/null and b/phsource/vwl_es/ooi differ diff --git a/phsource/vwl_es/ooi_ b/phsource/vwl_es/ooi_ new file mode 100644 index 00000000..de726501 Binary files /dev/null and b/phsource/vwl_es/ooi_ differ diff --git a/src/libespeak-ng/tr_languages.c b/src/libespeak-ng/tr_languages.c index ccab11e4..906ca682 100644 --- a/src/libespeak-ng/tr_languages.c +++ b/src/libespeak-ng/tr_languages.c @@ -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);