git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@11 d46cf337-b52f-0410-862d-fd96e6ae7743master
| // Abbreviations | // Abbreviations | ||||
| a.k ,antaUk@-*'isto | a.k ,antaUk@-*'isto | ||||
| a.k. ,antaUk@-*'isto | |||||
| akk alinome | akk alinome | ||||
| anst anstataU | anst anstataU | ||||
| bea $abbrev | bea $abbrev | ||||
| nro numeRo | nro numeRo | ||||
| pĝ paZo | pĝ paZo | ||||
| p.k p,ostk@-*'isto | p.k p,ostk@-*'isto | ||||
| p.k. p,ostk@-*'isto | |||||
| uea $abbrev | uea $abbrev | ||||
| uk $abbrev | uk $abbrev | ||||
| _) r(_ Ro | _) r(_ Ro | ||||
| r R | r R | ||||
| A) r (A R | A) r (A R | ||||
| C) r (A @-* | |||||
| K) r (A @-* | |||||
| -) ro (_ R%o | |||||
| -) ro (_ R%o d-ro, n-ro | |||||
| .group s | .group s | ||||
| _) s(_ so | _) s(_ so |
| // This file in UTF8 encoded | // This file in UTF8 encoded | ||||
| // Letters | |||||
| // If a letter has a "word" pronunciation which is different from its | |||||
| // "letter" name, then include the letter name here, with the letter | |||||
| // prefixed by a _ character. | |||||
| _a a | |||||
| _o o | |||||
| _y ,igr'iEQa | |||||
| _. punto | |||||
| // numbers | // numbers | ||||
| _0 TE*o | _0 TE*o | ||||
| _11 'onTe | _11 'onTe | ||||
| _12 d'oTe | _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 | ||||
| alguna $u | alguna $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 | |||||
| // prefixed by a _ character. | |||||
| _a a | |||||
| a a $atend | |||||
| _o o | |||||
| o o $atend | |||||
| _y ,ig@-*'iEQa | |||||
| y ,ig@-*'iEQa $atend | |||||
| _. punto | |||||
| // pronunciation exceptions | // pronunciation exceptions |
| .group r | .group r | ||||
| _) r (_ E*e | _) r (_ E*e | ||||
| r r | |||||
| r R | |||||
| _) r R | _) r R | ||||
| A) r (A * | A) r (A * | ||||
| C) r (A @-* | C) r (A @-* |
| qu kv | qu kv | ||||
| .group r | .group r | ||||
| r r | |||||
| r R | |||||
| A) r (A * | A) r (A * | ||||
| K) r (A @-* | K) r (A @-* | ||||
| rr *r | |||||
| rr R | |||||
| r (_ R | |||||
| K) r (K r- | K) r (K r- | ||||
| // Italian: any [E] or [O] phonemes in unstressed words must be listed explicitly | // Italian: any [E] or [O] phonemes in unstressed words must be listed explicitly | ||||
| // Letters | |||||
| // If a letter has a "word" pronunciation which is different from its | |||||
| // "letter" name, then include the letter name here, with the letter | |||||
| // prefixed by a _ character. | |||||
| _e e: | |||||
| _i i: | |||||
| _o O: | |||||
| // character names | // character names | ||||
| _cap k'apital | _cap k'apital | ||||
| _?? s'imbolo | _?? s'imbolo | ||||
| _! p'Untoesklamat'ivo | _! p'Untoesklamat'ivo | ||||
| _" virgolet:e | |||||
| _" viRgolet:e | |||||
| _# kantSellet:o | _# kantSellet:o | ||||
| _$ dolla:ro | |||||
| _% pertS'ento | |||||
| _$ dolla:Ro | |||||
| _% peRtS'ento | |||||
| _& _!e: | _& _!e: | ||||
| _' ap'Ostrofo | |||||
| _( ap'ertapar'entezi | |||||
| _) kj,Uzapar'entezi | |||||
| _* asterisko | |||||
| _' ap'OstRofo | |||||
| _( ap'eRtapaR'entezi | |||||
| _) kj,UzapaR'entezi | |||||
| _* asteRisko | |||||
| _+ pjU | _+ pjU | ||||
| _, v'irgola | |||||
| _- trat:ino | |||||
| _, v'iRgola | |||||
| _- t@-*at:ino | |||||
| _. pUnto | _. pUnto | ||||
| _/ slaS | _/ slaS | ||||
| _: d,Uep'Unte | _: d,Uep'Unte | ||||
| _; p'Untoev'irgola | |||||
| _< ap'erta'angolo | |||||
| _; p'Untoev'iRgola | |||||
| _< ap'eRta'angolo | |||||
| _= Ugwale | _= Ugwale | ||||
| _> kj,Uza'angolo | _> kj,Uza'angolo | ||||
| _? p'UntointeRogat'ivo | _? p'UntointeRogat'ivo | ||||
| _@ ki'otS:ola | _@ ki'otS:ola | ||||
| _[ ap'ertakw'adra | |||||
| _[ ap'eRtakw'ad@-*a | |||||
| _\ bakslaS | _\ bakslaS | ||||
| _] kj,Uzakw'adra | |||||
| _] kj,Uzakw'ad@-*a | |||||
| _^ kap:UtS:o | _^ kap:UtS:o | ||||
| __ 'Underskore | |||||
| _` bakpraIm | |||||
| _{ ap'ertagr'af:a | |||||
| __ 'UndeRskoRe | |||||
| _` bakp@-*aIm | |||||
| _{ ap'eRtag@-*'af:a | |||||
| _| b'aRa | _| b'aRa | ||||
| _} kj,Uzagr'af:a | |||||
| _} kj,Uzag@-*'af:a | |||||
| _~ tilde | _~ tilde | ||||
| _10 di'etSi | _10 di'etSi | ||||
| _11 'unditSi | _11 'unditSi | ||||
| _12 d'oditSi | _12 d'oditSi | ||||
| _13 tr'editSi | |||||
| _14 kwat:'OrditSi | |||||
| _13 t@-*'editSi | |||||
| _14 kwat:'ORditSi | |||||
| _15 kw'imditSi | _15 kw'imditSi | ||||
| _16 s'editSi | _16 s'editSi | ||||
| _17 ditSas:'Et:e | _17 ditSas:'Et:e | ||||
| _18 ditS'Ot:o | _18 ditS'Ot:o | ||||
| _19 ditSann'ove | _19 ditSann'ove | ||||
| _2X v'ente | _2X v'ente | ||||
| _3X tr'enta | |||||
| _4X kwar'anta | |||||
| _3X t@-*'enta | |||||
| _4X kwaR'anta | |||||
| _5X tSinkw'anta | _5X tSinkw'anta | ||||
| _6X sess'anta | _6X sess'anta | ||||
| _7X set:'anta | _7X set:'anta | ||||
| _1M1 m'ille | _1M1 m'ille | ||||
| _0M2 mili'oni | _0M2 mili'oni | ||||
| _1M2 unmili'one | _1M2 unmili'one | ||||
| _0M3 mili'ardi | |||||
| _1M3 unmili'ardo | |||||
| _0M3 mili'aRdi | |||||
| _1M3 unmili'aRdo | |||||
| _0M4 bili'oni | _0M4 bili'oni | ||||
| _1M4 unbili'one | _1M4 unbili'one | ||||
| _dpt _v'irgola | |||||
| _dpt _v'iRgola | |||||
| _0Z2 tSent'ezimi // 100ths | _0Z2 tSent'ezimi // 100ths | ||||
| _0Z3 mill'ezimi // 1000ths | _0Z3 mill'ezimi // 1000ths | ||||
| facevate $u+ | facevate $u+ | ||||
| facevano $u+ | facevano $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 | |||||
| // prefixed by a _ character. | |||||
| _e e: | |||||
| e e: $atend | |||||
| _i i: | |||||
| i i: $atend | |||||
| _o O: | |||||
| o O: $atend | |||||
| // exceptions | // exceptions | ||||
| aereo $2 | aereo $2 | ||||
| conoscerla $1 | conoscerla $1 | ||||
| no nO | no nO | ||||
| posta pOsta | posta pOsta | ||||
| tesser tess'Er | |||||
| tesser tess'ER | |||||
| uomini $1 | uomini $1 |
| .group r | .group r | ||||
| _) r(_ ER*e | _) r(_ ER*e | ||||
| C) r @-* | C) r @-* | ||||
| r r | |||||
| r R | |||||
| _) r R | _) r R | ||||
| rr R* | rr R* | ||||
| A) r (A R | A) r (A R |
| // numeric | // numeric | ||||
| //******** | //******** | ||||
| _0 n'Ul | _0 n'Ul | ||||
| _1 'E:n | |||||
| _1 'e:n | |||||
| _2 t'u: | _2 t'u: | ||||
| _3 t@-*'e: | _3 t@-*'e: | ||||
| _4 f'i:*E | _4 f'i:*E | ||||
| _5 f'E:m | |||||
| _5 f'e:m | |||||
| _6 s'Eks | _6 s'Eks | ||||
| _7 S'u-: | _7 S'u-: | ||||
| _8 'Ot:@2 | _8 'Ot:@2 |
| .group l | .group l | ||||
| l l | l l | ||||
| ll (K l | |||||
| lj j | lj j | ||||
| .group m | .group m | ||||
| m m | m m | ||||
| mm (K m | |||||
| .group n | .group n | ||||
| n n | n n | ||||
| nn (K n | |||||
| ng N | ng N | ||||
| n (k N | n (k N | ||||
| .group r | .group r | ||||
| r r | r r | ||||
| rr R | |||||
| K) r @-* | K) r @-* | ||||
| A) r (A * | A) r (A * | ||||
| r) r | r) r | ||||
| .group s | .group s | ||||
| s s | s s | ||||
| ss ss | ss ss | ||||
| ss (_ s | |||||
| sch S | sch S | ||||
| sj S | sj S | ||||
| skj S | skj S | ||||
| .group v | .group v | ||||
| v v | v v | ||||
| vv (_ v | |||||
| .group w | .group w | ||||
| w v | w v | ||||
| .group z | .group z | ||||
| z s | z s | ||||
| zz z | zz z | ||||
| zz (_ z | |||||
| .group å | .group å | ||||
| å o: | å o: |
| € 'eU*u | € 'eU*u | ||||
| § pa*'ag@-*,afu | § pa*'ag@-*,afu | ||||
| D_) º %o // ordinal | |||||
| D_) ª %a // ordinal | |||||
| // don't speak multiple occurances of these symbols | // don't speak multiple occurances of these symbols | ||||
| , (D v'irgul& | , (D v'irgul& | ||||
| . p'oNtu | . p'oNtu |
| af 37 123 | af 37 123 | ||||
| cy 30 118 | cy 30 118 | ||||
| de 28 115 | de 28 115 | ||||
| eo 15 104 | |||||
| eo 16 104 | |||||
| fi 40 123 | fi 40 123 | ||||
| fr 33 115 | fr 33 115 | ||||
| fr_ca 11 115 | fr_ca 11 115 | ||||
| pl 17 103 | pl 17 103 | ||||
| sk 25 120 | sk 25 120 | ||||
| cs 5 120 | cs 5 120 | ||||
| hr 16 124 | |||||
| hr 19 127 | |||||
| ru 36 120 | ru 36 120 | ||||
| it 28 112 | it 28 112 | ||||
| es 6 112 | es 6 112 | ||||
| 1 r2/r2i base | 1 r2/r2i base | ||||
| 1 r2/r2o base | 1 r2/r2o base | ||||
| 1 r2/r2u base | 1 r2/r2u base | ||||
| 8 r3/r_ base af cy eo fr pl ru it | |||||
| 7 r3/r_ base af cy eo fr pl ru | |||||
| 1 r3/r_@ base | 1 r3/r_@ base | ||||
| 1 r3/r#_ is | 1 r3/r#_ is | ||||
| 1 r3/r_a base | 1 r3/r_a base | ||||
| 1 r3/r_e base | 1 r3/r_e base | ||||
| 1 r3/r_i base | 1 r3/r_i base | ||||
| 7 r3/r_n base cy eo fr pl ru it | |||||
| 6 r3/r_n base cy eo fr pl ru | |||||
| 1 r3/r_o base | 1 r3/r_o base | ||||
| 1 r3/r_trill base | |||||
| 1 r3/r_trill.wav base | |||||
| 3 r3/r_trill base eo it | |||||
| 3 r3/r_trill.wav base eo it | |||||
| 1 r3/r_u base | 1 r3/r_u base | ||||
| 30 r3/rx base af cy eo fr fr_ca pl ru it pt_pt ro is | |||||
| 28 r3/rx base af cy eo fr fr_ca pl ru pt_pt ro is | |||||
| 2 r3/rz_cs sk | 2 r3/rz_cs sk | ||||
| 2 r3/@tap base | 2 r3/@tap base | ||||
| 2 r3/@tap_i base | 2 r3/@tap_i base | ||||
| 1 r/re base | 1 r/re base | ||||
| 1 r/ri base | 1 r/ri base | ||||
| 1 r/ro base | 1 r/ro base | ||||
| 30 r/rr base af cy de eo fi nl pl ru it ro no ++ | |||||
| 29 r/rr base af cy de eo fi nl pl ru it ro no ++ | |||||
| 1 r/ru base | 1 r/ru base | ||||
| 15 r/tr base en_sc fr hu it | 15 r/tr base en_sc fr hu it | ||||
| 60 r/trr base af cy de eo fi nl pl ru it ro sv ++ | |||||
| 57 r/trr base af cy de eo fi nl pl ru it ro sv ++ | |||||
| 11 r/xr base | 11 r/xr base | ||||
| 1 ufric/ch base | 1 ufric/ch base | ||||
| 3 ufric/f base de ro | 3 ufric/f base de ro | ||||
| 1 ufric/th_ base | 1 ufric/th_ base | ||||
| 2 ufric/x base vi | 2 ufric/x base vi | ||||
| 4 ufric/x2 af nl pt | 4 ufric/x2 af nl pt | ||||
| 1 ufric/x_hr hr | |||||
| 1 ufric/xx hr | 1 ufric/xx hr | ||||
| 1 ustop/c base | 1 ustop/c base | ||||
| 5 ustop/k base en fr hi sw | 5 ustop/k base en fr hi sw | ||||
| 1 vowel/3_2 en_n | 1 vowel/3_2 en_n | ||||
| 1 vowel/3_3 en_rp | 1 vowel/3_3 en_rp | ||||
| 3 vowel/3_en en en_wm af | 3 vowel/3_en en en_wm af | ||||
| 1 vowel/@_4 nl | |||||
| 2 vowel/@_4 nl hr | |||||
| 2 vowel/8_2 en_us sv | 2 vowel/8_2 en_us sv | ||||
| 1 vowel/8_3 zh_yue | 1 vowel/8_3 zh_yue | ||||
| 10 vowel/a en_n cy de hu nl pl sk hr | 10 vowel/a en_n cy de hu nl pl sk hr | ||||
| 17 vowel/i en_n en_rp en_wm cy eo fr hu pl it pt pt_pt ro ++ | 17 vowel/i en_n en_rp en_wm cy eo fr hu pl it pt pt_pt ro ++ | ||||
| 1 vowel/i# cy | 1 vowel/i# cy | ||||
| 3 vowel/i_2 de nl sv | 3 vowel/i_2 de nl sv | ||||
| 3 vowel/i_3 af sk hr | |||||
| 2 vowel/i_3 af sk | |||||
| 4 vowel/i_4 fi hu it is | 4 vowel/i_4 fi hu it is | ||||
| 5 vowel/i_5 en_sc | 5 vowel/i_5 en_sc | ||||
| 3 vowel/i#_5 pt_pt ro | 3 vowel/i#_5 pt_pt ro | ||||
| 1 vowel/i_6 hr | |||||
| 3 vowel/i_en en en_us vi | 3 vowel/i_en en en_us vi | ||||
| 2 vowel/i_fnt hi | 2 vowel/i_fnt hi | ||||
| 10 vowel/ii en_wm cy de fr_ca nl is zh_yue | 10 vowel/ii en_wm cy de fr_ca nl is zh_yue | ||||
| 6 vowel/ii_en en en_n | 6 vowel/ii_en en en_n | ||||
| 5 vowel/@_low hi ro no | 5 vowel/@_low hi ro no | ||||
| 8 vowel/o en en_wm de hi it pt_pt sv | 8 vowel/o en en_wm de hi it pt_pt sv | ||||
| 1 vowel/o- hr | |||||
| 4 vowel/o_2 cy hi hu no | 4 vowel/o_2 cy hi hu no | ||||
| 2 vowel/o-_2 en_n en_wm | 2 vowel/o-_2 en_n en_wm | ||||
| 2 vowel/o_3 en_sc | 2 vowel/o_3 en_sc |
| length 140 | length 140 | ||||
| endphoneme | endphoneme | ||||
| phoneme @3 // Schwa (raised) | |||||
| vowel starttype (@) endtype (@) | |||||
| formants vowel/@_4 | |||||
| length 140 | |||||
| endphoneme | |||||
| phoneme a | phoneme a | ||||
| vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
| length 150 | |||||
| length 160 | |||||
| formants vowel/a | formants vowel/a | ||||
| reduceto & 4 | reduceto & 4 | ||||
| endphoneme | endphoneme | ||||
| phoneme i | phoneme i | ||||
| vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
| length 120 | length 120 | ||||
| formants vowel/i_3 | |||||
| formants vowel/i_6 | |||||
| linkout ; | linkout ; | ||||
| reduceto I 4 | reduceto I 4 | ||||
| endphoneme | endphoneme | ||||
| formants vowel/oo_1 | formants vowel/oo_1 | ||||
| endphoneme | endphoneme | ||||
| phoneme 8 | |||||
| vowel starttype (o) endtype (o) | |||||
| length 140 | |||||
| formants vowel/o- | |||||
| endphoneme | |||||
| phoneme u | phoneme u | ||||
| vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
| length 130 | |||||
| length 140 | |||||
| formants vowel/u_bck | formants vowel/u_bck | ||||
| reduceto U 4 | reduceto U 4 | ||||
| endphoneme | endphoneme | ||||
| phoneme U | phoneme U | ||||
| vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
| length 130 | |||||
| length 140 | |||||
| formants vowel/uu_bck | formants vowel/uu_bck | ||||
| endphoneme | endphoneme | ||||
| vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | ||||
| length 100 | length 100 | ||||
| lengthmod 3 | lengthmod 3 | ||||
| wave ufric/xx | |||||
| wave ufric/x_hr%45 | |||||
| switchvoicing Q | switchvoicing Q | ||||
| endphoneme | endphoneme | ||||
| phoneme x2 // TEST | |||||
| vls vel frc | |||||
| vowelin f1=0 f2=2300 200 400 f3=-100 80 | |||||
| vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | |||||
| length 100 | |||||
| lengthmod 3 | |||||
| wave ufric/xx%120 | |||||
| switchvoicing Q | |||||
| endphoneme | |||||
| after t r/trr p r/trr k r/trr | after t r/trr p r/trr k r/trr | ||||
| endphoneme | endphoneme | ||||
| phoneme R | |||||
| liquid | |||||
| vowelin f1=0 f2=1700 -300 300 f3=-300 80 | |||||
| vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk | |||||
| beforenotvowel r/ | |||||
| formants r3/r_trill+r3/r_trill.wav%50 | |||||
| trill | |||||
| lengthmod 6 | |||||
| endphoneme | |||||
| phoneme ts | phoneme ts | ||||
| vls alv afr sibilant | vls alv afr sibilant |
| endphoneme | endphoneme | ||||
| phoneme R2 | phoneme R2 | ||||
| liquid starttype r endtype r | liquid starttype r endtype r | ||||
| length 100 | length 100 | ||||
| endphoneme | endphoneme | ||||
| phoneme r/ // used for [r] when not preceding a vowel | |||||
| phoneme R | |||||
| liquid | liquid | ||||
| length 100 | |||||
| lengthmod 2 // | |||||
| formants r3/r_+r3/rx | |||||
| before n r3/r_n+r3/rx | |||||
| after _ r/rr | |||||
| after t r/trr p r/trr k r/trr | |||||
| vowelin f1=0 f2=1700 -300 300 f3=-300 80 | |||||
| vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk | |||||
| beforenotvowel r/ | |||||
| formants r3/r_trill+r3/r_trill.wav%50 | |||||
| trill | |||||
| lengthmod 6 | |||||
| endphoneme | endphoneme | ||||
| phoneme w2 | phoneme w2 | ||||
| starttype w endtype w | starttype w endtype w | ||||
| liquid | liquid |
| phoneme i: | phoneme i: | ||||
| vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
| length 210 | |||||
| length 220 | |||||
| formants vowel/i | formants vowel/i | ||||
| after w w/wi2 | after w w/wi2 | ||||
| linkout ; | linkout ; | ||||
| phoneme y: | phoneme y: | ||||
| vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
| length 240 | |||||
| length 250 | |||||
| formants vowel/y_4 | formants vowel/y_4 | ||||
| endphoneme | endphoneme | ||||
| phoneme Y: | phoneme Y: | ||||
| vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
| length 240 | |||||
| length 250 | |||||
| formants vwl_no/y# | formants vwl_no/y# | ||||
| endphoneme | endphoneme | ||||
| phoneme E: | phoneme E: | ||||
| vowel starttype (e) endtype (e) | vowel starttype (e) endtype (e) | ||||
| length 240 | |||||
| length 250 | |||||
| formants vowel/ee_1 | formants vowel/ee_1 | ||||
| endphoneme | endphoneme | ||||
| phoneme a: | phoneme a: | ||||
| vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
| length 250 | |||||
| length 270 | |||||
| formants vwl_no/& | formants vwl_no/& | ||||
| endphoneme | endphoneme | ||||
| phoneme A: | phoneme A: | ||||
| vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
| length 250 | |||||
| length 280 | |||||
| formants vowel/aa | formants vowel/aa | ||||
| endphoneme | endphoneme | ||||
| phoneme o: | phoneme o: | ||||
| vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
| length 240 | |||||
| length 250 | |||||
| formants vowel/o_2 | formants vowel/o_2 | ||||
| endphoneme | endphoneme | ||||
| phoneme u: | phoneme u: | ||||
| vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
| length 220 | |||||
| length 230 | |||||
| formants vowel/u_bck | formants vowel/u_bck | ||||
| endphoneme | endphoneme | ||||
| phoneme u-: | phoneme u-: | ||||
| vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
| length 240 | |||||
| length 250 | |||||
| formants vwl_no/u#2 | formants vwl_no/u#2 | ||||
| endphoneme | endphoneme | ||||
| phoneme A: | phoneme A: | ||||
| vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
| length 240 | |||||
| length 250 | |||||
| formants vowel/aa_4 | formants vowel/aa_4 | ||||
| endphoneme | endphoneme | ||||
| c = RULE_ALT1; | c = RULE_ALT1; | ||||
| break; | break; | ||||
| case 'W': | case 'W': | ||||
| c = 0x31; | |||||
| c = RULE_SPELLING; | |||||
| break; | break; | ||||
| case 'L': | case 'L': | ||||
| // expect two digits | // expect two digits |
| len = utf8_out(letter,&single_letter[2]); | len = utf8_out(letter,&single_letter[2]); | ||||
| single_letter[2+len] = ' '; | single_letter[2+len] = ' '; | ||||
| next = 0x31; | |||||
| next = RULE_SPELLING; | |||||
| if(word[n_bytes] == ' ') | if(word[n_bytes] == ' ') | ||||
| next = ' '; | next = ' '; | ||||
| single_letter[3+len] = next; // follow by space-space if the end of the word, or space-0x31 | single_letter[3+len] = next; // follow by space-space if the end of the word, or space-0x31 |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.24.09 13.May.07"; | |||||
| const char *version_string = "1.24.10 14.May.07"; | |||||
| const int version_phdata = 0x012201; | const int version_phdata = 0x012201; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| } | } | ||||
| break; | break; | ||||
| case L('h','r'): // Croatian | |||||
| { | |||||
| static const wchar_t replace_chars_hr[] = | |||||
| {0x430,0x431,0x446,0x45b,0x447,0x434,0x452,0x45f, | |||||
| 0x435,0x444,0x433,0x445,0x438,0x458,0x43a,0x43b, | |||||
| 0x459,0x43c,0x43d,0x45a,0x43e,0x43f,0x440,0x441, | |||||
| 0x448,0x442,0x443,0x432,0x437,0x436, | |||||
| 0x453,0x455,0x45c,0}; // ѓ ѕ ќ | |||||
| static const unsigned int replacement_chars_hr[] = | |||||
| {'a','b','c',0x107,0x10d,'d',0x111,'d'+(0x17e<<16), | |||||
| 'e','f','g','h','i','j','k','l', | |||||
| 'l'+('j'<<16),'m','n','n'+('j'<<16),'o','p','r','s', | |||||
| 0x161,'t','u','v','z',0x17e, | |||||
| 0x111,'d'+('z'<<16),0x107,0}; | |||||
| static int stress_amps_hr[8] = {16,16, 20,20, 20,24, 24,22 }; | |||||
| static int stress_lengths_hr[8] = {180,160, 200,200, 0,0, 220,230}; | |||||
| tr = new Translator(); | |||||
| SetupTranslator(tr,stress_lengths_hr,stress_amps_hr); | |||||
| tr->charset_a0 = charsets[2]; // ISO-8859-2 | |||||
| tr->langopts.stress_rule = 0; | |||||
| tr->langopts.stress_flags = 0x10; | |||||
| tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x3; | |||||
| tr->langopts.max_initial_consonants = 5; | |||||
| tr->langopts.spelling_stress = 1; | |||||
| tr->langopts.numbers = 0x1c0d + 0x84000; | |||||
| tr->langopts.numbers2 = 0xa; // variant numbers before thousands,milliards | |||||
| tr->langopts.replace_chars = replace_chars_hr; | |||||
| tr->langopts.replacement_chars = replacement_chars_hr; | |||||
| SetLetterVowel(tr,'y'); | |||||
| SetLetterVowel(tr,'r'); | |||||
| } | |||||
| break; | |||||
| case L('h','u'): // Hungarian | case L('h','u'): // Hungarian | ||||
| { | { | ||||
| static int stress_amps_hu[8] = {16,16, 20,20, 20,24, 24,22 }; | static int stress_amps_hu[8] = {16,16, 20,20, 20,24, 24,22 }; | ||||
| case L('s','k'): // Slovak | case L('s','k'): // Slovak | ||||
| case L('c','s'): // Czech | case L('c','s'): // Czech | ||||
| case L('h','r'): // Croatian | |||||
| { | { | ||||
| static const wchar_t replace_chars_hr[] = | |||||
| {0x430,0x431,0x446,0x45b,0x447,0x434,0x452,0x45f, | |||||
| 0x435,0x444,0x433,0x445,0x438,0x458,0x43a,0x43b, | |||||
| 0x459,0x43c,0x43d,0x45a,0x43e,0x43f,0x440,0x441, | |||||
| 0x448,0x442,0x443,0x432,0x437,0x436, | |||||
| 0x453,0x455,0x45c,0}; // ѓ ѕ ќ | |||||
| static const unsigned int replacement_chars_hr[] = | |||||
| {'a','b','c',0x107,0x10d,'d',0x111,'d'+(0x17e<<16), | |||||
| 'e','f','g','h','i','j','k','l', | |||||
| 'l'+('j'<<16),'m','n','n'+('j'<<16),'o','p','r','s', | |||||
| 0x161,'t','u','v','z',0x17e, | |||||
| 0x111,'d'+('z'<<16),0x107,0}; | |||||
| static int stress_amps_sk[8] = {16,16, 20,20, 20,24, 24,22 }; | static int stress_amps_sk[8] = {16,16, 20,20, 20,24, 24,22 }; | ||||
| // static int stress_lengths_sk[8] = {180,180, 200,200, 0,0, 210,220}; | |||||
| static int stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | static int stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | ||||
| static char *sk_voiced = "bdgjlmnrvwzaeiouy"; | static char *sk_voiced = "bdgjlmnrvwzaeiouy"; | ||||
| tr->langopts.param[LOPT_COMBINE_WORDS] = 4; // combine some prepositions with the following word | tr->langopts.param[LOPT_COMBINE_WORDS] = 4; // combine some prepositions with the following word | ||||
| tr->langopts.numbers = 0x1c0d + 0x84000; | tr->langopts.numbers = 0x1c0d + 0x84000; | ||||
| if(name2 == L('h','r')) | |||||
| { | |||||
| tr->langopts.numbers2 = 0xa; // variant numbers before thousands,milliards | |||||
| tr->langopts.replace_chars = replace_chars_hr; | |||||
| tr->langopts.replacement_chars = replacement_chars_hr; | |||||
| } | |||||
| if(name2 == L('c','s')) | if(name2 == L('c','s')) | ||||
| tr->langopts.numbers2 = 0x8; // variant numbers before milliards | tr->langopts.numbers2 = 0x8; // variant numbers before milliards | ||||
| SetLetterVowel(tr,'y'); | SetLetterVowel(tr,'y'); | ||||
| SetLetterVowel(tr,'r'); | SetLetterVowel(tr,'r'); | ||||
| SetLetterBits(tr,5,sk_voiced); | SetLetterBits(tr,5,sk_voiced); |
| int c; | int c; | ||||
| int cc; | int cc; | ||||
| unsigned int source_index=0; | unsigned int source_index=0; | ||||
| unsigned int prev_source_index; | |||||
| unsigned int prev_source_index=0; | |||||
| int prev_in; | int prev_in; | ||||
| int prev_out=' '; | int prev_out=' '; | ||||
| int prev_out2; | int prev_out2; |
| #define RULE_IFVERB 26 // V | #define RULE_IFVERB 26 // V | ||||
| #define RULE_LETTERGP 27 // L + letter group number | #define RULE_LETTERGP 27 // L + letter group number | ||||
| #define RULE_ALT1 28 // word has $alt attribute | #define RULE_ALT1 28 // word has $alt attribute | ||||
| #define RULE_SPELLING 31 // while spelling letter-by-letter | |||||
| #define RULE_LAST_RULE 28 | #define RULE_LAST_RULE 28 | ||||
| #define LETTERGP_A 0 | #define LETTERGP_A 0 |