TranslateChar() can now substitute a character by two replacement characters. Lang=cs, more difference between long and short vowels, less length differnence beteeen stressed and unstressed syllables. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@7 d46cf337-b52f-0410-862d-fd96e6ae7743master
| imagine I2madZI2n | imagine I2madZI2n | ||||
| impedance I2mpi:d@ns | impedance I2mpi:d@ns | ||||
| imperative I2mpEr@tIv | imperative I2mpEr@tIv | ||||
| impi $1 | |||||
| imprecise I2mprIs'aIs | imprecise I2mprIs'aIs | ||||
| inappropriate ,Ina2proUpri@t | inappropriate ,Ina2proUpri@t | ||||
| incense Ins'Ens $verb | incense Ins'Ens $verb | ||||
| rebel rI2bEl $verb | rebel rI2bEl $verb | ||||
| recall ri:kO:l | recall ri:kO:l | ||||
| recall $2 $verb | recall $2 $verb | ||||
| recalled rI2kO:ld | |||||
| recess ri:sEs | recess ri:sEs | ||||
| recipe rEsIpi: | recipe rEsIpi: | ||||
| reciprocal rI2sIpr@k@L | reciprocal rI2sIpr@k@L | ||||
| san ,san | san ,san | ||||
| sardine $2 | sardine $2 | ||||
| satan seIt@n | satan seIt@n | ||||
| satellite sat@laIt | |||||
| saucepan sO:sp@n | saucepan sO:sp@n | ||||
| saudi saUdI2 | saudi saUdI2 | ||||
| says sEz | says sEz | ||||
| Cheshire tSES3 | Cheshire tSES3 | ||||
| Chiswick tSIzIk | Chiswick tSIzIk | ||||
| Dolgellau d0lg'EClaI | Dolgellau d0lg'EClaI | ||||
| Dover doUv3 | |||||
| Dumfries dVmfr'i:s | Dumfries dVmfr'i:s | ||||
| Dyfed d'VvId | Dyfed d'VvId | ||||
| Edinburgh EdInb%Vr@ | Edinburgh EdInb%Vr@ | ||||
| (might have to) ,maIth'avt@5 $verbf $atend | (might have to) ,maIth'avt@5 $verbf $atend | ||||
| have %hav $pastf $only | have %hav $pastf $only | ||||
| haves havz | |||||
| (have been) %hav%bIn $pastf | (have been) %hav%bIn $pastf | ||||
| (have to) havtU $atend | (have to) havtU $atend | ||||
| has %ha2z $pastf $only | has %ha2z $pastf $only |
| _it_separ) ate (_ @t | _it_separ) ate (_ @t | ||||
| par) ates (_ eIt|s | par) ates (_ eIt|s | ||||
| @) ated (++_ eItId | @) ated (++_ eItId | ||||
| _s) atel (l at@ | |||||
| @) ati (_ 'A:tI | @) ati (_ 'A:tI | ||||
| at (im_ 'eIt | at (im_ 'eIt | ||||
| @) ating (++_ eItIN | @) ating (++_ eItIN | ||||
| ise (_ aIz | ise (_ aIz | ||||
| iser (_ aIz3 | iser (_ aIz3 | ||||
| @) ism (_$3de Iz@m | @) ism (_$3de Iz@m | ||||
| an) ism (_$3d Iz@m | |||||
| @iB) ism (_$3d Iz@m | @iB) ism (_$3d Iz@m | ||||
| is (er+_ aIz | is (er+_ aIz | ||||
| iz (er_ aIz | iz (er_ aIz | ||||
| ch) or (d O@ | ch) or (d O@ | ||||
| l) or (d O@ | l) or (d O@ | ||||
| _m) or O@ | _m) or O@ | ||||
| _m) orr 0r | |||||
| _m) ore o@ | _m) ore o@ | ||||
| nd) or (_ 3 | nd) or (_ 3 | ||||
| nt) or (_ o@ | nt) or (_ o@ | ||||
| 'll (_$3 @L | 'll (_$3 @L | ||||
| .group 0xce | |||||
| // $group (++ _^_EL | |||||
| .group 0xce // Greek letters | |||||
| // 0xce is the first byte of the utf-8 code for these characters | |||||
| α 'alf@_ | α 'alf@_ | ||||
| ά 'alf@_ | ά 'alf@_ | ||||
| ξ ks'aI_ | ξ ks'aI_ | ||||
| ο oUm'aIkr0n_ | ο oUm'aIkr0n_ | ||||
| .group 0xcf | |||||
| // $group (++ _^_EL | |||||
| .group 0xcf // Greek letters | |||||
| π p'aI_ | π p'aI_ | ||||
| ρ r'oU_ | ρ r'oU_ |
| ó o: | ó o: | ||||
| ú u: | ú u: | ||||
| ä _^_DE // use German voice | |||||
| ö _^_DE | |||||
| ü _^_DE | |||||
| ß _^_DE | |||||
| $ dol&r | $ dol&r | ||||
| . totSk& | . totSk& | ||||
| = (== | = (== | ||||
| =) = (= | =) = (= | ||||
| ==) = (_ _:: | ==) = (_ _:: | ||||
| .group 0xce // Greek letters | |||||
| α alf&_ | |||||
| ά alf&_||tonos | |||||
| β b'et&_ | |||||
| γ g&m&_ | |||||
| δ delt&_ | |||||
| ε Epsilon | |||||
| έ Epsilon||tonos | |||||
| ζ zet&_ | |||||
| η et&_ | |||||
| ή et&_||tonos | |||||
| θ txet&_ | |||||
| ι jot&_ | |||||
| ί jot&_||tonos | |||||
| κ k&p&_ | |||||
| λ l&md&_ | |||||
| μ mi_ | |||||
| ν ni_ | |||||
| ξ k_si_ | |||||
| ο omi_k@-*on_ | |||||
| .group 0xcf // Greek letters | |||||
| π pi_ | |||||
| ρ @-*o_ | |||||
| σ sigm&_ | |||||
| ς grtSko_||z&vrS@no_||sigm&_ | |||||
| τ t&U_ | |||||
| υ grtSki_||IpsIlon_ | |||||
| ύ grtSki||IpsIlon_||tonos | |||||
| φ fi_ | |||||
| χ h_i | |||||
| ψ pss'I | |||||
| ω omeg&_ | |||||
| ώ omeg&_||tonos | |||||
| ό omi_k@-*on_||tonos | |||||
| | |||||
| // This file in UTF8 encoded | // This file in UTF8 encoded | ||||
| // Options | // Options | ||||
| _5 s'iNku | _5 s'iNku | ||||
| ?1_6 s'eIS | ?1_6 s'eIS | ||||
| ?2_6 s'eIs | ?2_6 s'eIs | ||||
| ?1_7 s'Et | |||||
| ?1_7 s'Ety | |||||
| ?2_7 s'EtSi | ?2_7 s'EtSi | ||||
| _8 'oItu | _8 'oItu | ||||
| ?1_9 n'Ov | |||||
| ?1_9 n'Ovy | |||||
| ?2_9 n'Ovi | ?2_9 n'Ovi | ||||
| ?1_10 d'ES | ?1_10 d'ES | ||||
| ?2_10 d'Ez | ?2_10 d'Ez | ||||
| ?1_11 'oNz | |||||
| ?1_11 'oNzy | |||||
| ?2_11 'oNzi | ?2_11 'oNzi | ||||
| ?1_12 d'oz | |||||
| ?1_12 d'ozy | |||||
| ?2_12 d'ozi | ?2_12 d'ozi | ||||
| ?1_13 t:r'ez | |||||
| ?1_13 t:r'ezy | |||||
| ?2_13 t@-*'ezi | ?2_13 t@-*'ezi | ||||
| ?1_14 k&t'Orz | |||||
| ?1_14 k&t'orzy | |||||
| ?2_14 kat'Orzi | ?2_14 kat'Orzi | ||||
| ?1_15 k'iNz | |||||
| ?1_15 k'iNzy | |||||
| ?2_15 k'iNzi | ?2_15 k'iNzi | ||||
| ?1_16 dyz&s'eiS | ?1_16 dyz&s'eiS | ||||
| ?2_16 d,ezes'eIs | ?2_16 d,ezes'eIs | ||||
| ?1_17 dyz&s'Et | |||||
| ?1_17 dyz&s'Ety | |||||
| ?2_17 d,ezes'EtSi | ?2_17 d,ezes'EtSi | ||||
| ?1_18 dyz'Oitu | ?1_18 dyz'Oitu | ||||
| ?2_18 dez'oItu | ?2_18 dez'oItu | ||||
| ?1_19 dyz&n'Ov | |||||
| ?1_19 dyz&n'Ovy | |||||
| ?2_19 dezen'Ovi | ?2_19 dezen'Ovi | ||||
| ?1_2X v'iNt | |||||
| ?1_2X v'iNty | |||||
| ?2_2X v'iNtSi | ?2_2X v'iNtSi | ||||
| ?1_3X tr'iNt& | ?1_3X tr'iNt& | ||||
| ?2_3X t@-*'iNt& | ?2_3X t@-*'iNt& | ||||
| ?1_7X syt'eINt& | ?1_7X syt'eINt& | ||||
| ?2_7X set'eINt& | ?2_7X set'eINt& | ||||
| _8X oIt'eINt& | _8X oIt'eINt& | ||||
| _9X nov'eINt& | |||||
| ?1 _9X nuv'eINt& | |||||
| ?2 _9X nov'eINt& | |||||
| _1C0 s'eIN | _1C0 s'eIN | ||||
| ?1_0C s'eINtuS | ?1_0C s'eINtuS | ||||
| ?2_0C s'eINtuz | ?2_0C s'eINtuz | ||||
| // ABBREVIATIONS | // ABBREVIATIONS | ||||
| //************** | //************** | ||||
| aapp $abbrev | |||||
| abadv $abbrev | abadv $abbrev | ||||
| abc $abbrev | |||||
| a.c 'as'e | a.c 'as'e | ||||
| adsl $abbrev | adsl $abbrev | ||||
| ae $abbrev | |||||
| aids $abbrev | |||||
| apedv $abbrev | apedv $abbrev | ||||
| ?1 apedv ,a,pe,,E,de've | |||||
| avc $abbrev | |||||
| bios b'i,OS | bios b'i,OS | ||||
| d.c d,es'e | d.c d,es'e | ||||
| cne $abbrev | |||||
| cpu $abbrev | cpu $abbrev | ||||
| //?1 cpu ,se,pe'u | |||||
| ?1 cpuc ,se,pe,u'se | |||||
| cpuc $abbrev | |||||
| dpoc $abbrev | |||||
| ecg $abbrev | |||||
| edp $abbrev | edp $abbrev | ||||
| ?1 etc ,ets'Et:r& | ?1 etc ,ets'Et:r& | ||||
| ?2 etc ,ets'Ete*& | ?2 etc ,ets'Ete*& | ||||
| ?2 (http ://) ag,atete'pe_ | |||||
| hiv $abbrev | |||||
| (http ://) ag,atete'pe_ | |||||
| icc $abbrev | |||||
| IEEE $abbrev // Institute of Electrical and Electronics Engineers | |||||
| iss $abbrev | |||||
| jpeg Z,Ot&p'Eg | |||||
| mpeg ,Emp'Eg | |||||
| nba $abbrev | |||||
| nvda $abbrev | nvda $abbrev | ||||
| oms $abbrev | |||||
| omt $abbrev | |||||
| osi $abbrev | |||||
| ?1 sa ,Esj'a | |||||
| ?1 sos ,Esj,O'Es | |||||
| ue $abbrev | |||||
| unts $abbrev | unts $abbrev | ||||
| unts $abbrev | |||||
| ?1 usb ,u,Esy'be | |||||
| ?2 usb $abbrev | |||||
| usb $abbrev | |||||
| // articles | // articles | ||||
| abacaxi abakaSi | abacaxi abakaSi | ||||
| axé aSE | axé aSE | ||||
| elixir eliSir | elixir eliSir | ||||
| ?1 fixe fiSe | |||||
| ?1 fixe f'iSy | |||||
| lixo l'iSu | lixo l'iSu | ||||
| roxo x'oSu | roxo x'oSu | ||||
| // foreign words | // foreign words | ||||
| ?1 alt 'alt | ?1 alt 'alt | ||||
| ?1 bacalhau b,&k&lj'aU | ?1 bacalhau b,&k&lj'aU | ||||
| ?1 caps k'aps | |||||
| ctrl k'oNt:r,Ol | |||||
| ?1 delete dil'i:t | |||||
| ?1 design diz'aIn | |||||
| ?1 down d'aUn | |||||
| ?1 download d'aUnloUd | |||||
| ?1 back _^_EN | |||||
| ?1 blind _^_EN | |||||
| ?1 braille b:r'aily | |||||
| ?1 cancel _^_EN | |||||
| ?1 caps _^_EN | |||||
| ?1 ctrl k'oNt:r,Ol | |||||
| ?2 ctrl k'oNt:r,OU | |||||
| ?1 delete _^_EN | |||||
| ?1 design _^_EN | |||||
| ?1 down _^_EN | |||||
| ?1 download _^_EN | |||||
| ?1 end _^_EN | |||||
| ?1 escape Sk'eIpy | ?1 escape Sk'eIpy | ||||
| ?1 eyes w'aIz | |||||
| ?1 eyes _^_EN | |||||
| ?1 gmail g,em'eIl | |||||
| ?1 google g'u:g&l | ?1 google g'u:g&l | ||||
| hardware h'ardwe@ | |||||
| ?1 kernel k'ErnEl | |||||
| ?1 hardware _^_EN | |||||
| ?2hardware h'ardwe@ | |||||
| ?1 home _^_EN | |||||
| ?1 hotmail _^_EN | |||||
| ?1 install _^_EN | |||||
| ?1 kernel k'Ern,El | |||||
| ?2 kernel k'ErnEU | ?2 kernel k'ErnEU | ||||
| ?1 line l'aIn | |||||
| ?1 line _^_EN | |||||
| layout l'eI,aUt | layout l'eI,aUt | ||||
| ?1 lock _^_EN | ?1 lock _^_EN | ||||
| ?1 mail meIl | |||||
| ?1 mail _^_EN | |||||
| ?2 mail m'eja | ?2 mail m'eja | ||||
| ?1 menu mEnU | |||||
| ?1 menu menu | |||||
| ?1 next _^_EN | |||||
| ok Ok'eI | ok Ok'eI | ||||
| ?1 pause p'au:z | ?1 pause p'au:z | ||||
| ?1 page p'eIdZ | |||||
| ?1 page _^_EN | |||||
| ?1 scanner _^_EN | |||||
| ?1 shift S'ift | |||||
| ?1 scroll _^_EN | ?1 scroll _^_EN | ||||
| site s'aIt | site s'aIt | ||||
| software s'Oftwe@ | software s'Oftwe@ | ||||
| ?1 up _^_EN | |||||
| ?1 upload _^_EN | |||||
| ?1 space _^_EN | |||||
| ?1 sporting sp'Ort,ing | |||||
| ?1 tab t'ab | |||||
| ?1 up _^_EN | |||||
| ?1 upload _^_EN | |||||
| ?1 window _^_EN | ?1 window _^_EN | ||||
| ?1 yes j'Es | |||||
| ?1 yahoo _^_EN | |||||
| ?1 yes _^_EN | |||||
| // common person names | // common person names | ||||
| alan 'al@n | alan 'al@n | ||||
| louis _^_FR | |||||
| // foreign product names | // foreign product names | ||||
| ?1 access 'aksEs | |||||
| debian d'Ebj&~N | |||||
| ?1 access _^_EN | |||||
| ?1 adobe &d'Oby | |||||
| ?1 debian _^_EN | |||||
| ?2 debian d'Ebj&~N | |||||
| ?1 excel _^_EN | |||||
| ?1 express _^_EN | |||||
| espeak isp'i:k | espeak isp'i:k | ||||
| espeakedit isp'i:k,Ed,it | espeakedit isp'i:k,Ed,it | ||||
| firefox f'ai@foks | |||||
| ?1 hal hal | |||||
| ?1 fedora _^_EN | |||||
| ?1 firefox _^_EN | |||||
| ?2 firefox f'ai@foks | |||||
| ?1 front _^_EN | |||||
| ?1 hal _^_EN | |||||
| ?1 jaws dZ'au:z | ?1 jaws dZ'au:z | ||||
| ?1 linux l,in'uks | ?1 linux l,in'uks | ||||
| ?2 linux l'inuks | ?2 linux l'inuks | ||||
| ?1 live _^_EN | |||||
| ?1 maker _^_EN | |||||
| ?1 media _^_EN | |||||
| ?1 messenger _^_EN | |||||
| ?1 microsoft m,ik:r'os,Oft | |||||
| ?1 movie _^_EN | |||||
| ?1 nero n'E:ru | |||||
| ?1 office _^_EN | |||||
| openoffice 'opeIN|'Ofis | openoffice 'opeIN|'Ofis | ||||
| ?1 outlook _^_EN | |||||
| ?1 paint p'aint | |||||
| ?1 player _^_EN | |||||
| ?1 point _^_EN | |||||
| ?1 power _^_EN | |||||
| ?1 product _^_EN | |||||
| ?1 Publisher _^_EN | |||||
| ?1 reader _^_EN | ?1 reader _^_EN | ||||
| ?1 setup _^_EN | |||||
| ?1 scout _^_EN // Nero Scout | |||||
| ?1 skype _^_EN | |||||
| slackware sl'akwe@ | slackware sl'akwe@ | ||||
| ?1 smart _^_EN // nero StartSmart | |||||
| speak spi:k | speak spi:k | ||||
| suse z'u:ts@ | suse z'u:ts@ | ||||
| ?1 start _^_EN // nero StartSmart | |||||
| ?1 time _^_EN // nero show time | |||||
| ubuntu ub'untu | ubuntu ub'untu | ||||
| ?1 unix ,u:n'iks | ?1 unix ,u:n'iks | ||||
| ?2 unix j'u:niks | ?2 unix j'u:niks | ||||
| ?1 windows _^_EN | ?1 windows _^_EN | ||||
| ?1 WinRAR _^_EN | |||||
| volkmann f'Olkman | volkmann f'Olkman | ||||
| // translation rules Brazilian | |||||
| // translation rules Brazilian | |||||
| // This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
| // Options | // Options | ||||
| ?1 C) ecç 'E's // eg: selecção, etc... | ?1 C) ecç 'E's // eg: selecção, etc... | ||||
| ?1 C) e (ã i // leão, panteão, etc. | ?1 C) e (ã i // leão, panteão, etc. | ||||
| ?1 C) e (a i // oceano, etc. | ?1 C) e (a i // oceano, etc. | ||||
| ?1 _C) e (CACA y //definições. | |||||
| ?1 _C) e (CCACAr y // desligar. | |||||
| ?1 C) e (CCAC y // eg: deslocamento, etc... | |||||
| ?1 _C) e (CKAr y // fechar | |||||
| ?1 _C) e (CCACAr y // terminar. | |||||
| ?1 _C) e (CACC y // recicla, reciclagem, etc... | |||||
| ?1 _f) e (rrament y // ferramenta, ferramentas. | |||||
| ?1 _d) e (fini y //definições. | |||||
| ?1 _d) e (slig y // desligar. | |||||
| ?1 _d) e (sloc y // eg: deslocamento, etc... | |||||
| ?1 _f) e (ch y // fechar | |||||
| ?1 _t) e (rmin y // terminar. | |||||
| ?1 _r) e (cicl y // recicla, reciclagem, etc... | |||||
| ?1 _f) e (rramenta y // ferramenta, ferramentas. | |||||
| ?1 _p) e (squ y // pesquisar | |||||
| ?1 hip) e (r ,E // eg: hiper | ?1 hip) e (r ,E // eg: hiper | ||||
| ?1 sup) e (r ,E // super | ?1 sup) e (r ,E // super | ||||
| ?1 int) e (rC 'E // Interno | |||||
| ?1 int) e (rr E // eg: Enterra | |||||
| ?1 int) e (rn ,E // Interno | |||||
| ?1 n) e (t ,E // eg: net | ?1 n) e (t ,E // eg: net | ||||
| ?1 e (l_ ,E // eg: possível, manuel, etc... | ?1 e (l_ ,E // eg: possível, manuel, etc... | ||||
| gu (Y g | gu (Y g | ||||
| ?1 guen (C gw'eIN // aguenta, etc. | ?1 guen (C gw'eIN // aguenta, etc. | ||||
| ?1 n) gu (A gw // eg: língua, etc. | ?1 n) gu (A gw // eg: língua, etc. | ||||
| ?1 gu (ém_ g // eg: alguém, ninguém, etc... | |||||
| .group h | .group h | ||||
| ?1 _) h (_ &g'a | |||||
| ?2 _) h (_ ag'a | |||||
| _) h (_ ag'a | |||||
| h // silent | h // silent | ||||
| n n | n n | ||||
| n (n | n (n | ||||
| nh n^ | nh n^ | ||||
| ?1 A) nn n //drop “n” in European Portuguese (eg: connosco). | |||||
| ?1 A) nn n //drop “n” (eg: connosco). | |||||
| .group o | .group o | ||||
| ?2 ol (K Ow | ?2 ol (K Ow | ||||
| ?2 olh olj | ?2 olh olj | ||||
| ?1 om (_ 'om | |||||
| ?2 om (_ oN | |||||
| om (_ oN | |||||
| o (ma_ o | o (ma_ o | ||||
| ?1 om (C 'om | |||||
| ?2 om (C om | |||||
| om (C om | |||||
| on (K oN | on (K oN | ||||
| o (na_ o | o (na_ o | ||||
| onh on^ | onh on^ | ||||
| ?1 A) que (nA_ ke // pequeno, etc. | ?1 A) que (nA_ ke // pequeno, etc. | ||||
| ?1 C) quê (_ ke // porquê, etc. | ?1 C) quê (_ ke // porquê, etc. | ||||
| ?1 que (l ke // aquele, etc. | ?1 que (l ke // aquele, etc. | ||||
| ?1 que (r_ ke // qualquer, etc. | |||||
| ?1 que (r_ kE // qualquer, etc. | |||||
| ?1 qui ki // quinta, esquilo, etc. | ?1 qui ki // quinta, esquilo, etc. | ||||
| ?1 _) quind kuind // quindecágono, etc. | ?1 _) quind kuind // quindecágono, etc. | ||||
| ?1 tran) qui kui // tranquilo, etc. | ?1 tran) qui kui // tranquilo, etc. | ||||
| .group л | .group л | ||||
| _) л (_ El^ | _) л (_ El^ | ||||
| л (_ l^ | |||||
| // л (_ l^ // rule removed | |||||
| л (Y l^ | л (Y l^ | ||||
| л l | л l | ||||
| a (vb A: | a (vb A: | ||||
| a (vd A: | a (vd A: | ||||
| a (va a | a (va a | ||||
| a (rt_ A: | |||||
| a (rt_ A: | |||||
| a (vg A: | |||||
| a (r_ a | a (r_ a | ||||
| a (r_ a | |||||
| b) a (r_ A: | |||||
| bb) a (r_ a | |||||
| p)a (d_ a | |||||
| b) a (r_ A: | |||||
| bb) a (r_ a | |||||
| a (CC a | a (CC a | ||||
| a (_ a | a (_ a | ||||
| &) a (_ a2 | &) a (_ a2 | ||||
| a (re_ a | |||||
| a (rn A: | |||||
| a (rna a | |||||
| l) a (rs A: | |||||
| a (re_ a | |||||
| a (rn A: | |||||
| a (rna a | |||||
| l) a (rs A: | |||||
| k) a (ta ,a | k) a (ta ,a | ||||
| m) a (j a | |||||
| om) a (t A: | |||||
| st) a (rt A: | |||||
| gr) a (m a | |||||
| a (x a | |||||
| p) a (nel a | |||||
| k) a (n a | |||||
| j) a (n a | |||||
| r) a (de a | |||||
| eg) a (n a | |||||
| er) a (d a | |||||
| er) a (t a | |||||
| d) a (n_ a | |||||
| m) a (j a | |||||
| om) a (t A: | |||||
| _m) a (ter a | |||||
| st) a (rt A: | |||||
| gr) a (m a | |||||
| a (x a | |||||
| p) a (nel a | |||||
| a (uto a | |||||
| k) a (n a | |||||
| n) a (d a | |||||
| j) a (n a | |||||
| r) a (de a | |||||
| eg) a (n a | |||||
| er) a (d a | |||||
| er) a (t a | |||||
| d) a (n_ a | |||||
| st) a (t_ a | |||||
| tot) a (l 'A: | tot) a (l 'A: | ||||
| v) a (ld A: | |||||
| v) a (rd A: | |||||
| sm) a (rt A: | |||||
| r) a (t A: | |||||
| s) a (maC a | |||||
| ng) a (d a | |||||
| m) a (n a | |||||
| t) a (t A: | |||||
| ent) a (r A: | |||||
| a (t_ a | |||||
| a (st a | |||||
| s) a (s_ a | |||||
| s) a (d_ a | |||||
| er) a (t_ a | |||||
| åg) a (n a | |||||
| t) a (n_ a | |||||
| el) a (d a | |||||
| nn) a (n a | |||||
| mell) a (n a | |||||
| arbet arbe:t | |||||
| v) a (ld A: | |||||
| v) a (rd A: | |||||
| sm) a (rt A: | |||||
| r) a (t A: | |||||
| s) a (maC a | |||||
| ng) a (d a | |||||
| m) a (n a | |||||
| t) a (t A: | |||||
| ent) a (r A: | |||||
| a (t_ a | |||||
| ast ast | |||||
| s) a (s_ a | |||||
| s) a (d_ a | |||||
| er) a (t_ a | |||||
| åg) a (n a | |||||
| t) a (n_ a | |||||
| el) a (d a | |||||
| nn) a (n a | |||||
| mell) a (n a | |||||
| _sk) a (d A: | |||||
| ansv) a (r A: | |||||
| ll) a (de a | |||||
| _v) a (nl A: | |||||
| d) a (d_ a | |||||
| tt) a (C_ a | |||||
| dd) a (C_ a | |||||
| arbet arbe:t | |||||
| .group b | .group b | ||||
| b b | b b | ||||
| .group d | .group d | ||||
| d d | d d | ||||
| d (d | d (d | ||||
| dagen dA:gEn | |||||
| dagen dA:gEn | |||||
| disken dIskEn | |||||
| djup j'u-p | |||||
| djur j'u-r | |||||
| dum d8m | |||||
| .group e | .group e | ||||
| e e: | e e: | ||||
| d) e (lv e: | d) e (lv e: | ||||
| d) e (ln e: | d) e (ln e: | ||||
| d) e (lt e: | d) e (lt e: | ||||
| d) e (bat E | |||||
| s) e (kund E | |||||
| ch) e (f E: | |||||
| e (ta E | e (ta E | ||||
| e (x E | e (x E | ||||
| &) e (_ E | &) e (_ E | ||||
| nyh) e (t e: | nyh) e (t e: | ||||
| r) e (sul E | r) e (sul E | ||||
| r) e (sur E | r) e (sur E | ||||
| r) e (dak E | |||||
| v) e (ta e: | |||||
| r) e (ta e: | |||||
| pr) e (n E | pr) e (n E | ||||
| _) e (tik E | _) e (tik E | ||||
| r) e (ce E | r) e (ce E | ||||
| h h | h h | ||||
| h (h | h (h | ||||
| hj j | hj j | ||||
| hög hY:g | |||||
| heading _^_EN | heading _^_EN | ||||
| .group i | .group i | ||||
| _) k (ö S; | _) k (ö S; | ||||
| k (öp S; | k (öp S; | ||||
| karta kA:rta | karta kA:rta | ||||
| kategori katEg,u:ri: | |||||
| kalend kal'End | |||||
| känsl SEnsl | |||||
| kategori katEg,u:ri: | |||||
| kalend kal'End | |||||
| känsl S;Ensl | |||||
| .group l | .group l | ||||
| l l | l l | ||||
| .group m | .group m | ||||
| m m | m m | ||||
| m (m | m (m | ||||
| menu _^_EN | |||||
| människ m'EnIsx, | |||||
| medlem m'e:dlEm | |||||
| maga maga | |||||
| menu _^_EN | |||||
| människ m'EnIsx, | |||||
| medlem m'e:dlEm | |||||
| maga maga | |||||
| meny mEn'y: | |||||
| minimera mIni:m'e:ra2 | |||||
| maximera maksi:m'e:ra2 | |||||
| motor m'u:tOr | motor m'u:tOr | ||||
| motorer m'Otu:rEr | motorer m'Otu:rEr | ||||
| model mOd'El | |||||
| musik mu-s'i:k | |||||
| .group n | .group n | ||||
| n n | n n | ||||
| ng N | ng N | ||||
| n (k N | n (k N | ||||
| network _^_EN | network _^_EN | ||||
| normal nOrmA:l | |||||
| normal nOrmA:l | |||||
| natur n'at'u-r | |||||
| .group o | .group o | ||||
| o u: | o u: | ||||
| och 'Ok | och 'Ok | ||||
| k) o (ns O | k) o (ns O | ||||
| pr) o (cent O | pr) o (cent O | ||||
| p) o (lis O | |||||
| p) o (pu O | |||||
| .group p | .group p | ||||
| p p | p p | ||||
| p (p | p (p | ||||
| paket pak'e:t | paket pak'e:t | ||||
| parentes par@nt,e:s | |||||
| .group q | .group q | ||||
| q k | q k | ||||
| u (n 8 | u (n 8 | ||||
| u (tl u- | u (tl u- | ||||
| r) u (m_ 8: | r) u (m_ 8: | ||||
| utmärk 'u-tm@rk | |||||
| .group v | .group v | ||||
| v v | v v | ||||
| å o: | å o: | ||||
| å (CC O | å (CC O | ||||
| tr) å (d 'o: | tr) å (d 'o: | ||||
| v) å (rt 'o: | |||||
| v) å (r 'o: | |||||
| h) å (r 'o: | |||||
| .group ä | .group ä | ||||
| ä E: | ä E: |
| pl 17 102 | pl 17 102 | ||||
| sk 22 117 | sk 22 117 | ||||
| cs 6 118 | cs 6 118 | ||||
| hr 15 121 | |||||
| hr 16 121 | |||||
| ru 36 119 | ru 36 119 | ||||
| it 28 111 | it 28 111 | ||||
| es 7 111 | es 7 111 | ||||
| 1 vowel/oe_4 sv | 1 vowel/oe_4 sv | ||||
| 2 vowel/o_mid hu ro | 2 vowel/o_mid hu ro | ||||
| 8 vowel/oo en_sc de eo es el sv no zh_yue | 8 vowel/oo en_sc de eo es el sv no zh_yue | ||||
| 10 vowel/oo_1 en_n en_rp en_wm af fi sk vi | |||||
| 11 vowel/oo_1 en_n en_rp en_wm af fi sk hr vi | |||||
| 3 vowel/oo_2 en_sc cy cs | 3 vowel/oo_2 en_sc cy cs | ||||
| 1 vowel/oo_3 af | 1 vowel/oo_3 af | ||||
| 2 vowel/oo_4 hi pl | 2 vowel/oo_4 hi pl |
| 0 n^ NULL 0 N | 0 n^ NULL 0 N | ||||
| 0 j NULL 0 y | 0 j NULL 0 y | ||||
| 0 S NULL 0 sh | 0 S NULL 0 sh | ||||
| 0 s. NULL 0 sh | |||||
| 0 S; NULL 0 C | 0 S; NULL 0 C | ||||
| 0 sx NULL 0 S | 0 sx NULL 0 S | ||||
| 0 S NULL 0 rs | 0 S NULL 0 rs | ||||
| 0 s. NULL 0 rs | |||||
| 0 u- NULL 0 }: | 0 u- NULL 0 }: | ||||
| 0 Y: NULL 0 2: | 0 Y: NULL 0 2: | ||||
| 0 y NULL 0 Y | 0 y NULL 0 Y |
| phoneme a | phoneme a | ||||
| vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
| length 140 | |||||
| length 150 | |||||
| formants vowel/a | formants vowel/a | ||||
| reduceto & 4 | reduceto & 4 | ||||
| endphoneme | endphoneme | ||||
| phoneme E | phoneme E | ||||
| vowel starttype (e) endtype (e) | vowel starttype (e) endtype (e) | ||||
| length 130 | |||||
| length 140 | |||||
| formants vowel/e_mid | formants vowel/e_mid | ||||
| endphoneme | endphoneme | ||||
| phoneme e | phoneme e | ||||
| vowel starttype (e) endtype (e) | vowel starttype (e) endtype (e) | ||||
| length 130 | |||||
| length 140 | |||||
| formants vowel/e | formants vowel/e | ||||
| endphoneme | endphoneme | ||||
| endphoneme | endphoneme | ||||
| phoneme o | |||||
| vowel starttype (o) endtype (o) | |||||
| length 140 | |||||
| formants vowel/oo_1 | |||||
| endphoneme | |||||
| phoneme u | phoneme u | ||||
| vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
| length 130 | length 130 |
| phoneme e | phoneme e | ||||
| vowel starttype (e) endtype (e) | vowel starttype (e) endtype (e) | ||||
| length 130 | |||||
| length 120 | |||||
| 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 130 | |||||
| length 120 | |||||
| formants vowel/oo_2 | formants vowel/oo_2 | ||||
| endphoneme | endphoneme | ||||
| phoneme i | phoneme i | ||||
| vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
| length 120 | |||||
| length 110 | |||||
| formants vowel/ii_3 | formants vowel/ii_3 | ||||
| linkout ; | linkout ; | ||||
| endphoneme | endphoneme | ||||
| phoneme i: | phoneme i: | ||||
| vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
| length 230 | |||||
| length 260 | |||||
| formants vowel/i_3 | formants vowel/i_3 | ||||
| linkout ; | linkout ; | ||||
| endphoneme | endphoneme | ||||
| phoneme & | phoneme & | ||||
| vowel starttype (e) endtype (e) | vowel starttype (e) endtype (e) | ||||
| length 130 | |||||
| length 120 | |||||
| formants vowel/ee_6 | formants vowel/ee_6 | ||||
| endphoneme | endphoneme | ||||
| phoneme e | phoneme e | ||||
| vowel starttype (e) endtype (e) | vowel starttype (e) endtype (e) | ||||
| length 130 | |||||
| length 120 | |||||
| formants vowel/e_mid2 | formants vowel/e_mid2 | ||||
| endphoneme | endphoneme | ||||
| phoneme e: | phoneme e: | ||||
| vowel starttype (e) endtype (e) | vowel starttype (e) endtype (e) | ||||
| length 280 | |||||
| length 290 | |||||
| formants vowel/e_mid | formants vowel/e_mid | ||||
| endphoneme | endphoneme | ||||
| phoneme a | phoneme a | ||||
| vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
| length 140 | |||||
| length 120 | |||||
| formants vowel/a | formants vowel/a | ||||
| endphoneme | endphoneme | ||||
| phoneme o | phoneme o | ||||
| vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
| length 130 | |||||
| length 120 | |||||
| formants vowel/oo_1 | formants vowel/oo_1 | ||||
| endphoneme | endphoneme | ||||
| phoneme o: | phoneme o: | ||||
| vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
| length 280 | |||||
| length 290 | |||||
| formants vowel/oo_1 | formants vowel/oo_1 | ||||
| endphoneme | endphoneme | ||||
| phoneme u | phoneme u | ||||
| vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
| length 130 | |||||
| length 110 | |||||
| formants vowel/u_2 | formants vowel/u_2 | ||||
| endphoneme | endphoneme | ||||
| phonemetable no base | phonemetable no base | ||||
| include ph_norwegian | include ph_norwegian | ||||
| phonemetable vi base | phonemetable vi base | ||||
| include ph_vi | include ph_vi | ||||
| VR 648 1180 2595 640 1140 2460 | VR 648 1180 2595 640 1140 2460 | ||||
| A~ 640 1120 2640 640 1120 2640 | A~ 640 1120 2640 640 1120 2640 | ||||
| E~ 672 1660 2624 672 1660 2624 | E~ 672 1660 2624 672 1660 2624 | ||||
| O~ 512 880 2624 512 880 2620 | |||||
| O~ 480 839 2760 480 839 2780 | |||||
| W~ 694 1360 2624 694 1360 2624 | W~ 694 1360 2624 694 1360 2624 | ||||
| y: 280 1720 2340 280 1720 2340 | y: 280 1720 2340 280 1720 2340 | ||||
| Y: 448 1520 2420 463 1520 2400 | Y: 448 1520 2420 463 1520 2400 |
| VR 648 1180 2595 640 1140 2460 | VR 648 1180 2595 640 1140 2460 | ||||
| A~ 640 1120 2640 640 1120 2640 | A~ 640 1120 2640 640 1120 2640 | ||||
| E~ 672 1660 2624 672 1660 2624 | E~ 672 1660 2624 672 1660 2624 | ||||
| O~ 512 880 2624 512 880 2620 | |||||
| O~ 480 839 2760 480 839 2780 | |||||
| W~ 694 1360 2624 694 1360 2624 | W~ 694 1360 2624 694 1360 2624 | ||||
| y: 280 1720 2340 280 1720 2340 | y: 280 1720 2340 280 1720 2340 | ||||
| Y: 448 1520 2420 463 1520 2400 | Y: 448 1520 2420 463 1520 2400 |
| VR 648 1180 2595 640 1140 2460 | VR 648 1180 2595 640 1140 2460 | ||||
| A~ 640 1120 2640 640 1120 2640 | A~ 640 1120 2640 640 1120 2640 | ||||
| E~ 672 1660 2624 672 1660 2624 | E~ 672 1660 2624 672 1660 2624 | ||||
| O~ 512 880 2624 512 880 2620 | |||||
| O~ 480 839 2760 480 839 2780 | |||||
| W~ 694 1360 2624 694 1360 2624 | W~ 694 1360 2624 694 1360 2624 | ||||
| y: 280 1720 2340 280 1720 2340 | y: 280 1720 2340 280 1720 2340 | ||||
| Y: 448 1520 2420 463 1520 2400 | Y: 448 1520 2420 463 1520 2400 |
| a 784 1180 2680 768 1220 2680 | a 784 1180 2680 768 1220 2680 | ||||
| a2 760 1420 2600 736 1380 2540 | a2 760 1420 2600 736 1380 2540 | ||||
| aa 784 1180 2680 768 1220 2680 | aa 784 1180 2680 768 1220 2680 | ||||
| E 518 1882 2540 581 1810 2540 | |||||
| E 518 1920 2540 581 1810 2540 | |||||
| I 504 1700 2560 504 1700 2560 | I 504 1700 2560 504 1700 2560 | ||||
| i 520 2000 2540 520 2000 2540 | i 520 2000 2540 520 2000 2540 | ||||
| 0 566 890 2641 566 890 2641 | 0 566 890 2641 566 890 2641 | ||||
| VR 648 1180 2595 640 1140 2460 | VR 648 1180 2595 640 1140 2460 | ||||
| A~ 640 1120 2640 640 1120 2640 | A~ 640 1120 2640 640 1120 2640 | ||||
| E~ 672 1660 2624 672 1660 2624 | E~ 672 1660 2624 672 1660 2624 | ||||
| O~ 512 880 2624 512 880 2620 | |||||
| O~ 480 839 2760 480 839 2780 | |||||
| W~ 694 1360 2624 694 1360 2624 | W~ 694 1360 2624 694 1360 2624 | ||||
| y: 280 1720 2340 280 1720 2340 | y: 280 1720 2340 280 1720 2340 | ||||
| Y: 448 1520 2420 463 1520 2400 | Y: 448 1520 2420 463 1520 2400 |
| VR 648 1180 2595 640 1140 2460 | VR 648 1180 2595 640 1140 2460 | ||||
| A~ 640 1120 2640 640 1120 2640 | A~ 640 1120 2640 640 1120 2640 | ||||
| E~ 672 1660 2624 672 1660 2624 | E~ 672 1660 2624 672 1660 2624 | ||||
| O~ 512 880 2624 512 880 2620 | |||||
| O~ 480 839 2760 480 839 2780 | |||||
| W~ 694 1360 2624 694 1360 2624 | W~ 694 1360 2624 694 1360 2624 | ||||
| y: 280 1720 2340 280 1720 2340 | y: 280 1720 2340 280 1720 2340 | ||||
| Y: 448 1520 2420 463 1520 2400 | Y: 448 1520 2420 463 1520 2400 |
| VR 648 1180 2595 640 1140 2460 | VR 648 1180 2595 640 1140 2460 | ||||
| A~ 640 1120 2640 640 1120 2640 | A~ 640 1120 2640 640 1120 2640 | ||||
| E~ 672 1660 2624 672 1660 2624 | E~ 672 1660 2624 672 1660 2624 | ||||
| O~ 512 880 2624 512 880 2620 | |||||
| O~ 480 839 2760 480 839 2780 | |||||
| W~ 694 1360 2624 694 1360 2624 | W~ 694 1360 2624 694 1360 2624 | ||||
| y: 280 1720 2340 280 1720 2340 | y: 280 1720 2340 280 1720 2340 | ||||
| Y: 448 1520 2420 463 1520 2400 | Y: 448 1520 2420 463 1520 2400 |
| u1 344 800 2360 344 800 2360 | u1 344 800 2360 344 800 2360 | ||||
| U 368 800 2660 368 800 2660 | U 368 800 2660 368 800 2660 | ||||
| y 280 1720 2340 280 1720 2340 | y 280 1720 2340 280 1720 2340 | ||||
| ai 664 1040 2800 312 2240 2940 | |||||
| &i 744 1540 2500 355 2222 2720 | |||||
| ai 688 1064 2806 312 2300 2820 | |||||
| &i 744 1540 2500 328 2280 2720 | |||||
| oi 545 780 2780 310 2002 2300 | oi 545 780 2780 310 2002 2300 | ||||
| ei 547 1855 2536 320 2300 2740 | ei 547 1855 2536 320 2300 2740 | ||||
| Yi 448 1520 2420 355 2222 2720 | Yi 448 1520 2420 355 2222 2720 |
| e 464 1980 2520 464 1980 2520 | e 464 1980 2520 464 1980 2520 | ||||
| E 647 1778 2530 647 1778 2530 | E 647 1778 2530 647 1778 2530 | ||||
| i 280 2280 2820 200 2398 2820 | i 280 2280 2820 200 2398 2820 | ||||
| o 454 812 2559 432 824 2520 | |||||
| O 670 946 2620 630 902 2700 | |||||
| o 464 820 2559 440 820 2600 | |||||
| O 480 800 2700 480 800 2700 | |||||
| u 320 860 2360 320 860 2360 | u 320 860 2360 320 860 2360 | ||||
| y 272 1820 2280 272 1800 2260 | y 272 1820 2280 272 1800 2260 | ||||
| Y 448 1520 2420 463 1520 2400 | Y 448 1520 2420 463 1520 2400 | ||||
| W 525 1320 2200 525 1320 2200 | W 525 1320 2200 525 1320 2200 | ||||
| w^i 280 1832 2436 200 2398 2820 | w^i 280 1832 2436 200 2398 2820 | ||||
| A~ 640 1120 2640 640 1120 2640 | |||||
| A~ 600 1060 2640 600 1060 2640 | |||||
| E~ 694 1360 2624 694 1360 2624 | E~ 694 1360 2624 694 1360 2624 | ||||
| O~ 512 880 2624 512 880 2620 | |||||
| O~ 381 700 2960 381 700 2960 | |||||
| W~ 694 1360 2624 694 1360 2624 | W~ 694 1360 2624 694 1360 2624 | ||||
| I 280 2280 2820 200 2398 2820 | I 280 2280 2820 200 2398 2820 | ||||
| U 320 860 2360 320 860 2360 | U 320 860 2360 320 860 2360 |
| e 464 1980 2520 464 1980 2520 | e 464 1980 2520 464 1980 2520 | ||||
| E 584 1820 2560 584 1820 2560 | E 584 1820 2560 584 1820 2560 | ||||
| i 280 2280 2820 200 2398 2820 | i 280 2280 2820 200 2398 2820 | ||||
| o 454 812 2559 432 824 2520 | |||||
| O 670 946 2620 630 902 2700 | |||||
| o 464 820 2559 440 820 2600 | |||||
| O 480 800 2700 480 800 2700 | |||||
| u 320 740 2400 320 740 2400 | u 320 740 2400 320 740 2400 | ||||
| y 272 1820 2280 272 1800 2260 | y 272 1820 2280 272 1800 2260 | ||||
| Y 448 1520 2420 463 1520 2400 | Y 448 1520 2420 463 1520 2400 | ||||
| W 525 1320 2200 525 1320 2200 | W 525 1320 2200 525 1320 2200 | ||||
| w^i 280 1832 2436 200 2398 2820 | w^i 280 1832 2436 200 2398 2820 | ||||
| A~ 640 1120 2640 640 1120 2640 | |||||
| A~ 600 1060 2640 600 1060 2640 | |||||
| E~ 672 1660 2624 672 1660 2624 | E~ 672 1660 2624 672 1660 2624 | ||||
| O~ 512 880 2624 512 880 2620 | |||||
| O~ 381 700 2960 381 700 2960 | |||||
| W~ 694 1360 2624 694 1360 2624 | W~ 694 1360 2624 694 1360 2624 | ||||
| I 384 2030 2610 384 2030 2610 | I 384 2030 2610 384 2030 2610 | ||||
| U 368 880 2440 368 900 2440 | U 368 880 2440 368 900 2440 |
| u: 320 740 2400 320 740 2400 | u: 320 740 2400 320 740 2400 | ||||
| u2: 320 860 2360 320 860 2360 | u2: 320 860 2360 320 860 2360 | ||||
| l- 352 1240 3020 352 1200 3020 | l- 352 1240 3020 352 1200 3020 | ||||
| aI 744 1540 2500 355 2222 2720 | |||||
| aI 744 1540 2500 328 2280 2720 | |||||
| aU 724 1130 2760 472 780 2500 | aU 724 1130 2760 472 780 2500 |
| V# 659 1278 2583 659 1278 2583 | V# 659 1278 2583 659 1278 2583 | ||||
| Y 452 1709 2460 452 1709 2460 | Y 452 1709 2460 452 1709 2460 | ||||
| a 925 1320 2700 896 1340 2660 | a 925 1320 2700 896 1340 2660 | ||||
| a# 658 1408 2460 658 1408 2460 |
| i 296 2220 2820 200 2398 2820 | i 296 2220 2820 200 2398 2820 | ||||
| O 664 1000 2731 664 1020 2731 | O 664 1000 2731 664 1020 2731 | ||||
| o 512 860 2648 512 860 2648 | o 512 860 2648 512 860 2648 | ||||
| u 392 740 2760 392 720 2760 | |||||
| u 392 736 2760 392 736 2760 | |||||
| y 448 1520 2420 463 1520 2400 | y 448 1520 2420 463 1520 2400 | ||||
| @: 686 1280 2595 686 1280 2595 | @: 686 1280 2595 686 1280 2595 | ||||
| aI 672 1460 2430 400 2000 2700 | aI 672 1460 2430 400 2000 2700 |
| int final_ph; | int final_ph; | ||||
| int mnem; | int mnem; | ||||
| int post_tonic; | int post_tonic; | ||||
| int opt_length; | |||||
| unsigned char vowel_stress[N_WORD_PHONEMES/2]; | unsigned char vowel_stress[N_WORD_PHONEMES/2]; | ||||
| char syllable_type[N_WORD_PHONEMES/2]; | char syllable_type[N_WORD_PHONEMES/2]; | ||||
| tonic = langopts.unstressed_wd2; /* more than one syllable, used secondary stress as the main stress */ | tonic = langopts.unstressed_wd2; /* more than one syllable, used secondary stress as the main stress */ | ||||
| } | } | ||||
| if(tonic >= 0) | |||||
| max_stress = 0; | |||||
| max_stress_posn = 0; | |||||
| for(v=1; v<vowel_count; v++) | |||||
| { | { | ||||
| /* find position of highest stress, and replace it by 'tonic' */ | |||||
| max_stress = 0; | |||||
| max_stress_posn = 0; | |||||
| for(v=1; v<vowel_count; v++) | |||||
| if(vowel_stress[v] >= max_stress) | |||||
| { | { | ||||
| if(vowel_stress[v] >= max_stress) | |||||
| { | |||||
| max_stress = vowel_stress[v]; | |||||
| max_stress_posn = v; | |||||
| } | |||||
| max_stress = vowel_stress[v]; | |||||
| max_stress_posn = v; | |||||
| } | } | ||||
| } | |||||
| if(tonic >= 0) | |||||
| { | |||||
| /* find position of highest stress, and replace it by 'tonic' */ | |||||
| /* don't disturb an explicitly set stress by 'unstress-at-end' flag */ | /* don't disturb an explicitly set stress by 'unstress-at-end' flag */ | ||||
| if((tonic > max_stress) || (max_stress <= 4)) | if((tonic > max_stress) || (max_stress <= 4)) | ||||
| break; | break; | ||||
| } | } | ||||
| if(langopts.param[LOPT_IT_LENGTHEN] && (*p == phonLENGTHEN)) | |||||
| if(vowel_stress[v] > max_stress) | |||||
| { | |||||
| max_stress = vowel_stress[v]; | |||||
| } | |||||
| if((*p == phonLENGTHEN) && ((opt_length = langopts.param[LOPT_IT_LENGTHEN]) != 0)) | |||||
| { | { | ||||
| // remove lengthen indicator from non-stressed syllables | // remove lengthen indicator from non-stressed syllables | ||||
| int shorten=0; | |||||
| if(opt_length & 0x10) | |||||
| { | |||||
| // only allow lengthen indicator on the highest stress syllable in the word | |||||
| if(v != max_stress_posn) | |||||
| shorten = 1; | |||||
| } | |||||
| else | |||||
| if(v_stress < 4) | if(v_stress < 4) | ||||
| { | |||||
| // only allow lengthen indicator if stress >= 4. | |||||
| shorten = 1; | |||||
| } | |||||
| if(((opt_length & 0xf)==2) && (v != (vowel_count - 2))) | |||||
| shorten = 1; // LANG=Italian, remove lengthen indicator from non-penultimate syllables | |||||
| if(shorten) | |||||
| p++; | p++; | ||||
| else | |||||
| if((langopts.param[LOPT_IT_LENGTHEN]==2) && (v != (vowel_count - 2))) | |||||
| p++; // LANG=Italian, remove lengthen indicator from non-penultimate syllables | |||||
| } | } | ||||
| if(vowel_stress[v] > max_stress) | |||||
| { | |||||
| max_stress = vowel_stress[v]; | |||||
| } | |||||
| v++; | v++; | ||||
| } | } | ||||
| int letter_group; | int letter_group; | ||||
| int distance_right; | int distance_right; | ||||
| int distance_left; | int distance_left; | ||||
| int lg_pts; | |||||
| MatchRecord match; | MatchRecord match; | ||||
| static MatchRecord best; | static MatchRecord best; | ||||
| letter_group = *rule++ - 'A'; | letter_group = *rule++ - 'A'; | ||||
| if(IsLetter(letter_w,letter_group)) | if(IsLetter(letter_w,letter_group)) | ||||
| { | { | ||||
| match.points += (20-distance_right); | |||||
| lg_pts = 20; | |||||
| if(letter_group==2) | |||||
| lg_pts = 19; // fewer points for C, general consonant | |||||
| match.points += (lg_pts-distance_right); | |||||
| post_ptr += letter_xbytes; | post_ptr += letter_xbytes; | ||||
| } | } | ||||
| else | else | ||||
| letter_group = *rule++ - 'A'; | letter_group = *rule++ - 'A'; | ||||
| if(IsLetter(letter_w,letter_group)) | if(IsLetter(letter_w,letter_group)) | ||||
| { | { | ||||
| match.points += (20-distance_left); | |||||
| lg_pts = 20; | |||||
| if(letter_group==2) | |||||
| lg_pts = 19; // fewer points for C, general consonant | |||||
| match.points += (lg_pts-distance_left); | |||||
| pre_ptr -= letter_xbytes; | pre_ptr -= letter_xbytes; | ||||
| } | } | ||||
| else | else |
| {PITCHfrise, 38,10, PITCHfrise2, 36,10, // comma, or question | {PITCHfrise, 38,10, PITCHfrise2, 36,10, // comma, or question | ||||
| 20, 25, 34, 20, drops_0, 3, 3, 15, 25, 0}, | 20, 25, 34, 20, drops_0, 3, 3, 15, 25, 0}, | ||||
| {PITCHdrop, 38, 1, PITCHdrop, 42,25, // exclamation | |||||
| // {PITCHdrop, 38, 1, PITCHdrop, 42,25, // exclamation | |||||
| // 20, 25, 34, 22, drops_0, 3, 3, 12, 8, 0}, | |||||
| {PITCHfall, 30, 5, PITCHfall, 30, 7, // statement | |||||
| 20, 25, 34, 22, drops_0, 3, 3, 12, 8, 0}, | 20, 25, 34, 22, drops_0, 3, 3, 12, 8, 0}, | ||||
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.24.04 08.May.07"; | |||||
| const char *version_string = "1.24.06 10.May.07"; | |||||
| const int version_phdata = 0x012201; | const int version_phdata = 0x012201; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| case L('h','i'): | case L('h','i'): | ||||
| { | { | ||||
| static const char dev_consonants2[] = {0x02,0x03,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f}; | static const char dev_consonants2[] = {0x02,0x03,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f}; | ||||
| static wchar_t replace_chars_hi[11] = {0x966,0x967,0x968,0x969,0x96a,0x96b,0x96c,0x96d,0x96e,0x96f,0}; // digits 0-9 | |||||
| static wchar_t replacement_chars_hi[11] = {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0}; | |||||
| static const wchar_t replace_chars_hi[11] = {0x966,0x967,0x968,0x969,0x96a,0x96b,0x96c,0x96d,0x96e,0x96f,0}; // digits 0-9 | |||||
| static const unsigned int replacement_chars_hi[11] = {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0}; | |||||
| static int stress_lengths_hi[8] = {190, 190, 210, 210, 0, 0, 230, 250}; | static int stress_lengths_hi[8] = {190, 190, 210, 210, 0, 0, 230, 250}; | ||||
| static int stress_amps_hi[8] = {17,14, 20,20, 20,24, 24,22 }; | static int stress_amps_hi[8] = {17,14, 20,20, 20,24, 24,22 }; | ||||
| { | { | ||||
| 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 }; | ||||
| static int stress_lengths_hu[8] = {180,150, 200,180, 0,0, 230,270}; | static int stress_lengths_hu[8] = {180,150, 200,180, 0,0, 230,270}; | ||||
| static wchar_t replace_chars_hu[] = {0xd4,0xf4,0xdb,0xfb,0}; | |||||
| static wchar_t replacement_chars_hu[] = {0x150,0x151,0x170,0x171,0}; // allow o,u-circumflex for o,u-double-acute | |||||
| static const wchar_t replace_chars_hu[] = {0xd4,0xf4,0xdb,0xfb,0}; | |||||
| static const unsigned int replacement_chars_hu[] = {0x150,0x151,0x170,0x171,0}; // allow o,u-circumflex for o,u-double-acute | |||||
| tr = new Translator(); | tr = new Translator(); | ||||
| SetupTranslator(tr,stress_lengths_hu,stress_amps_hu); | SetupTranslator(tr,stress_lengths_hu,stress_amps_hu); | ||||
| } | } | ||||
| break; | break; | ||||
| case L('i','s'): // Icelandic | |||||
| { | |||||
| static int stress_amps_is[] = {16,16, 20,20, 20,24, 24,22 }; | |||||
| static int stress_lengths_is[8] = {180,140, 200,200, 0,0, 240,260}; | |||||
| static const wchar_t is_L08[] = {'c','f','h','k','p','s','t','x',0xfe,0}; // voiceless conants, including 'þ' | |||||
| tr = new Translator(); | |||||
| SetupTranslator(tr,stress_lengths_is,stress_amps_is); | |||||
| tr->langopts.stress_rule = 1; | |||||
| tr->langopts.param[LOPT_IT_LENGTHEN] = 0x11; // remove lengthen indicator from unstressed vowels | |||||
| SetLetterBits(tr,4,"kpst"); // Letter group F | |||||
| SetLetterBits(tr,3,"jvr"); // Letter group H | |||||
| tr->letter_groups[8] = is_L08; | |||||
| SetLetterVowel(tr,'y'); | |||||
| tr->langopts.numbers = 0xe9; | |||||
| tr->langopts.numbers2 = 0x2; | |||||
| } | |||||
| break; | |||||
| case L('i','t'): // Italian | case L('i','t'): // Italian | ||||
| { | { | ||||
| static int stress_lengths_it[8] = {150, 140, 180, 180, 0, 0, 270, 320}; | static int stress_lengths_it[8] = {150, 140, 180, 180, 0, 0, 270, 320}; | ||||
| { | { | ||||
| static int stress_lengths_ro[8] = {170, 170, 180, 180, 0, 0, 240, 260}; | static int stress_lengths_ro[8] = {170, 170, 180, 180, 0, 0, 240, 260}; | ||||
| static int stress_amps_ro[8] = {15,13, 18,18, 20,22, 22,22 }; | static int stress_amps_ro[8] = {15,13, 18,18, 20,22, 22,22 }; | ||||
| static wchar_t replace_chars_ro[5] = {0x218,0x219,0x21a,0x21b,0}; | |||||
| static wchar_t replacement_chars_ro[5] = {0x15e,0x15f,0x162,0x163,0}; // replace s-comma, t-comma by s-cedilla, t-cedilla | |||||
| static const wchar_t replace_chars_ro[5] = {0x218,0x219,0x21a,0x21b,0}; | |||||
| static const unsigned int replacement_chars_ro[5] = {0x15e,0x15f,0x162,0x163,0}; // replace s-comma, t-comma by s-cedilla, t-cedilla | |||||
| tr = new Translator(); | tr = new Translator(); | ||||
| SetupTranslator(tr,stress_lengths_ro,stress_amps_ro); | SetupTranslator(tr,stress_lengths_ro,stress_amps_ro); | ||||
| case L('c','s'): // Czech | case L('c','s'): // Czech | ||||
| case L('h','r'): // Croatian | 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,180, 0,0, 220,230}; | |||||
| static char *sk_voiced = "bdgjlmnrvwzaeiouy"; | |||||
| // 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 char *sk_voiced = "bdgjlmnrvwzaeiouy"; | |||||
| tr = new Translator(); | tr = new Translator(); | ||||
| SetupTranslator(tr,stress_lengths_sk,stress_amps_sk); | SetupTranslator(tr,stress_lengths_sk,stress_amps_sk); | ||||
| tr->langopts.numbers = 0x1c0d + 0x84000; | tr->langopts.numbers = 0x1c0d + 0x84000; | ||||
| if(name2 == L('h','r')) | if(name2 == L('h','r')) | ||||
| { | |||||
| tr->langopts.numbers2 = 0xa; // variant numbers before thousands,milliards | 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 | ||||
| } | } | ||||
| int Translator_Afrikaans::TranslateChar(char *ptr, int prev_in, int c, int next_in) | |||||
| {//=============================================================================== | |||||
| int Translator_Afrikaans::TranslateChar(char *ptr, int prev_in, int c, int next_in, int *insert) | |||||
| {//============================================================================================= | |||||
| // look for 'n and replace by a special character (unicode: schwa) | // look for 'n and replace by a special character (unicode: schwa) | ||||
| if(!iswalpha(prev_in)) | if(!iswalpha(prev_in)) |
| public: | public: | ||||
| Translator_Afrikaans(); | Translator_Afrikaans(); | ||||
| private: | private: | ||||
| int TranslateChar(char *ptr, int prev_in, int c, int next_in); | |||||
| int TranslateChar(char *ptr, int prev_in, int c, int next_in, int *insert); | |||||
| }; // end of class Translator_Afrikaans | }; // end of class Translator_Afrikaans | ||||
| SetLetterBits(this,1,"bcdfgjklmnpqstvxz"); // B hard consonants, excluding h,r,w | SetLetterBits(this,1,"bcdfgjklmnpqstvxz"); // B hard consonants, excluding h,r,w | ||||
| SetLetterBits(this,2,"bcdfghjklmnpqrstvwxz"); // C all consonants | SetLetterBits(this,2,"bcdfghjklmnpqrstvwxz"); // C all consonants | ||||
| SetLetterBits(this,3,"hlmnr"); // H 'soft' consonants | SetLetterBits(this,3,"hlmnr"); // H 'soft' consonants | ||||
| SetLetterBits(this,4,"cfhkpqstx"); // F voiceless consonants | |||||
| SetLetterBits(this,5,"bdgjlmnrvwyz"); // G voiced | SetLetterBits(this,5,"bdgjlmnrvwyz"); // G voiced | ||||
| SetLetterBits(this,6,"eiy"); // Letter group Y, front vowels | SetLetterBits(this,6,"eiy"); // Letter group Y, front vowels | ||||
| SetLetterBits(this,7,"aeiouy"); // vowels, including y | SetLetterBits(this,7,"aeiouy"); // vowels, including y | ||||
| int Translator::TranslateChar(char *ptr, int prev_in, int c, int next_in) | |||||
| {//====================================================================== | |||||
| int Translator::TranslateChar(char *ptr, int prev_in, int c, int next_in, int *insert) | |||||
| {//=================================================================================== | |||||
| // To allow language specific examination and replacement of characters | // To allow language specific examination and replacement of characters | ||||
| const wchar_t *p; | const wchar_t *p; | ||||
| unsigned int new_c; | |||||
| if(c == 0) return(0); | |||||
| if(langopts.replace_chars != NULL) | if(langopts.replace_chars != NULL) | ||||
| { | { | ||||
| // there is a list of character codes to be substituted with alternative codes | // there is a list of character codes to be substituted with alternative codes | ||||
| if((p = wcschr(langopts.replace_chars,c)) != NULL) | if((p = wcschr(langopts.replace_chars,c)) != NULL) | ||||
| { | { | ||||
| return(langopts.replacement_chars[p - langopts.replace_chars]); | |||||
| new_c = langopts.replacement_chars[p - langopts.replace_chars]; | |||||
| if(new_c & 0xffe00000) | |||||
| { | |||||
| // there is a second character to be inserted | |||||
| *insert = (new_c >> 16); | |||||
| new_c &= 0xffff; | |||||
| } | |||||
| return(new_c); | |||||
| } | } | ||||
| } | } | ||||
| return(c); | return(c); | ||||
| int prev_out2; | int prev_out2; | ||||
| int prev_in2=0; | int prev_in2=0; | ||||
| int next_in; | int next_in; | ||||
| int char_inserted=0; | |||||
| int clause_pause; | int clause_pause; | ||||
| int pre_pause=0; | int pre_pause=0; | ||||
| int pre_pause_add=0; | int pre_pause_add=0; | ||||
| utf8_in(&prev_in,&source[source_index-1],1); // prev_in = source[source_index-1]; | utf8_in(&prev_in,&source[source_index-1],1); // prev_in = source[source_index-1]; | ||||
| } | } | ||||
| prev_source_index = source_index; | prev_source_index = source_index; | ||||
| source_index += utf8_in(&cc,&source[source_index],0); // cc = source[source_index++]; | |||||
| c = cc; | |||||
| if(char_inserted) | |||||
| { | |||||
| c = char_inserted; | |||||
| char_inserted = 0; | |||||
| } | |||||
| else | |||||
| { | |||||
| source_index += utf8_in(&cc,&source[source_index],0); // cc = source[source_index++]; | |||||
| c = cc; | |||||
| } | |||||
| utf8_in(&next_in,&source[source_index],0); | utf8_in(&next_in,&source[source_index],0); | ||||
| if((c == CTRL_EMBEDDED) || (c == ctrl_embedded)) | if((c == CTRL_EMBEDDED) || (c == ctrl_embedded)) | ||||
| { | { | ||||
| // start of embedded command in the text | // start of embedded command in the text | ||||
| c = '\''; | c = '\''; | ||||
| } | } | ||||
| c = TranslateChar(&source[source_index],prev_in,c,next_in); // optional language specific function | |||||
| c = TranslateChar(&source[source_index], prev_in,c, next_in, &char_inserted); // optional language specific function | |||||
| if(char_inserted) | |||||
| next_in = char_inserted; | |||||
| if(!IsAlpha(c) && !iswspace(c) && (c != '\'')) | if(!IsAlpha(c) && !iswspace(c) && (c != '\'')) | ||||
| { | { |
| #define N_LOPTS 12 | #define N_LOPTS 12 | ||||
| #define LOPT_DIERESES 1 | #define LOPT_DIERESES 1 | ||||
| // 1=remove [:] from unstressed syllables, 2= remove from unstressed or non-penultimate syllables | // 1=remove [:] from unstressed syllables, 2= remove from unstressed or non-penultimate syllables | ||||
| // bit 4=0, if stress < 4, bit 4=1, if not the highest stress in the word | |||||
| #define LOPT_IT_LENGTHEN 2 | #define LOPT_IT_LENGTHEN 2 | ||||
| // 1=german | // 1=german | ||||
| #define LOPT_PREFIXES 3 | #define LOPT_PREFIXES 3 | ||||
| char tone_numbers; | char tone_numbers; | ||||
| char ideographs; // treat as separate words | char ideographs; // treat as separate words | ||||
| int testing; // testing options: bit 1= specify stressed syllable in the form: "outdoor/2" | int testing; // testing options: bit 1= specify stressed syllable in the form: "outdoor/2" | ||||
| const wchar_t *replace_chars; // characters to be substitutes | |||||
| const wchar_t *replacement_chars; // substitutes for replace_chars | |||||
| const wchar_t *replace_chars; // characters to be substitutes | |||||
| const unsigned int *replacement_chars; // substitutes for replace_chars | |||||
| } LANGUAGE_OPTIONS; | } LANGUAGE_OPTIONS; | ||||
| virtual int Unpronouncable(char *word); | virtual int Unpronouncable(char *word); | ||||
| virtual void SetWordStress(char *output, unsigned int dictionary_flags, int tonic, int prev_stress); | virtual void SetWordStress(char *output, unsigned int dictionary_flags, int tonic, int prev_stress); | ||||
| virtual int RemoveEnding(char *word, int end_type, char *word_copy); | virtual int RemoveEnding(char *word, int end_type, char *word_copy); | ||||
| virtual int TranslateChar(char *ptr, int prev_in, int c, int next_in); | |||||
| virtual int TranslateChar(char *ptr, int prev_in, int c, int next_in, int *insert); | |||||
| virtual int TranslateNumber(char *word1, char *ph_out, unsigned int *flags, int wflags); | virtual int TranslateNumber(char *word1, char *ph_out, unsigned int *flags, int wflags); | ||||
| virtual int ChangePhonemes(PHONEME_LIST2 *phlist, int n_ph, int index, PHONEME_TAB *ph, CHANGEPH *ch); | virtual int ChangePhonemes(PHONEME_LIST2 *phlist, int n_ph, int index, PHONEME_TAB *ph, CHANGEPH *ch); | ||||
| {NULL, 0 }}; | {NULL, 0 }}; | ||||
| //int tone_points[10] = {250,140, 1200,110, -1,0, -1,0, -1,0}; | //int tone_points[10] = {250,140, 1200,110, -1,0, -1,0, -1,0}; | ||||
| int tone_points[10] = {600,180, 1200,140, 2000,110, 3000,110, -1,0}; | |||||
| int tone_points[10] = {600,170, 1200,135, 2000,110, 3000,110, -1,0}; | |||||
| // limit the rate of change for each formant number | // limit the rate of change for each formant number | ||||
| //static int formant_rate_22050[9] = {50, 104, 165, 230, 220, 220, 220, 220, 220}; // values for 22kHz sample rate | //static int formant_rate_22050[9] = {50, 104, 165, 230, 220, 220, 220, 220, 220}; // values for 22kHz sample rate |