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
| Dictionary es_dict | Dictionary es_dict | ||||
| @- a aI e E eI eU i | @- 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 | Dictionary fi_dict | ||||
| uai y | uai y | ||||
| (u) : f h j k kh l | (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 | Dictionary jbo_dict |
| // letters | // letters | ||||
| _cap m'aJ^us | _cap m'aJ^us | ||||
| _?? s'imbolo | |||||
| _?? s'imbOlo | |||||
| _#32 Esp'aTjo | _#32 Esp'aTjo | ||||
| // names of symbols | // names of symbols | ||||
| _. punto | _. 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 | _= 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 | _* astE*'isko | ||||
| _- gJ^on | |||||
| _- gJ^On | |||||
| __ suB@-*aJ^'aDo | __ suB@-*aJ^'aDo | ||||
| _/ ba*Ra | _/ ba*Ra | ||||
| _\ b'a*RaimbERt'iDa | _\ b'a*RaimbERt'iDa | ||||
| _` aT'Entog@-*'aBe | |||||
| _` aT'EntOg@-*'aBe | |||||
| _( ,aB@-*epa**'EntEsis | _( ,aB@-*epa**'EntEsis | ||||
| _) Tj,E*Rapa**'EntEsis | _) Tj,E*Rapa**'EntEsis | ||||
| _[ ,aB@-*ekoRtS'Ete | |||||
| _] Tj,E*RakoRtS'Ete | |||||
| _[ ,aB@-*ekORtS'Ete | |||||
| _] Tj,E*RakORtS'Ete | |||||
| _{ ,aB@-*eJ^'aBe | _{ ,aB@-*eJ^'aBe | ||||
| _} Tj,E*RaJ^'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 | ^ TiRkumfl'Exo | ||||
| € eU*o | € eU*o | ||||
| % porTj'Ento | |||||
| % pOrTj'Ento | |||||
| & ampERs'ant | & ampERs'ant | ||||
| @ a*R'oBa | |||||
| @ a*R'OBa | |||||
| / ba*Ra | / ba*Ra | ||||
| © kopi*R'aIt | |||||
| © kOpi*R'aIt | |||||
| £ liB@-*as | £ liB@-*as | ||||
| ¶ p'a*Rafo | ¶ p'a*Rafo | ||||
| § sEkTj'on | |||||
| § sEkTj'On | |||||
| // numbers | // numbers | ||||
| _0 TE*o | _0 TE*o | ||||
| _1 'uno | _1 'uno | ||||
| _2 d'os | |||||
| _2 d'Os | |||||
| _3 t@-*'es | _3 t@-*'es | ||||
| _4 kw'at@-*o | _4 kw'at@-*o | ||||
| _5 T'inko | _5 T'inko | ||||
| _6 s'eIs | _6 s'eIs | ||||
| _7 sj'Ete | _7 sj'Ete | ||||
| _8 'otSo | |||||
| _8 'OtSo | |||||
| _9 nw'Eve | _9 nw'Eve | ||||
| _1X dj'ET | _1X dj'ET | ||||
| _11 'onTe | |||||
| _12 d'oTe | |||||
| _11 'OnTe | |||||
| _12 d'OTe | |||||
| _13 t@-*'ETe | _13 t@-*'ETe | ||||
| _14 kat'oRTe | |||||
| _14 kat'ORTe | |||||
| _15 k'inTe | _15 k'inTe | ||||
| _20 v'eInte | _20 v'eInte | ||||
| _2X v'eInt | _2X v'eInt | ||||
| _5X Tinkw'Enta | _5X Tinkw'Enta | ||||
| _6X sEs'Enta | _6X sEs'Enta | ||||
| _7X sEt'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 | _1C0 T'ien // exactly one hundred | ||||
| _1C T'iento | _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 | _0M1 m'il | ||||
| _1M1 m'il // no '1' before thousand | _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 | _0and i | ||||
| _dpt koma | |||||
| //_roman Rom'ano | |||||
| _dpt kOma | |||||
| //_roman ROm'ano | |||||
| vi vi // not a Roman number | vi vi // not a Roman number | ||||
| .group j | .group j | ||||
| _) j (_ x'ota | |||||
| _) j (_ x'Ota | |||||
| j x | j x | ||||
| .group o | .group o | ||||
| _) o (_ o | _) o (_ o | ||||
| o o | |||||
| o O | |||||
| o (_ o | |||||
| oy (K oI | oy (K oI | ||||
| oy (_ 'oI | oy (_ 'oI | ||||
| .group p | .group p | ||||
| _) p (_ pe | _) p (_ pe | ||||
| p p | p p | ||||
| p (t p: | |||||
| .group q | .group q | ||||
| .group w | .group w | ||||
| _) w (_ ,uBe||d'oBle | |||||
| _) w (_ ,uBe||d'OBle | |||||
| w w | w w | ||||
| .group x | .group x | ||||
| _) x (_ Ekis | _) x (_ Ekis | ||||
| x ks | x ks | ||||
| A) x (A Qs | |||||
| // A) x (A Qs // ?? | |||||
| x (_ =Qs | x (_ =Qs | ||||
| á ''a | á ''a | ||||
| é ''E | é ''E | ||||
| í ''i | í ''i | ||||
| ó ''o | |||||
| ó ''O | |||||
| ú ''u | ú ''u | ||||
| ü u | ü u | ||||
| ñ n^ | ñ n^ | ||||
| _)ñ (_ En^e | _)ñ (_ En^e | ||||
| $ d'olar | |||||
| $ d'Olar | |||||
| + m'as | + m'as | ||||
| _) ++ (_ masm'as | _) ++ (_ masm'as | ||||
| \+\+\+) + // ignore + after the first 3 | \+\+\+) + // ignore + after the first 3 | ||||
| # almoaD'il^a | |||||
| # almOaD'il^a | |||||
| \#) # | \#) # | ||||
| __) - (_D m'Enos | |||||
| __) - (_D m'EnOs | |||||
| A_) - (_D _ | A_) - (_D _ | ||||
| C_) - (_D _ | C_) - (_D _ | ||||
| --) - | --) - | ||||
| . (. _: | . (. _: | ||||
| \.) . | \.) . | ||||
| , (D koma | |||||
| , (D kOma |
| // 2006-11-18 Gilles Casse <[email protected]> | // 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. | // * Numbers, a few abbreviations and exceptions. | ||||
| // | // | ||||
| adsl $abbrev | adsl $abbrev | ||||
| alt $pause | alt $pause | ||||
| amd $abbrev | amd $abbrev | ||||
| anpe $abbrev | |||||
| api $abbrev | api $abbrev | ||||
| avh $abbrev | avh $abbrev | ||||
| cci $abbrev | cci $abbrev | ||||
| mr m@sjY | mr m@sjY | ||||
| nti $abbrev | nti $abbrev | ||||
| nvda $abbrev | nvda $abbrev | ||||
| ong $abbrev | |||||
| pci $abbrev | pci $abbrev | ||||
| pda $abbrev | pda $abbrev | ||||
| p.s postskRiptOm | p.s postskRiptOm | ||||
| accident aksidA~ | accident aksidA~ | ||||
| adéquat adekuat2 | adéquat adekuat2 | ||||
| adéquate adekuat | adéquate adekuat | ||||
| airbus Erbys | |||||
| anus anys | |||||
| any Eni | |||||
| ardent aRdA~ | ardent aRdA~ | ||||
| bissus bisys | |||||
| bonus bonys | |||||
| bus bys | bus bys | ||||
| bus by $verb | |||||
| campus kA~pys | |||||
| casus kazys | |||||
| choeur k@r | choeur k@r | ||||
| cocus coky | |||||
| discident disidA~ | discident disidA~ | ||||
| eye aj | |||||
| eyes ajz | |||||
| fils fis | fils fis | ||||
| imprudent E~pRydA~ | imprudent E~pRydA~ | ||||
| juin ZyE~ | juin ZyE~ | ||||
| malus malys | |||||
| many mEni | |||||
| mars maRs | mars maRs | ||||
| minus minys | |||||
| occident OksidA~ | occident OksidA~ | ||||
| orient ORjA~ | orient ORjA~ | ||||
| pays pEi | pays pEi | ||||
| phallus falys | |||||
| prudent pRydA~ | prudent pRydA~ | ||||
| secret sYkRE | secret sYkRE | ||||
| souris suri | souris suri | ||||
| sus sys | |||||
| sus sy $verb | |||||
| to tu | |||||
| vénus venys | |||||
| mens mA~z2 | mens mA~z2 | ||||
| // words from other languages | // words from other languages | ||||
| about @bawt | about @bawt | ||||
| acer asEr | |||||
| amazon amaz'On | amazon amaz'On | ||||
| (audible manager) od'ibl||manadZ'@r | (audible manager) od'ibl||manadZ'@r | ||||
| be bi | be bi | ||||
| klaxon klaksOn | klaxon klaksOn | ||||
| leader li:d@R | leader li:d@R | ||||
| let lEt | let lEt | ||||
| link link | |||||
| liszt list | liszt list | ||||
| lite lajt | lite lajt | ||||
| (mac os x) makoEsiks | (mac os x) makoEsiks | ||||
| schubert SubER | schubert SubER | ||||
| screamer skri:m@r | screamer skri:m@r | ||||
| (search & destroy) s@:rS_||end_||dEsstrOj | (search & destroy) s@:rS_||end_||dEsstrOj | ||||
| shrink Sr'ink | |||||
| skype sk'ajp@- | skype sk'ajp@- | ||||
| spybot spajbOt | spybot spajbOt | ||||
| sun s@n | sun s@n |
| // 2006-11-18 Gilles Casse <[email protected]> | // 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. | // * The rules are based on Cicero TTS. | ||||
| // | // | ||||
| em (me a // femme patiemment | em (me a // femme patiemment | ||||
| em (b A~ // décembre | em (b A~ // décembre | ||||
| em (m A~ // emmancher | em (m A~ // emmancher | ||||
| em (manu e // emmanuel | |||||
| em (p A~ | em (p A~ | ||||
| en (_ A~n2 // en | en (_ A~n2 // en | ||||
| en (hA A~n // enharmonique | en (hA A~n // enharmonique | ||||
| _) h (arf _! // harfang | _) h (arf _! // harfang | ||||
| _) h (argn _! // hargne | _) h (argn _! // hargne | ||||
| _) h (ari _! // haricot haridelle | _) h (ari _! // haricot haridelle | ||||
| _) h (ark _! // harka | |||||
| _) h (arn _! // harnais | _) h (arn _! // harnais | ||||
| _) h (arp _! // harpe | _) h (arp _! // harpe | ||||
| _) h (as _! // hasard, hase | _) h (as _! // hasard, hase | ||||
| _) h (âs _! // hâte | _) h (âs _! // hâte | ||||
| _) h (au _! // haut | _) h (au _! // haut | ||||
| _) h (av _! // havre | _) h (av _! // havre | ||||
| _) h (eau _! // heaume | _) h (eau _! // heaume | ||||
| _) h (él _! // hélas, héler | _) h (él _! // hélas, héler | ||||
| _) h (èl _! // hèlement | _) h (èl _! // hèlement | ||||
| _) h (êtr _! // hêtre, hêtraie | _) h (êtr _! // hêtre, hêtraie | ||||
| _) h (eula _! // heulandite | _) h (eula _! // heulandite | ||||
| _) h (eurt _! // heurter | _) h (eurt _! // heurter | ||||
| _) h (iat _! // hiatal, hiatus | _) h (iat _! // hiatal, hiatus | ||||
| _) h (ibo _! // hibou | _) h (ibo _! // hibou | ||||
| _) h (ic _! // hic | _) h (ic _! // hic | ||||
| _) h (i-han _! // hi-han | _) h (i-han _! // hi-han | ||||
| _) h (iss _! // hisser | _) h (iss _! // hisser | ||||
| _) h (it _! // hit, hit-parad | _) h (it _! // hit, hit-parad | ||||
| _) h (ob _! // hobby, hobereau | _) h (ob _! // hobby, hobereau | ||||
| _) h (och _! // hocher | _) h (och _! // hocher | ||||
| _) h (ock _! // hockey | _) h (ock _! // hockey | ||||
| _) h (ou _! // houle, housse | _) h (ou _! // houle, housse | ||||
| _) h (u _! | _) h (u _! | ||||
| _) h (uil // huile | |||||
| _) h (uiss // huissier | _) h (uiss // huissier | ||||
| _) h (uî // huître | _) h (uî // huître | ||||
| _) h (umain // humain | _) h (umain // humain | ||||
| ing (_ iN // parking | ing (_ iN // parking | ||||
| in (h in // inhumain | in (h in // inhumain | ||||
| inct (_ E~ // distinct | inct (_ E~ // distinct | ||||
| ink (_ ink // link, pink | |||||
| in (n i // innombrable | in (n i // innombrable | ||||
| in (C E~ // vingt | in (C E~ // vingt | ||||
| // in (_ E~ // vin | // in (_ E~ // vin | ||||
| o (che_ O // poche, cloche | o (che_ O // poche, cloche | ||||
| oe (ll wa // moelleux | oe (ll wa // moelleux | ||||
| _) oe (C Y // oesophage | _) oe (C Y // oesophage | ||||
| _ph) oe (t Y // phoetus | |||||
| oeu @ // soeur coeur | oeu @ // soeur coeur | ||||
| oeufs @ // oeufs boeufs | oeufs @ // oeufs boeufs | ||||
| o (eC o // coefficient | o (eC o // coefficient | ||||
| xpan) s (A s // expansion | xpan) s (A s // expansion | ||||
| ibu) s (_ s | |||||
| _u) s (_ s | |||||
| Cu) s (_ | |||||
| Abu) s (_ s | |||||
| _Abu) s (_ | |||||
| mbu) s (_ 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 | 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 | atu) s (_ s // stratus cactus motus | ||||
| ctu) s (_ s | |||||
| ctu) s (_ s // cactus | |||||
| etu) s (_ s | |||||
| aitu) s (_ | |||||
| itu) s (_ s | itu) s (_ s | ||||
| otu) s (_ s | |||||
| ltu) s (_ s // altus | |||||
| otu) s (_ s // motus | |||||
| _tou) s (_C | _tou) s (_C | ||||
| _tou) s (_ s | _tou) s (_ s | ||||
| u y // cruel nuage brut | u y // cruel nuage brut | ||||
| ui w^i | ui w^i | ||||
| _b) usi iz // business, businessman | |||||
| c) ueill Wj // cueillir | c) ueill Wj // cueillir | ||||
| c) ueil (_ Wj // recueil | c) ueil (_ Wj // recueil | ||||
| _c) ul (_ y | |||||
| g) ueill Wj // orgueilleux | g) ueill Wj // orgueilleux | ||||
| g) ueil (_ Wj // orgueil | g) ueil (_ Wj // orgueil | ||||
| ym (p E~ // tympan | ym (p E~ // tympan | ||||
| y (nn i | y (nn i | ||||
| y (nA i | y (nA i | ||||
| ys (_ is | |||||
| yx (_ iks | yx (_ iks | ||||
| yn E~ // laryngite | yn E~ // laryngite |
| .group y | .group y | ||||
| y j //before a o e i | y j //before a o e i | ||||
| y (u //NULL before u | y (u //NULL before u | ||||
| y (uDn j | |||||
| yo (DngK yu | yo (DngK yu | ||||
| y (K i // foreign words | y (K i // foreign words | ||||
| is 32 124 | is 32 124 | ||||
| vi 42 137 | vi 42 137 | ||||
| zhy 40 132 | zhy 40 132 | ||||
| zh 64 148 | |||||
| zh 63 147 | |||||
| sw 14 108 | sw 14 108 | ||||
| th 50 142 | th 50 142 | ||||
| id 14 120 | id 14 120 | ||||
| [s#] pt_pt | [s#] pt_pt | ||||
| ufric/sh_pzd [S;] base | ufric/sh_pzd [S;] base | ||||
| [S;] ro | [S;] ro | ||||
| [S;] zh | |||||
| ufric/sh_pzd_ [S;] base | ufric/sh_pzd_ [S;] base | ||||
| [Z;] 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 | [Z] sr | ||||
| [dZ] sr | [dZ] sr | ||||
| [S;] zh | |||||
| ufric/sh_rfx [s.] base | |||||
| [s.] zh | |||||
| ufric/s_pzd [s;] base | ufric/s_pzd [s;] base | ||||
| [z;] base | [z;] base | ||||
| [s;] ro | [s;] ro | ||||
| [ch] th | [ch] th | ||||
| ustop/tsh_pzd_unasp [tS;] zh | ustop/tsh_pzd_unasp [tS;] zh | ||||
| [c] th | [c] th | ||||
| ustop/tsh_sr.wav [tS] sr | |||||
| ustop/tsh_sr [tS] sr | |||||
| ustop/ts_pzd [tS;] base | ustop/ts_pzd [tS;] base | ||||
| [ts;] base | [ts;] base | ||||
| [ch] hi | [ch] hi | ||||
| [t] zh | [t] zh | ||||
| ustop/ts_rfx [ts.] zh | ustop/ts_rfx [ts.] zh | ||||
| ustop/ts_rfx_unasp [ts.] zh | ustop/ts_rfx_unasp [ts.] zh | ||||
| ustop/ts_sr.wav [tS;] sr | |||||
| ustop/ts_sr [tS;] sr | |||||
| [dZ;] sr | [dZ;] sr | ||||
| ustop/ts_unasp [ts] zh | ustop/ts_unasp [ts] zh | ||||
| ustop/t_unasp [t] th | ustop/t_unasp [t] th | ||||
| [u@] vi | [u@] vi | ||||
| [ua] th | [ua] th | ||||
| [u:a] th | [u:a] th | ||||
| vdiph2/y@ [y@] zh | |||||
| vdiph2/y#@ [Y@] af | vdiph2/y#@ [Y@] af | ||||
| [y@] zh | |||||
| vdiph2/yu [yU] nl | vdiph2/yu [yU] nl | ||||
| [yu] zh | [yu] zh | ||||
| vdiph2/y-y# [yY] fi | vdiph2/y-y# [yY] fi | ||||
| [O@] en_wi | [O@] en_wi | ||||
| [O] de | [O] de | ||||
| [o] eo | [o] eo | ||||
| [o] es | |||||
| [O] es | |||||
| [o] el | [o] el | ||||
| [O] sv | [O] sv | ||||
| [O] no | [O] no |
| // 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 | // This file inherits phonemes from ph_croatian | ||||
| // Only phonemes which differ from the inherited phonemes need | // Only phonemes which differ from the inherited phonemes need | ||||
| vcd pla afr sibilant | vcd pla afr sibilant | ||||
| vowelin f1=2 f2=2300 200 400 f3=100 80 | vowelin f1=2 f2=2300 200 400 f3=100 80 | ||||
| vowelout f1=2 f2=2300 250 300 f3=100 80 brk | 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 _ NULL | ||||
| after @ dzh/dzh+ufric/sh_sr.wav | |||||
| after @ dzh/dzh+ufric/sh_pzd2 | |||||
| lengthmod 5 | lengthmod 5 | ||||
| switchvoicing tS | switchvoicing tS | ||||
| endphoneme | endphoneme | ||||
| phoneme dZ; | phoneme dZ; | ||||
| vcd pla afr sibilant palatal | vcd pla afr sibilant palatal | ||||
| vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70 | 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 _ NULL | ||||
| after @ dzh/dzh+ustop/ts_sr.wav | |||||
| after @ dzh/dzh+ustop/ts_sr | |||||
| lengthmod 5 | lengthmod 5 | ||||
| switchvoicing tS; | switchvoicing tS; | ||||
| endphoneme | endphoneme | ||||
| vls pla afr sibilant | vls pla afr sibilant | ||||
| vowelin f1=0 f2=2300 200 400 f3=-100 80 | vowelin f1=0 f2=2300 200 400 f3=-100 80 | ||||
| lengthmod 2 | 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 | switchvoicing dZ | ||||
| endphoneme | endphoneme | ||||
| vls pal afr sibilant palatal | vls pal afr sibilant palatal | ||||
| vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70 | vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70 | ||||
| lengthmod 2 | lengthmod 2 | ||||
| wave ustop/ts_sr.wav | |||||
| before _ ustop/ts_sr.wav | |||||
| wave ustop/ts_sr | |||||
| before _ ustop/ts_sr | |||||
| switchvoicing dZ; | switchvoicing dZ; | ||||
| endphoneme | endphoneme | ||||
| vcd pla frc sibilant | vcd pla frc sibilant | ||||
| vowelin f1=0 f2=2000 0 300 f3=-200 80 | vowelin f1=0 f2=2000 0 300 f3=-200 80 | ||||
| vowelout f1=2 f2=2000 0 300 f3=-200 80 brk | 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 | lengthmod 6 | ||||
| switchvoicing S | switchvoicing S | ||||
| endphoneme | endphoneme | ||||
| vowelout f1=0 f2=2100 100 300 f3=-100 80 | vowelout f1=0 f2=2100 100 300 f3=-100 80 | ||||
| length 100 | length 100 | ||||
| lengthmod 3 | 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 | switchvoicing Z | ||||
| endphoneme | endphoneme | ||||
| formants vowel/e_mid | formants vowel/e_mid | ||||
| endphoneme | endphoneme | ||||
| phoneme o | |||||
| phoneme O | |||||
| vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
| length 170 | length 170 | ||||
| formants vowel/oo | formants vowel/oo |
| vls pal afr sibilant palatal | vls pal afr sibilant palatal | ||||
| vowelin f1=0 f2=2700 400 600 f3=300 80 | vowelin f1=0 f2=2700 400 600 f3=300 80 | ||||
| lengthmod 2 | lengthmod 2 | ||||
| wave ustop/tsh_pzd | |||||
| wave ustop/tsh_pzd%80 | |||||
| endphoneme | endphoneme | ||||
| phoneme S; | phoneme S; | ||||
| vls pla frc sibilant | vls pla frc sibilant | ||||
| vowelin f1=0 f2=2700 400 600 f3=300 80 | vowelin f1=0 f2=2700 400 600 f3=300 80 | ||||
| lengthmod 2 | 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 | endphoneme | ||||
| phoneme s. | phoneme s. | ||||
| vowelout f1=0 f2=1800 -100 300 f3=-300 80 | vowelout f1=0 f2=1800 -100 300 f3=-300 80 | ||||
| length 100 | length 100 | ||||
| lengthmod 3 | lengthmod 3 | ||||
| wave ufric/sh_rfx%60 // quieter | |||||
| wave ufric/sh_rfx%50 // quieter | |||||
| before _ ufric/sh_rfx%50 | before _ ufric/sh_rfx%50 | ||||
| endphoneme | endphoneme | ||||
| phoneme y@ | phoneme y@ | ||||
| vowel starttype (i) endtype (@) | vowel starttype (i) endtype (@) | ||||
| length 250 | length 250 | ||||
| formants vdiph2/y#@ | |||||
| formants vdiph2/y@ | |||||
| endphoneme | endphoneme |
| phoneme ** // TEST flap | phoneme ** // TEST flap | ||||
| liquid alv | liquid alv | ||||
| vowelout f1=3 f2=1600 -300 300 f3=-300 80 rms=35 len=15 | 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 | vowelin f1=3 f2=1600 -300 300 f3=-300 80 | ||||
| before (i) r3/@tap_i+r3/rx | before (i) r3/@tap_i+r3/rx | ||||
| before (e) r3/@tap_i+r3/rx | before (e) r3/@tap_i+r3/rx |
| }; | }; | ||||
| static TONE_NUCLEUS tone_nucleus_table[N_TONE_NUCLEUS_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, 35, 8, PITCHfrise2, 35,10, NULL, 15, 23, 0}, // 1 comma | ||||
| {PITCHfrise, 39,10, PITCHfrise2, 36,10, NULL, 15, 28, 0}, // 2 question | {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, 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, 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 | {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 | {PITCHfrise, 30, 8, PITCHfrise2, 30,10, NULL, 13, 20, 0}, // 6 comma, less intonation | ||||
| if((p->type == phPAUSE) && (p->ph->std_length > 50)) | if((p->type == phPAUSE) && (p->ph->std_length > 50)) | ||||
| { | { | ||||
| pause = 1; // there is a pause since the previous vowel | pause = 1; // there is a pause since the previous vowel | ||||
| prevw_tph = phoneme_tab[phonPAUSE]; // forget previous tone | |||||
| } | } | ||||
| if(p->newword) | if(p->newword) | ||||
| } | } | ||||
| } | } | ||||
| if(prev_tph->mnemonic == 0x343132) // [214] | |||||
| if(prevw_tph->mnemonic == 0x343132) // [214] | |||||
| { | { | ||||
| if(tph->mnemonic == 0x343132) // [214] | if(tph->mnemonic == 0x343132) // [214] | ||||
| prev_p->tone_ph = LookupPh("35"); | prev_p->tone_ph = LookupPh("35"); |
| {"amp", '&'}, | {"amp", '&'}, | ||||
| {"quot", '"'}, | {"quot", '"'}, | ||||
| {"nbsp", ' '}, | {"nbsp", ' '}, | ||||
| {"apos", '\''}, | |||||
| {NULL,-1}}; | {NULL,-1}}; | ||||
| int n_xml_buf; | int n_xml_buf; | ||||
| int terminator; | int terminator; | ||||
| int punct; | int punct; | ||||
| int found; | |||||
| int any_alnum = 0; | int any_alnum = 0; | ||||
| int self_closing; | int self_closing; | ||||
| int punct_data; | int punct_data; | ||||
| const char *p; | const char *p; | ||||
| char buf2[40]; | |||||
| wchar_t xml_buf[N_XML_BUF+1]; | 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) | if(clear_skipping_text) | ||||
| { | { | ||||
| skipping_text = 0; | skipping_text = 0; | ||||
| if(ungot_char2 != 0) | if(ungot_char2 != 0) | ||||
| { | { | ||||
| c2 = ungot_char2; | c2 = ungot_char2; | ||||
| ungot_char2 = 0; | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| c2 = GetC(); | c2 = GetC(); | ||||
| } | } | ||||
| while(!Eof() || (ungot_char != 0)) | |||||
| while(!Eof() || (ungot_char != 0) || (ungot_char2 != 0) || (ungot_string_ix >= 0)) | |||||
| { | { | ||||
| if(!iswalnum(c1)) | if(!iswalnum(c1)) | ||||
| { | { | ||||
| cprev = c1; | cprev = c1; | ||||
| c1 = c2; | 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((option_ssml) && (phoneme_mode==0)) | ||||
| { | { | ||||
| if((ssml_ignore_l_angle != '&') && (c1 == '&') && ((c2=='#') || ((c2 >= 'a') && (c2 <= 'z')))) | if((ssml_ignore_l_angle != '&') && (c1 == '&') && ((c2=='#') || ((c2 >= 'a') && (c2 <= 'z')))) | ||||
| { | { | ||||
| n_xml_buf = 0; | n_xml_buf = 0; | ||||
| c1 = c2; | 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; | buf2[n_xml_buf++] = c1; | ||||
| c1 = GetC(); | c1 = GetC(); | ||||
| } | } | ||||
| buf2[n_xml_buf] = 0; | buf2[n_xml_buf] = 0; | ||||
| c2 = GetC(); | 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 | 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)) | if((sayas_mode == 0x14) && (c1 <= 0x20)) | ||||
| { | { | ||||
| c1 += 0xe000; // move into unicode private usage area | c1 += 0xe000; // move into unicode private usage area |
| else | else | ||||
| p->prepause = 60; | p->prepause = 60; | ||||
| if(prev->type == phSTOP) | |||||
| p->prepause = 60; | |||||
| if((langopts.word_gap & 0x10) && (p->newword)) | if((langopts.word_gap & 0x10) && (p->newword)) | ||||
| p->prepause = 60; | p->prepause = 60; | ||||
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.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; | const int version_phdata = 0x013105; | ||||
| int option_device_number = -1; | int option_device_number = -1; |