From d90c7f259a96fa8753035beda9a3112a58011aa0 Mon Sep 17 00:00:00 2001 From: chrislm Date: Fri, 22 Jul 2016 18:43:27 +0200 Subject: [PATCH] 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 --- dictsource/es_list | 217 +++++++++++++++++--------------- dictsource/es_rules | 48 +++---- phsource/intonation | 4 +- phsource/ph_spanish | 50 ++++++-- phsource/vwl_es/oo_ | Bin 0 -> 1594 bytes phsource/vwl_es/ooi | Bin 0 -> 36055 bytes phsource/vwl_es/ooi_ | Bin 0 -> 4482 bytes src/libespeak-ng/tr_languages.c | 4 +- 8 files changed, 189 insertions(+), 134 deletions(-) create mode 100644 phsource/vwl_es/oo_ create mode 100644 phsource/vwl_es/ooi create mode 100644 phsource/vwl_es/ooi_ 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 0000000000000000000000000000000000000000..1a2a654f204ad8db74ef74dafc9889f3070162e0 GIT binary patch literal 1594 zcmd6n&1zFo6otRsBsBj`+N8DlYc)ScRH6;2*g-E!MZrRAE2s#T;-HEW6$cJP`T#od z0d!IX2ciQ(a1zMiF{n9=pK|h!$=b<$-Oof`$WtN4 z;AW&1Z~NN5fDeqpM%48n_0US9HRO$XnImYBUpiq79u;xCNUc=eg3Op8`_wikJ%3t% zx5@{eaf>&+#^pFu6d5PQ2x<0_Bd_&-8q6!^1h-kFqH#cIo-$SW3|WR1IZ9kULDG(t z-lNKs5}Fj6kdG5l#IW)fb#h9UXHusN8ac-F&5ZWa%>I6Uu4Vty4Srv@6WqX;&V)W@ zbhz9_*?|sz?)k~=U59$;-|8^S6`FkJ33qwVN0yluHx)5tSd9@Cdl{)x;s_VG&q?lZ ziG$+b=uqG=hb-4g#l&O*hQxG)5JAHByjlA-58IuP#ggLMXjxX)in0~-Hd>D#Y?29mr7Cqx)|ag>sWK+DV=6GWYb9V?XTsZ=qy&Q%0p6~&5gkNU5?;hAVNY## WCaZ)8QC}=|PIY4b)|viaCH?^C*1p~V literal 0 HcmV?d00001 diff --git a/phsource/vwl_es/ooi b/phsource/vwl_es/ooi new file mode 100644 index 0000000000000000000000000000000000000000..16d0f7c3fe6481362e04ed010470cbc144d21637 GIT binary patch literal 36055 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 literal 0 HcmV?d00001 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);