Allow .txt release for *_rules and *_list files. Rules lookup, consider multi-byte characters when calculating matchign points. Fix bug in Roman Number translation. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@232 d46cf337-b52f-0410-862d-fd96e6ae7743master
| antwerpen antv&rp@n | antwerpen antv&rp@n | ||||
| babilon babilOn | babilon babilOn | ||||
| bangladesj baNglad'ES | bangladesj baNglad'ES | ||||
| barcelona bars@l'o@na | |||||
| barkly _^_EN | barkly _^_EN | ||||
| bellevue b&lvju: | bellevue b&lvju: | ||||
| bermuda $2 | bermuda $2 | ||||
| bethlehem bEt_liEm | bethlehem bEt_liEm | ||||
| boedapest budapEst | boedapest budapEst | ||||
| boekarest bukarEst | boekarest bukarEst | ||||
| bogotá bOgOt'A: | |||||
| bolivië bul'Ivi:@ | bolivië bul'Ivi:@ | ||||
| bonnievale _^_EN | bonnievale _^_EN | ||||
| bordeaux bOrd'@U | bordeaux bOrd'@U | ||||
| boston _^_EN | |||||
| brittanje $2 | brittanje $2 | ||||
| brooklyn _^_EN | brooklyn _^_EN | ||||
| (buenos aires) bwEnOs_'aIrEs | |||||
| burundi bur'undi | burundi bur'undi | ||||
| caledon kalidOn | caledon kalidOn | ||||
| carolina karul'ina | carolina karul'ina | ||||
| constantia $2 | constantia $2 | ||||
| christiana kr@stij'A:na | christiana kr@stij'A:na | ||||
| damaskus d@maskWs | damaskus d@maskWs | ||||
| denemarke de@n@mark@ | |||||
| djakarta dZak'arta | djakarta dZak'arta | ||||
| doebaai $2 | doebaai $2 | ||||
| duitswes dYytsv'Es | duitswes dYytsv'Es | ||||
| franschhoek frA~nsh'uk | franschhoek frA~nsh'uk | ||||
| gadara x2@dA:ra | gadara x2@dA:ra | ||||
| galilea x2al@l'i:a | galilea x2al@l'i:a | ||||
| genève Z@nE:v | |||||
| germiston _^_EN | germiston _^_EN | ||||
| getsémané x2Ets'e@mani | getsémané x2Ets'e@mani | ||||
| gonubie g@nu:bi | gonubie g@nu:bi | ||||
| israel IsraI:l | israel IsraI:l | ||||
| italië it'A:li;@ | italië it'A:li;@ | ||||
| jeffreysbaai dZEfrisb'AI | jeffreysbaai dZEfrisb'AI | ||||
| junín x2un'in | |||||
| kalafong kalaf'ON | kalafong kalaf'ON | ||||
| kanada kanad%a | kanada kanad%a | ||||
| kanaän kA:nA:an | kanaän kA:nA:an | ||||
| europa Y@r'o@pa | europa Y@r'o@pa | ||||
| nigel _^_EN | nigel _^_EN | ||||
| nineve nIn@fi | nineve nIn@fi | ||||
| oklahoma @Ukl@h'@Uma | |||||
| outeniekwa @Ut@n'ikwa | outeniekwa @Ut@n'ikwa | ||||
| oxford _^_EN | oxford _^_EN | ||||
| palermo pal'&rmu | |||||
| pelindaba p&l@nd'A:ba | pelindaba p&l@nd'A:ba | ||||
| perú p@ru | |||||
| piketberg p@kEtb&rx2 | |||||
| portugal pOrtyx2al | portugal pOrtyx2al | ||||
| potchefstroom pOtSIfstr'o@m | potchefstroom pOtSIfstr'o@m | ||||
| rhône _^_FR | |||||
| richardsbaai ritS@dsb'AI | richardsbaai ritS@dsb'AI | ||||
| robertson _^_EN | robertson _^_EN | ||||
| sahara sah'A:ra | sahara sah'A:ra | ||||
| salvador salvadO:r | |||||
| santiago santi;'A:gu | |||||
| secunda s@kunda | secunda s@kunda | ||||
| senekal se@n@kal | senekal se@n@kal | ||||
| seychelle seIS'&l@ | seychelle seIS'&l@ | ||||
| wellington wEliNt@n | wellington wEliNt@n | ||||
| wolseley wulsli | wolseley wulsli | ||||
| uganda ug'anda | uganda ug'anda | ||||
| uruguay urugwaI | |||||
| zimbabwe zI:mb'ab_wE | zimbabwe zI:mb'ab_wE | ||||
| zulu zulu // Kwazulu-Natal | zulu zulu // Kwazulu-Natal | ||||
| André 'andreI | André 'andreI | ||||
| annette an'Et | annette an'Et | ||||
| antoinette antun'Et | antoinette antun'Et | ||||
| archimedes arx2im'e@dEs | |||||
| aristoteles arist'o@t@lEs | aristoteles arist'o@t@lEs | ||||
| arthur _^_EN | |||||
| badenhorst bA:d@nhOrst | badenhorst bA:d@nhOrst | ||||
| barbara bA:b@ra | barbara bA:b@ra | ||||
| basson $2 | basson $2 | ||||
| bruwer bruw'&:r | bruwer bruw'&:r | ||||
| caesar siz@r | caesar siz@r | ||||
| carl kA:r@L | carl kA:r@L | ||||
| carlyle _^_EN | |||||
| carol _^_EN | carol _^_EN | ||||
| casanova kasan'o@va | casanova kasan'o@va | ||||
| cecil sEs@l | cecil sEs@l | ||||
| deventer d'e@v@nt@r | deventer d'e@v@nt@r | ||||
| diana dij'A:na | diana dij'A:na | ||||
| donaldson _^_EN | donaldson _^_EN | ||||
| dostojewski dOstOj'Evski | |||||
| du $u | du $u | ||||
| duncan daNk@-n | |||||
| (du pisanie) du||pis'A:ni | (du pisanie) du||pis'A:ni | ||||
| (du plessis) du||pl@s'i | (du plessis) du||pl@s'i | ||||
| (du plooy) d@||ploI | (du plooy) d@||ploI | ||||
| ferreira f@r&:r@ | ferreira f@r&:r@ | ||||
| filemon f'il@mOn | filemon f'il@mOn | ||||
| fischer fiS@r | fischer fiS@r | ||||
| flaubert _^_FR | |||||
| floris $1 | floris $1 | ||||
| fouché fuS'e@ | fouché fuS'e@ | ||||
| fourie fur'i | fourie fur'i | ||||
| gertruida $2 | gertruida $2 | ||||
| gilbert _^_EN | gilbert _^_EN | ||||
| gloria glO:ria | gloria glO:ria | ||||
| gordon _^_EN | |||||
| grange x2rA:nsi | grange x2rA:nsi | ||||
| grové x2ruv'e@ | grové x2ruv'e@ | ||||
| gulliver _^_EN | |||||
| gustav gustaf | gustav gustaf | ||||
| guy _^_EN | guy _^_EN | ||||
| hamlet _^_EN | hamlet _^_EN | ||||
| herklaas $1 | herklaas $1 | ||||
| herkules $1 | herkules $1 | ||||
| hilde hild@ | hilde hild@ | ||||
| ibsen ibs@n | |||||
| ilse 'ilz@ | ilse 'ilz@ | ||||
| ingrid iNgr@d | ingrid iNgr@d | ||||
| isabel is@b&l | isabel is@b&l | ||||
| joris $1 | joris $1 | ||||
| josef jo@s@f | josef jo@s@f | ||||
| josephina jo@s@f'ina | josephina jo@s@f'ina | ||||
| josé _^_ES | |||||
| juan x2wan | |||||
| juanita juan'ita | juanita juan'ita | ||||
| julia _^_EN | julia _^_EN | ||||
| khayyam kaj'am | khayyam kaj'am | ||||
| liesbet lisbEt | liesbet lisbEt | ||||
| louis luI | louis luI | ||||
| louise luw'i:z | louise luw'i:z | ||||
| lukas lukas | |||||
| mackintosh _^_EN | mackintosh _^_EN | ||||
| madelene mad@l'e@n | madelene mad@l'e@n | ||||
| mbeki mbE:ki | mbeki mbE:ki | ||||
| mathilda mat'Ilda | mathilda mat'Ilda | ||||
| matteus mat'i:Ws | matteus mat'i:Ws | ||||
| matthee mat'e@ | matthee mat'e@ | ||||
| mattheüs mat'i:Ws | |||||
| matthéüs mat'i:Ws | matthéüs mat'i:Ws | ||||
| maureen _^_EN | maureen _^_EN | ||||
| mefistofeles mEfist'o@f@l@s | mefistofeles mEfist'o@f@l@s | ||||
| petrus pe@trWs | petrus pe@trWs | ||||
| phoebe fi:bi | phoebe fi:bi | ||||
| picasso pik'asu | picasso pik'asu | ||||
| piketberg pik'Etb&rx2 | |||||
| pinokkio pin'Oki;u | pinokkio pin'Oki;u | ||||
| pretorius pr@to@riWs | pretorius pr@to@riWs | ||||
| pythagoras pit'A:x2o@ras | |||||
| quijote kix2'OtE | |||||
| quixote kix2'OtE | quixote kix2'OtE | ||||
| rachmaninoff rax2m'aninOf | rachmaninoff rax2m'aninOf | ||||
| rademeyer rA:d@meI@r | rademeyer rA:d@meI@r | ||||
| sophie _^_EN | sophie _^_EN | ||||
| stephan ste@fan | stephan ste@fan | ||||
| stephanus st@fA:nWs | stephanus st@fA:nWs | ||||
| stevenson _^_EN | |||||
| strauss straUs | strauss straUs | ||||
| stockenström stOk@nstro@m | stockenström stOk@nstro@m | ||||
| suzanne suz'A:n | suzanne suz'A:n | ||||
| trudie trudi | trudie trudi | ||||
| versfeld f&rsf< | versfeld f&rsf< | ||||
| veronica _^_EN | veronica _^_EN | ||||
| victor _^_EN | |||||
| victoria _^_EN | victoria _^_EN | ||||
| viljoen $2 | viljoen $2 | ||||
| villiers vIli@rs | villiers vIli@rs | ||||
| porsche pOrS@ | porsche pOrS@ | ||||
| port pOrt $1 | port pOrt $1 | ||||
| rover _^_EN | rover _^_EN | ||||
| sorbonne _^_FR | |||||
| sotho su:tu | sotho su:tu | ||||
| toyota $2 | toyota $2 | ||||
| venda vEnda | venda vEnda | ||||
| eks Eks | eks Eks | ||||
| ekself %&ks'&lf | ekself %&ks'&lf | ||||
| elders &ld@rs | elders &ld@rs | ||||
| elementale El@mEnt'A:l@ | |||||
| elite il'i:t | elite il'i:t | ||||
| encore A~NkO:r | encore A~NkO:r | ||||
| enige e@nIx2@ | enige e@nIx2@ | ||||
| eone $2 | eone $2 | ||||
| era e@ra | era e@ra | ||||
| erger &rg@r | erger &rg@r | ||||
| ergering &rg@r@N | |||||
| espeak i:;spi:k | espeak i:;spi:k | ||||
| (et cetera) Ets'Et@ra | (et cetera) Ets'Et@ra | ||||
| euro Y@ru | euro Y@ru | ||||
| genade $2 | genade $2 | ||||
| genesis x2e@n@s@s | genesis x2e@n@s@s | ||||
| //gesamentlik x2@sA:m@ntl@k | //gesamentlik x2@sA:m@ntl@k | ||||
| gentleman _^_EN | |||||
| gewellys x2e@v@lleIs | gewellys x2e@v@lleIs | ||||
| gladiator x2ladi'A:tOr | gladiator x2ladi'A:tOr | ||||
| globale x2lo@b'A:l@ | globale x2lo@b'A:l@ | ||||
| inagneming @nax2ne@m@N | inagneming @nax2ne@m@N | ||||
| indien Indin $verb | indien Indin $verb | ||||
| induna ind'u:na | induna ind'u:na | ||||
| infame @nfA:m@ | |||||
| ingevolge $3 | ingevolge $3 | ||||
| inkatha iNk'A:ta | inkatha iNk'A:ta | ||||
| inkluis $2 | inkluis $2 | ||||
| londense lOnd@ns@ | londense lOnd@ns@ | ||||
| lord _^_EN | lord _^_EN | ||||
| luidop lYyt_Op | luidop lYyt_Op | ||||
| lykwaak leIkvA:k | |||||
| macaroni makar'o@ni | macaroni makar'o@ni | ||||
| madame mad'A:m | madame mad'A:m | ||||
| omrede $2 | omrede $2 | ||||
| omtrent Omtr'Ent | omtrent Omtr'Ent | ||||
| onbegrip $1 | onbegrip $1 | ||||
| onbruik $1 | |||||
| onderrig On@r'Ix2 $verb | onderrig On@r'Ix2 $verb | ||||
| ondersoek $3 $verb | ondersoek $3 $verb | ||||
| onderweg $3 | onderweg $3 | ||||
| sektore $2 | sektore $2 | ||||
| sinagoge s@n@x2o@x2@ | sinagoge s@n@x2o@x2@ | ||||
| senatore s@nat'o@r@ | senatore s@nat'o@r@ | ||||
| siesta si;'Esta | |||||
| singenot sInx2@nOt | singenot sInx2@nOt | ||||
| sir _^_EN | sir _^_EN | ||||
| skepsele skEps@l@ | skepsele skEps@l@ | ||||
| verafgeleë f&rafx2@le@@ | verafgeleë f&rafx2@le@@ | ||||
| verby f@rbeI | verby f@rbeI | ||||
| verdere f&rd@r@ | verdere f&rd@r@ | ||||
| vererger f@r&rg@r | |||||
| ver f'&:r | ver f'&:r | ||||
| vereduifie fe@r@dYyfi | vereduifie fe@r@dYyfi | ||||
| verg f&rx2 | verg f&rx2 |
| * : ; b C C2 d D | * : ; b C C2 d D | ||||
| dZ f g h j k l m | dZ f g h j k l m | ||||
| n N p pF r s S t | n N p pF r s S t | ||||
| tS ts v x z Z | |||||
| tS ts v w x z Z | |||||
| Dictionary el_dict | Dictionary el_dict | ||||
| b c d f g h j k | b c d f g h j k | ||||
| l m n N p r s t | l m n N p r s t | ||||
| tS v w z | tS v w z | ||||
| Dictionary ur_dict | |||||
| @ a a: aI aU E e: i | |||||
| I i: O o: U u: | |||||
| : b bh c ch d D d. | |||||
| dh dh. dZ f g gh H j | |||||
| J Jh k kh l m n N | |||||
| p ph Q q R r. s S | |||||
| s. t T t. th th. v x | |||||
| z Z z. |
| antihero $1 | antihero $1 | ||||
| antilog $1 | antilog $1 | ||||
| antimatter $1 | antimatter $1 | ||||
| antinomy ant'In@mI | |||||
| antimony $2 | |||||
| antioch $1 | antioch $1 | ||||
| antipathy ant'Ip@TI | antipathy ant'Ip@TI | ||||
| antiphonal ant'If@n@L | antiphonal ant'If@n@L | ||||
| jasmine dZazmIn | jasmine dZazmIn | ||||
| jesus dZi:z@s | jesus dZi:z@s | ||||
| joky dZoUkI | joky dZoUkI | ||||
| jour ZU@ // french | |||||
| jukebox dZu:kb0ks | jukebox dZu:kb0ks | ||||
| july dZu:l'aI | july dZu:l'aI | ||||
| Dominic d0mI2nIk | Dominic d0mI2nIk | ||||
| Donaghy d0n'hi: | Donaghy d0n'hi: | ||||
| Doris d0rIs | Doris d0rIs | ||||
| Dorothy dO@r@Ti | |||||
| Dougall du:g@L | Dougall du:g@L | ||||
| Dylan dIl@n | Dylan dIl@n | ||||
| Edith i:dIT | Edith i:dIT | ||||
| Elizabeth I2lIz@b@T | Elizabeth I2lIz@b@T | ||||
| Emily EmI2lI | |||||
| Emma Em@ | Emma Em@ | ||||
| Emmy EmI | Emmy EmI | ||||
| Etheridge ET@-rIdZ | Etheridge ET@-rIdZ |
| r) ouge u:Z | r) ouge u:Z | ||||
| _) ough O: | _) ough O: | ||||
| ough (t O: | ough (t O: | ||||
| ough (* OI | |||||
| ough oU | ough oU | ||||
| b) ough aU | b) ough aU | ||||
| b) ough (t O: | b) ough (t O: | ||||
| _) re (emP2 r%i: | _) re (emP2 r%i: | ||||
| _) re (enP2 r%i: | _) re (enP2 r%i: | ||||
| _) re (eqP2 r%i: | _) re (eqP2 r%i: | ||||
| _) re (esP2 r%i: | |||||
| _) re (exP2 r%i: | _) re (exP2 r%i: | ||||
| referend rEf@r'End | referend rEf@r'End | ||||
| re (fug rE | re (fug rE | ||||
| ?5 ss) wor (d wVR | ?5 ss) wor (d wVR | ||||
| wor (th_ w3: | wor (th_ w3: | ||||
| ?5 wor (th_ wVR | ?5 wor (th_ wVR | ||||
| s) w (ick | |||||
| As) w (ick | |||||
| .group x | .group x | ||||
| _) x (C Eks | _) x (C Eks | ||||
| _) y (n@ V | _) y (n@ V | ||||
| _) y (s@ V | _) y (s@ V | ||||
| C) y (abl I2 | C) y (abl I2 | ||||
| y (y | |||||
| y (C I | y (C I | ||||
| C) y %I | C) y %I | ||||
| y (ar j | y (ar j |
| velünk $unstressend | velünk $unstressend | ||||
| veletek $unstressend | veletek $unstressend | ||||
| velük $unstressend | velük $unstressend | ||||
| közt $unstressend | |||||
| hiszik $unstressend | |||||
| hiszitek $unstressend | |||||
| önt $unstressend | |||||
| benn $unstressend | |||||
| kinn $unstressend | |||||
| kés $unstressend | |||||
| néz $unstressend | |||||
| vont $unstressend | |||||
| fiút $unstressend | |||||
| von $unstressend | |||||
| nézett $unstressend | |||||
| rám $unstressend | |||||
| rád $unstressend | |||||
| mód $unstressend | |||||
| győz $unstressend | |||||
| repült $unstressend | |||||
| ül $unstressend | |||||
| gyújt $unstressend | |||||
| hajt $unstressend | |||||
| köp $unstressend | |||||
| látni $unstressend | |||||
| sült $unstressend | |||||
| roncs $unstressend | |||||
| is $unstressend | |||||
| fut $unstressend | |||||
| ló $unstressend | |||||
| véljük $unstressend | |||||
| vélik $unstressend | |||||
| vélem $unstressend | |||||
| véled $unstressend | |||||
| véli $unstressend | |||||
| vélitek $unstressend | |||||
| // word pairs | // word pairs | ||||
| biz (A biz, // bizalmas etc. | biz (A biz, // bizalmas etc. | ||||
| biedermeier bi:dER2ma:jER2 | biedermeier bi:dER2ma:jER2 | ||||
| _) batthiány bAc:a:n^i | |||||
| _) batthiány bAc:a:n^i | |||||
| .group c | .group c | ||||
| c ts | c ts | ||||
| rövi) d (zárlat d | rövi) d (zárlat d | ||||
| sarja) d (zik d | sarja) d (zik d | ||||
| nyála) d (z d | nyála) d (z d | ||||
| ren) dsz (erint d|s | |||||
| ren) dsz (erint d|s | |||||
| szaba) d (szájú d | |||||
| .group dz | .group dz | ||||
| fogó) dz (kod ts | fogó) dz (kod ts | ||||
| e) gy (sínű J | e) gy (sínű J | ||||
| e) gy (sor J | e) gy (sor J | ||||
| né) gy (sor J | né) gy (sor J | ||||
| e) gy (es-egyedül J //need one J phoneme with this word, not J: phoneme | |||||
| .group h | .group h | ||||
| h h | h h | ||||
| .group í | .group í | ||||
| í i: | í i: | ||||
| íts i:tS: | íts i:tS: | ||||
| ítsd i:tSd | |||||
| ítsd i:tSd | |||||
| t) í (zen i | t) í (zen i | ||||
| t) í (zet i | t) í (zet i | ||||
| v) í (zen i | v) í (zen i | ||||
| pero) n (jegy n | pero) n (jegy n | ||||
| ö) n (járó n | ö) n (járó n | ||||
| tulajdo) n (jog n | tulajdo) n (jog n | ||||
| ko) nn (ektor n //connector word, we spokening one n letter, not two n letter | |||||
| ko) nn (ektor n //connector word, we spokening one n letter, not two n letter | |||||
| me) nj (_S2 n^ | |||||
| be) nn (szülött n | |||||
| éle) n (jár n | |||||
| magá) n (jelleg n | |||||
| .group o | .group o | ||||
| o o | o o | ||||
| _) richa (rd R2iCa: | _) richa (rd R2iCa: | ||||
| _) richá (rd R2iCa: | _) richá (rd R2iCa: | ||||
| reichsmarschall R2EjsmAR2SAl: | reichsmarschall R2EjsmAR2SAl: | ||||
| ?!2 _) roose (velt R2u:z@ | |||||
| ?!2 _) roose (velt R2u:z | |||||
| .group s | .group s | ||||
| vi) ssz (hang s | vi) ssz (hang s | ||||
| felelő) ss (ég S | felelő) ss (ég S | ||||
| égzengé) ssz (erű Ss | égzengé) ssz (erű Ss | ||||
| világo) ssz (ürke Ss | |||||
| motoro) ssz (emüveg Ss | |||||
| bőgé) ssz (erű Ss | |||||
| kavará) ssz (erű Ss | |||||
| _sa) ssz (eg Ss | |||||
| .group sz | .group sz | ||||
| sz s | sz s | ||||
| épüle) t (sarok t | épüle) t (sarok t | ||||
| mene) t (sor t | mene) t (sor t | ||||
| skó) t (sapka t | skó) t (sapka t | ||||
| lé) t (jogosultsága t | |||||
| bérle) t (jegy t | |||||
| csapa) t (játék t | |||||
| ese) t (jog t | |||||
| fejeze) t (jel t | |||||
| ké) t (jegyű t | |||||
| krike) tt (játék t: | |||||
| mene) t (jegy t | |||||
| szüne) t (jel t | |||||
| ú) t (jelző t | |||||
| ú) t (jog t | |||||
| gondola) t (jel t | |||||
| helyze) t (jel t | |||||
| lé) t (jogosultsága t | |||||
| bérle) t (jegy t | |||||
| csapa) t (játék t | |||||
| ese) t (jog t | |||||
| fejeze) t (jel t | |||||
| ké) t (jegyű t | |||||
| krike) tt (játék t: | |||||
| mene) t (jegy t | |||||
| szüne) t (jel t | |||||
| ú) t (jelző t | |||||
| ú) t (jog t | |||||
| gondola) t (jel t | |||||
| helyze) t (jel t | |||||
| folyama) t (sáv t | |||||
| ada) t (szolgáltat t | |||||
| _ú) t (sáv t | |||||
| négyze) t (centi t | |||||
| .group ts | .group ts | ||||
| ts (_S2 tS //general rule with word end of ts letters | ts (_S2 tS //general rule with word end of ts letters | ||||
| já) tsz ts: | já) tsz ts: | ||||
| já) tssz ts: | já) tssz ts: | ||||
| já) tsz (m ts | já) tsz (m ts | ||||
| já) tsz (hat ts | |||||
| tsz (_S3 ts: | tsz (_S3 ts: | ||||
| tsz (é ts: | tsz (é ts: | ||||
| tsz (o ts: | tsz (o ts: | ||||
| .group ú | .group ú | ||||
| ú u: | ú u: | ||||
| h) ú (szan u | |||||
| .group ü | .group ü | ||||
| ü y | ü y | ||||
| .group ű | .group ű | ||||
| ű y: | ű y: | ||||
| t) ű (zijáték y | |||||
| .group v | .group v | ||||
| v v | v v | ||||
| nehé) z (súly z | nehé) z (súly z | ||||
| raj) z (szeg z | raj) z (szeg z | ||||
| raj) z (szög z | raj) z (szög z | ||||
| pén) z (t s | |||||
| rende) z (ked s | |||||
| kocká) z (tat s | |||||
| hibá) z (tat s | |||||
| különbö) z (tet s | |||||
| válto) z (tat s | |||||
| válto) z (tass s | |||||
| tájéko) z (tat s | |||||
| tájéko) z (tass s | |||||
| pén) z (t s | |||||
| rende) z (ked s | |||||
| kocká) z (tat s | |||||
| hibá) z (tat s | |||||
| különbö) z (tet s | |||||
| válto) z (tat s | |||||
| válto) z (tass s | |||||
| tájéko) z (tat s | |||||
| tájéko) z (tass s | |||||
| mé) z (szín z | |||||
| bi) z (tat s | |||||
| rá) z (kód s | |||||
| .group | .group |
| போனஸ் $alt | போனஸ் $alt | ||||
| போகி $alt | போகி $alt | ||||
| பாபா ba:ba: | பாபா ba:ba: | ||||
| புத்த buddV | |||||
| //புத்த buddV | |||||
| // initial த as [d] | // initial த as [d] | ||||
| கட $alt | கட $alt | ||||
| கோ $alt | கோ $alt | ||||
| கதி $alt | கதி $alt | ||||
| கோபி $alt | |||||
| கச்சாமி $alt | |||||
| குரு $alt | |||||
| பப pVpV | பப pVpV |
| க்க (B kk | க்க (B kk | ||||
| ற்) க _kV | ற்) க _kV | ||||
| ற்) க (B _k | ற்) க (B _k | ||||
| ட்) க kV | |||||
| ட்) க (B k | |||||
| க (ிரு k | |||||
| க (ீத g | க (ீத g | ||||
| க (ஜ gV | க (ஜ gV | ||||
| _) க (ாந்த g | _) க (ாந்த g | ||||
| _) க (ுண்ட g | _) க (ுண்ட g | ||||
| _) க (ோபுர g | _) க (ோபுர g | ||||
| _) க (ுரு g | |||||
| _) க (ுகன g | _) க (ுகன g | ||||
| _) க (ணபதி gV | _) க (ணபதி gV | ||||
| _) க (ணீர gV | _) க (ணீர gV | ||||
| _) க (தியில் gV | _) க (தியில் gV | ||||
| _) க (டிகார gV | _) க (டிகார gV | ||||
| வி) க்ட (ோரியா kt. // victoria | வி) க்ட (ோரியா kt. // victoria | ||||
| க (ோப g | |||||
| க (ாரன k | க (ாரன k | ||||
| க (ாரர k | க (ாரர k | ||||
| _) க (ோபம k | |||||
| _) கோப (ித்து ko:b | _) கோப (ித்து ko:b | ||||
| _) க (ோபப் k | _) க (ோபப் k | ||||
| _) க (ெட்டி g | _) க (ெட்டி g | ||||
| _) க (வண gV | |||||
| _) க (ோகுல g | |||||
| கோப (ால go:p | |||||
| _) க (ோபிய g | |||||
| _) க (ோபிநா g | |||||
| _) க (ோபிசெட் g | |||||
| _) க (ூடலூர g | |||||
| _) க (ுடியாத்த g | |||||
| _) க (வன gV | |||||
| _) க (ுருவின g | |||||
| _) க (ுருவிட g | |||||
| _) க (ுருக்கள g | |||||
| _) க (ுருவோட g | |||||
| _) க (ுருவுடை g | |||||
| _) க (ுருரா g | |||||
| _) க (ுருநா g | |||||
| _) க (ுருவாய g | |||||
| .group ங | .group ங | ||||
| _) ச (ிட் tS | _) ச (ிட் tS | ||||
| _) ச (ின் tS | _) ச (ின் tS | ||||
| _) ச (ேரி tS | |||||
| _) ச (ப்பாத்தி tSV | _) ச (ப்பாத்தி tSV | ||||
| _) சிரு (ஷ்டி sri | |||||
| ச (ாந்தி s. | |||||
| ச (ண்மு s.V | |||||
| .group ஜ | .group ஜ | ||||
| ஜ dZV | ஜ dZV | ||||
| _) த (ுஷ் d | _) த (ுஷ் d | ||||
| _) த (க்ஷிணா dV | _) த (க்ஷிணா dV | ||||
| _) த (ண்ட dV | _) த (ண்ட dV | ||||
| _) த (ண்டவாள tV | |||||
| _) த (ருமி dV | _) த (ருமி dV | ||||
| _) த (ர்பை dV | _) த (ர்பை dV | ||||
| _) த (ாவா d | _) த (ாவா d | ||||
| _) த (ினுச d | _) த (ினுச d | ||||
| _) த (ாராவி d | _) த (ாராவி d | ||||
| _) த (ர்க dV | _) த (ர்க dV | ||||
| _) த (ான d | |||||
| // _) த (ான d | |||||
| _) த (ேக d | _) த (ேக d | ||||
| _) த (ேக்கு t | _) த (ேக்கு t | ||||
| _) த (ேக்கிலை t | _) த (ேக்கிலை t | ||||
| _) த (ன்ராஜ dV | _) த (ன்ராஜ dV | ||||
| _) த (ாராபுர d | _) த (ாராபுர d | ||||
| _) த (டி_மாட dV | _) த (டி_மாட dV | ||||
| _) த (ேவன d | |||||
| _) த (ேவி d | |||||
| _) த (ேவர்க d | |||||
| _) த (ேவதை d | |||||
| _) த (ேவாம்ச d | |||||
| _) த (ிவ்ய d | |||||
| _) த (ிண்டிவன d | |||||
| _) த (ுறை d | |||||
| _) த (ிண்டுக்கல d | |||||
| _) த (மயந்தி dV | |||||
| _) த (ுரோண d | |||||
| _) த (ுரியோதனன d | |||||
| _) த (ுச்சாதனன d | |||||
| _) த (ிரௌபதி d | |||||
| யு) த்த ddV | |||||
| யு) த்த(B dd | |||||
| பு) த்த (ி dd | பு) த்த (ி dd | ||||
| பு) த்த (ியி dd | பு) த்த (ியி dd | ||||
| பு) த்த (ர ddV | பு) த்த (ர ddV | ||||
| பு) த்த (ன ddV | பு) த்த (ன ddV | ||||
| _சாந்) த (ி t | |||||
| _சும) த (ி t | |||||
| _வசந்) த (ி t | |||||
| _சுகந்) த (ி t | |||||
| _வனி) த (ா t | |||||
| _சுனி) த (ா t | |||||
| _ல) த (ா t | |||||
| பிரேமல) த (ா t | |||||
| _ரேவ) த (ி t | |||||
| _வினி) த (ா t | |||||
| _வசந்) த tV | |||||
| _பார்வ) த (ி t | |||||
| பிரபாவ) த (ி t | |||||
| _கோம) த (ி t | |||||
| _பிர) த (ீ t | |||||
| _) திரு (ஷ்டி dri | |||||
| _) திரு (திரா dri | |||||
| _) துர (ோண tr | |||||
| _) திர (ௌபதி tr | |||||
| .group ந | .group ந | ||||
| ந nV | ந nV | ||||
| த) ப (ா p | த) ப (ா p | ||||
| த) ப (B b | த) ப (B b | ||||
| பத (ி pVt | |||||
| @) பத (ி pVt | |||||
| ப (ுர p | ப (ுர p | ||||
| ப (ால p | ப (ால p | ||||
| ப (ாள p | ப (ாள p | ||||
| ம்) ப (ா b | ம்) ப (ா b | ||||
| _) ப (ால b | |||||
| _) ப (ால் p | |||||
| // _) ப (ால b | |||||
| _) ப (ால் p | |||||
| _) ப (ாலின் p | _) ப (ாலின் p | ||||
| _) ப (ாலை p | _) ப (ாலை p | ||||
| _) ப (ாலில் p | |||||
| // _) ப (ாலில் p | |||||
| _) ப (ாலுடன் p | _) ப (ாலுடன் p | ||||
| _) ப (ாலினுடைய p | |||||
| // _) ப (ாலினுடைய p | |||||
| _) ப (ாலாபிஷேக p | _) ப (ாலாபிஷேக p | ||||
| _) ப (ாலு b | |||||
| _) ப (ானு b | |||||
| _) ப (ீம b | |||||
| _) ப (ாலு b | |||||
| _) ப (ானு b | |||||
| _) ப (ீம b | |||||
| _) ப (காசுர bV | _) ப (காசுர bV | ||||
| _) ப (ோஜ b | |||||
| _) ப (தில bV | |||||
| _) ப (ஜ bV | |||||
| _) ப (ோஜ b | |||||
| _) ப (தில bV | |||||
| _) ப (ஜ bV | |||||
| _) ப (ைரவ b | _) ப (ைரவ b | ||||
| _) ப (யம bV | |||||
| _) ப (யம bV | |||||
| _) ப (ார்கவி b | _) ப (ார்கவி b | ||||
| _) ப (ூதேவி b | _) ப (ூதேவி b | ||||
| _) ப (ம்பாய bV | _) ப (ம்பாய bV | ||||
| _) ப (ாதுஷா b | _) ப (ாதுஷா b | ||||
| _) ப (க்த bV | |||||
| _) ப (லம bV | |||||
| _) ப (க்த bV | |||||
| _) ப (லம bV | |||||
| _) ப (லவான bV | _) ப (லவான bV | ||||
| _) ப (ிராமண b | _) ப (ிராமண b | ||||
| _) ப (ிரம்ம b | _) ப (ிரம்ம b | ||||
| _) ப (ம்பர bV | |||||
| _) ப (லூன bV | |||||
| _) ப (ூமி b | |||||
| _) ப (ம்பர bV | |||||
| _) ப (லூன bV | |||||
| _) ப (ூமி b | |||||
| _) ப (ூலோக b | _) ப (ூலோக b | ||||
| _) ப (ூகோல b | _) ப (ூகோல b | ||||
| _) ப (ூத b | |||||
| _) ப (ூத b | |||||
| _) ப (ுதன b | _) ப (ுதன b | ||||
| _) ப (லி bV | _) ப (லி bV | ||||
| _) ப (கவான bV | _) ப (கவான bV | ||||
| _) ப (ோபால b | _) ப (ோபால b | ||||
| _) ப (ெங்களூர b | _) ப (ெங்களூர b | ||||
| _) ப (ூபாள b | _) ப (ூபாள b | ||||
| _) ப (ுத்த b | |||||
| _) புத்த(K buddV | |||||
| _) புத் (தJ_புத+ put | |||||
| _) ப (னியன bV | _) ப (னியன bV | ||||
| கோ) ப (ி p | கோ) ப (ி p | ||||
| _) ப (ாலச b | |||||
| _) ப (ாலக b | |||||
| _) ப (ாலமு b | |||||
| _) ப (ாலதண் b | |||||
| _) ப (ூவுலக b | |||||
| _) ப (ிரகஸ்பதி b | |||||
| _) ப (ிரகதீ b | |||||
| _) ப (ொம்மை b | |||||
| _) ப (ொம்மல b | |||||
| _) ப (ாக்கி b | |||||
| _) ப (ஸ bV | |||||
| _) ப (ாஷை b | |||||
| _) ப (ிரம்மை b | |||||
| _) ப (ாரம b | |||||
| _) ப (ங்களா bV | |||||
| _) ப (ங்கம bV | |||||
| _) ப (ுட்டி b | |||||
| _) பிர (ம்மன brV | |||||
| _) பிர (ாமணன br | |||||
| _) பிர (கஸ்பதி brV | |||||
| _) பிர (கதீ brV | |||||
| _) பிர (கலாதன prV | |||||
| _) பிர (காஷ prV | |||||
| _) பிர (காச prV | |||||
| _) பிர (சாத prV | |||||
| _) பிர (ே pr | |||||
| _) பிரு (கன்நளை bri | |||||
| _) பிர (சாந்தி prV | |||||
| _) பிர (ம்மை brV | |||||
| _) பிர (சன்ன prV | |||||
| _) பிர (ச்சனை prV | |||||
| _) பிர (ப prV | |||||
| _) பிர (தீ prV | |||||
| // musical notes | // musical notes |
| /* This is the header file for the library version of espeak */ | /* This is the header file for the library version of espeak */ | ||||
| /* */ | /* */ | ||||
| /*************************************************************/ | /*************************************************************/ | ||||
| #define ESPEAK_API __declspec(dllexport) | |||||
| #include <stdio.h> | #include <stdio.h> | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| int espeak_Initialize(espeak_AUDIO_OUTPUT output, int buflength, const char *path, int options); | |||||
| ESPEAK_API int espeak_Initialize(espeak_AUDIO_OUTPUT output, int buflength, const char *path, int options); | |||||
| /* Must be called before any synthesis functions are called. | /* Must be called before any synthesis functions are called. | ||||
| output: the audio data can either be played by eSpeak or passed back by the SynthCallback function. | output: the audio data can either be played by eSpeak or passed back by the SynthCallback function. | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| void espeak_SetSynthCallback(t_espeak_callback* SynthCallback); | |||||
| ESPEAK_API void espeak_SetSynthCallback(t_espeak_callback* SynthCallback); | |||||
| /* Must be called before any synthesis functions are called. | /* Must be called before any synthesis functions are called. | ||||
| This specifies a function in the calling program which is called when a buffer of | This specifies a function in the calling program which is called when a buffer of | ||||
| speech sound data has been produced. | speech sound data has been produced. | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| void espeak_SetUriCallback(int (*UriCallback)(int, const char*, const char*)); | |||||
| ESPEAK_API void espeak_SetUriCallback(int (*UriCallback)(int, const char*, const char*)); | |||||
| /* This function may be called before synthesis functions are used, in order to deal with | /* This function may be called before synthesis functions are used, in order to deal with | ||||
| <audio> tags. It specifies a callback function which is called when an <audio> element is | <audio> tags. It specifies a callback function which is called when an <audio> element is | ||||
| encountered and allows the calling program to indicate whether the sound file which | encountered and allows the calling program to indicate whether the sound file which | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| espeak_ERROR espeak_Synth(const void *text, | |||||
| ESPEAK_API espeak_ERROR espeak_Synth(const void *text, | |||||
| size_t size, | size_t size, | ||||
| unsigned int position, | unsigned int position, | ||||
| espeak_POSITION_TYPE position_type, | espeak_POSITION_TYPE position_type, | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| espeak_ERROR espeak_Synth_Mark(const void *text, | |||||
| ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text, | |||||
| size_t size, | size_t size, | ||||
| const char *index_mark, | const char *index_mark, | ||||
| unsigned int end_position, | unsigned int end_position, | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| espeak_ERROR espeak_Key(const char *key_name); | |||||
| ESPEAK_API espeak_ERROR espeak_Key(const char *key_name); | |||||
| /* Speak the name of a keyboard key. | /* Speak the name of a keyboard key. | ||||
| If key_name is a single character, it speaks the name of the character. | If key_name is a single character, it speaks the name of the character. | ||||
| Otherwise, it speaks key_name as a text string. | Otherwise, it speaks key_name as a text string. | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| espeak_ERROR espeak_Char(wchar_t character); | |||||
| ESPEAK_API espeak_ERROR espeak_Char(wchar_t character); | |||||
| /* Speak the name of the given character | /* Speak the name of the given character | ||||
| Return: EE_OK: operation achieved | Return: EE_OK: operation achieved | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int value, int relative); | |||||
| ESPEAK_API espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int value, int relative); | |||||
| /* Sets the value of the specified parameter. | /* Sets the value of the specified parameter. | ||||
| relative=0 Sets the absolute value of the parameter. | relative=0 Sets the absolute value of the parameter. | ||||
| relative=1 Sets a relative value of the parameter. | relative=1 Sets a relative value of the parameter. | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| int espeak_GetParameter(espeak_PARAMETER parameter, int current); | |||||
| ESPEAK_API int espeak_GetParameter(espeak_PARAMETER parameter, int current); | |||||
| /* current=0 Returns the default value of the specified parameter. | /* current=0 Returns the default value of the specified parameter. | ||||
| current=1 Returns the current value of the specified parameter, as set by SetParameter() | current=1 Returns the current value of the specified parameter, as set by SetParameter() | ||||
| */ | */ | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist); | |||||
| ESPEAK_API espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist); | |||||
| /* Specified a list of punctuation characters whose names are to be spoken when the | /* Specified a list of punctuation characters whose names are to be spoken when the | ||||
| value of the Punctuation parameter is set to "some". | value of the Punctuation parameter is set to "some". | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| void espeak_SetPhonemeTrace(int value, FILE *stream); | |||||
| ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream); | |||||
| /* Controls the output of phoneme symbols for the text | /* Controls the output of phoneme symbols for the text | ||||
| value=0 No phoneme output (default) | value=0 No phoneme output (default) | ||||
| value=1 Output the translated phoneme symbols for the text | value=1 Output the translated phoneme symbols for the text | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| void espeak_CompileDictionary(const char *path, FILE *log, int flags); | |||||
| ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags); | |||||
| /* Compile pronunciation dictionary for a language which corresponds to the currently | /* Compile pronunciation dictionary for a language which corresponds to the currently | ||||
| selected voice. The required voice should be selected before calling this function. | selected voice. The required voice should be selected before calling this function. | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec); | |||||
| ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec); | |||||
| /* Reads the voice files from espeak-data/voices and creates an array of espeak_VOICE pointers. | /* Reads the voice files from espeak-data/voices and creates an array of espeak_VOICE pointers. | ||||
| The list is terminated by a NULL pointer | The list is terminated by a NULL pointer | ||||
| If voice_spec is NULL then all voices are listed. | If voice_spec is NULL then all voices are listed. | ||||
| If voice spec is given, then only the voices which are compatible with the voice_spec | |||||
| If voice spec is give, then only the voices which are compatible with the voice_spec | |||||
| are listed, and they are listed in preference order. | are listed, and they are listed in preference order. | ||||
| */ | */ | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| espeak_ERROR espeak_SetVoiceByName(const char *name); | |||||
| ESPEAK_API espeak_ERROR espeak_SetVoiceByName(const char *name); | |||||
| /* Searches for a voice with a matching "name" field. Language is not considered. | /* Searches for a voice with a matching "name" field. Language is not considered. | ||||
| "name" is a UTF8 string. | "name" is a UTF8 string. | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| espeak_ERROR espeak_SetVoiceByProperties(espeak_VOICE *voice_spec); | |||||
| ESPEAK_API espeak_ERROR espeak_SetVoiceByProperties(espeak_VOICE *voice_spec); | |||||
| /* An espeak_VOICE structure is used to pass criteria to select a voice. Any of the following | /* An espeak_VOICE structure is used to pass criteria to select a voice. Any of the following | ||||
| fields may be set: | fields may be set: | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| espeak_VOICE *espeak_GetCurrentVoice(void); | |||||
| ESPEAK_API espeak_VOICE *espeak_GetCurrentVoice(void); | |||||
| /* Returns the espeak_VOICE data for the currently selected voice. | /* Returns the espeak_VOICE data for the currently selected voice. | ||||
| This is not affected by temporary voice changes caused by SSML elements such as <voice> and <s> | This is not affected by temporary voice changes caused by SSML elements such as <voice> and <s> | ||||
| */ | */ | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| espeak_ERROR espeak_Cancel(void); | |||||
| ESPEAK_API espeak_ERROR espeak_Cancel(void); | |||||
| /* Stop immediately synthesis and audio output of the current text. When this | /* Stop immediately synthesis and audio output of the current text. When this | ||||
| function returns, the audio output is fully stopped and the synthesizer is ready to | function returns, the audio output is fully stopped and the synthesizer is ready to | ||||
| synthesize a new message. | synthesize a new message. | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| int espeak_IsPlaying(void); | |||||
| ESPEAK_API int espeak_IsPlaying(void); | |||||
| /* Returns 1 if audio is played, 0 otherwise. | /* Returns 1 if audio is played, 0 otherwise. | ||||
| */ | */ | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| espeak_ERROR espeak_Synchronize(void); | |||||
| ESPEAK_API espeak_ERROR espeak_Synchronize(void); | |||||
| /* This function returns when all data have been spoken. | /* This function returns when all data have been spoken. | ||||
| Return: EE_OK: operation achieved | Return: EE_OK: operation achieved | ||||
| EE_INTERNAL_ERROR. | EE_INTERNAL_ERROR. | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| espeak_ERROR espeak_Terminate(void); | |||||
| ESPEAK_API espeak_ERROR espeak_Terminate(void); | |||||
| /* last function to be called. | /* last function to be called. | ||||
| Return: EE_OK: operation achieved | Return: EE_OK: operation achieved | ||||
| EE_INTERNAL_ERROR. | EE_INTERNAL_ERROR. | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| const char *espeak_Info(void* ptr); | |||||
| ESPEAK_API const char *espeak_Info(void* ptr); | |||||
| /* Returns the version number string. | /* Returns the version number string. | ||||
| The parameter is for future use, and should be set to NULL | The parameter is for future use, and should be set to NULL | ||||
| */ | */ |
| wxString filename; | wxString filename; | ||||
| wxFileName fname; | wxFileName fname; | ||||
| wxString dictstr; | wxString dictstr; | ||||
| wxString filetype; | |||||
| wxString report = _T(""); | wxString report = _T(""); | ||||
| int err; | int err; | ||||
| int errors = 0; | int errors = 0; | ||||
| fprintf(f_phused,"Phonemes which are used in the *_rules and *_list files\n"); | fprintf(f_phused,"Phonemes which are used in the *_rules and *_list files\n"); | ||||
| } | } | ||||
| bool cont = dir.GetFirst(&filename, _T("*_rules"), wxDIR_FILES); | |||||
| bool cont = dir.GetFirst(&filename, _T("*_rules*"), wxDIR_FILES); | |||||
| while ( cont ) | while ( cont ) | ||||
| { | { | ||||
| fname = wxFileName(filename); | fname = wxFileName(filename); | ||||
| filetype = fname.GetName().AfterLast('_'); | |||||
| if((filetype != _T("rules")) && (filetype != _T("rules.txt"))) | |||||
| { | |||||
| cont = dir.GetNext(&filename); | |||||
| continue; | |||||
| } | |||||
| dictstr = fname.GetName().BeforeLast('_'); | dictstr = fname.GetName().BeforeLast('_'); | ||||
| strcpy(dictname,dictstr.mb_str(wxConvLocal)); | strcpy(dictname,dictstr.mb_str(wxConvLocal)); | ||||
| dict_count++; | dict_count++; | ||||
| strcpy(voicename,dictname); | strcpy(voicename,dictname); | ||||
| // read the *_rules file to see if a phoneme table is specified though a voice name | // read the *_rules file to see if a phoneme table is specified though a voice name | ||||
| sprintf(path,"%s%s_rules",path_dsource,dictname); | |||||
| if((f_in = fopen(path,"r")) != NULL) | |||||
| sprintf(path,"%s%s_rules.txt",path_dsource,dictname); | |||||
| if((f_in = fopen(path,"r")) == NULL) | |||||
| { | |||||
| sprintf(path,"%s%s_rules",path_dsource,dictname); | |||||
| f_in = fopen(path,"r"); | |||||
| } | |||||
| if(f_in != NULL) | |||||
| { | { | ||||
| unsigned int ix; | unsigned int ix; | ||||
| unsigned int c; | unsigned int c; |
| text_mode = 0; | text_mode = 0; | ||||
| sprintf(fname,"%s%s",path,filename); | |||||
| // try with and without '.txt' extension | |||||
| sprintf(fname,"%s%s.txt",path,filename); | |||||
| if((f_in = fopen(fname,"r")) == NULL) | if((f_in = fopen(fname,"r")) == NULL) | ||||
| return(-1); | |||||
| { | |||||
| sprintf(fname,"%s%s",path,filename); | |||||
| if((f_in = fopen(fname,"r")) == NULL) | |||||
| return(-1); | |||||
| } | |||||
| fprintf(f_log,"Compiling: '%s'\n",fname); | fprintf(f_log,"Compiling: '%s'\n",fname); | ||||
| case 'X': | case 'X': | ||||
| c = RULE_NOVOWELS; | c = RULE_NOVOWELS; | ||||
| break; | break; | ||||
| case 'J': | |||||
| c = RULE_SKIPCHARS; | |||||
| break; | |||||
| case 'L': | case 'L': | ||||
| // expect two digits | // expect two digits | ||||
| c = *p++ - '0'; | c = *p++ - '0'; | ||||
| if(f_log == NULL) | if(f_log == NULL) | ||||
| f_log = stderr; | f_log = stderr; | ||||
| // try with and without '.txt' extension | |||||
| sprintf(path,"%s%s_",dsource,dict_name); | sprintf(path,"%s%s_",dsource,dict_name); | ||||
| sprintf(fname_in,"%srules",path); | |||||
| f_in = fopen_log(fname_in,"r"); | |||||
| if(f_in == NULL) | |||||
| sprintf(fname_in,"%srules.txt",path); | |||||
| if((f_in = fopen(fname_in,"r")) == NULL) | |||||
| { | { | ||||
| if(fname_err) | |||||
| strcpy(fname_err,fname_in); | |||||
| return(-1); | |||||
| sprintf(fname_in,"%srules",path); | |||||
| if((f_in = fopen_log(fname_in,"r")) == NULL) | |||||
| { | |||||
| if(fname_err) | |||||
| strcpy(fname_err,fname_in); | |||||
| return(-1); | |||||
| } | |||||
| } | } | ||||
| sprintf(fname_out,"%s%c%s_dict",path_home,PATHSEP,dict_name); | sprintf(fname_out,"%s%c%s_dict",path_home,PATHSEP,dict_name); |
| static char output[60]; | static char output[60]; | ||||
| static char symbols[] = {' ',' ',' ',' ',' ',' ',' ',' ',' ', | static char symbols[] = {' ',' ',' ',' ',' ',' ',' ',' ',' ', | ||||
| '@','&','%','+','#','S','D','Z','A','L',' ',' ',' ',' ',' ','N','K','V',' ','T','X','?','W'}; | |||||
| '@','&','%','+','#','S','D','Z','A','L','!',' ','?','?','J','N','K','V','?','T','X','?','W'}; | |||||
| static char symbols_lg[] = {'A','B','C','H','F','G','Y'}; | static char symbols_lg[] = {'A','B','C','H','F','G','Y'}; | ||||
| if((letter == rb) || ((letter==(unsigned char)REPLACED_E) && (rb=='e'))) | if((letter == rb) || ((letter==(unsigned char)REPLACED_E) && (rb=='e'))) | ||||
| { | { | ||||
| add_points = 21; | |||||
| if((letter & 0xc0) != 0x80) | |||||
| add_points = 21; // don't add point for non-initial UTF-8 bytes | |||||
| consumed++; | consumed++; | ||||
| } | } | ||||
| else | else | ||||
| } | } | ||||
| break; | break; | ||||
| case RULE_SKIPCHARS: | |||||
| { | |||||
| // Used for lang=Tamil, used to match on the next word after an unknown word ending | |||||
| // only look until the end of the word (including the end-of-word marker) | |||||
| // Jx means 'skip characters until x', where 'x' may be '_' for 'end of word' | |||||
| char *p = post_ptr + letter_xbytes; | |||||
| char *p2 = p; | |||||
| int rule_w; // skip characters until this | |||||
| utf8_in(&rule_w,rule); | |||||
| while((letter_w != rule_w) && (letter_w != RULE_SPACE)) | |||||
| { | |||||
| p2 = p; | |||||
| p += utf8_in(&letter_w,p); | |||||
| } | |||||
| if(letter_w == rule_w) | |||||
| { | |||||
| post_ptr = p2; | |||||
| } | |||||
| } | |||||
| break; | |||||
| case RULE_INC_SCORE: | case RULE_INC_SCORE: | ||||
| add_points = 20; // force an increase in points | add_points = 20; // force an increase in points | ||||
| break; | break; | ||||
| default: | default: | ||||
| if(letter == rb) | if(letter == rb) | ||||
| { | { | ||||
| if(letter == RULE_SPACE) | |||||
| add_points = (21-distance_right); | |||||
| else | |||||
| if((letter & 0xc0) != 0x80) | |||||
| { | |||||
| // not for non-initial UTF-8 bytes | |||||
| add_points = (21-distance_right); | add_points = (21-distance_right); | ||||
| } | |||||
| } | } | ||||
| else | else | ||||
| failed = 1; | failed = 1; | ||||
| if(letter == RULE_SPACE) | if(letter == RULE_SPACE) | ||||
| add_points = 4; | add_points = 4; | ||||
| else | else | ||||
| add_points = (21-distance_left); | |||||
| { | |||||
| if((letter & 0xc0) != 0x80) | |||||
| { | |||||
| // not for non-initial UTF-8 bytes | |||||
| add_points = (21-distance_left); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| else | else | ||||
| failed = 1; | failed = 1; |
| const int tab2 = 18; | const int tab2 = 18; | ||||
| const int tab3 = 28; | const int tab3 = 28; | ||||
| sprintf(fname_in,"%s/%s_rules",path_dsource,dictname); | |||||
| sprintf(fname_out,"%s_formatted",fname_in); | |||||
| // try with and without '.txt' extension | |||||
| sprintf(fname_in,"%s/%s_rules.txt",path_dsource,dictname); | |||||
| if((f_in = fopen(fname_in,"r")) == NULL) | if((f_in = fopen(fname_in,"r")) == NULL) | ||||
| { | { | ||||
| wxLogError(_T("Can't open rules file: ") + wxString(fname_in,wxConvLocal)); | |||||
| return; | |||||
| sprintf(fname_in,"%s/%s_rules",path_dsource,dictname); | |||||
| if((f_in = fopen(fname_in,"r")) == NULL) | |||||
| { | |||||
| wxLogError(_T("Can't open rules file: ") + wxString(fname_in,wxConvLocal)); | |||||
| return; | |||||
| } | |||||
| } | } | ||||
| sprintf(fname_out,"%s/%s_rules_formatted",path_dsource,dictname); | |||||
| if((f_out = fopen(fname_out,"w")) == NULL) | if((f_out = fopen(fname_out,"w")) == NULL) | ||||
| { | { | ||||
| wxLogError(_T("Can't write to file: ") + wxString(fname_out,wxConvLocal)); | wxLogError(_T("Can't write to file: ") + wxString(fname_out,wxConvLocal)); |
| prev = 0; | prev = 0; | ||||
| subtract = 0x7fff; | subtract = 0x7fff; | ||||
| ph_out[0] = 0; | ph_out[0] = 0; | ||||
| flags[0] = 0; | |||||
| flags[1] = 0; | |||||
| if((tr->langopts.numbers & NUM_ROMAN_CAPITALS) && !(wtab[0].flags & FLAG_ALL_UPPER)) | if((tr->langopts.numbers & NUM_ROMAN_CAPITALS) && !(wtab[0].flags & FLAG_ALL_UPPER)) | ||||
| return(0); | return(0); |
| 0x055e, // Armenian question | 0x055e, // Armenian question | ||||
| 0x055b, // Armenian emphasis mark | 0x055b, // Armenian emphasis mark | ||||
| 0x0b1b, // Arabic ; | |||||
| 0x061f, // Arabic ? | |||||
| 0x1362, // Ethiopic period | 0x1362, // Ethiopic period | ||||
| 0x1363, | 0x1363, | ||||
| 0x1364, | 0x1364, | ||||
| CLAUSE_QUESTION + PUNCT_IN_WORD, // Armenian question | CLAUSE_QUESTION + PUNCT_IN_WORD, // Armenian question | ||||
| CLAUSE_PERIOD + PUNCT_IN_WORD, // Armenian emphasis mark | CLAUSE_PERIOD + PUNCT_IN_WORD, // Armenian emphasis mark | ||||
| CLAUSE_SEMICOLON, // Arabic ; | |||||
| CLAUSE_QUESTION, // Arabic question mark | |||||
| CLAUSE_PERIOD, // Ethiopic period | CLAUSE_PERIOD, // Ethiopic period | ||||
| CLAUSE_COMMA, // Ethiopic comma | CLAUSE_COMMA, // Ethiopic comma | ||||
| CLAUSE_SEMICOLON, // Ethiopic semicolon | CLAUSE_SEMICOLON, // Ethiopic semicolon | ||||
| char phonemes2[55]; | char phonemes2[55]; | ||||
| char *string1 = (char *)string; | char *string1 = (char *)string; | ||||
| flags[0] = flags[1] = 0; | |||||
| if(LookupDictList(tr,&string1,phonemes,flags,0,NULL)) | if(LookupDictList(tr,&string1,phonemes,flags,0,NULL)) | ||||
| { | { | ||||
| SetWordStress(tr, phonemes, flags, -1, 0); | SetWordStress(tr, phonemes, flags, -1, 0); | ||||
| // Because of an xml tag, we are waiting for the | // Because of an xml tag, we are waiting for the | ||||
| // next non-blank character to decide whether to end the clause | // next non-blank character to decide whether to end the clause | ||||
| // i.e. is dot followed by an upper-case letter? | // i.e. is dot followed by an upper-case letter? | ||||
| if(c1 == '\n') | |||||
| { | |||||
| // end_clause_after_tag &= ~CLAUSE_DOT; | |||||
| } | |||||
| if(!iswspace(c1)) | if(!iswspace(c1)) | ||||
| { | { | ||||
| if(iswdigit(c1) || (IsAlpha(c1) && !iswlower(c1))) | |||||
| if(!IsAlpha(c1) || !iswlower(c1)) | |||||
| // if(iswdigit(c1) || (IsAlpha(c1) && !iswlower(c1))) | |||||
| { | { | ||||
| UngetC(c2); | UngetC(c2); | ||||
| ungot_char2 = c1; | ungot_char2 = c1; |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.42.02 30.Nov.09"; | |||||
| const char *version_string = "1.42.03 08.Dec.09"; | |||||
| const int version_phdata = 0x014200; | const int version_phdata = 0x014200; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| break; | break; | ||||
| case L('a','r'): // Arabic | case L('a','r'): // Arabic | ||||
| case L('u','r'): // Urdu | |||||
| tr->letter_bits_offset = OFFSET_ARABIC; | tr->letter_bits_offset = OFFSET_ARABIC; | ||||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | ||||
| break; | break; | ||||
| tr->langopts.stress_rule = 6; // stress on last heaviest syllable, excluding final syllable | tr->langopts.stress_rule = 6; // stress on last heaviest syllable, excluding final syllable | ||||
| tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable | tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable | ||||
| tr->langopts.numbers = NUM_SWAP_TENS; | tr->langopts.numbers = NUM_SWAP_TENS; | ||||
| tr->langopts.break_numbers = 0x24924aa8; // for languages which have numbers for 100,000 and 100,00,000, eg Hindi | |||||
| tr->langopts.break_numbers = 0x14aa8; // for languages which have numbers for 100,000 and 100,00,000, eg Hindi | |||||
| tr->letter_bits_offset = OFFSET_DEVANAGARI; | tr->letter_bits_offset = OFFSET_DEVANAGARI; | ||||
| if(name2 == L('p','a')) | if(name2 == L('p','a')) | ||||
| } | } | ||||
| break; | break; | ||||
| case L('u','r'): // Urdu | |||||
| tr->letter_bits_offset = OFFSET_ARABIC; | |||||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | |||||
| tr->langopts.numbers = NUM_SWAP_TENS; | |||||
| tr->langopts.break_numbers = 0x52a8; // for languages which have numbers for 100,000 and 100,00,000, eg Hindi | |||||
| break; | |||||
| case L('v','i'): // Vietnamese | case L('v','i'): // Vietnamese | ||||
| { | { | ||||
| static const short stress_lengths_vi[8] = {150, 150, 180, 180, 210, 230, 230, 240}; | static const short stress_lengths_vi[8] = {150, 150, 180, 180, 210, 230, 230, 240}; |
| #define RULE_LINENUM 8 // next 2 bytes give a line number, for debugging purposes | #define RULE_LINENUM 8 // next 2 bytes give a line number, for debugging purposes | ||||
| #define RULE_SPACE 32 // ascii space | #define RULE_SPACE 32 // ascii space | ||||
| #define RULE_SYLLABLE 9 | |||||
| #define RULE_STRESSED 10 | |||||
| #define RULE_DOUBLE 11 | |||||
| #define RULE_INC_SCORE 12 | |||||
| #define RULE_DEL_FWD 13 | |||||
| #define RULE_ENDING 14 | |||||
| #define RULE_SYLLABLE 9 // @ | |||||
| #define RULE_STRESSED 10 // & | |||||
| #define RULE_DOUBLE 11 // % | |||||
| #define RULE_INC_SCORE 12 // + | |||||
| #define RULE_DEL_FWD 13 // # | |||||
| #define RULE_ENDING 14 // S | |||||
| #define RULE_DIGIT 15 // D digit | #define RULE_DIGIT 15 // D digit | ||||
| #define RULE_NONALPHA 16 // Z non-alpha | #define RULE_NONALPHA 16 // Z non-alpha | ||||
| #define RULE_LETTERGP 17 // A B C H F G Y letter group number | #define RULE_LETTERGP 17 // A B C H F G Y letter group number | ||||
| #define RULE_LETTERGP2 18 // L + letter group number | #define RULE_LETTERGP2 18 // L + letter group number | ||||
| #define RULE_CAPITAL 19 // word starts with a capital letter | |||||
| #define RULE_CAPITAL 19 // ! word starts with a capital letter | |||||
| #define RULE_REPLACEMENTS 20 // section for character replacements | #define RULE_REPLACEMENTS 20 // section for character replacements | ||||
| #define RULE_SKIPCHARS 23 // J | |||||
| #define RULE_NO_SUFFIX 24 // N | #define RULE_NO_SUFFIX 24 // N | ||||
| #define RULE_NOTVOWEL 25 // K | #define RULE_NOTVOWEL 25 // K | ||||
| #define RULE_IFVERB 26 // V | #define RULE_IFVERB 26 // V |