More fixes for &--; sequences. lang=es: use phoneme [O] for letter 'o' except at end of word. leng=es: attempt to improve single 'r' between two vowels. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@139 d46cf337-b52f-0410-862d-fd96e6ae7743master
| @@ -89,12 +89,12 @@ r R s t ts v z Z | |||
| Dictionary es_dict | |||
| @- a aI e E eI eU i | |||
| o oI u | |||
| o O oI u | |||
| * ** b B d D f g | |||
| j J J^ k l l^ m n | |||
| n^ p Q r R s t T | |||
| tS v w x | |||
| * ** : b B d D f | |||
| g j J J^ k l l^ m | |||
| n n^ p Q r R s t | |||
| T tS v w x | |||
| Dictionary fi_dict | |||
| @@ -341,9 +341,9 @@ i i. i[ iou o o- ou u | |||
| uai y | |||
| (u) : f h j k kh l | |||
| m n N p ph r s S# | |||
| s. S; t th ts ts. ts. tS; | |||
| tS; tsh v w x z z. | |||
| m n N p ph r s s. | |||
| S; t th ts ts. ts. tS; tS; | |||
| tsh v w x z z. | |||
| Dictionary jbo_dict | |||
| @@ -4,70 +4,70 @@ | |||
| // letters | |||
| _cap m'aJ^us | |||
| _?? s'imbolo | |||
| _?? s'imbOlo | |||
| _#32 Esp'aTjo | |||
| // names of symbols | |||
| _. punto | |||
| _, koma | |||
| _; p,untoik'oma | |||
| _: d,osp'untos | |||
| _! TE*R'aRaDmi**aTj'on | |||
| _? TE*R'aRintE*R,oQaTj'on | |||
| _¡ aB@-*'iRaDmi**aTj'on | |||
| _¿ aB@-*'iRintE*R,oQaTj'on | |||
| _, kOma | |||
| _; p,untOik'Oma | |||
| _: d,Osp'untOs | |||
| _! TE*R'aRaDmi**aTj'On | |||
| _? TE*R'aRintE*R,OQaTj'On | |||
| _¡ aB@-*'iRaDmi**aTj'On | |||
| _¿ aB@-*'iRintE*R,OQaTj'On | |||
| _= iQw'al | |||
| _< mEn'oRke | |||
| _> maJ^'oRke | |||
| _' apost@-*'ofo | |||
| _" kom'iJ^as | |||
| _+ s'iQnodesum'aR | |||
| _$ dolar | |||
| _# almoaD'il^a | |||
| _< mEn'ORke | |||
| _> maJ^'ORke | |||
| _' apOst@-*'Ofo | |||
| _" kOm'iJ^as | |||
| _+ s'iQnOdesum'aR | |||
| _$ dOlar | |||
| _# almOaD'il^a | |||
| _* astE*'isko | |||
| _- gJ^on | |||
| _- gJ^On | |||
| __ suB@-*aJ^'aDo | |||
| _/ ba*Ra | |||
| _\ b'a*RaimbERt'iDa | |||
| _` aT'Entog@-*'aBe | |||
| _` aT'EntOg@-*'aBe | |||
| _( ,aB@-*epa**'EntEsis | |||
| _) Tj,E*Rapa**'EntEsis | |||
| _[ ,aB@-*ekoRtS'Ete | |||
| _] Tj,E*RakoRtS'Ete | |||
| _[ ,aB@-*ekORtS'Ete | |||
| _] Tj,E*RakORtS'Ete | |||
| _{ ,aB@-*eJ^'aBe | |||
| _} Tj,E*RaJ^'aBe | |||
| _« kom'iJ^as||iTkJ^'ERDas | |||
| _» kom'iJ^as||dE**'EtSas | |||
| _« kOm'iJ^as||iTkJ^'ERDas | |||
| _» kOm'iJ^as||dE**'EtSas | |||
| ^ TiRkumfl'Exo | |||
| € eU*o | |||
| % porTj'Ento | |||
| % pOrTj'Ento | |||
| & ampERs'ant | |||
| @ a*R'oBa | |||
| @ a*R'OBa | |||
| / ba*Ra | |||
| © kopi*R'aIt | |||
| © kOpi*R'aIt | |||
| £ liB@-*as | |||
| ¶ p'a*Rafo | |||
| § sEkTj'on | |||
| § sEkTj'On | |||
| // numbers | |||
| _0 TE*o | |||
| _1 'uno | |||
| _2 d'os | |||
| _2 d'Os | |||
| _3 t@-*'es | |||
| _4 kw'at@-*o | |||
| _5 T'inko | |||
| _6 s'eIs | |||
| _7 sj'Ete | |||
| _8 'otSo | |||
| _8 'OtSo | |||
| _9 nw'Eve | |||
| _1X dj'ET | |||
| _11 'onTe | |||
| _12 d'oTe | |||
| _11 'OnTe | |||
| _12 d'OTe | |||
| _13 t@-*'ETe | |||
| _14 kat'oRTe | |||
| _14 kat'ORTe | |||
| _15 k'inTe | |||
| _20 v'eInte | |||
| _2X v'eInt | |||
| @@ -76,23 +76,23 @@ _4X kwa*'Enta | |||
| _5X Tinkw'Enta | |||
| _6X sEs'Enta | |||
| _7X sEt'Enta | |||
| _8X otS'Enta | |||
| _9X nov'Enta | |||
| _0C T'ientos | |||
| _8X OtS'Enta | |||
| _9X nOv'Enta | |||
| _0C T'ientOs | |||
| _1C0 T'ien // exactly one hundred | |||
| _1C T'iento | |||
| _5C kinj'Entos | |||
| _7C s,EtETj'Entos | |||
| _9C n,ovETj'Entos | |||
| _5C kinj'EntOs | |||
| _7C s,EtETj'EntOs | |||
| _9C n,OvETj'EntOs | |||
| _0M1 m'il | |||
| _1M1 m'il // no '1' before thousand | |||
| _0M2 mil^'ones | |||
| _1M2 'unmil^'on | |||
| _0M4 _bil^'ones | |||
| _1M4 'unbil^'on | |||
| _0M2 mil^'Ones | |||
| _1M2 'unmil^'On | |||
| _0M4 _bil^'Ones | |||
| _1M4 'unbil^'On | |||
| _0and i | |||
| _dpt koma | |||
| //_roman Rom'ano | |||
| _dpt kOma | |||
| //_roman ROm'ano | |||
| vi vi // not a Roman number | |||
| @@ -76,7 +76,7 @@ | |||
| .group j | |||
| _) j (_ x'ota | |||
| _) j (_ x'Ota | |||
| j x | |||
| @@ -109,7 +109,8 @@ | |||
| .group o | |||
| _) o (_ o | |||
| o o | |||
| o O | |||
| o (_ o | |||
| oy (K oI | |||
| oy (_ 'oI | |||
| @@ -117,6 +118,7 @@ | |||
| .group p | |||
| _) p (_ pe | |||
| p p | |||
| p (t p: | |||
| .group q | |||
| @@ -164,14 +166,14 @@ | |||
| .group w | |||
| _) w (_ ,uBe||d'oBle | |||
| _) w (_ ,uBe||d'OBle | |||
| w w | |||
| .group x | |||
| _) x (_ Ekis | |||
| x ks | |||
| A) x (A Qs | |||
| // A) x (A Qs // ?? | |||
| x (_ =Qs | |||
| @@ -194,22 +196,22 @@ | |||
| á ''a | |||
| é ''E | |||
| í ''i | |||
| ó ''o | |||
| ó ''O | |||
| ú ''u | |||
| ü u | |||
| ñ n^ | |||
| _)ñ (_ En^e | |||
| $ d'olar | |||
| $ d'Olar | |||
| + m'as | |||
| _) ++ (_ masm'as | |||
| \+\+\+) + // ignore + after the first 3 | |||
| # almoaD'il^a | |||
| # almOaD'il^a | |||
| \#) # | |||
| __) - (_D m'Enos | |||
| __) - (_D m'EnOs | |||
| A_) - (_D _ | |||
| C_) - (_D _ | |||
| --) - | |||
| @@ -223,4 +225,4 @@ | |||
| . (. _: | |||
| \.) . | |||
| , (D koma | |||
| , (D kOma | |||
| @@ -5,7 +5,7 @@ | |||
| // 2006-11-18 Gilles Casse <[email protected]> | |||
| // | |||
| // Updated 2008-02-08 Michel Such <[email protected]> | |||
| // Updated 2008-02-10 Michel Such <[email protected]> | |||
| // | |||
| // * Numbers, a few abbreviations and exceptions. | |||
| // | |||
| @@ -178,6 +178,7 @@ ac $abbrev | |||
| adsl $abbrev | |||
| alt $pause | |||
| amd $abbrev | |||
| anpe $abbrev | |||
| api $abbrev | |||
| avh $abbrev | |||
| cci $abbrev | |||
| @@ -198,6 +199,7 @@ mme madam | |||
| mr m@sjY | |||
| nti $abbrev | |||
| nvda $abbrev | |||
| ong $abbrev | |||
| pci $abbrev | |||
| pda $abbrev | |||
| p.s postskRiptOm | |||
| @@ -417,21 +419,39 @@ absent absA~ | |||
| accident aksidA~ | |||
| adéquat adekuat2 | |||
| adéquate adekuat | |||
| airbus Erbys | |||
| anus anys | |||
| any Eni | |||
| ardent aRdA~ | |||
| bissus bisys | |||
| bonus bonys | |||
| bus bys | |||
| bus by $verb | |||
| campus kA~pys | |||
| casus kazys | |||
| choeur k@r | |||
| cocus coky | |||
| discident disidA~ | |||
| eye aj | |||
| eyes ajz | |||
| fils fis | |||
| imprudent E~pRydA~ | |||
| juin ZyE~ | |||
| malus malys | |||
| many mEni | |||
| mars maRs | |||
| minus minys | |||
| occident OksidA~ | |||
| orient ORjA~ | |||
| pays pEi | |||
| phallus falys | |||
| prudent pRydA~ | |||
| secret sYkRE | |||
| souris suri | |||
| sus sys | |||
| sus sy $verb | |||
| to tu | |||
| vénus venys | |||
| mens mA~z2 | |||
| @@ -518,6 +538,7 @@ flirt fl@Rt | |||
| // words from other languages | |||
| about @bawt | |||
| acer asEr | |||
| amazon amaz'On | |||
| (audible manager) od'ibl||manadZ'@r | |||
| be bi | |||
| @@ -554,7 +575,6 @@ its its | |||
| klaxon klaksOn | |||
| leader li:d@R | |||
| let lEt | |||
| link link | |||
| liszt list | |||
| lite lajt | |||
| (mac os x) makoEsiks | |||
| @@ -577,7 +597,6 @@ release rili:z | |||
| schubert SubER | |||
| screamer skri:m@r | |||
| (search & destroy) s@:rS_||end_||dEsstrOj | |||
| shrink Sr'ink | |||
| skype sk'ajp@- | |||
| spybot spajbOt | |||
| sun s@n | |||
| @@ -3,7 +3,7 @@ | |||
| // 2006-11-18 Gilles Casse <[email protected]> | |||
| // | |||
| // Updated: 2008-02-08 Michel Such <[email protected]> | |||
| // Updated: 2008-02-10 Michel Such <[email protected]> | |||
| // | |||
| // * The rules are based on Cicero TTS. | |||
| // | |||
| @@ -151,6 +151,7 @@ | |||
| em (me a // femme patiemment | |||
| em (b A~ // décembre | |||
| em (m A~ // emmancher | |||
| em (manu e // emmanuel | |||
| em (p A~ | |||
| en (_ A~n2 // en | |||
| en (hA A~n // enharmonique | |||
| @@ -425,12 +426,14 @@ _) h (are _! // hareng, haret | |||
| _) h (arf _! // harfang | |||
| _) h (argn _! // hargne | |||
| _) h (ari _! // haricot haridelle | |||
| _) h (ark _! // harka | |||
| _) h (arn _! // harnais | |||
| _) h (arp _! // harpe | |||
| _) h (as _! // hasard, hase | |||
| _) h (âs _! // hâte | |||
| _) h (au _! // haut | |||
| _) h (av _! // havre | |||
| _) h (eau _! // heaume | |||
| _) h (él _! // hélas, héler | |||
| _) h (èl _! // hèlement | |||
| @@ -445,6 +448,7 @@ _) h (ertz _! // hertz | |||
| _) h (êtr _! // hêtre, hêtraie | |||
| _) h (eula _! // heulandite | |||
| _) h (eurt _! // heurter | |||
| _) h (iat _! // hiatal, hiatus | |||
| _) h (ibo _! // hibou | |||
| _) h (ic _! // hic | |||
| @@ -455,6 +459,7 @@ _) h (igh _! // highlandais | |||
| _) h (i-han _! // hi-han | |||
| _) h (iss _! // hisser | |||
| _) h (it _! // hit, hit-parad | |||
| _) h (ob _! // hobby, hobereau | |||
| _) h (och _! // hocher | |||
| _) h (ock _! // hockey | |||
| @@ -476,6 +481,7 @@ _) h (ot _! // hot-dog, hotte | |||
| _) h (ou _! // houle, housse | |||
| _) h (u _! | |||
| _) h (uil // huile | |||
| _) h (uiss // huissier | |||
| _) h (uî // huître | |||
| _) h (umain // humain | |||
| @@ -511,6 +517,7 @@ _) h (umo // humour | |||
| ing (_ iN // parking | |||
| in (h in // inhumain | |||
| inct (_ E~ // distinct | |||
| ink (_ ink // link, pink | |||
| in (n i // innombrable | |||
| in (C E~ // vingt | |||
| // in (_ E~ // vin | |||
| @@ -574,6 +581,7 @@ _) h (umo // humour | |||
| o (che_ O // poche, cloche | |||
| oe (ll wa // moelleux | |||
| _) oe (C Y // oesophage | |||
| _ph) oe (t Y // phoetus | |||
| oeu @ // soeur coeur | |||
| oeufs @ // oeufs boeufs | |||
| o (eC o // coefficient | |||
| @@ -727,21 +735,35 @@ e) s (_h z2 | |||
| xpan) s (A s // expansion | |||
| ibu) s (_ s | |||
| _u) s (_ s | |||
| Cu) s (_ | |||
| Abu) s (_ s | |||
| _Abu) s (_ | |||
| mbu) s (_ s | |||
| cu) s (_ s // focus phallus cumulus minus | |||
| iu) s (_ s | |||
| Acu) s (_ s | |||
| écu) s (_ | |||
| odu) s (_ s | |||
| gu) s (_ s | |||
| igu) s (_ // aigus | |||
| iu) s (_ s // radius | |||
| ïu) s (_ s // laïus | |||
| Culu) s (_ s // cumulus | |||
| plu) s (_ z2 // plus, surplus | |||
| mu) s (_ s | |||
| nu) s (_ s | |||
| pu) s (_ s | |||
| llu) s (_ s | |||
| ulu) s (_ s | |||
| _mu) s (_ | |||
| ému) s (_ | |||
| opu) s (_ s // opus, octopus | |||
| Aru) s (_ s // virus | |||
| aru) s (_ // disparus | |||
| psu) s (_ s // lapsus | |||
| atu) s (_ s // stratus cactus motus | |||
| ctu) s (_ s | |||
| ctu) s (_ s // cactus | |||
| etu) s (_ s | |||
| aitu) s (_ | |||
| itu) s (_ s | |||
| otu) s (_ s | |||
| ltu) s (_ s // altus | |||
| otu) s (_ s // motus | |||
| _tou) s (_C | |||
| _tou) s (_ s | |||
| @@ -817,8 +839,10 @@ C) te (_ t@- // patte | |||
| u y // cruel nuage brut | |||
| ui w^i | |||
| _b) usi iz // business, businessman | |||
| c) ueill Wj // cueillir | |||
| c) ueil (_ Wj // recueil | |||
| _c) ul (_ y | |||
| g) ueill Wj // orgueilleux | |||
| g) ueil (_ Wj // orgueil | |||
| @@ -883,6 +907,7 @@ C) te (_ t@- // patte | |||
| ym (p E~ // tympan | |||
| y (nn i | |||
| y (nA i | |||
| ys (_ is | |||
| yx (_ iks | |||
| yn E~ // laryngite | |||
| @@ -234,6 +234,7 @@ language). | |||
| .group y | |||
| y j //before a o e i | |||
| y (u //NULL before u | |||
| y (uDn j | |||
| yo (DngK yu | |||
| y (K i // foreign words | |||
| @@ -41,7 +41,7 @@ | |||
| is 32 124 | |||
| vi 42 137 | |||
| zhy 40 132 | |||
| zh 64 148 | |||
| zh 63 147 | |||
| sw 14 108 | |||
| th 50 142 | |||
| id 14 120 | |||
| @@ -597,15 +597,14 @@ ufric/sh_ [S] base | |||
| [s#] pt_pt | |||
| ufric/sh_pzd [S;] base | |||
| [S;] ro | |||
| [S;] zh | |||
| ufric/sh_pzd_ [S;] base | |||
| [Z;] base | |||
| ufric/sh_rfx [s.] base | |||
| [s.] zh | |||
| ufric/sh_sr [S#] zh | |||
| ufric/sh_sr.wav [S] sr | |||
| ufric/sh_pzd2 [S] sr | |||
| [Z] sr | |||
| [dZ] sr | |||
| [S;] zh | |||
| ufric/sh_rfx [s.] base | |||
| [s.] zh | |||
| ufric/s_pzd [s;] base | |||
| [z;] base | |||
| [s;] ro | |||
| @@ -802,7 +801,7 @@ ustop/tsh_pzd [tS;] zh | |||
| [ch] th | |||
| ustop/tsh_pzd_unasp [tS;] zh | |||
| [c] th | |||
| ustop/tsh_sr.wav [tS] sr | |||
| ustop/tsh_sr [tS] sr | |||
| ustop/ts_pzd [tS;] base | |||
| [ts;] base | |||
| [ch] hi | |||
| @@ -816,7 +815,7 @@ ustop/t_sr [d] sr | |||
| [t] zh | |||
| ustop/ts_rfx [ts.] zh | |||
| ustop/ts_rfx_unasp [ts.] zh | |||
| ustop/ts_sr.wav [tS;] sr | |||
| ustop/ts_sr [tS;] sr | |||
| [dZ;] sr | |||
| ustop/ts_unasp [ts] zh | |||
| ustop/t_unasp [t] th | |||
| @@ -872,8 +871,8 @@ vdiph2/uu@ [U@] en | |||
| [u@] vi | |||
| [ua] th | |||
| [u:a] th | |||
| vdiph2/y@ [y@] zh | |||
| vdiph2/y#@ [Y@] af | |||
| [y@] zh | |||
| vdiph2/yu [yU] nl | |||
| [yu] zh | |||
| vdiph2/y-y# [yY] fi | |||
| @@ -1541,7 +1540,7 @@ vowel/oo [O:] en_sc | |||
| [O@] en_wi | |||
| [O] de | |||
| [o] eo | |||
| [o] es | |||
| [O] es | |||
| [o] el | |||
| [O] sv | |||
| [O] no | |||
| @@ -1,13 +1,3 @@ | |||
| // ufric/x_sr | |||
| // ufric/ch_sr | |||
| // ufric/sh_sr | |||
| // ustop/t_sr | |||
| // ustop/ts_sr | |||
| // ustop/tsh_sr | |||
| // r3/r_sr | |||
| // m/m_sr | |||
| // n/n_sr | |||
| // n^/nj_sr | |||
| // This file inherits phonemes from ph_croatian | |||
| // Only phonemes which differ from the inherited phonemes need | |||
| @@ -97,10 +87,10 @@ phoneme dZ | |||
| vcd pla afr sibilant | |||
| vowelin f1=2 f2=2300 200 400 f3=100 80 | |||
| vowelout f1=2 f2=2300 250 300 f3=100 80 brk | |||
| formants dzh/dzh+ufric/sh_sr.wav | |||
| before _ dzh/dzh+ufric/sh_sr.wav | |||
| formants dzh/dzh+ufric/sh_pzd2 | |||
| before _ dzh/dzh+ufric/sh_pzd2 | |||
| after _ NULL | |||
| after @ dzh/dzh+ufric/sh_sr.wav | |||
| after @ dzh/dzh+ufric/sh_pzd2 | |||
| lengthmod 5 | |||
| switchvoicing tS | |||
| endphoneme | |||
| @@ -109,10 +99,10 @@ endphoneme | |||
| phoneme dZ; | |||
| vcd pla afr sibilant palatal | |||
| vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70 | |||
| formants dzh/dzh+ustop/ts_sr.wav | |||
| before _ dzh/dzh+ustop/ts_sr.wav | |||
| formants dzh/dzh+ustop/ts_sr | |||
| before _ dzh/dzh+ustop/ts_sr | |||
| after _ NULL | |||
| after @ dzh/dzh+ustop/ts_sr.wav | |||
| after @ dzh/dzh+ustop/ts_sr | |||
| lengthmod 5 | |||
| switchvoicing tS; | |||
| endphoneme | |||
| @@ -122,8 +112,8 @@ phoneme tS | |||
| vls pla afr sibilant | |||
| vowelin f1=0 f2=2300 200 400 f3=-100 80 | |||
| lengthmod 2 | |||
| wave ustop/tsh_sr.wav%50 | |||
| before _ ustop/tsh_sr.wav%50 | |||
| wave ustop/tsh_sr%50 | |||
| before _ ustop/tsh_sr%50 | |||
| switchvoicing dZ | |||
| endphoneme | |||
| @@ -132,8 +122,8 @@ phoneme tS; | |||
| vls pal afr sibilant palatal | |||
| vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70 | |||
| lengthmod 2 | |||
| wave ustop/ts_sr.wav | |||
| before _ ustop/ts_sr.wav | |||
| wave ustop/ts_sr | |||
| before _ ustop/ts_sr | |||
| switchvoicing dZ; | |||
| endphoneme | |||
| @@ -144,8 +134,8 @@ phoneme Z | |||
| vcd pla frc sibilant | |||
| vowelin f1=0 f2=2000 0 300 f3=-200 80 | |||
| vowelout f1=2 f2=2000 0 300 f3=-200 80 brk | |||
| formants voc/zh+ufric/sh_sr.wav%60 | |||
| before _ voc/zh+ufric/sh_sr.wav%50 | |||
| formants voc/zh+ufric/sh_pzd2%60 | |||
| before _ voc/zh+ufric/sh_pzd2%50 | |||
| lengthmod 6 | |||
| switchvoicing S | |||
| endphoneme | |||
| @@ -157,8 +147,8 @@ phoneme S | |||
| vowelout f1=0 f2=2100 100 300 f3=-100 80 | |||
| length 100 | |||
| lengthmod 3 | |||
| wave ufric/sh_sr.wav%70 | |||
| before _ ufric/sh_sr.wav%60 | |||
| wave ufric/sh_pzd2%70 | |||
| before _ ufric/sh_pzd2%60 | |||
| switchvoicing Z | |||
| endphoneme | |||
| @@ -9,7 +9,7 @@ phoneme E | |||
| formants vowel/e_mid | |||
| endphoneme | |||
| phoneme o | |||
| phoneme O | |||
| vowel starttype (o) endtype (o) | |||
| length 170 | |||
| formants vowel/oo | |||
| @@ -147,21 +147,14 @@ phoneme tS;h | |||
| vls pal afr sibilant palatal | |||
| vowelin f1=0 f2=2700 400 600 f3=300 80 | |||
| lengthmod 2 | |||
| wave ustop/tsh_pzd | |||
| wave ustop/tsh_pzd%80 | |||
| endphoneme | |||
| phoneme S; | |||
| vls pla frc sibilant | |||
| vowelin f1=0 f2=2700 400 600 f3=300 80 | |||
| lengthmod 2 | |||
| wave ufric/sh_pzd | |||
| endphoneme | |||
| phoneme S# | |||
| vls pla frc sibilant | |||
| vowelin f1=0 f2=2700 400 600 f3=300 80 | |||
| lengthmod 2 | |||
| wave ufric/sh_sr%20 | |||
| wave ufric/sh_pzd2%20 | |||
| endphoneme | |||
| phoneme s. | |||
| @@ -170,7 +163,7 @@ phoneme s. | |||
| vowelout f1=0 f2=1800 -100 300 f3=-300 80 | |||
| length 100 | |||
| lengthmod 3 | |||
| wave ufric/sh_rfx%60 // quieter | |||
| wave ufric/sh_rfx%50 // quieter | |||
| before _ ufric/sh_rfx%50 | |||
| endphoneme | |||
| @@ -429,5 +422,5 @@ endphoneme | |||
| phoneme y@ | |||
| vowel starttype (i) endtype (@) | |||
| length 250 | |||
| formants vdiph2/y#@ | |||
| formants vdiph2/y@ | |||
| endphoneme | |||
| @@ -603,8 +603,8 @@ endphoneme | |||
| phoneme ** // TEST flap | |||
| liquid alv | |||
| vowelout f1=3 f2=1600 -300 300 f3=-300 80 rms=35 len=15 | |||
| vowelin f1=2 f2=1600 -300 300 f3=-300 80 | |||
| formants r3/@tap+r3/rx%50 | |||
| vowelin f1=2 f2=1600 -300 300 f3=-100 80 len=20 | |||
| formants r3/@tap | |||
| vowelin f1=3 f2=1600 -300 300 f3=-300 80 | |||
| before (i) r3/@tap_i+r3/rx | |||
| before (e) r3/@tap_i+r3/rx | |||
| @@ -275,12 +275,11 @@ static TONE_HEAD tone_head_table[N_TONE_HEAD_TABLE] = { | |||
| }; | |||
| static TONE_NUCLEUS tone_nucleus_table[N_TONE_NUCLEUS_TABLE] = { | |||
| {PITCHfall, 30, 5, PITCHfall, 30, 8, NULL, 12, 7, 0}, // 0 statement | |||
| {PITCHfall, 30, 5, PITCHfall, 32, 9, NULL, 12, 7, 0}, // 0 statement | |||
| {PITCHfrise, 35, 8, PITCHfrise2, 35,10, NULL, 15, 23, 0}, // 1 comma | |||
| {PITCHfrise, 39,10, PITCHfrise2, 36,10, NULL, 15, 28, 0}, // 2 question | |||
| // {PITCHfall, 41, 4, PITCHfall, 41,27, NULL, 16, 4, T_EMPH}, // 3 exclamation | |||
| {PITCHfall, 43, 3, PITCHfall, 43,35, NULL, 35, 4, T_EMPH}, // 3 exclamation | |||
| // {PITCHrisefall,47, 8, PITCHrise, 48,30, NULL, 48, 5, T_EMPH}, // 3 exclamation | |||
| {PITCHfall, 41, 4, PITCHfall, 41,35, NULL, 35, 4, T_EMPH}, // 3 exclamation | |||
| {PITCHfall, 38, 2, PITCHfall, 42,30, NULL, 15, 5, 0}, // 4 statement, emphatic | |||
| {PITCHfall, 28, 5, PITCHfall, 28, 9, NULL, 12, 7, 0}, // 5 statement, less intonation | |||
| {PITCHfrise, 30, 8, PITCHfrise2, 30,10, NULL, 13, 20, 0}, // 6 comma, less intonation | |||
| @@ -772,6 +771,7 @@ void Translator::CalcPitches_Tone(int clause_tone) | |||
| if((p->type == phPAUSE) && (p->ph->std_length > 50)) | |||
| { | |||
| pause = 1; // there is a pause since the previous vowel | |||
| prevw_tph = phoneme_tab[phonPAUSE]; // forget previous tone | |||
| } | |||
| if(p->newword) | |||
| @@ -817,7 +817,7 @@ void Translator::CalcPitches_Tone(int clause_tone) | |||
| } | |||
| } | |||
| if(prev_tph->mnemonic == 0x343132) // [214] | |||
| if(prevw_tph->mnemonic == 0x343132) // [214] | |||
| { | |||
| if(tph->mnemonic == 0x343132) // [214] | |||
| prev_p->tone_ph = LookupPh("35"); | |||
| @@ -1695,6 +1695,7 @@ MNEM_TAB xml_char_mnemonics[] = { | |||
| {"amp", '&'}, | |||
| {"quot", '"'}, | |||
| {"nbsp", ' '}, | |||
| {"apos", '\''}, | |||
| {NULL,-1}}; | |||
| @@ -1723,13 +1724,18 @@ int Translator::ReadClause(FILE *f_in, char *buf, unsigned short *charix, int n_ | |||
| int n_xml_buf; | |||
| int terminator; | |||
| int punct; | |||
| int found; | |||
| int any_alnum = 0; | |||
| int self_closing; | |||
| int punct_data; | |||
| const char *p; | |||
| char buf2[40]; | |||
| wchar_t xml_buf[N_XML_BUF+1]; | |||
| #define N_XML_BUF2 12 | |||
| char buf2[N_XML_BUF2+2]; | |||
| static char ungot_string[N_XML_BUF2+4]; | |||
| static int ungot_string_ix = -1; | |||
| if(clear_skipping_text) | |||
| { | |||
| skipping_text = 0; | |||
| @@ -1752,14 +1758,13 @@ f_input = f_in; // for GetC etc | |||
| if(ungot_char2 != 0) | |||
| { | |||
| c2 = ungot_char2; | |||
| ungot_char2 = 0; | |||
| } | |||
| else | |||
| { | |||
| c2 = GetC(); | |||
| } | |||
| while(!Eof() || (ungot_char != 0)) | |||
| while(!Eof() || (ungot_char != 0) || (ungot_char2 != 0) || (ungot_string_ix >= 0)) | |||
| { | |||
| if(!iswalnum(c1)) | |||
| { | |||
| @@ -1782,47 +1787,79 @@ f_input = f_in; // for GetC etc | |||
| cprev = c1; | |||
| c1 = c2; | |||
| c2 = GetC(); | |||
| if(Eof()) | |||
| if(ungot_string_ix >= 0) | |||
| { | |||
| c2 = ' '; | |||
| if(ungot_string[ungot_string_ix] == 0) | |||
| ungot_string_ix = -1; | |||
| } | |||
| if((ungot_string_ix == 0) && (ungot_char2 == 0)) | |||
| { | |||
| c1 = ungot_string[ungot_string_ix++]; | |||
| } | |||
| if(ungot_string_ix >= 0) | |||
| { | |||
| c2 = ungot_string[ungot_string_ix++]; | |||
| } | |||
| else | |||
| { | |||
| c2 = GetC(); | |||
| if(Eof()) | |||
| { | |||
| c2 = ' '; | |||
| } | |||
| } | |||
| ungot_char2 = 0; | |||
| if((option_ssml) && (phoneme_mode==0)) | |||
| { | |||
| if((ssml_ignore_l_angle != '&') && (c1 == '&') && ((c2=='#') || ((c2 >= 'a') && (c2 <= 'z')))) | |||
| { | |||
| n_xml_buf = 0; | |||
| c1 = c2; | |||
| while(!Eof() && (iswalnum(c1) || (c1=='#')) && (n_xml_buf < 12)) | |||
| while(!Eof() && (iswalnum(c1) || (c1=='#')) && (n_xml_buf < N_XML_BUF2)) | |||
| { | |||
| buf2[n_xml_buf++] = c1; | |||
| c1 = GetC(); | |||
| } | |||
| buf2[n_xml_buf] = 0; | |||
| c2 = GetC(); | |||
| sprintf(ungot_string,"%s%c%c",&buf2[0],c1,c2); | |||
| if(buf2[0] == '#') | |||
| if(c1 == ';') | |||
| { | |||
| // character code number | |||
| c1 = '#'; // in case there isn't a number | |||
| if(buf2[1] == 'x') | |||
| sscanf(&buf2[2],"%x",(unsigned int *)(&c1)); | |||
| else | |||
| sscanf(&buf2[1],"%d",&c1); | |||
| } | |||
| else | |||
| { | |||
| if((j = LookupMnem(xml_char_mnemonics,buf2)) != -1) | |||
| if(buf2[0] == '#') | |||
| { | |||
| c1 = j; | |||
| // character code number | |||
| if(buf2[1] == 'x') | |||
| found = sscanf(&buf2[2],"%x",(unsigned int *)(&c1)); | |||
| else | |||
| found = sscanf(&buf2[1],"%d",&c1); | |||
| } | |||
| else | |||
| { | |||
| c1 = '&'; | |||
| if((found = LookupMnem(xml_char_mnemonics,buf2)) != -1) | |||
| { | |||
| c1 = found; | |||
| if(c2 == 0) | |||
| c2 = ' '; | |||
| } | |||
| } | |||
| } | |||
| else | |||
| { | |||
| found = -1; | |||
| } | |||
| if(found <= 0) | |||
| { | |||
| ungot_string_ix = 0; | |||
| c1 = '&'; | |||
| c2 = ' '; | |||
| } | |||
| if((sayas_mode == 0x14) && (c1 <= 0x20)) | |||
| { | |||
| c1 += 0xe000; // move into unicode private usage area | |||
| @@ -310,6 +310,9 @@ void Translator::CalcLengths() | |||
| else | |||
| p->prepause = 60; | |||
| if(prev->type == phSTOP) | |||
| p->prepause = 60; | |||
| if((langopts.word_gap & 0x10) && (p->newword)) | |||
| p->prepause = 60; | |||
| @@ -35,7 +35,7 @@ | |||
| #include "translate.h" | |||
| #include "wave.h" | |||
| const char *version_string = "1.31.08 08.Feb.08"; | |||
| const char *version_string = "1.31.09 11.Feb.08"; | |||
| const int version_phdata = 0x013105; | |||
| int option_device_number = -1; | |||