lang=fr: removed unstressed monosyllable option. lang=pt,it: fixed crash when speaking some numbers. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@218 d46cf337-b52f-0410-862d-fd96e6ae7743master
| sst (@ sSt | sst (@ sSt | ||||
| sch S | sch S | ||||
| sch (en_ sC | |||||
| _) sh S | _) sh S | ||||
| sh (K S | sh (K S | ||||
| sou (nd saU | sou (nd saU | ||||
| _) safe _^_EN | _) safe _^_EN | ||||
| &) schaft (_S6 Saft | &) schaft (_S6 Saft | ||||
| ä) schen sC@n // but not wäschen | |||||
| fe) schen sC@n | |||||
| ie) schen sC@n | |||||
| h) schen sC@n | |||||
| ö) schen sC@n // but not löschen | |||||
| äu) schen sC@n // but not täuschen | |||||
| schein (lich S'aIn | schein (lich S'aIn | ||||
| _) schul (@P5 S'u:l | _) schul (@P5 S'u:l | ||||
| _) schul (d S'Ul | _) schul (d S'Ul |
| // 2006-11-18 Gilles Casse <[email protected]> | // 2006-11-18 Gilles Casse <[email protected]> | ||||
| // | // | ||||
| // Updated 2009-02-01 Michel Such <[email protected]> | |||||
| // Updated 2009-03-12 Michel Such <[email protected]> | |||||
| // | // | ||||
| // * Numbers, a few abbreviations and exceptions. | // * Numbers, a few abbreviations and exceptions. | ||||
| // | // | ||||
| // articles | // articles | ||||
| le $u+ $nounf | |||||
| le $u+ $verb $verbextend | |||||
| la $u+ $nounf | |||||
| la $u+ $verb $verbextend | |||||
| les lez2 $u+ $nounf | |||||
| les lez2 $u+ $verb $verbextend | |||||
| un $u+ $nounf | |||||
| une $u+ $nounf | |||||
| le $nounf $u+ | |||||
| le $verbextend $u | |||||
| la $nounf $u+ | |||||
| la $verbextend $u | |||||
| les lez2 $nounf $u= | |||||
| les lez2 $verbextend $u | |||||
| un $nounf $u+ | |||||
| une $nounf $u+ | |||||
| // conjonctions | // conjonctions | ||||
| mais $u+ | mais $u+ | ||||
| ou u $u $brk | |||||
| ou $u $brk | |||||
| eh $u $brk | eh $u $brk | ||||
| et e $u $brk | |||||
| et $u $brk | |||||
| ni $u $brk | ni $u $brk | ||||
| car $u+ $brk | |||||
| car $u $brk | |||||
| car $noun | car $noun | ||||
| cependant $brk | cependant $brk | ||||
| néanmoins $brk | néanmoins $brk | ||||
| certes $u+ | certes $u+ | ||||
| dont dO~t2 $u | dont dO~t2 $u | ||||
| lorsque $u | |||||
| puisque $u | |||||
| lorsque lO2rsk@ $u+ | |||||
| puisque pw^isk@ $u+ | |||||
| presque $u+ | presque $u+ | ||||
| que $u+ | |||||
| (parce que) parsk@ $u+ | (parce que) parsk@ $u+ | ||||
| que $u+ | |||||
| qui $u+ $verbf | |||||
| (parce qu'il) parskil $u+ | |||||
| (parce qu'ils) parskilz2 $u+ | |||||
| (parce qu'elle) parskE2l $u+ | |||||
| (parce qu'elles) parskE2lz2 $u+ | |||||
| (parce qu'on) parskO~n2 $u+ | |||||
| tant tA~t2 $u+ | |||||
| qui $verbf $u+ | |||||
| quoique $u | quoique $u | ||||
| si $u | |||||
| quant kA~t2 $u | quant kA~t2 $u | ||||
| // pronouns | // pronouns | ||||
| (les leurs) le||lWr $u+ $verbf | (les leurs) le||lWr $u+ $verbf | ||||
| // prepositions | // prepositions | ||||
| de $u | |||||
| de $u $nounf | |||||
| du $u $nounf | du $u $nounf | ||||
| des dez2 $u $nounf | des dez2 $u $nounf | ||||
| par $u+ | par $u+ | ||||
| parmi $u+ | parmi $u+ | ||||
| pour $u+ | pour $u+ | ||||
| tant tA~t2 $u+ | |||||
| autant $u+ | autant $u+ | ||||
| tandis $u+ | tandis $u+ | ||||
| dès $u | dès $u | ||||
| // negative | // negative | ||||
| ne $u $verbf | ne $u $verbf | ||||
| pas $u+ | |||||
| pas $noun | |||||
| pas p'a2z2 | |||||
| pas pa $noun | |||||
| plus $u+ | plus $u+ | ||||
| guère $u+ | guère $u+ | ||||
| jamais $u+ | jamais $u+ | ||||
| // questions | // questions | ||||
| quand kA~t2 $u+ | quand kA~t2 $u+ | ||||
| quoi $u+ | quoi $u+ | ||||
| où $brk $u+ | |||||
| où $u+ | |||||
| comme kO2m $u+ | comme kO2m $u+ | ||||
| comment $u+ | comment $u+ | ||||
| pourquoi $u+ | pourquoi $u+ | ||||
| bus by $verb | bus by $verb | ||||
| campus kA~pys | campus kA~pys | ||||
| cancer kA~sEr | cancer kA~sEr | ||||
| catcher catcheur $text | |||||
| (chef d'oeuvre) chédeuvre $text | (chef d'oeuvre) chédeuvre $text | ||||
| (chef d'oeuvres) chédeuvres $text | (chef d'oeuvres) chédeuvres $text | ||||
| choeur kWr | choeur kWr | ||||
| malus malys | malus malys | ||||
| mapper _^_en | mapper _^_en | ||||
| mars mars | mars mars | ||||
| mieux mj'Y $u+ | |||||
| mieux mjY $u+ | |||||
| mrs _^_en | mrs _^_en | ||||
| ours urs | ours urs | ||||
| parangon parA~gO~ | parangon parA~gO~ | ||||
| futuna futuna | futuna futuna | ||||
| zimbabwe zimbabwe | zimbabwe zimbabwe | ||||
| pest $1 | |||||
| // 2006-11-18 Gilles Casse <[email protected]> | // 2006-11-18 Gilles Casse <[email protected]> | ||||
| // | // | ||||
| // Updated: 2009-02-19 Michel Such <[email protected]> | |||||
| // Updated: 2009-03-12 Michel Such <[email protected]> | |||||
| // | // | ||||
| // Letter classes: | // Letter classes: | ||||
| em (p A~ | em (p A~ | ||||
| en (_ A~n2 // en | en (_ A~n2 // en | ||||
| en (hA A~n // enharmonique | en (hA A~n // enharmonique | ||||
| _C) en (j E~ // benjamin | |||||
| _) en (A A~n // enivrer | _) en (A A~n // enivrer | ||||
| C) en (d_ A~ // comprend dépend | C) en (d_ A~ // comprend dépend | ||||
| o (rC O2 | o (rC O2 | ||||
| o (rX O2 | o (rX O2 | ||||
| _) os (_ Os | _) os (_ Os | ||||
| o (sC O2 | |||||
| s_) os (_ o | s_) os (_ o | ||||
| x_) os (_ o | x_) os (_ o | ||||
| C) o (se_ o2 | C) o (se_ o2 | ||||
| se) pt (_ t // sept | se) pt (_ t // sept | ||||
| se) pt (iè t // septième | se) pt (iè t // septième | ||||
| _) puisqu' (P7 pyisk | |||||
| _) puisqu' (P7 pw^isk | |||||
| // group p: English section | // group p: English section | ||||
| pad (_ _^_en | pad (_ _^_en | ||||
| q k // coq | q k // coq | ||||
| _) qu' (AP3 k | _) qu' (AP3 k | ||||
| _) qua (d kwA // quadrature | _) qua (d kwA // quadrature | ||||
| _) qua (drill ka // quadriller | |||||
| _a) qua kwA // aquarium | _a) qua kwA // aquarium | ||||
| _a) qu (if ku // aquifère | _a) qu (if ku // aquifère | ||||
| _A) qui (dist kw^i // équidistant | _A) qui (dist kw^i // équidistant |
| s (t s | s (t s | ||||
| s (x s | s (x s | ||||
| sc (Y S | sc (Y S | ||||
| sci (L01 S | |||||
| sch (Y sk | sch (Y sk | ||||
| sh (K S // foreign words | sh (K S // foreign words | ||||
| K) sh S // foreign words | K) sh S // foreign words |
| ?2_0C s'eINtUs# | ?2_0C s'eINtUs# | ||||
| _1C s'eINtu | _1C s'eINtu | ||||
| ?1_2C duz'eINtus# | ?1_2C duz'eINtus# | ||||
| ?2_2C duz'eINtUs# | |||||
| ?2_2C duz'eINtUz | |||||
| ?1_3C tryz'eNtus# | ?1_3C tryz'eNtus# | ||||
| ?2_3C tRez'eNtUs# | |||||
| ?2_3C tRez'eNtUz | |||||
| ?1_5C kin^'eINtus# | ?1_5C kin^'eINtus# | ||||
| ?2_5C kin^'eINtUs# | |||||
| ?2_5C kin^'eINtUz | |||||
| ?1_0M1 m'il_ | ?1_0M1 m'il_ | ||||
| ?2_0M1 m'iU_ | ?2_0M1 m'iU_ | ||||
| ?1_1M1 m'il_ | ?1_1M1 m'il_ | ||||
| ?1_0M4 trilj'o~js# | ?1_0M4 trilj'o~js# | ||||
| ?2_0M4 trilj'o~jz | ?2_0M4 trilj'o~jz | ||||
| _1M4 'u~ntrilj'&U~ | _1M4 'u~ntrilj'&U~ | ||||
| _0and _i | |||||
| _0and i | |||||
| _dpt _v'irgul& | _dpt _v'irgul& | ||||
| // _0Z2 seNt'Ezim& // 100ths | // _0Z2 seNt'Ezim& // 100ths | ||||
| // _0Z3 mil'Ezim& // 1000ths | // _0Z3 mil'Ezim& // 1000ths | ||||
| ?2 este $u+ $nounf 'estSi // this | ?2 este $u+ $nounf 'estSi // this | ||||
| ?2 estes $u+ $nounf 'estSis // these | ?2 estes $u+ $nounf 'estSis // these | ||||
| ?2 esta 'Est& $brk $u+ $nounf | |||||
| ?2 esta 'Est& $u+ $nounf | |||||
| ?2 neste $u+ $nounf n'estSi //in this | ?2 neste $u+ $nounf n'estSi //in this | ||||
| ?2 nestes $u+ n'estSis //in these | ?2 nestes $u+ n'estSis //in these | ||||
| ?2 esse $u+ $nounf 'esi // that | ?2 esse $u+ $nounf 'esi // that | ||||
| essa 'Es& $brk $u+ | |||||
| essa 'Es& $u+ | |||||
| desse d'esy $u+ | desse d'esy $u+ | ||||
| nesse n'esy $u+ | nesse n'esy $u+ | ||||
| aquele &k'ely $u+ $nounf // that | aquele &k'ely $u+ $nounf // that | ||||
| daquele d&k'ely $u+ $nounf | daquele d&k'ely $u+ $nounf | ||||
| ?1 que ky $u | ?1 que ky $u | ||||
| ?2 que ke $u $pause | |||||
| ?2 que ke $u | |||||
| // possessive adjectives | // possessive adjectives | ||||
| meu $u+ $nounf | meu $u+ $nounf | ||||
| duns $u | duns $u | ||||
| dumas $u | dumas $u | ||||
| em $u $brk // in,on,at | |||||
| no nu $u $brk $nounf | |||||
| na $u $brk | |||||
| ?2 nos nus# $u $brk | |||||
| nas $u $brk | |||||
| num $u $brk | |||||
| numa $u $brk | |||||
| nuns $u $brk | |||||
| numas $u $brk | |||||
| por $u $brk // by,for,through | |||||
| pelo $u $brk | |||||
| ?2 pela $u $brk p'el& | |||||
| pelos $u $brk | |||||
| ?2 pelas $u $brk p'el&s | |||||
| ao $u $brk | |||||
| à ,a: $brk | |||||
| aos $u $brk | |||||
| às ,a:s $brk | |||||
| para $u $brk // for,to | |||||
| pro $u $brk $nounf | |||||
| pra $u $brk | |||||
| pros $u $brk | |||||
| pras $u $brk | |||||
| prò $u $brk | |||||
| prà $u $brk | |||||
| pròs $u $brk | |||||
| pràs $u $brk | |||||
| com $u $brk // with | |||||
| ?2 sem $pause // without | |||||
| ?2 até $u $pause // until | |||||
| ?2 desde $u $pause // from,since | |||||
| ?2 entre $pause // between,among | |||||
| ?2 por $u $pause // by,for,through | |||||
| ?2 sobre s'obRy $pause // on,above,about | |||||
| ?2 sob $pause // under,below | |||||
| ?2 debaixo $pause // under,below | |||||
| ?2 durante $pause | |||||
| em $u // in,on,at | |||||
| no nu $u $nounf | |||||
| na $u | |||||
| ?2 nos nus# $u | |||||
| nas $u | |||||
| num $u | |||||
| numa $u | |||||
| nuns $u | |||||
| numas $u | |||||
| por $u // by,for,through | |||||
| pelo $u | |||||
| ?2 pela $u p'el& | |||||
| pelos $u | |||||
| ?2 pelas $u p'el&s | |||||
| ao $u | |||||
| à ,a: | |||||
| aos $u | |||||
| às ,a:s | |||||
| para $u // for,to | |||||
| pro $u $nounf | |||||
| pra $u | |||||
| pros $u | |||||
| pras $u | |||||
| prò $u | |||||
| prà $u | |||||
| pròs $u | |||||
| pràs $u | |||||
| com $u // with | |||||
| ?2 sem // without | |||||
| ?2 até $u // until | |||||
| ?2 desde $u // from,since | |||||
| ?2 entre // between,among | |||||
| ?2 por $u // by,for,through | |||||
| ?2 sobre s'obRy // on,above,about | |||||
| ?2 sob // under,below | |||||
| ?2 debaixo // under,below | |||||
| ?2 durante | |||||
| // conjunctions | // conjunctions | ||||
| ?1 e i $u // and | ?1 e i $u // and | ||||
| ?2 e i $u $pause // and | |||||
| se $u $brk // if | |||||
| ?2 e i $u // and | |||||
| se $u // if | |||||
| ?2 mas $u $pause // but | |||||
| ?2 porém $pause // however | |||||
| ?2 todavia $pause // yet | |||||
| ?2 contudo $pause // nevertheless | |||||
| ?2 mas $u // but | |||||
| ?2 porém // however | |||||
| ?2 todavia // yet | |||||
| ?2 contudo // nevertheless | |||||
| ?2 ou $u $pause // or | |||||
| ?2 quer $pause // whether | |||||
| ?2 ou $u // or | |||||
| ?2 quer // whether | |||||
| ?2 assim $pause // thus | |||||
| ?2 portanto $pause // therefore | |||||
| ?2 assim // thus | |||||
| ?2 portanto // therefore | |||||
| ?2 porque $pause // because | |||||
| ?2 pois $pause // because | |||||
| ?2 como $u $pause // as | |||||
| ?2 porque // because | |||||
| ?2 pois // because | |||||
| ?2 como $u // as | |||||
| ?2 embora $pause // although | |||||
| ?2 apesar $pause // despite | |||||
| ?2 embora // although | |||||
| ?2 apesar // despite | |||||
| ?2 caso $pause // if | |||||
| ?2 (desde que) d'esdZiki/ $pause // provided that | |||||
| ?2 (exceto se) es'Etusi/ $pause // unless | |||||
| ?2 (salvo se) s'alvusi/ $pause // unless | |||||
| ?2 caso // if | |||||
| ?2 (desde que) d'esdZiki/ // provided that | |||||
| ?2 (exceto se) es'Etusi/ // unless | |||||
| ?2 (salvo se) s'alvusi/ // unless | |||||
| ?2 (para que) p,a*&ki/ $pause // so that | |||||
| ?2 (para que) p,a*&ki/ // so that | |||||
| ?2 quando $pause // when | |||||
| ?2 onde $u $pause // where | |||||
| ?2 apenas $pause // as soon as | |||||
| ?2 mal $pause // as soon as, hardly | |||||
| ?2 (logo que) l'Oguki/ $pause // as soon as | |||||
| ?2 (antes que) '&~NtSiski/ $pause // before | |||||
| ?2 (depois que) dep'OIski/ $pause // after | |||||
| ?2 (sempre que) s'eNpriki/ $pause // whenever | |||||
| ?2 enquanto $pause // while | |||||
| ?2 quando // when | |||||
| ?2 onde $u // where | |||||
| ?2 apenas // as soon as | |||||
| ?2 mal // as soon as, hardly | |||||
| ?2 (logo que) l'Oguki/ // as soon as | |||||
| ?2 (antes que) '&~NtSiski/ // before | |||||
| ?2 (depois que) dep'OIski/ // after | |||||
| ?2 (sempre que) s'eNpriki/ // whenever | |||||
| ?2 enquanto // while | |||||
| // negative | // negative |
| [b] hi | [b] hi | ||||
| [b] bn | [b] bn | ||||
| b/b@ [b] base | b/b@ [b] base | ||||
| [b] fr | |||||
| [b] hi | [b] hi | ||||
| [b] bn | [b] bn | ||||
| b/b@2 [b] base | b/b@2 [b] base | ||||
| [b] hi | [b] hi | ||||
| [b] bn | [b] bn | ||||
| b/ba [b] base | b/ba [b] base | ||||
| [b] fr | |||||
| [b] hi | [b] hi | ||||
| [b] bn | [b] bn | ||||
| b/be [b] base | b/be [b] base | ||||
| [b] fr | |||||
| [b] hi | [b] hi | ||||
| [b] bn | [b] bn | ||||
| b/bi [b] base | b/bi [b] base | ||||
| [b] fr | |||||
| [b] hi | [b] hi | ||||
| [b;] ro | [b;] ro | ||||
| [b] bn | [b] bn | ||||
| b/bo [b] base | b/bo [b] base | ||||
| [b] fr | |||||
| [b] hi | [b] hi | ||||
| [b] bn | [b] bn | ||||
| b/bu [b] base | b/bu [b] base | ||||
| [b] fr | |||||
| [b] hi | [b] hi | ||||
| [b] bn | [b] bn | ||||
| b/xb [b] base | b/xb [b] base |
| phoneme @ | phoneme @ | ||||
| vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
| length 170 | |||||
| length 180 | |||||
| formants vowel/@_hgh | formants vowel/@_hgh | ||||
| before l/ DFT+l/l_@ | before l/ DFT+l/l_@ | ||||
| before (r) DFT+r/xr | before (r) DFT+r/xr | ||||
| phoneme @2 | phoneme @2 | ||||
| vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
| length 150 | |||||
| length 160 | |||||
| formants vowel/@_fr | formants vowel/@_fr | ||||
| before (r) DFT+r3/r_@ | before (r) DFT+r3/r_@ | ||||
| endphoneme | endphoneme | ||||
| phoneme a | phoneme a | ||||
| vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
| length 170 | |||||
| length 180 | |||||
| formants vowel/a_6 | formants vowel/a_6 | ||||
| after l l/la-15 | after l l/la-15 | ||||
| before l/ DFT+l/l_a | before l/ DFT+l/l_a | ||||
| phoneme a2 | phoneme a2 | ||||
| vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
| length 150 | |||||
| length 165 | |||||
| formants vowel/a_6 | formants vowel/a_6 | ||||
| after l l/la-15 | after l l/la-15 | ||||
| before l/ DFT+l/l_a | before l/ DFT+l/l_a | ||||
| phoneme e | phoneme e | ||||
| vowel starttype (e) endtype (e) | vowel starttype (e) endtype (e) | ||||
| length 172 | |||||
| length 175 | |||||
| formants vowel/e | formants vowel/e | ||||
| after l l/le-15 | after l l/le-15 | ||||
| before l/ DFT-20+l/xl | before l/ DFT-20+l/xl | ||||
| phoneme i | phoneme i | ||||
| vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
| length 150 | |||||
| length 160 | |||||
| formants vowel/i_3 | formants vowel/i_3 | ||||
| linkout ; | linkout ; | ||||
| after l l/li-15 | after l l/li-15 | ||||
| phoneme o | phoneme o | ||||
| vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
| length 170 | |||||
| length 180 | |||||
| formants vowel/o_3 | formants vowel/o_3 | ||||
| after l l/lo-10 | after l l/lo-10 | ||||
| before (r) DFT+r/xr | before (r) DFT+r/xr | ||||
| phoneme o2 | phoneme o2 | ||||
| vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
| length 170 | |||||
| length 180 | |||||
| formants vowel/o_2 | formants vowel/o_2 | ||||
| after l l/lo-10 | after l l/lo-10 | ||||
| before l/ DFT+l/l_o | before l/ DFT+l/l_o | ||||
| phoneme u | phoneme u | ||||
| vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
| length 170 | |||||
| length 175 | |||||
| formants vowel/u_3 | formants vowel/u_3 | ||||
| after l l/lu-20 | after l l/lu-20 | ||||
| before l/ DFT-20+l/l_u | before l/ DFT-20+l/l_u | ||||
| phoneme u: // slitely longer than u | phoneme u: // slitely longer than u | ||||
| vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
| length 220 | |||||
| length 240 | |||||
| formants vowel/u_3 | formants vowel/u_3 | ||||
| after l l/lu-20 | after l l/lu-20 | ||||
| before l/ DFT-20+l/l_u | before l/ DFT-20+l/l_u | ||||
| phoneme y | phoneme y | ||||
| vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
| length 170 | |||||
| length 180 | |||||
| formants vowel/y_2 | formants vowel/y_2 | ||||
| after l l/lu-20 | after l l/lu-20 | ||||
| before l/ DFT-30+l/l_y | before l/ DFT-30+l/l_y | ||||
| phoneme Y | phoneme Y | ||||
| vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
| length 170 | |||||
| length 180 | |||||
| formants vowel/y# | formants vowel/y# | ||||
| after l l/l@-20 | after l l/l@-20 | ||||
| before l/ DFT-20+l/l_@ | before l/ DFT-20+l/l_@ | ||||
| phoneme b | phoneme b | ||||
| vcd blb stop | vcd blb stop | ||||
| vowelout f1=0 f2=1000 -500 -300 f3=-300 80 | |||||
| formants b/b+x/b%70 | |||||
| vowelout f1=0 f2=1000 -500 -300 f3=-300 80 brk | |||||
| formants b/b+x/b%80 | |||||
| before _ b/b_+x/b_ | before _ b/b_+x/b_ | ||||
| before (a) b/ba+x/b%30 | |||||
| before (@) b/b@+x/b%50 | |||||
| before (e) b/be+x/b%50 | |||||
| before (i) b/bi+x/b%50 | |||||
| before l/ b/b_+x/b_ | before l/ b/b_+x/b_ | ||||
| before (o) b/bo+x/b%50 | |||||
| before (u) b/bu+x/b%70 | |||||
| before R b/b_+x/b_ | before R b/b_+x/b_ | ||||
| after _ NULL | after _ NULL | ||||
| after @ b/xb%50 | after @ b/xb%50 |
| if((max_stress == 0) && (tr->langopts.stress_flags & 1) && (vowel_count == 2)) | if((max_stress == 0) && (tr->langopts.stress_flags & 1) && (vowel_count == 2)) | ||||
| { | { | ||||
| // option: don't stress monosyllables except at end-of-clause (lang=fr) | |||||
| // option: don't stress monosyllables except at end-of-clause | |||||
| vowel_stress[1] = 1; | vowel_stress[1] = 1; | ||||
| dictionary_flags |= FLAG_STRESS_END2; | dictionary_flags |= FLAG_STRESS_END2; | ||||
| } | } |
| int ix; | int ix; | ||||
| FILE *f_in; | FILE *f_in; | ||||
| FILE *f_out; | FILE *f_out; | ||||
| char buf[80]; | |||||
| char buf[200]; | |||||
| wxString fname = wxFileSelector(_T("Convert file to UTF8"),wxString(path_home,wxConvLocal), | wxString fname = wxFileSelector(_T("Convert file to UTF8"),wxString(path_home,wxConvLocal), | ||||
| _T(""),_T(""),_T("*"),wxOPEN); | _T(""),_T(""),_T("*"),wxOPEN); |
| if(tr->langopts.numbers & 0x200) | if(tr->langopts.numbers & 0x200) | ||||
| { | { | ||||
| // remove vowel from the end of tens if units starts with a vowel (LANG=Italian) | // remove vowel from the end of tens if units starts with a vowel (LANG=Italian) | ||||
| if((ix = strlen(ph_tens)-1) >= 0) | |||||
| if(((ix = strlen(ph_tens)-1) >= 0) && (ph_digits[0] != 0)) | |||||
| { | { | ||||
| if((next_phtype = phoneme_tab[(unsigned int)(ph_digits[0])]->type) == phSTRESS) | if((next_phtype = phoneme_tab[(unsigned int)(ph_digits[0])]->type) == phSTRESS) | ||||
| next_phtype = phoneme_tab[(unsigned int)(ph_digits[1])]->type; | next_phtype = phoneme_tab[(unsigned int)(ph_digits[1])]->type; |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.40.10 12.Mar.09"; | |||||
| const char *version_string = "1.40.11 13.Mar.09"; | |||||
| const int version_phdata = 0x014000; | const int version_phdata = 0x014000; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| tr->langopts.unstressed_wd2 = 2; | tr->langopts.unstressed_wd2 = 2; | ||||
| tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels | tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels | ||||
| tr->langopts.numbers = 0x309; | |||||
| tr->langopts.numbers = 0x109; | |||||
| tr->langopts.numbers2 = 0x2; // variant form of numbers before thousands | tr->langopts.numbers2 = 0x2; // variant form of numbers before thousands | ||||
| if(name2 == L_grc) | if(name2 == L_grc) | ||||
| SetupTranslator(tr,stress_lengths_fr,stress_amps_fr); | SetupTranslator(tr,stress_lengths_fr,stress_amps_fr); | ||||
| tr->langopts.stress_rule = 3; // stress on final syllable | tr->langopts.stress_rule = 3; // stress on final syllable | ||||
| tr->langopts.stress_flags = 0x0024 + 0x1; // don't use secondary stress, monosyllables are unstressed | |||||
| tr->langopts.stress_flags = 0x0024; // don't use secondary stress | |||||
| tr->langopts.param[LOPT_IT_LENGTHEN] = 1; // remove lengthen indicator from unstressed syllables | tr->langopts.param[LOPT_IT_LENGTHEN] = 1; // remove lengthen indicator from unstressed syllables | ||||
| tr->langopts.numbers = 0x1509 + 0x8000 + NUM_NOPAUSE | NUM_ROMAN | NUM_VIGESIMAL; | tr->langopts.numbers = 0x1509 + 0x8000 + NUM_NOPAUSE | NUM_ROMAN | NUM_VIGESIMAL; | ||||
| tr->langopts.stress_rule = 3; // stress on final syllable | tr->langopts.stress_rule = 3; // stress on final syllable | ||||
| tr->langopts.stress_flags = 0x6 | 0x10 | 0x20000; | tr->langopts.stress_flags = 0x6 | 0x10 | 0x20000; | ||||
| tr->langopts.numbers = 0x269 + 0x4000 + NUM_ROMAN; | |||||
| tr->langopts.numbers = 0x069 + 0x4000 + NUM_ROMAN; | |||||
| SetLetterVowel(tr,'y'); | SetLetterVowel(tr,'y'); | ||||
| ResetLetterBits(tr,0x2); | ResetLetterBits(tr,0x2); | ||||
| SetLetterBits(tr,1,"bcdfgjkmnpqstvxz"); // B hard consonants, excluding h,l,r,w,y | SetLetterBits(tr,1,"bcdfgjkmnpqstvxz"); // B hard consonants, excluding h,l,r,w,y |
| } | } | ||||
| else | else | ||||
| { | { | ||||
| if(ph_code == phonPAUSE_CLAUSE) | |||||
| { | |||||
| int j; | |||||
| for(j = n_ph_list2-1; j > 0; j--) | |||||
| { | |||||
| if(ph_list2[j].synthflags & SFLAG_PROMOTE_STRESS) | |||||
| { | |||||
| // lang=fr: stress monosyllables before conjunctions 'et' 'qui' etc | |||||
| ph_list2[j].stress = 4; | |||||
| } | |||||
| if(ph_list2[j].sourceix != 0) | |||||
| break; | |||||
| } | |||||
| } | |||||
| if(first_phoneme && tr->langopts.param[LOPT_IT_DOUBLING]) | if(first_phoneme && tr->langopts.param[LOPT_IT_DOUBLING]) | ||||
| { | { | ||||
| if(((tr->prev_dict_flags & FLAG_DOUBLING) && (tr->langopts.param[LOPT_IT_DOUBLING] & 1)) || | if(((tr->prev_dict_flags & FLAG_DOUBLING) && (tr->langopts.param[LOPT_IT_DOUBLING] & 1)) || |